Orocos Real-Time Toolkit  2.5.0
Public Types | Public Member Functions
RTT::scripting::Parser Class Reference

This class is the public interface to the Orocos Program Parser Framework. More...

#include <rtt/scripting/Parser.hpp>

List of all members.

Public Types

typedef std::vector
< ProgramInterfacePtr > 
ParsedFunctions
 List of parsed functions.
typedef std::vector
< ProgramInterfacePtr > 
ParsedPrograms
 List of parsed programs.
typedef std::vector
< ParsedStateMachinePtr > 
ParsedStateMachines
 List of parsed State Machines.

Public Member Functions

 Parser (TaskContext *caller=0)
 Create a parser and allow to explicitly specify which TaskContext is calling it.
void runScript (std::string const &code, TaskContext *mowner, ScriptingService *service, std::string const &filename)
 Runs all statements in code.
ParsedFunctions parseFunction (const std::string &s, TaskContext *, const std::string &filename="stream")
 Reads out the string, parses it, and returns a new FunctionGraph.
ParsedPrograms parseProgram (const std::string &s, TaskContext *, const std::string &filename="stream")
 Reads out the string, parses it, and returns a new ProgramGraph.
ParsedStateMachines parseStateMachine (const std::string &s, TaskContext *, const std::string &filename="stream")
 Reads out the string, parses it, and returns a new ParsedStateMachine.
ConditionInterfaceparseCondition (const std::string &s, TaskContext *)
 Parses the string as a condition, and returns a new ConditionInterface.
base::DataSourceBase::shared_ptr parseExpression (const std::string &s, TaskContext *)
 Parses the expression in s.
base::DataSourceBase::shared_ptr parseValueChange (const std::string &s, TaskContext *)
 Parses a change of a value in s.
base::DataSourceBase::shared_ptr parseValueStatement (const std::string &s, TaskContext *)
 Parses a whole value manipulation/creation statement.

Detailed Description

This class is the public interface to the Orocos Program Parser Framework.

It parsers Orocos program scripts, Orocos State Contexts and allows to parse a text Command, Condition or Expression to the respective objects.

See also:
ScriptingAccess for a more user friendly loading of scripts into TaskContexts.

Definition at line 65 of file Parser.hpp.


Constructor & Destructor Documentation

RTT::Parser::Parser ( TaskContext caller = 0)

Create a parser and allow to explicitly specify which TaskContext is calling it.

This allows to generate the correct asynchonous method invocation code in case caller and parser are not identical.

Definition at line 54 of file Parser.cpp.


Member Function Documentation

ConditionInterface * RTT::Parser::parseCondition ( const std::string &  s,
TaskContext tc 
)

Parses the string as a condition, and returns a new ConditionInterface.

Will throw parse_exception on failure. Use ext to get the data from the components.

Exceptions:
parse_exception

Definition at line 134 of file Parser.cpp.

References RTT::base::TaskCore::engine(), and RTT::scripting::ConditionInterface::reset().

Parses the expression in s.

Returns:
A base::DataSourceBase which contains the expression.
Exceptions:
parse_exceptionThrows exceptions of type parse_exception.

Definition at line 163 of file Parser.cpp.

Referenced by parseValueChange().

Parser::ParsedFunctions RTT::Parser::parseFunction ( const std::string &  s,
TaskContext c,
const std::string &  filename = "stream" 
)

Reads out the string, parses it, and returns a new FunctionGraph.

Exceptions:
parse_exceptionThrows exceptions of type parse_exception.

Definition at line 84 of file Parser.cpp.

References RTT::base::TaskCore::engine().

Referenced by RTT::scripting::ScriptingService::loadFunctions().

Parser::ParsedPrograms RTT::Parser::parseProgram ( const std::string &  s,
TaskContext c,
const std::string &  filename = "stream" 
)

Reads out the string, parses it, and returns a new ProgramGraph.

Exceptions:
parse_exceptionThrows exceptions of type parse_exception.

Definition at line 96 of file Parser.cpp.

References RTT::base::TaskCore::engine(), and RTT::scripting::ProgramGraphParser::parse().

Referenced by RTT::scripting::ScriptingService::loadPrograms().

Parser::ParsedStateMachines RTT::Parser::parseStateMachine ( const std::string &  s,
TaskContext c,
const std::string &  filename = "stream" 
)

Reads out the string, parses it, and returns a new ParsedStateMachine.

Exceptions:
file_parse_exceptionThrows exceptions of type file_parse_exception.

Definition at line 110 of file Parser.cpp.

References RTT::base::TaskCore::engine().

Referenced by RTT::scripting::ScriptingService::loadStateMachines().

Parses a change of a value in s.

Returns:
A base::DataSourceBase which contains the command to change the value.
Exceptions:
parse_exceptionThrows exceptions of type parse_exception.

Definition at line 194 of file Parser.cpp.

References parseExpression().

Parses a whole value manipulation/creation statement.

Requires the set/var/const etc prefixes.

Returns:
A base::DataSourceBase which contains the command to change the value.
Exceptions:
parse_exceptionThrows exceptions of type parse_exception.

Definition at line 200 of file Parser.cpp.

References RTT::base::TaskCore::engine(), RTT::base::ActionInterface::execute(), RTT::TaskContext::provides(), and RTT::base::ActionInterface::readArguments().

void RTT::Parser::runScript ( std::string const &  code,
TaskContext mowner,
ScriptingService service,
std::string const &  filename 
)

Runs all statements in code.

Parameters:
codeA list of scripting statements and definitions
mownerThe task in which the code must be interpreted
filenameAn informational description of the source of code.
Exceptions:
parse_exceptionand its derivatives.

Definition at line 65 of file Parser.cpp.


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