public StatementListNode(NodeArgs args, AstNodeList statements) : base(args)
 {
     ChildNodes.Clear();
     foreach (AstNode stmt in statements)
     {
         AddChild(null, stmt);
     }
 }
Example #2
0
 public BinExprNode(NodeArgs args, AstNode left, string op, AstNode right) : base(args)
 {
     ChildNodes.Clear();
     Left = left;
     AddChild("Arg", Left);
     Op    = op;
     Right = right;
     AddChild("Arg", Right);
     //Flags |= AstNodeFlags.TypeBasedDispatch;
 }
Example #3
0
 public CondClauseNode(NodeArgs args, AstNode test, StatementListNode expressions) : base(args)
 {
     ChildNodes.Clear();
     this.Role = "Clause";
     Test      = test;
     Test.Role = "Test";
     ChildNodes.Add(Test);
     Expressions      = expressions;
     Expressions.Role = "Command";
     ChildNodes.Add(Expressions);
 }
Example #4
0
 public UnExprNode(NodeArgs args, string op, AstNode arg) : base(args)
 {
     ChildNodes.Clear();
     Op = op;
     if (!Op.EndsWith("U"))
     {
         Op += "U"; //Unary operations are marked as "+U", "-U", "!U"
     }
     Arg = arg;
     ChildNodes.Add(arg);
     //Flags |= AstNodeFlags.TypeBasedDispatch;
 }
 public FunctionCallNode(NodeArgs args, VarRefNode name, AstNodeList arguments) : base(args)
 {
     ChildNodes.Clear();
     NameRef        = name;
     NameRef.Flags |= AstNodeFlags.SuppressNotDefined;
     AddChild("Name", NameRef);
     Arguments = arguments;
     foreach (AstNode arg in Arguments)
     {
         AddChild("Arg", arg);
     }
 }//constructor
 public AnonFunctionNode(NodeArgs args, AstNode parameters, AstNode body) : base(args)
 {
     ChildNodes.Clear();
     Parameters = parameters;
     AddChild("Params", Parameters);
     Body = body;
     AddChild("Body", Body);
     foreach (VarRefNode prm in Parameters.ChildNodes)
     {
         prm.Flags |= AstNodeFlags.AllocateSlot;
     }
     BindingInfo = new FunctionBindingInfo(null, Parameters.ChildNodes.Count, this.Body.Evaluate, this, FunctionFlags.IsLocal);
 }
Example #7
0
        public AssigmentNode(NodeArgs args, AstNode lvalue, AstNode expression) : base(args)
        {
            ChildNodes.Clear();
            var Identifier = lvalue as VarRefNode;

            if (Identifier == null)
            {
                args.Context.ReportError(lvalue.Location, "Expected identifier.");
                return;
            }
            Identifier.Flags |= AstNodeFlags.AllocateSlot | AstNodeFlags.NotRValue;
            Identifier.Access = AccessType.Write;
            AddChild("Name", Identifier);
            Expression = expression;
            AddChild("Expr", Expression);
        }
Example #8
0
 public CondFormNode(NodeArgs args, AstNodeList clauses, AstNode elseClause) : base(args)
 {
     ChildNodes.Clear();
     Clauses = clauses;
     foreach (AstNode clause in clauses)
     {
         clause.Role = "Arg";
         ChildNodes.Add(clause);
     }
     ElseClause = elseClause;
     if (ElseClause != null)
     {
         ElseClause.Role = "else";
         ChildNodes.Add(ElseClause);
     }
 }
Example #9
0
        public IfNode(NodeArgs args, AstNode test, AstNode ifTrue, AstNode ifFalse) : base(args)
        {
            ChildNodes.Clear();

            Test = test;
            AddChild("Test", Test);

            IfTrue = ifTrue;
            if (IfTrue.IsEmpty())
            {
                IfTrue = null;
            }
            AddChild("IfTrue", IfTrue);

            IfFalse = ifFalse;
            if (IfFalse.IsEmpty())
            {
                IfFalse = null;
            }
            AddChild("IfFalse", IfFalse);
        }
Example #10
0
 public UnExprNode(NodeArgs args) : this(args, GetContent(args.ChildNodes[0]), args.ChildNodes[1])
 {
 }
 public StatementListNode(NodeArgs args) : base(args)
 {
 }
Example #12
0
 public VarRefNode(NodeArgs args) : this(args, args.ChildNodes[0])
 {
 }
Example #13
0
 public VarRefNode(NodeArgs args, string name) : base(args)
 {
     ChildNodes.Clear();
     Name = name;
 }
Example #14
0
 public VarRefNode(NodeArgs args, AstNode idNode) : base(args)
 {
     ChildNodes.Clear();
     Name = GetContent(idNode);
 }
Example #15
0
 public AssigmentNode(NodeArgs args)  : this(args, args.ChildNodes[0], args.ChildNodes[2])
 {
 }
Example #16
0
 public AstNode(NodeArgs args)
 {
 }