45 #ifndef _XML_SCRIPT_COMMAND_HPP_ 46 #define _XML_SCRIPT_COMMAND_HPP_ 65 #define TAG_VARIABLE "set" 66 #define TAG_ENTRY "entry" 67 #define TAG_PARAMETER "param" 68 #define TAG_COMMAND "cmd" 69 #define TAG_SHELL "sh" 70 #define TAG_ITE_BLOCK "if" 71 #define TAG_FOREACH "foreach" 100 virtual void clean() = 0;
164 void clean()
override;
181 xml_set_variable_t(std::string _name,
const std::string* _singleValue,
const std::string* _condition);
189 void clean()
override;
209 xml_parameter_t(
const std::string* _name,
const std::string* _singleValue,
const std::string* _condition,
210 const std::string& _separator,
bool _curlyBrackets);
218 void clean()
override;
236 xml_command_t(
const std::string* _name,
const std::string* _value,
const std::string* _condition,
237 const std::string* _output);
245 void clean()
override;
263 xml_shell_t(
const std::string* _name,
const std::string* _value,
const std::string* _condition,
264 const std::string* _output);
272 void clean()
override;
296 void clean()
override;
309 std::vector<xml_script_node_tRef>
Nodes;
319 void clean()
override;
virtual ~xml_script_node_t()
xml_script_node_t(xml_script_node_enum_t _type)
xml_script_node_enum_t nodeType
std::vector< xml_parameter_tRef > parameters
virtual std::string get_xml_name() const =0
Gets the XML element name of this node type.
std::vector< xml_script_node_tRef > Nodes
std::vector< xml_script_node_tRef > elseNodes
static bool evaluate_condition(const std::string *condition)
Evaluates a string condition.
If/Then/Else block, evaluated at compile-time.
REF_FORWARD_DECL(xml_script_node_t)
static xml_script_node_t * create(const xml_element *element)
Creates a script node by parsing the XML element.
std::vector< xml_parameter_tRef > parameters
Template definition of refcount.
virtual void clean()=0
Cleans object attributes.
virtual xml_nodeRef create_xml_node() const =0
Creates an XML node for polixml data structures.
This is the abstract class which describes a generic synthesis script node, and some static helper me...
std::string * singleValue
std::string * singleValue
std::vector< xml_set_entry_tRef > multiValues
std::vector< xml_set_entry_tRef > multiValues
Variable assignment, either single value or multiple entries set.
Command line of the synthesis tool.
Some macro used to interface with the XML library.
Command line of the native shell.
virtual bool checkCondition(const DesignParametersRef &dp) const
If the node has a compile-time condition, this method evaluates it.
Foreach block, where the set of script nodes is applied to each parameter.
std::vector< xml_script_node_tRef > thenNodes
static xml_script_node_enum_t find_type(const xml_element *element)
Finds the type of an XML element.
String entry of a multiple values variable (set).
enum xml_script_node_enum_t { NODE_UNKNOWN=0, NODE_ENTRY=1, NODE_VARIABLE=2, NODE_PARAMETER=3, NODE_COMMAND=4, NODE_SHELL=5, NODE_ITE_BLOCK=6, NODE_FOREACH=7 } xml_script_node_enum_t
Node types.