OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
OpalParser Class Reference

The default parser for OPAL-9. More...

#include <OpalParser.h>

Inheritance diagram for OpalParser:
Inheritance graph
[legend]
Collaboration diagram for OpalParser:
Collaboration graph
[legend]

Public Member Functions

 OpalParser ()
 
virtual ~OpalParser ()
 
virtual void parse (Statement &) const
 Parse and execute current statement. More...
 
virtual StatementreadStatement (TokenStream *) const
 Read complete statement from a token stream. More...
 
virtual void run () const
 Read current stream. More...
 
virtual void run (TokenStream *) const
 Read given stream. More...
 
void stop () const
 Set stop flag. More...
 
- Public Member Functions inherited from Parser
 Parser ()
 
virtual ~Parser ()
 

Static Public Member Functions

static Token readToken ()
 Return next input token. More...
 

Protected Member Functions

void execute (Object *, const std::string &) const
 Execute or check the current command. More...
 
virtual Objectfind (const std::string &) const
 Find object by name in the main directory. More...
 
virtual void parseAction (Statement &) const
 Parse executable command. More...
 
virtual void parseAssign (Statement &) const
 Parse assignment statement. More...
 
virtual void parseDefine (Statement &) const
 Parse definition. More...
 
virtual void parseEnd (Statement &) const
 Check for end of statement. More...
 
virtual void parseMacro (const std::string &name, Statement &) const
 Parse macro definition or call. More...
 
virtual void printHelp (const std::string &) const
 Print help on named command. More...
 

Private Member Functions

 OpalParser (const OpalParser &)
 
void operator= (const OpalParser &)
 

Static Private Member Functions

static void parseBracketList (char close, Statement &)
 
static void parseTokenList (Statement &)
 
static std::string getHint (const std::string &, const std::string &="attribute")
 

Private Attributes

bool stopFlag
 

Static Private Attributes

static std::vector< Pointer
< TokenStream > > 
inputStack
 

Detailed Description

The default parser for OPAL-9.

Definition at line 44 of file OpalParser.h.

Constructor & Destructor Documentation

OpalParser::OpalParser ( )

Definition at line 57 of file OpalParser.cpp.

OpalParser::~OpalParser ( )
virtual

Definition at line 61 of file OpalParser.cpp.

OpalParser::OpalParser ( const OpalParser )
private

Member Function Documentation

void OpalParser::execute ( Object object,
const std::string &  name 
) const
protected

Execute or check the current command.

Definition at line 125 of file OpalParser.cpp.

References endl(), OpalData::getInstance(), gmsg, Options::mtrace, Object::shouldTrace(), Object::shouldUpdate(), and OpalData::update().

Referenced by parseAction(), parseDefine(), EditParser::parseInstall(), and parseMacro().

Here is the call graph for this function:

Object * OpalParser::find ( const std::string &  name) const
protectedvirtual

Find object by name in the main directory.

Reimplemented in EditParser, MatchParser, and TrackParser.

Definition at line 150 of file OpalParser.cpp.

References OpalData::find(), and OpalData::getInstance().

Referenced by parse(), parseAction(), parseAssign(), parseDefine(), parseMacro(), SequenceParser::parseMember(), and printHelp().

Here is the call graph for this function:

std::string OpalParser::getHint ( const std::string &  name,
const std::string &  type = "attribute" 
)
staticprivate

Definition at line 641 of file OpalParser.cpp.

References any(), AttributeHandler::COMMAND, AttributeHandler::ELEMENT, AttributeHandler::getOwner(), AttributeHandler::STATEMENT, and AttributeHandler::SUB_COMMAND.

Referenced by parse(), and parseAction().

Here is the call graph for this function:

void OpalParser::operator= ( const OpalParser )
private
void OpalParser::parse ( Statement stat) const
virtual
void OpalParser::parseAction ( Statement stat) const
protectedvirtual

Parse executable command.

Definition at line 155 of file OpalParser.cpp.

References Object::clone(), Statement::delimiter(), execute(), find(), getHint(), Object::parse(), parseEnd(), Expressions::parseString(), printHelp(), Statement::start(), and stopFlag.

Referenced by EditParser::parse(), and parse().

Here is the call graph for this function:

void OpalParser::parseAssign ( Statement stat) const
protectedvirtual
void OpalParser::parseBracketList ( char  close,
Statement stat 
)
staticprivate

Definition at line 456 of file OpalParser.cpp.

References Statement::append(), Token::isDel(), Token::isEOF(), and readToken().

Referenced by parseTokenList(), and readStatement().

Here is the call graph for this function:

void OpalParser::parseDefine ( Statement stat) const
protectedvirtual
void OpalParser::parseEnd ( Statement stat) const
protectedvirtual

Check for end of statement.

Definition at line 372 of file OpalParser.cpp.

References Statement::atEnd(), Statement::delimiter(), Statement::position(), and Statement::print().

Referenced by SequenceParser::parse(), parseAction(), parseAssign(), parseDefine(), EditParser::parseInstall(), and SequenceParser::parseMember().

Here is the call graph for this function:

void OpalParser::parseMacro ( const std::string &  name,
Statement stat 
) const
protectedvirtual
void OpalParser::parseTokenList ( Statement stat)
staticprivate

Definition at line 477 of file OpalParser.cpp.

References Statement::append(), Token::isDel(), Token::isEOF(), parseBracketList(), and readToken().

Referenced by readStatement().

Here is the call graph for this function:

void OpalParser::printHelp ( const std::string &  cmdName) const
protectedvirtual

Print help on named command.

Definition at line 444 of file OpalParser.cpp.

References endl(), find(), and gmsg.

Referenced by EditParser::parse(), parse(), and parseAction().

Here is the call graph for this function:

Statement * OpalParser::readStatement ( TokenStream is) const
virtual
Token OpalParser::readToken ( )
static

Return next input token.

Definition at line 498 of file OpalParser.cpp.

References inputStack, and Token::IS_EOF.

Referenced by parseBracketList(), and parseTokenList().

void OpalParser::run ( ) const
virtual
void OpalParser::run ( TokenStream is) const
virtual

Read given stream.

Implements Parser.

Definition at line 630 of file OpalParser.cpp.

References inputStack, and run().

Here is the call graph for this function:

void OpalParser::stop ( ) const

Set stop flag.

Definition at line 637 of file OpalParser.cpp.

References stopFlag.

Referenced by EditEnd::execute(), MatchEnd::execute(), TrackEnd::execute(), and SequenceParser::parse().

Member Data Documentation

std::vector< Pointer< TokenStream > > OpalParser::inputStack
staticprivate

Definition at line 119 of file OpalParser.h.

Referenced by parseMacro(), readStatement(), readToken(), and run().

bool OpalParser::stopFlag
mutableprivate

Definition at line 116 of file OpalParser.h.

Referenced by parseAction(), run(), and stop().


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