예제 #1
0
        public override void Render(AddOperator node, RenderContext context)
        {
            context.RenderString("(");
            if (node.LeftOperand == null)
            {
                context.RenderItem(Value.Empty);
            }
            else
            {
                context.RenderItem(node.LeftOperand);
            }

            context.RenderString(" + ");

            if (node.RightOperand == null)
            {
                context.RenderItem(Value.Empty);
            }
            else
            {
                context.RenderItem(node.RightOperand);
            }

            context.RenderString(")");
        }
예제 #2
0
 public override void Render(If node, RenderContext context)
 {
     context.RenderString("if", Color.Blue);
     context.RenderString("(");
     if (node.Condition == null)
     {
         context.RenderItem(Value.Empty);
     }
     else
     {
         context.RenderItem(node.Condition);
     }
     context.RenderString(")");
     context.NewLine();
     context.RenderString("{");
     context.NewLine();
     context.Indent(20);
     context.RenderItem(node.Body);
     context.Dedent();
     context.NewLine();
     context.RenderString("}");
 }
        public override void Render(VariableDeclaration node, RenderContext context)
        {
            context.RenderString("var ", Color.Blue);
            if (string.IsNullOrEmpty(node.Name))
            {
                context.RenderEmpty("<identifier>", Color.Red);
            }
            else
            {
                context.RenderString(node.Name);
            }

            context.RenderString(" = ");
            if (node.InitialValue == null)
            {
                context.RenderItem(Value.Empty);
            }
            else
            {
                context.RenderItem(node.InitialValue);
            }
        }
예제 #4
0
        public override void Render(Print node, RenderContext context)
        {
            context.RenderString("print", Color.Blue);

            if (node.Value != null)
            {
                context.RenderEmpty(">", Color.Gray);
                context.RenderItem(node.Value);
            }
            else
            {
                context.RenderEmpty("<Expression>", Color.Red);;
            }
        }
예제 #5
0
 public override void Render(EmptyValue node, RenderContext context)
 {
     context.RenderString("<Expression>", Color.Red);
 }
예제 #6
0
 public override void Render(DivOperator node, RenderContext context)
 {
     context.RenderString(" / ");
 }
예제 #7
0
 public override void Render(MulOperator node, RenderContext context)
 {
     context.RenderString(" * ");
 }
예제 #8
0
 public override void Render(SubOperator node, RenderContext context)
 {
     context.RenderString(" - ");
 }
예제 #9
0
 public override void Render(StringLiteral node, RenderContext context)
 {
     context.RenderString("\"", Color.Black);
     context.RenderString(node.Value, Color.Purple);
     context.RenderString("\"", Color.Black);
 }
예제 #10
0
 public override void Render(IntegerLiteral node, RenderContext context)
 {
     context.RenderString(node.Value.ToString());
 }