This class acts as a proxy for potential macros. When the AST is built
this class is inserted as a placeholder for the macro (whether or not
the macro is actually defined). At render time we check whether there is
a implementation for the macro call. If an implementation cannot be
found the literal text is rendered.
Fields inherited from class net.sourceforge.pmd.lang.vm.directive.Directive
Override to always return "macro". We don't want to use
the macro name here, since when writing VTL that uses the
scope, we are within a #macro call. The macro name will instead
be used as the scope name when defining the body of a BlockMacro.