public WhileStatement(Expression condition, Statement statement) { Condition = condition; Statement = statement; AddChild(condition); AddChild(statement); }
public IfStatement(Expression condition, Statement trueStatement, Statement falseStatement) { Condition = condition; TrueStatement = trueStatement; FalseStatement = falseStatement; AddChild(condition); AddChild(trueStatement); AddChild(falseStatement); }
public ReturnStatement(Expression expression) { Expression = expression; AddChild(expression); }
private void CodeExpression(Expression expression, List<LocalVariable> locals, List<GlobalVariable> globals, FuncParam[] parameters, ILGenerator il, List<Function> allFuncs, LocalBuilder tmpVar) { if (expression is BinaryExpression) CodeBinary(expression as BinaryExpression, locals, globals, parameters, il, allFuncs, tmpVar); else if (expression is FuncCallExpression) CodeCall(expression as FuncCallExpression, locals, globals, parameters, il, allFuncs, tmpVar); else if (expression is GetArrayValueExpression) CodeGetArray(expression as GetArrayValueExpression, locals, globals, parameters, il, allFuncs, tmpVar); else if (expression is GetValueExpression) CodeGet(expression as GetValueExpression, locals, globals, parameters, il); else if (expression is NumberExpression) CodeNumber(expression as NumberExpression, locals, globals, parameters, il); else if (expression is SetArrayValueExpression) CodeSetArray(expression as SetArrayValueExpression, locals, globals, parameters, il, allFuncs, tmpVar); else if (expression is SetValueExpression) CodeSet(expression as SetValueExpression, locals, globals, parameters, il, allFuncs, tmpVar); else if (expression is UnaryExpression) CodeUnary(expression as UnaryExpression, locals, globals, parameters, il, allFuncs, tmpVar); else throw new InvalidDataException(); }
public WriteStatement(Expression expression) { Expression = expression; AddChild(expression); }