Package kawa.lang
Class SyntaxPattern
- java.lang.Object
-
- kawa.lang.Pattern
-
- kawa.lang.SyntaxPattern
-
- All Implemented Interfaces:
gnu.kawa.format.Printable
,Externalizable
,Serializable
public class SyntaxPattern extends Pattern implements Externalizable
This encodes a pattern from a Scheem syntax-case or syntax-rules.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static boolean
printSyntaxPatternMatch
Control logging to standard error on successful pattern match.static SimpleSymbol
underscoreSymbol
-
Fields inherited from class kawa.lang.Pattern
matchPatternMethod, typePattern
-
-
Constructor Summary
Constructors Constructor Description SyntaxPattern(Object pattern, Object[] literal_identifiers, Translator tr)
SyntaxPattern(String program, Object[] literals, int varCount, String fileLine)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static Object[]
allocVars(int varCount, Object[] outer)
The compiler calls this method to implement syntax-case.void
disassemble()
void
disassemble(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 boolean
literalIdentifierEq(Object id1, ScopeExp sc1, Object id2, ScopeExp sc2)
boolean
match(Object obj, Object[] vars, int start_vars)
Match this Pattern against an Object.boolean
match(Object obj, Object[] vars, int start_vars, int pc, SyntaxForm syntax)
void
readExternal(ObjectInput in)
String
toString()
int
varCount()
void
writeExternal(ObjectOutput out)
-
-
-
Field Detail
-
underscoreSymbol
public static final SimpleSymbol underscoreSymbol
-
printSyntaxPatternMatch
public static boolean printSyntaxPatternMatch
Control logging to standard error on successful pattern match.
-
-
Method Detail
-
match
public boolean match(Object obj, Object[] vars, int start_vars)
Description copied from class:Pattern
Match this Pattern against an Object.
-
disassemble
public void disassemble()
-
disassemble
public void disassemble(PrintWriter ps, Translator tr)
-
match
public boolean match(Object obj, Object[] vars, int start_vars, int pc, SyntaxForm syntax)
-
writeExternal
public void writeExternal(ObjectOutput out) throws IOException
- Specified by:
writeExternal
in interfaceExternalizable
- Throws:
IOException
-
readExternal
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
- Specified by:
readExternal
in interfaceExternalizable
- Throws:
IOException
ClassNotFoundException
-
allocVars
public static Object[] allocVars(int varCount, Object[] outer)
The compiler calls this method to implement syntax-case.
-
literalIdentifierEq
public static boolean literalIdentifierEq(Object id1, ScopeExp sc1, Object id2, ScopeExp sc2)
-
getLiteralsList
public static Object[] getLiteralsList(Object list, SyntaxForm syntax, Translator tr)
Parse the literals list in a syntax-rules or syntax-case.
-
-