Class 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 Details

    • 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 Details

    • 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<Tuple2<Context<?>, 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<Tuple2<Context<?>, Boolean>>.
      Returns:
      this instance
    • getFilter

      public Predicate<Tuple2<Context<?>,Boolean>> getFilter()
    • withLog

      public TracingParseRunner<V> withLog(Sink<String> log)
      Attaches the given log to this TracingParseRunner instance.
      Parameters:
      log - the log to use
      Returns:
      this instance
    • getLog

      public Sink<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