Esempio n. 1
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
 {
     writer.Write("return ");
     Expression.Write(writer, formatter);
     if (semicolon)
         writer.WriteLine(";");
 }
Esempio n. 2
0
        void Write(IndentedTextWriter writer, GmlFormatter formatter, bool semicolon, bool curlyBraces)
        {
            Sequence seq;

            if (curlyBraces)
            {
                writer.WriteLine("{");
                writer.Indent++;
            }
            if (First.Kind == StatementKind.Sequence)
            {
                // Write the sequence without curly braces.
                seq = (Sequence)First;
                seq.Write(writer, formatter, semicolon, false);
            }
            else
            {
                First.Write(writer, formatter);
            }
            if (Second.Kind == StatementKind.Sequence)
            {
                // Write the sequence without curly braces.
                seq = (Sequence)Second;
                seq.Write(writer, formatter, semicolon, false);
            }
            else
            {
                Second.Write(writer, formatter);
            }
            if (curlyBraces)
            {
                writer.Indent--;
                writer.WriteLine("}");
            }
        }
Esempio n. 3
0
 internal static IndentedTextWriter GetIndentedTextWriter(TextWriter writer, GmlFormatter formatter)
 {
     return(new IndentedTextWriter(writer, formatter.TabString)
     {
         NewLine = formatter.Newline
     });
 }
Esempio n. 4
0
 void Write(IndentedTextWriter writer, GmlFormatter formatter, bool semicolon, bool curlyBraces)
 {
     Sequence seq;
     if (curlyBraces)
     {
         writer.WriteLine("{");
         writer.Indent++;
     }
     if (First.Kind == StatementKind.Sequence)
     {
         // Write the sequence without curly braces.
         seq = (Sequence)First;
         seq.Write(writer, formatter, semicolon, false);
     }
     else
         First.Write(writer, formatter);
     if (Second.Kind == StatementKind.Sequence)
     {
         // Write the sequence without curly braces.
         seq = (Sequence)Second;
         seq.Write(writer, formatter, semicolon, false);
     }
     else
         Second.Write(writer, formatter);
     if (curlyBraces)
     {
         writer.Indent--;
         writer.WriteLine("}");
     }
 }
Esempio n. 5
0
        internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
        {
            var indent = writer.Indent;

            if (indent != 0) writer.Indent--;
            writer.WriteLine("default:");
            if (indent != 0) writer.Indent++;
        }
Esempio n. 6
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
 {
     Lefthand.Write(writer, formatter);
     writer.Write(string.Format("{1}{0}{1}", Operator, formatter.Padding));
     Expression.Write(writer, formatter);
     if (semicolon)
         writer.WriteLine(";");
 }
Esempio n. 7
0
        public virtual string ToString(GmlFormatter formatter)
        {
            using (var sw = new StringWriter())
            {
                Write(sw, formatter);

                return(sw.ToString());
            }
        }
Esempio n. 8
0
        public virtual string ToString(GmlFormatter formatter)
        {
            using (var sw = new StringWriter())
            {
                Write(sw, formatter);

                return sw.ToString();
            }
        }
Esempio n. 9
0
        internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
        {
            var indent = writer.Indent;

            if (indent != 0) writer.Indent--;
            writer.Write("case ");
            Expression.Write(writer, formatter);
            writer.WriteLine(":");
            if (indent != 0) writer.Indent++;
        }
Esempio n. 10
0
        public void Write(TextWriter tw, GmlFormatter formatter = null)
        {
            if (formatter == null)
                formatter = GmlFormatter.Default;

            using (var writer = GetIndentedTextWriter(tw, formatter))
            {
                Write(writer, formatter);
            }
        }
Esempio n. 11
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
 {
     writer.Write(string.Concat("with", formatter.Padding, "("));
     Instance.Write(writer, formatter);
     writer.WriteLine(")");
     if (Body.Kind != StatementKind.Sequence)
         writer.Indent++;
     Body.Write(writer, formatter);
     if (Body.Kind != StatementKind.Sequence)
         writer.Indent--;
 }
Esempio n. 12
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter)
 {
     writer.Write(Function.Name + "(");
     for (int i = 0; i < Expressions.Length; i++)
     {
         if (i != 0)
             writer.Write("," + formatter.Padding);
         Expressions[i].Write(writer, formatter);
     }
     writer.Write(")");
 }
Esempio n. 13
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
 {
     writer.Write(string.Concat("switch", formatter.Padding, "("));
     Expression.Write(writer, formatter);
     writer.WriteLine(")");
     writer.WriteLine("{");
     writer.Indent++;
     foreach (var stmt in Statements)
         stmt.Write(writer, formatter);
     writer.Indent--;
     writer.WriteLine("}");
 }
Esempio n. 14
0
        public void Write(TextWriter tw, GmlFormatter formatter = null)
        {
            if (formatter == null)
            {
                formatter = GmlFormatter.Default;
            }

            using (var writer = GetIndentedTextWriter(tw, formatter))
            {
                Write(writer, formatter);
            }
        }
Esempio n. 15
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
 {
     writer.Write(string.Concat("for", formatter.Padding, "("));
     Initializer.Write(writer, formatter, false);
     writer.Write(";" + formatter.Padding);
     Test.Write(writer, formatter);
     writer.Write(";" + formatter.Padding);
     Iterator.Write(writer, formatter, false);
     writer.WriteLine(")");
     if (Body.Kind != StatementKind.Sequence)
         writer.Indent++;
     Body.Write(writer, formatter);
     if (Body.Kind != StatementKind.Sequence)
         writer.Indent--;
 }
Esempio n. 16
0
        internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
        {
            writer.Write("globalvar");
            if (Variables.Any())
                writer.Write(" ");

            for (var i = 0; i < Variables.Length; i++)
            {
                if (i != 0)
                    writer.Write("," + formatter.Padding);

                writer.Write(Variables[i]);
            }
            if (semicolon)
                writer.WriteLine(";");
        }
Esempio n. 17
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
 {
     writer.Write("do");
     if (Body.Kind != StatementKind.Sequence && string.IsNullOrEmpty(formatter.Newline))
         writer.Write(" ");
     writer.WriteLine();
     if (Body.Kind != StatementKind.Sequence)
         writer.Indent++;
     Body.Write(writer, formatter);
     if (Body.Kind != StatementKind.Sequence)
         writer.Indent--;
     writer.Write(string.Concat("while", formatter.Padding, "("));
     Expression.Write(writer, formatter);
     writer.Write(")");
     if (semicolon)
         writer.WriteLine(";");
 }
Esempio n. 18
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter)
 {
     if (Value.IsString)
         writer.Write(Value.String.Contains("\"") ? string.Format("'{0}'", Value.String) : string.Format("\"{0}\"", Value.String));
     else
     {
         writer.Write((long)Math.Floor(Value.Real));
         if (Value.Real - Math.Floor(Value.Real) != 0)
         {
             writer.Write(".");
             // TODO: Do this correctly.
             var frac = (long)(Math.Floor(Value.Real) * 1000000000000000.0);
             while (frac % 10 == 0)
                 frac /= 10;
             writer.Write(frac);
         }
     }
 }
Esempio n. 19
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
 {
     writer.Write(string.Concat("if", formatter.Padding, "("));
     Expression.Write(writer, formatter);
     writer.WriteLine(")");
     if (Body.Kind != StatementKind.Sequence)
         writer.Indent++;
     Body.Write(writer, formatter);
     if (Body.Kind != StatementKind.Sequence)
         writer.Indent--;
     if (Else != null && Else.Kind != StatementKind.Nop)
     {
         if (Else.Kind != StatementKind.Sequence)
             writer.Indent++;
         Else.Write(writer, formatter);
         if (Else.Kind != StatementKind.Sequence)
             writer.Indent--;
     }
 }
Esempio n. 20
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter)
 {
     if (Instance != null)
     {
         Instance.Write(writer, formatter);
         writer.Write(".");
     }
     writer.Write(Name);
     if (Indices.Length != 0)
     {
         writer.Write("[");
         for (int i = 0; i < Indices.Length; i++)
         {
             if (i != 0)
                 writer.Write("," + formatter.Padding);
             Indices[i].Write(writer, formatter);
         }
         writer.Write("]");
     }
 }
Esempio n. 21
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter)
 {
     writer.Write("~");
     Operand.Write(writer, formatter);
 }
Esempio n. 22
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter)
 { }
Esempio n. 23
0
 internal static IndentedTextWriter GetIndentedTextWriter(TextWriter writer, GmlFormatter formatter)
 {
     return new IndentedTextWriter(writer, formatter.TabString) { NewLine = formatter.Newline };
 }
Esempio n. 24
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter)
 {
     // Id is not a valid as an expression, as it is only used during parsing.
     throw new InvalidOperationException();
 }
Esempio n. 25
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter)
 {
     Left.Write(writer, formatter);
     writer.Write(string.Concat(formatter.Padding, Operator, formatter.Padding));
     Right.Write(writer, formatter);
 }
Esempio n. 26
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
 {
     writer.Write(string.Concat("switch", formatter.Padding, "("));
     Expression.Write(writer, formatter);
     writer.WriteLine(")");
     writer.WriteLine("{");
     writer.Indent++;
     foreach (var stmt in Statements)
     {
         stmt.Write(writer, formatter);
     }
     writer.Indent--;
     writer.WriteLine("}");
 }
Esempio n. 27
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
 {
     // Write nothing
 }
Esempio n. 28
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter)
 {
     writer.Write("(");
     InnerExpression.Write(writer, formatter);
     writer.Write(")");
 }
Esempio n. 29
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter)
 {
     writer.Write("(");
     InnerExpression.Write(writer, formatter);
     writer.Write(")");
 }
Esempio n. 30
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter)
 {
     if (Value.IsString)
     {
         writer.Write(Value.String.Contains("\"") ? string.Format("'{0}'", Value.String) : string.Format("\"{0}\"", Value.String));
     }
     else
     {
         writer.Write((long)Math.Floor(Value.Real));
         if (Value.Real - Math.Floor(Value.Real) != 0)
         {
             writer.Write(".");
             // TODO: Do this correctly.
             var frac = (long)(Math.Floor(Value.Real) * 1000000000000000.0);
             while (frac % 10 == 0)
             {
                 frac /= 10;
             }
             writer.Write(frac);
         }
     }
 }
Esempio n. 31
0
 abstract internal void Write(IndentedTextWriter writer, GmlFormatter formatter);
Esempio n. 32
0
        internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
        {
            var indent = writer.Indent;

            if (indent != 0)
            {
                writer.Indent--;
            }
            writer.WriteLine("default:");
            if (indent != 0)
            {
                writer.Indent++;
            }
        }
Esempio n. 33
0
 public override string ToString(GmlFormatter formatter)
 {
     return Name;
 }
Esempio n. 34
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter)
 {
     Write(writer, formatter, true);
 }
Esempio n. 35
0
 public override string ToString(GmlFormatter formatter)
 {
     return(Name);
 }
Esempio n. 36
0
 internal abstract void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon);
Esempio n. 37
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter)
 {
     if (Instance != null)
     {
         Instance.Write(writer, formatter);
         writer.Write(".");
     }
     writer.Write(Name);
     if (Indices.Length != 0)
     {
         writer.Write("[");
         for (int i = 0; i < Indices.Length; i++)
         {
             if (i != 0)
             {
                 writer.Write("," + formatter.Padding);
             }
             Indices[i].Write(writer, formatter);
         }
         writer.Write("]");
     }
 }
Esempio n. 38
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
 {
     writer.WriteLine("exit");
     if (semicolon)
     {
         writer.WriteLine(";");
     }
 }
Esempio n. 39
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter)
 {
     writer.Write(Function.Name + "(");
     for (int i = 0; i < Expressions.Length; i++)
     {
         if (i != 0)
         {
             writer.Write("," + formatter.Padding);
         }
         Expressions[i].Write(writer, formatter);
     }
     writer.Write(")");
 }
Esempio n. 40
0
        internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
        {
            var indent = writer.Indent;

            if (indent != 0)
            {
                writer.Indent--;
            }
            writer.Write("case ");
            Expression.Write(writer, formatter);
            writer.WriteLine(":");
            if (indent != 0)
            {
                writer.Indent++;
            }
        }
Esempio n. 41
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter)
 {
     writer.Write("~");
     Operand.Write(writer, formatter);
 }
Esempio n. 42
0
 internal override void Write(IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
 {
     // Write the sequence with curly braces.
     Write(writer, formatter, semicolon, true);
 }
Esempio n. 43
0
 internal abstract void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon);
Esempio n. 44
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
 {
     writer.Write("return ");
     Expression.Write(writer, formatter);
     if (semicolon)
     {
         writer.WriteLine(";");
     }
 }
Esempio n. 45
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
 {
     Lefthand.Write(writer, formatter);
     writer.Write(string.Format("{1}{0}{1}", Operator, formatter.Padding));
     Expression.Write(writer, formatter);
     if (semicolon)
     {
         writer.WriteLine(";");
     }
 }
Esempio n. 46
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
 {
     writer.Write(string.Concat("for", formatter.Padding, "("));
     Initializer.Write(writer, formatter, false);
     writer.Write(";" + formatter.Padding);
     Test.Write(writer, formatter);
     writer.Write(";" + formatter.Padding);
     Iterator.Write(writer, formatter, false);
     writer.WriteLine(")");
     if (Body.Kind != StatementKind.Sequence)
     {
         writer.Indent++;
     }
     Body.Write(writer, formatter);
     if (Body.Kind != StatementKind.Sequence)
     {
         writer.Indent--;
     }
 }
Esempio n. 47
0
 internal override void Write(IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
 {
     // Write the sequence with curly braces.
     Write(writer, formatter, semicolon, true);
 }
Esempio n. 48
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
 {
     // Write nothing
 }
Esempio n. 49
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
 {
     writer.Write(string.Concat("while", formatter.Padding, "("));
     Expression.Write(writer, formatter);
     writer.WriteLine(")");
     if (Body.Kind != StatementKind.Sequence)
     {
         writer.Indent++;
     }
     Body.Write(writer, formatter);
     if (Body.Kind != StatementKind.Sequence)
     {
         writer.Indent--;
     }
 }
Esempio n. 50
0
        internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
        {
            writer.Write("var");

            if (Variables.Any())
            {
                writer.Write(" ");
            }

            for (var i = 0; i < Variables.Length; i++)
            {
                if (i != 0)
                {
                    writer.Write("," + formatter.Padding);
                }

                writer.Write(Variables[i]);
            }
            if (semicolon)
            {
                writer.WriteLine(";");
            }
        }
Esempio n. 51
0
 abstract internal void Write(IndentedTextWriter writer, GmlFormatter formatter);
Esempio n. 52
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter)
 {
     // Id is not a valid as an expression, as it is only used during parsing.
     throw new InvalidOperationException();
 }
Esempio n. 53
0
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon)
 {
     writer.WriteLine("continue");
     if (semicolon)
         writer.WriteLine(";");
 }
 internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter)
 {
     Left.Write(writer, formatter);
     writer.Write(string.Concat(formatter.Padding, Operator, formatter.Padding));
     Right.Write(writer, formatter);
 }