public CompilerNode(CompilerNode owner) { if (owner == null && !(this is ModuleNode)) { throw new Exception("Owner cannot be null"); } this.Owner = owner; }
public DeclarationNode(CompilerNode owner) : base(owner) { if (owner is BlockNode) { ((BlockNode)owner).declarations.Add(this); } else if (owner is ParameterNode) { ((ParameterNode)owner).decl = this; } else { throw new Exception("Invalid owner"); } }
public StackAssignmentNode(CompilerNode owner) : base(owner) { }
public CallNode(CompilerNode owner) : base(owner) { }
public TypeNode(CompilerNode owner, TypeKind kind) : base(owner) { this.Kind = kind; }
public ReturnNode(CompilerNode owner) : base(owner) { }
public UnaryExpressionNode(CompilerNode owner) : base(owner) { }
public DeclarationNode declaration; // can resolved later public VariableExpressionNode(CompilerNode owner) : base(owner) { }
public ExitNode(CompilerNode owner) : base(owner) { }
public StatementNode(CompilerNode owner) : base(owner) { }
public LiteralExpressionNode(CompilerNode owner) : base(owner) { }
public BlockNode(CompilerNode owner) : base(owner) { }