public DeclarationStatement(Types type, string name, Expression expression, Method method) : base(expression) { Type = type; VariableName = name; method.Variables.Add(this); }
public AdditionExpression AdditionExpression(Expression expr1, Expression expr2) { return new AdditionExpression(expr1, expr2); }
public Statement WhileStatement(Expression expression) { return new WhileStatement(expression); }
public ReturnStatement(Expression expression) : base(expression) { }
public Statement(Expression expression) { Expression = expression; }
public AdditionExpression(Expression expr1, Expression expr2) : base(expr1, expr2) { }
public Statement IfStatement(Expression expression) { return new IfStatement(expression); }
public Expression DivisionExpression(Expression expr1, Expression expr2) { return new DivisionExpression(expr1, expr2); }
public Expression MultiplicationExpression(Expression expr1, Expression expr2) { return new MultiplicationExpression(expr1, expr2); }
public LessThanExpression(Expression expr1, Expression expr2) : base(expr1, expr2) { }
public GreaterThanExpression(Expression expr1, Expression expr2) : base(expr1, expr2) { }
public WhileStatement(Expression expression) : base(expression) { Body = new List<Statement>(); }
public RemainderExpression(Expression expr1, Expression expr2) : base(expr1, expr2) { }
public MultiplicationExpression(Expression expr1, Expression expr2) : base(expr1, expr2) { }
public AssignmentStatement AssignmentStatement(string name, Expression expression) { return new AssignmentStatement(name, expression); }
public Statement DeclarationStatement(string typeName, string name, Expression expression) { return new DeclarationStatement(GetTypeFromName(typeName), name, expression, currentMethod); }
public Expression RelationalExpression(string op, Expression expr1, Expression expr2) { switch (op) { case "<": return new LessThanExpression(expr1, expr2); case ">": return new GreaterThanExpression(expr1, expr2); default: throw new ArgumentException("Unknown operator: " + op); } }
public Statement ForStatement(Expression expression) { return new ForStatement(expression); }
public Expression RemainderExpression(Expression expr1, Expression expr2) { return new RemainderExpression(expr1, expr2); }
public Statement ReturnStatement(Expression expression) { return new ReturnStatement(expression); }
public Statement Statement(Expression e) { return new Statement(e); }
public DivisionExpression(Expression expr1, Expression expr2) : base(expr1, expr2) { }
public Expression SubtractionExpression(Expression expr1, Expression expr2) { return new SubtractionExpression(expr1, expr2); }
public AssignmentStatement(string name, Expression expression) : base(expression) { VariableName = name; }
public SubtractionExpression(Expression expr1, Expression expr2) : base(expr1, expr2) { }