Package com.strobel.expressions
Class Expression
java.lang.Object
com.strobel.expressions.Expression
- Direct Known Subclasses:
BinaryExpression,BlockExpression,ConcatExpression,ConditionalExpression,ConstantExpression,DefaultValueExpression,ForEachExpression,ForExpression,GotoExpression,InvocationExpression,LabelExpression,LambdaExpression,LoopExpression,MemberExpression,MethodCallExpression,NewArrayExpression,NewExpression,ParameterExpression,RuntimeVariablesExpression,SwitchExpression,TryExpression,TypeBinaryExpression,UnaryExpression
The base type for all nodes in Expression Trees.
- Author:
- Mike Strobel
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected Expressionaccept(ExpressionVisitor visitor) Dispatches to the specific visit method for this node type.static BinaryExpressionadd(Expression left, Expression right) static BinaryExpressionadd(Expression left, Expression right, MethodInfo method) static BinaryExpressionaddAssign(Expression left, Expression right) static BinaryExpressionaddAssign(Expression left, Expression right, MethodInfo method) static BinaryExpressionaddAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) static BinaryExpressionand(Expression left, Expression right) static BinaryExpressionand(Expression left, Expression right, MethodInfo method) static BinaryExpressionandAlso(Expression left, Expression right) static BinaryExpressionandAlso(Expression first, Expression... rest) static BinaryExpressionandAlso(Expression left, Expression right, MethodInfo method) static BinaryExpressionandAssign(Expression left, Expression right) static BinaryExpressionandAssign(Expression left, Expression right, MethodInfo method) static BinaryExpressionandAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) static BinaryExpressionarrayIndex(Expression array, Expression index) static UnaryExpressionarrayLength(Expression array) static BinaryExpressionassign(Expression left, Expression right) static Expressionstatic BlockExpressionblock(Expression... expressions) static BlockExpressionblock(ExpressionList<? extends Expression> expressions) static BlockExpressionblock(Expression arg0, Expression arg1) static BlockExpressionblock(Expression arg0, Expression arg1, Expression arg2) static BlockExpressionblock(Expression arg0, Expression arg1, Expression arg2, Expression arg3) static BlockExpressionblock(Expression arg0, Expression arg1, Expression arg2, Expression arg3, Expression arg4) static BlockExpressionblock(ParameterExpression[] variables, Expression... expressions) static BlockExpressionblock(ParameterExpressionList variables, Expression... expressions) static BlockExpressionblock(ParameterExpressionList variables, ExpressionList<? extends Expression> expressions) static BlockExpressionblock(Type<?> type, Expression... expressions) static BlockExpressionblock(Type<?> type, ExpressionList<? extends Expression> expressions) static BlockExpressionblock(Type<?> type, ParameterExpression[] variables, Expression... expressions) static BlockExpressionblock(Type<?> type, ParameterExpressionList variables, Expression... expressions) static BlockExpressionblock(Type<?> type, ParameterExpressionList variables, ExpressionList<? extends Expression> expressions) static Expressionbox(Expression expression) static MethodCallExpressioncall(Expression target, MethodInfo method, Expression... arguments) static MethodCallExpressioncall(Expression target, MethodInfo method, ExpressionList<? extends Expression> arguments) static MethodCallExpressioncall(Expression target, String methodName, Expression... arguments) static MethodCallExpressioncall(Expression target, String methodName, TypeList typeArguments, Expression... arguments) static MethodCallExpressioncall(Expression target, String methodName, TypeList typeArguments, ExpressionList<? extends Expression> arguments) static MethodCallExpressioncall(MethodInfo method, Expression... arguments) static MethodCallExpressioncall(MethodInfo method, ExpressionList<? extends Expression> arguments) static MethodCallExpressioncall(Type<?> declaringType, String methodName, Expression... arguments) static MethodCallExpressioncall(Type<?> declaringType, String methodName, TypeList typeArguments, Expression... arguments) static MethodCallExpressioncall(Type<?> declaringType, String methodName, TypeList typeArguments, ExpressionList<? extends Expression> arguments) booleanIndicates that the node can be reduced to a simpler node.static ConstantExpressionclassConstant(Type<?> value) static BinaryExpressioncoalesce(Expression left, Expression right) static BinaryExpressioncoalesce(Expression left, Expression right, LambdaExpression<?> conversion) static ConcatExpressionconcat(ExpressionList<? extends Expression> operands) static ConcatExpressionconcat(Expression first, Expression second) static ConcatExpressionconcat(Expression first, Expression second, Expression... operands) static ConditionalExpressioncondition(Expression test, Expression ifTrue, Expression ifFalse) static ConditionalExpressioncondition(Expression test, Expression ifTrue, Expression ifFalse, Type<?> type) static ConstantExpressionstatic ConstantExpressionstatic UnaryExpressionconvert(Expression expression, Type<?> type) static UnaryExpressionconvert(Expression expression, Type<?> type, MethodInfo method) static UnaryExpressiondecrement(Expression expression) static UnaryExpressiondecrement(Expression expression, MethodInfo method) static DefaultValueExpressiondefaultValue(Type<?> type) static BinaryExpressiondivide(Expression left, Expression right) static BinaryExpressiondivide(Expression left, Expression right, MethodInfo method) static BinaryExpressiondivideAssign(Expression left, Expression right) static BinaryExpressiondivideAssign(Expression left, Expression right, MethodInfo method) static BinaryExpressiondivideAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) static Expressionempty()static BinaryExpressionequal(Expression left, Expression right) static BinaryExpressionequal(Expression left, Expression right, MethodInfo method) static BinaryExpressionexclusiveOr(Expression left, Expression right) static BinaryExpressionexclusiveOr(Expression left, Expression right, MethodInfo method) static BinaryExpressionexclusiveOrAssign(Expression left, Expression right) static BinaryExpressionexclusiveOrAssign(Expression left, Expression right, MethodInfo method) static BinaryExpressionexclusiveOrAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) static MemberExpressionfield(Expression target, FieldInfo field) static MemberExpressionfield(Expression target, String fieldName) static MemberExpressionstatic MemberExpressionstatic ForEachExpressionforEach(ParameterExpression variable, Expression sequence, Expression body) static ForEachExpressionforEach(ParameterExpression variable, Expression sequence, Expression body, LabelTarget breakTarget) static ForEachExpressionforEach(ParameterExpression variable, Expression sequence, Expression body, LabelTarget breakTarget, LabelTarget continueTarget) final StringReturns the node type of thisExpression.Type<?> getType()Gets the static type of the expression that thisExpressionrepresents.static BinaryExpressiongreaterThan(Expression left, Expression right) static BinaryExpressiongreaterThan(Expression left, Expression right, MethodInfo method) static BinaryExpressiongreaterThanOrEqual(Expression left, Expression right) static BinaryExpressiongreaterThanOrEqual(Expression left, Expression right, MethodInfo method) static ConditionalExpressionifThen(Expression test, Expression ifTrue) static ConditionalExpressionifThenElse(Expression test, Expression ifTrue, Expression ifFalse) static UnaryExpressionincrement(Expression expression) static UnaryExpressionincrement(Expression expression, MethodInfo method) static TypeBinaryExpressioninstanceOf(Expression expression, Type<?> type) static InvocationExpressioninvoke(Expression expression, Expression... arguments) static InvocationExpressioninvoke(Expression expression, ExpressionList<? extends Expression> arguments) static UnaryExpressionisFalse(Expression expression) static UnaryExpressionisFalse(Expression expression, MethodInfo method) static UnaryExpressionisNotNull(Expression expression) static UnaryExpressionisNull(Expression expression) static UnaryExpressionisTrue(Expression expression) static UnaryExpressionisTrue(Expression expression, MethodInfo method) static LabelTargetlabel()static LabelExpressionlabel(LabelTarget target) static LabelExpressionlabel(LabelTarget target, Expression defaultValue) static LabelTargetstatic LabelTargetstatic LabelTargetstatic LambdaExpression<?> lambda(Expression body, boolean tailCall, ParameterExpression... parameters) static LambdaExpression<?> lambda(Expression body, boolean tailCall, ParameterExpressionList parameters) static LambdaExpression<?> lambda(Expression body, ParameterExpression... parameters) static LambdaExpression<?> lambda(Expression body, ParameterExpressionList parameters) static <T> LambdaExpression<T> lambda(Type<?> interfaceType, Expression body, boolean tailCall, ParameterExpression... parameters) static <T> LambdaExpression<T> lambda(Type<?> interfaceType, Expression body, boolean tailCall, ParameterExpressionList parameters) static <T> LambdaExpression<T> lambda(Type<?> interfaceType, Expression body, ParameterExpression... parameters) static <T> LambdaExpression<T> lambda(Type<?> interfaceType, Expression body, ParameterExpressionList parameters) static <T> LambdaExpression<T> lambda(Type<?> interfaceType, String name, Expression body, boolean tailCall, ParameterExpression... parameters) static <T> LambdaExpression<T> lambda(Type<?> interfaceType, String name, Expression body, boolean tailCall, ParameterExpressionList parameters) static <T> LambdaExpression<T> lambda(Type<?> interfaceType, String name, Expression body, ParameterExpression... parameters) static LambdaExpression<?> lambda(String name, Expression body, boolean tailCall, ParameterExpression... parameters) static LambdaExpression<?> lambda(String name, Expression body, ParameterExpression... parameters) static BinaryExpressionleftShift(Expression left, Expression right) static BinaryExpressionleftShift(Expression left, Expression right, MethodInfo method) static BinaryExpressionleftShiftAssign(Expression left, Expression right) static BinaryExpressionleftShiftAssign(Expression left, Expression right, MethodInfo method) static BinaryExpressionleftShiftAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) static BinaryExpressionlessThan(Expression left, Expression right) static BinaryExpressionlessThan(Expression left, Expression right, MethodInfo method) static BinaryExpressionlessThanOrEqual(Expression left, Expression right) static BinaryExpressionlessThanOrEqual(Expression left, Expression right, MethodInfo method) static LoopExpressionloop(Expression body) static LoopExpressionloop(Expression body, LabelTarget breakTarget) static LoopExpressionloop(Expression body, LabelTarget breakTarget, LabelTarget continueLabel) static BinaryExpressionmakeBinary(ExpressionType binaryType, Expression... rest) static BinaryExpressionmakeBinary(ExpressionType binaryType, Expression left, Expression right) static BinaryExpressionmakeBinary(ExpressionType binaryType, Expression first, Expression... rest) static BinaryExpressionmakeBinary(ExpressionType binaryType, Expression left, Expression right, MethodInfo method) static BinaryExpressionmakeBinary(ExpressionType binaryType, Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) static GotoExpressionmakeBreak(LabelTarget target) static GotoExpressionmakeBreak(LabelTarget target, Expression value) static GotoExpressionmakeBreak(LabelTarget target, Expression value, Type<?> type) static GotoExpressionmakeBreak(LabelTarget target, Type<?> type) static CatchBlockmakeCatch(ParameterExpression variable, Expression body) static CatchBlockmakeCatch(ParameterExpression variable, Expression body, Expression filter) static CatchBlockmakeCatch(Type<?> type, Expression body) static CatchBlockmakeCatch(Type<?> type, Expression body, Expression filter) static CatchBlockmakeCatch(Type<?> type, ParameterExpression variable, Expression body) static CatchBlockmakeCatch(Type<?> type, ParameterExpression variable, Expression body, Expression filter) static GotoExpressionmakeContinue(LabelTarget target) static GotoExpressionmakeContinue(LabelTarget target, Type<?> type) static ForExpressionmakeFor(ParameterExpression variable, Expression initializer, Expression test, Expression step, Expression body) static ForExpressionmakeFor(ParameterExpression variable, Expression initializer, Expression test, Expression step, Expression body, LabelTarget breakTarget) static ForExpressionmakeFor(ParameterExpression variable, Expression initializer, Expression test, Expression step, Expression body, LabelTarget breakTarget, LabelTarget continueTarget) static GotoExpressionmakeGoto(GotoExpressionKind kind, LabelTarget target, Expression value, Type<?> type) static GotoExpressionmakeGoto(LabelTarget target) static GotoExpressionmakeGoto(LabelTarget target, Expression value) static GotoExpressionmakeGoto(LabelTarget target, Expression value, Type<?> type) static GotoExpressionmakeGoto(LabelTarget target, Type<?> type) static MemberExpressionmakeMemberAccess(Expression target, MemberInfo member) static NewExpressionmakeNew(ConstructorInfo constructor) static NewExpressionmakeNew(ConstructorInfo constructor, Expression... parameters) static NewExpressionmakeNew(ConstructorInfo constructor, ExpressionList<? extends Expression> parameters) static NewExpressionmakeNew(Type<?> type, Expression... parameters) static GotoExpressionmakeReturn(LabelTarget target) static GotoExpressionmakeReturn(LabelTarget target, Expression value) static GotoExpressionmakeReturn(LabelTarget target, Expression value, Type<?> type) static GotoExpressionmakeReturn(LabelTarget target, Type<?> type) static SwitchExpressionmakeSwitch(Expression switchValue, Expression defaultBody, SwitchCase... cases) static SwitchExpressionmakeSwitch(Expression switchValue, Expression defaultBody, MethodInfo comparison, ReadOnlyList<SwitchCase> cases) static SwitchExpressionmakeSwitch(Expression switchValue, Expression defaultBody, MethodInfo comparison, SwitchCase... cases) static SwitchExpressionmakeSwitch(Expression switchValue, SwitchCase... cases) static SwitchExpressionmakeSwitch(Expression switchValue, SwitchOptions options, Expression defaultBody, SwitchCase... cases) static SwitchExpressionmakeSwitch(Expression switchValue, SwitchOptions options, Expression defaultBody, MethodInfo comparison, ReadOnlyList<SwitchCase> cases) static SwitchExpressionmakeSwitch(Expression switchValue, SwitchOptions options, Expression defaultBody, MethodInfo comparison, SwitchCase... cases) static SwitchExpressionmakeSwitch(Expression switchValue, SwitchOptions options, SwitchCase... cases) static SwitchExpressionmakeSwitch(Type<?> type, Expression switchValue, Expression defaultBody, SwitchCase... cases) static SwitchExpressionmakeSwitch(Type<?> type, Expression switchValue, Expression defaultBody, MethodInfo comparison, SwitchCase... cases) static SwitchExpressionmakeSwitch(Type<?> type, Expression switchValue, SwitchOptions options, Expression defaultBody, SwitchCase... cases) static SwitchExpressionmakeSwitch(Type<?> type, Expression switchValue, SwitchOptions options, Expression defaultBody, MethodInfo comparison, ReadOnlyList<SwitchCase> cases) static SwitchExpressionmakeSwitch(Type<?> type, Expression switchValue, SwitchOptions options, Expression defaultBody, MethodInfo comparison, SwitchCase... cases) static UnaryExpressionmakeThrow(Expression expression) static UnaryExpressionmakeThrow(Expression value, Type<?> type) static TryExpressionmakeTry(Type<?> type, Expression body, ReadOnlyList<CatchBlock> catchBlocks, Expression finallyBlock) static TryExpressionmakeTry(Type<?> type, Expression body, CatchBlock... handlers) static TryExpressionmakeTry(Type<?> type, Expression body, Expression finallyBlock, CatchBlock... handlers) static UnaryExpressionmakeUnary(ExpressionType unaryType, Expression operand, Type<?> type) static UnaryExpressionmakeUnary(ExpressionType unaryType, Expression operand, Type<?> type, MethodInfo method) static BinaryExpressionmodulo(Expression left, Expression right) static BinaryExpressionmodulo(Expression left, Expression right, MethodInfo method) static BinaryExpressionmoduloAssign(Expression left, Expression right) static BinaryExpressionmoduloAssign(Expression left, Expression right, MethodInfo method) static BinaryExpressionmoduloAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) static BinaryExpressionmultiply(Expression left, Expression right) static BinaryExpressionmultiply(Expression left, Expression right, MethodInfo method) static BinaryExpressionmultiplyAssign(Expression left, Expression right) static BinaryExpressionmultiplyAssign(Expression left, Expression right, MethodInfo method) static BinaryExpressionmultiplyAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) static UnaryExpressionnegate(Expression expression) static UnaryExpressionnegate(Expression expression, MethodInfo method) static NewArrayExpressionnewArrayBounds(Type<?> elementType, Expression dimension) static NewArrayExpressionnewArrayInit(Type<?> elementType, Expression... initializers) static NewArrayExpressionnewArrayInit(Type<?> elementType, ExpressionList<? extends Expression> initializers) static UnaryExpressionnot(Expression expression) static UnaryExpressionnot(Expression expression, MethodInfo method) static BinaryExpressionnotEqual(Expression left, Expression right) static BinaryExpressionnotEqual(Expression left, Expression right, MethodInfo method) static UnaryExpressiononesComplement(Expression expression) static UnaryExpressiononesComplement(Expression expression, MethodInfo method) static BinaryExpressionor(Expression left, Expression right) static BinaryExpressionor(Expression left, Expression right, MethodInfo method) static BinaryExpressionorAssign(Expression left, Expression right) static BinaryExpressionorAssign(Expression left, Expression right, MethodInfo method) static BinaryExpressionorAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) static BinaryExpressionorElse(Expression left, Expression right) static BinaryExpressionorElse(Expression first, Expression... rest) static BinaryExpressionorElse(Expression left, Expression right, MethodInfo method) static ParameterExpressionstatic ParameterExpressionstatic ParameterExpressionListparameters(ParameterExpression... parameters) static UnaryExpressionpostDecrementAssign(Expression expression) static UnaryExpressionpostDecrementAssign(Expression expression, MethodInfo method) static UnaryExpressionpostIncrementAssign(Expression expression) static UnaryExpressionpostIncrementAssign(Expression expression, MethodInfo method) static UnaryExpressionpreDecrementAssign(Expression expression) static UnaryExpressionpreDecrementAssign(Expression expression, MethodInfo method) static UnaryExpressionpreIncrementAssign(Expression expression) static UnaryExpressionpreIncrementAssign(Expression expression, MethodInfo method) reduce()Reduces this node to a simpler expression.final ExpressionReduces this node to a simpler expression.final ExpressionReduces the expression to a known node type (i.e. not an Extension node or simply returns the expression if it is already a known type.static BinaryExpressionreferenceEqual(Expression left, Expression right) static BinaryExpressionreferenceNotEqual(Expression left, Expression right) static BinaryExpressionrightShift(Expression left, Expression right) static BinaryExpressionrightShift(Expression left, Expression right, MethodInfo method) static BinaryExpressionrightShiftAssign(Expression left, Expression right) static BinaryExpressionrightShiftAssign(Expression left, Expression right, MethodInfo method) static BinaryExpressionrightShiftAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) static RuntimeVariablesExpressionruntimeVariables(ParameterExpression... variables) static RuntimeVariablesExpressionruntimeVariables(ParameterExpressionList variables) static Expressionstatic BinaryExpressionsubtract(Expression left, Expression right) static BinaryExpressionsubtract(Expression left, Expression right, MethodInfo method) static BinaryExpressionsubtractAssign(Expression left, Expression right) static BinaryExpressionsubtractAssign(Expression left, Expression right, MethodInfo method) static BinaryExpressionsubtractAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) static SwitchCaseswitchCase(Expression body, Expression... testValues) static SwitchCaseswitchCase(Expression body, ExpressionList<? extends Expression> testValues) toString()static TryExpressiontryCatch(Expression body, CatchBlock... handlers) static TryExpressiontryCatchFinally(Expression body, Expression finallyBlock, CatchBlock... handlers) static TryExpressiontryFinally(Expression body, Expression finallyBlock) static TypeBinaryExpressiontypeEqual(Expression expression, Type<?> type) static UnaryExpressionunaryPlus(Expression expression) static UnaryExpressionunaryPlus(Expression expression, MethodInfo method) static UnaryExpressionunbox(Expression expression) static UnaryExpressionunbox(Expression expression, Type<?> type) static BinaryExpressionunsignedRightShift(Expression left, Expression right) static BinaryExpressionunsignedRightShift(Expression left, Expression right, MethodInfo method) static BinaryExpressionunsignedRightShiftAssign(Expression left, Expression right) static BinaryExpressionunsignedRightShiftAssign(Expression left, Expression right, MethodInfo method) static BinaryExpressionunsignedRightShiftAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) static ParameterExpressionstatic ParameterExpressionstatic ParameterExpressionListvariables(ParameterExpression... parameters) protected ExpressionvisitChildren(ExpressionVisitor visitor) Reduces the node and then calls the visitor on the reduced expression.
-
Constructor Details
-
Expression
protected Expression()
-
-
Method Details
-
getNodeType
Returns the node type of thisExpression.- Returns:
- the
ExpressionTypethat represents this expression.
-
getType
Gets the static type of the expression that thisExpressionrepresents.- Returns:
- the
Typethat represents the static type of the expression.
-
canReduce
public boolean canReduce()Indicates that the node can be reduced to a simpler node. If this returnstrue,reduce()can be called to produce the reduced form.- Returns:
trueif the node can be reduced; otherwise,false.
-
reduce
Reduces this node to a simpler expression. IfcanReduce()returnstrue, this should return a valid expression. This method is allowed to return another node which itself must be reduced.- Returns:
- the reduced expression.
-
reduceAndCheck
Reduces this node to a simpler expression. IfcanReduce()returnstrue, this should return a valid expression. This method is allowed to return another node which itself must be reduced. Unlikereduce(), this method checks that the reduced node satisfies certain invariants.- Returns:
- the reduced expression.
-
reduceExtensions
Reduces the expression to a known node type (i.e. not an Extension node or simply returns the expression if it is already a known type.- Returns:
- the reduced expression.
-
accept
Dispatches to the specific visit method for this node type. For example,BinaryExpressionwill call intoExpressionVisitor.visitBinary().- Parameters:
visitor- the visitor to visit this node.- Returns:
- the result of visiting this node.
-
visitChildren
Reduces the node and then calls the visitor on the reduced expression. Throws an exception if the node isn't reducible.- Parameters:
visitor- an expression visitor- Returns:
- the expression being visited, or an expression which should replace it in the tree.
-
getDebugView
-
toString
-
empty
-
self
-
base
-
label
-
label
-
label
-
label
-
label
-
label
-
makeBreak
-
makeBreak
-
makeBreak
-
makeBreak
-
makeContinue
-
makeContinue
-
makeReturn
-
makeReturn
-
makeReturn
-
makeReturn
-
makeGoto
-
makeGoto
-
makeGoto
-
makeGoto
-
makeGoto
public static GotoExpression makeGoto(GotoExpressionKind kind, LabelTarget target, Expression value, Type<?> type) -
loop
-
loop
-
loop
public static LoopExpression loop(Expression body, LabelTarget breakTarget, LabelTarget continueLabel) -
forEach
public static ForEachExpression forEach(ParameterExpression variable, Expression sequence, Expression body) -
forEach
public static ForEachExpression forEach(ParameterExpression variable, Expression sequence, Expression body, LabelTarget breakTarget) -
forEach
public static ForEachExpression forEach(ParameterExpression variable, Expression sequence, Expression body, LabelTarget breakTarget, LabelTarget continueTarget) -
makeFor
public static ForExpression makeFor(ParameterExpression variable, Expression initializer, Expression test, Expression step, Expression body) -
makeFor
public static ForExpression makeFor(ParameterExpression variable, Expression initializer, Expression test, Expression step, Expression body, LabelTarget breakTarget) -
makeFor
public static ForExpression makeFor(ParameterExpression variable, Expression initializer, Expression test, Expression step, Expression body, LabelTarget breakTarget, LabelTarget continueTarget) -
makeNew
-
makeNew
-
makeNew
-
makeNew
public static NewExpression makeNew(ConstructorInfo constructor, ExpressionList<? extends Expression> parameters) -
newArrayInit
-
newArrayInit
public static NewArrayExpression newArrayInit(Type<?> elementType, ExpressionList<? extends Expression> initializers) -
newArrayBounds
-
concat
-
concat
-
concat
-
makeCatch
-
makeCatch
-
makeCatch
-
makeCatch
public static CatchBlock makeCatch(ParameterExpression variable, Expression body, Expression filter) -
makeCatch
public static CatchBlock makeCatch(Type<?> type, ParameterExpression variable, Expression body, Expression filter) -
makeCatch
-
tryFinally
-
tryCatch
-
makeTry
-
tryCatchFinally
public static TryExpression tryCatchFinally(Expression body, Expression finallyBlock, CatchBlock... handlers) -
makeTry
public static TryExpression makeTry(Type<?> type, Expression body, Expression finallyBlock, CatchBlock... handlers) -
makeTry
public static TryExpression makeTry(Type<?> type, Expression body, ReadOnlyList<CatchBlock> catchBlocks, Expression finallyBlock) -
runtimeVariables
-
runtimeVariables
-
condition
public static ConditionalExpression condition(Expression test, Expression ifTrue, Expression ifFalse) -
condition
public static ConditionalExpression condition(Expression test, Expression ifTrue, Expression ifFalse, Type<?> type) -
ifThen
-
ifThenElse
public static ConditionalExpression ifThenElse(Expression test, Expression ifTrue, Expression ifFalse) -
makeMemberAccess
-
field
-
field
-
field
-
field
-
constant
-
constant
-
classConstant
-
parameters
-
variables
-
parameter
-
variable
-
parameter
-
variable
-
makeUnary
-
makeUnary
public static UnaryExpression makeUnary(ExpressionType unaryType, Expression operand, Type<?> type, MethodInfo method) -
negate
-
negate
-
not
-
not
-
isFalse
-
isFalse
-
isTrue
-
isTrue
-
onesComplement
-
onesComplement
-
arrayLength
-
convert
-
convert
-
isNull
-
isNotNull
-
makeThrow
-
makeThrow
-
unaryPlus
-
unaryPlus
-
box
-
unbox
-
unbox
-
increment
-
increment
-
decrement
-
decrement
-
preIncrementAssign
-
preIncrementAssign
-
postIncrementAssign
-
postIncrementAssign
-
preDecrementAssign
-
preDecrementAssign
-
postDecrementAssign
-
postDecrementAssign
-
block
-
block
-
block
public static BlockExpression block(Expression arg0, Expression arg1, Expression arg2, Expression arg3) -
block
public static BlockExpression block(Expression arg0, Expression arg1, Expression arg2, Expression arg3, Expression arg4) -
block
-
block
-
block
-
block
-
block
public static BlockExpression block(ParameterExpressionList variables, ExpressionList<? extends Expression> expressions) -
block
-
block
-
block
public static BlockExpression block(Type<?> type, ParameterExpression[] variables, Expression... expressions) -
block
public static BlockExpression block(Type<?> type, ParameterExpressionList variables, Expression... expressions) -
block
public static BlockExpression block(Type<?> type, ParameterExpressionList variables, ExpressionList<? extends Expression> expressions) -
makeBinary
-
makeBinary
public static BinaryExpression makeBinary(ExpressionType binaryType, Expression first, Expression... rest) -
makeBinary
public static BinaryExpression makeBinary(ExpressionType binaryType, Expression left, Expression right) -
makeBinary
public static BinaryExpression makeBinary(ExpressionType binaryType, Expression left, Expression right, MethodInfo method) -
makeBinary
public static BinaryExpression makeBinary(ExpressionType binaryType, Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) -
add
-
add
-
coalesce
-
coalesce
public static BinaryExpression coalesce(Expression left, Expression right, LambdaExpression<?> conversion) -
subtract
-
subtract
-
multiply
-
multiply
-
divide
-
divide
-
modulo
-
modulo
-
leftShift
-
leftShift
-
rightShift
-
rightShift
-
unsignedRightShift
-
unsignedRightShift
public static BinaryExpression unsignedRightShift(Expression left, Expression right, MethodInfo method) -
and
-
and
-
or
-
or
-
exclusiveOr
-
exclusiveOr
-
andAlso
-
andAlso
-
andAlso
-
orElse
-
orElse
-
orElse
-
lessThan
-
lessThan
-
lessThanOrEqual
-
lessThanOrEqual
public static BinaryExpression lessThanOrEqual(Expression left, Expression right, MethodInfo method) -
greaterThan
-
greaterThan
-
greaterThanOrEqual
-
greaterThanOrEqual
public static BinaryExpression greaterThanOrEqual(Expression left, Expression right, MethodInfo method) -
equal
-
equal
-
notEqual
-
notEqual
-
referenceEqual
-
referenceNotEqual
-
arrayIndex
-
assign
-
addAssign
-
addAssign
-
addAssign
public static BinaryExpression addAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) -
subtractAssign
-
subtractAssign
-
subtractAssign
public static BinaryExpression subtractAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) -
multiplyAssign
-
multiplyAssign
-
multiplyAssign
public static BinaryExpression multiplyAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) -
divideAssign
-
divideAssign
-
divideAssign
public static BinaryExpression divideAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) -
moduloAssign
-
moduloAssign
-
moduloAssign
public static BinaryExpression moduloAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) -
leftShiftAssign
-
leftShiftAssign
public static BinaryExpression leftShiftAssign(Expression left, Expression right, MethodInfo method) -
leftShiftAssign
public static BinaryExpression leftShiftAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) -
rightShiftAssign
-
rightShiftAssign
public static BinaryExpression rightShiftAssign(Expression left, Expression right, MethodInfo method) -
rightShiftAssign
public static BinaryExpression rightShiftAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) -
unsignedRightShiftAssign
-
unsignedRightShiftAssign
public static BinaryExpression unsignedRightShiftAssign(Expression left, Expression right, MethodInfo method) -
unsignedRightShiftAssign
public static BinaryExpression unsignedRightShiftAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) -
orAssign
-
orAssign
-
orAssign
public static BinaryExpression orAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) -
andAssign
-
andAssign
-
andAssign
public static BinaryExpression andAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) -
exclusiveOrAssign
-
exclusiveOrAssign
public static BinaryExpression exclusiveOrAssign(Expression left, Expression right, MethodInfo method) -
exclusiveOrAssign
public static BinaryExpression exclusiveOrAssign(Expression left, Expression right, MethodInfo method, LambdaExpression<?> conversion) -
instanceOf
-
typeEqual
-
lambda
public static LambdaExpression<?> lambda(String name, Expression body, ParameterExpression... parameters) -
lambda
-
lambda
public static LambdaExpression<?> lambda(Expression body, boolean tailCall, ParameterExpression... parameters) -
lambda
public static LambdaExpression<?> lambda(String name, Expression body, boolean tailCall, ParameterExpression... parameters) -
lambda
-
lambda
public static LambdaExpression<?> lambda(Expression body, boolean tailCall, ParameterExpressionList parameters) -
lambda
public static <T> LambdaExpression<T> lambda(Type<?> interfaceType, String name, Expression body, ParameterExpression... parameters) -
lambda
public static <T> LambdaExpression<T> lambda(Type<?> interfaceType, Expression body, ParameterExpression... parameters) -
lambda
public static <T> LambdaExpression<T> lambda(Type<?> interfaceType, Expression body, boolean tailCall, ParameterExpression... parameters) -
lambda
public static <T> LambdaExpression<T> lambda(Type<?> interfaceType, String name, Expression body, boolean tailCall, ParameterExpression... parameters) -
lambda
public static <T> LambdaExpression<T> lambda(Type<?> interfaceType, Expression body, ParameterExpressionList parameters) -
lambda
public static <T> LambdaExpression<T> lambda(Type<?> interfaceType, Expression body, boolean tailCall, ParameterExpressionList parameters) -
lambda
public static <T> LambdaExpression<T> lambda(Type<?> interfaceType, String name, Expression body, boolean tailCall, ParameterExpressionList parameters) -
invoke
-
invoke
public static InvocationExpression invoke(Expression expression, ExpressionList<? extends Expression> arguments) -
call
-
call
public static MethodCallExpression call(MethodInfo method, ExpressionList<? extends Expression> arguments) -
call
public static MethodCallExpression call(Expression target, MethodInfo method, Expression... arguments) -
call
public static MethodCallExpression call(Expression target, MethodInfo method, ExpressionList<? extends Expression> arguments) -
call
public static MethodCallExpression call(Expression target, String methodName, Expression... arguments) -
call
public static MethodCallExpression call(Expression target, String methodName, TypeList typeArguments, Expression... arguments) -
call
public static MethodCallExpression call(Expression target, String methodName, TypeList typeArguments, ExpressionList<? extends Expression> arguments) -
call
public static MethodCallExpression call(Type<?> declaringType, String methodName, Expression... arguments) -
call
public static MethodCallExpression call(Type<?> declaringType, String methodName, TypeList typeArguments, Expression... arguments) -
call
public static MethodCallExpression call(Type<?> declaringType, String methodName, TypeList typeArguments, ExpressionList<? extends Expression> arguments) -
defaultValue
-
switchCase
-
switchCase
public static SwitchCase switchCase(Expression body, ExpressionList<? extends Expression> testValues) -
makeSwitch
-
makeSwitch
public static SwitchExpression makeSwitch(Expression switchValue, SwitchOptions options, SwitchCase... cases) -
makeSwitch
public static SwitchExpression makeSwitch(Expression switchValue, Expression defaultBody, SwitchCase... cases) -
makeSwitch
public static SwitchExpression makeSwitch(Expression switchValue, SwitchOptions options, Expression defaultBody, SwitchCase... cases) -
makeSwitch
public static SwitchExpression makeSwitch(Expression switchValue, Expression defaultBody, MethodInfo comparison, SwitchCase... cases) -
makeSwitch
public static SwitchExpression makeSwitch(Type<?> type, Expression switchValue, Expression defaultBody, SwitchCase... cases) -
makeSwitch
public static SwitchExpression makeSwitch(Expression switchValue, SwitchOptions options, Expression defaultBody, MethodInfo comparison, SwitchCase... cases) -
makeSwitch
public static SwitchExpression makeSwitch(Type<?> type, Expression switchValue, SwitchOptions options, Expression defaultBody, SwitchCase... cases) -
makeSwitch
public static SwitchExpression makeSwitch(Type<?> type, Expression switchValue, Expression defaultBody, MethodInfo comparison, SwitchCase... cases) -
makeSwitch
public static SwitchExpression makeSwitch(Type<?> type, Expression switchValue, SwitchOptions options, Expression defaultBody, MethodInfo comparison, SwitchCase... cases) -
makeSwitch
public static SwitchExpression makeSwitch(Expression switchValue, Expression defaultBody, MethodInfo comparison, ReadOnlyList<SwitchCase> cases) -
makeSwitch
public static SwitchExpression makeSwitch(Expression switchValue, SwitchOptions options, Expression defaultBody, MethodInfo comparison, ReadOnlyList<SwitchCase> cases) -
makeSwitch
public static SwitchExpression makeSwitch(Type<?> type, Expression switchValue, SwitchOptions options, Expression defaultBody, MethodInfo comparison, ReadOnlyList<SwitchCase> cases)
-