Public Member Functions | Private Types | Private Member Functions | Private Attributes
RTT::scripting::ProgramGraphParser Class Reference

A Parser for Orocos Program Scripts. More...

#include <ProgramGraphParser.hpp>

List of all members.

Public Member Functions

rule_t & bodyParser ()
ProgramInterfacePtr bodyParserResult ()
rule_t & functionParser ()
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< ProgramInterfacePtrparseFunction (iter_t &begin, iter_t end)
bool parserUsed () const
 ProgramGraphParser (iter_t &positer, TaskContext *context, ExecutionEngine *caller, CommonParser &cp)
rule_t & programParser ()
ProgramInterfacePtr programParserResult ()
rule_t & statementParser ()
 ~ProgramGraphParser ()

Private Types

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

Private Member Functions

void cleanup (bool remove_service)
void clearParseState ()
 Clears helper variables of parser.
void endforstatement ()
void endifblock ()
void endifstatement ()
void endwhilestatement ()
void exportdef ()
void functiondef (iter_t begin, iter_t end)
void globaldef ()
void noskip_eol ()
void programdef (iter_t begin, iter_t end)
void programtext (iter_t, iter_t)
void seenbreakstatement ()
void seencallfuncargs ()
void seencallfunclabel (iter_t begin, iter_t end)
void seencallfuncstatement ()
void seencatchpart ()
void seencondition ()
void seencontinue ()
void seenemptyforincr ()
void seenforincr ()
void seenforinit ()
void seenforinit_expr ()
void seenforstatement ()
void seenfuncidentifier (iter_t begin, iter_t end)
void seenfunctionarg ()
void seenfunctionend ()
void seenifstatement ()
void seenprogramend ()
void seenreturnlabel ()
void seenreturnstatement ()
void seenreturntype (iter_t begin, iter_t end)
void seenreturnvalue ()
void seenstatement ()
void seentrystatement ()
void seenvalidinput ()
void seenvaluechange ()
void seenwhilestatement ()
void seenyield ()
void setStack (Service::shared_ptr st)
void setup ()
void setup2 ()
void skip_eol ()
void startcatchpart ()
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
bool globalf
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_t & mpositer
rule_t newline
rule_t openbrace
rule_t opencurly
bool parserused
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 72 of file ProgramGraphParser.hpp.


Member Typedef Documentation

Definition at line 74 of file ProgramGraphParser.hpp.

Definition at line 75 of file ProgramGraphParser.hpp.

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

Definition at line 108 of file ProgramGraphParser.hpp.

Definition at line 76 of file ProgramGraphParser.hpp.


Constructor & Destructor Documentation

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

Definition at line 85 of file ProgramGraphParser.cpp.

Definition at line 105 of file ProgramGraphParser.cpp.


Member Function Documentation

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

Definition at line 233 of file ProgramGraphParser.cpp.

Definition at line 256 of file ProgramGraphParser.cpp.

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

Definition at line 787 of file ProgramGraphParser.cpp.

Clears helper variables of parser.

Definition at line 285 of file ProgramGraphParser.cpp.

Definition at line 655 of file ProgramGraphParser.cpp.

Definition at line 572 of file ProgramGraphParser.cpp.

Definition at line 577 of file ProgramGraphParser.cpp.

Definition at line 594 of file ProgramGraphParser.cpp.

Definition at line 319 of file ProgramGraphParser.cpp.

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

Definition at line 333 of file ProgramGraphParser.cpp.

Parses a function foo {} definition.

Definition at line 229 of file ProgramGraphParser.cpp.

Definition at line 324 of file ProgramGraphParser.cpp.

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 217 of file ProgramGraphParser.cpp.

Definition at line 541 of file ProgramGraphParser.cpp.

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_exceptionThe parser found an error.

Definition at line 682 of file ProgramGraphParser.cpp.

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

Definition at line 736 of file ProgramGraphParser.cpp.

Returns true if the parser was already used (even partially). an initBodyParser will reset this to false.

Definition at line 276 of file ProgramGraphParser.cpp.

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

Definition at line 295 of file ProgramGraphParser.cpp.

Returns a program foo {} parser.

Definition at line 225 of file ProgramGraphParser.cpp.

Returns the last program parsed by programParser()

Definition at line 243 of file ProgramGraphParser.cpp.

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

Definition at line 313 of file ProgramGraphParser.cpp.

Definition at line 469 of file ProgramGraphParser.cpp.

Definition at line 496 of file ProgramGraphParser.cpp.

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

Definition at line 903 of file ProgramGraphParser.cpp.

Definition at line 501 of file ProgramGraphParser.cpp.

Definition at line 553 of file ProgramGraphParser.cpp.

Definition at line 429 of file ProgramGraphParser.cpp.

Definition at line 916 of file ProgramGraphParser.cpp.

Definition at line 630 of file ProgramGraphParser.cpp.

Definition at line 623 of file ProgramGraphParser.cpp.

Definition at line 599 of file ProgramGraphParser.cpp.

Definition at line 616 of file ProgramGraphParser.cpp.

Definition at line 635 of file ProgramGraphParser.cpp.

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

Definition at line 478 of file ProgramGraphParser.cpp.

Definition at line 372 of file ProgramGraphParser.cpp.

Definition at line 381 of file ProgramGraphParser.cpp.

Definition at line 558 of file ProgramGraphParser.cpp.

Definition at line 670 of file ProgramGraphParser.cpp.

Definition at line 442 of file ProgramGraphParser.cpp.

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

Definition at line 329 of file ProgramGraphParser.cpp.

Definition at line 449 of file ProgramGraphParser.cpp.

Definition at line 858 of file ProgramGraphParser.cpp.

Definition at line 830 of file ProgramGraphParser.cpp.

Definition at line 425 of file ProgramGraphParser.cpp.

Definition at line 881 of file ProgramGraphParser.cpp.

Definition at line 581 of file ProgramGraphParser.cpp.

Definition at line 874 of file ProgramGraphParser.cpp.

Definition at line 280 of file ProgramGraphParser.cpp.

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

Definition at line 112 of file ProgramGraphParser.cpp.

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

Definition at line 63 of file ProgramGraphParser2.cpp.

Definition at line 537 of file ProgramGraphParser.cpp.

Definition at line 545 of file ProgramGraphParser.cpp.

Definition at line 291 of file ProgramGraphParser.cpp.

Parses a single-line statement.

Definition at line 238 of file ProgramGraphParser.cpp.


Member Data Documentation

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 196 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 118 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 192 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 193 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

The current subcontext of root where we are working in.

Definition at line 87 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 205 of file ProgramGraphParser.hpp.

Definition at line 195 of file ProgramGraphParser.hpp.

The current function context where we are working in.

Definition at line 92 of file ProgramGraphParser.hpp.

Definition at line 203 of file ProgramGraphParser.hpp.

Definition at line 202 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 205 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 116 of file ProgramGraphParser.hpp.

Definition at line 117 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 206 of file ProgramGraphParser.hpp.

Definition at line 105 of file ProgramGraphParser.hpp.

Definition at line 121 of file ProgramGraphParser.hpp.

Definition at line 102 of file ProgramGraphParser.hpp.

Definition at line 109 of file ProgramGraphParser.hpp.

Definition at line 99 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 205 of file ProgramGraphParser.hpp.

peer context for events.

Definition at line 97 of file ProgramGraphParser.hpp.

Definition at line 197 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 199 of file ProgramGraphParser.hpp.

Definition at line 200 of file ProgramGraphParser.hpp.

Definition at line 204 of file ProgramGraphParser.hpp.

Definition at line 112 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

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

Definition at line 82 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 123 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.

Definition at line 194 of file ProgramGraphParser.hpp.

Definition at line 185 of file ProgramGraphParser.hpp.


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


rtt
Author(s): RTT Developers
autogenerated on Wed Aug 26 2015 16:16:25