Package org.nineml.coffeegrinder.trees
Class StringTreeBuilder
- java.lang.Object
-
- org.nineml.coffeegrinder.trees.StringTreeBuilder
-
- All Implemented Interfaces:
TreeBuilder
public class StringTreeBuilder extends java.lang.Object implements TreeBuilder
A tree builder that returns the serialized tree as a string.
-
-
Constructor Summary
Constructors Constructor Description StringTreeBuilder()Create a string tree builder without debugging attributes.StringTreeBuilder(boolean debugAttributes)Create a string tree builder.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidendAmbiguity(int id, int leftExtent, int rightExtent)Called at the end of an ambiguity that is not marked by a single nonterminal.voidendNonterminal(NonterminalSymbol symbol, java.util.Map<java.lang.String,java.lang.String> attributes, int leftExtent, int rightExtent)Called when a nonterminal ends.voidendTree(boolean ambiguous, boolean absolutelyAmbiguous, boolean infinitelyAmbiguous, boolean sameSerializations)Called last, when construction finishes.java.lang.StringgetTree()Get the tree.voidstartAmbiguity(int id, int leftExtent, int rightExtent)Called at the start of an ambiguity that is not marked by a single nonterminal.voidstartNonterminal(NonterminalSymbol symbol, java.util.Map<java.lang.String,java.lang.String> attributes, int leftExtent, int rightExtent)Called when a new nonterminal begins.voidstartTree()Called first, when construction begins.voidtoken(Token token, java.util.Map<java.lang.String,java.lang.String> attributes, int leftExtent, int rightExtent)Called when a terminal occurs.
-
-
-
Method Detail
-
getTree
public java.lang.String getTree()
Get the tree.- Returns:
- the tree.
-
startTree
public void startTree()
Description copied from interface:TreeBuilderCalled first, when construction begins.- Specified by:
startTreein interfaceTreeBuilder
-
endTree
public void endTree(boolean ambiguous, boolean absolutelyAmbiguous, boolean infinitelyAmbiguous, boolean sameSerializations)Description copied from interface:TreeBuilderCalled last, when construction finishes.- Specified by:
endTreein interfaceTreeBuilder- Parameters:
ambiguous- was the parse ambiguous?absolutelyAmbiguous- is the graph ambiguous?infinitelyAmbiguous- is the graph infinitely ambiguous?sameSerializations- do all the trees have the same serialization?
-
startNonterminal
public void startNonterminal(NonterminalSymbol symbol, java.util.Map<java.lang.String,java.lang.String> attributes, int leftExtent, int rightExtent)
Description copied from interface:TreeBuilderCalled when a new nonterminal begins.- Specified by:
startNonterminalin interfaceTreeBuilder- 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, java.util.Map<java.lang.String,java.lang.String> attributes, int leftExtent, int rightExtent)
Description copied from interface:TreeBuilderCalled when a nonterminal ends.- Specified by:
endNonterminalin interfaceTreeBuilder- 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, java.util.Map<java.lang.String,java.lang.String> attributes, int leftExtent, int rightExtent)
Description copied from interface:TreeBuilderCalled when a terminal occurs.- Specified by:
tokenin interfaceTreeBuilder- 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:TreeBuilderCalled 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:
startAmbiguityin interfaceTreeBuilder- 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:TreeBuilderCalled at the end of an ambiguity that is not marked by a single nonterminal.- Specified by:
endAmbiguityin interfaceTreeBuilder- Parameters:
id- The ambiguity id.leftExtent- The starting position in the input.rightExtent- The ending position in the input.
-
-