Class PrintStreamTreeBuilder

java.lang.Object
org.nineml.coffeegrinder.trees.PrintStreamTreeBuilder
All Implemented Interfaces:
TreeBuilder
Direct Known Subclasses:
StdoutTreeBuilder

public class PrintStreamTreeBuilder extends Object implements TreeBuilder
A tree builder that sends serialized results to a print stream.
  • Constructor Details

    • PrintStreamTreeBuilder

      public PrintStreamTreeBuilder(PrintStream stream)
    • PrintStreamTreeBuilder

      public PrintStreamTreeBuilder(PrintStream stream, boolean addTrailingNewline)
  • Method Details

    • startTree

      public void startTree()
      Description copied from interface: TreeBuilder
      Called first, when construction begins.
      Specified by:
      startTree in interface TreeBuilder
    • endTree

      public void endTree(boolean ambiguous, boolean absolutelyAmbiguous, boolean infinitelyAmbiguous)
      Description copied from interface: TreeBuilder
      Called last, when construction finishes.
      Specified by:
      endTree in interface TreeBuilder
      Parameters:
      ambiguous - was the parse ambiguous?
      absolutelyAmbiguous - is the graph ambiguous?
      infinitelyAmbiguous - is the graph infinitely ambiguous?
    • startNonterminal

      public void startNonterminal(NonterminalSymbol symbol, Map<String,String> attributes, int leftExtent, int rightExtent)
      Description copied from interface: TreeBuilder
      Called when a new nonterminal begins.
      Specified by:
      startNonterminal in interface TreeBuilder
      Parameters:
      symbol - The symbol.
      attributes - Its attributes.
      leftExtent - The starting position in the input.
      rightExtent - The ending position in the input.
    • endNonterminal

      public void endNonterminal(NonterminalSymbol symbol, Map<String,String> attributes, int leftExtent, int rightExtent)
      Description copied from interface: TreeBuilder
      Called when a nonterminal ends.
      Specified by:
      endNonterminal in interface TreeBuilder
      Parameters:
      symbol - The symbol.
      attributes - Its attributes.
      leftExtent - The starting position in the input.
      rightExtent - The ending position in the input.
    • token

      public void token(Token token, Map<String,String> attributes, int leftExtent, int rightExtent)
      Description copied from interface: TreeBuilder
      Called when a terminal occurs.
      Specified by:
      token in interface TreeBuilder
      Parameters:
      token - The terminal token.
      attributes - Its attributes.
      leftExtent - The starting position in the input.
      rightExtent - The ending position in the input.
    • startAmbiguity

      public void startAmbiguity(int id, int leftExtent, int rightExtent)
      Description copied from interface: TreeBuilder
      Called at the start of an ambiguity that is not marked by a single nonterminal.

      The ambiguity id will distinguish this ambiguity from any other ambiguity. The numbers are not sequential or guaranteed stable across parses.

      Specified by:
      startAmbiguity in interface TreeBuilder
      Parameters:
      id - The ambiguity id.
      leftExtent - The starting position in the input.
      rightExtent - The ending position in the input.
    • endAmbiguity

      public void endAmbiguity(int id, int leftExtent, int rightExtent)
      Description copied from interface: TreeBuilder
      Called at the end of an ambiguity that is not marked by a single nonterminal.
      Specified by:
      endAmbiguity in interface TreeBuilder
      Parameters:
      id - The ambiguity id.
      leftExtent - The starting position in the input.
      rightExtent - The ending position in the input.