FILES USED IN THIS PROJECT

CurryDiagram.java

This is the main applet class. It displays the syntax diagrams for a given language.

GrammarConverter.java

This class creates file Grammar.java. It constructs a file containing Java class definitions that instantiates a Diagram for each diagram encountered in the input file.

Grammar.java

This file is created by GrammarConverter.java. The Grammar class creates Diagrams in its initialisation routine and adds the diagram created to the vector 'diagramList' for easy access.

gr.txt

Human readable representations of diagrams for a target language contained in ASCII format file.

Diagram.java

This class is the base class for all Diagrams.

EmptyDiagram.java

This class draws a line to specify an empty diagram.

Connector.java

This class creates a simple connector/line between two diagrams.

IfConnector.java

This class creates the connectors between alternative branches .

Xdiagram.java

This class helps to extend a diagram to its right whenever new components are added.

LoopConnector.java

This class draws the connector for repetitive structures.

LoopDiagram.java

This class helps create the looping structures .

NonTerminalDiagram.java

This class draws a rectangular box for a nonterminal symbol, using the size of the string to determine the size of the diagram.

TerminalDiagram.java

This class draws a circular rectangle for a terminal using the size of the string to determine the size of the diagram.

SequenceDiagram.java

This class helps create a sequence of diagrams to represent one single production of a grammar.

SequentialLayout.java

This is a layout manager that helps place components horizontally in the order in which they are added so that all diagrams are lined correctly.

VerticalLayout.java

This class places the diagrams in a container so that they are arranged vertically.

Regular.java

This class draws a regular expression on the Panel dictating fontsize size, number of lines for display and number of characters to be displayed per line etc.

Class MainPanel

This subclass of Panel sets up all the syntax diagrams for the display. This responds to all the mouse events other than closing of the frame and the program. This class is added in order to run the CurryDiagram both as an application and as an applet.

Class CurryFrame

This subclass of Frame is defined to add the MainPanel (GUI) so that it can pulled up as an application. This class handles events like closing o fthe frame and the program.