Orocos Real-Time Toolkit  2.8.3
Public Member Functions | List of all members
RTT::scripting::ExpressionParser Class Reference

How we parse: this parser works like a stack-based RPN calculator. More...

#include <rtt/scripting/ExpressionParser.hpp>

Public Member Functions

 ExpressionParser (TaskContext *pc, ExecutionEngine *caller, CommonParser &common_parser)
 
 ~ExpressionParser ()
 
rule_tparser ()
 
base::DataSourceBase::shared_ptr getResult ()
 
boost::shared_ptr< base::AttributeBasegetHandle ()
 In case the parsed result returns a SendHandle, ask the parser to also create a handle for it. More...
 
void dropResult ()
 
bool hasResult ()
 

Detailed Description

How we parse: this parser works like a stack-based RPN calculator.

An atomic expression pushes one internal::DataSource up the stack, a binary expression pops two DataSources, and pushes a new one, a unary pops one, and pushes one etc. This allows for the reentrancy we need..

Definition at line 140 of file ExpressionParser.hpp.

Constructor & Destructor Documentation

RTT::ExpressionParser::ExpressionParser ( TaskContext pc,
ExecutionEngine caller,
CommonParser common_parser 
)
RTT::ExpressionParser::~ExpressionParser ( )

Definition at line 569 of file ExpressionParser.cpp.

Member Function Documentation

void RTT::ExpressionParser::dropResult ( )
boost::shared_ptr< AttributeBase > RTT::ExpressionParser::getHandle ( )

In case the parsed result returns a SendHandle, ask the parser to also create a handle for it.

Returns
null pointer if no handle could be made.

Definition at line 588 of file ExpressionParser.cpp.

References RTT::TaskContext::attributes(), RTT::base::AttributeBase::getDataSource(), RTT::ConfigurationInterface::getValues(), RTT::ConfigurationInterface::removeAttribute(), RTT::base::AttributeBase::setName(), and RTT::ConfigurationInterface::setValue().

DataSourceBase::shared_ptr RTT::ExpressionParser::getResult ( )
bool RTT::scripting::ExpressionParser::hasResult ( )
inline
rule_t & RTT::ExpressionParser::parser ( )

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