public StatementListNode(NodeArgs args, AstNodeList statements) : base(args) { ChildNodes.Clear(); foreach (AstNode stmt in statements) { AddChild(null, stmt); } }
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; }
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); }
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); }
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); }
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); } }
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); }
public UnExprNode(NodeArgs args) : this(args, GetContent(args.ChildNodes[0]), args.ChildNodes[1]) { }
public StatementListNode(NodeArgs args) : base(args) { }
public VarRefNode(NodeArgs args) : this(args, args.ChildNodes[0]) { }
public VarRefNode(NodeArgs args, string name) : base(args) { ChildNodes.Clear(); Name = name; }
public VarRefNode(NodeArgs args, AstNode idNode) : base(args) { ChildNodes.Clear(); Name = GetContent(idNode); }
public AssigmentNode(NodeArgs args) : this(args, args.ChildNodes[0], args.ChildNodes[2]) { }
public AstNode(NodeArgs args) { }