java.lang.Object
org.json.simple.Yylex
Field Summary
Modifier and TypeFieldDescriptionprivate StringBuilderBuilder collecting the text of the current token.static final intLexical state entered once a string literal's opening quote is matchedprivate intthe number of characters up to the start of the matched textprivate intThe number of characters from the last newline up to the start of the matched textstatic final intThis character denotes the end of filestatic final intlexical statesprivate intnumber of newlines encountered up to the start of the matched textprivate static final int[]Translates DFA states to action switch labels.private static final StringPacked table of the scanner actions.private static final int[]ZZ_ATTRIBUTE[aState] contains the attributes of stateaStateprivate static final StringPacked table of the state attributes.private static final intinitial size of the lookahead bufferprivate static final char[]Translates characters to character classesprivate static final StringTranslates characters to character classesprivate static final String[]The message for each scanner error code.private static final int[]ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l at the beginning of a line l is of the form l = 2*k, k a non negative integerprivate static final intError code for input matching no rule.private static final intError code for a pushback larger than the buffer.private static final int[]Translates a state to a row index in the transition tableprivate static final StringPacked table of the state row offsets.private static final int[]The transition table of the DFAprivate static final intError code for an unknown scanner error.private booleanzzAtBOL == true <=> the scanner is currently at the beginning of a lineprivate booleanzzAtEOF == true <=> the scanner is at the EOFprivate char[]This buffer contains the current text to be matched and is the source of theyytext()stringprivate intthe current text position in the bufferprivate intendRead marks the last character in the buffer, that has been read from inputprivate booleandenotes if the user-EOF-code has already been executedprivate intthe current lexical stateprivate intthe textposition at the last accepting stateprivate Readerthe input deviceprivate intstartRead marks the beginning of the yytext() string in the bufferprivate intthe current state of the DFAConstructor Summary
ConstructorsConstructorDescriptionYylex(InputStream in) Creates a new scanner.Creates a new scanner There is also a java.io.InputStream version of this constructor.Method Summary
Modifier and TypeMethodDescription(package private) intGet the position of the next character to be read.final voidyybegin(int newState) Enters a new lexical statefinal charyycharat(int pos) Returns the character at positionposfrom the matched text.final voidyyclose()Closes the input stream.final intyylength()Returns the length of the matched text region.yylex()Resumes scanning until the next regular expression is matched, the end of input is encountered or an I/O-Error occurs.voidyypushback(int number) Pushes the specified amount of characters back into the input stream.final voidResets the scanner to read from a new input stream.final intyystate()Returns the current lexical state.final Stringyytext()Returns the text matched by the current regular expression.private booleanzzRefill()Refills the input buffer.private voidzzScanError(int errorCode) Reports an error that occurred while scanning.private static int[]Unpacks the action table.private static intzzUnpackAction(String packed, int offset, int[] result) Unpacks one range of the packed action table.private static int[]Unpacks the attribute table.private static intzzUnpackAttribute(String packed, int offset, int[] result) Unpacks one range of the packed attribute table.private static char[]zzUnpackCMap(String packed) Unpacks the compressed character translation table.private static int[]Unpacks the row map.private static intzzUnpackRowMap(String packed, int offset, int[] result) Unpacks one range of the packed row map.
Field Details
YYEOF
ZZ_BUFFERSIZE
private static final int ZZ_BUFFERSIZEinitial size of the lookahead buffer- See Also:
YYINITIAL
STRING_BEGIN
public static final int STRING_BEGINLexical state entered once a string literal's opening quote is matched- See Also:
ZZ_LEXSTATE
private static final int[] ZZ_LEXSTATEZZ_LEXSTATE[l] is the state in the DFA for the lexical state l ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l at the beginning of a line l is of the form l = 2*k, k a non negative integerZZ_CMAP_PACKED
Translates characters to character classes- See Also:
ZZ_CMAP
private static final char[] ZZ_CMAPTranslates characters to character classesZZ_ACTION
private static final int[] ZZ_ACTIONTranslates DFA states to action switch labels.ZZ_ACTION_PACKED_0
Packed table of the scanner actions.- See Also:
ZZ_ROWMAP
private static final int[] ZZ_ROWMAPTranslates a state to a row index in the transition tableZZ_ROWMAP_PACKED_0
Packed table of the state row offsets.- See Also:
ZZ_TRANS
private static final int[] ZZ_TRANSThe transition table of the DFAZZ_UNKNOWN_ERROR
private static final int ZZ_UNKNOWN_ERRORError code for an unknown scanner error.- See Also:
ZZ_NO_MATCH
private static final int ZZ_NO_MATCHError code for input matching no rule.- See Also:
ZZ_PUSHBACK_2BIG
private static final int ZZ_PUSHBACK_2BIGError code for a pushback larger than the buffer.- See Also:
ZZ_ERROR_MSG
The message for each scanner error code.ZZ_ATTRIBUTE
private static final int[] ZZ_ATTRIBUTEZZ_ATTRIBUTE[aState] contains the attributes of stateaStateZZ_ATTRIBUTE_PACKED_0
Packed table of the state attributes.- See Also:
zzReader
the input devicezzState
private int zzStatethe current state of the DFAzzLexicalState
private int zzLexicalStatethe current lexical statezzBuffer
private char[] zzBufferThis buffer contains the current text to be matched and is the source of theyytext()stringzzMarkedPos
private int zzMarkedPosthe textposition at the last accepting statezzCurrentPos
private int zzCurrentPosthe current text position in the bufferzzStartRead
private int zzStartReadstartRead marks the beginning of the yytext() string in the bufferzzEndRead
private int zzEndReadendRead marks the last character in the buffer, that has been read from inputyyline
private int yylinenumber of newlines encountered up to the start of the matched textyychar
private int yycharthe number of characters up to the start of the matched textyycolumn
private int yycolumnThe number of characters from the last newline up to the start of the matched textzzAtBOL
private boolean zzAtBOLzzAtBOL == true <=> the scanner is currently at the beginning of a linezzAtEOF
private boolean zzAtEOFzzAtEOF == true <=> the scanner is at the EOFzzEOFDone
private boolean zzEOFDonedenotes if the user-EOF-code has already been executedsb
Builder collecting the text of the current token.
Constructor Details
Yylex
Yylex(Reader in) Creates a new scanner There is also a java.io.InputStream version of this constructor.- Parameters:
in- the java.io.Reader to read input from.
Yylex
Yylex(InputStream in) Creates a new scanner. There is also java.io.Reader version of this constructor.- Parameters:
in- the java.io.Inputstream to read input from.
Method Details
zzUnpackAction
private static int[] zzUnpackAction()Unpacks the action table.- Returns:
- the unpacked actions
zzUnpackAction
Unpacks one range of the packed action table.- Parameters:
packed- the packed tableoffset- where unpacking startsresult- the array to fill- Returns:
- the next free position in the array
zzUnpackRowMap
private static int[] zzUnpackRowMap()Unpacks the row map.- Returns:
- the unpacked row map
zzUnpackRowMap
Unpacks one range of the packed row map.- Parameters:
packed- the packed tableoffset- where unpacking startsresult- the array to fill- Returns:
- the next free position in the array
zzUnpackAttribute
private static int[] zzUnpackAttribute()Unpacks the attribute table.- Returns:
- the unpacked attributes
zzUnpackAttribute
Unpacks one range of the packed attribute table.- Parameters:
packed- the packed tableoffset- where unpacking startsresult- the array to fill- Returns:
- the next free position in the array
getPosition
int getPosition()Get the position of the next character to be read.- Returns:
- current character position
zzUnpackCMap
Unpacks the compressed character translation table.- Parameters:
packed- the packed character translation table- Returns:
- the unpacked character translation table
zzRefill
Refills the input buffer.- Returns:
false, iff there was new input.- Throws:
IOException- if any I/O-Error occurs
yyclose
Closes the input stream.- Throws:
IOException- if the underlying reader cannot be closed
yyreset
Resets the scanner to read from a new input stream. Does not close the old reader. All internal variables are reset, the old input stream cannot be reused (internal buffer is discarded and lost). Lexical state is set toZZ_INITIAL.- Parameters:
reader- the new input stream
yystate
public final int yystate()Returns the current lexical state.- Returns:
- the current lexical state, one of the ZZ_ or YY* constants that the generated rules switch on
yybegin
public final void yybegin(int newState) Enters a new lexical state- Parameters:
newState- the new lexical state
yytext
Returns the text matched by the current regular expression.- Returns:
- the text matched by the current regular expression
yycharat
public final char yycharat(int pos) Returns the character at positionposfrom the matched text. It is equivalent to yytext().charAt(pos), but faster- Parameters:
pos- the position of the character to fetch. A value from 0 toyylength()-1.- Returns:
- the character at position pos
yylength
public final int yylength()Returns the length of the matched text region.- Returns:
- the number of characters in the matched text region
zzScanError
private void zzScanError(int errorCode) Reports an error that occurred while scanning. In a wellformed scanner (no or only correct usage of yypushback(int) and a match-all fallback rule) this method will only be called with things that "Can't Possibly Happen". If this method is called, something is seriously wrong (e.g. a JFlex bug producing a faulty scanner etc.). Usual syntax/scanner level error handling should be done in error fallback rules.- Parameters:
errorCode- the code of the errormessage to display
yypushback
public void yypushback(int number) Pushes the specified amount of characters back into the input stream. They will be read again by then next call of the scanning method- Parameters:
number- the number of characters to be read again. This number must not be greater than yylength()!
yylex
Resumes scanning until the next regular expression is matched, the end of input is encountered or an I/O-Error occurs.- Returns:
- the next token
- Throws:
IOException- if any I/O-Error occursDeserializationException- if the token does not match any rule, i.e. the input is not valid JSON