public static Expression ModuloChecked(Expression left, Expression right) { return new ArithmeticExpression (left, right, ArithmeticKind.Modulo); }
public static Statement Loop(Expression cond, StatementBlock block) { throw new NotImplementedException (); }
public static Statement Switch(Expression cond, SwitchCase [] cases) { throw new NotImplementedException (); }
public static VariableDeclarationStatement DeclareVariable(TypeInfo type, string name, Expression initializer) { return new VariableDeclarationStatement (type, name, initializer); }
public static Statement IfThen(Expression cond, StatementBlock trueBlock) { return new IfStatement (cond, trueBlock, null); }
public ParenthesizedExpression(Expression exp) { Body = exp; }
public ReturnStatement(Expression value) { Value = value; }
public static Expression OrElse(Expression left, Expression right) { return new LogicalOperationExpression (left, right, LogicalOperationKind.OrElse); }
public static Expression Parenthesized(Expression exp) { return new ParenthesizedExpression (exp); }
public static Expression Or(Expression left, Expression right) { return new ArithmeticExpression (left, right, ArithmeticKind.BitwiseOr); }
public ArithmeticExpression(Expression left, Expression right, ArithmeticKind kind) { Left = left; Right = right; Kind = kind; }
public static Expression NotEqual(Expression left, Expression right) { return new ComparisonExpression (left, right, ComparisonKind.NotEqual); }
public static Expression Not(Expression operand) { if (operand == null) throw new ArgumentNullException ("operand"); return new LogicalNotExpression (operand); }
public static Expression MultiplyChecked(Expression left, Expression right) { return new ArithmeticExpression (left, right, ArithmeticKind.Multiply); }
public LogicalNotExpression(Expression value) { if (value == null) throw new ArgumentNullException ("value"); Value = value; }
public static Expression PropertyOrField(Expression obj, string memberName) { return new FieldAccessExpression (obj, memberName); }
public LogicalOperationExpression(Expression left, Expression right, LogicalOperationKind kind) { Left = left; Right = right; Kind = kind; }
public static Expression RightShift(Expression left, Expression right) { throw new NotImplementedException (); }
public ArrayAccessExpression(Expression array, Expression index) { Array = array; Index = index; }
public static Expression SubtractChecked(Expression left, Expression right) { return new ArithmeticExpression (left, right, ArithmeticKind.Subtract); }
public static Statement CallExpression(Expression exp) { return new CallableExpressionStatement (exp); }
public FieldAccessExpression(Expression target, string memberName) { Target = target; MemberName = memberName; }
public static Statement For(List<Statement> init, Expression cond, Statement cont, StatementBlock body) { return new ForStatement (init, cond, cont, body); }
public ForStatement(List<Statement> init, Expression cond, Statement cont, StatementBlock body) { Initializers = init; Condition = cond; Continuer = cont; Body = body; }
// It does not use StatementBlock to handle else-if statements as IfStatement (i.e. IfStatement(trueBlock, IfStatement(elseIfTrue, finalElseBlock)) etc.) public static Statement IfThenElse(Expression cond, Statement trueBlock, Statement falseBlock) { return new IfStatement (cond, trueBlock, falseBlock); }
public FunctionCallExpression(Expression obj, string name, List<Expression> args) { Target = obj; Name = name; Arguments = args; }
public static Statement Return(Expression value) { return new ReturnStatement (value); }
public IfStatement(Expression cond, Statement trueBlock, Statement falseBlock) { Condition = cond; TrueBlock = trueBlock; FalseBlock = falseBlock; }
public VariableDeclarationStatement(TypeInfo type, string name, Expression initializer) { Type = type; Name = name; Initializer = initializer; }
public static Expression LessThanOrEqual(Expression left, Expression right) { return new ComparisonExpression (left, right, ComparisonKind.LessThanEqual); }