Ejemplo n.º 1
0
 public override void print(Printer printer, Printer.Flags flags)
 {
     printer.addNode(node);
     printer.addChar('[');
     printer.addArg(index);
     printer.addChar(']');
 }
Ejemplo n.º 2
0
 public override void print(Printer printer, Printer.Flags flags)
 {
     printer.addString("while (");
     printer.addArg(cond);
     printer.addString(") ");
     printer.addNode(loop);
 }
Ejemplo n.º 3
0
 public override void print(Printer printer, Printer.Flags flags)
 {
     printer.addString($"var {name}");
     if (value != null)
     {
         printer.addString(" = ");
         printer.addArg(value);
     }
 }
Ejemplo n.º 4
0
 public override void print(Printer printer, Printer.Flags flags)
 {
     printer.addNode(left);
     printer.addString(" ");
     if (type != Token.BinOpType.Set)
     {
         printer.addString(type.GetAttribute <Token.OpAttribute>()?.name);
     }
     printer.addString("= ");
     printer.addArg(right);
 }
Ejemplo n.º 5
0
 public override void print(Printer printer, Printer.Flags flags)
 {
     printer.addString("for (");
     printer.addNode(init);
     printer.addString("; ");
     printer.addArg(cond);
     printer.addString("; ");
     printer.addNode(post);
     printer.addString(") ");
     printer.addNode(loop);
 }
Ejemplo n.º 6
0
 public override void print(Printer printer, Printer.Flags flags)
 {
     if (node != null)
     {
         printer.addString("return ");
         printer.addArg(node);
     }
     else
     {
         printer.addString("exit");
     }
 }
Ejemplo n.º 7
0
            public override void print(Printer printer, Printer.Flags flags)
            {
                switch (nodes.Count)
                {
                case 0:
                    if ((flags & Printer.Flags.InBlock) == 0)
                    {
                        printer.addString("{}");
                    }
                    break;

                case 1:
                    printer.addNode(nodes[0]);
                    break;

                default:
                    var wrap = (flags & Printer.Flags.InBlock) == 0;
                    if (wrap)
                    {
                        printer.addString("{");
                        printer.addLine(1);
                    }
                    //
                    var sep = false;
                    foreach (var node in nodes)
                    {
                        if (sep)
                        {
                            printer.addLine();
                        }
                        else
                        {
                            sep = true;
                        }
                        printer.addNode(node, Printer.Flags.InBlock);
                    }
                    //
                    if (wrap)
                    {
                        printer.addLine(-1);
                        printer.addString("}");
                    }
                    break;
                }
            }
Ejemplo n.º 8
0
            public override void print(Printer printer, Printer.Flags flags)
            {
                var wrap = (flags & Printer.Flags.InPar) == 0;

                if (wrap)
                {
                    printer.addString("(");
                }
                printer.addNode(left);
                printer.addString(" ");
                printer.addString(type.GetAttribute <Token.OpAttribute>()?.name);
                printer.addString(" ");
                printer.addNode(right);
                if (wrap)
                {
                    printer.addString(")");
                }
            }
Ejemplo n.º 9
0
            public override void print(Printer printer, Printer.Flags flags)
            {
                printer.addString("[");
                var sep = false;

                foreach (var arg in values)
                {
                    if (sep)
                    {
                        printer.addString(", ");
                    }
                    else
                    {
                        sep = true;
                    }
                    printer.addArg(arg);
                }
                printer.addString("]");
            }
Ejemplo n.º 10
0
 public override void print(Printer printer, Printer.Flags flags)
 {
     printer.addString("if (");
     printer.addArg(@if);
     printer.addString(") ");
     // prefer {} if there is an else-branch
     if (@else != null)
     {
         printer.addBlock(then);
     }
     else
     {
         printer.addNode(then);
     }
     if (@else != null)
     {
         printer.addString(" else ");
         printer.addNode(@else);
     }
 }
Ejemplo n.º 11
0
            public override void print(Printer printer, Printer.Flags flags)
            {
                printer.addNode(node);
                printer.addString("(");
                var sep = false;

                foreach (var arg in args)
                {
                    if (sep)
                    {
                        printer.addString(", ");
                    }
                    else
                    {
                        sep = true;
                    }
                    printer.addArg(arg);
                }
                printer.addString(")");
            }
Ejemplo n.º 12
0
 public override void print(Printer printer, Printer.Flags flags)
 {
     printer.addString(value);
 }
Ejemplo n.º 13
0
 public override void print(Printer printer, Printer.Flags flags)
 {
     printer.addString("continue");
 }
Ejemplo n.º 14
0
 public override void print(Printer printer, Printer.Flags flags)
 {
     printer.addString("break");
 }
Ejemplo n.º 15
0
 public override void print(Printer printer, Printer.Flags flags)
 {
     printer.addString("/* local */");
     base.print(printer, flags);
 }
Ejemplo n.º 16
0
 public override void print(Printer printer, Printer.Flags flags)
 {
     printer.addNode(node);
     printer.addChar('.');
     printer.addString(field);
 }
Ejemplo n.º 17
0
 public override void print(Printer printer, Printer.Flags flags)
 {
     printer.addString(type.GetAttribute <Token.OpAttribute>()?.name);
     printer.addNode(node);
 }
Ejemplo n.º 18
0
 public virtual void print(Printer printer, Printer.Flags flags)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 19
0
 public override void print(Printer printer, Printer.Flags flags)
 {
     printer.addString("\"" + value + "\"");
 }