org.parboiled.parserunners
Class TracingParseRunner<V>

java.lang.Object
  extended by org.parboiled.parserunners.AbstractParseRunner<V>
      extended by org.parboiled.parserunners.ReportingParseRunner<V>
          extended by org.parboiled.parserunners.TracingParseRunner<V>
All Implemented Interfaces:
MatchHandler, ParseRunner<V>

public class TracingParseRunner<V>
extends ReportingParseRunner<V>
implements MatchHandler

A ParseRunner implementation used for debugging purposes. It exhibits the same behavior as the ReportingParseRunner but collects debugging information as to which rules did match and which didn't.


Constructor Summary
TracingParseRunner(Rule rule)
          Creates a new TracingParseRunner instance without filter and a console log for the given rule.
 
Method Summary
 Predicate<Tuple2<Context<?>,java.lang.Boolean>> getFilter()
           
 Sink<java.lang.String> getLog()
           
 boolean match(MatcherContext<?> context)
          Runs the given MatcherContext.
 TracingParseRunner<V> withFilter(Predicate<?> filter)
          Attaches the given filter to this TracingParseRunner instance.
 TracingParseRunner<V> withLog(Sink<java.lang.String> log)
          Attaches the given log to this TracingParseRunner instance.
 
Methods inherited from class org.parboiled.parserunners.ReportingParseRunner
run, run
 
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

TracingParseRunner

public TracingParseRunner(Rule rule)
Creates a new TracingParseRunner instance without filter and a console log for the given rule.

Parameters:
rule - the parser rule
Method Detail

withFilter

public TracingParseRunner<V> withFilter(Predicate<?> filter)
Attaches the given filter to this TracingParseRunner instance. The given filter is used to select the matchers to print tracing statements for. NOTE: The given filter must be of type Predicate, Boolean>>. The reason this type is not directly specified in the constructors signature is that this would make predicate expressions using the Predicates operations and the predefined predicate constructors in Filters much more cumbersome to write (due to Java limited type parameters inference logic you would have to explicitly state the type parameters in many places).

Parameters:
filter - the matcher filter selecting the matchers to print tracing statements for. Must be of type Predicate, Boolean>>.
Returns:
this instance

getFilter

public Predicate<Tuple2<Context<?>,java.lang.Boolean>> getFilter()

withLog

public TracingParseRunner<V> withLog(Sink<java.lang.String> log)
Attaches the given log to this TracingParseRunner instance.

Parameters:
log - the log to use
Returns:
this instance

getLog

public Sink<java.lang.String> getLog()

match

public boolean match(MatcherContext<?> context)
Description copied from interface: MatchHandler
Runs the given MatcherContext.

Specified by:
match in interface MatchHandler
Parameters:
context - the MatcherContext
Returns:
true if matched