Lines Matching refs:AstNode
102 struct AstNode {
110 AstNode(Kind kind, SourcePosition pos) : kind(kind), pos(pos) {}
111 virtual ~AstNode() = default;
119 static bool IsInstanceOf(AstNode* node);
125 static T* cast(AstNode* node) { \
129 static T* DynamicCast(AstNode* node) { \
137 static T* cast(AstNode* node) { \
141 static T* DynamicCast(AstNode* node) { \
147 struct Expression : AstNode {
148 Expression(Kind kind, SourcePosition pos) : AstNode(kind, pos) {}
153 // TODO(szuend): Hoist this up to AstNode and make it a
163 struct TypeExpression : AstNode {
164 TypeExpression(Kind kind, SourcePosition pos) : AstNode(kind, pos) {}
168 struct Declaration : AstNode {
169 Declaration(Kind kind, SourcePosition pos) : AstNode(kind, pos) {}
173 struct Statement : AstNode {
174 Statement(Kind kind, SourcePosition pos) : AstNode(kind, pos) {}
244 std::vector<std::unique_ptr<AstNode>> nodes_;
252 struct Identifier : AstNode {
255 : AstNode(kKind, pos), value(std::move(identifier)) {}
812 struct TryHandler : AstNode {
817 : AstNode(kKind, pos),
968 CallableDeclaration(AstNode::Kind kind, SourcePosition pos,
988 MacroDeclaration(AstNode::Kind kind, SourcePosition pos, bool transitioning,
1046 BuiltinDeclaration(AstNode::Kind kind, SourcePosition pos,
1210 struct ClassBody : AstNode {
1214 : AstNode(kKind, pos),
1251 case AstNode::Kind::k##name: \
1256 bool AstNodeClassCheck::IsInstanceOf(AstNode* node) {