diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2010-08-26 10:31:15 +0200 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2010-08-26 10:31:15 +0200 |
commit | d0f794b65e8b38598b533bc6041c131d75d866e0 (patch) | |
tree | 58e18a7b377aba3534a0e0c69d1b8f1962eeb359 /src/shared/cplusplus/Parser.h | |
parent | c8bb37d275b14abe54973bad0526e2123aec0d34 (diff) | |
download | qt-creator-d0f794b65e8b38598b533bc6041c131d75d866e0.tar.gz |
Reduced the number of ambiguous ExpressionOrDeclarationStatementAST nodes.
Diffstat (limited to 'src/shared/cplusplus/Parser.h')
-rw-r--r-- | src/shared/cplusplus/Parser.h | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/shared/cplusplus/Parser.h b/src/shared/cplusplus/Parser.h index 11743346a4..d5e0257f19 100644 --- a/src/shared/cplusplus/Parser.h +++ b/src/shared/cplusplus/Parser.h @@ -78,8 +78,8 @@ public: public: bool parseAccessSpecifier(SpecifierAST *&node); bool parseExpressionList(ExpressionListAST *&node); - bool parseAbstractCoreDeclarator(DeclaratorAST *&node); - bool parseAbstractDeclarator(DeclaratorAST *&node); + bool parseAbstractCoreDeclarator(DeclaratorAST *&node, SpecifierListAST *decl_specifier_list); + bool parseAbstractDeclarator(DeclaratorAST *&node, SpecifierListAST *decl_specifier_list); bool parseEmptyDeclaration(DeclarationAST *&node); bool parseAccessDeclaration(DeclarationAST *&node); bool parseQtPropertyDeclaration(DeclarationAST *&node); @@ -110,12 +110,12 @@ public: bool parseConstantExpression(ExpressionAST *&node); bool parseCtorInitializer(CtorInitializerAST *&node); bool parseCvQualifiers(SpecifierListAST *&node); - bool parseDeclaratorOrAbstractDeclarator(DeclaratorAST *&node); + bool parseDeclaratorOrAbstractDeclarator(DeclaratorAST *&node, SpecifierListAST *decl_specifier_list); bool parseDeclaration(DeclarationAST *&node); - bool parseSimpleDeclaration(DeclarationAST *&node, bool acceptStructDeclarator = false); + bool parseSimpleDeclaration(DeclarationAST *&node, ClassSpecifierAST *declaringClass = 0); bool parseDeclarationStatement(StatementAST *&node); - bool parseCoreDeclarator(DeclaratorAST *&node); - bool parseDeclarator(DeclaratorAST *&node, bool stopAtCppInitializer = false); + bool parseCoreDeclarator(DeclaratorAST *&node, SpecifierListAST *decl_specifier_list, bool declaringClass); + bool parseDeclarator(DeclaratorAST *&node, SpecifierListAST *decl_specifier_list, bool declaringClass = false); bool parseDeleteExpression(ExpressionAST *&node); bool parseDoStatement(StatementAST *&node); bool parseElaboratedTypeSpecifier(SpecifierListAST *&node); @@ -134,7 +134,7 @@ public: bool parseFunctionBody(StatementAST *&node); bool parseIfStatement(StatementAST *&node); bool parseInclusiveOrExpression(ExpressionAST *&node); - bool parseInitDeclarator(DeclaratorAST *&node, bool acceptStructDeclarator); + bool parseInitDeclarator(DeclaratorAST *&node, SpecifierListAST *decl_specifier_list, bool declaringClass); bool parseInitializerList(ExpressionListAST *&node); bool parseInitializer(ExpressionAST *&node, unsigned *equals_token); bool parseInitializerClause(ExpressionAST *&node); @@ -145,7 +145,7 @@ public: bool parseLogicalOrExpression(ExpressionAST *&node); bool parseMemInitializer(MemInitializerListAST *&node); bool parseMemInitializerList(MemInitializerListAST *&node); - bool parseMemberSpecification(DeclarationAST *&node); + bool parseMemberSpecification(DeclarationAST *&node, ClassSpecifierAST *declaringClass); bool parseMultiplicativeExpression(ExpressionAST *&node); bool parseTemplateId(NameAST *&node, unsigned template_token = 0); bool parseClassOrNamespaceName(NameAST *&node); @@ -287,11 +287,13 @@ public: bool lookAtBuiltinTypeSpecifier() const; bool lookAtClassKey() const; + const Identifier *className(ClassSpecifierAST *ast) const; + const Identifier *identifier(NameAST *name) const; + void match(int kind, unsigned *token); - bool maybeAmbiguousStatement(DeclarationStatementAST *ast) const; + bool maybeAmbiguousStatement(DeclarationStatementAST *ast, StatementAST *&node); bool maybeForwardOrClassDeclaration(SpecifierListAST *decl_specifier_seq) const; - bool isPointerDeclaration(DeclarationStatementAST *ast) const; int peekAtQtContextKeyword() const; |