ArkScript
A small, fast, functional and scripting language for video games
Ark::internal::SymbolExecutor Class Reference

Handles Symbol macros. More...

#include <Symbol.hpp>

+ Inheritance diagram for Ark::internal::SymbolExecutor:
+ Collaboration diagram for Ark::internal::SymbolExecutor:

Public Member Functions

bool applyMacro (Node &node) override
 Executes macros in the Node if the Executor can handle it. More...
 
bool canHandle (Node &node) override
 Checks if the executor can apply a macro on the passed Node. More...
 
 MacroExecutor (MacroProcessor *macroprocessor, unsigned debug=0)
 Construct a new Macro Executor object. More...
 
- Public Member Functions inherited from Ark::internal::MacroExecutor
 MacroExecutor (MacroProcessor *macroprocessor, unsigned debug=0)
 Construct a new Macro Executor object. More...
 
virtual ~MacroExecutor ()
 Need a virtual destructor to correctly destory object. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Ark::internal::MacroExecutor
NodefindNearestMacro (const std::string &name)
 Find the nearest macro matching a giving name. More...
 
void registerMacro (Node &node)
 Registers macros based on their type. More...
 
bool isTruthy (const Node &node)
 Check if a node can be evaluated to true. More...
 
Node evaluate (Node &node, bool is_not_body)
 Evaluate only the macros. More...
 
void unify (const std::unordered_map< std::string, Node > &, Node &, Node *)
 Applies the spread operator. More...
 
void throwMacroProcessingError (const std::string &message, const Node &node)
 Throw a macro processing error. More...
 
bool applyMacroProxy (Node &node)
 Execute a node, trying to emplace macros calls. More...
 
bool isPredefined (const std::string &symbol)
 Check if a given symbol is a predefined macro. More...
 
- Protected Attributes inherited from Ark::internal::MacroExecutor
unsigned int m_debug
 
MacroProcessorm_macroprocessor
 

Detailed Description

Handles Symbol macros.

Definition at line 24 of file Symbol.hpp.

Member Function Documentation

◆ applyMacro()

bool Ark::internal::SymbolExecutor::applyMacro ( Node node)
overridevirtual

Executes macros in the Node if the Executor can handle it.

Parameters
nodethe node that contains a macro
Returns
true if a macro was successfully applied
false

Implements Ark::internal::MacroExecutor.

Definition at line 10 of file Symbol.cpp.

References Ark::internal::Node::constList(), Ark::internal::MacroExecutor::findNearestMacro(), Ark::internal::Node::list(), and Ark::internal::Node::string().

◆ canHandle()

bool Ark::internal::SymbolExecutor::canHandle ( Node node)
overridevirtual

Checks if the executor can apply a macro on the passed Node.

Parameters
nodethe node that contains a macro

Implements Ark::internal::MacroExecutor.

Definition at line 5 of file Symbol.cpp.

References Ark::internal::Node::nodeType(), and Ark::internal::Symbol.

◆ MacroExecutor()

Ark::internal::MacroExecutor::MacroExecutor

Construct a new Macro Executor object.

Parameters
macroprocessor
debug

Definition at line 36 of file Executor.cpp.


The documentation for this class was generated from the following files: