jfun.jaskell.ast
Interface PatternVisitor


public interface PatternVisitor

The visitor to Pattern.

Author:
Ben Yu Jan 14, 2005

Method Summary
 java.lang.Object visitConsPattern(Pattern[] ptns)
          Visit a pattern match for a list.
 java.lang.Object visitElemPattern(Binding name)
          Visit an compiled name used as a pattern.
 java.lang.Object visitElemPattern(java.lang.String name)
          Visit an uncompiled name used as a pattern.
 java.lang.Object visitListPattern(Pattern[] ptns)
          Visit a pattern match for a list/array.
 java.lang.Object visitNamedPattern(Binding name, Pattern p)
          Create a compiled named pattern.
 java.lang.Object visitNamedPattern(java.lang.String name, Pattern p)
          Create an uncompiled named pattern.
 java.lang.Object visitTuplePattern(MemberPattern[] mbrs)
          Visit a pattern for a tuple.
 java.lang.Object visitWildcardPattern()
          Visit the wildcard '_' pattern.
 

Method Detail

visitListPattern

public java.lang.Object visitListPattern(Pattern[] ptns)
Visit a pattern match for a list/array. Such pattern appears like "[a,b,_,d]"

Parameters:
ptns - the patterns for each list element.

visitConsPattern

public java.lang.Object visitConsPattern(Pattern[] ptns)
Visit a pattern match for a list. Such pattern appears like "a:b:_:d" The last pattern is for the tail list.

Parameters:
ptns - the patterns for each element.

visitWildcardPattern

public java.lang.Object visitWildcardPattern()
Visit the wildcard '_' pattern.


visitElemPattern

public java.lang.Object visitElemPattern(java.lang.String name)
Visit an uncompiled name used as a pattern.


visitElemPattern

public java.lang.Object visitElemPattern(Binding name)
Visit an compiled name used as a pattern.


visitNamedPattern

public java.lang.Object visitNamedPattern(java.lang.String name,
                                          Pattern p)
Create an uncompiled named pattern. A named pattern appears like "myname@a:b:_" where the name before '@' is the alias of the pattern, the pattern after '@' is used to match the argument. myname will be available as a variable in the right hand side of the alternative.

Parameters:
name - the alias of the pattern.
p - the pattern.

visitNamedPattern

public java.lang.Object visitNamedPattern(Binding name,
                                          Pattern p)
Create a compiled named pattern. A named pattern appears like "myname@a:b:_" where the name before '@' is the alias of the pattern, the pattern after '@' is used to match the argument. myname will be available as a variable in the right hand side of the alternative.

Parameters:
name - the alias of the pattern.
p - the pattern.

visitTuplePattern

public java.lang.Object visitTuplePattern(MemberPattern[] mbrs)
Visit a pattern for a tuple. A tuple pattern appears like "{fld1=_:tl, fld2=[a,b]}" where fld1, fld2 are field names to match, t1, a, b are the binding names that can be used to reference the objects that they match to.

Parameters:
mbrs - the array of patterns for each tuple member.