kawa.lang

Class SyntaxPattern

public class SyntaxPattern extends Pattern implements Externalizable

This encodes a pattern from a Scheem syntax-case or syntax-rules.
Constructor Summary
SyntaxPattern(String program, Object[] literals, int varCount)
SyntaxPattern(Object pattern, Object[] literal_identifiers, Translator tr)
Method Summary
static Object[]allocVars(int varCount, Object[] outer)
The compiler calls this method to implement syntax-case.
voiddisassemble()
voiddisassemble(PrintWriter ps, Translator tr)
static Object[]getLiteralsList(Object list, SyntaxForm syntax, Translator tr)
Parse the literals list in a syntax-rules or syntax-case.
static booleanliteralIdentifierEq(Object id1, ScopeExp sc1, Object literal2)
static booleanliteralIdentifierEq(Object id1, ScopeExp sc1, Object id2, ScopeExp sc2)
booleanmatch(Object obj, Object[] vars, int start_vars)
booleanmatch(Object obj, Object[] vars, int start_vars, int pc, SyntaxForm syntax)
voidprint(Consumer out)
voidreadExternal(ObjectInput in)
intvarCount()
voidwriteExternal(ObjectOutput out)

Constructor Detail

SyntaxPattern

public SyntaxPattern(String program, Object[] literals, int varCount)

SyntaxPattern

public SyntaxPattern(Object pattern, Object[] literal_identifiers, Translator tr)

Method Detail

allocVars

public static Object[] allocVars(int varCount, Object[] outer)
The compiler calls this method to implement syntax-case.

disassemble

public void disassemble()

disassemble

public void disassemble(PrintWriter ps, Translator tr)

getLiteralsList

public static Object[] getLiteralsList(Object list, SyntaxForm syntax, Translator tr)
Parse the literals list in a syntax-rules or syntax-case.

literalIdentifierEq

public static boolean literalIdentifierEq(Object id1, ScopeExp sc1, Object literal2)

literalIdentifierEq

public static boolean literalIdentifierEq(Object id1, ScopeExp sc1, Object id2, ScopeExp sc2)

match

public boolean match(Object obj, Object[] vars, int start_vars)

match

public boolean match(Object obj, Object[] vars, int start_vars, int pc, SyntaxForm syntax)

print

public void print(Consumer out)

readExternal

public void readExternal(ObjectInput in)

varCount

public int varCount()

writeExternal

public void writeExternal(ObjectOutput out)