Exemple #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();
         }
     }
 }
Exemple #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();
                }
            }
            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();
         }
     }
 }