Package kawa.lang

Class 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 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

      • 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 against
        vars - the "pattern variable" values extracted from obj go here
        start_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 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:
        toString in class java.lang.Object