示例#1
0
        public override void Print(IndentTextWriter writer)
        {
            writer.WriteIndent();
            writer.WriteLine("Conditional");

            writer.WriteIndent();
            writer.WriteLine("-Expression");

            writer.Indent += 2;
            Condition.Print(writer);
            writer.Indent -= 2;

            writer.WriteIndent();
            writer.WriteLine("-True");

            writer.Indent += 2;
            IfTrue.Print(writer);
            writer.Indent -= 2;

            writer.WriteIndent();
            writer.WriteLine("-False");

            writer.Indent += 2;
            IfFalse.Print(writer);
            writer.Indent -= 2;
        }
示例#2
0
        public override void Print(IndentTextWriter writer)
        {
            writer.WriteIndent();
            writer.WriteLine("List Comprehension");

            writer.WriteIndent();
            writer.WriteLine("-Body");

            writer.Indent += 2;
            Body.Print(writer);
            writer.Indent -= 2;
        }
示例#3
0
        public override void Print(IndentTextWriter writer)
        {
            writer.WriteIndent();
            writer.WriteLine("Object");

            foreach (var value in Values)
            {
                writer.WriteIndent();
                writer.WriteLine("-" + value.Key);

                writer.Indent += 2;
                value.Value.Print(writer);
                writer.Indent -= 2;
            }
        }
示例#4
0
        public override void Print(IndentTextWriter writer)
        {
            writer.WriteIndent();
            writer.WriteLine("Yield");

            writer.Indent++;
            Value.Print(writer);
            writer.Indent--;
        }
示例#5
0
        public override void Print(IndentTextWriter writer)
        {
            writer.WriteIndent();
            writer.WriteLine(IsReadOnly ? "Const": "Var");

            foreach (var declaration in Declarations)
            {
                writer.WriteIndent();
                writer.WriteLine("-" + declaration.Name + (declaration.Initializer != null ? " =" : ""));

                if (declaration.Initializer != null)
                {
                    writer.Indent += 2;
                    declaration.Initializer.Print(writer);
                    writer.Indent -= 2;
                }
            }
        }
示例#6
0
        public override void Print(IndentTextWriter writer)
        {
            writer.WriteIndent();
            writer.WriteLine("Prefix {0}", Operation);

            writer.Indent++;
            Right.Print(writer);
            writer.Indent--;
        }
示例#7
0
        public override void Print(IndentTextWriter writer)
        {
            writer.WriteIndent();
            writer.WriteLine("Field {0}", Name);

            writer.Indent++;
            Left.Print(writer);
            writer.Indent--;
        }
示例#8
0
        public override void Print(IndentTextWriter writer)
        {
            writer.WriteIndent();
            writer.WriteLine("While");

            writer.WriteIndent();
            writer.WriteLine("-Condition");

            writer.Indent += 2;
            Condition.Print(writer);
            writer.Indent -= 2;

            writer.WriteIndent();
            writer.WriteLine("-Do");

            writer.Indent += 2;
            Block.Print(writer);
            writer.Indent -= 2;
        }
示例#9
0
        public override void Print(IndentTextWriter writer)
        {
            writer.WriteIndent();
            writer.WriteLine("Indexer");

            writer.WriteIndent();
            writer.WriteLine("-Left");

            writer.Indent += 2;
            Left.Print(writer);
            writer.Indent += 2;

            writer.WriteIndent();
            writer.WriteLine("-Index");

            writer.Indent += 2;
            Index.Print(writer);
            writer.Indent -= 2;
        }
示例#10
0
        public override void Print(IndentTextWriter writer)
        {
            writer.WriteIndent();
            writer.WriteLine("Pipeline");

            writer.Indent++;
            Left.Print(writer);
            Right.Print(writer);
            writer.Indent--;
        }
示例#11
0
        public override void Print(IndentTextWriter writer)
        {
            writer.WriteIndent();
            writer.WriteLine("Foreach - {0}", Identifier);

            writer.WriteIndent();
            writer.WriteLine("-Expression");

            writer.Indent += 2;
            Expression.Print(writer);
            writer.Indent -= 2;

            writer.WriteIndent();
            writer.WriteLine("-Block");

            writer.Indent += 2;
            Block.Print(writer);
            writer.Indent -= 2;
        }
示例#12
0
        public override void Print(IndentTextWriter writer)
        {
            writer.WriteIndent();
            writer.WriteLine("For");

            if (Initializer != null)
            {
                writer.WriteIndent();
                writer.WriteLine("-Initializer");

                writer.Indent += 2;
                Initializer.Print(writer);
                writer.Indent -= 2;
            }

            if (Condition != null)
            {
                writer.WriteIndent();
                writer.WriteLine("-Condition");

                writer.Indent += 2;
                Condition.Print(writer);
                writer.Indent -= 2;
            }

            if (Increment != null)
            {
                writer.WriteIndent();
                writer.WriteLine("-Increment");

                writer.Indent += 2;
                Increment.Print(writer);
                writer.Indent -= 2;
            }

            writer.WriteIndent();
            writer.WriteLine("-Block");

            writer.Indent += 2;
            Block.Print(writer);
            writer.Indent -= 2;
        }
示例#13
0
        public override void Print(IndentTextWriter writer)
        {
            writer.WriteIndent();
            writer.WriteLine("Switch");

            writer.WriteIndent();
            writer.WriteLine("-Expression");

            writer.Indent += 2;
            Expression.Print(writer);
            writer.Indent -= 2;

            foreach (var branch in Branches)
            {
                writer.WriteIndent();
                writer.WriteLine("-Cases");

                writer.Indent += 2;
                foreach (var condition in branch.Conditions)
                {
                    condition.Print(writer);
                }
                writer.Indent -= 2;

                writer.WriteIndent();
                writer.WriteLine(" Do");

                writer.Indent += 2;
                branch.Block.Print(writer);
                writer.Indent -= 2;
            }

            if (DefaultBlock != null)
            {
                writer.WriteIndent();
                writer.WriteLine("-Default");

                writer.Indent += 2;
                DefaultBlock.Print(writer);
                writer.Indent -= 2;
            }
        }
示例#14
0
        public override void Print(IndentTextWriter writer)
        {
            var discardResult = Parent == null || Parent is BlockExpression;

            writer.WriteIndent();
            writer.WriteLine("Postfix {0}" + (discardResult ? " - Result not used" : ""), Operation);

            writer.Indent++;
            Left.Print(writer);
            writer.Indent--;
        }
示例#15
0
        public override void Print(IndentTextWriter writer)
        {
            writer.WriteIndent();
            writer.WriteLine("Return");

            if (Value != null)
            {
                writer.Indent++;
                Value.Print(writer);
                writer.Indent--;
            }
        }
示例#16
0
        public override void Print(IndentTextWriter writer)
        {
            writer.WriteIndent();
            writer.WriteLine("Sequence " + Name);

            writer.WriteIndent();
            writer.WriteLine("-Arguments: {0}", string.Join(", ", Arguments));

            if (OtherArguments != null)
            {
                writer.WriteIndent();
                writer.WriteLine("-Other Arguments: {0}", OtherArguments);
            }

            writer.WriteIndent();
            writer.WriteLine("-Block");

            writer.Indent += 2;
            Block.Print(writer);
            writer.Indent -= 2;
        }
示例#17
0
        public override void Print(IndentTextWriter writer)
        {
            writer.WriteIndent();
            writer.WriteLine("Array");

            writer.Indent++;
            foreach (var value in Values)
            {
                value.Print(writer);
            }
            writer.Indent--;
        }
示例#18
0
        public override void Print(IndentTextWriter writer)
        {
            writer.WriteIndent();
            writer.WriteLine("Call");

            writer.WriteIndent();
            writer.WriteLine("-Expression");

            writer.Indent += 2;
            Method.Print(writer);
            writer.Indent -= 2;

            writer.WriteIndent();
            writer.WriteLine("-Arguments");

            writer.Indent += 2;
            foreach (var arg in Arguments)
            {
                arg.Print(writer);
            }
            writer.Indent -= 2;
        }
示例#19
0
        public override void Print(IndentTextWriter writer)
        {
            writer.WriteIndent();
            writer.WriteLine("If Statement");

            var first = true;

            foreach (var branch in Branches)
            {
                writer.WriteIndent();
                writer.WriteLine(first ? "-If" : "-ElseIf");
                first = false;

                writer.Indent += 2;
                branch.Condition.Print(writer);
                writer.Indent -= 2;

                writer.WriteIndent();
                writer.WriteLine(" Do");

                writer.Indent += 2;
                branch.Block.Print(writer);
                writer.Indent -= 2;
            }

            if (Else != null)
            {
                writer.WriteIndent();
                writer.WriteLine("-Else");

                writer.WriteIndent();
                writer.WriteLine(" Do");

                writer.Indent += 2;
                Else.Block.Print(writer);
                writer.Indent -= 2;
            }
        }
示例#20
0
 public override void Print(IndentTextWriter writer)
 {
     writer.WriteIndent();
     writer.WriteLine("undefined");
 }
示例#21
0
 public override void Print(IndentTextWriter writer)
 {
     writer.WriteIndent();
     writer.WriteLine("number: {0}", Value);
 }
示例#22
0
 public override void Print(IndentTextWriter writer)
 {
     writer.WriteIndent();
     writer.WriteLine("Continue");
 }
示例#23
0
 public override void Print(IndentTextWriter writer)
 {
     writer.WriteIndent();
     writer.WriteLine("YieldBreak");
 }
示例#24
0
 public override void Print(IndentTextWriter writer)
 {
     writer.WriteIndent();
     writer.WriteLine("string: \"{0}\"", Value);
 }
示例#25
0
 public override void Print(IndentTextWriter writer)
 {
     writer.WriteIndent();
     writer.WriteLine("identifier: {0}", Name);
 }
示例#26
0
 public override void Print(IndentTextWriter writer)
 {
     writer.WriteIndent();
     writer.WriteLine("global");
 }