public override void GenerateCode(ICodeGen gen) { if (!(this.expression is EmptyExpression)) { this.expression.GenerateCode(gen); if (!(this.expression.GetType() is Symbols.VOID)) { gen.Pop(); } } }
public override void GenerateCode(ICodeGen gen) { this.arguments.Reverse(); foreach (Expression arg in this.arguments) { arg.GenerateCode(gen); } this.arguments.Reverse(); this.operand.GenerateCode(gen); gen.Call((Symbols.Func) this.operand.GetType()); for (int i = 0; i < this.arguments.Count; ++i) { gen.Pop(); } }
public override void GenerateCode(ICodeGen gen) { this.arguments.Reverse(); foreach (Expression arg in this.arguments) { arg.GenerateCode(gen); } this.arguments.Reverse(); this.operand.GenerateCode(gen); gen.Call((Symbols.Func)this.operand.GetType()); for (int i = 0; i < this.arguments.Count; ++i ) { gen.Pop(); } }
public override void GenerateCode(ICodeGen gen) { if (!(this.expression is EmptyExpression)) { this.expression.GenerateCode(gen); if (!(this.expression.GetType() is Symbols.VOID)) { gen.Pop(); } } }