Package org.jparsec
Class ParseContext
- java.lang.Object
-
- org.jparsec.ParseContext
-
- Direct Known Subclasses:
ParserState
,ScannerState
abstract class ParseContext extends java.lang.Object
Represents the context state during parsing.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
ParseContext.ErrorType
(package private) static interface
ParseContext.ParserTrace
Allows tracing of parsing progress during error condition, to ease debugging.
-
Field Summary
Fields Modifier and Type Field Description (package private) int
at
The current position of the input.private int
currentErrorAt
private int
currentErrorIndex
private TreeNode
currentErrorNode
private ParseContext.ErrorType
currentErrorType
private java.lang.String
encountered
(package private) static java.lang.String
EOF
private java.util.ArrayList<java.lang.Object>
errors
private boolean
errorSuppressed
(package private) SourceLocator
locator
(package private) java.lang.String
module
private ParseContext.ErrorType
overrideErrorType
(package private) java.lang.Object
result
The current parse result.(package private) java.lang.CharSequence
source
(package private) int
step
The current logical step.private ParseContext.ParserTrace
trace
-
Constructor Summary
Constructors Constructor Description ParseContext(java.lang.CharSequence source, int at, java.lang.String module, SourceLocator locator)
ParseContext(java.lang.CharSequence source, java.lang.Object ret, int at, java.lang.String module, SourceLocator locator)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description (package private) boolean
applyAsDelimiter(Parser<?> parser)
Runsparser
with error recording suppressed.(package private) boolean
applyNested(Parser<?> parser, ParseContext nestedState)
(package private) boolean
applyNewNode(Parser<?> parser, java.lang.String name)
Appliesparser
as a new tree node withname
, and if fails, reports "expecting $name".(package private) ParseTree
buildErrorParseTree()
(package private) ParseTree
buildParseTree()
(package private) abstract java.lang.CharSequence
characters()
Reads the characters as input.private void
copyErrorFrom(ParseContext that)
(package private) void
enableTrace(java.lang.String rootName)
Enables parse tree tracing withrootName
as the name of the root node.(package private) int
errorIndex()
The physical index of the current most relevant error,0
if none.(package private) void
expected(java.lang.Object what)
(package private) void
fail(java.lang.String message)
private java.lang.String
getEncountered()
(package private) int
getIndex()
Returns the current index in the original source.(package private) abstract java.lang.String
getInputName(int pos)
Returns the string representation of the current input (character or token).(package private) abstract Token
getToken()
Returns the current token.(package private) ParseContext.ParserTrace
getTrace()
(package private) abstract boolean
isEof()
(package private) void
missing(java.lang.Object what)
(package private) void
next()
(package private) void
next(int n)
(package private) abstract char
peekChar()
Peeks the current character.(package private) void
raise(ParseContext.ErrorType type, java.lang.Object subject)
(package private) ParseErrorDetails
renderError()
Only called when rendering the error inParserException
.(package private) boolean
repeat(Parser<?> parser, int n)
(package private) <T> boolean
repeat(Parser<? extends T> parser, int n, java.util.Collection<T> collection)
(package private) void
set(int step, int at, java.lang.Object ret)
(package private) void
setAt(int step, int at)
private void
setErrorState(int errorAt, int errorIndex, ParseContext.ErrorType errorType)
private void
setErrorState(int errorAt, int errorIndex, ParseContext.ErrorType errorType, java.util.List<java.lang.Object> errors)
(package private) boolean
stillThere(int wasAt, int originalStep)
(package private) abstract int
toIndex(int pos)
Translates the logical position to physical index in the original source.java.lang.String
toString()
(package private) void
unexpected(java.lang.String what)
(package private) boolean
withErrorSuppressed(Parser<?> parser)
Runsparser
with error recording suppressed.
-
-
-
Field Detail
-
EOF
static final java.lang.String EOF
- See Also:
- Constant Field Values
-
module
final java.lang.String module
-
source
final java.lang.CharSequence source
-
locator
final SourceLocator locator
-
at
int at
The current position of the input. Points to the token array for token level.
-
step
int step
The current logical step.
-
result
java.lang.Object result
The current parse result.
-
trace
private ParseContext.ParserTrace trace
-
currentErrorType
private ParseContext.ErrorType currentErrorType
-
currentErrorAt
private int currentErrorAt
-
currentErrorIndex
private int currentErrorIndex
-
errors
private final java.util.ArrayList<java.lang.Object> errors
-
encountered
private java.lang.String encountered
-
currentErrorNode
private TreeNode currentErrorNode
-
errorSuppressed
private boolean errorSuppressed
-
overrideErrorType
private ParseContext.ErrorType overrideErrorType
-
-
Constructor Detail
-
ParseContext
ParseContext(java.lang.CharSequence source, int at, java.lang.String module, SourceLocator locator)
-
ParseContext
ParseContext(java.lang.CharSequence source, java.lang.Object ret, int at, java.lang.String module, SourceLocator locator)
-
-
Method Detail
-
withErrorSuppressed
final boolean withErrorSuppressed(Parser<?> parser)
Runsparser
with error recording suppressed.
-
applyAsDelimiter
final boolean applyAsDelimiter(Parser<?> parser)
Runsparser
with error recording suppressed.
-
applyNewNode
final boolean applyNewNode(Parser<?> parser, java.lang.String name)
Appliesparser
as a new tree node withname
, and if fails, reports "expecting $name".
-
applyNested
final boolean applyNested(Parser<?> parser, ParseContext nestedState)
-
repeat
final boolean repeat(Parser<?> parser, int n)
-
repeat
final <T> boolean repeat(Parser<? extends T> parser, int n, java.util.Collection<T> collection)
-
getTrace
final ParseContext.ParserTrace getTrace()
-
errorIndex
final int errorIndex()
The physical index of the current most relevant error,0
if none.
-
buildParseTree
final ParseTree buildParseTree()
-
buildErrorParseTree
final ParseTree buildErrorParseTree()
-
renderError
final ParseErrorDetails renderError()
Only called when rendering the error inParserException
.
-
getEncountered
private java.lang.String getEncountered()
-
getInputName
abstract java.lang.String getInputName(int pos)
Returns the string representation of the current input (character or token).
-
isEof
abstract boolean isEof()
-
getIndex
final int getIndex()
Returns the current index in the original source.
-
getToken
abstract Token getToken()
Returns the current token. Only applicable to token level parser.
-
peekChar
abstract char peekChar()
Peeks the current character. Only applicable to character level parser.
-
toIndex
abstract int toIndex(int pos)
Translates the logical position to physical index in the original source.
-
raise
final void raise(ParseContext.ErrorType type, java.lang.Object subject)
-
fail
final void fail(java.lang.String message)
-
missing
final void missing(java.lang.Object what)
-
expected
final void expected(java.lang.Object what)
-
unexpected
final void unexpected(java.lang.String what)
-
stillThere
final boolean stillThere(int wasAt, int originalStep)
-
set
final void set(int step, int at, java.lang.Object ret)
-
setAt
final void setAt(int step, int at)
-
next
final void next()
-
next
final void next(int n)
-
enableTrace
final void enableTrace(java.lang.String rootName)
Enables parse tree tracing withrootName
as the name of the root node.
-
setErrorState
private void setErrorState(int errorAt, int errorIndex, ParseContext.ErrorType errorType, java.util.List<java.lang.Object> errors)
-
setErrorState
private void setErrorState(int errorAt, int errorIndex, ParseContext.ErrorType errorType)
-
copyErrorFrom
private void copyErrorFrom(ParseContext that)
-
characters
abstract java.lang.CharSequence characters()
Reads the characters as input. Only applicable to character level parsers.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-