summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/Parser.h
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2010-08-26 10:31:15 +0200
committerRoberto Raggi <roberto.raggi@nokia.com>2010-08-26 10:31:15 +0200
commitd0f794b65e8b38598b533bc6041c131d75d866e0 (patch)
tree58e18a7b377aba3534a0e0c69d1b8f1962eeb359 /src/shared/cplusplus/Parser.h
parentc8bb37d275b14abe54973bad0526e2123aec0d34 (diff)
downloadqt-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.h22
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;