38 #ifndef PROGRAMGRAPH_HPP 39 #define PROGRAMGRAPH_HPP 42 #include "../base/DataSourceBase.hpp" 48 #include <boost/graph/graph_traits.hpp> 51 {
namespace scripting {
66 typedef boost::adjacency_list<boost::vecS, boost::listS, boost::directedS, VertProperty, EdgeProperty>
Graph;
67 typedef boost::graph_traits<Graph>::vertex_descriptor
Vertex;
68 typedef boost::graph_traits<Graph>::edge_descriptor
Edge;
93 void setLineNumber(
int ln );
95 void setName(
const std::string& _name);
123 void endIfBlock(
int linenumber);
124 void endElseBlock(
int linenumber);
127 void endWhileBlock(
int linenumber);
157 CommandNode moveTo( CommandNode _build, CommandNode _next,
int linenr );
197 CommandNode setFunction(
FunctionGraphPtr fn, std::vector<base::DataSourceBase::shared_ptr> fnargs);
205 CommandNode proceedToNext(
int line_nr = 0 );
225 CommandNode buildNode()
const;
230 size_t buildEdges()
const;
235 CommandNode nextNode()
const;
This class builds a program consisting of data contained in a program graph tree, based on the Boost ...
FunctionGraph::Edge ConditionEdge
boost::shared_ptr< FunctionGraph > FunctionGraphPtr
boost::graph_traits< Graph >::edge_descriptor Edge
This interface represents the concept of a condition which can be evaluated and return true or false...
VertexNode::VertProperty VertProperty
std::stack< CommandNode > branch_stack
A stack which keeps track of branch points.
Based on the software pattern 'command', this interface allows execution of action objects...
boost::graph_traits< Graph >::vertex_descriptor Vertex
boost::graph_traits< Graph >::edge_descriptor Edge
std::stack< CommandNode > break_stack
boost::graph_traits< Graph >::vertex_descriptor Vertex
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
EdgeCondition::EdgeProperty EdgeProperty
boost::adjacency_list< boost::vecS, boost::listS, boost::directedS, VertProperty, EdgeProperty > Graph
FunctionGraph::Vertex CommandNode
boost::property< vertex_command_t, VertexNode, boost::property< vertex_exec_t, int, boost::property< boost::vertex_index_t, int > > > VertProperty
property< edge_condition_t, EdgeCondition, property< boost::edge_index_t, int > > EdgeProperty