First & follow symbols:
multOperator
first:   "*"  "/"  
follow:  identifier  numeral  "["  "("  

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

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

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

relOperator
first:   "="  "#"  
follow:  identifier  numeral  "["  "-"  "("  

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

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

guardCmd
first:   identifier  numeral  "["  "-"  "("  
follow:  "fi"  "[]"  

guardCmdList
first:   identifier  numeral  "["  "-"  "("  
follow:  "fi"  

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

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

ifStmt
first:   "if"  
follow:  ";"  

assignStmt
first:   identifier  
follow:  ";"  

writeStmt
first:   "write"  
follow:  ";"  

readStmt
first:   "read"  
follow:  ";"  

emptyStmt
first:   "skip"  
follow:  ";"  

tupletype
first:   "["  
follow:  identifier  

typeSymbol
first:   "integer"  
follow:  identifier  ","  "]"  

type
first:   "integer"  "["  
follow:  identifier  

variableDef
first:   "integer"  "["  
follow:  ";"  

definition
first:   "integer"  "["  
follow:  ";"  

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

defPart
first:   "integer"  "["  
follow:  "begin"  

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

GCL
first:   "begin"  "integer"  "["  
follow:  -- empty set --



List of sets (ANY, SYNC): 
     set[0] = EOF  
     set[1] = -- empty set --
     set[2] = -- empty set --
     set[3] = "write"  
     set[4] = "["  
     set[5] = "]"  
     set[6] = -- empty set --
     set[7] = -- empty set --
     set[8] = -- empty set --
     set[9] = -- empty set --
     set[10] = -- empty set --
     set[11] = -- empty set --
     set[12] = -- empty set --
     set[13] = -- empty set --



Cross reference list:

Terminals:
  0 EOF
  1 identifier  -23  58  62  191  
  2 numeral  -24  158  
  3 "."  -45  45  
  4 "begin"  -50  50  
  5 ";"  -50  50  52  124  124  
  6 "end"  -50  50  
  7 ","  -62  62  80  92  97  106  109  169  
  8 "integer"  -74  74  
  9 "["  -79  79  167  
 10 "]"  -80  80  172  
 11 "skip"  -87  87  
 12 "read"  -91  91  
 13 "write"  -96  96  
 14 ":="  -107  107  
 15 "if"  -114  114  
 16 "fi"  -114  114  
 17 "[]"  -119  119  
 18 "->"  -123  123  
 19 "-"  -141  141  182  
 20 "("  -162  162  
 21 ")"  -162  162  
 22 "="  -176  176  
 23 "#"  -177  177  
 24 "+"  -181  181  
 25 "*"  -186  186  
 26 "/"  -187  187  
 27 ???  undef  

Pragmas:
 28 option1  -29  
 29 option3  -31  
 30 option5  -33  
 31 option6  -34  
 32 option7  -35  

Nonterminals:
270 multOperator  152  -184  
271 factor  152  152  -155  
272 addOperator  143  146  -179  
273 term  141  143  146  146  -149  
274 relOperator  134  -174  
275 simpleExpr  133  134  -138  
276 relExpr  128  -130  
277 guardCmd  119  119  -121  
278 guardCmdList  114  -117  
279 expression  96  97  108  109  123  -126  162  167  169  
280 varAccess  91  92  105  106  157  -189  
281 ifStmt  85  -112  
282 assignStmt  84  -100  
283 writeStmt  84  -94  
284 readStmt  84  -89  
285 emptyStmt  84  -87  
286 tupletype  70  -76  
287 typeSymbol  70  -72  79  80  
288 type  58  -68  
289 variableDef  54  -56  
290 definition  52  -54  
291 statement  50  -82  124  124  
292 defPart  50  -52  
293 block  45  -48  
294 GCL  -42  


28 terminals
58 symbols
159 nodes
2 sets
Symbol Table:
 nr name       typ  hasAt struct del   line

  0 EOF        t    false     0 false     0
  1 identifier t    false     2 false    23
  2 numeral    t    false     0 false    24
  3 "."        t    false     0 false    45
  4 "begin"    t    false     1 false    50
  5 ";"        t    false     0 false    50
  6 "end"      t    false     1 false    50
  7 ","        t    false     0 false    62
  8 "integer"  t    false     1 false    74
  9 "["        t    false     0 false    79
 10 "]"        t    false     0 false    80
 11 "skip"     t    false     1 false    87
 12 "read"     t    false     1 false    91
 13 "write"    t    false     1 false    96
 14 ":="       t    false     0 false   107
 15 "if"       t    false     1 false   114
 16 "fi"       t    false     1 false   114
 17 "[]"       t    false     0 false   119
 18 "->"       t    false     0 false   123
 19 "-"        t    false     0 false   141
 20 "("        t    false     0 false   162
 21 ")"        t    false     0 false   162
 22 "="        t    false     0 false   176
 23 "#"        t    false     0 false   177
 24 "+"        t    false     0 false   181
 25 "*"        t    false     0 false   186
 26 "/"        t    false     0 false   187
 27 ???        t    false     0 false     0
270 multOperat nt   false   156 false   184
271 factor     nt   true    123 false   155
272 addOperato nt   false   150 false   179
273 term       nt   true    115 false   149
274 relOperato nt   false   144 false   174
275 simpleExpr nt   true    113 false   138
276 relExpr    nt   true     96 false   130
277 guardCmd   nt   true     86 false   121
278 guardCmdLi nt   true     82 false   117
279 expression nt   true     95 false   126
280 varAccess  nt   true    158 false   189
281 ifStmt     nt   true     77 false   112
282 assignStmt nt   true     63 false   100
283 writeStmt  nt   true     55 false    94
284 readStmt   nt   true     48 false    89
285 emptyStmt  nt   false    47 false    87
286 tupletype  nt   false    28 false    76
287 typeSymbol nt   false    26 false    72
288 type       nt   false    24 false    68
289 variableDe nt   true     15 false    56
290 definition nt   true     14 false    54
291 statement  nt   true     39 false    82
292 defPart    nt   true     13 true     52
293 block      nt   true      5 false    48
294 GCL        nt   false     1 false    42
295 option7    pr   false     0 false    35
296 option6    pr   false     0 false    34
297 option5    pr   false     0 false    33
298 option3    pr   false     0 false    31
299 option1    pr   false     0 false    29

