47 #ifndef _MIRA_XML_MACROS_BUILTINS_H_ 48 #define _MIRA_XML_MACROS_BUILTINS_H_ 54 #include <serialization/adapters/std/vector> 77 static constexpr
const char*
PREFIX =
"Define_";
83 return name.rfind(
PREFIX, 0) == 0;
102 return "ImportedMacro_" + originalName +
"_" + std::to_string(
mNameCount++);
109 static constexpr
const char*
NAME =
"For";
122 static constexpr
const char*
NAME =
"Split";
181 elements.reserve(std::distance(node.begin(), node.end()));
183 for (
auto it = node.begin(); it != node.end(); ++it) {
189 static constexpr
const char*
NAME =
"Zip";
197 static constexpr
const char*
NAME =
"Nothing";
221 static constexpr
const char*
NAME =
"PrintXML";
228 #endif // _MIRA_XML_MACROS_BUILTINS_H_ Splits content into words and inserts them as word nodes.
Definition: Builtins.h:118
static constexpr const char * NAME
Definition: Builtins.h:122
XMLNode expand(XMLMacroProcessor &processor, XMLNode node) final
Expands the macro.
Definition: Builtins.h:163
Definition: Builtins.h:194
XMLDom::sibling_iterator remove()
Removes this node from the document.
void reflect(XMLDeserializer &r)
Definition: Builtins.h:175
void property(const char *name, T &member, const char *comment, PropertyHint &&hint=PropertyHint(), ReflectCtrlFlags flags=REFLECT_CTRLFLAG_NONE)
Definition: RecursiveMemberReflector.h:985
Const sibling_iterator for iterating over xml nodes that have the same parent (siblings) ...
Definition: XMLDom.h:763
std::vector< ZipElement > elements
Definition: Builtins.h:173
Evaluates children and prints the result to stdout for debugging.
Definition: Builtins.h:218
XMLNode expand(XMLMacroProcessor &processor, XMLNode node) final
Expands the macro.
Zips lists.
Definition: Builtins.h:158
static constexpr const char * PREFIX
Definition: Builtins.h:77
XMLNode expand(XMLMacroProcessor &processor, XMLNode node) final
Expands the macro.
void delegate(T &member, ReflectCtrlFlags flags=REFLECT_CTRLFLAG_NONE)
Delegates the serialization directly to the specified member, without creating a separate compound fo...
Definition: RecursiveMemberReflector.h:1099
Iterator for iterating over xml nodes that have the same parent (sibligs)
Definition: XMLDom.h:850
static constexpr const char * NAME
Definition: Builtins.h:197
uint mNameCount
Definition: Builtins.h:98
XMLNode expand(XMLMacroProcessor &processor, XMLNode node) final
Expands the macro.
Definition: Builtins.h:199
Interface for implementing macro definitions.
Definition: IMacro.h:69
bool canCoerceToString() const final
Definition: Builtins.h:204
void coerceToString(XMLMacroProcessor &processor, std::ostream &ss) final
Definition: Builtins.h:209
Definition: XMLMacroProcessor.h:62
Definition: Builtins.h:161
void reflect(XMLDeserializer &r)
Definition: Builtins.h:167
Interface for implementing XML macros.
std::vector< CopyableXMLDom > items
Definition: Builtins.h:165
Definition: Builtins.h:56
Usage: <macro:MyImportedMacro From="file/that/defines/MyImportedMacro.xml"> ...
Definition: Builtins.h:92
XMLNode expand(XMLMacroProcessor &processor, XMLNode node) final
Expands the macro.
static constexpr const char * NAME
Definition: Builtins.h:189
std::string name
Definition: Builtins.h:164
static std::string extractName(XMLDom::const_iterator node)
static bool isDefinition(const std::string &name)
Definition: Builtins.h:81
static constexpr const char * NAME
Definition: Builtins.h:221
std::string createAnonymousName(const std::string originalName)
Definition: Builtins.h:100
XMLNode expand(XMLMacroProcessor &processor, XMLNode node) final
Expands the macro.
The "Define" macro.
Definition: Builtins.h:74
XMLDom::const_iterator getNode()
Definition: XMLSerializer.h:602
Deserializer for serializing objects from XML format.
Definition: XMLSerializer.h:314