Ejemplo n.º 1
0
        public override void CodeGen(OutputContext output)
        {
            if (Properties.Count > 0)
            {
                output.Print("{");
                output.Newline();
                output.Indentation += output.Options.IndentLevel;
                for (var i = 0u; i < Properties.Count; i++)
                {
                    if (i > 0)
                    {
                        output.Print(",");
                        output.Newline();
                    }

                    output.Indent();
                    Properties[i].Print(output);
                }

                output.Newline();
                output.Indentation -= output.Options.IndentLevel;
                output.Indent();
                output.Print("}");
            }
            else
            {
                output.Print("{}");
            }
        }
Ejemplo n.º 2
0
 public override void CodeGen(OutputContext output)
 {
     output.Print("switch");
     output.Space();
     Expression.Print(output, true);
     output.Space();
     if (Body.Count == 0)
     {
         output.Print("{}");
     }
     else
     {
         output.Print("{");
         output.Newline();
         output.Indentation += output.Options.IndentLevel;
         for (var i = 0u; i < Body.Count; i++)
         {
             var branch = (AstSwitchBranch)Body[i];
             output.Indent(true);
             branch.Print(output);
             if (i < Body.Count - 1 && branch.Body.Count > 0)
             {
                 output.Newline();
             }
         }
         output.Indentation -= output.Options.IndentLevel;
         output.Indent();
         output.Print("}");
     };
 }
Ejemplo n.º 3
0
        public override void CodeGen(OutputContext output)
        {
            output.Print("class");
            output.Space();
            if (Name != null)
            {
                Name.Print(output);
                output.Space();
            }

            if (Extends != null)
            {
                var parens = !(Extends is AstSymbolRef) &&
                             !(Extends is AstPropAccess) &&
                             !(Extends is AstClassExpression) &&
                             !(Extends is AstFunction);
                output.Print("extends");
                if (!parens)
                {
                    output.Space();
                }

                Extends.Print(output, parens);
                if (!parens)
                {
                    output.Space();
                }
            }

            if (Properties.Count > 0)
            {
                output.Print("{");
                output.Newline();
                output.Indentation += output.Options.IndentLevel;
                output.Indent();
                for (var i = 0u; i < Properties.Count; i++)
                {
                    if (i > 0)
                    {
                        output.Newline();
                    }

                    output.Indent();
                    Properties[i].Print(output);
                }

                output.Newline();
                output.Indentation -= output.Options.IndentLevel;
                output.Indent();
                output.Print("}");
            }
            else
            {
                output.Print("{}");
            }
        }
Ejemplo n.º 4
0
 public override void CodeGen(OutputContext output)
 {
     output.Print("default:");
     output.Newline();
     for (var i = 0u; i < Body.Count; i++)
     {
         output.Indent();
         Body[i].Print(output);
         output.Newline();
     }
 }
Ejemplo n.º 5
0
 public override void CodeGen(OutputContext output)
 {
     output.Print("case");
     output.Space();
     Expression.Print(output);
     output.Print(":");
     output.Newline();
     for (var i = 0u; i < Body.Count; i++)
     {
         output.Indent();
         Body[i].Print(output);
         output.Newline();
     }
 }
Ejemplo n.º 6
0
        public override void CodeGen(OutputContext output)
        {
            if (HasUseStrictDirective)
            {
                output.Indent();
                output.PrintString("use strict");
                output.Print(";");
                output.Newline();
            }

            for (var i = 0u; i < Body.Count; i++)
            {
                var stmt = Body[i];
                if (!(stmt is AstEmptyStatement))
                {
                    output.Indent();
                    stmt.Print(output);
                    output.Newline();
                    output.Newline();
                }
            }
        }
Ejemplo n.º 7
0
        public override void CodeGen(OutputContext output)
        {
            for (var i = 0u; i < Expressions.Count; i++)
            {
                if (i > 0)
                {
                    output.Comma();
                    if (output.ShouldBreak())
                    {
                        output.Newline();
                        output.Indent();
                    }
                }

                Expressions[i].Print(output);
            }
        }