Package org.htmlunit.javascript.regexp
Class RegExpJsToJavaConverter
- java.lang.Object
-
- org.htmlunit.javascript.regexp.RegExpJsToJavaConverter
-
public class RegExpJsToJavaConverter extends java.lang.Object
Translates JavaScript RegExp to Java RegExp.
// [...\b...] to [...\cH...] // [...[...] to [...\[...] // [^\\1] to . // back reference in character classes are simply ignored by browsers [...ab\5cd...] to [...abcd...] // characters escaped without need should be "un-escaped" Escape curly braces that are not used in an expression like "{n}", "{n,}" or "{n,m}" (where n and m are positive integers).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
RegExpJsToJavaConverter.Subexpresion
private static class
RegExpJsToJavaConverter.Tape
Helper to encapsulate the transformations.
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
DIGITS
private boolean
insideCharClass_
private boolean
insideRepetition_
private java.util.Deque<RegExpJsToJavaConverter.Subexpresion>
parsingSubexpressions_
private java.util.List<RegExpJsToJavaConverter.Subexpresion>
subexpressions_
private RegExpJsToJavaConverter.Tape
tape_
private static java.util.HashMap<java.lang.String,java.lang.String>
UNICODE_ESCAPES
-
Constructor Summary
Constructors Constructor Description RegExpJsToJavaConverter()
Initiate the FSM.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
convert(java.lang.String input)
Run the state machine on a given input string.private boolean
handleBackReferenceOrOctal(int aFirstChar)
private void
processCharClassEnd()
private void
processCharClassStart()
private void
processEscapeSequence()
private void
processRepetitionEnd()
private void
processRepetitionStart()
private void
processSubExpressionEnd()
private void
processSubExpressionStart()
-
-
-
Field Detail
-
DIGITS
private static final java.lang.String DIGITS
- See Also:
- Constant Field Values
-
UNICODE_ESCAPES
private static final java.util.HashMap<java.lang.String,java.lang.String> UNICODE_ESCAPES
-
tape_
private RegExpJsToJavaConverter.Tape tape_
-
insideCharClass_
private boolean insideCharClass_
-
insideRepetition_
private boolean insideRepetition_
-
parsingSubexpressions_
private java.util.Deque<RegExpJsToJavaConverter.Subexpresion> parsingSubexpressions_
-
subexpressions_
private java.util.List<RegExpJsToJavaConverter.Subexpresion> subexpressions_
-
-
Method Detail
-
convert
public java.lang.String convert(java.lang.String input)
Run the state machine on a given input string.- Parameters:
input
- the js regexp to process- Returns:
- a valid java regex pattern
-
processCharClassStart
private void processCharClassStart()
-
processCharClassEnd
private void processCharClassEnd()
-
processRepetitionStart
private void processRepetitionStart()
-
processRepetitionEnd
private void processRepetitionEnd()
-
processSubExpressionStart
private void processSubExpressionStart()
-
processSubExpressionEnd
private void processSubExpressionEnd()
-
processEscapeSequence
private void processEscapeSequence()
-
handleBackReferenceOrOctal
private boolean handleBackReferenceOrOctal(int aFirstChar)
-
-