comma::Parser Class Reference

#include <Parser.h>

Collaboration diagram for comma::Parser:
Collaboration graph
[legend]

List of all members.

Classes

struct  EndTagEntry

Public Types

enum  NameOption { No_Option, Statement_Name, Accept_Range_Attribute }
 

The following enumeration is used to control how names are parsed.

More...
typedef void(Parser::* parseFn )()
typedef Node(Parser::* parseNodeFn )()

Public Member Functions

 Parser (TextProvider &txtProvider, IdentifierPool &idPool, ParseClient &client, Diagnostic &diag)
void parseModel ()
void parseGenericFormalParams ()
void parseGenericFormalDomain ()
void parseSignatureProfile ()
void parseSupersignatureProfile ()
void parseWithComponents ()
bool parseSubroutineParameter ()
void parseSubroutineParameters ()
Node parseFunctionDeclaration (bool parsingSignatureProfile=false)
Node parseProcedureDeclaration (bool parsingSignatureProfile=false)
void parseFunctionDeclOrDefinition ()
void parseProcedureDeclOrDefinition ()
void parseSubroutineBody (Node declarationNode)
bool parseDeclaration ()
bool parseObjectDeclaration ()
bool parseImportDeclaration ()
void parseCarrier ()
void parseAddComponents ()
Node parseStatement ()
Node parseIfStmt ()
Node parseReturnStmt ()
Node parseAssignmentStmt ()
Node parseBlockStmt ()
Node parseWhileStmt ()
Node parseLoopStmt ()
Node parseForStmt ()
Node parsePragmaStmt ()
Node parseProcedureCallStatement ()
Node parseRaiseStmt ()
void parseExceptionStmt (Node context)
Node parseExpr ()
Node parsePrimaryExpr ()
Node parseParenExpr ()
Node parseOperatorExpr ()
Node parseIntegerLiteral ()
Node parseStringLiteral ()
Node parseQualifiedExpr (Node qualifier)
Node parseAllocatorExpr ()
Node parseName (NameOption option=No_Option)
Node parseDirectName (NameOption option)
Node parseSelectedComponent (Node prefix, NameOption option)
Node parseApplication (Node prefix)
Node parseParameterAssociation ()
Node parseAttribute (Node prefix, NameOption option)
Node parseInj ()
Node parsePrj ()
bool parseType ()
bool parseSubtype ()
void parseEnumerationList ()
bool parseIntegerRange (IdentifierInfo *name, Location loc)
void parseArrayIndexProfile (NodeVector &indices)
bool parseArrayTypeDecl (IdentifierInfo *name, Location loc)
bool parseRecordTypeDecl (IdentifierInfo *name, Location loc)
bool parseAccessTypeDecl (IdentifierInfo *name, Location loc)
bool parseTopLevelDeclaration ()
 Parses a top level construct. Returns false once all tokens have been consumed.
bool parseSuccessful () const
 Returns true if the parser has been driven without seeing an error and false otherwise.

Detailed Description

Definition at line 28 of file Parser.h.


Member Typedef Documentation

typedef void(Parser::* comma::Parser::parseFn)()

Definition at line 37 of file Parser.h.

typedef Node(Parser::* comma::Parser::parseNodeFn)()

Definition at line 40 of file Parser.h.


Member Enumeration Documentation

The following enumeration is used to control how names are parsed.

Enumerator:
No_Option 

Indicates that none of the following options apply.

Statement_Name 

Indicates that the name is to be used as a statement (i.e. a procedure).

Accept_Range_Attribute 

Indicates that Range attributes are valid (e.g. a the control in a for statement.

Definition at line 96 of file Parser.h.


Constructor & Destructor Documentation

Parser::Parser ( TextProvider txtProvider,
IdentifierPool idPool,
ParseClient client,
Diagnostic diag 
)

Definition at line 40 of file Parser.cpp.


Member Function Documentation

bool Parser::parseAccessTypeDecl ( IdentifierInfo name,
Location  loc 
)

Definition at line 1384 of file Parser.cpp.

void Parser::parseAddComponents (  ) 

Definition at line 720 of file Parser.cpp.

Node Parser::parseAllocatorExpr (  ) 

Definition at line 356 of file ParseExpr.cpp.

Node Parser::parseApplication ( Node  prefix  ) 

Definition at line 101 of file ParseName.cpp.

void Parser::parseArrayIndexProfile ( NodeVector indices  ) 

Definition at line 1293 of file Parser.cpp.

bool Parser::parseArrayTypeDecl ( IdentifierInfo name,
Location  loc 
)

Definition at line 1316 of file Parser.cpp.

Node Parser::parseAssignmentStmt (  ) 

Definition at line 96 of file ParseStmt.cpp.

Node Parser::parseAttribute ( Node  prefix,
NameOption  option 
)

Names can be parsed in a variety of contexts. However, Range attributes are a special case as there are special parse rules which consume them.

Definition at line 164 of file ParseName.cpp.

Node Parser::parseBlockStmt (  ) 

Definition at line 192 of file ParseStmt.cpp.

void Parser::parseCarrier (  ) 

Definition at line 693 of file Parser.cpp.

bool Parser::parseDeclaration (  ) 

Definition at line 1058 of file Parser.cpp.

Node Parser::parseDirectName ( NameOption  option  ) 

Definition at line 16 of file ParseName.cpp.

void Parser::parseEnumerationList (  ) 

Definition at line 1240 of file Parser.cpp.

void Parser::parseExceptionStmt ( Node  context  ) 

Definition at line 421 of file ParseStmt.cpp.

Node Parser::parseExpr (  ) 

Definition at line 17 of file ParseExpr.cpp.

Node Parser::parseForStmt (  ) 

Definition at line 289 of file ParseStmt.cpp.

Node Parser::parseFunctionDeclaration ( bool  parsingSignatureProfile = false  ) 

Definition at line 903 of file Parser.cpp.

void Parser::parseFunctionDeclOrDefinition (  ) 

Definition at line 1018 of file Parser.cpp.

void Parser::parseGenericFormalDomain (  ) 

Definition at line 580 of file Parser.cpp.

void Parser::parseGenericFormalParams (  ) 

Definition at line 549 of file Parser.cpp.

Node Parser::parseIfStmt (  ) 

Definition at line 119 of file ParseStmt.cpp.

bool Parser::parseImportDeclaration (  ) 

Definition at line 1125 of file Parser.cpp.

Node Parser::parseInj (  ) 

Definition at line 49 of file ParseName.cpp.

Node Parser::parseIntegerLiteral (  ) 

Definition at line 320 of file ParseExpr.cpp.

bool Parser::parseIntegerRange ( IdentifierInfo name,
Location  loc 
)

Definition at line 1272 of file Parser.cpp.

Node Parser::parseLoopStmt (  ) 

Definition at line 269 of file ParseStmt.cpp.

void Parser::parseModel (  ) 

Definition at line 763 of file Parser.cpp.

Node Parser::parseName ( NameOption  option = No_Option  ) 

Definition at line 188 of file ParseName.cpp.

bool Parser::parseObjectDeclaration (  ) 

Definition at line 1086 of file Parser.cpp.

Node Parser::parseOperatorExpr (  ) 

Definition at line 22 of file ParseExpr.cpp.

Node Parser::parseParameterAssociation (  ) 

Definition at line 147 of file ParseName.cpp.

Node Parser::parseParenExpr (  ) 

Definition at line 267 of file ParseExpr.cpp.

Node Parser::parsePragmaStmt (  ) 

Definition at line 331 of file ParseStmt.cpp.

Node Parser::parsePrimaryExpr (  ) 

Definition at line 283 of file ParseExpr.cpp.

Node Parser::parsePrj (  ) 

Definition at line 65 of file ParseName.cpp.

Node Parser::parseProcedureCallStatement (  ) 

Definition at line 70 of file ParseStmt.cpp.

Node Parser::parseProcedureDeclaration ( bool  parsingSignatureProfile = false  ) 

Definition at line 941 of file Parser.cpp.

void Parser::parseProcedureDeclOrDefinition (  ) 

Definition at line 1038 of file Parser.cpp.

Node Parser::parseQualifiedExpr ( Node  qualifier  ) 

Definition at line 344 of file ParseExpr.cpp.

Node Parser::parseRaiseStmt (  ) 

Definition at line 399 of file ParseStmt.cpp.

bool Parser::parseRecordTypeDecl ( IdentifierInfo name,
Location  loc 
)

Definition at line 1342 of file Parser.cpp.

Node Parser::parseReturnStmt (  ) 

Definition at line 78 of file ParseStmt.cpp.

Node Parser::parseSelectedComponent ( Node  prefix,
NameOption  option 
)

Definition at line 83 of file ParseName.cpp.

void Parser::parseSignatureProfile (  ) 

Definition at line 609 of file Parser.cpp.

Node Parser::parseStatement (  ) 

Definition at line 17 of file ParseStmt.cpp.

Node Parser::parseStringLiteral (  ) 

Definition at line 333 of file ParseExpr.cpp.

void Parser::parseSubroutineBody ( Node  declarationNode  ) 

This parser is called just after the 'is' token beginning a function or procedure definition. The argument declarationNode is a valid Node returned from a call to Parser::parseSubroutineDeclaration. The endTagStack must hold the expected end tag name.

Definition at line 971 of file Parser.cpp.

bool Parser::parseSubroutineParameter (  ) 

Definition at line 832 of file Parser.cpp.

void Parser::parseSubroutineParameters (  ) 

Definition at line 853 of file Parser.cpp.

bool Parser::parseSubtype (  ) 

Definition at line 1191 of file Parser.cpp.

bool comma::Parser::parseSuccessful (  )  const [inline]

Returns true if the parser has been driven without seeing an error and false otherwise.

Definition at line 134 of file Parser.h.

void Parser::parseSupersignatureProfile (  ) 

Definition at line 623 of file Parser.cpp.

bool Parser::parseTopLevelDeclaration (  ) 

Parses a top level construct. Returns false once all tokens have been consumed.

Definition at line 1398 of file Parser.cpp.

bool Parser::parseType (  ) 

Definition at line 1139 of file Parser.cpp.

Node Parser::parseWhileStmt (  ) 

Definition at line 243 of file ParseStmt.cpp.

void Parser::parseWithComponents (  ) 

Definition at line 658 of file Parser.cpp.


The documentation for this class was generated from the following files:

Generated on 1 Feb 2010 for Comma by  doxygen 1.6.1