kawa.lang

Class Macro

Implemented Interfaces:
Externalizable, Named, Printable

public class Macro
extends Syntax
implements Printable, Externalizable

Field Summary

Object
expander

Constructor Summary

Macro()
Macro(Object name)
Macro(Object name, Procedure expander)
Macro(Macro old)
Copy constructor.

Method Summary

Object
expand(Object form, Translator tr)
ScopeExp
getCapturedScope()
boolean
isHygienic()
static Macro
make(Object name, Procedure expander)
static Macro
make(Object name, Procedure expander, Object instance)
static Macro
make(Declaration decl)
static Macro
makeNonHygienic(Object name, Procedure expander)
static Macro
makeNonHygienic(Object name, Procedure expander, Object instance)
void
print(Consumer out)
void
readExternal(ObjectInput in)
Expression
rewriteForm(Object form, Translator tr)
Expression
rewriteForm(Pair form, Translator tr)
void
scanForm(Pair st, ScopeExp defs, Translator tr)
void
setCapturedScope(ScopeExp scope)
void
setHygienic(boolean hygienic)
String
toString()
void
writeExternal(ObjectOutput out)

Methods inherited from class kawa.lang.Syntax

getName, getSymbol, print, rewrite, rewriteForm, rewriteForm, scanForDefinitions, scanForm, setName, setName

Field Details

expander

public Object expander

Constructor Details

Macro

public Macro()

Macro

public Macro(Object name)

Macro

public Macro(Object name,
             Procedure expander)

Macro

public Macro(Macro old)
Copy constructor.

Method Details

expand

public Object expand(Object form,
                     Translator tr)

getCapturedScope

public ScopeExp getCapturedScope()

isHygienic

public final boolean isHygienic()

make

public static Macro make(Object name,
                         Procedure expander)

make

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

make

public static Macro make(Declaration decl)

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)
Specified by:
print in interface Printable
Overrides:
print in interface Syntax

readExternal

public void readExternal(ObjectInput in)
            throws IOException,
                   ClassNotFoundException

rewriteForm

public Expression rewriteForm(Object form,
                              Translator tr)
Overrides:
rewriteForm in interface Syntax

rewriteForm

public Expression rewriteForm(Pair form,
                              Translator tr)
Overrides:
rewriteForm in interface Syntax

scanForm

public void scanForm(Pair st,
                     ScopeExp defs,
                     Translator tr)
Overrides:
scanForm in interface Syntax

setCapturedScope

public void setCapturedScope(ScopeExp scope)

setHygienic

public final void setHygienic(boolean hygienic)

toString

public String toString()

writeExternal

public void writeExternal(ObjectOutput out)
            throws IOException