summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/Parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/cplusplus/Parser.h')
-rw-r--r--src/shared/cplusplus/Parser.h60
1 files changed, 34 insertions, 26 deletions
diff --git a/src/shared/cplusplus/Parser.h b/src/shared/cplusplus/Parser.h
index 555e58c270..0c48ab9c54 100644
--- a/src/shared/cplusplus/Parser.h
+++ b/src/shared/cplusplus/Parser.h
@@ -78,6 +78,12 @@ public:
bool parseAbstractDeclarator(DeclaratorAST *&node);
bool parseEmptyDeclaration(DeclarationAST *&node);
bool parseAccessDeclaration(DeclarationAST *&node);
+#ifdef ICHECK_BUILD
+ bool parseQPropertyDeclaration(DeclarationAST *&node);
+ bool parseQEnumDeclaration(DeclarationAST *&node);
+ bool parseQFlags(DeclarationAST *&node);
+ bool parseQDeclareFlags(DeclarationAST *&node);
+#endif
bool parseAdditiveExpression(ExpressionAST *&node);
bool parseAndExpression(ExpressionAST *&node);
bool parseAsmDefinition(DeclarationAST *&node);
@@ -85,12 +91,12 @@ public:
bool parseAsmOperand();
bool parseAsmClobberList();
bool parseAssignmentExpression(ExpressionAST *&node);
- bool parseBaseClause(BaseSpecifierAST *&node);
- bool parseBaseSpecifier(BaseSpecifierAST *&node);
+ bool parseBaseClause(BaseSpecifierListAST *&node);
+ bool parseBaseSpecifier(BaseSpecifierListAST *&node);
bool parseBlockDeclaration(DeclarationAST *&node);
bool parseCppCastExpression(ExpressionAST *&node);
bool parseCastExpression(ExpressionAST *&node);
- bool parseClassSpecifier(SpecifierAST *&node);
+ bool parseClassSpecifier(SpecifierListAST *&node);
bool parseCommaExpression(ExpressionAST *&node);
bool parseCompoundStatement(StatementAST *&node);
bool parseBreakStatement(StatementAST *&node);
@@ -101,7 +107,7 @@ public:
bool parseConditionalExpression(ExpressionAST *&node);
bool parseConstantExpression(ExpressionAST *&node);
bool parseCtorInitializer(CtorInitializerAST *&node);
- bool parseCvQualifiers(SpecifierAST *&node);
+ bool parseCvQualifiers(SpecifierListAST *&node);
bool parseDeclaratorOrAbstractDeclarator(DeclaratorAST *&node);
bool parseDeclaration(DeclarationAST *&node);
bool parseSimpleDeclaration(DeclarationAST *&node, bool acceptStructDeclarator = false);
@@ -110,9 +116,9 @@ public:
bool parseDeclarator(DeclaratorAST *&node, bool stopAtCppInitializer = false);
bool parseDeleteExpression(ExpressionAST *&node);
bool parseDoStatement(StatementAST *&node);
- bool parseElaboratedTypeSpecifier(SpecifierAST *&node);
- bool parseEnumSpecifier(SpecifierAST *&node);
- bool parseEnumerator(EnumeratorAST *&node);
+ bool parseElaboratedTypeSpecifier(SpecifierListAST *&node);
+ bool parseEnumSpecifier(SpecifierListAST *&node);
+ bool parseEnumerator(EnumeratorListAST *&node);
bool parseEqualityExpression(ExpressionAST *&node);
bool parseExceptionDeclaration(ExceptionDeclarationAST *&node);
bool parseExceptionSpecification(ExceptionSpecificationAST *&node);
@@ -135,19 +141,19 @@ public:
bool parseLinkageSpecification(DeclarationAST *&node);
bool parseLogicalAndExpression(ExpressionAST *&node);
bool parseLogicalOrExpression(ExpressionAST *&node);
- bool parseMemInitializer(MemInitializerAST *&node);
- bool parseMemInitializerList(MemInitializerAST *&node);
+ bool parseMemInitializer(MemInitializerListAST *&node);
+ bool parseMemInitializerList(MemInitializerListAST *&node);
bool parseMemberSpecification(DeclarationAST *&node);
bool parseMultiplicativeExpression(ExpressionAST *&node);
bool parseTemplateId(NameAST *&node);
bool parseClassOrNamespaceName(NameAST *&node);
bool parseNameId(NameAST *&node);
bool parseName(NameAST *&node, bool acceptTemplateId = true);
- bool parseNestedNameSpecifier(NestedNameSpecifierAST *&node, bool acceptTemplateId);
- bool parseNestedNameSpecifierOpt(NestedNameSpecifierAST *&name, bool acceptTemplateId);
+ bool parseNestedNameSpecifier(NestedNameSpecifierListAST *&node, bool acceptTemplateId);
+ bool parseNestedNameSpecifierOpt(NestedNameSpecifierListAST *&name, bool acceptTemplateId);
bool parseNamespace(DeclarationAST *&node);
bool parseNamespaceAliasDefinition(DeclarationAST *&node);
- bool parseNewArrayDeclarator(NewArrayDeclaratorAST *&node);
+ bool parseNewArrayDeclarator(NewArrayDeclaratorListAST *&node);
bool parseNewExpression(ExpressionAST *&node);
bool parseNewPlacement(NewPlacementAST *&node);
bool parseNewInitializer(NewInitializerAST *&node);
@@ -166,7 +172,7 @@ public:
bool parsePostfixExpressionInternal(ExpressionAST *&node);
bool parsePrimaryExpression(ExpressionAST *&node);
bool parseNestedExpression(ExpressionAST *&node);
- bool parsePtrOperator(PtrOperatorAST *&node);
+ bool parsePtrOperator(PtrOperatorListAST *&node);
bool parseRelationalExpression(ExpressionAST *&node);
bool parseShiftExpression(ExpressionAST *&node);
bool parseStatement(StatementAST *&node);
@@ -182,24 +188,24 @@ public:
bool parseTemplateParameterList(DeclarationListAST *&node);
bool parseThrowExpression(ExpressionAST *&node);
bool parseTryBlockStatement(StatementAST *&node);
- bool parseCatchClause(CatchClauseAST *&node);
+ bool parseCatchClause(CatchClauseListAST *&node);
bool parseTypeId(ExpressionAST *&node);
bool parseTypeIdList(ExpressionListAST *&node);
bool parseTypenameTypeParameter(DeclarationAST *&node);
bool parseTemplateTypeParameter(DeclarationAST *&node);
bool parseTypeParameter(DeclarationAST *&node);
- bool parseBuiltinTypeSpecifier(SpecifierAST *&node);
- bool parseAttributeSpecifier(SpecifierAST *&node);
- bool parseAttributeList(AttributeAST *&node);
+ bool parseBuiltinTypeSpecifier(SpecifierListAST *&node);
+ bool parseAttributeSpecifier(SpecifierListAST *&node);
+ bool parseAttributeList(AttributeListAST *&node);
- bool parseSimpleTypeSpecifier(SpecifierAST *&node)
+ bool parseSimpleTypeSpecifier(SpecifierListAST *&node)
{ return parseDeclSpecifierSeq(node, true, true); }
- bool parseTypeSpecifier(SpecifierAST *&node)
+ bool parseTypeSpecifier(SpecifierListAST *&node)
{ return parseDeclSpecifierSeq(node, true); }
- bool parseDeclSpecifierSeq(SpecifierAST *&node,
+ bool parseDeclSpecifierSeq(SpecifierListAST *&node,
bool onlyTypeSpecifiers = false,
bool simplified = false);
bool parseUnaryExpression(ExpressionAST *&node);
@@ -208,6 +214,8 @@ public:
bool parseUsingDirective(DeclarationAST *&node);
bool parseWhileStatement(StatementAST *&node);
+ void parseExpressionWithOperatorPrecedence(ExpressionAST *&lhs, int minPrecedence);
+
// Qt MOC run
bool parseQtMethod(ExpressionAST *&node);
@@ -215,16 +223,15 @@ public:
bool parseObjCExpression(ExpressionAST *&node);
bool parseObjCClassForwardDeclaration(DeclarationAST *&node);
bool parseObjCInterface(DeclarationAST *&node,
- SpecifierAST *attributes = 0);
+ SpecifierListAST *attributes = 0);
bool parseObjCProtocol(DeclarationAST *&node,
- SpecifierAST *attributes = 0);
+ SpecifierListAST *attributes = 0);
bool parseObjCSynchronizedStatement(StatementAST *&node);
bool parseObjCEncodeExpression(ExpressionAST *&node);
bool parseObjCProtocolExpression(ExpressionAST *&node);
bool parseObjCSelectorExpression(ExpressionAST *&node);
bool parseObjCStringLiteral(ExpressionAST *&node);
- bool parseObjCMethodSignature();
bool parseObjCMessageExpression(ExpressionAST *&node);
bool parseObjCMessageReceiver(ExpressionAST *&node);
bool parseObjCMessageArguments(ObjCSelectorAST *&selNode, ObjCMessageArgumentListAST *& argNode);
@@ -237,7 +244,7 @@ public:
bool parseObjCInterfaceMemberDeclaration(DeclarationAST *&node);
bool parseObjCInstanceVariableDeclaration(DeclarationAST *&node);
bool parseObjCPropertyDeclaration(DeclarationAST *&node,
- SpecifierAST *attributes = 0);
+ SpecifierListAST *attributes = 0);
bool parseObjCImplementation(DeclarationAST *&node);
bool parseObjCMethodPrototype(ObjCMethodPrototypeAST *&node);
bool parseObjCPropertyAttribute(ObjCPropertyAttributeAST *&node);
@@ -251,7 +258,7 @@ public:
bool lookAtObjCSelector() const;
bool skipUntil(int token);
- bool skipUntilDeclaration();
+ void skipUntilDeclaration();
bool skipUntilStatement();
bool skip(int l, int r);
@@ -265,7 +272,7 @@ public:
void match(int kind, unsigned *token);
bool maybeAmbiguousStatement(DeclarationStatementAST *ast) const;
- bool maybeForwardOrClassDeclaration(SpecifierAST *decl_specifier_seq) const;
+ bool maybeForwardOrClassDeclaration(SpecifierListAST *decl_specifier_seq) const;
bool isPointerDeclaration(DeclarationStatementAST *ast) const;
private:
@@ -308,6 +315,7 @@ private:
bool _objCEnabled: 1;
bool _inFunctionBody: 1;
bool _inObjCImplementationContext: 1;
+ int _expressionDepth;
std::map<unsigned, TemplateArgumentListEntry> _templateArgumentList;