Added AST nodes for compound expressions (a GNU extension).

This commit is contained in:
Erik Verbruggen
2010-02-04 14:55:18 +01:00
parent 7cdb15e7fc
commit fd90c3503d
14 changed files with 111 additions and 21 deletions

View File

@@ -161,6 +161,7 @@ public:
virtual CastExpressionAST *asCastExpression() { return 0; }
virtual CatchClauseAST *asCatchClause() { return 0; }
virtual ClassSpecifierAST *asClassSpecifier() { return 0; }
virtual CompoundExpressionAST *asCompoundExpression() { return 0; }
virtual CompoundLiteralAST *asCompoundLiteral() { return 0; }
virtual CompoundStatementAST *asCompoundStatement() { return 0; }
virtual ConditionAST *asCondition() { return 0; }
@@ -700,6 +701,26 @@ protected:
virtual bool match0(AST *, ASTMatcher *);
};
class CPLUSPLUS_EXPORT CompoundExpressionAST: public ExpressionAST
{
public:
unsigned lparen_token;
CompoundStatementAST *compoundStatement;
unsigned rparen_token;
public:
virtual CompoundExpressionAST *asCompoundExpression() { return this; }
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
virtual CompoundExpressionAST *clone(MemoryPool *pool) const;
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
};
class CPLUSPLUS_EXPORT CompoundLiteralAST: public ExpressionAST
{
public: