class
CrShader::MacroEngine::MacroExpanderTransformer
- CrShader::MacroEngine::MacroExpanderTransformer
- Crystal::Transformer
- Reference
- Object
Defined in:
crshader/macros/macro_engine.crConstructors
Instance Method Summary
- #constants : Hash(String, Crystal::ASTNode)
- #constants=(constants : Hash(String, Crystal::ASTNode))
-
#expand_macro_call(call : Crystal::Call) : Array(Crystal::ASTNode)
Expand a call to a registered macro
-
#expand_macro_for(node : Crystal::MacroFor, env : Hash(String, Crystal::ASTNode)) : Array(Crystal::ASTNode)
Expand a MacroFor node
-
#expand_macro_if(node : Crystal::MacroIf, env : Hash(String, Crystal::ASTNode)) : Array(Crystal::ASTNode)
Expand a MacroIf node
- #macros : Hash(String, Crystal::Macro)
- #macros=(macros : Hash(String, Crystal::Macro))
-
#transform(node : Crystal::Expressions) : Crystal::ASTNode
Intercept Expressions to unroll loops, conditionals, and macro calls
-
#transform(node : Crystal::Call) : Crystal::ASTNode
Handle single macro call expression
-
#transform(node : Crystal::Def) : Crystal::ASTNode
Handle Def body transformation
Constructor Detail
Instance Method Detail
def expand_macro_call(call : Crystal::Call) : Array(Crystal::ASTNode)
#
Expand a call to a registered macro
def expand_macro_for(node : Crystal::MacroFor, env : Hash(String, Crystal::ASTNode)) : Array(Crystal::ASTNode)
#
Expand a MacroFor node
def expand_macro_if(node : Crystal::MacroIf, env : Hash(String, Crystal::ASTNode)) : Array(Crystal::ASTNode)
#
Expand a MacroIf node
def transform(node : Crystal::Expressions) : Crystal::ASTNode
#
Intercept Expressions to unroll loops, conditionals, and macro calls