Package org.htmlunit.javascript.regexp
Class RegExpJsToJavaConverter
- java.lang.Object
-
- org.htmlunit.javascript.regexp.RegExpJsToJavaConverter
-
public class RegExpJsToJavaConverter extends java.lang.ObjectTranslates 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 classRegExpJsToJavaConverter.Subexpresionprivate static classRegExpJsToJavaConverter.TapeHelper to encapsulate the transformations.
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.StringDIGITSprivate booleaninsideCharClass_private booleaninsideRepetition_private java.util.Deque<RegExpJsToJavaConverter.Subexpresion>parsingSubexpressions_private java.util.List<RegExpJsToJavaConverter.Subexpresion>subexpressions_private RegExpJsToJavaConverter.Tapetape_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.Stringconvert(java.lang.String input)Run the state machine on a given input string.private booleanhandleBackReferenceOrOctal(int aFirstChar)private voidprocessCharClassEnd()private voidprocessCharClassStart()private voidprocessEscapeSequence()private voidprocessRepetitionEnd()private voidprocessRepetitionStart()private voidprocessSubExpressionEnd()private voidprocessSubExpressionStart()
-
-
-
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)
-
-