Public Member Functions | Private Member Functions | Private Attributes
RTT::scripting::ExpressionParser Class Reference

#include <ExpressionParser.hpp>

List of all members.

Public Member Functions

void dropResult ()
 ExpressionParser (TaskContext *pc, ExecutionEngine *caller, CommonParser &common_parser)
boost::shared_ptr
< base::AttributeBase
getHandle ()
base::DataSourceBase::shared_ptr getResult ()
bool hasResult ()
rule_t & parser ()
 ~ExpressionParser ()

Private Member Functions

void inverttime ()
void seen_assign ()
void seen_binary (const std::string &op)
void seen_dotmember (iter_t begin, iter_t end)
void seen_index ()
void seen_unary (const std::string &op)
void seenconstructor ()
void seendatacall ()
void seentimeexpr ()
void seentimespec (int n)
void seentimeunit (iter_t begin, iter_t end)
void seenvalue ()

Private Attributes

bool _invert_time
rule_t andexp
rule_t assignexp
rule_t atomicexpression
rule_t call_expression
rule_t close_brace
rule_t comma
CommonParsercommonparser
ConstructorParser constrparser
rule_t constructor_expression
TaskContextcontext
DataCallParser datacallparser
rule_t div_or_mul
rule_t dotexp
rule_t equalexp
rule_t expression
rule_t greatereqexp
rule_t greaterexp
rule_t groupexp
rule_t ifthenelseexp
rule_t indexexp
boost::shared_ptr
< base::AttributeBase
mhandle
std::string mobjectname
rule_t modexp
std::string mpropname
rule_t notequalexp
types::OperatorRepository::shared_ptr opreg
rule_t orexp
std::stack
< base::DataSourceBase::shared_ptr
parsestack
rule_t plus_or_min
rule_t smallereqexp
rule_t smallerexp
rule_t time_expression
rule_t time_spec
nsecs tsecs
rule_t unaryminusexp
rule_t unarynotexp
rule_t unaryplusexp
rule_t value_expression
ValueParser valueparser

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

Definition at line 332 of file ExpressionParser.cpp.

Definition at line 569 of file ExpressionParser.cpp.


Member Function Documentation

Definition at line 697 of file ExpressionParser.cpp.

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.

Definition at line 582 of file ExpressionParser.cpp.

Definition at line 218 of file ExpressionParser.hpp.

Definition at line 497 of file ExpressionParser.cpp.

Definition at line 577 of file ExpressionParser.cpp.

Definition at line 636 of file ExpressionParser.cpp.

void RTT::ExpressionParser::seen_binary ( const std::string &  op) [private]

Definition at line 619 of file ExpressionParser.cpp.

void RTT::ExpressionParser::seen_dotmember ( iter_t  begin,
iter_t  end 
) [private]

Definition at line 606 of file ExpressionParser.cpp.

Definition at line 681 of file ExpressionParser.cpp.

void RTT::ExpressionParser::seen_unary ( const std::string &  op) [private]

Definition at line 594 of file ExpressionParser.cpp.

Definition at line 563 of file ExpressionParser.cpp.

Definition at line 556 of file ExpressionParser.cpp.

Definition at line 502 of file ExpressionParser.cpp.

void RTT::ExpressionParser::seentimespec ( int  n) [private]

Definition at line 545 of file ExpressionParser.cpp.

void RTT::ExpressionParser::seentimeunit ( iter_t  begin,
iter_t  end 
) [private]

Definition at line 516 of file ExpressionParser.cpp.

Definition at line 550 of file ExpressionParser.cpp.


Member Data Documentation

Definition at line 193 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

The governing common parser.

Definition at line 191 of file ExpressionParser.hpp.

Definition at line 187 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 196 of file ExpressionParser.hpp.

Definition at line 186 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Contains the last SendHandle encountered, Will also be dropped by dropResult().

Definition at line 160 of file ExpressionParser.hpp.

Definition at line 164 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 168 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 194 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

The parse stack.. see the comment for this class ( scroll up ;) ) for info on the general idea. We keep a reference to the DataSources in here, while they're in here..

Definition at line 155 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 171 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 142 of file ExpressionParser.hpp.

Definition at line 192 of file ExpressionParser.hpp.


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


rtt
Author(s): RTT Developers
autogenerated on Fri Sep 9 2016 04:02:20