Lines Matching refs:AstNode

84 struct AstNode {  struct
92 AstNode(Kind kind, SourcePosition pos) : kind(kind), pos(pos) {} in AstNode() argument
93 virtual ~AstNode() {} in ~AstNode() argument
101 static bool IsInstanceOf(AstNode* node); argument
107 static T* cast(AstNode* node) { \
111 static T* DynamicCast(AstNode* node) { \
119 static T* cast(AstNode* node) { \
123 static T* DynamicCast(AstNode* node) { \
129 struct Expression : AstNode {
130 Expression(Kind kind, SourcePosition pos) : AstNode(kind, pos) {} in Expression()
139 struct TypeExpression : AstNode {
140 TypeExpression(Kind kind, SourcePosition pos) : AstNode(kind, pos) {} in TypeExpression()
144 struct Declaration : AstNode {
145 Declaration(Kind kind, SourcePosition pos) : AstNode(kind, pos) {} in Declaration()
149 struct Statement : AstNode {
150 Statement(Kind kind, SourcePosition pos) : AstNode(kind, pos) {} in Statement()
157 ModuleDeclaration(AstNode::Kind kind, SourcePosition pos, in ModuleDeclaration()
207 std::vector<std::unique_ptr<AstNode>> nodes_;
540 struct LabelBlock : AstNode {
544 : AstNode(kKind, pos), in LabelBlock()
619 struct CallableNode : AstNode {
620 CallableNode(AstNode::Kind kind, SourcePosition pos, std::string name, in CallableNode()
623 : AstNode(kind, pos), in CallableNode()
633 MacroDeclaration(AstNode::Kind kind, SourcePosition pos, std::string name, in MacroDeclaration()
664 BuiltinDeclaration(AstNode::Kind kind, SourcePosition pos, in BuiltinDeclaration()
779 case AstNode::Kind::k##name: \
784 bool AstNodeClassCheck::IsInstanceOf(AstNode* node) { in IsInstanceOf()