KDevelop API Documentation

Parser Class Reference

A generic ANTLR parser (LL(k) for k>=1) containing a bunch of utility routines useful at any lookahead depth. More...

#include <Parser.hpp>

Inheritance diagram for Parser:

Inheritance graph
[legend]
Collaboration diagram for Parser:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual ~Parser ()
virtual int LA (int i)=0
 Return the token type of the ith token of lookahead where i=1 is the current token being examined by the parser (i.e., it has not been matched yet).
virtual RefToken LT (int i)=0
 Return the i-th token of lookahead.
virtual void setASTNodeFactory (ASTFactory *factory)
 DEPRECATED! Specify the factory to be used during tree building.
virtual void setASTFactory (ASTFactory *factory)
 Specify the factory to be used during tree building.
virtual ASTFactorygetASTFactory ()
 Return a pointer to the ASTFactory used.
RefAST getAST ()
 Get the root AST node of the generated AST.
virtual std::string getFilename () const
 Return the filename of the input file.
virtual void setFilename (const std::string &f)
 Set the filename of the input file (used for error reporting).
virtual void setInputState (ParserSharedInputState state)
virtual ParserSharedInputState getInputState () const
virtual void consume ()=0
 Get another token object from the token stream.
virtual void consumeUntil (int tokenType)
 Consume tokens until one matches the given token.
virtual void consumeUntil (const BitSet &set)
 Consume tokens until one matches the given token set.
virtual void match (int t)
 Make sure current lookahead symbol matches token type t.
virtual void matchNot (int t)
virtual void match (const BitSet &b)
 Make sure current lookahead symbol matches the given set Throw an exception upon mismatch, which is catch by either the error handler or by the syntactic predicate.
virtual int mark ()
 Mark a spot in the input and return the position.
virtual void rewind (int pos)
 rewind to a previously marked position
virtual void reportError (const RecognitionException &ex)
 Parser error-reporting function can be overridden in subclass.
virtual void reportError (const std::string &s)
 Parser error-reporting function can be overridden in subclass.
virtual void reportWarning (const std::string &s)
 Parser warning-reporting function can be overridden in subclass.
virtual const char * getTokenName (int num) const =0
 get the token name for the token number 'num'
virtual const char *const * getTokenNames () const =0
 get a vector with all token names
virtual int getNumTokens (void) const =0
 get the max token number This one should be overridden in subclasses.
virtual void traceIndent ()
 Set or change the input token buffer.
virtual void traceIn (const char *rname)
virtual void traceOut (const char *rname)
 Parser (Driver *driver, Lexer *lexer)
virtual ~Parser ()

Static Public Member Functions

void panic ()

Protected Member Functions

 Parser (TokenBuffer &input_)
 Parser (TokenBuffer *input_)
 Parser (const ParserSharedInputState &state)

Protected Attributes

ParserSharedInputState inputState
RefAST returnAST
 AST return value for a rule is squirreled away here.
ASTFactoryastFactory
 AST support code; parser and treeparser delegate to this object.
int traceDepth

Private Member Functions

 Parser (const Parser &)
const Parseroperator= (const Parser &)
virtual bool reportError (const Error &err)
virtual bool reportError (const QString &msg)
virtual void syntaxError ()
bool parseDeclaration (DeclarationAST::Node &node)
bool parseBlockDeclaration (DeclarationAST::Node &node)
bool parseLinkageSpecification (DeclarationAST::Node &node)
bool parseLinkageBody (LinkageBodyAST::Node &node)
bool parseNamespace (DeclarationAST::Node &node)
bool parseNamespaceAliasDefinition (DeclarationAST::Node &node)
bool parseUsing (DeclarationAST::Node &node)
bool parseUsingDirective (DeclarationAST::Node &node)
bool parseTypedef (DeclarationAST::Node &node)
bool parseAsmDefinition (DeclarationAST::Node &node)
bool parseTemplateDeclaration (DeclarationAST::Node &node)
bool parseDeclarationInternal (DeclarationAST::Node &node)
bool parseUnqualifiedName (ClassOrNamespaceNameAST::Node &node)
bool parseStringLiteral (AST::Node &node)
bool parseName (NameAST::Node &node)
bool parseOperatorFunctionId (AST::Node &node)
bool parseTemplateArgumentList (TemplateArgumentListAST::Node &node, bool reportError=true)
bool parseOperator (AST::Node &node)
bool parseCvQualify (GroupAST::Node &node)
bool parseSimpleTypeSpecifier (TypeSpecifierAST::Node &node)
bool parsePtrOperator (AST::Node &node)
bool parseTemplateArgument (AST::Node &node)
bool parseTypeSpecifier (TypeSpecifierAST::Node &node)
bool parseTypeSpecifierOrClassSpec (TypeSpecifierAST::Node &node)
bool parseDeclarator (DeclaratorAST::Node &node)
bool parseTemplateParameterList (TemplateParameterListAST::Node &node)
bool parseTemplateParameter (TemplateParameterAST::Node &node)
bool parseStorageClassSpecifier (GroupAST::Node &node)
bool parseFunctionSpecifier (GroupAST::Node &node)
bool parseInitDeclaratorList (InitDeclaratorListAST::Node &node)
bool parseInitDeclarator (InitDeclaratorAST::Node &node)
bool parseParameterDeclarationClause (ParameterDeclarationClauseAST::Node &node)
bool parseCtorInitializer (AST::Node &node)
bool parsePtrToMember (AST::Node &node)
bool parseEnumSpecifier (TypeSpecifierAST::Node &node)
bool parseClassSpecifier (TypeSpecifierAST::Node &node)
bool parseWinDeclSpec (GroupAST::Node &node)
bool parseElaboratedTypeSpecifier (TypeSpecifierAST::Node &node)
bool parseDeclaratorId (NameAST::Node &node)
bool parseExceptionSpecification (GroupAST::Node &node)
bool parseEnumerator (EnumeratorAST::Node &node)
bool parseTypeParameter (TypeParameterAST::Node &node)
bool parseParameterDeclaration (ParameterDeclarationAST::Node &node)
bool parseTypeId (AST::Node &node)
bool parseAbstractDeclarator (DeclaratorAST::Node &node)
bool parseParameterDeclarationList (ParameterDeclarationListAST::Node &node)
bool parseMemberSpecification (DeclarationAST::Node &node)
bool parseAccessSpecifier (AST::Node &node)
bool parseTypeIdList (GroupAST::Node &node)
bool parseMemInitializerList (AST::Node &node)
bool parseMemInitializer (AST::Node &node)
bool parseInitializer (AST::Node &node)
bool parseBaseClause (BaseClauseAST::Node &node)
bool parseBaseSpecifier (BaseSpecifierAST::Node &node)
bool parseInitializerClause (AST::Node &node)
bool parseMemInitializerId (NameAST::Node &node)
bool parseFunctionBody (StatementListAST::Node &node)
bool skipExpression (AST::Node &node)
bool skipCommaExpression (AST::Node &node)
bool skipExpressionStatement (StatementAST::Node &node)
bool parseExpression (AST::Node &node)
bool parsePrimaryExpression (AST::Node &node)
bool parsePostfixExpression (AST::Node &node)
bool parseUnaryExpression (AST::Node &node)
bool parseNewExpression (AST::Node &node)
bool parseNewTypeId (AST::Node &node)
bool parseNewDeclarator (AST::Node &node)
bool parseNewInitializer (AST::Node &node)
bool parseDeleteExpression (AST::Node &node)
bool parseCastExpression (AST::Node &node)
bool parsePmExpression (AST::Node &node)
bool parseMultiplicativeExpression (AST::Node &node)
bool parseAdditiveExpression (AST::Node &node)
bool parseShiftExpression (AST::Node &node)
bool parseRelationalExpression (AST::Node &node, bool templArgs=false)
bool parseEqualityExpression (AST::Node &node, bool templArgs=false)
bool parseAndExpression (AST::Node &node, bool templArgs=false)
bool parseExclusiveOrExpression (AST::Node &node, bool templArgs=false)
bool parseInclusiveOrExpression (AST::Node &node, bool templArgs=false)
bool parseLogicalAndExpression (AST::Node &node, bool templArgs=false)
bool parseLogicalOrExpression (AST::Node &node, bool templArgs=false)
bool parseConditionalExpression (AST::Node &node)
bool parseAssignmentExpression (AST::Node &node)
bool parseConstantExpression (AST::Node &node)
bool parseCommaExpression (AST::Node &node)
bool parseThrowExpression (AST::Node &node)
bool parseCondition (ConditionAST::Node &node)
bool parseStatement (StatementAST::Node &node)
bool parseWhileStatement (StatementAST::Node &node)
bool parseDoStatement (StatementAST::Node &node)
bool parseForStatement (StatementAST::Node &node)
bool parseCompoundStatement (StatementAST::Node &node)
bool parseForInitStatement (StatementAST::Node &node)
bool parseIfStatement (StatementAST::Node &node)
bool parseSwitchStatement (StatementAST::Node &node)
bool parseLabeledStatement (StatementAST::Node &node)
bool parseDeclarationStatement (StatementAST::Node &node)
bool parseTryBlockStatement (StatementAST::Node &node)
bool parseObjcDef (DeclarationAST::Node &node)
bool parseObjcClassDef (DeclarationAST::Node &node)
bool parseObjcClassDecl (DeclarationAST::Node &node)
bool parseObjcProtocolDecl (DeclarationAST::Node &node)
bool parseObjcAliasDecl (DeclarationAST::Node &node)
bool parseObjcProtocolDef (DeclarationAST::Node &node)
bool parseObjcMethodDef (DeclarationAST::Node &node)
bool parseIvarDeclList (AST::Node &node)
bool parseIvarDecls (AST::Node &node)
bool parseIvarDecl (AST::Node &node)
bool parseIvars (AST::Node &node)
bool parseIvarDeclarator (AST::Node &node)
bool parseMethodDecl (AST::Node &node)
bool parseUnarySelector (AST::Node &node)
bool parseKeywordSelector (AST::Node &node)
bool parseSelector (AST::Node &node)
bool parseKeywordDecl (AST::Node &node)
bool parseReceiver (AST::Node &node)
bool parseObjcMessageExpr (AST::Node &node)
bool parseMessageArgs (AST::Node &node)
bool parseKeywordExpr (AST::Node &node)
bool parseKeywordArgList (AST::Node &node)
bool parseKeywordArg (AST::Node &node)
bool parseReservedWord (AST::Node &node)
bool parseMyParms (AST::Node &node)
bool parseMyParm (AST::Node &node)
bool parseOptParmList (AST::Node &node)
bool parseObjcSelectorExpr (AST::Node &node)
bool parseSelectorArg (AST::Node &node)
bool parseKeywordNameList (AST::Node &node)
bool parseKeywordName (AST::Node &node)
bool parseObjcEncodeExpr (AST::Node &node)
bool parseObjcString (AST::Node &node)
bool parseProtocolRefs (AST::Node &node)
bool parseIdentifierList (GroupAST::Node &node)
bool parseIdentifierColon (AST::Node &node)
bool parseObjcProtocolExpr (AST::Node &node)
bool parseObjcOpenBracketExpr (AST::Node &node)
bool parseObjcCloseBracket (AST::Node &node)
bool skipUntil (int token)
bool skipUntilDeclaration ()
bool skipUntilStatement ()
bool skip (int l, int r)
QString toString (int start, int end, const QString &sep=" ") const
 Parser (const Parser &source)
void operator= (const Parser &source)

Private Attributes

public __pad0__: bool parseTranslationUnit( TranslationUnitAST::Node& node )
ParserPrivateDatad
Driverm_driver
Lexerlex
int m_problems
int m_maxProblems
bool objcp

Detailed Description

A generic ANTLR parser (LL(k) for k>=1) containing a bunch of utility routines useful at any lookahead depth.

We distinguish between the LL(1) and LL(k) parsers because of efficiency. This may not be necessary in the near future.

Each parser object contains the state of the parse including a lookahead cache (the form of which is determined by the subclass), whether or not the parser is in guess mode, where tokens come from, etc...

During guess mode, the current lookahead token(s) and token type(s) cache must be saved because the token stream may not have been informed to save the token (via mark) before the try block. Guessing is started by:

  1. saving the lookahead cache.
  2. marking the current position in the TokenBuffer.
  3. increasing the guessing level.

After guessing, the parser state is restored by:

  1. restoring the lookahead cache.
  2. rewinding the TokenBuffer.
  3. decreasing the guessing level.

See also:
antlr.Token

antlr.TokenBuffer

antlr.TokenStream

antlr.LL1Parser

antlr.LLkParser

Todo:
add constructors with ASTFactory.

Definition at line 61 of file Parser.hpp.


Constructor & Destructor Documentation

Parser::Parser TokenBuffer input_  )  [protected]
 

Definition at line 57 of file Parser.cpp.

Parser::Parser TokenBuffer input_  )  [protected]
 

Definition at line 62 of file Parser.cpp.

Parser::Parser const ParserSharedInputState state  )  [protected]
 

Definition at line 67 of file Parser.cpp.

References ParserSharedInputState.

Parser::~Parser  )  [virtual]
 

Definition at line 72 of file Parser.cpp.

Parser::Parser const Parser  )  [private]
 

Parser::Parser Driver driver,
Lexer lexer
 

Definition at line 110 of file parser.cpp.

References d, m_maxProblems, and objcp.

virtual Parser::~Parser  )  [virtual]
 

Parser::Parser const Parser source  )  [private]
 


Member Function Documentation

virtual void Parser::consume  )  [pure virtual]
 

Get another token object from the token stream.

Implemented in LLkParser.

Referenced by consumeUntil(), match(), and matchNot().

void Parser::consumeUntil const BitSet set  )  [virtual]
 

Consume tokens until one matches the given token set.

Definition at line 84 of file Parser.cpp.

References consume(), LA(), and BitSet::member().

void Parser::consumeUntil int  tokenType  )  [virtual]
 

Consume tokens until one matches the given token.

Definition at line 77 of file Parser.cpp.

References consume(), and LA().

RefAST Parser::getAST  )  [inline]
 

Get the root AST node of the generated AST.

Definition at line 103 of file Parser.hpp.

References RefAST.

virtual ASTFactory* Parser::getASTFactory  )  [inline, virtual]
 

Return a pointer to the ASTFactory used.

So you might use it in subsequent treewalkers or to reload AST's from disk.

Definition at line 98 of file Parser.hpp.

virtual std ::string Parser::getFilename  )  const [inline, virtual]
 

Return the filename of the input file.

Definition at line 109 of file Parser.hpp.

References inputState.

Referenced by match(), matchNot(), reportError(), and reportWarning().

virtual ParserSharedInputState Parser::getInputState  )  const [inline, virtual]
 

Definition at line 123 of file Parser.hpp.

References ParserSharedInputState.

virtual int Parser::getNumTokens void   )  const [pure virtual]
 

get the max token number This one should be overridden in subclasses.

Referenced by match(), and matchNot().

virtual const char* Parser::getTokenName int  num  )  const [pure virtual]
 

get the token name for the token number 'num'

virtual const char* const* Parser::getTokenNames  )  const [pure virtual]
 

get a vector with all token names

Referenced by match(), and matchNot().

virtual int Parser::LA int  i  )  [pure virtual]
 

Return the token type of the ith token of lookahead where i=1 is the current token being examined by the parser (i.e., it has not been matched yet).

Implemented in LLkParser.

Referenced by consumeUntil(), match(), and matchNot().

virtual RefToken Parser::LT int  i  )  [pure virtual]
 

Return the i-th token of lookahead.

Implemented in LLkParser.

Referenced by match(), matchNot(), traceIn(), and traceOut().

virtual int Parser::mark  )  [inline, virtual]
 

Mark a spot in the input and return the position.

Forwarded to TokenBuffer.

Definition at line 150 of file Parser.hpp.

References inputState.

void Parser::match const BitSet b  )  [virtual]
 

Make sure current lookahead symbol matches the given set Throw an exception upon mismatch, which is catch by either the error handler or by the syntactic predicate.

Definition at line 118 of file Parser.cpp.

References ANTLR_USE_NAMESPACE, consume(), getFilename(), getNumTokens(), getTokenNames(), LA(), LT(), BitSet::member(), and traceIndent().

void Parser::match int  t  )  [virtual]
 

Make sure current lookahead symbol matches token type t.

Throw an exception upon mismatch, which is catch by either the error handler or by the syntactic predicate.

Definition at line 94 of file Parser.cpp.

References ANTLR_USE_NAMESPACE, consume(), getFilename(), getNumTokens(), getTokenNames(), LA(), LT(), and traceIndent().

void Parser::matchNot int  t  )  [virtual]
 

Definition at line 140 of file Parser.cpp.

References consume(), getFilename(), getNumTokens(), getTokenNames(), LA(), and LT().

void Parser::operator= const Parser source  )  [private]
 

const Parser& Parser::operator= const Parser  )  [private]
 

void Parser::panic  )  [static]
 

Definition at line 151 of file Parser.cpp.

References ANTLR_USE_NAMESPACE.

bool Parser::parseAbstractDeclarator DeclaratorAST::Node node  )  [private]
 

Definition at line 1259 of file parser.cpp.

References ADVANCE, Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseExceptionSpecification(), parseParameterDeclarationClause(), parsePtrOperator(), reportError(), Lexer::setIndex(), skipCommaExpression(), Token_identifier, and UPDATE_POS.

Referenced by parseParameterDeclaration(), and parseTypeId().

bool Parser::parseAccessSpecifier AST::Node node  )  [private]
 

Definition at line 1854 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), Token_private, Token_protected, Token_public, and UPDATE_POS.

Referenced by parseBaseSpecifier(), and parseMemberSpecification().

bool Parser::parseAdditiveExpression AST::Node node  )  [private]
 

Definition at line 3536 of file parser.cpp.

References lex, Lexer::lookAhead(), Lexer::nextToken(), and parseMultiplicativeExpression().

Referenced by parseShiftExpression().

bool Parser::parseAndExpression AST::Node node,
bool  templArgs = false
[private]
 

Definition at line 3605 of file parser.cpp.

References lex, Lexer::lookAhead(), Lexer::nextToken(), and parseEqualityExpression().

Referenced by parseExclusiveOrExpression().

bool Parser::parseAsmDefinition DeclarationAST::Node node  )  [private]
 

Definition at line 855 of file parser.cpp.

References ADVANCE, parseCvQualify(), skip(), and Token_asm.

Referenced by parseBlockDeclaration(), and parseDeclaration().

bool Parser::parseAssignmentExpression AST::Node node  )  [private]
 

Definition at line 3719 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseConditionalExpression(), parseThrowExpression(), Token_assign, Token_throw, and UPDATE_POS.

Referenced by parseCommaExpression(), parseConditionalExpression(), parseInitializerClause(), and parseThrowExpression().

bool Parser::parseBaseClause BaseClauseAST::Node node  )  [private]
 

Definition at line 2097 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseBaseSpecifier(), reportError(), and UPDATE_POS.

Referenced by parseClassSpecifier().

bool Parser::parseBaseSpecifier BaseSpecifierAST::Node node  )  [private]
 

Definition at line 2221 of file parser.cpp.

References AST_FROM_TOKEN, Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseAccessSpecifier(), parseName(), reportError(), and UPDATE_POS.

Referenced by parseBaseClause().

bool Parser::parseBlockDeclaration DeclarationAST::Node node  )  [private]
 

Definition at line 2776 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseAsmDefinition(), parseCvQualify(), parseInitDeclaratorList(), parseNamespaceAliasDefinition(), parseStorageClassSpecifier(), parseTypedef(), parseTypeSpecifierOrClassSpec(), parseUsing(), Lexer::setIndex(), Token_asm, Token_namespace, Token_typedef, Token_using, and UPDATE_POS.

Referenced by parseDeclarationStatement().

bool Parser::parseCastExpression AST::Node node  )  [private]
 

Definition at line 3476 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseTypeId(), parseUnaryExpression(), and Lexer::setIndex().

Referenced by parseDeleteExpression(), parsePmExpression(), and parseUnaryExpression().

bool Parser::parseClassSpecifier TypeSpecifierAST::Node node  )  [private]
 

Definition at line 1781 of file parser.cpp.

References ADVANCE, Lexer::index(), Token::isNull(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseBaseClause(), parseMemberSpecification(), parseName(), parseWinDeclSpec(), reportError(), Lexer::setIndex(), skipUntil(), skipUntilDeclaration(), Token_class, Token_identifier, Token_struct, and UPDATE_POS.

Referenced by parseDeclaration(), parseMemberSpecification(), and parseTypeSpecifierOrClassSpec().

bool Parser::parseCommaExpression AST::Node node  )  [private]
 

Definition at line 3770 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseAssignmentExpression(), and UPDATE_POS.

Referenced by parseDeclarator(), parseExpression(), parseNewExpression(), parseNewInitializer(), parsePostfixExpression(), and parsePrimaryExpression().

bool Parser::parseCompoundStatement StatementAST::Node node  )  [private]
 

Definition at line 2616 of file parser.cpp.

References Lexer::index(), Token::isNull(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseStatement(), reportError(), skipUntilStatement(), and UPDATE_POS.

Referenced by parseStatement(), parseSwitchStatement(), and parseTryBlockStatement().

bool Parser::parseCondition ConditionAST::Node node  )  [private]
 

Definition at line 2464 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseDeclarator(), parseTypeSpecifier(), Lexer::setIndex(), skipCommaExpression(), skipExpression(), and UPDATE_POS.

Referenced by parseForStatement(), parseIfStatement(), parseSwitchStatement(), parseTryBlockStatement(), and parseWhileStatement().

bool Parser::parseConditionalExpression AST::Node node  )  [private]
 

Definition at line 3697 of file parser.cpp.

References CHECK, lex, Lexer::lookAhead(), Lexer::nextToken(), parseAssignmentExpression(), parseExpression(), and parseLogicalOrExpression().

Referenced by parseAssignmentExpression(), and parseConstantExpression().

bool Parser::parseConstantExpression AST::Node node  )  [private]
 

Definition at line 3742 of file parser.cpp.

References Lexer::index(), lex, parseConditionalExpression(), and UPDATE_POS.

Referenced by parseDeclarator(), parseEnumerator(), and parseLabeledStatement().

bool Parser::parseCtorInitializer AST::Node node  )  [private]
 

Definition at line 1955 of file parser.cpp.

References lex, Lexer::lookAhead(), Lexer::nextToken(), parseMemInitializerList(), and reportError().

Referenced by parseDeclarationInternal().

bool Parser::parseCvQualify GroupAST::Node node  )  [private]
 

Definition at line 975 of file parser.cpp.

References Lexer::index(), Token::isNull(), lex, Lexer::lookAhead(), Lexer::nextToken(), Token_const, and UPDATE_POS.

Referenced by parseAsmDefinition(), parseBlockDeclaration(), parseDeclaration(), parseDeclarationInternal(), parseMemberSpecification(), parseOperatorFunctionId(), parsePtrOperator(), and parseTypeSpecifier().

bool Parser::parseDeclaration DeclarationAST::Node node  )  [private]
 

Definition at line 462 of file parser.cpp.

References ADVANCE, Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), objcp, parseAsmDefinition(), parseClassSpecifier(), parseCvQualify(), parseDeclarationInternal(), parseEnumSpecifier(), parseInitDeclaratorList(), parseLinkageSpecification(), parseNamespace(), parseObjcDef(), parseStorageClassSpecifier(), parseTemplateDeclaration(), parseTypedef(), parseUsing(), Lexer::setIndex(), Token_asm, Token_export, Token_extern, Token_namespace, Token_template, Token_typedef, Token_using, and UPDATE_POS.

Referenced by CppCodeCompletion::completeText(), parseLinkageBody(), parseLinkageSpecification(), and parseTemplateDeclaration().

bool Parser::parseDeclarationInternal DeclarationAST::Node node  )  [private]
 

Definition at line 2868 of file parser.cpp.

References ADVANCE, Token::getEndPosition(), Token::getStartPosition(), Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseCtorInitializer(), parseCvQualify(), parseFunctionBody(), parseFunctionSpecifier(), parseInitDeclarator(), parseInitDeclaratorList(), parseName(), parseStorageClassSpecifier(), parseTypeSpecifier(), parseWinDeclSpec(), Token::setEndPosition(), Lexer::setIndex(), Token::setStartPosition(), Token::setText(), syntaxError(), Token_const, Token_identifier, toString(), and UPDATE_POS.

Referenced by parseDeclaration(), and parseMemberSpecification().

bool Parser::parseDeclarationStatement StatementAST::Node node  )  [private]
 

Definition at line 2848 of file parser.cpp.

References Lexer::index(), lex, parseBlockDeclaration(), and UPDATE_POS.

Referenced by parseForInitStatement(), and parseStatement().

bool Parser::parseDeclarator DeclaratorAST::Node node  )  [private]
 

Definition at line 1133 of file parser.cpp.

References ADVANCE, Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseCommaExpression(), parseConstantExpression(), parseDeclaratorId(), parseExceptionSpecification(), parseParameterDeclarationClause(), parsePtrOperator(), reportError(), Lexer::setIndex(), Token_identifier, and UPDATE_POS.

Referenced by parseCondition(), parseInitDeclarator(), and parseParameterDeclaration().

bool Parser::parseDeclaratorId NameAST::Node node  )  [private]
 

Definition at line 2006 of file parser.cpp.

References parseName().

Referenced by parseDeclarator().

bool Parser::parseDeleteExpression AST::Node node  )  [private]
 

Definition at line 3459 of file parser.cpp.

References CHECK, lex, Lexer::lookAhead(), Lexer::nextToken(), parseCastExpression(), Token_delete, and Token_scope.

Referenced by parseUnaryExpression().

bool Parser::parseDoStatement StatementAST::Node node  )  [private]
 

Definition at line 2535 of file parser.cpp.

References ADVANCE, ADVANCE_NR, Lexer::index(), lex, parseStatement(), reportError(), skipCommaExpression(), Token_do, Token_while, and UPDATE_POS.

Referenced by parseStatement().

bool Parser::parseElaboratedTypeSpecifier TypeSpecifierAST::Node node  )  [private]
 

Definition at line 1972 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseName(), Lexer::setIndex(), Token_class, Token_enum, Token_struct, Token_union, and UPDATE_POS.

Referenced by parseTypeSpecifier().

bool Parser::parseEnumerator EnumeratorAST::Node node  )  [private]
 

Definition at line 2039 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseConstantExpression(), reportError(), and UPDATE_POS.

Referenced by parseEnumSpecifier().

bool Parser::parseEnumSpecifier TypeSpecifierAST::Node node  )  [private]
 

Definition at line 1357 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseEnumerator(), parseName(), reportError(), Lexer::setIndex(), and UPDATE_POS.

Referenced by parseDeclaration(), parseMemberSpecification(), and parseTypeSpecifierOrClassSpec().

bool Parser::parseEqualityExpression AST::Node node,
bool  templArgs = false
[private]
 

Definition at line 3588 of file parser.cpp.

References lex, Lexer::lookAhead(), Lexer::nextToken(), parseRelationalExpression(), and Token_eq.

Referenced by parseAndExpression().

bool Parser::parseExceptionSpecification GroupAST::Node node  )  [private]
 

Definition at line 2012 of file parser.cpp.

References ADVANCE, AST_FROM_TOKEN, Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseTypeIdList(), and UPDATE_POS.

Referenced by parseAbstractDeclarator(), and parseDeclarator().

bool Parser::parseExclusiveOrExpression AST::Node node,
bool  templArgs = false
[private]
 

Definition at line 3622 of file parser.cpp.

References lex, Lexer::lookAhead(), Lexer::nextToken(), and parseAndExpression().

Referenced by parseInclusiveOrExpression().

bool Parser::parseExpression AST::Node node  )  [private]
 

Definition at line 3755 of file parser.cpp.

References Lexer::index(), lex, parseCommaExpression(), and UPDATE_POS.

Referenced by parseConditionalExpression(), parseNewDeclarator(), and parsePrimaryExpression().

bool Parser::parseForInitStatement StatementAST::Node node  )  [private]
 

Definition at line 2606 of file parser.cpp.

References parseDeclarationStatement(), and skipExpressionStatement().

Referenced by parseForStatement().

bool Parser::parseForStatement StatementAST::Node node  )  [private]
 

Definition at line 2569 of file parser.cpp.

References ADVANCE, Lexer::index(), lex, parseCondition(), parseForInitStatement(), parseStatement(), reportError(), skipCommaExpression(), Token_for, and UPDATE_POS.

Referenced by parseStatement().

bool Parser::parseFunctionBody StatementListAST::Node node  )  [private]
 

Definition at line 3071 of file parser.cpp.

References Lexer::index(), Token::isNull(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseStatement(), reportError(), skipUntilStatement(), and UPDATE_POS.

Referenced by parseDeclarationInternal().

bool Parser::parseFunctionSpecifier GroupAST::Node node  )  [private]
 

Definition at line 1583 of file parser.cpp.

References Lexer::index(), Token::isNull(), lex, Lexer::lookAhead(), Lexer::nextToken(), Token_inline, Token_virtual, and UPDATE_POS.

Referenced by parseDeclarationInternal().

bool Parser::parseIdentifierColon AST::Node node  )  [private]
 

Definition at line 3996 of file parser.cpp.

References lex, Lexer::lookAhead(), Lexer::nextToken(), and Token_identifier.

bool Parser::parseIdentifierList GroupAST::Node node  )  [private]
 

Definition at line 3968 of file parser.cpp.

References ADVANCE, AST_FROM_TOKEN, Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), Token_identifier, and UPDATE_POS.

Referenced by parseObjcAliasDecl(), parseObjcClassDecl(), parseObjcProtocolDecl(), and parseWinDeclSpec().

bool Parser::parseIfStatement StatementAST::Node node  )  [private]
 

Definition at line 2655 of file parser.cpp.

References ADVANCE, Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseCondition(), parseStatement(), reportError(), Token_if, and UPDATE_POS.

Referenced by parseStatement().

bool Parser::parseInclusiveOrExpression AST::Node node,
bool  templArgs = false
[private]
 

Definition at line 3639 of file parser.cpp.

References lex, Lexer::lookAhead(), Lexer::nextToken(), and parseExclusiveOrExpression().

Referenced by parseLogicalAndExpression().

bool Parser::parseInitDeclarator InitDeclaratorAST::Node node  )  [private]
 

Definition at line 2072 of file parser.cpp.

References Lexer::index(), lex, parseDeclarator(), parseInitializer(), and UPDATE_POS.

Referenced by parseDeclarationInternal(), and parseInitDeclaratorList().

bool Parser::parseInitDeclaratorList InitDeclaratorListAST::Node node  )  [private]
 

Definition at line 1634 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseInitDeclarator(), syntaxError(), and UPDATE_POS.

Referenced by parseBlockDeclaration(), parseDeclaration(), parseDeclarationInternal(), parseMemberSpecification(), and parseTypedef().

bool Parser::parseInitializer AST::Node node  )  [private]
 

Definition at line 2131 of file parser.cpp.

References ADVANCE, lex, Lexer::lookAhead(), Lexer::nextToken(), parseInitializerClause(), reportError(), and skipCommaExpression().

Referenced by parseInitDeclarator().

bool Parser::parseInitializerClause AST::Node node  )  [private]
 

Definition at line 2260 of file parser.cpp.

References lex, Lexer::lookAhead(), Lexer::nextToken(), parseAssignmentExpression(), reportError(), and skip().

Referenced by parseInitializer().

bool Parser::parseIvarDecl AST::Node node  )  [private]
 

Definition at line 3818 of file parser.cpp.

bool Parser::parseIvarDeclarator AST::Node node  )  [private]
 

Definition at line 3830 of file parser.cpp.

bool Parser::parseIvarDeclList AST::Node node  )  [private]
 

Definition at line 3806 of file parser.cpp.

bool Parser::parseIvarDecls AST::Node node  )  [private]
 

Definition at line 3812 of file parser.cpp.

bool Parser::parseIvars AST::Node node  )  [private]
 

Definition at line 3824 of file parser.cpp.

bool Parser::parseKeywordArg AST::Node node  )  [private]
 

Definition at line 3896 of file parser.cpp.

bool Parser::parseKeywordArgList AST::Node node  )  [private]
 

Definition at line 3890 of file parser.cpp.

bool Parser::parseKeywordDecl AST::Node node  )  [private]
 

Definition at line 3860 of file parser.cpp.

bool Parser::parseKeywordExpr AST::Node node  )  [private]
 

Definition at line 3884 of file parser.cpp.

bool Parser::parseKeywordName AST::Node node  )  [private]
 

Definition at line 3944 of file parser.cpp.

bool Parser::parseKeywordNameList AST::Node node  )  [private]
 

Definition at line 3938 of file parser.cpp.

bool Parser::parseKeywordSelector AST::Node node  )  [private]
 

Definition at line 3848 of file parser.cpp.

bool Parser::parseLabeledStatement StatementAST::Node node  )  [private]
 

Definition at line 2729 of file parser.cpp.

References ADVANCE, lex, Lexer::lookAhead(), Lexer::nextToken(), parseConstantExpression(), parseStatement(), reportError(), Token_case, Token_default, and Token_identifier.

Referenced by parseStatement().

bool Parser::parseLinkageBody LinkageBodyAST::Node node  )  [private]
 

Definition at line 579 of file parser.cpp.

References Lexer::index(), Token::isNull(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseDeclaration(), reportError(), skipUntilDeclaration(), and UPDATE_POS.

Referenced by parseLinkageSpecification(), and parseNamespace().

bool Parser::parseLinkageSpecification DeclarationAST::Node node  )  [private]
 

Definition at line 538 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseDeclaration(), parseLinkageBody(), reportError(), and UPDATE_POS.

Referenced by parseDeclaration().

bool Parser::parseLogicalAndExpression AST::Node node,
bool  templArgs = false
[private]
 

Definition at line 3656 of file parser.cpp.

References lex, Lexer::lookAhead(), Lexer::nextToken(), and parseInclusiveOrExpression().

Referenced by parseLogicalOrExpression().

bool Parser::parseLogicalOrExpression AST::Node node,
bool  templArgs = false
[private]
 

Definition at line 3674 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseLogicalAndExpression(), and UPDATE_POS.

Referenced by parseConditionalExpression(), parseParameterDeclaration(), and parseTemplateArgument().

bool Parser::parseMemberSpecification DeclarationAST::Node node  )  [private]
 

Definition at line 1875 of file parser.cpp.

References ADVANCE, Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseAccessSpecifier(), parseClassSpecifier(), parseCvQualify(), parseDeclarationInternal(), parseEnumSpecifier(), parseInitDeclaratorList(), parseStorageClassSpecifier(), parseTemplateDeclaration(), parseTypedef(), parseUsing(), Lexer::setIndex(), Token_k_dcop, Token_Q_OBJECT, Token_signals, and UPDATE_POS.

Referenced by parseClassSpecifier().

bool Parser::parseMemInitializer AST::Node node  )  [private]
 

Definition at line 2175 of file parser.cpp.

References ADVANCE, parseMemInitializerId(), reportError(), and skipCommaExpression().

Referenced by parseMemInitializerList().

bool Parser::parseMemInitializerId NameAST::Node node  )  [private]
 

Definition at line 2278 of file parser.cpp.

References parseName().

Referenced by parseMemInitializer().

bool Parser::parseMemInitializerList AST::Node node  )  [private]
 

Definition at line 2154 of file parser.cpp.

References lex, Lexer::lookAhead(), Lexer::nextToken(), and parseMemInitializer().

Referenced by parseCtorInitializer().

bool Parser::parseMessageArgs AST::Node node  )  [private]
 

Definition at line 3878 of file parser.cpp.

bool Parser::parseMethodDecl AST::Node node  )  [private]
 

Definition at line 3836 of file parser.cpp.

bool Parser::parseMultiplicativeExpression AST::Node node  )  [private]
 

Definition at line 3518 of file parser.cpp.

References lex, Lexer::lookAhead(), Lexer::nextToken(), and parsePmExpression().

Referenced by parseAdditiveExpression().

bool Parser::parseMyParm AST::Node node  )  [private]
 

Definition at line 3914 of file parser.cpp.

bool Parser::parseMyParms AST::Node node  )  [private]
 

Definition at line 3908 of file parser.cpp.

bool Parser::parseName NameAST::Node node  )  [private]
 

skip optional template ####

Todo:
CHECK

Definition at line 389 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseUnqualifiedName(), parseWinDeclSpec(), and UPDATE_POS.

Referenced by parseBaseSpecifier(), parseClassSpecifier(), parseDeclarationInternal(), parseDeclaratorId(), parseElaboratedTypeSpecifier(), parseEnumSpecifier(), parseMemInitializerId(), parseNamespace(), parseNamespaceAliasDefinition(), parsePostfixExpression(), parsePrimaryExpression(), parseSimpleTypeSpecifier(), parseTypeParameter(), parseUsing(), and parseUsingDirective().

bool Parser::parseNamespace DeclarationAST::Node node  )  [private]
 

Definition at line 620 of file parser.cpp.

References ADVANCE, Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseLinkageBody(), parseName(), reportError(), and UPDATE_POS.

Referenced by parseDeclaration().

bool Parser::parseNamespaceAliasDefinition DeclarationAST::Node node  )  [private]
 

Definition at line 2827 of file parser.cpp.

References ADVANCE, lex, Lexer::lookAhead(), Lexer::nextToken(), parseName(), reportError(), and Token_identifier.

Referenced by parseBlockDeclaration().

bool Parser::parseNewDeclarator AST::Node node  )  [private]
 

Definition at line 3422 of file parser.cpp.

References ADVANCE, lex, Lexer::lookAhead(), Lexer::nextToken(), parseExpression(), and parsePtrOperator().

Referenced by parseNewTypeId().

bool Parser::parseNewExpression AST::Node node  )  [private]
 

Definition at line 3379 of file parser.cpp.

References CHECK, lex, Lexer::lookAhead(), Lexer::nextToken(), parseCommaExpression(), parseNewInitializer(), parseNewTypeId(), parseTypeId(), Token_new, and Token_scope.

Referenced by parseUnaryExpression().

bool Parser::parseNewInitializer AST::Node node  )  [private]
 

Definition at line 3445 of file parser.cpp.

References CHECK, lex, Lexer::lookAhead(), Lexer::nextToken(), and parseCommaExpression().

Referenced by parseNewExpression().

bool Parser::parseNewTypeId AST::Node node  )  [private]
 

Definition at line 3409 of file parser.cpp.

References parseNewDeclarator(), and parseTypeSpecifier().

Referenced by parseNewExpression().

bool Parser::parseObjcAliasDecl DeclarationAST::Node node  )  [private]
 

Definition at line 4065 of file parser.cpp.

References ADVANCE, OBJC_ALIAS, and parseIdentifierList().

bool Parser::parseObjcClassDecl DeclarationAST::Node node  )  [private]
 

Definition at line 4039 of file parser.cpp.

References ADVANCE, OBJC_CLASS, and parseIdentifierList().

bool Parser::parseObjcClassDef DeclarationAST::Node node  )  [private]
 

Definition at line 4033 of file parser.cpp.

bool Parser::parseObjcCloseBracket AST::Node node  )  [private]
 

Definition at line 4021 of file parser.cpp.

bool Parser::parseObjcDef DeclarationAST::Node node  )  [private]
 

Definition at line 4027 of file parser.cpp.

Referenced by parseDeclaration().

bool Parser::parseObjcEncodeExpr AST::Node node  )  [private]
 

Definition at line 3950 of file parser.cpp.

bool Parser::parseObjcMessageExpr AST::Node node  )  [private]
 

Definition at line 3872 of file parser.cpp.

bool Parser::parseObjcMethodDef DeclarationAST::Node node  )  [private]
 

Definition at line 4084 of file parser.cpp.

bool Parser::parseObjcOpenBracketExpr AST::Node node  )  [private]
 

Definition at line 4015 of file parser.cpp.

bool Parser::parseObjcProtocolDecl DeclarationAST::Node node  )  [private]
 

Definition at line 4052 of file parser.cpp.

References ADVANCE, OBJC_PROTOCOL, and parseIdentifierList().

bool Parser::parseObjcProtocolDef DeclarationAST::Node node  )  [private]
 

Definition at line 4078 of file parser.cpp.

bool Parser::parseObjcProtocolExpr AST::Node node  )  [private]
 

Definition at line 4009 of file parser.cpp.

bool Parser::parseObjcSelectorExpr AST::Node node  )  [private]
 

Definition at line 3926 of file parser.cpp.

bool Parser::parseObjcString AST::Node node  )  [private]
 

Definition at line 3956 of file parser.cpp.

bool Parser::parseOperator AST::Node node  )  [private]
 

Definition at line 915 of file parser.cpp.

References lex, Lexer::lookAhead(), Lexer::nextToken(), Token::text(), text(), Token_and, Token_arrow, Token_assign, Token_decr, Token_delete, Token_eq, Token_geq, Token_incr, Token_leq, Token_new, Token_not_eq, Token_or, Token_ptrmem, and Token_shift.

Referenced by parseOperatorFunctionId().

bool Parser::parseOperatorFunctionId AST::Node node  )  [private]
 

Definition at line 745 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseCvQualify(), parseOperator(), parsePtrOperator(), parseSimpleTypeSpecifier(), syntaxError(), and UPDATE_POS.

Referenced by parseUnqualifiedName().

bool Parser::parseOptParmList AST::Node node  )  [private]
 

Definition at line 3920 of file parser.cpp.

bool Parser::parseParameterDeclaration ParameterDeclarationAST::Node node  )  [private]
 

Definition at line 1738 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseAbstractDeclarator(), parseDeclarator(), parseLogicalOrExpression(), parseTypeSpecifier(), Lexer::setIndex(), and UPDATE_POS.

Referenced by parseParameterDeclarationList(), and parseTemplateParameter().

bool Parser::parseParameterDeclarationClause ParameterDeclarationClauseAST::Node node  )  [private]
 

Definition at line 1665 of file parser.cpp.

References AST_FROM_TOKEN, Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseParameterDeclarationList(), Token_ellipsis, and UPDATE_POS.

Referenced by parseAbstractDeclarator(), and parseDeclarator().

bool Parser::parseParameterDeclarationList ParameterDeclarationListAST::Node node  )  [private]
 

Definition at line 1704 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseParameterDeclaration(), Lexer::setIndex(), and UPDATE_POS.

Referenced by parseParameterDeclarationClause().

bool Parser::parsePmExpression AST::Node node  )  [private]
 

Definition at line 3501 of file parser.cpp.

References lex, Lexer::lookAhead(), Lexer::nextToken(), and parseCastExpression().

Referenced by parseMultiplicativeExpression().

bool Parser::parsePostfixExpression AST::Node node  )  [private]
 

Definition at line 3259 of file parser.cpp.

References CHECK, lex, Lexer::lookAhead(), Lexer::nextToken(), parseCommaExpression(), parseName(), parsePrimaryExpression(), Token_arrow, Token_decr, Token_incr, and Token_typename.

Referenced by parseUnaryExpression().

bool Parser::parsePrimaryExpression AST::Node node  )  [private]
 

Definition at line 3172 of file parser.cpp.

References CHECK, Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseCommaExpression(), parseExpression(), parseName(), parseSimpleTypeSpecifier(), parseStringLiteral(), parseTypeId(), Lexer::setIndex(), Token_char_literal, Token_const_cast, Token_dynamic_cast, Token_false, Token_number_literal, Token_reinterpret_cast, Token_static_cast, Token_string_literal, Token_this, Token_true, and Token_typeid.

Referenced by parsePostfixExpression().

bool Parser::parseProtocolRefs AST::Node node  )  [private]
 

Definition at line 3962 of file parser.cpp.

bool Parser::parsePtrOperator AST::Node node  )  [private]
 

Definition at line 1065 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseCvQualify(), parsePtrToMember(), Lexer::setIndex(), and UPDATE_POS.

Referenced by parseAbstractDeclarator(), parseDeclarator(), parseNewDeclarator(), and parseOperatorFunctionId().

bool Parser::parsePtrToMember AST::Node node  )  [private]
 

Definition at line 2285 of file parser.cpp.

References lex, Lexer::lookAhead(), Lexer::nextToken(), and Token_scope.

Referenced by parsePtrOperator().

bool Parser::parseReceiver AST::Node node  )  [private]
 

Definition at line 3866 of file parser.cpp.

bool Parser::parseRelationalExpression AST::Node node,
bool  templArgs = false
[private]
 

Definition at line 3570 of file parser.cpp.

References lex, Lexer::lookAhead(), Lexer::nextToken(), parseShiftExpression(), and Token_leq.

Referenced by parseEqualityExpression().

bool Parser::parseReservedWord AST::Node node  )  [private]
 

Definition at line 3902 of file parser.cpp.

bool Parser::parseSelector AST::Node node  )  [private]
 

Definition at line 3854 of file parser.cpp.

bool Parser::parseSelectorArg AST::Node node  )  [private]
 

Definition at line 3932 of file parser.cpp.

bool Parser::parseShiftExpression AST::Node node  )  [private]
 

Definition at line 3553 of file parser.cpp.

References lex, Lexer::lookAhead(), Lexer::nextToken(), and parseAdditiveExpression().

Referenced by parseRelationalExpression().

bool Parser::parseSimpleTypeSpecifier TypeSpecifierAST::Node node  )  [private]
 

Definition at line 1008 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseName(), Lexer::setIndex(), Token_bool, Token_char, Token_double, Token_float, Token_int, Token_long, Token_short, Token_signed, Token_unsigned, Token_void, Token_wchar_t, and UPDATE_POS.

Referenced by parseOperatorFunctionId(), parsePrimaryExpression(), and parseTypeSpecifier().

bool Parser::parseStatement StatementAST::Node node  )  [private]
 

Definition at line 2400 of file parser.cpp.

References ADVANCE, lex, Lexer::lookAhead(), Lexer::nextToken(), parseCompoundStatement(), parseDeclarationStatement(), parseDoStatement(), parseForStatement(), parseIfStatement(), parseLabeledStatement(), parseSwitchStatement(), parseTryBlockStatement(), parseWhileStatement(), skipCommaExpression(), skipExpressionStatement(), Token_break, Token_case, Token_continue, Token_default, Token_do, Token_for, Token_goto, Token_identifier, Token_if, Token_return, Token_switch, Token_try, and Token_while.

Referenced by parseCompoundStatement(), parseDoStatement(), parseForStatement(), parseFunctionBody(), parseIfStatement(), parseLabeledStatement(), and parseWhileStatement().

bool Parser::parseStorageClassSpecifier GroupAST::Node node  )  [private]
 

Definition at line 1554 of file parser.cpp.

References Lexer::index(), Token::isNull(), lex, Lexer::lookAhead(), Lexer::nextToken(), Token_auto, Token_extern, Token_friend, Token_register, Token_static, and UPDATE_POS.

Referenced by parseBlockDeclaration(), parseDeclaration(), parseDeclarationInternal(), and parseMemberSpecification().

bool Parser::parseStringLiteral AST::Node node  )  [private]
 

Definition at line 2365 of file parser.cpp.

References Token::isNull(), lex, Lexer::lookAhead(), Lexer::nextToken(), Token::text(), and Token_identifier.

Referenced by parsePrimaryExpression().

bool Parser::parseSwitchStatement StatementAST::Node node  )  [private]
 

Definition at line 2699 of file parser.cpp.

References ADVANCE, Lexer::index(), lex, parseCompoundStatement(), parseCondition(), reportError(), syntaxError(), Token_switch, and UPDATE_POS.

Referenced by parseStatement().

bool Parser::parseTemplateArgument AST::Node node  )  [private]
 

Definition at line 1095 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), parseLogicalOrExpression(), parseTypeId(), and Lexer::setIndex().

Referenced by parseTemplateArgumentList().

bool Parser::parseTemplateArgumentList TemplateArgumentListAST::Node node,
bool  reportError = true
[private]
 

Definition at line 789 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseTemplateArgument(), syntaxError(), and UPDATE_POS.

Referenced by parseUnqualifiedName().

bool Parser::parseTemplateDeclaration DeclarationAST::Node node  )  [private]
 

Definition at line 871 of file parser.cpp.

References ADVANCE, Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseDeclaration(), parseTemplateParameterList(), reportError(), and UPDATE_POS.

Referenced by parseDeclaration(), and parseMemberSpecification().

bool Parser::parseTemplateParameter TemplateParameterAST::Node node  )  [private]
 

Definition at line 1439 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), parseParameterDeclaration(), parseTypeParameter(), Token_class, Token_typename, and UPDATE_POS.

Referenced by parseTemplateParameterList().

bool Parser::parseTemplateParameterList TemplateParameterListAST::Node node  )  [private]
 

Definition at line 1408 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseTemplateParameter(), syntaxError(), and UPDATE_POS.

Referenced by parseTemplateDeclaration(), and parseTypeParameter().

bool Parser::parseThrowExpression AST::Node node  )  [private]
 

Definition at line 3792 of file parser.cpp.

References CHECK, lex, Lexer::lookAhead(), parseAssignmentExpression(), and Token_throw.

Referenced by parseAssignmentExpression().

bool Parser::parseTryBlockStatement StatementAST::Node node  )  [private]
 

Definition at line 3131 of file parser.cpp.

References ADVANCE, lex, Lexer::lookAhead(), Lexer::nextToken(), parseCompoundStatement(), parseCondition(), reportError(), and syntaxError().

Referenced by parseStatement().

bool Parser::parseTypedef DeclarationAST::Node node  )  [private]
 

Definition at line 821 of file parser.cpp.

References ADVANCE, Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseInitDeclaratorList(), parseTypeSpecifierOrClassSpec(), reportError(), and UPDATE_POS.

Referenced by parseBlockDeclaration(), parseDeclaration(), and parseMemberSpecification().

bool Parser::parseTypeId AST::Node node  )  [private]
 

Definition at line 1612 of file parser.cpp.

References Lexer::index(), lex, parseAbstractDeclarator(), parseTypeSpecifier(), and UPDATE_POS.

Referenced by parseCastExpression(), parseNewExpression(), parsePrimaryExpression(), parseTemplateArgument(), parseTypeIdList(), parseTypeParameter(), and parseUnaryExpression().

bool Parser::parseTypeIdList GroupAST::Node node  )  [private]
 

Definition at line 2192 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseTypeId(), reportError(), and UPDATE_POS.

Referenced by parseExceptionSpecification().

bool Parser::parseTypeParameter TypeParameterAST::Node node  )  [private]
 

Definition at line 1467 of file parser.cpp.

References ADVANCE, AST_FROM_TOKEN, Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseName(), parseTemplateParameterList(), parseTypeId(), syntaxError(), Token_class, Token_template, Token_typename, and UPDATE_POS.

Referenced by parseTemplateParameter().

bool Parser::parseTypeSpecifier TypeSpecifierAST::Node node  )  [private]
 

Definition at line 1113 of file parser.cpp.

References parseCvQualify(), parseElaboratedTypeSpecifier(), and parseSimpleTypeSpecifier().

Referenced by parseCondition(), parseDeclarationInternal(), parseNewTypeId(), parseParameterDeclaration(), parseTypeId(), parseTypeSpecifierOrClassSpec(), and CppCodeCompletion::typeName().

bool Parser::parseTypeSpecifierOrClassSpec TypeSpecifierAST::Node node  )  [private]
 

Definition at line 3119 of file parser.cpp.

References parseClassSpecifier(), parseEnumSpecifier(), and parseTypeSpecifier().

Referenced by parseBlockDeclaration(), and parseTypedef().

bool Parser::parseUnaryExpression AST::Node node  )  [private]
 

Definition at line 3333 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseCastExpression(), parseDeleteExpression(), parseNewExpression(), parsePostfixExpression(), parseTypeId(), Lexer::setIndex(), Token_decr, Token_delete, Token_incr, Token_new, and Token_sizeof.

Referenced by parseCastExpression().

bool Parser::parseUnarySelector AST::Node node  )  [private]
 

Definition at line 3842 of file parser.cpp.

bool Parser::parseUnqualifiedName ClassOrNamespaceNameAST::Node node  )  [private]
 

Definition at line 2307 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseOperatorFunctionId(), parseTemplateArgumentList(), Lexer::setIndex(), and UPDATE_POS.

Referenced by parseName().

bool Parser::parseUsing DeclarationAST::Node node  )  [private]
 

Definition at line 674 of file parser.cpp.

References ADVANCE, Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseName(), parseUsingDirective(), and UPDATE_POS.

Referenced by parseBlockDeclaration(), parseDeclaration(), and parseMemberSpecification().

bool Parser::parseUsingDirective DeclarationAST::Node node  )  [private]
 

Definition at line 717 of file parser.cpp.

References ADVANCE, Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseName(), reportError(), and UPDATE_POS.

Referenced by parseUsing().

bool Parser::parseWhileStatement StatementAST::Node node  )  [private]
 

Definition at line 2505 of file parser.cpp.

References ADVANCE, Lexer::index(), lex, parseCondition(), parseStatement(), reportError(), Token_while, and UPDATE_POS.

Referenced by parseStatement().

bool Parser::parseWinDeclSpec GroupAST::Node node  )  [private]
 

Definition at line 4090 of file parser.cpp.

References ADVANCE, Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), parseIdentifierList(), Token::text(), Token_identifier, and UPDATE_POS.

Referenced by parseClassSpecifier(), parseDeclarationInternal(), and parseName().

bool Parser::reportError const QString msg  )  [private, virtual]
 

Todo:
remove

Definition at line 146 of file parser.cpp.

References Driver::addProblem(), Driver::currentFileName(), Lexer::getTokenPosition(), lex, Lexer::lookAhead(), m_driver, and m_problems.

bool Parser::reportError const Error err  )  [private, virtual]
 

Definition at line 126 of file parser.cpp.

References Driver::addProblem(), Driver::currentFileName(), Lexer::getTokenPosition(), lex, Lexer::lookAhead(), m_driver, m_problems, Error::text, and Token::text().

void Parser::reportError const std::string &  s  )  [virtual]
 

Parser error-reporting function can be overridden in subclass.

Definition at line 164 of file Parser.cpp.

References ANTLR_USE_NAMESPACE, and getFilename().

void Parser::reportError const RecognitionException ex  )  [virtual]
 

Parser error-reporting function can be overridden in subclass.

Definition at line 158 of file Parser.cpp.

References ANTLR_USE_NAMESPACE, and RecognitionException::toString().

Referenced by parseAbstractDeclarator(), parseBaseClause(), parseBaseSpecifier(), parseClassSpecifier(), parseCompoundStatement(), parseCtorInitializer(), parseDeclarator(), parseDoStatement(), parseEnumerator(), parseEnumSpecifier(), parseForStatement(), parseFunctionBody(), parseIfStatement(), parseInitializer(), parseInitializerClause(), parseLabeledStatement(), parseLinkageBody(), parseLinkageSpecification(), parseMemInitializer(), parseNamespace(), parseNamespaceAliasDefinition(), parseSwitchStatement(), parseTemplateDeclaration(), parseTryBlockStatement(), parseTypedef(), parseTypeIdList(), parseUsingDirective(), parseWhileStatement(), skipCommaExpression(), and syntaxError().

void Parser::reportWarning const std::string &  s  )  [virtual]
 

Parser warning-reporting function can be overridden in subclass.

Definition at line 173 of file Parser.cpp.

References ANTLR_USE_NAMESPACE, and getFilename().

virtual void Parser::rewind int  pos  )  [inline, virtual]
 

rewind to a previously marked position

Definition at line 155 of file Parser.hpp.

References inputState.

virtual void Parser::setASTFactory ASTFactory factory  )  [inline, virtual]
 

Specify the factory to be used during tree building.

(Compulsory) Setting the factory is nowadays compulsory.

Definition at line 90 of file Parser.hpp.

References astFactory.

virtual void Parser::setASTNodeFactory ASTFactory factory  )  [inline, virtual]
 

DEPRECATED! Specify the factory to be used during tree building.

(Compulsory) Setting the factory is nowadays compulsory.

See also:
setASTFactory

Definition at line 83 of file Parser.hpp.

References astFactory.

virtual void Parser::setFilename const std::string &  f  )  [inline, virtual]
 

Set the filename of the input file (used for error reporting).

Definition at line 114 of file Parser.hpp.

References inputState.

virtual void Parser::setInputState ParserSharedInputState  state  )  [inline, virtual]
 

Definition at line 119 of file Parser.hpp.

References inputState, and ParserSharedInputState.

bool Parser::skip int  l,
int  r
[private]
 

Definition at line 282 of file parser.cpp.

References Token::isNull(), lex, Lexer::lookAhead(), and Lexer::nextToken().

Referenced by parseAsmDefinition(), parseInitializerClause(), and skipExpression().

bool Parser::skipCommaExpression AST::Node node  )  [private]
 

Definition at line 304 of file parser.cpp.

References Lexer::index(), lex, Lexer::lookAhead(), Lexer::nextToken(), reportError(), skipExpression(), and UPDATE_POS.

Referenced by parseAbstractDeclarator(), parseCondition(), parseDoStatement(), parseForStatement(), parseInitializer(), parseMemInitializer(), parseStatement(), and skipExpressionStatement().

bool Parser::skipExpression AST::Node node  )  [private]
 

Definition at line 330 of file parser.cpp.

References Lexer::index(), Token::isNull(), lex, Lexer::lookAhead(), Lexer::nextToken(), skip(), Token_break, Token_case, Token_continue, Token_default, Token_do, Token_for, Token_goto, Token_identifier, Token_if, Token_return, Token_while, and UPDATE_POS.

Referenced by parseCondition(), and skipCommaExpression().

bool Parser::skipExpressionStatement StatementAST::Node node  )  [private]
 

Definition at line 2381 of file parser.cpp.

References ADVANCE, Lexer::index(), lex, skipCommaExpression(), and UPDATE_POS.

Referenced by parseForInitStatement(), and parseStatement().

bool Parser::skipUntil int  token  )  [private]
 

Definition at line 166 of file parser.cpp.

References Token::isNull(), lex, Lexer::lookAhead(), and Lexer::nextToken().

Referenced by parseClassSpecifier().

bool Parser::skipUntilDeclaration  )  [private]
 

Definition at line 179 of file parser.cpp.

References Token::isNull(), lex, Lexer::lookAhead(), Lexer::nextToken(), Token_asm, Token_bool, Token_char, Token_const, Token_double, Token_export, Token_extern, Token_float, Token_identifier, Token_int, Token_long, Token_namespace, Token_operator, Token_private, Token_protected, Token_public, Token_scope, Token_short, Token_signals, Token_signed, Token_slots, Token_template, Token_typedef, Token_unsigned, Token_using, Token_void, Token_volatile, and Token_wchar_t.

Referenced by parseClassSpecifier(), and parseLinkageBody().

bool Parser::skipUntilStatement  )  [private]
 

Definition at line 228 of file parser.cpp.

References Token::isNull(), lex, Lexer::lookAhead(), Lexer::nextToken(), Token_bool, Token_break, Token_case, Token_catch, Token_char, Token_class, Token_const, Token_continue, Token_default, Token_do, Token_double, Token_enum, Token_float, Token_for, Token_goto, Token_identifier, Token_if, Token_int, Token_long, Token_return, Token_scope, Token_short, Token_signed, Token_struct, Token_switch, Token_template, Token_throw, Token_try, Token_union, Token_unsigned, Token_using, Token_void, Token_volatile, Token_wchar_t, and Token_while.

Referenced by parseCompoundStatement(), and parseFunctionBody().

void Parser::syntaxError  )  [private, virtual]
 

Todo:
remove

Definition at line 161 of file parser.cpp.

References reportError().

Referenced by parseDeclarationInternal(), parseInitDeclaratorList(), parseOperatorFunctionId(), parseSwitchStatement(), parseTemplateArgumentList(), parseTemplateParameterList(), parseTryBlockStatement(), and parseTypeParameter().

QString Parser::toString int  start,
int  end,
const QString sep = " "
const [private]
 

Definition at line 3108 of file parser.cpp.

References lex, Token::text(), and Lexer::tokenAt().

Referenced by parseDeclarationInternal().

void Parser::traceIn const char *  rname  )  [virtual]
 

Reimplemented in LLkParser.

Definition at line 190 of file Parser.cpp.

References ANTLR_USE_NAMESPACE, inputState, LT(), and traceDepth.

Referenced by Parser::Tracer::Tracer().

void Parser::traceIndent  )  [virtual]
 

Set or change the input token buffer.

Definition at line 184 of file Parser.cpp.

References ANTLR_USE_NAMESPACE.

Referenced by match(), and LLkParser::trace().

void Parser::traceOut const char *  rname  )  [virtual]
 

Reimplemented in LLkParser.

Definition at line 203 of file Parser.cpp.

References ANTLR_USE_NAMESPACE, inputState, and LT().

Referenced by Parser::Tracer::~Tracer().


Member Data Documentation

public Parser::__pad0__ [private]
 

Definition at line 50 of file parser.h.

ASTFactory* Parser::astFactory [protected]
 

AST support code; parser and treeparser delegate to this object.

Definition at line 194 of file Parser.hpp.

Referenced by setASTFactory(), and setASTNodeFactory().

ParserPrivateData* Parser::d [private]
 

Definition at line 207 of file parser.h.

Referenced by Parser().

ParserSharedInputState Parser::inputState [protected]
 

Definition at line 188 of file Parser.hpp.

Referenced by getFilename(), mark(), rewind(), setFilename(), setInputState(), traceIn(), and traceOut().

Lexer* Parser::lex [private]
 

Definition at line 209 of file parser.h.

Referenced by parseAbstractDeclarator(), parseAccessSpecifier(), parseAdditiveExpression(), parseAndExpression(), parseAssignmentExpression(), parseBaseClause(), parseBaseSpecifier(), parseBlockDeclaration(), parseCastExpression(), parseClassSpecifier(), parseCommaExpression(), parseCompoundStatement(), parseCondition(), parseConditionalExpression(), parseConstantExpression(), parseCtorInitializer(), parseCvQualify(), parseDeclaration(), parseDeclarationInternal(), parseDeclarationStatement(), parseDeclarator(), parseDeleteExpression(), parseDoStatement(), parseElaboratedTypeSpecifier(), parseEnumerator(), parseEnumSpecifier(), parseEqualityExpression(), parseExceptionSpecification(), parseExclusiveOrExpression(), parseExpression(), parseForStatement(), parseFunctionBody(), parseFunctionSpecifier(), parseIdentifierColon(), parseIdentifierList(), parseIfStatement(), parseInclusiveOrExpression(), parseInitDeclarator(), parseInitDeclaratorList(), parseInitializer(), parseInitializerClause(), parseLabeledStatement(), parseLinkageBody(), parseLinkageSpecification(), parseLogicalAndExpression(), parseLogicalOrExpression(), parseMemberSpecification(), parseMemInitializerList(), parseMultiplicativeExpression(), parseName(), parseNamespace(), parseNamespaceAliasDefinition(), parseNewDeclarator(), parseNewExpression(), parseNewInitializer(), parseOperator(), parseOperatorFunctionId(), parseParameterDeclaration(), parseParameterDeclarationClause(), parseParameterDeclarationList(), parsePmExpression(), parsePostfixExpression(), parsePrimaryExpression(), parsePtrOperator(), parsePtrToMember(), parseRelationalExpression(), parseShiftExpression(), parseSimpleTypeSpecifier(), parseStatement(), parseStorageClassSpecifier(), parseStringLiteral(), parseSwitchStatement(), parseTemplateArgument(), parseTemplateArgumentList(), parseTemplateDeclaration(), parseTemplateParameter(), parseTemplateParameterList(), parseThrowExpression(), parseTryBlockStatement(), parseTypedef(), parseTypeId(), parseTypeIdList(), parseTypeParameter(), parseUnaryExpression(), parseUnqualifiedName(), parseUsing(), parseUsingDirective(), parseWhileStatement(), parseWinDeclSpec(), reportError(), skip(), skipCommaExpression(), skipExpression(), skipExpressionStatement(), skipUntil(), skipUntilDeclaration(), skipUntilStatement(), and toString().

Driver* Parser::m_driver [private]
 

Definition at line 208 of file parser.h.

Referenced by reportError().

int Parser::m_maxProblems [private]
 

Definition at line 211 of file parser.h.

Referenced by Parser().

int Parser::m_problems [private]
 

Definition at line 210 of file parser.h.

Referenced by reportError().

bool Parser::objcp [private]
 

Definition at line 212 of file parser.h.

Referenced by parseDeclaration(), and Parser().

RefAST Parser::returnAST [protected]
 

AST return value for a rule is squirreled away here.

Definition at line 191 of file Parser.hpp.

int Parser::traceDepth [protected]
 

Definition at line 197 of file Parser.hpp.

Referenced by traceIn().


The documentation for this class was generated from the following files:
KDE Logo
This file is part of the documentation for KDevelop Version 3.1.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Mar 23 00:27:35 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003