$search

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_tparser ()
 ~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

RTT::ExpressionParser::ExpressionParser ( TaskContext pc,
ExecutionEngine caller,
CommonParser cp 
)

Definition at line 323 of file ExpressionParser.cpp.

RTT::ExpressionParser::~ExpressionParser (  ) 

Definition at line 560 of file ExpressionParser.cpp.


Member Function Documentation

void RTT::ExpressionParser::dropResult (  ) 

Definition at line 688 of file ExpressionParser.cpp.

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 579 of file ExpressionParser.cpp.

DataSourceBase::shared_ptr RTT::ExpressionParser::getResult (  ) 

Definition at line 573 of file ExpressionParser.cpp.

bool RTT::scripting::ExpressionParser::hasResult (  )  [inline]

Definition at line 218 of file ExpressionParser.hpp.

void RTT::ExpressionParser::inverttime (  )  [private]

Definition at line 488 of file ExpressionParser.cpp.

rule_t & RTT::ExpressionParser::parser (  ) 

Definition at line 568 of file ExpressionParser.cpp.

void RTT::ExpressionParser::seen_assign (  )  [private]

Definition at line 627 of file ExpressionParser.cpp.

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

Definition at line 610 of file ExpressionParser.cpp.

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

Definition at line 597 of file ExpressionParser.cpp.

void RTT::ExpressionParser::seen_index (  )  [private]

Definition at line 672 of file ExpressionParser.cpp.

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

Definition at line 585 of file ExpressionParser.cpp.

void RTT::ExpressionParser::seenconstructor (  )  [private]

Definition at line 554 of file ExpressionParser.cpp.

void RTT::ExpressionParser::seendatacall (  )  [private]

Definition at line 547 of file ExpressionParser.cpp.

void RTT::ExpressionParser::seentimeexpr (  )  [private]

Definition at line 493 of file ExpressionParser.cpp.

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

Definition at line 536 of file ExpressionParser.cpp.

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

Definition at line 507 of file ExpressionParser.cpp.

void RTT::ExpressionParser::seenvalue (  )  [private]

Definition at line 541 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:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


rtt
Author(s): RTT Developers
autogenerated on Fri Mar 1 16:27:53 2013