15 if (macro->constList().size() == 2)
18 node =
evaluate(node, depth + 1,
false);
Executor for Symbol Macros.
void applyMacroProxy(Node &node, unsigned depth)
Apply a macro on a given node.
Node evaluate(Node &node, unsigned depth, bool is_not_body) const
Evaluate only the macros.
const Node * findNearestMacro(const std::string &name) const
Find the nearest macro matching a giving name.
A node of an Abstract Syntax Tree for ArkScript.
NodeType nodeType() const noexcept
Return the node type.
const std::string & string() const noexcept
Return the string held by the value (if the node type allows it)
void updateValueAndType(const Node &source) noexcept
Copy a node to the current one, while keeping the filename and position in the file.
bool canHandle(Node &node) override
bool applyMacro(Node &node, unsigned depth) override