RTT::scripting::ExpressionParser Class Reference

#include <ExpressionParser.hpp>

List of all members.

Public Member Functions

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

Private Member Functions

void inverttime ()
void inverttime ()
void seen_assign ()
void seen_assign ()
void seen_binary (const std::string &op)
void seen_binary (const std::string &op)
void seen_dotmember (iter_t begin, iter_t end)
void seen_dotmember (iter_t begin, iter_t end)
void seen_index ()
void seen_index ()
void seen_unary (const std::string &op)
void seen_unary (const std::string &op)
void seenconstructor ()
void seenconstructor ()
void seendatacall ()
void seendatacall ()
void seentimeexpr ()
void seentimeexpr ()
void seentimespec (int n)
void seentimespec (int n)
void seentimeunit (iter_t begin, iter_t end)
void seentimeunit (iter_t begin, iter_t end)
void seenvalue ()
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 install/include/rtt/scripting/ExpressionParser.hpp.


Constructor & Destructor Documentation

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

Definition at line 318 of file ExpressionParser.cpp.

RTT::ExpressionParser::~ExpressionParser (  ) 

Definition at line 555 of file ExpressionParser.cpp.

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

Member Function Documentation

void RTT::scripting::ExpressionParser::dropResult (  ) 
void RTT::ExpressionParser::dropResult (  ) 

Definition at line 683 of file ExpressionParser.cpp.

boost::shared_ptr<base::AttributeBase> RTT::scripting::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.
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 574 of file ExpressionParser.cpp.

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

Definition at line 568 of file ExpressionParser.cpp.

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

Definition at line 218 of file rtt/scripting/ExpressionParser.hpp.

bool RTT::scripting::ExpressionParser::hasResult (  )  [inline]
void RTT::scripting::ExpressionParser::inverttime (  )  [private]
void RTT::ExpressionParser::inverttime (  )  [private]

Definition at line 483 of file ExpressionParser.cpp.

rule_t& RTT::scripting::ExpressionParser::parser (  ) 
rule_t & RTT::ExpressionParser::parser (  ) 

Definition at line 563 of file ExpressionParser.cpp.

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

Definition at line 622 of file ExpressionParser.cpp.

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

Definition at line 605 of file ExpressionParser.cpp.

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

Definition at line 592 of file ExpressionParser.cpp.

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

Definition at line 667 of file ExpressionParser.cpp.

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

Definition at line 580 of file ExpressionParser.cpp.

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

Definition at line 549 of file ExpressionParser.cpp.

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

Definition at line 542 of file ExpressionParser.cpp.

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

Definition at line 488 of file ExpressionParser.cpp.

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

Definition at line 531 of file ExpressionParser.cpp.

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

Definition at line 502 of file ExpressionParser.cpp.

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

Definition at line 536 of file ExpressionParser.cpp.


Member Data Documentation

The governing common parser.

Definition at line 191 of file install/include/rtt/scripting/ExpressionParser.hpp.

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

Definition at line 160 of file install/include/rtt/scripting/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 install/include/rtt/scripting/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 Jan 11 09:50:14 2013