/* bison parser specification of VCG version "1.00.0 19930401 (release)" */
/* grammar.pgs,v 3.13 1994/08/08 16:01:47 sander Exp $"; */
%token LEXWORD_ABOVE LEXWORD_ANCHORPOINTS LEXWORD_ANCHOR LEXWORD_AQUAMARINE
%token LEXWORD_AROUND LEXWORD_ARROWCOLOR LEXWORD_ARROWHEIGHT
%token LEXWORD_ARROWSTYLE LEXWORD_ARROWWIDTH LEXWORD_ARROWSIZE
%token LEXWORD_BARYCENTER LEXWORD_BARY LEXWORD_BEHIND LEXWORD_BELOW
%token LEXWORD_BLACK LEXWORD_BLUE LEXWORD_BORDERCOLOR LEXWORD_BORDERWIDTH
%token LEXWORD_BOTTOM_MARGIN LEXWORD_BOTTOM_TO_TOP LEXWORD_BOTTOM
%token LEXWORD_BOX LEXWORD_CENTER LEXWORD_CLASSNAME LEXWORD_CLASS
%token LEXWORD_CLUSTER LEXWORD_COLOR LEXWORD_CONSTRAINTS LEXWORD_CONSTRAINT
%token LEXWORD_CONTINUOUS LEXWORD_CROSSING_WEIGHT LEXWORD_CROSSING_OPT
%token LEXWORD_CYAN LEXWORD_DARKBLUE LEXWORD_DARKCYAN LEXWORD_DARKGREEN
%token LEXWORD_DARKGREY LEXWORD_DARKMAGENTA LEXWORD_DARKRED
%token LEXWORD_DARKYELLOW LEXWORD_DASHED LEXWORD_DIMENSION
%token LEXWORD_DIRTY_EDGE_LABELS LEXWORD_DISPLAY_EDGE_LABELS LEXWORD_DOTTED
%token LEXWORD_EDGE1 LEXWORD_EDGE2 LEXWORD_ELLIPSE LEXWORD_EQUAL_COLUMN
%token LEXWORD_EQUAL_POSITION LEXWORD_EQUAL_ROW LEXWORD_EQUAL LEXWORD_EVERY
%token LEXWORD_FINETUNING LEXWORD_FOLDEDGE LEXWORD_FOLDNODE LEXWORD_FOLDING
%token LEXWORD_FONTNAME LEXWORD_GOLD LEXWORD_GRAPH LEXWORD_GREATER
%token LEXWORD_GREEN LEXWORD_GREY LEXWORD_HEIGHT LEXWORD_HIGH_MARGIN
%token LEXWORD_HIGH LEXWORD_HIDDEN LEXWORD_HORDER LEXWORD_ICONFILE
%token LEXWORD_ICONHEIGHT LEXWORD_ICONSTYLE LEXWORD_ICONWIDTH
%token LEXWORD_INCLUDE LEXWORD_INFONAME LEXWORD_INFO1 LEXWORD_INFO2
%token LEXWORD_INFO3 LEXWORD_INPUTFUNCTION LEXWORD_INTERVAL
%token LEXWORD_INVISIBLE LEXWORD_IN_FONT LEXWORD_ISI LEXWORD_KHAKI
%token LEXWORD_LABEL LEXWORD_LATE_LABELS LEXWORD_LAYOUTALGORITHM
%token LEXWORD_LAYOUTFREQUENCY LEXWORD_LAYOUTPARAMETER
%token LEXWORD_LAYOUTDOWNFACTOR LEXWORD_LAYOUTUPFACTOR
%token LEXWORD_LAYOUTNEARFACTOR LEXWORD_LAYOUTSPLINEFACTOR
%token LEXWORD_LEFT_JUSTIFY LEXWORD_LEFT_MARGIN LEXWORD_LEFT_NEIGHBOR
%token LEXWORD_LEFT_TO_RIGHT LEXWORD_LEFT LEXWORD_LEVEL LEXWORD_VORDER
%token LEXWORD_LIGHTBLUE LEXWORD_LIGHTCYAN LEXWORD_LIGHTGREEN
%token LEXWORD_LIGHTGREY LEXWORD_LIGHTMAGENTA LEXWORD_LIGHTRED
%token LEXWORD_LIGHTYELLOW LEXWORD_LILAC LEXWORD_LIMIT LEXWORD_LINE
%token LEXWORD_LINESTYLE LEXWORD_LOC LEXWORD_LOWER_NEIGHBOR
%token LEXWORD_LOW_MARGIN LEXWORD_LOW LEXWORD_MAGENTA LEXWORD_MANUAL
%token LEXWORD_MAXDEPTHSLOW LEXWORD_MAXDEPTH LEXWORD_MAXDEGREE
%token LEXWORD_MAXINDEGREE LEXWORD_MAXOUTDEGREE LEXWORD_MEDIAN
%token LEXWORD_MINDEPTHSLOW LEXWORD_MINDEPTH LEXWORD_MINDEGREE
%token LEXWORD_MININDEGREE LEXWORD_MINOUTDEGREE LEXWORD_MINBACK
%token LEXWORD_NAME LEXWORD_NEAREDGE LEXWORD_NEIGHBORS LEXWORD_NEAREDGES
%token LEXWORD_NONEAREDGES LEXWORD_NODE1 LEXWORD_NODE2 LEXWORD_NODES
%token LEXWORD_NODE_ALIGN LEXWORD_NONE LEXWORD_NO LEXWORD_ORANGE
%token LEXWORD_ORCHID LEXWORD_ORIENTATION LEXWORD_OUTPUTFUNCTION
%token LEXWORD_PINK LEXWORD_PLANAR LEXWORD_PRIORITY LEXWORD_PURPLE
%token LEXWORD_RANGE LEXWORD_RED LEXWORD_RHOMB LEXWORD_RIGHT_JUSTIFY
%token LEXWORD_RIGHT_MARGIN LEXWORD_RIGHT_NEIGHBOR LEXWORD_RIGHT_TO_LEFT
%token LEXWORD_RIGHT LEXWORD_SCALING LEXWORD_SHAPE LEXWORD_SHRINK
%token LEXWORD_SIZE LEXWORD_SMALLER LEXWORD_SOLID LEXWORD_SOURCENAME
%token LEXWORD_SPLINES LEXWORD_SPLINEFACTOR LEXWORD_SPREADLEVEL
%token LEXWORD_STATUS LEXWORD_STRETCH LEXWORD_TARGETNAME LEXWORD_TEXTCOLOR
%token LEXWORD_TEXTMODE LEXWORD_THICKNESS LEXWORD_TITLE LEXWORD_TOPSORT
%token LEXWORD_TOP_MARGIN LEXWORD_TOP_TO_BOTTOM LEXWORD_TOP LEXWORD_TREE
%token LEXWORD_TREEFACTOR LEXWORD_TRIANGLE LEXWORD_TURQUOISE
%token LEXWORD_TYPENAME LEXWORD_UPPER_NEIGHBOR LEXWORD_WHITE LEXWORD_WIDTH
%token LEXWORD_XBASE LEXWORD_XMAX LEXWORD_XRASTER LEXWORD_XLRASTER
%token LEXWORD_XSCROLLBAR LEXWORD_XSPACE LEXWORD_XLSPACE LEXWORD_YBASE
%token LEXWORD_YELLOWGREEN LEXWORD_YELLOW LEXWORD_YES LEXWORD_YMAX
%token LEXWORD_YRASTER LEXWORD_YSCROLLBAR LEXWORD_YSPACE LEX_INT LEX_FLOAT
%token LEX_CHAR LEX_STRING
graph:
LEXWORD_GRAPH '{' graph_entry_list '}'
;
graph_entry_list:
graph_entry_list graph_entry
| graph_entry
;
graph_entry:
graph_attribute
| node_defaults
| edge_defaults
| foldnode_defaults
| foldedge_defaults
| graph
| node
| edge
| nearedge
| constraint
;
graph_attribute:
'x' ':' int_const
| 'y' ':' int_const
| LEXWORD_LOC '{' 'x' ':' int_const 'y' ':' int_const '}'
| LEXWORD_WIDTH ':' int_const
| LEXWORD_HEIGHT ':' int_const
| LEXWORD_XMAX ':' int_const
| LEXWORD_YMAX ':' int_const
| LEXWORD_XSCROLLBAR ':' int_const
| LEXWORD_YSCROLLBAR ':' int_const
| LEXWORD_XBASE ':' int_const
| LEXWORD_YBASE ':' int_const
| LEXWORD_XSPACE ':' int_const
| LEXWORD_XLSPACE ':' int_const
| LEXWORD_YSPACE ':' int_const
| LEXWORD_XRASTER ':' int_const
| LEXWORD_XLRASTER ':' int_const
| LEXWORD_YRASTER ':' int_const
| LEXWORD_FOLDING ':' int_const
| LEXWORD_INVISIBLE ':' int_const
| LEXWORD_HIDDEN ':' int_const
| LEXWORD_TITLE ':' str_const
| LEXWORD_LABEL ':' str_const
| LEXWORD_CLASSNAME int_const ':' str_const
| LEXWORD_INFONAME int_const ':' str_const
| LEXWORD_INFO1 ':' str_const
| LEXWORD_INFO2 ':' str_const
| LEXWORD_INFO3 ':' str_const
| LEXWORD_TEXTMODE ':' enum_textmode
| LEXWORD_BORDERWIDTH ':' int_const
| LEXWORD_COLOR ':' enum_color
| LEXWORD_TEXTCOLOR ':' enum_color
| LEXWORD_BORDERCOLOR ':' enum_color
| LEXWORD_ORIENTATION ':' enum_orientation
| LEXWORD_NODE_ALIGN ':' enum_node_align
| LEXWORD_INPUTFUNCTION ':' str_const
| LEXWORD_OUTPUTFUNCTION ':' str_const
| LEXWORD_TYPENAME ':' str_const
| LEXWORD_INCLUDE ':' str_const
| LEXWORD_SCALING ':' float_const
| LEXWORD_SHRINK ':' int_const
| LEXWORD_STRETCH ':' int_const
| LEXWORD_LAYOUTPARAMETER ':' array_value
| LEXWORD_TOPSORT ':' enum_topsort
| LEXWORD_LAYOUTALGORITHM ':' enum_layoutalgorithm
| LEXWORD_LAYOUTFREQUENCY ':' enum_layoutfrequency
| LEXWORD_LAYOUTDOWNFACTOR ':' int_const
| LEXWORD_LAYOUTUPFACTOR ':' int_const
| LEXWORD_LAYOUTNEARFACTOR ':' int_const
| LEXWORD_LAYOUTSPLINEFACTOR ':' int_const
| LEXWORD_SPLINEFACTOR ':' int_const
| LEXWORD_STATUS ':' enum_status
| LEXWORD_LATE_LABELS ':' enum_yes_no
| LEXWORD_DISPLAY_EDGE_LABELS ':' enum_yes_no
| LEXWORD_DIRTY_EDGE_LABELS ':' enum_yes_no
| LEXWORD_FINETUNING ':' enum_yes_no
| LEXWORD_SPLINES ':' enum_yes_no
| LEXWORD_NONEAREDGES
| LEXWORD_NEAREDGES ':' LEXWORD_NO
| LEXWORD_NEAREDGES ':' LEXWORD_YES
| LEXWORD_SHAPE ':' enum_shape
| LEXWORD_LEVEL ':' int_const
| LEXWORD_VORDER ':' int_const
| LEXWORD_HORDER ':' int_const
| LEXWORD_CROSSING_OPT ':' enum_yes_no
| LEXWORD_CROSSING_WEIGHT ':' enum_cross_weight
| LEXWORD_SPREADLEVEL ':' int_const
| LEXWORD_TREEFACTOR ':' float_const
;
enum_color:
LEXWORD_AQUAMARINE
| LEXWORD_BLACK
| LEXWORD_BLUE
| LEXWORD_CYAN
| LEXWORD_DARKBLUE
| LEXWORD_DARKCYAN
| LEXWORD_DARKGREEN
| LEXWORD_DARKGREY
| LEXWORD_DARKMAGENTA
| LEXWORD_DARKRED
| LEXWORD_DARKYELLOW
| LEXWORD_GOLD
| LEXWORD_GREEN
| LEXWORD_KHAKI
| LEXWORD_LIGHTBLUE
| LEXWORD_LIGHTCYAN
| LEXWORD_LIGHTGREEN
| LEXWORD_LIGHTGREY
| LEXWORD_LIGHTMAGENTA
| LEXWORD_LIGHTRED
| LEXWORD_LIGHTYELLOW
| LEXWORD_LILAC
| LEXWORD_MAGENTA
| LEXWORD_ORANGE
| LEXWORD_ORCHID
| LEXWORD_PINK
| LEXWORD_PURPLE
| LEXWORD_RED
| LEXWORD_TURQUOISE
| LEXWORD_WHITE
| LEXWORD_YELLOW
| LEXWORD_YELLOWGREEN
;
enum_topsort:
LEXWORD_HIGH
| LEXWORD_LOW
;
enum_orientation:
LEXWORD_TOP_TO_BOTTOM
| LEXWORD_BOTTOM_TO_TOP
| LEXWORD_LEFT_TO_RIGHT
| LEXWORD_RIGHT_TO_LEFT
;
enum_layoutalgorithm:
LEXWORD_BARYCENTER
| LEXWORD_ISI
| LEXWORD_PLANAR
| LEXWORD_CONSTRAINTS
| LEXWORD_TREE
| LEXWORD_MAXDEPTH
| LEXWORD_MINDEPTH
| LEXWORD_MAXDEPTHSLOW
| LEXWORD_MINDEPTHSLOW
| LEXWORD_MAXDEGREE
| LEXWORD_MINDEGREE
| LEXWORD_MAXINDEGREE
| LEXWORD_MININDEGREE
| LEXWORD_MAXOUTDEGREE
| LEXWORD_MINOUTDEGREE
| LEXWORD_MINBACK
;
enum_layoutfrequency:
LEXWORD_EVERY
| LEXWORD_MANUAL
;
enum_status:
LEXWORD_BLACK
| LEXWORD_GREY
| LEXWORD_WHITE
;
enum_yes_no:
LEXWORD_YES
| LEXWORD_NO
;
enum_cross_weight:
LEXWORD_BARY
| LEXWORD_MEDIAN
;
foldnode_defaults:
LEXWORD_FOLDNODE node_attribute
;
foldedge_defaults:
LEXWORD_FOLDEDGE edge_attribute
;
node_defaults:
LEXWORD_NODE1 node_attribute
;
edge_defaults:
LEXWORD_EDGE1 edge_attribute
;
node:
LEXWORD_NODE2 '{' node_attribute_list '}'
;
node_attribute_list:
node_attribute_list node_attribute
| node_attribute
;
edge:
LEXWORD_EDGE2 '{' edge_attribute_list '}'
;
nearedge:
LEXWORD_NEAREDGE '{' edge_attribute_list '}'
;
edge_attribute_list:
edge_attribute_list edge_attribute
| edge_attribute
;
constraint:
LEXWORD_CONSTRAINT '{' constraint_attribute_list '}'
;
constraint_attribute_list:
constraint_attribute_list constraint_attribute
| constraint_attribute
;
node_attribute:
LEXWORD_TITLE ':' str_const
| LEXWORD_LABEL ':' str_const
| LEXWORD_INFO1 ':' str_const
| LEXWORD_INFO2 ':' str_const
| LEXWORD_INFO3 ':' str_const
| LEXWORD_FONTNAME ':' str_const
| LEXWORD_COLOR ':' enum_color
| LEXWORD_TEXTCOLOR ':' enum_color
| LEXWORD_BORDERCOLOR ':' enum_color
| LEXWORD_ICONFILE ':' str_const
| LEXWORD_ANCHORPOINTS ':' str_const
| LEXWORD_TYPENAME ':' str_const
| LEXWORD_WIDTH ':' int_const
| LEXWORD_HEIGHT ':' int_const
| LEXWORD_BORDERWIDTH ':' int_const
| LEXWORD_LOC '{' 'x' ':' int_const 'y' ':' int_const '}'
| LEXWORD_FOLDING ':' int_const
| LEXWORD_SCALING ':' float_const
| LEXWORD_SHRINK ':' int_const
| LEXWORD_STRETCH ':' int_const
| LEXWORD_ICONWIDTH ':' int_const
| LEXWORD_ICONHEIGHT ':' int_const
| LEXWORD_TEXTMODE ':' enum_textmode
| LEXWORD_ICONSTYLE ':' enum_iconstyle
| LEXWORD_SHAPE ':' enum_shape
| LEXWORD_LEVEL ':' int_const
| LEXWORD_VORDER ':' int_const
| LEXWORD_HORDER ':' int_const
;
enum_textmode:
LEXWORD_CENTER
| LEXWORD_LEFT_JUSTIFY
| LEXWORD_RIGHT_JUSTIFY
;
enum_shape:
LEXWORD_BOX
| LEXWORD_RHOMB
| LEXWORD_ELLIPSE
| LEXWORD_TRIANGLE
;
enum_node_align:
LEXWORD_BOTTOM
| LEXWORD_TOP
| LEXWORD_CENTER
;
enum_iconstyle:
LEXWORD_BOTTOM
| LEXWORD_TOP
| LEXWORD_AROUND
;
edge_attribute:
LEXWORD_SOURCENAME ':' str_const
| LEXWORD_TARGETNAME ':' str_const
| LEXWORD_LABEL ':' str_const
| LEXWORD_FONTNAME ':' str_const
| LEXWORD_COLOR ':' enum_color
| LEXWORD_ARROWCOLOR ':' enum_color
| LEXWORD_TYPENAME ':' str_const
| LEXWORD_THICKNESS ':' int_const
| LEXWORD_CLASS ':' int_const
| LEXWORD_PRIORITY ':' int_const
| LEXWORD_ARROWWIDTH ':' int_const
| LEXWORD_ARROWHEIGHT ':' int_const
| LEXWORD_ARROWSIZE ':' int_const
| LEXWORD_LINESTYLE ':' enum_linestyle
| LEXWORD_ARROWSTYLE ':' enum_arrowstyle
| LEXWORD_ANCHOR ':' int_const
| LEXWORD_HORDER ':' int_const
;
enum_linestyle:
LEXWORD_CONTINUOUS
| LEXWORD_SOLID
| LEXWORD_DOTTED
| LEXWORD_DASHED
| LEXWORD_INVISIBLE
;
enum_arrowstyle:
LEXWORD_NONE
| LEXWORD_LINE
| LEXWORD_SOLID
;
constraint_attribute:
LEXWORD_TITLE ':' str_const
| LEXWORD_PRIORITY ':' int_const
| LEXWORD_SIZE ':' int_const
| LEXWORD_NODES ':' '{' string_array '}'
| LEXWORD_INTERVAL ':' array_value
| LEXWORD_NAME ':' enum_name
| LEXWORD_DIMENSION ':' enum_dimension
;
string_array:
string_array str_const
| str_const
;
enum_name:
LEXWORD_EQUAL
| LEXWORD_SMALLER
| LEXWORD_GREATER
| LEXWORD_NEIGHBORS
| LEXWORD_LOW_MARGIN
| LEXWORD_HIGH_MARGIN
| LEXWORD_RANGE
| LEXWORD_CLUSTER
| LEXWORD_LIMIT
| LEXWORD_ABOVE
| LEXWORD_BELOW
| LEXWORD_LEFT
| LEXWORD_RIGHT
| LEXWORD_IN_FONT
| LEXWORD_BEHIND
| LEXWORD_EQUAL_POSITION
| LEXWORD_EQUAL_ROW
| LEXWORD_EQUAL_COLUMN
| LEXWORD_TOP_MARGIN
| LEXWORD_BOTTOM_MARGIN
| LEXWORD_LEFT_MARGIN
| LEXWORD_RIGHT_MARGIN
| LEXWORD_UPPER_NEIGHBOR
| LEXWORD_LOWER_NEIGHBOR
| LEXWORD_LEFT_NEIGHBOR
| LEXWORD_RIGHT_NEIGHBOR
;
enum_dimension:
'x'
| 'y'
| 'z'
;
attribute_value:
LEX_INT
| LEX_FLOAT
| LEX_CHAR
| LEX_STRING
| array_value
;
array_value:
'{' index_value_list '}'
;
index_value_list:
index_value_list index_value
| index_value
;
index_value:
attribute_value
| index ':' attribute_value
| range ':' attribute_value
| '*' ':' attribute_value
;
range:
'[' int_const '-' int_const ']'
;
index:
LEX_INT
;
int_const:
LEX_INT
;
float_const:
LEX_FLOAT
;
str_const:
LEX_STRING
;