Ejemplo n.º 1
0
 public override void GenerateCode(ICodeGen gen)
 {
     if (!(this.expression is EmptyExpression))
     {
         this.expression.GenerateCode(gen);
         if (!(this.expression.GetType() is Symbols.VOID))
         {
             gen.Pop();
         }
     }
 }
Ejemplo n.º 2
0
            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();
                }
            }
Ejemplo n.º 3
0
            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();
                }
            }
Ejemplo n.º 4
0
 public override void GenerateCode(ICodeGen gen)
 {
     if (!(this.expression is EmptyExpression))
     {
         this.expression.GenerateCode(gen);
         if (!(this.expression.GetType() is Symbols.VOID))
         {
             gen.Pop();
         }
     }
 }