38 #ifndef EXPRESSIONPARSER_HPP 39 #define EXPRESSIONPARSER_HPP 45 #include "../internal/DataSource.hpp" 46 #include "../types/Operators.hpp" 47 #include "../Time.hpp" 51 #ifdef ORO_PRAGMA_INTERFACE 55 namespace RTT {
namespace scripting
68 boost::shared_ptr<base::AttributeBase> mhandle;
74 rule_t datacall, arguments, peerpath, object, method;
84 std::stack<ArgumentsParser*> argparsers;
110 rule_t type_name, arguments;
114 std::stack<ArgumentsParser*> argparsers;
120 void seen_constructor(
void );
142 rule_t expression, unarynotexp, unaryminusexp, unaryplusexp, div_or_mul,
143 modexp, plus_or_min, smallereqexp, smallerexp,
144 greatereqexp, greaterexp, equalexp, notequalexp, orexp, andexp,
145 ifthenelseexp, dotexp, groupexp, atomicexpression,
146 time_expression, time_spec, indexexp, comma, close_brace,
147 value_expression, call_expression, assignexp, constructor_expression;
155 std::stack<base::DataSourceBase::shared_ptr> parsestack;
160 boost::shared_ptr<base::AttributeBase> mhandle;
164 std::string mobjectname;
168 std::string mpropname;
173 void seen_unary(
const std::string& op );
174 void seen_binary(
const std::string& op );
180 void seenconstructor();
181 void seentimespec(
int n );
210 boost::shared_ptr<base::AttributeBase> getHandle();
This parser parses a call of the form "a.b( arg1, arg2, ..., argN )".
The base class for all internal data representations.
DataCallParser(ExpressionParser &p, CommonParser &cp, TaskContext *pc, ExecutionEngine *caller)
boost::shared_ptr< base::AttributeBase > getParseHandle()
boost::shared_ptr< OperatorRepository > shared_ptr
base::DataSourceBase * getParseResult()
This class contains some very common parser definitions.
An execution engine serialises (executes one after the other) the execution of all commands...
Parses type constructor syntax.
A class for parsing const values.
How we parse: this parser works like a stack-based RPN calculator.
Get the peer and object from an invocation path like a.b.c.d() .
base::DataSourceBase * getParseResult()
The TaskContext is the C++ representation of an Orocos component.
boost::intrusive_ptr< DataSourceBase > shared_ptr
Use this type to store a pointer to a DataSourceBase.
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
long long nsecs
nanoseconds as a signed long long.