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

#include <ValueChangeParser.hpp>

List of all members.

Public Member Functions

rule_t & aliasDefinitionParser ()
std::vector< std::string > allDefinedNames ()
base::ActionInterfaceassignCommand ()
std::vector
< base::ActionInterface * > 
assignCommands ()
rule_t & bareDefinitionParser ()
void clear ()
rule_t & constantDefinitionParser ()
std::vector< std::string > definedNames ()
std::vector
< base::AttributeBase * > 
definedValues ()
std::string lastDefinedName ()
base::AttributeBaselastDefinedValue ()
void load (Service::shared_ptr source)
rule_t & paramDefinitionParser ()
rule_t & parser ()
void reset ()
void store (Service::shared_ptr other)
 ValueChangeParser (TaskContext *tc, CommonParser &cp, Service::shared_ptr storage, ExecutionEngine *caller)
rule_t & variableDefinitionParser ()

Private Member Functions

void cleanup ()
void seenaliasdefinition ()
void seenbaredefinition ()
void seenconstantdefinition ()
void seenparamdefinition ()
void seenproperty ()
void seensizehint ()
void seentype (iter_t begin, iter_t end)
void seenvariabledefinition ()
void storedefinitionname (iter_t begin, iter_t end)

Private Attributes

rule_t aliasdefinition
std::vector< std::string > alldefinednames
std::vector
< base::ActionInterface * > 
assigncommands
rule_t baredecl
rule_t baredefinition
CommonParsercommonparser
rule_t constantdefinition
rule_t constdecl
TaskContextcontext
std::vector< std::string > definednames
std::vector
< base::AttributeBase * > 
definedvalues
ExpressionParser expressionparser
Service::shared_ptr mstore
rule_t paramdefinition
int sizehint
types::TypeInfotype
boost::shared_ptr
< types::TypeInfoRepository
typerepos
rule_t valuechange_parsers
std::string valuename
rule_t vardecl
rule_t variabledefinition

Detailed Description

This class is responsible for parsing constant definitions, variable definitions, variable change instructions, and alias definitions.. It stores these in the ValueParser in the ParseContext, and parses values using ExpressionParser..

Todo:
The ValueChangeParser.cxx implementation needs refactoring.

Definition at line 60 of file ValueChangeParser.hpp.


Constructor & Destructor Documentation

Create a ValueChangeParser which operates and stores values in a task. Use definedvalues() to get the values added to tc, use store() to store the added values in another task context as well. After reset(), tc will be cleared of all the stored values. tc is thus used as a temporary storage container. If you want the new added values in a different storage container, use the storage argument. Defaults to tc->provides() if set to null.

Definition at line 73 of file ValueChangeParser.cpp.


Member Function Documentation

The parser that parses alias definitions. This does not work via an assignment, and it is not necessary to check assignCommand() after this..

Definition at line 367 of file ValueChangeParser.cpp.

std::vector<std::string> RTT::scripting::ValueChangeParser::allDefinedNames ( ) [inline]

Definition at line 193 of file ValueChangeParser.hpp.

This base::ActionInterface holds the command assigning a value to a variable that should be included in the program. After a constant definition, variable definition or variable assignment is parsed, you should check it, and include it in your program if it is non-zero.

Definition at line 157 of file ValueChangeParser.hpp.

Definition at line 164 of file ValueChangeParser.hpp.

The parser that parses a bare variable definition. These do not get initialised where they are defined, so it is not necessary to check assignCommand() after this...

Definition at line 382 of file ValueChangeParser.cpp.

void RTT::ValueChangeParser::cleanup ( ) [private]

Delete temporary variables before throwing an exception.

Definition at line 328 of file ValueChangeParser.cpp.

Clear assignCommands(), definedValues() and definedNames(). Does not delete any variables or commands.

Definition at line 333 of file ValueChangeParser.cpp.

the parser that parses definitions of constants. Do not forget to check assignCommand after a constant definition is parsed..

Definition at line 362 of file ValueChangeParser.cpp.

std::vector<std::string> RTT::scripting::ValueChangeParser::definedNames ( ) [inline]

Definition at line 188 of file ValueChangeParser.hpp.

Definition at line 176 of file ValueChangeParser.hpp.

Definition at line 181 of file ValueChangeParser.hpp.

Definition at line 169 of file ValueChangeParser.hpp.

Loads all defined names from a service. Just like store(), but works the other way around and allows you to pre-defined some variables. This function removes all these variables from 'source'

Definition at line 313 of file ValueChangeParser.cpp.

The parser that parses state context parameter definitions. These do not get initialised where they are defined, so it is not necessary to check assignCommand() after this...

Definition at line 377 of file ValueChangeParser.cpp.

Returns the full parser, as it is used most. The individual sub-parsers are below.

Returns:

Definition at line 357 of file ValueChangeParser.cpp.

Completely clear all data and erase all parsed definitions from the taskcontext given in the constructor.

Definition at line 342 of file ValueChangeParser.cpp.

Definition at line 230 of file ValueChangeParser.cpp.

Definition at line 250 of file ValueChangeParser.cpp.

Definition at line 185 of file ValueChangeParser.cpp.

Definition at line 156 of file ValueChangeParser.cpp.

void RTT::ValueChangeParser::seentype ( iter_t  begin,
iter_t  end 
) [private]

Definition at line 222 of file ValueChangeParser.cpp.

Definition at line 267 of file ValueChangeParser.cpp.

Store allDefinedNames() in a service. This allows you to retrieve all parsed variable declarations.

Definition at line 299 of file ValueChangeParser.cpp.

void RTT::ValueChangeParser::storedefinitionname ( iter_t  begin,
iter_t  end 
) [private]

Definition at line 210 of file ValueChangeParser.cpp.

the parser that parses variable definitions, don't forget to check assignCommand after a variable definition is parsed..

Definition at line 372 of file ValueChangeParser.cpp.


Member Data Documentation

Definition at line 98 of file ValueChangeParser.hpp.

std::vector<std::string> RTT::scripting::ValueChangeParser::alldefinednames [private]

Definition at line 78 of file ValueChangeParser.hpp.

Definition at line 64 of file ValueChangeParser.hpp.

Definition at line 98 of file ValueChangeParser.hpp.

Definition at line 98 of file ValueChangeParser.hpp.

Definition at line 106 of file ValueChangeParser.hpp.

Definition at line 98 of file ValueChangeParser.hpp.

Definition at line 98 of file ValueChangeParser.hpp.

Definition at line 103 of file ValueChangeParser.hpp.

std::vector<std::string> RTT::scripting::ValueChangeParser::definednames [private]

Definition at line 73 of file ValueChangeParser.hpp.

Definition at line 68 of file ValueChangeParser.hpp.

Definition at line 105 of file ValueChangeParser.hpp.

Definition at line 104 of file ValueChangeParser.hpp.

Definition at line 98 of file ValueChangeParser.hpp.

Definition at line 108 of file ValueChangeParser.hpp.

Definition at line 86 of file ValueChangeParser.hpp.

Definition at line 109 of file ValueChangeParser.hpp.

Definition at line 98 of file ValueChangeParser.hpp.

Definition at line 82 of file ValueChangeParser.hpp.

Definition at line 98 of file ValueChangeParser.hpp.

Definition at line 98 of file ValueChangeParser.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