kawa.lang

Class Macro

public class Macro extends Syntax implements Printable, Externalizable

Field Summary
Objectexpander
Constructor Summary
Macro()
Macro(Macro old)
Copy constructor.
Macro(Object name, Procedure expander)
Macro(Object name)
Method Summary
Objectexpand(Object form, Translator tr)
ScopeExpgetCapturedScope()
booleanisHygienic()
static Macromake(Declaration decl)
static Macromake(Object name, Procedure expander)
static Macromake(Object name, Procedure expander, Object instance)
static MacromakeNonHygienic(Object name, Procedure expander)
static MacromakeNonHygienic(Object name, Procedure expander, Object instance)
voidprint(Consumer out)
voidreadExternal(ObjectInput in)
ExpressionrewriteForm(Pair form, Translator tr)
ExpressionrewriteForm(Object form, Translator tr)
voidscanForm(Pair st, ScopeExp defs, Translator tr)
voidsetCapturedScope(ScopeExp scope)
voidsetHygienic(boolean hygienic)
StringtoString()
voidwriteExternal(ObjectOutput out)

Field Detail

expander

public Object expander

Constructor Detail

Macro

public Macro()

Macro

public Macro(Macro old)
Copy constructor.

Macro

public Macro(Object name, Procedure expander)

Macro

public Macro(Object name)

Method Detail

expand

public Object expand(Object form, Translator tr)

getCapturedScope

public ScopeExp getCapturedScope()

isHygienic

public final boolean isHygienic()

make

public static Macro make(Declaration decl)

make

public static Macro make(Object name, Procedure expander)

make

public static Macro make(Object name, Procedure expander, Object instance)

makeNonHygienic

public static Macro makeNonHygienic(Object name, Procedure expander)

makeNonHygienic

public static Macro makeNonHygienic(Object name, Procedure expander, Object instance)

print

public void print(Consumer out)

readExternal

public void readExternal(ObjectInput in)

rewriteForm

public Expression rewriteForm(Pair form, Translator tr)

rewriteForm

public Expression rewriteForm(Object form, Translator tr)

scanForm

public void scanForm(Pair st, ScopeExp defs, Translator tr)

setCapturedScope

public void setCapturedScope(ScopeExp scope)

setHygienic

public final void setHygienic(boolean hygienic)

toString

public String toString()

writeExternal

public void writeExternal(ObjectOutput out)

Serial Data: Write the name followed by the expansion procedure, both using writeObject.