38 #ifndef EXPRESSIONPARSER_HPP 39 #define EXPRESSIONPARSER_HPP 46 #include "../internal/DataSource.hpp" 47 #include "../types/Operators.hpp" 48 #include "../Time.hpp" 52 #ifdef ORO_PRAGMA_INTERFACE 56 namespace RTT {
namespace scripting
69 boost::shared_ptr<SendHandleAlias> mhandle;
74 enum CallType { DEFAULT_CALLTYPE, CALLTYPE_CALL, CALLTYPE_SEND, CALLTYPE_CMD } mcalltype;
76 rule_t datacall, arguments, peerpath, object, method;
86 std::stack<ArgumentsParser*> argparsers;
116 rule_t type_name, arguments;
120 std::stack<ArgumentsParser*> argparsers;
126 void seen_constructor(
void );
148 rule_t expression, unarynotexp, unaryminusexp, unaryplusexp, div_or_mul,
149 modexp, plus_or_min, smallereqexp, smallerexp,
150 greatereqexp, greaterexp, equalexp, notequalexp, orexp, andexp,
151 ifthenelseexp, dotexp, groupexp, atomicexpression,
152 time_expression, time_spec, indexexp, comma, close_brace,
153 value_expression, call_expression, assignexp, constructor_expression;
161 std::stack<base::DataSourceBase::shared_ptr> parsestack;
166 boost::shared_ptr<SendHandleAlias> mhandle;
172 std::string mobjectname;
176 std::string mpropname;
181 void seen_unary(
const std::string& op );
182 void seen_binary(
const std::string& op );
188 void seenconstructor();
189 void seentimespec(
int n );
219 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)
This interface represents the concept of a condition which can be evaluated and return true or false...
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() .
ConditionInterface * getParseCmdResult()
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.
boost::shared_ptr< SendHandleAlias > getParseHandle()