
First & follow symbols:
----------------------

gcl
first:   "begin" "integer" "tuple" 
follow:  EOF 

module
first:   "begin" "integer" "tuple" 
follow:  EOF "begin" "integer" "tuple" 

block
first:   "begin" "integer" "tuple" 
follow:  "." 

definitionPart
first:   "integer" "tuple" 
follow:  "begin" 

statementPart
first:   identifier "skip" "read" "write" "if" 
follow:  "end" "fi" "[]" 

definition
first:   "integer" "tuple" 
follow:  ";" 

statement
first:   identifier "skip" "read" "write" "if" 
follow:  ";" 

variableDefinition
first:   "integer" "tuple" 
follow:  ";" 

type
first:   "integer" "tuple" 
follow:  identifier 

typeSymbol
first:   "integer" 
follow:  identifier 

tupleType
first:   "tuple" 
follow:  identifier 

emptyStatement
first:   "skip" 
follow:  ";" 

readStatement
first:   "read" 
follow:  ";" 

writeStatement
first:   "write" 
follow:  ";" 

assignStatement
first:   identifier 
follow:  ";" 

ifStatement
first:   "if" 
follow:  ";" 

variableAccess
first:   identifier 
follow:  ";" "," "]" ":=" "->" "+" "-" ")" "=" "#" "*" "/" 

expression
first:   identifier numeral "[" "+" "-" "(" 
follow:  ";" "," "]" "->" ")" 

guardedCommandList
first:   identifier numeral "[" "+" "-" "(" 
follow:  "fi" 

guardedCommand
first:   identifier numeral "[" "+" "-" "(" 
follow:  "fi" "[]" 

relationalExpr
first:   identifier numeral "[" "+" "-" "(" 
follow:  ";" "," "]" "->" ")" 

simpleExpr
first:   identifier numeral "[" "+" "-" "(" 
follow:  ";" "," "]" "->" ")" "=" "#" 

relationalOperator
first:   "=" "#" 
follow:  identifier numeral "[" "+" "-" "(" 

term
first:   identifier numeral "[" "(" 
follow:  ";" "," "]" "->" "+" "-" ")" "=" "#" 

addOperator
first:   "+" "-" 
follow:  identifier numeral "[" "(" 

factor
first:   identifier numeral "[" "(" 
follow:  ";" "," "]" "->" "+" "-" ")" "=" "#" "*" "/" 

multiplyOperator
first:   "*" "/" 
follow:  identifier numeral "[" "(" 

qualifiedIdentifier
first:   identifier 
follow:  ";" "," "]" ":=" "->" "+" "-" ")" "=" "#" "*" "/" 


Cross reference list:
--------------------

  "#"           191
  "("           177
  ")"           177
  "*"           200
  "+"           157  195
  ","            75   94  110  115  122  125  183
  "-"           158  196
  "->"          139
  "."            52
  "/"           201
  ":="          123
  ";"            58   62   62
  "="           190
  "["            92  181
  "[]"          135
  "]"            97  186
  "begin"        56
  "end"          56
  "fi"          131
  "if"          130
  "integer"      87
  "read"        109
  "skip"        105
  "tuple"        92
  "write"       114
  addOperator  -193  161
  assignStatem -118  103
  block         -54   52
  definition    -64   58
  definitionPa  -58   56
  emptyStateme -105  102
  expression   -142  114  115  124  125  139  177  181  183
  factor       -171  168  168
  gcl           -43
  guardedComma -137  135  135
  guardedComma -133  130
  identifier     71   75   92   94  205
  ifStatement  -128  103
  module        -50   46   47
  multiplyOper -198  168
  numeral       174
  qualifiedIde -203  211
  readStatemen -107  102
  relationalEx -146  144
  relationalOp -188  150
  simpleExpr   -154  149  150
  statement    -100   62   62
  statementPar  -60   56  140
  term         -165  157  158  161
  tupleType     -89   83
  type          -81   71
  typeSymbol    -85   83   92   94
  variableAcce -208  109  110  121  122  173
  variableDefi  -68   66
  writeStateme -112  102



29 terminals
64 symbols
173 nodes
7 sets
Symbol Table:
------------

 nr name           typ  hasAt graph  del   line tokenKind
  0 EOF            t    false                 0 fixedToken
  1 identifier     t    false                20 classLitToken
  2 numeral        t    false                21 classToken
  3 "."            t    false                52 fixedToken
  4 "begin"        t    false                56 litToken
  5 "end"          t    false                56 litToken
  6 ";"            t    false                58 fixedToken
  7 ","            t    false                75 fixedToken
  8 "integer"      t    false                87 litToken
  9 "tuple"        t    false                92 litToken
 10 "["            t    false                92 fixedToken
 11 "]"            t    false                97 fixedToken
 12 "skip"         t    false               105 litToken
 13 "read"         t    false               109 litToken
 14 "write"        t    false               114 litToken
 15 ":="           t    false               123 fixedToken
 16 "if"           t    false               130 litToken
 17 "fi"           t    false               131 litToken
 18 "[]"           t    false               135 fixedToken
 19 "->"           t    false               139 fixedToken
 20 "+"            t    false               157 fixedToken
 21 "-"            t    false               158 fixedToken
 22 "("            t    false               177 fixedToken
 23 ")"            t    false               177 fixedToken
 24 "="            t    false               190 fixedToken
 25 "#"            t    false               191 fixedToken
 26 "*"            t    false               200 fixedToken
 27 "/"            t    false               201 fixedToken
 28 ???            t    false                 0 fixedToken
 29 option1        pr   false                24 fixedToken
 30 option3        pr   false                26 fixedToken
 31 option5        pr   false                28 fixedToken
 32 option6        pr   false                29 fixedToken
 33 option7        pr   false                30 fixedToken
 34 option9        pr   false                32 fixedToken
 35 option10       pr   false                33 fixedToken
  0 gcl            nt   false     1 false    43 fixedToken
  1 module         nt   true      9 false    50 fixedToken
  2 block          nt   true     11 false    54 fixedToken
  3 definitionPa   nt   true     19 true     58 fixedToken
  4 statementPar   nt   true     20 false    60 fixedToken
  5 definition     nt   true     27 false    64 fixedToken
  6 statement      nt   true     56 false   100 fixedToken
  7 variableDefi   nt   true     28 false    68 fixedToken
  8 type           nt   true     37 false    81 fixedToken
  9 typeSymbol     nt   false    39 false    85 fixedToken
 10 tupleType      nt   true     41 false    89 fixedToken
 11 emptyStateme   nt   false    64 false   105 fixedToken
 12 readStatemen   nt   true     65 false   107 fixedToken
 13 writeStateme   nt   true     72 false   112 fixedToken
 14 assignStatem   nt   true     80 false   118 fixedToken
 15 ifStatement    nt   true     94 false   128 fixedToken
 16 variableAcce   nt   true    171 false   208 fixedToken
 17 expression     nt   true    108 false   142 fixedToken
 18 guardedComma   nt   true     99 false   133 fixedToken
 19 guardedComma   nt   true    103 false   137 fixedToken
 20 relationalEx   nt   true    109 false   146 fixedToken
 21 simpleExpr     nt   true    120 false   154 fixedToken
 22 relationalOp   nt   false   155 false   188 fixedToken
 23 term           nt   true    126 false   165 fixedToken
 24 addOperator    nt   false   161 false   193 fixedToken
 25 factor         nt   true    134 false   171 fixedToken
 26 multiplyOper   nt   false   167 false   198 fixedToken
 27 qualifiedIde   nt   true    169 false   203 fixedToken

Literal Tokens:
--------------

