Show / Hide Table of Contents

Class Expression<TExpr, TTable>

Wrapper for "an expression which only lives in a certain type of table".

Inheritance
Object
Expression
Expression<TExpr, TTable>
Aggregand
BinaryAggregation
BinaryOperation
ColumnReference
DataSourceColumn
Extern
Filter
JoinKey
Literal
RuntimeVariable
TernaryOperation
UnaryAggregation
UnaryOperation
UnaryWindowFunction
UnionExpression
VectorOperation
Implements
IVisitable<IExpressionVisitor>
ICloneable<TExpr, TTable, Expression>
ICloneable<Expression>
IDirectedAcyclicGraph<Expression>
Inherited Members
Expression.Accept(IExpressionVisitor)
Expression.Parents
Expression.ToString()
Object.Equals(Object)
Object.Equals(Object, Object)
Object.GetHashCode()
Object.GetType()
Object.MemberwiseClone()
Object.ReferenceEquals(Object, Object)
Namespace: Mangrove.MetricSetSyntaxTree
Assembly: MetricSetSyntaxTree.dll
Syntax
public abstract class Expression<TExpr, TTable> : Expression, IVisitable<IExpressionVisitor>, ICloneable<TExpr, TTable, Expression>, ICloneable<Expression>, IDirectedAcyclicGraph<Expression> where TExpr : Expression where TTable : Table
Type Parameters
Name Description
TExpr
TTable

The type of table this sort of expression lives in.

Remarks

Requiring expressions to implement "clone" and "parents" operations removes much of the need for boilerplace code in visitors.

Constructors

View Source

Expression(TTable)

Declaration
public Expression(TTable table)
Parameters
Type Name Description
TTable table

Properties

View Source

Table

The table that this expression lives in.

Declaration
public TTable Table { get; }
Property Value
Type Description
TTable

Methods

View Source

Clone(TTable, IReadOnlyList<Expression>)

Create a "copy" of this expression in a new table, with a new list of direct parents.

Declaration
public abstract TExpr Clone(TTable table, IReadOnlyList<Expression> parents)
Parameters
Type Name Description
TTable table
IReadOnlyList<Expression> parents
Returns
Type Description
TExpr
View Source

Clone(IReadOnlyList<Expression>)

Create a "copy" of this expression in the same table, with a new list of direct parents.

Declaration
public override sealed Expression Clone(IReadOnlyList<Expression> parents)
Parameters
Type Name Description
IReadOnlyList<Expression> parents
Returns
Type Description
Expression
Overrides
Expression.Clone(IReadOnlyList<Expression>)

Implements

IVisitable<TVisitor>
ICloneable<TSubnode, TIdentifier, TNode>
ICloneable<T>
IDirectedAcyclicGraph<T>

Extension Methods

ExpressionExtensions.WrapUniqueName(Expression, String)
ExpressionExtensions.WrapName(Expression, String)
ExpressionExtensions.Unwrap(Expression, Boolean)
ExpressionExtensions.UnwrapParentheses(Expression)
ExpressionExtensions.NeedsColumnReferenceWrap(Expression)
ExpressionExtensions.TopParentsOfType<TParent>(Expression)
ExpressionExtensions.References(Expression, ISet<Table>)
ExpressionExtensions.IsAggregation(Expression)
ExpressionExtensions.IsOperation(Expression)
ExpressionExtensions.IsConstant(Expression)
ExpressionExtensions.Type(Expression)
ExpressionExtensions.IsOfNullableType(Expression)
ExpressionExtensions.IsOfNonNullableType(Expression)
IDirectedAcyclicGraphExtensions.Ancestors(Expression, Boolean)
IDirectedAcyclicGraphExtensions.Closure(Expression)
ObjectExtensions.EventId(Object)
  • View Source
Back to top Generated by DocFX