summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/AST.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/cplusplus/AST.h')
-rw-r--r--src/shared/cplusplus/AST.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/shared/cplusplus/AST.h b/src/shared/cplusplus/AST.h
index 2baf4bb3b4..8f90555af7 100644
--- a/src/shared/cplusplus/AST.h
+++ b/src/shared/cplusplus/AST.h
@@ -162,6 +162,7 @@ public:
virtual BaseSpecifierAST *asBaseSpecifier() { return 0; }
virtual BinaryExpressionAST *asBinaryExpression() { return 0; }
virtual BoolLiteralAST *asBoolLiteral() { return 0; }
+ virtual BracedInitializerAST *asBracedInitializer() { return 0; }
virtual BreakStatementAST *asBreakStatement() { return 0; }
virtual CallAST *asCall() { return 0; }
virtual CaptureAST *asCapture() { return 0; }
@@ -2895,6 +2896,7 @@ public:
public:
SizeofExpressionAST()
: sizeof_token(0)
+ , dot_dot_dot_token(0)
, lparen_token(0)
, expression(0)
, rparen_token(0)
@@ -4265,6 +4267,33 @@ protected:
virtual bool match0(AST *, ASTMatcher *);
};
+class BracedInitializerAST: public ExpressionAST
+{
+public:
+ unsigned lbrace_token;
+ ExpressionListAST *expression_list;
+ unsigned comma_token;
+ unsigned rbrace_token;
+
+public:
+ BracedInitializerAST()
+ : lbrace_token(0)
+ , expression_list(0)
+ , comma_token(0)
+ , rbrace_token(0)
+ {}
+
+ virtual BracedInitializerAST *asBracedInitializer() { return this; }
+ virtual unsigned firstToken() const;
+ virtual unsigned lastToken() const;
+
+ virtual BracedInitializerAST *clone(MemoryPool *pool) const;
+
+protected:
+ virtual void accept0(ASTVisitor *visitor);
+ virtual bool match0(AST *, ASTMatcher *);
+};
+
} // end of namespace CPlusPlus
#endif // CPLUSPLUS_AST_H