public BinaryOpNode(Node left, Node right, ExpressionType op) : base(NodeType.BinaryOp) { Left = left; Right = right; Op = op; }
public LambdaNode(List<IdentifierNode> args, Node body, string name) : base(NodeType.Lambda) { Args = args; Body = body; Name = name; }
public WhileNode(Node test, Node body, WhileType type) : base(NodeType.While) { Test = test; Body = body; Loop = type; }
public LogicalNode(Node left, Node right, ExpressionType op) : base(NodeType.Logical) { Left = left; Right = right; Op = op; }
public TryNode(Node body, CatchNode _catch, Node _finally) : base(NodeType.Try) { Body = body; Catch = _catch; Finally = _finally; }
public ForInNode(Node target, Node source, Node body) : base(NodeType.ForIn) { Target = target; Source = source; Body = body; }
public StrictCompareNode(Node left, Node right, ExpressionType op) : base(NodeType.StrictCompare) { Left = left; Right = right; Op = op; }
public SwitchNode(Node taret, Node _default, List<Tuple<Node, Node>> cases) : base(NodeType.Switch) { Target = taret; Default = _default; Cases = cases; Label = null; }
public IfNode(Node test, Node trueBranch, Node elseBranch) : base(NodeType.If) { Test = test; TrueBranch = trueBranch; ElseBranch = elseBranch; HasElseBranch = elseBranch != null; }
public ForStepNode(Node setup, Node test, Node incr, Node body) : base(NodeType.ForStep) { Setup = setup; Test = test; Incr = incr; Body = body; }
public IfNode(Node test, Node trueBranch, Node elseBranch, bool isTernary) : base(NodeType.If) { Test = test; TrueBranch = trueBranch; ElseBranch = elseBranch; HasElseBranch = elseBranch != null; IsTernary = isTernary; }
public TypeOfNode(Node target) : base(NodeType.TypeOf) { Target = target; }
public PostfixOperatorNode(Node node, ExpressionType op) : base(NodeType.PostfixOperator) { Target = node; Op = op; }
public UnaryOpNode(Node target, ExpressionType op) : base(NodeType.UnaryOp) { Target = target; Op = op; }
public AutoPropertyNode(object name, Node value) : base(NodeType.AutoProperty) { Name = name; Value = value; }
public IndexAccessNode(Node target, Node index) : base(NodeType.IndexAccess) { Target = target; Index = index; }
public UnsignedRightShiftNode(Node left, Node right) : base(NodeType.UnsignedRightShift) { Left = left; Right = right; }
public AssignNode(Node target, Node value) : base(NodeType.Assign) { Target = target; Value = value; }
public ThrowNode(Node target) : base(NodeType.Throw) { Target = target; }
public InNode(Node target, Node property) : base(NodeType.In) { Target = target; Property = property; }
public DeleteNode(Node target) : base(NodeType.Delete) { Target = target; }
public VoidNode(Node target) : base(NodeType.Void) { Target = target; }
public ReturnNode(Node value) : base(NodeType.Return) { Value = value; }
public CatchNode(Node target, Node body) : base(NodeType.Catch) { Target = target; Body = body; }
public MemberAccessNode(Node target, string member) : base(NodeType.MemberAccess) { Target = target; Name = member; }
public InstanceOfNode(Node target, Node function) : base(NodeType.InstanceOf) { Target = target; Function = function; }
public NewNode(Node target, List<Node> args) : base(NodeType.New) { Target = target; Args = args; }
public WithNode(Node target, Node body) : base(NodeType.With) { Target = target; Body = body; }
public CallNode(Node target, List<Node> args) : base(NodeType.Call) { Target = target; Args = args; }
public ThrowNode(Node value) : base(NodeType.Throw) { Value = value; }