$search
This class builds a program consisting of data contained in a program graph tree, based on the Boost Graph Library. More...
#include <FunctionGraphBuilder.hpp>
This class builds a program consisting of data contained in a program graph tree, based on the Boost Graph Library.
Definition at line 59 of file FunctionGraphBuilder.hpp.
A CommandNode serves as a token to construct a vertex or node, containing a command.
Definition at line 74 of file FunctionGraphBuilder.hpp.
A ConditionEdge serves as a token to construct an edge, containing a condition.
Definition at line 80 of file FunctionGraphBuilder.hpp.
typedef boost::graph_traits<Graph>::edge_descriptor RTT::scripting::FunctionGraphBuilder::Edge |
Definition at line 68 of file FunctionGraphBuilder.hpp.
Definition at line 63 of file FunctionGraphBuilder.hpp.
typedef boost::adjacency_list<boost::vecS, boost::listS, boost::directedS, VertProperty, EdgeProperty> RTT::scripting::FunctionGraphBuilder::Graph |
Definition at line 66 of file FunctionGraphBuilder.hpp.
typedef boost::graph_traits<Graph>::vertex_descriptor RTT::scripting::FunctionGraphBuilder::Vertex |
Definition at line 67 of file FunctionGraphBuilder.hpp.
Definition at line 64 of file FunctionGraphBuilder.hpp.
RTT::FunctionGraphBuilder::FunctionGraphBuilder | ( | ) |
Constructs a Function graph builder.
Definition at line 49 of file FunctionGraphBuilder.cpp.
RTT::FunctionGraphBuilder::~FunctionGraphBuilder | ( | ) |
Definition at line 54 of file FunctionGraphBuilder.cpp.
FunctionGraphBuilder::CommandNode RTT::FunctionGraphBuilder::addCommand | ( | ConditionInterface * | cond, | |
base::ActionInterface * | com | |||
) |
Add a new command from the build CommandNode under a condition.
Definition at line 104 of file FunctionGraphBuilder.cpp.
void RTT::FunctionGraphBuilder::addConditionEdge | ( | ConditionInterface * | cond, | |
CommandNode | vert | |||
) |
Add an edge from the build CommandNode to the given CommandNode without changing the build CommandNode.
Definition at line 114 of file FunctionGraphBuilder.cpp.
CommandNode RTT::scripting::FunctionGraphBuilder::appendFunction | ( | ConditionInterface * | cond, | |
FunctionGraphPtr | fn, | |||
std::vector< base::DataSourceBase::shared_ptr > | fnargs | |||
) |
Append a function to the build CommandNode.
fn | The Function to append from the build CommandNode | |
cond | The 'enter' condition |
bool RTT::FunctionGraphBuilder::breakLoop | ( | ) |
Definition at line 448 of file FunctionGraphBuilder.cpp.
size_t RTT::FunctionGraphBuilder::buildEdges | ( | ) | const |
Return the number of edges of the build CommandNode.
Definition at line 186 of file FunctionGraphBuilder.cpp.
FunctionGraphBuilder::CommandNode RTT::FunctionGraphBuilder::buildNode | ( | ) | const |
Return the build CommandNode.
Definition at line 181 of file FunctionGraphBuilder.cpp.
void RTT::FunctionGraphBuilder::closeConditionEdge | ( | CommandNode | vert, | |
ConditionInterface * | cond | |||
) |
Add an edge between the given CommandNode and the build CommandNode.
Definition at line 119 of file FunctionGraphBuilder.cpp.
void RTT::FunctionGraphBuilder::connectToNext | ( | CommandNode | v, | |
ConditionInterface * | cond | |||
) |
Connect the given CommandNode to the 'next' CommandNode.
Definition at line 176 of file FunctionGraphBuilder.cpp.
void RTT::FunctionGraphBuilder::endElseBlock | ( | int | linenumber | ) |
Definition at line 406 of file FunctionGraphBuilder.cpp.
FunctionGraphPtr RTT::FunctionGraphBuilder::endFunction | ( | int | line = 0 |
) |
Finish building the function and return the result.
Definition at line 82 of file FunctionGraphBuilder.cpp.
void RTT::FunctionGraphBuilder::endIfBlock | ( | int | linenumber | ) |
Definition at line 391 of file FunctionGraphBuilder.cpp.
void RTT::FunctionGraphBuilder::endWhileBlock | ( | int | linenumber | ) |
Definition at line 431 of file FunctionGraphBuilder.cpp.
ActionInterface * RTT::FunctionGraphBuilder::getCommand | ( | CommandNode | cn | ) |
Get the Command on a given CommandNode.
Definition at line 133 of file FunctionGraphBuilder.cpp.
FunctionGraphPtr RTT::FunctionGraphBuilder::getFunction | ( | ) |
Return a pointer to the function being built, zero if none.
Definition at line 77 of file FunctionGraphBuilder.cpp.
bool RTT::FunctionGraphBuilder::inLoop | ( | ) |
Definition at line 443 of file FunctionGraphBuilder.cpp.
FunctionGraphBuilder::CommandNode RTT::FunctionGraphBuilder::moveTo | ( | CommandNode | _build, | |
CommandNode | _next, | |||
int | linenr | |||
) |
Select an already added CommandNode.
Definition at line 124 of file FunctionGraphBuilder.cpp.
FunctionGraphBuilder::CommandNode RTT::FunctionGraphBuilder::nextNode | ( | ) | const |
Return the next CommandNode.
Definition at line 191 of file FunctionGraphBuilder.cpp.
FunctionGraphBuilder::CommandNode RTT::FunctionGraphBuilder::proceedToNext | ( | ConditionInterface * | cond, | |
int | line_nr = 0 | |||
) |
Proceed to the 'next' CommandNode and add an edge with a condition.
cond | The condition under which to proceed to the next node. | |
line_nr | The line number of the 'build' command. |
Definition at line 160 of file FunctionGraphBuilder.cpp.
FunctionGraphBuilder::CommandNode RTT::FunctionGraphBuilder::proceedToNext | ( | int | line_nr = 0 |
) |
Proceed to the 'next' CommandNode.
line_nr | The line number of the 'build' command. |
Definition at line 166 of file FunctionGraphBuilder.cpp.
void RTT::FunctionGraphBuilder::returnFunction | ( | ConditionInterface * | cond, | |
int | line | |||
) |
Function return is detected inside the function. Do not confuse with endFunction().
cond | The Condition under which to return. | |
line | The line number of that line in the function. |
Definition at line 70 of file FunctionGraphBuilder.cpp.
void RTT::FunctionGraphBuilder::setCommand | ( | CommandNode | vert, | |
base::ActionInterface * | comm | |||
) |
Sets a (new) command on a given CommandNode.
vert | The CommandNode to be adapted | |
comm | The new Command to be executed in that node. |
Definition at line 147 of file FunctionGraphBuilder.cpp.
void RTT::FunctionGraphBuilder::setCommand | ( | base::ActionInterface * | comm | ) |
Sets a new Command on the build CommandNode.
Definition at line 142 of file FunctionGraphBuilder.cpp.
CommandNode RTT::scripting::FunctionGraphBuilder::setFunction | ( | FunctionGraphPtr | fn, | |
std::vector< base::DataSourceBase::shared_ptr > | fnargs | |||
) |
Put a function in the build CommandNode.
fn | The Function to append from the build CommandNode |
void RTT::FunctionGraphBuilder::setLineNumber | ( | int | ln | ) |
Set the line number of the build command node.
ln | The line number. |
Definition at line 196 of file FunctionGraphBuilder.cpp.
void RTT::FunctionGraphBuilder::setName | ( | const std::string & | _name | ) |
Definition at line 156 of file FunctionGraphBuilder.cpp.
FunctionGraphPtr RTT::FunctionGraphBuilder::startFunction | ( | const std::string & | fname | ) |
Start building a new function.
Definition at line 58 of file FunctionGraphBuilder.cpp.
void RTT::FunctionGraphBuilder::startIfStatement | ( | ConditionInterface * | cond, | |
int | linenumber | |||
) |
Definition at line 367 of file FunctionGraphBuilder.cpp.
void RTT::FunctionGraphBuilder::startWhileStatement | ( | ConditionInterface * | cond, | |
int | linenumber | |||
) |
Definition at line 415 of file FunctionGraphBuilder.cpp.
std::stack<CommandNode> RTT::scripting::FunctionGraphBuilder::branch_stack [private] |
A stack which keeps track of branch points.
Each if statement pushes three nodes on the stack : 1st: next, 2nd: else, 3rd: build. Each consequtive if statement places these three and they are popped on endIfBlock and endElseBlock.
Definition at line 264 of file FunctionGraphBuilder.hpp.
std::stack<CommandNode> RTT::scripting::FunctionGraphBuilder::break_stack [private] |
Save the after-while nodes in a break stack to support the break statement.
Definition at line 270 of file FunctionGraphBuilder.hpp.
The node which will be built next.
Definition at line 240 of file FunctionGraphBuilder.hpp.
Definition at line 249 of file FunctionGraphBuilder.hpp.
Graph* RTT::scripting::FunctionGraphBuilder::graph [private] |
The graph currently working on.
Definition at line 254 of file FunctionGraphBuilder.hpp.
The node which will be built next.
Definition at line 245 of file FunctionGraphBuilder.hpp.