RTT::scripting::ProgramGraphParser Class Reference

A Parser for Orocos Program Scripts. More...

#include <ProgramGraphParser.hpp>

List of all members.

Public Member Functions

rule_tbodyParser ()
rule_tbodyParser ()
ProgramInterfacePtr bodyParserResult ()
ProgramInterfacePtr bodyParserResult ()
rule_tfunctionParser ()
rule_tfunctionParser ()
void initBodyParser (const std::string &name, Service::shared_ptr stck, int offset)
void initBodyParser (const std::string &name, Service::shared_ptr stck, int offset)
std::vector< ProgramInterfacePtrparse (iter_t &begin, iter_t end)
 Tries to parse programs, returns the generated programs on success.
std::vector< ProgramInterfacePtrparse (iter_t &begin, iter_t end)
 Tries to parse programs, returns the generated programs on success.
std::vector< ProgramInterfacePtrparseFunction (iter_t &begin, iter_t end)
std::vector< ProgramInterfacePtrparseFunction (iter_t &begin, iter_t end)
 ProgramGraphParser (iter_t &positer, TaskContext *context, ExecutionEngine *caller, CommonParser &cp)
 ProgramGraphParser (iter_t &positer, TaskContext *context, ExecutionEngine *caller, CommonParser &cp)
rule_tprogramParser ()
rule_tprogramParser ()
ProgramInterfacePtr programParserResult ()
ProgramInterfacePtr programParserResult ()
rule_tstatementParser ()
rule_tstatementParser ()
 ~ProgramGraphParser ()
 ~ProgramGraphParser ()

Private Types

typedef
FunctionGraphBuilder::CommandNode 
CommandNode
typedef
FunctionGraphBuilder::CommandNode 
CommandNode
typedef
FunctionGraphBuilder::ConditionEdge 
ConditionEdge
typedef
FunctionGraphBuilder::ConditionEdge 
ConditionEdge
typedef std::map< std::string,
FunctionGraphPtr
funcmap
typedef std::map< std::string,
FunctionGraphPtr
funcmap
typedef FunctionGraphBuilder::Graph Graph
typedef FunctionGraphBuilder::Graph Graph

Private Member Functions

void cleanup (bool remove_service)
void cleanup (bool remove_service)
void clearParseState ()
 Clears helper variables of parser.
void clearParseState ()
 Clears helper variables of parser.
void endforstatement ()
void endforstatement ()
void endifblock ()
void endifblock ()
void endifstatement ()
void endifstatement ()
void endwhilestatement ()
void endwhilestatement ()
void exportdef ()
void exportdef ()
void functiondef (iter_t begin, iter_t end)
void functiondef (iter_t begin, iter_t end)
void noskip_eol ()
void noskip_eol ()
void programdef (iter_t begin, iter_t end)
void programdef (iter_t begin, iter_t end)
void programtext (iter_t, iter_t)
void programtext (iter_t, iter_t)
void seenbreakstatement ()
void seenbreakstatement ()
void seencallfuncargs ()
void seencallfuncargs ()
void seencallfunclabel (iter_t begin, iter_t end)
void seencallfunclabel (iter_t begin, iter_t end)
void seencallfuncstatement ()
void seencallfuncstatement ()
void seencatchpart ()
void seencatchpart ()
void seencondition ()
void seencondition ()
void seencontinue ()
void seencontinue ()
void seenemptyforincr ()
void seenemptyforincr ()
void seenforincr ()
void seenforincr ()
void seenforinit ()
void seenforinit ()
void seenforinit_expr ()
void seenforinit_expr ()
void seenforstatement ()
void seenforstatement ()
void seenfuncidentifier (iter_t begin, iter_t end)
void seenfuncidentifier (iter_t begin, iter_t end)
void seenfunctionarg ()
void seenfunctionarg ()
void seenfunctionend ()
void seenfunctionend ()
void seenifstatement ()
void seenifstatement ()
void seenprogramend ()
void seenprogramend ()
void seenreturnlabel ()
void seenreturnlabel ()
void seenreturnstatement ()
void seenreturnstatement ()
void seenreturntype (iter_t begin, iter_t end)
void seenreturntype (iter_t begin, iter_t end)
void seenreturnvalue ()
void seenreturnvalue ()
void seenstatement ()
void seenstatement ()
void seentrystatement ()
void seentrystatement ()
void seenvaluechange ()
void seenvaluechange ()
void seenwhilestatement ()
void seenwhilestatement ()
void seenyield ()
void seenyield ()
void setStack (Service::shared_ptr st)
void setStack (Service::shared_ptr st)
void setup ()
void setup ()
void setup2 ()
void setup2 ()
void skip_eol ()
void skip_eol ()
void startcatchpart ()
void startcatchpart ()
void startofprogram ()
void startofprogram ()

Private Attributes

rule_t andpart
ArgumentsParserargsparser
rule_t arguments
rule_t breakstatement
std::vector
< base::DataSourceBase::shared_ptr
callfnargs
rule_t callpart
rule_t catchpart
rule_t closebrace
rule_t closecurly
CommonParsercommonparser
rule_t condition
ConditionParser conditionparser
rule_t content
Service::shared_ptr context
rule_t continuepart
rule_t dostatement
rule_t emitstatement
bool exportf
ExpressionParser expressionparser
TaskContextfcontext
std::stack
< base::ActionInterface * > 
for_incr_command
base::ActionInterfacefor_init_command
rule_t forstatement
rule_t funcargs
rule_t funcstatement
rule_t function
rule_t functionarg
rule_t functions
rule_t ifblock
rule_t ifstatement
ConditionInterfaceimplcond
std::vector< ConditionInterface * > implcond_v
rule_t jumpdestination
rule_t line
int ln_offset
FunctionGraphPtr mcallfunc
ConditionInterfacemcondition
FunctionGraphPtr mfunc
funcmap mfuncs
our_pos_iter_tmpositer
rule_t newline
rule_t openbrace
rule_t opencurly
TaskContextpeer
PeerParser peerparser
rule_t production
rule_t program
boost::shared_ptr
< FunctionGraphBuilder
program_builder
std::vector< FunctionGraphPtrprogram_list
std::string program_text
std::string rettype
rule_t returnpart
rule_t returnstatement
TaskContextrootc
rule_t semicolon
rule_t statement
rule_t terminationclause
rule_t terminationpart
ConditionInterfacetry_cond
rule_t trystatement
rule_t valuechange
ValueChangeParser valuechangeparser
rule_t whilestatement

Detailed Description

A Parser for Orocos Program Scripts.

This class does the actual work. It generates a Program, by constructing the ProgramNode's. We just go over the code one single time, and construct the Program as we go. For every statement, we construct a new ProgramNode, and fill it up as we get the information we need.

Definition at line 67 of file install/include/rtt/scripting/ProgramGraphParser.hpp.


Member Typedef Documentation

Definition at line 74 of file rtt/scripting/ProgramGraphParser.hpp.

Definition at line 75 of file rtt/scripting/ProgramGraphParser.hpp.

typedef std::map<std::string, FunctionGraphPtr> RTT::scripting::ProgramGraphParser::funcmap [private]

Definition at line 108 of file rtt/scripting/ProgramGraphParser.hpp.

typedef std::map<std::string, FunctionGraphPtr> RTT::scripting::ProgramGraphParser::funcmap [private]

Definition at line 76 of file rtt/scripting/ProgramGraphParser.hpp.


Constructor & Destructor Documentation

RTT::ProgramGraphParser::ProgramGraphParser ( iter_t positer,
TaskContext context,
ExecutionEngine caller,
CommonParser cp 
)

Definition at line 59 of file ProgramGraphParser.cpp.

RTT::ProgramGraphParser::~ProgramGraphParser (  ) 

Definition at line 79 of file ProgramGraphParser.cpp.

RTT::scripting::ProgramGraphParser::ProgramGraphParser ( iter_t positer,
TaskContext context,
ExecutionEngine caller,
CommonParser cp 
)
RTT::scripting::ProgramGraphParser::~ProgramGraphParser (  ) 

Member Function Documentation

rule_t& RTT::scripting::ProgramGraphParser::bodyParser (  ) 

Parses a multi-line program, which you can retrieve with bodyParserResult(). You need to initialize it with initBodyParser

rule_t & RTT::ProgramGraphParser::bodyParser (  ) 

Parses a multi-line program, which you can retrieve with bodyParserResult(). You need to initialize it with initBodyParser

Definition at line 206 of file ProgramGraphParser.cpp.

ProgramInterfacePtr RTT::scripting::ProgramGraphParser::bodyParserResult (  ) 
ProgramInterfacePtr RTT::ProgramGraphParser::bodyParserResult (  ) 

Definition at line 229 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::cleanup ( bool  remove_service  )  [private]
void RTT::ProgramGraphParser::cleanup ( bool  remove_service  )  [private]

Definition at line 728 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::clearParseState (  )  [private]

Clears helper variables of parser.

void RTT::ProgramGraphParser::clearParseState (  )  [private]

Clears helper variables of parser.

Definition at line 254 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::endforstatement (  )  [private]
void RTT::ProgramGraphParser::endforstatement (  )  [private]

Definition at line 595 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::endifblock (  )  [private]
void RTT::ProgramGraphParser::endifblock (  )  [private]

Definition at line 512 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::endifstatement (  )  [private]
void RTT::ProgramGraphParser::endifstatement (  )  [private]

Definition at line 517 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::endwhilestatement (  )  [private]
void RTT::ProgramGraphParser::endwhilestatement (  )  [private]

Definition at line 534 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::exportdef (  )  [private]
void RTT::ProgramGraphParser::exportdef (  )  [private]

Definition at line 287 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::functiondef ( iter_t  begin,
iter_t  end 
) [private]
void RTT::ProgramGraphParser::functiondef ( iter_t  begin,
iter_t  end 
) [private]

Definition at line 296 of file ProgramGraphParser.cpp.

rule_t& RTT::scripting::ProgramGraphParser::functionParser (  ) 

Parses a function foo {} definition.

rule_t & RTT::ProgramGraphParser::functionParser (  ) 

Parses a function foo {} definition.

Definition at line 202 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::initBodyParser ( const std::string &  name,
Service::shared_ptr  stck,
int  offset 
)

Initialize the bodyParser to parse and store each statement it sees. The result is retrieved with bodyParserResult().

void RTT::ProgramGraphParser::initBodyParser ( const std::string &  name,
Service::shared_ptr  stck,
int  offset 
)

Initialize the bodyParser to parse and store each statement it sees. The result is retrieved with bodyParserResult().

Definition at line 190 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::noskip_eol (  )  [private]
void RTT::ProgramGraphParser::noskip_eol (  )  [private]

Definition at line 481 of file ProgramGraphParser.cpp.

std::vector<ProgramInterfacePtr> RTT::scripting::ProgramGraphParser::parse ( iter_t begin,
iter_t  end 
)

Tries to parse programs, returns the generated programs on success.

Exceptions:
file_parse_exception The parser found an error.
std::vector< ProgramInterfacePtr > RTT::ProgramGraphParser::parse ( iter_t begin,
iter_t  end 
)

Tries to parse programs, returns the generated programs on success.

Exceptions:
file_parse_exception The parser found an error.

Definition at line 622 of file ProgramGraphParser.cpp.

std::vector<ProgramInterfacePtr> RTT::scripting::ProgramGraphParser::parseFunction ( iter_t begin,
iter_t  end 
)
std::vector< ProgramInterfacePtr > RTT::ProgramGraphParser::parseFunction ( iter_t begin,
iter_t  end 
)

Definition at line 677 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::programdef ( iter_t  begin,
iter_t  end 
) [private]
void RTT::ProgramGraphParser::programdef ( iter_t  begin,
iter_t  end 
) [private]

Definition at line 263 of file ProgramGraphParser.cpp.

rule_t& RTT::scripting::ProgramGraphParser::programParser (  ) 

Returns a program foo {} parser.

rule_t & RTT::ProgramGraphParser::programParser (  ) 

Returns a program foo {} parser.

Definition at line 198 of file ProgramGraphParser.cpp.

ProgramInterfacePtr RTT::scripting::ProgramGraphParser::programParserResult (  ) 

Returns the last program parsed by programParser()

ProgramInterfacePtr RTT::ProgramGraphParser::programParserResult (  ) 

Returns the last program parsed by programParser()

Definition at line 216 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::programtext ( iter_t  ,
iter_t   
) [private]
void RTT::ProgramGraphParser::programtext ( iter_t  begin,
iter_t  end 
) [private]

Definition at line 281 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seenbreakstatement (  )  [private]
void RTT::ProgramGraphParser::seenbreakstatement (  )  [private]

Definition at line 410 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seencallfuncargs (  )  [private]
void RTT::ProgramGraphParser::seencallfuncargs (  )  [private]

Definition at line 437 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seencallfunclabel ( iter_t  begin,
iter_t  end 
) [private]
void RTT::ProgramGraphParser::seencallfunclabel ( iter_t  begin,
iter_t  end 
) [private]

Definition at line 844 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seencallfuncstatement (  )  [private]
void RTT::ProgramGraphParser::seencallfuncstatement (  )  [private]

Definition at line 442 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seencatchpart (  )  [private]
void RTT::ProgramGraphParser::seencatchpart (  )  [private]

Definition at line 493 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seencondition (  )  [private]
void RTT::ProgramGraphParser::seencondition (  )  [private]

Definition at line 370 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seencontinue (  )  [private]
void RTT::ProgramGraphParser::seencontinue (  )  [private]

Definition at line 857 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seenemptyforincr (  )  [private]
void RTT::ProgramGraphParser::seenemptyforincr (  )  [private]

Definition at line 570 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seenforincr (  )  [private]
void RTT::ProgramGraphParser::seenforincr (  )  [private]

Definition at line 563 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seenforinit (  )  [private]
void RTT::ProgramGraphParser::seenforinit (  )  [private]

Definition at line 539 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seenforinit_expr (  )  [private]
void RTT::ProgramGraphParser::seenforinit_expr (  )  [private]

Definition at line 556 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seenforstatement (  )  [private]
void RTT::ProgramGraphParser::seenforstatement (  )  [private]

Definition at line 575 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seenfuncidentifier ( iter_t  begin,
iter_t  end 
) [private]
void RTT::ProgramGraphParser::seenfuncidentifier ( iter_t  begin,
iter_t  end 
) [private]

Definition at line 419 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seenfunctionarg (  )  [private]
void RTT::ProgramGraphParser::seenfunctionarg (  )  [private]

Definition at line 336 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seenfunctionend (  )  [private]
void RTT::ProgramGraphParser::seenfunctionend (  )  [private]

Definition at line 345 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seenifstatement (  )  [private]
void RTT::ProgramGraphParser::seenifstatement (  )  [private]

Definition at line 498 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seenprogramend (  )  [private]
void RTT::ProgramGraphParser::seenprogramend (  )  [private]

Definition at line 610 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seenreturnlabel (  )  [private]
void RTT::scripting::ProgramGraphParser::seenreturnlabel (  )  [private]
void RTT::scripting::ProgramGraphParser::seenreturnstatement (  )  [private]
void RTT::ProgramGraphParser::seenreturnstatement (  )  [private]

Definition at line 383 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seenreturntype ( iter_t  begin,
iter_t  end 
) [private]
void RTT::ProgramGraphParser::seenreturntype ( iter_t  begin,
iter_t  end 
) [private]

Definition at line 292 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seenreturnvalue (  )  [private]
void RTT::ProgramGraphParser::seenreturnvalue (  )  [private]

Definition at line 390 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seenstatement (  )  [private]
void RTT::ProgramGraphParser::seenstatement (  )  [private]

Definition at line 799 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seentrystatement (  )  [private]
void RTT::ProgramGraphParser::seentrystatement (  )  [private]

Definition at line 771 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seenvaluechange (  )  [private]
void RTT::ProgramGraphParser::seenvaluechange (  )  [private]

Definition at line 822 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seenwhilestatement (  )  [private]
void RTT::ProgramGraphParser::seenwhilestatement (  )  [private]

Definition at line 521 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::seenyield (  )  [private]
void RTT::ProgramGraphParser::seenyield (  )  [private]

Definition at line 815 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::setStack ( Service::shared_ptr  st  )  [private]
void RTT::ProgramGraphParser::setStack ( Service::shared_ptr  st  )  [private]

Definition at line 249 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::setup (  )  [private]
void RTT::ProgramGraphParser::setup (  )  [private]

Definition at line 86 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::setup2 (  )  [private]
void RTT::ProgramGraphParser::setup2 (  )  [private]

Definition at line 63 of file ProgramGraphParser2.cpp.

void RTT::scripting::ProgramGraphParser::skip_eol (  )  [private]
void RTT::ProgramGraphParser::skip_eol (  )  [private]

Definition at line 477 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::startcatchpart (  )  [private]
void RTT::ProgramGraphParser::startcatchpart (  )  [private]

Definition at line 485 of file ProgramGraphParser.cpp.

void RTT::scripting::ProgramGraphParser::startofprogram (  )  [private]
void RTT::ProgramGraphParser::startofprogram (  )  [private]

Definition at line 259 of file ProgramGraphParser.cpp.

rule_t& RTT::scripting::ProgramGraphParser::statementParser (  ) 

Parses a single-line statement.

rule_t & RTT::ProgramGraphParser::statementParser (  ) 

Parses a single-line statement.

Definition at line 211 of file ProgramGraphParser.cpp.


Member Data Documentation

The current subcontext of root where we are working in.

Definition at line 71 of file install/include/rtt/scripting/ProgramGraphParser.hpp.

The current function context where we are working in.

Definition at line 76 of file install/include/rtt/scripting/ProgramGraphParser.hpp.

peer context for events.

Definition at line 81 of file install/include/rtt/scripting/ProgramGraphParser.hpp.

The context given to us by the user to root the parsed programs into.

Definition at line 66 of file install/include/rtt/scripting/ProgramGraphParser.hpp.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


rtt
Author(s): RTT Developers
autogenerated on Fri Jan 11 09:50:15 2013