Example #1
0
        private void printEntry(int index, Output @out)
        {
            Entry      entry    = entries[index];
            Expression key      = entry.key;
            Expression @value   = entry.value;
            bool       isList   = entry.isList;
            bool       multiple = index + 1 >= entries.Count || @value.isMultiple();

            if (isList && key.isInteger() && listLength == key.asInteger())
            {
                if (multiple)
                {
                    @value.printMultiple(@out);
                }
                else
                {
                    @value.print(@out);
                }
                listLength++;
            }
            else if (isObject && key.isIdentifier())
            {
                @out.print(key.asName());
                @out.print(" = ");
                @value.print(@out);
            }
            else
            {
                @out.print("[");
                key.print(@out);
                @out.print("] = ");
                @value.print(@out);
            }
        }
Example #2
0
        public override void print(Output @out)
        {
            bool leftGroup  = this.leftGroup();
            bool rightGroup = this.rightGroup();

            if (leftGroup)
            {
                @out.print("(");
            }
            left.print(@out);
            if (leftGroup)
            {
                @out.print(")");
            }
            @out.print(" ");
            @out.print(op);
            @out.print(" ");
            if (rightGroup)
            {
                @out.print("(");
            }
            right.print(@out);
            if (rightGroup)
            {
                @out.print(")");
            }
        }
Example #3
0
 protected internal static void printBinary(Output @out, string op, Expression left, Expression right)
 {
     left.print(@out);
     @out.print(" ");
     @out.print(op);
     @out.print(" ");
     right.print(@out);
 }
Example #4
0
        public override void print(Output @out)
        {
            List <Expression> args = new List <Expression>(arguments.Length);

            if (isMethodCall())
            {
                Expression obj = function.getTable();
                if (obj.isClosure() || obj.isConstant())
                {
                    @out.print("(");
                    obj.print(@out);
                    @out.print(")");
                }
                else
                {
                    obj.print(@out);
                }
                @out.print(":");
                @out.print(function.getField());
                for (int i = 1; i < arguments.Length; i++)
                {
                    args.Add(arguments[i]);
                }
            }
            else
            {
                if (function.isClosure() || function.isConstant())
                {
                    @out.print("(");
                    function.print(@out);
                    @out.print(")");
                }
                else
                {
                    function.print(@out);
                }
                for (int i = 0; i < arguments.Length; i++)
                {
                    args.Add(arguments[i]);
                }
            }
            @out.print("(");
            Expression.printSequence(@out, args, false, true);
            @out.print(")");
        }
Example #5
0
 public override void print(Output @out)
 {
     @out.print(op);
     if (precedence > expression.precedence)
     {
         @out.print("(");
     }
     expression.print(@out);
     if (precedence > expression.precedence)
     {
         @out.print(")");
     }
 }
Example #6
0
 public override void print(Output @out)
 {
     table.print(@out);
     if (index.isIdentifier())
     {
         @out.print(".");
         @out.print(index.asName());
     }
     else
     {
         @out.print("[");
         index.print(@out);
         @out.print("]");
     }
 }
Example #7
0
 protected internal static void printUnary(Output @out, string op, Expression expression)
 {
     @out.print(op);
     expression.print(@out);
 }
Example #8
0
 protected internal static void printUnary(Output @out, string op, Expression expression)
 {
     @out.print(op);
     expression.print(@out);
 }
Example #9
0
 protected internal static void printBinary(Output @out, string op, Expression left, Expression right)
 {
     left.print(@out);
     @out.print(" ");
     @out.print(op);
     @out.print(" ");
     right.print(@out);
 }