net.sf.saxon.functions.regex
Class RegexTranslator

java.lang.Object
  extended by net.sf.saxon.functions.regex.RegexTranslator
Direct Known Subclasses:
JDK15RegexTranslator

public abstract class RegexTranslator
extends Object

Abstract superclass for the various regex translators, which differ according to the target platform.


Nested Class Summary
static class RegexTranslator.Range
          A Range represents a range of consecutive Unicode codepoints
 
Field Summary
static int ALL
           
protected  IntHashSet captures
           
protected  boolean caseBlind
           
protected  char curChar
           
protected  int currentCapture
           
protected  boolean eos
           
protected  boolean expandComplementBlockNames
           
protected  boolean ignoreWhitespace
           
protected  boolean inCharClassExpr
           
protected  boolean isXPath
           
protected  boolean isXPath30
           
protected  int length
           
static int NONE
           
static String NOT_ALLOWED_CLASS
           
protected  int pos
           
protected  CharSequence regExp
           
protected  FastStringBuffer result
           
static int SOME
           
static String SURROGATES1_CLASS
           
static String SURROGATES2_CLASS
           
protected  List<RegexSyntaxException> warnings
           
protected  int xmlVersion
           
protected  int xsdVersion
           
 
Constructor Summary
RegexTranslator()
           
 
Method Summary
protected  int absorbSurrogatePair()
           
protected  void advance()
           
protected  void copyCurChar()
           
protected  void expect(char c)
           
protected static String highSurrogateRanges(List<RegexTranslator.Range> ranges)
           
protected static boolean isAsciiAlnum(char c)
           
protected static boolean isJavaMetaChar(int c)
           
protected static String lowSurrogateRanges(List<RegexTranslator.Range> ranges)
           
protected  RegexSyntaxException makeException(String key)
           
protected  RegexSyntaxException makeException(String key, String arg)
           
protected  CharSequence parseQuantExact()
           
protected  void recede()
           
protected abstract  boolean translateAtom()
          If what follows is an Atom, translate it and return true; otherwise return false
protected  void translateBranch()
           
protected  void translateQuantifier()
           
protected  void translateQuantity()
           
protected  void translateRegExp()
           
protected  void translateTop()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

regExp

protected CharSequence regExp

xmlVersion

protected int xmlVersion

xsdVersion

protected int xsdVersion

isXPath

protected boolean isXPath

isXPath30

protected boolean isXPath30

ignoreWhitespace

protected boolean ignoreWhitespace

inCharClassExpr

protected boolean inCharClassExpr

caseBlind

protected boolean caseBlind

expandComplementBlockNames

protected boolean expandComplementBlockNames

pos

protected int pos

length

protected int length

curChar

protected char curChar

eos

protected boolean eos

currentCapture

protected int currentCapture

captures

protected IntHashSet captures

result

protected final FastStringBuffer result

warnings

protected List<RegexSyntaxException> warnings

NONE

public static final int NONE
See Also:
Constant Field Values

SOME

public static final int SOME
See Also:
Constant Field Values

ALL

public static final int ALL
See Also:
Constant Field Values

SURROGATES1_CLASS

public static final String SURROGATES1_CLASS
See Also:
Constant Field Values

SURROGATES2_CLASS

public static final String SURROGATES2_CLASS
See Also:
Constant Field Values

NOT_ALLOWED_CLASS

public static final String NOT_ALLOWED_CLASS
See Also:
Constant Field Values
Constructor Detail

RegexTranslator

public RegexTranslator()
Method Detail

translateTop

protected void translateTop()
                     throws RegexSyntaxException
Throws:
RegexSyntaxException

translateRegExp

protected void translateRegExp()
                        throws RegexSyntaxException
Throws:
RegexSyntaxException

translateBranch

protected void translateBranch()
                        throws RegexSyntaxException
Throws:
RegexSyntaxException

translateAtom

protected abstract boolean translateAtom()
                                  throws RegexSyntaxException
If what follows is an Atom, translate it and return true; otherwise return false

Returns:
true if we found an atom
Throws:
RegexSyntaxException - if the regex syntax is incorrect

translateQuantifier

protected void translateQuantifier()
                            throws RegexSyntaxException
Throws:
RegexSyntaxException

translateQuantity

protected void translateQuantity()
                          throws RegexSyntaxException
Throws:
RegexSyntaxException

parseQuantExact

protected CharSequence parseQuantExact()
                                throws RegexSyntaxException
Throws:
RegexSyntaxException

copyCurChar

protected void copyCurChar()

advance

protected void advance()

absorbSurrogatePair

protected int absorbSurrogatePair()
                           throws RegexSyntaxException
Throws:
RegexSyntaxException

recede

protected void recede()

expect

protected void expect(char c)
               throws RegexSyntaxException
Throws:
RegexSyntaxException

makeException

protected RegexSyntaxException makeException(String key)

makeException

protected RegexSyntaxException makeException(String key,
                                             String arg)

isJavaMetaChar

protected static boolean isJavaMetaChar(int c)

highSurrogateRanges

protected static String highSurrogateRanges(List<RegexTranslator.Range> ranges)

lowSurrogateRanges

protected static String lowSurrogateRanges(List<RegexTranslator.Range> ranges)

isAsciiAlnum

protected static boolean isAsciiAlnum(char c)


Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.