1 package kawa.lang; 2 import gnu.bytecode.*; 3 import gnu.expr.Compilation; 4 import gnu.text.Printable; 5 6 11 12 abstract public class Pattern implements Printable 13 { 14 19 public Object [] match (Object obj) 20 { 21 Object [] vars = new Object [varCount ()]; 22 return match (obj, vars, 0) ? vars : null; 23 } 24 25 31 abstract public boolean match (Object obj, Object [] vars, int start_vars); 32 33 abstract public int varCount (); 34 35 static public ClassType typePattern = ClassType.make("kawa.lang.Pattern"); 36 private static Type[] matchArgs = 37 { Type.pointer_type, Compilation.objArrayType, Type.int_type }; 38 static public final Method matchPatternMethod 39 = typePattern.addMethod("match", matchArgs, Type.boolean_type, Access.PUBLIC); 40 } 41 | Popular Tags |