com.thaiopensource.datatype.xsd.regex.jdk1_4
Class Translator
java.lang.Object
com.thaiopensource.datatype.xsd.regex.jdk1_4.Translator
public class Translator
- extends Object
Translates XML Schema regexes into java.util.regex regexes.
- See Also:
Pattern,
XML Schema Part 2
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
regExp
private final String regExp
pos
private int pos
length
private final int length
curChar
private char curChar
eos
private boolean eos
result
private final StringBuffer result
categories
private static final String categories
- See Also:
- Constant Field Values
categoryCharClasses
private static final Translator.CharClass[] categoryCharClasses
subCategories
private static final String subCategories
- See Also:
- Constant Field Values
subCategoryCharClasses
private static final Translator.CharClass[] subCategoryCharClasses
NONBMP_MIN
private static final int NONBMP_MIN
- See Also:
- Constant Field Values
NONBMP_MAX
private static final int NONBMP_MAX
- See Also:
- Constant Field Values
SURROGATE2_MIN
private static final char SURROGATE2_MIN
- See Also:
- Constant Field Values
SURROGATE2_MAX
private static final char SURROGATE2_MAX
- See Also:
- Constant Field Values
localizer
static final Localizer localizer
blockNames
private static final String[] blockNames
specialBlockNames
private static final String[] specialBlockNames
- Names of blocks including ranges outside the BMP.
specialBlockCharClasses
private static final Translator.CharClass[] specialBlockCharClasses
- CharClass for each block name in specialBlockNames.
DOT
private static final Translator.CharClass DOT
ESC_d
private static final Translator.CharClass ESC_d
ESC_D
private static final Translator.CharClass ESC_D
ESC_W
private static final Translator.CharClass ESC_W
ESC_w
private static final Translator.CharClass ESC_w
ESC_s
private static final Translator.CharClass ESC_s
ESC_S
private static final Translator.CharClass ESC_S
ESC_i
private static final Translator.CharClass ESC_i
ESC_I
private static final Translator.CharClass ESC_I
ESC_c
private static final Translator.CharClass ESC_c
ESC_C
private static final Translator.CharClass ESC_C
EOS
private static final char EOS
- See Also:
- Constant Field Values
NONE
static final int NONE
- See Also:
- Constant Field Values
SOME
static final int SOME
- See Also:
- Constant Field Values
ALL
static final int ALL
- See Also:
- Constant Field Values
SURROGATES1_CLASS
static final String SURROGATES1_CLASS
- See Also:
- Constant Field Values
SURROGATES2_CLASS
static final String SURROGATES2_CLASS
- See Also:
- Constant Field Values
NOT_ALLOWED_CLASS
static final String NOT_ALLOWED_CLASS
- See Also:
- Constant Field Values
UNICODE_3_1_ADD_Lu
private static final char UNICODE_3_1_ADD_Lu
- See Also:
- Constant Field Values
UNICODE_3_1_ADD_Ll
private static final char UNICODE_3_1_ADD_Ll
- See Also:
- Constant Field Values
UNICODE_3_1_CHANGE_No_to_Nl_MIN
private static final char UNICODE_3_1_CHANGE_No_to_Nl_MIN
- See Also:
- Constant Field Values
UNICODE_3_1_CHANGE_No_to_Nl_MAX
private static final char UNICODE_3_1_CHANGE_No_to_Nl_MAX
- See Also:
- Constant Field Values
CATEGORY_Pi
private static final String CATEGORY_Pi
- See Also:
- Constant Field Values
CATEGORY_Pf
private static final String CATEGORY_Pf
- See Also:
- Constant Field Values
Translator
private Translator(String regExp)
translate
public static String translate(String regexp)
throws RegexSyntaxException
- Translates a regular expression in the syntax of XML Schemas Part 2 into a regular
expression in the syntax of
java.util.regex.Pattern. The translation
assumes that the string to be matched against the regex uses surrogate pairs correctly.
If the string comes from XML content, a conforming XML parser will automatically
check this; if the string comes from elsewhere, it may be necessary to check
surrogate usage before matching.
- Parameters:
regexp - a String containing a regular expression in the syntax of XML Schemas Part 2
- Returns:
- a String containing a regular expression in the syntax of java.util.regex.Pattern
- Throws:
RegexSyntaxException - if regexp is not a regular expression in the
syntax of XML Schemas Part 2- See Also:
Pattern,
XML Schema Part 2
advance
private void advance()
translateTop
private void translateTop()
throws RegexSyntaxException
- Throws:
RegexSyntaxException
translateRegExp
private void translateRegExp()
throws RegexSyntaxException
- Throws:
RegexSyntaxException
translateBranch
private void translateBranch()
throws RegexSyntaxException
- Throws:
RegexSyntaxException
translateQuantifier
private void translateQuantifier()
throws RegexSyntaxException
- Throws:
RegexSyntaxException
translateQuantity
private void translateQuantity()
throws RegexSyntaxException
- Throws:
RegexSyntaxException
parseQuantExact
private String parseQuantExact()
throws RegexSyntaxException
- Throws:
RegexSyntaxException
copyCurChar
private void copyCurChar()
translateAtom
private boolean translateAtom()
throws RegexSyntaxException
- Throws:
RegexSyntaxException
makeCharClass
private static Translator.CharClass makeCharClass(String categories,
String includes,
String excludeRanges)
parseEsc
private Translator.CharClass parseEsc()
throws RegexSyntaxException
- Throws:
RegexSyntaxException
parseProp
private Translator.CharClass parseProp()
throws RegexSyntaxException
- Throws:
RegexSyntaxException
isBlock
private static boolean isBlock(String name)
isAsciiAlnum
private static boolean isAsciiAlnum(char c)
expect
private void expect(char c)
throws RegexSyntaxException
- Throws:
RegexSyntaxException
parseCharClassExpr
private Translator.CharClass parseCharClassExpr()
throws RegexSyntaxException
- Throws:
RegexSyntaxException
parseCharClassEscOrXmlChar
private Translator.CharClass parseCharClassEscOrXmlChar()
throws RegexSyntaxException
- Throws:
RegexSyntaxException
makeException
private RegexSyntaxException makeException(String key)
makeException
private RegexSyntaxException makeException(String key,
String arg)
isJavaMetaChar
private static boolean isJavaMetaChar(char c)
getCategoryCharClass
private static Translator.CharClass getCategoryCharClass(int ci)
getSubCategoryCharClass
private static Translator.CharClass getSubCategoryCharClass(int sci)
computeCategoryCharClass
private static Translator.CharClass computeCategoryCharClass(char code)
computeSubCategoryCharClass
private static Translator.CharClass computeSubCategoryCharClass(String name)
makeCharClass
private static Translator.CharClass makeCharClass(String members)
main
public static void main(String[] args)
throws RegexSyntaxException
- Throws:
RegexSyntaxException