kawa.lang
Class SyntaxPattern
java.lang.Object
kawa.lang.Pattern
kawa.lang.SyntaxPattern
- All Implemented Interfaces:
- Printable, java.io.Externalizable, java.io.Serializable
public class SyntaxPattern
- extends Pattern
- implements java.io.Externalizable
This encodes a pattern from a Scheem syntax-case or syntax-rules.
- See Also:
- Serialized Form
Constructor Summary |
SyntaxPattern(java.lang.Object pattern,
java.lang.Object[] literal_identifiers,
Translator tr)
|
SyntaxPattern(java.lang.String program,
java.lang.Object[] literals,
int varCount)
|
Method Summary |
static java.lang.Object[] |
allocVars(int varCount,
java.lang.Object[] outer)
The compiler calls this method to implement syntax-case. |
void |
disassemble()
|
void |
disassemble(java.io.PrintWriter ps,
Translator tr)
|
static java.lang.Object[] |
getLiteralsList(java.lang.Object list,
SyntaxForm syntax,
Translator tr)
Parse the literals list in a syntax-rules or syntax-case. |
static boolean |
literalIdentifierEq(java.lang.Object id1,
ScopeExp sc1,
java.lang.Object literal2)
|
static boolean |
literalIdentifierEq(java.lang.Object id1,
ScopeExp sc1,
java.lang.Object id2,
ScopeExp sc2)
|
boolean |
match(java.lang.Object obj,
java.lang.Object[] vars,
int start_vars)
Match this Pattern against an Object. |
boolean |
match(java.lang.Object obj,
java.lang.Object[] vars,
int start_vars,
int pc,
SyntaxForm syntax)
|
void |
print(Consumer out)
|
void |
readExternal(java.io.ObjectInput in)
|
int |
varCount()
|
void |
writeExternal(java.io.ObjectOutput out)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SyntaxPattern
public SyntaxPattern(java.lang.String program,
java.lang.Object[] literals,
int varCount)
SyntaxPattern
public SyntaxPattern(java.lang.Object pattern,
java.lang.Object[] literal_identifiers,
Translator tr)
varCount
public int varCount()
- Specified by:
varCount
in class Pattern
match
public boolean match(java.lang.Object obj,
java.lang.Object[] vars,
int start_vars)
- Description copied from class:
Pattern
- Match this Pattern against an Object.
- Specified by:
match
in class Pattern
- Parameters:
obj
- the Object to match againstvars
- the "pattern variable" values extracted from obj go herestart_vars
- where in vars to strt putting the varCount() values
- Returns:
- true iff the match succeeded.
disassemble
public void disassemble()
disassemble
public void disassemble(java.io.PrintWriter ps,
Translator tr)
match
public boolean match(java.lang.Object obj,
java.lang.Object[] vars,
int start_vars,
int pc,
SyntaxForm 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
allocVars
public static java.lang.Object[] allocVars(int varCount,
java.lang.Object[] outer)
- The compiler calls this method to implement syntax-case.
literalIdentifierEq
public static boolean literalIdentifierEq(java.lang.Object id1,
ScopeExp sc1,
java.lang.Object literal2)
literalIdentifierEq
public static boolean literalIdentifierEq(java.lang.Object id1,
ScopeExp sc1,
java.lang.Object id2,
ScopeExp sc2)
getLiteralsList
public static java.lang.Object[] getLiteralsList(java.lang.Object list,
SyntaxForm syntax,
Translator tr)
- Parse the literals list in a syntax-rules or syntax-case.
print
public void print(Consumer out)
- Specified by:
print
in interface Printable