Package kawa.lang
Class SyntaxPattern
- java.lang.Object
-
- kawa.lang.Pattern
-
- kawa.lang.SyntaxPattern
-
- All Implemented Interfaces:
gnu.kawa.format.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
-
-
Field Summary
Fields Modifier and Type Field Description static booleanprintSyntaxPatternMatchControl logging to standard error on successful pattern match.static SimpleSymbolunderscoreSymbol-
Fields inherited from class kawa.lang.Pattern
matchPatternMethod, typePattern
-
-
Constructor Summary
Constructors Constructor Description SyntaxPattern(java.lang.Object pattern, java.lang.Object[] literal_identifiers, Translator tr)SyntaxPattern(java.lang.String program, java.lang.Object[] literals, int varCount, java.lang.String fileLine)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.lang.Object[]allocVars(int varCount, java.lang.Object[] outer)The compiler calls this method to implement syntax-case.voiddisassemble()voiddisassemble(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 booleanliteralIdentifierEq(java.lang.Object id1, ScopeExp sc1, java.lang.Object id2, ScopeExp sc2)booleanmatch(java.lang.Object obj, java.lang.Object[] vars, int start_vars)Match this Pattern against an Object.booleanmatch(java.lang.Object obj, java.lang.Object[] vars, int start_vars, int pc, SyntaxForm syntax)voidreadExternal(java.io.ObjectInput in)java.lang.StringtoString()intvarCount()voidwriteExternal(java.io.ObjectOutput out)
-
-
-
Field Detail
-
underscoreSymbol
public static final SimpleSymbol underscoreSymbol
-
printSyntaxPatternMatch
public static boolean printSyntaxPatternMatch
Control logging to standard error on successful pattern match.
-
-
Constructor Detail
-
SyntaxPattern
public SyntaxPattern(java.lang.String program, java.lang.Object[] literals, int varCount, java.lang.String fileLine)
-
SyntaxPattern
public SyntaxPattern(java.lang.Object pattern, java.lang.Object[] literal_identifiers, Translator tr)
-
-
Method Detail
-
match
public boolean match(java.lang.Object obj, java.lang.Object[] vars, int start_vars)Description copied from class:PatternMatch this Pattern against an Object.
-
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:
writeExternalin interfacejava.io.Externalizable- Throws:
java.io.IOException
-
readExternal
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException- Specified by:
readExternalin interfacejava.io.Externalizable- Throws:
java.io.IOExceptionjava.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 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.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-