All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax0.jamal.api.Stackable Maven / Gradle / Ivy

package javax0.jamal.api;

/**
 * The macros that need the {@code push()} and {@code pop()} call-backs when the macro level is increasing / decreasing
 * should implement this interface.
 * 

* Macro level gets deeper when macros are evaluated in a macro enclosure or when a macro itself calls the macro * register {@code push()} method. For example the macro include calls {@link MacroRegister#push(Marker)} before * starting to process the content of a file and calls {@link MacroRegister#pop(Marker)} when it finished. *

* Macro level gets back to the previous state when the {@link MacroRegister#pop(Marker)} method is invoked. This * happens when the macro {@code import} finished processing a file or when the macro evaluation finished the macro * evaluation inside a macro. *

* When a macro starts with the {@code #} character then the content of the macro is processed resolving macro * references before processing the macro itself. This process is executed one level deeper than the current level. The * {@link Processor#process(Input)} calls {@link MacroRegister#push(Marker)} before starting to process the content of * the macro body and calls {@link MacroRegister#pop(Marker)} when it has finished. */ public interface Stackable extends Macro { void push(); void pop(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy