예제 #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(Expression expression, RenderContext context)
 {
     foreach (AstNode item in expression.Operands)
     {
         context.RenderItem(item);
     }
 }
예제 #3
0
        public void Render(Graphics g)
        {
            var context = new RenderContext {
                Graphics = g
            };

            context.RenderItem(Root);
        }
예제 #4
0
 public override void Render(Body body, RenderContext context)
 {
     foreach (Statement statement in body.Statements)
     {
         context.RenderItem(statement);
         context.NewLine();
     }
     context.RenderEmpty("<statement>", Color.Gray);
     context.NewLine();
 }
예제 #5
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);
            }
        }
예제 #7
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);;
            }
        }
예제 #8
0
 public override void Render(Root node, RenderContext context)
 {
     context.RenderItem(node.Body);
 }