Building Parsers with Java

Package sjm.examples.pretty

Class Summary
ComponentNode This class tops a hierarchy that implements the Composite pattern.
CompositeNode This class provides a composite node that can contain other nodes.
FenceAssembler Places a given "fence" or marker object on an assembly's stack.
PrettyAlternationAssembler Replace a ComponentNode object on the stack with a new composite that holds the popped node as its only child.
PrettyEmptyAssembler Push a TerminalNode that contains the word "empty" on the assembly's stack.
PrettyParser This class accepts a Parser object in its constructor.
PrettyRepetitionAssembler Replace the nodes above a given "fence" object with a new composite that holds the popped nodes as its children.
PrettySequenceAssembler Replace a given number of nodes on the stack with a new composite that holds the popped nodes as its children.
PrettyTerminalAssembler Replace a Token object on the stack with a TerminalNode that holds the token's value.
PrettyVisitor An object of this class visits the parsers in a parser composite and sets each subparser's assembler to be one of the "pretty" assemblers in this package.
ShowDangle Show that the Dangle.statement() parser is ambiguous.
ShowPrettyAlternations Show how the pretty printer displays a deep match of alternations.
ShowPrettyRepetitions Show that the pretty printer will find all the parses that result from applying the parser Word* Word* against a string with four words.
TerminalNode  
 


by Steve Metsker