Textual Class Dictionary
UseCase2
// COM1205 Class Dictionary - DemDraw Application
//
// Modification History:
//
// 11/16/95 @ 10:00 by Ron
// added Coodinates_List and Term
// renamed vn_position to vn_offset
// renamed e_position to en_offset
//
// 11/21/95 @ 9:32 pm by Tom Kneeland (tomk)
// Documented changes made for Use Case 2. These Changes include
// Changed Coordinates to have a DemString datamember, as opposed to
// two DemNumbers. It was determined that the C++ code would never have
// to change the values stored in this object, therefore we could store
// the exact string that tcl needed to draw verticies and labels. This
// change made all interaction to tcl easier.
//
// Also added a Coordinates object to support lines with
// bends. tcl will generate the actual list of points to be stored in
// this string. This datamember is optional, since lines can be strait.
//
// Made a vertex position, and a vertex name position optional. This
// allowed the demeter-input file to be modified, so that whole verticies
// did not have to be specified when declaring edges.
Graph = "Class Dictionary Graph"
< vertices > Vertex_List
< edges > Edge_List .
Edge : AltEdge
| ConstEdge
*common*
"from" < from > Vertex
[ "Bendpoints" < middlepoints > Coordinates ]
"to" < to > Vertex .
Edge_List ~ "Edge" "List" Edge { Edge } .
Vertex_List ~ "Vertex" "List" Vertex { Vertex } .
Vertex : AltVertex
| ConstVertex
| Term
*common*
< vertexname > VertexName
[ "vertex_pos" < position > Coordinates ] .
AltEdge = "AltEdge" .
ConstEdge = "ConstEdge"
< edgename > EdgeName .
ConstVertex = "ConstVertex" .
AltVertex = "AltVertex" .
Coordinates = DemString.
VertexName = < name > DemIdent
[ "name_pos" < vn_offset > Coordinates ] .
EdgeName = < name > DemIdent
"name_pos" < en_offset > Coordinates .
Term = "TermVertex" .