47 #ifndef _MIRA_XML_MACROS_USER_DEFINED_MACRO_H_ 48 #define _MIRA_XML_MACROS_USER_DEFINED_MACRO_H_ 148 [[nodiscard]] std::optional<SourceInfo>
getSource()
const override 156 if (!param.defaultValue.has_value()) {
208 #endif // _MIRA_XML_MACROS_USER_DEFINED_MACRO_H_ ScopePtr getScope()
Definition: UserDefinedMacro.h:143
A STL conform wrapper for libxml2 to read XML files as DOM.
Definition: XMLDom.h:74
Definition: UserDefinedMacro.h:105
bool canCoerceToString() const final
Definition: UserDefinedMacro.h:153
std::vector< Argument > arguments
Definition: UserDefinedMacro.h:119
std::string uri() const
Return the uri of the node.
void reflect(XMLDeserializer &r)
Definition: UserDefinedMacro.h:111
void reflect(XMLDeserializer &r)
const Definition *const definition
Definition: UserDefinedMacro.h:103
SourceInfo mSource
Definition: UserDefinedMacro.h:203
<Parameters> of a macro definition.
Definition: UserDefinedMacro.h:70
void reflect(XMLDeserializer &r)
void coerceToString(XMLMacroProcessor &processor, std::ostream &ss) final
const XMLDom & getValue() const
Definition: UserDefinedMacro.h:186
XMLNode expand(XMLMacroProcessor &processor, XMLNode node) final
Expands the macro.
std::optional< CopyableXMLDom > defaultValue
Definition: UserDefinedMacro.h:62
const Definition & getDefinition() const
Definition: UserDefinedMacro.h:138
Replaces the input node with a different node.
Definition: UserDefinedMacro.h:177
Parameters parameters
Definition: UserDefinedMacro.h:84
Invocation(const Definition &definition)
Definition: UserDefinedMacro.h:121
UserDefinedMacro(Definition definition, std::shared_ptr< Scope > scope)
Definition: UserDefinedMacro.h:132
CopyableXMLDom value
Definition: UserDefinedMacro.h:107
std::string name
Definition: UserDefinedMacro.h:82
bool canCoerceToString() const final
Definition: UserDefinedMacro.h:191
Invocation of a user defined macro:
Definition: UserDefinedMacro.h:101
ScopePtr mScope
Definition: UserDefinedMacro.h:170
Data structure for storing macro definitions.
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
ScopePtr mScope
Definition: UserDefinedMacro.h:201
std::vector< Parameter > parameters
Definition: UserDefinedMacro.h:72
uint32 line() const
Gets the underlying line number of the loaded document for this node.
Iterator for iterating over xml nodes that have the same parent (sibligs)
Definition: XMLDom.h:850
std::string name
Definition: UserDefinedMacro.h:61
A single parameter inside <Parameters> of a macro definition.
Definition: UserDefinedMacro.h:59
std::optional< SourceInfo > getSource() const override
Definition: UserDefinedMacro.h:148
void reflect(XMLDeserializer &r)
Dynamically added to the processor by the DefineMacro macro.
Definition: UserDefinedMacro.h:129
CopyableXMLDom mValue
Definition: UserDefinedMacro.h:202
XMLNode expand(XMLMacroProcessor &processor, XMLNode node) final
Expands the macro.
void coerceToString(XMLMacroProcessor &, std::ostream &ss) final
CopyableXMLDom evaluate(XMLMacroProcessor &) const
Interface for implementing macro definitions.
Definition: IMacro.h:69
Macro definition.
Definition: UserDefinedMacro.h:80
Definition: XMLMacroProcessor.h:62
Scope::Ptr ScopePtr
Definition: Scope.h:155
Interface for implementing XML macros.
Definition mDefinition
Definition: UserDefinedMacro.h:167
std::string file
Definition: Types.h:69
SourceInfo source
Definition: UserDefinedMacro.h:109
void reflect(XMLDeserializer &r)
Definition: Builtins.h:56
SourceInfo source
Definition: UserDefinedMacro.h:88
CopyableXMLDom body
Definition: UserDefinedMacro.h:86
XMLValueMacro(ScopePtr scope, CopyableXMLDom value, SourceInfo source=SourceInfo())
Definition: UserDefinedMacro.h:180
bool isDefault
Definition: UserDefinedMacro.h:108
uint32 line
Definition: Types.h:70
XMLDom::const_iterator getNode()
Definition: XMLSerializer.h:602
Deserializer for serializing objects from XML format.
Definition: XMLSerializer.h:314