|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.parboiled.parserunners.AbstractParseRunner<V>
org.parboiled.parserunners.RecoveringParseRunner<V>
public class RecoveringParseRunner<V>
A ParseRunner implementation that is able to recover from InvalidInputErrors in the input and therefore
report more than just the first InvalidInputError if the input does not conform to the rule grammar.
Error recovery is done by attempting to either delete an error character, insert a potentially missing character
or do both at once (which is equivalent to a one char replace) whereby this implementation is able to determine
itself which of these options is the best strategy.
If the parse error cannot be overcome by either deleting, inserting or replacing one character a resynchronization
rule is determined and the parsing process resynchronized, so that parsing can still continue.
In this way the RecoveringParseRunner is able to completely parse all input texts (This ParseRunner never returns
an unmatched ParsingResult).
If the input is error free this ParseRunner implementation will only perform one parsing run, with the same
speed as the BasicParseRunner. However, if there are InvalidInputErrors in the input potentially
many more runs are performed to properly report all errors and test the various recovery strategies.
| Nested Class Summary | |
|---|---|
static class |
RecoveringParseRunner.TimeoutException
|
| Constructor Summary | |
|---|---|
RecoveringParseRunner(Rule rule)
Creates a new RecoveringParseRunner instance for the given rule. |
|
RecoveringParseRunner(Rule rule,
long timeout)
Creates a new RecoveringParseRunner instance for the given rule. |
|
| Method Summary | ||
|---|---|---|
ParsingResult<V> |
run(InputBuffer inputBuffer)
Performs the actual parse and creates a corresponding ParsingResult instance. |
|
static
|
run(Rule rule,
java.lang.String input)
Deprecated. As of 0.11.0 you should use the "regular" constructor and one of the "run" methods rather than this static method. This method will be removed in one of the coming releases. |
|
| Methods inherited from class org.parboiled.parserunners.AbstractParseRunner |
|---|
getParseErrors, getRootMatcher, getValueStack, run, run, withParseErrors, withValueStack |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public RecoveringParseRunner(Rule rule)
rule - the parser rule
public RecoveringParseRunner(Rule rule,
long timeout)
rule - the parser ruletimeout - the timeout value in milliseconds| Method Detail |
|---|
@Deprecated
public static <V> ParsingResult<V> run(Rule rule,
java.lang.String input)
AbstractParseRunner.run(String) method invocation.
rule - the parser rule to runinput - the input text to run on
public ParsingResult<V> run(InputBuffer inputBuffer)
ParseRunner
inputBuffer - the inputBuffer to use
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||