kawa.lang
Class Macro

java.lang.Object
  extended by kawa.lang.Syntax
      extended by kawa.lang.Macro
All Implemented Interfaces:
Named, Printable, java.io.Externalizable, java.io.Serializable

public class Macro
extends Syntax
implements Printable, java.io.Externalizable

See Also:
Serialized Form

Field Summary
 java.lang.Object expander
           
 
Constructor Summary
Macro()
           
Macro(Macro old)
          Copy constructor.
Macro(java.lang.Object name)
           
Macro(java.lang.Object name, Procedure expander)
           
 
Method Summary
 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)
           
 void print(Consumer out)
           
 void readExternal(java.io.ObjectInput in)
           
 Expression rewriteForm(java.lang.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)
           
 java.lang.String toString()
           
 void writeExternal(java.io.ObjectOutput out)
           
 
Methods inherited from class kawa.lang.Syntax
getName, getSymbol, rewrite, scanForDefinitions, setName, setName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

expander

public java.lang.Object expander
Constructor Detail

Macro

public Macro()

Macro

public Macro(Macro old)
Copy constructor.


Macro

public Macro(java.lang.Object name,
             Procedure expander)

Macro

public Macro(java.lang.Object name)
Method Detail

getCapturedScope

public ScopeExp getCapturedScope()

setCapturedScope

public void setCapturedScope(ScopeExp scope)

make

public static Macro make(Declaration decl)

makeNonHygienic

public static Macro makeNonHygienic(java.lang.Object name,
                                    Procedure expander)

makeNonHygienic

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

make

public static Macro make(java.lang.Object name,
                         Procedure expander)

make

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

isHygienic

public final boolean isHygienic()

setHygienic

public final void setHygienic(boolean hygienic)

rewriteForm

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

rewriteForm

public Expression rewriteForm(java.lang.Object form,
                              Translator tr)
Overrides:
rewriteForm in class Syntax

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

print

public void print(Consumer out)
Specified by:
print in interface Printable
Overrides:
print in class Syntax

expand

public java.lang.Object expand(java.lang.Object form,
                               Translator tr)

scanForm

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

writeExternal

public void writeExternal(java.io.ObjectOutput out)
                   throws java.io.IOException
Specified by:
writeExternal in interface java.io.Externalizable
Throws:
java.io.IOException

readExternal

public void readExternal(java.io.ObjectInput in)
                  throws java.io.IOException,
                         java.lang.ClassNotFoundException
Specified by:
readExternal in interface java.io.Externalizable
Throws:
java.io.IOException
java.lang.ClassNotFoundException