public class Macro extends Syntax implements gnu.kawa.format.Printable, java.io.Externalizable
Modifier and Type | Field and Description |
---|---|
java.lang.Object |
expander |
static int |
HYGIENIC |
static int |
SKIP_SCAN_FORM
If this flag is set, then don't expand during the scan-body phase.
|
Constructor and Description |
---|
Macro() |
Macro(Macro old)
Copy constructor.
|
Macro(java.lang.Object name) |
Macro(java.lang.Object name,
Procedure expander) |
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
expand(java.lang.Object form,
Translator tr) |
ScopeExp |
getCapturedScope() |
boolean |
isHygienic() |
static Macro |
make(Declaration decl) |
static Macro |
make(java.lang.Object name,
Procedure expander) |
static Macro |
make(java.lang.Object name,
Procedure expander,
java.lang.Object instance) |
static Macro |
makeNonHygienic(java.lang.Object name,
Procedure expander) |
static Macro |
makeNonHygienic(java.lang.Object name,
Procedure expander,
java.lang.Object instance) |
static Macro |
makeSkipScanForm(java.lang.Object name,
Procedure expander,
java.lang.Object instance) |
void |
print(Consumer out) |
void |
readExternal(java.io.ObjectInput in) |
Expression |
rewriteForm(Pair form,
Translator tr) |
java.lang.Object |
rewriteIfNeeded() |
void |
scanForm(Pair st,
ScopeExp defs,
Translator tr) |
void |
setCapturedScope(ScopeExp scope) |
void |
setFlags(int flags) |
void |
setHygienic(boolean hygienic) |
java.lang.String |
toString() |
void |
writeExternal(java.io.ObjectOutput out) |
public java.lang.Object expander
public static final int HYGIENIC
public static final int SKIP_SCAN_FORM
public Macro()
public Macro(Macro old)
public Macro(java.lang.Object name, Procedure expander)
public Macro(java.lang.Object name)
public final void setFlags(int flags)
public final boolean isHygienic()
public final void setHygienic(boolean hygienic)
public ScopeExp getCapturedScope()
public void setCapturedScope(ScopeExp scope)
public static Macro make(Declaration decl)
public static Macro makeNonHygienic(java.lang.Object name, Procedure expander, java.lang.Object instance)
public static Macro makeSkipScanForm(java.lang.Object name, Procedure expander, java.lang.Object instance)
public Expression rewriteForm(Pair form, Translator tr)
rewriteForm
in class Syntax
public java.lang.String toString()
toString
in class java.lang.Object
public void print(Consumer out)
public java.lang.Object rewriteIfNeeded()
public java.lang.Object expand(java.lang.Object form, Translator tr)
public void scanForm(Pair st, ScopeExp defs, Translator tr)
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException
writeExternal
in interface java.io.Externalizable
java.io.IOException
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException
readExternal
in interface java.io.Externalizable
java.io.IOException
java.lang.ClassNotFoundException