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 ASTFactory * getASTFactory ()
 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.
ASTFactory * astFactory
 AST support code; parser and treeparser delegate to this object.
int traceDepth

Private Member Functions

 Parser (const Parser &)
const Parser & operator= (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 )
ParserPrivateData * d
Driver * m_driver
Lexer * lex
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 Tue Feb 22 09:44:56 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003