kawa.lang

Class Pattern

Implemented Interfaces:
Printable
Known Direct Subclasses:
AnyPat, EqualPat, ListPat, ListRepeatPat, PairPat, SyntaxPattern, VarListPat

public abstract class Pattern
extends java.lang.Object
implements Printable

A Pattern is used to match against objects. E.g. it can be used to match against macro arguments.

Field Summary

static Method
matchPatternMethod
static ClassType
typePattern

Method Summary

Object[]
match(Object obj)
Match this Pattern against an object.
abstract boolean
match(Object obj, Object[] vars, int start_vars)
Match this Pattern against an Object.
abstract int
varCount()

Field Details

matchPatternMethod

public static final Method matchPatternMethod

typePattern

public static ClassType typePattern

Method Details

match

public Object[] match(Object obj)
Match this Pattern against an object.
Parameters:
obj - object to match against this pattern
Returns:
null on failure, or an array of bound pattern variables.

match

public abstract boolean match(Object obj,
                              Object[] vars,
                              int start_vars)
Match this Pattern against an Object.
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.

varCount

public abstract int varCount()