public WhileStatement(Expression expression, Block block) { Expression = expression; Block = block; Expression.Parent = this; Block.Parent = this; }
public AssignStatement(Assignable to, Expression from) { To = to; From = from; To.Parent = this; From.Parent = this; }
public ExpressionPropertyExpression(Expression expression, Identifier identifier) { Expression = expression; Property = identifier.Value; Expression.Parent = this; }
public DivideExpression(Expression leftExpression, Expression rightExpression) { LeftExpression = leftExpression; RightExpression = rightExpression; LeftExpression.Parent = this; RightExpression.Parent = this; }
public MultiplyExpression(Expression leftExpression, Expression rightExpression) { LeftExpression = leftExpression; RightExpression = rightExpression; LeftExpression.Parent = this; RightExpression.Parent = this; }
public ModuloExpression(Expression leftExpression, Expression rightExpression) { LeftExpression = leftExpression; RightExpression = rightExpression; LeftExpression.Parent = this; RightExpression.Parent = this; }
public LessThanExpression(Expression leftExpression, Expression rightExpression) { LeftExpression = leftExpression; RightExpression = rightExpression; LeftExpression.Parent = this; RightExpression.Parent = this; }
public NotEqualExpression(Expression leftExpression, Expression rightExpression) { LeftExpression = leftExpression; RightExpression = rightExpression; LeftExpression.Parent = this; RightExpression.Parent = this; }
public SubstractExpression(Expression leftExpression, Expression rightExpression) { LeftExpression = leftExpression; RightExpression = rightExpression; LeftExpression.Parent = this; RightExpression.Parent = this; }
public MoreThanOrEqualExpression(Expression leftExpression, Expression rightExpression) { LeftExpression = leftExpression; RightExpression = rightExpression; LeftExpression.Parent = this; RightExpression.Parent = this; }
public ShiftLeftExpresion(Expression leftExpression, Expression rightExpression) { LeftExpression = leftExpression; RightExpression = rightExpression; LeftExpression.Parent = this; RightExpression.Parent = this; }
public CastExpression(Type type, Expression expression) { Type = type; Expression = expression; Type.Parent = this; Expression.Parent = this; }
public LetStatement(Identifier identifier, Type type, Expression expression) { Variable = identifier.Value; Type = type; Expression = expression; Type.Parent = this; Expression.Parent = this; }
public IfElseStatement(Expression expression, Block trueBlock, Block falseBlock) { Expression = expression; TrueBlock = trueBlock; FalseBlock = falseBlock; Expression.Parent = this; TrueBlock.Parent = this; FalseBlock.Parent = this; }
public MethodCallExpression(Expression expression, Identifier identifier, Sequence<Expression> parameters) { Expression = expression; Method = identifier.Value; Parameters = parameters; Expression.Parent = this; foreach (var parameter in Parameters) { parameter.Parent = this; } }
public ExpressionStatement(Expression expression) { Expression = expression; Expression.Parent = this; }
public MinusExpression(Expression expression) { Expression = expression; Expression.Parent = this; }
public NegateExpression(Expression expression) { Expression = expression; Expression.Parent = this; }