1 ;--------------------- 2 ; LALR(1) parse tables 3 ;--------------------- 4 ; 5 ; Suitable for input to the Common Lisp program 6 ; 7 ; LR(1)AndLALR(1)Parser.lsp 8 ; 9 10 ; TERMINALS 11 ; 12 13 (INTEGER PERIOD ^ BACKSLASH $) 14 15 ; PRODUCTIONS 16 ; 17 ; Productions are numbered starting with 1. 18 ; All alternates were expanded into separate productions. 19 20 ( 21 ( (1) (S -> INTEGER INTEGER FACTORIZATION) ) 22 ( (2) (FACTORIZATION -> FACTORIZATION PERIOD FACTOR) ) 23 ( (3) (FACTORIZATION -> FACTOR) ) 24 ( (4) (FACTOR -> BIGINTEGER ^ BIGINTEGER) ) 25 ( (5) (FACTOR -> BIGINTEGER) ) 26 ( (6) (BIGINTEGER -> BIGINTEGER BACKSLASH INTEGER) ) 27 ( (7) (BIGINTEGER -> INTEGER) ) 28 ) 29 30 ; GOTO GRAPH 31 ; 32 ; Not needed for the parser, but here for reference and debugging. 33 ; ********** 34 ; Goto graph of the LR(1) or LALR(1) grammar of the form 35 ; 36 ; ( 37 ; ( <-- List of links. 38 ; (6 |a| 4) <-- Transition in Goto graph from state 6 to 39 ; state 4 on symbol a. 40 ; (1 |a| 2) <-- Transition from state 1 to state 2 on a. 41 ; ) 42 ; 43 ; ( <-- List of sets of items. 44 ; ( 0 <-- State number 0. 45 ; 3668 <-- Hash value of core. 46 ; ( 47 ; (SP -> DOT S |,| $) ----+ 48 ; ( S -> DOT S |a| S |b| |,| $) | 49 ; ( S -> DOT EPSILON |,| $) +---- Set of items for state 0 50 ; ( S -> DOT S |a| S |b| |,| |a|) | 51 ; ( S -> DOT EPSILON |,| |a|) | 52 ; ) ----+ 53 ; ) 54 55 ( 56 ( 57 (-1 NIL 0) 58 (0 S 1) 59 (0 INTEGER 2) 60 (2 INTEGER 3) 61 (3 INTEGER 4) 62 (3 FACTORIZATION 5) 63 (3 FACTOR 6) 64 (3 BIGINTEGER 7) 65 (5 PERIOD 8) 66 (7 ^ 9) 67 (7 BACKSLASH 10) 68 (8 INTEGER 4) 69 (8 FACTOR 11) 70 (8 BIGINTEGER 7) 71 (9 INTEGER 4) 72 (9 BIGINTEGER 13) 73 (10 INTEGER 14) 74 (13 BACKSLASH 10) 75 ) 76 ( 77 (1 78 1752 79 (SP -> S DOT |,| $) 80 ) 81 (0 82 3968 83 (SP -> DOT S |,| $) 84 (S -> DOT INTEGER INTEGER FACTORIZATION |,| $) 85 ) 86 (2 87 4356 88 (S -> INTEGER DOT INTEGER FACTORIZATION |,| $) 89 ) 90 (4 91 4800 92 (BIGINTEGER -> INTEGER DOT |,| ^) 93 (BIGINTEGER -> INTEGER DOT |,| $) 94 (BIGINTEGER -> INTEGER DOT |,| PERIOD) 95 (BIGINTEGER -> INTEGER DOT |,| BACKSLASH) 96 ) 97 (6 98 5322 99 (FACTORIZATION -> FACTOR DOT |,| $) 100 (FACTORIZATION -> FACTOR DOT |,| PERIOD) 101 ) 102 (10 103 10374 104 (BIGINTEGER -> BIGINTEGER BACKSLASH DOT INTEGER |,| ^) 105 (BIGINTEGER -> BIGINTEGER BACKSLASH DOT INTEGER |,| $) 106 (BIGINTEGER -> BIGINTEGER BACKSLASH DOT INTEGER |,| PERIOD) 107 (BIGINTEGER -> BIGINTEGER BACKSLASH DOT INTEGER |,| BACKSLASH) 108 ) 109 (9 110 13932 111 (FACTOR -> BIGINTEGER ^ DOT BIGINTEGER |,| $) 112 (FACTOR -> BIGINTEGER ^ DOT BIGINTEGER |,| PERIOD) 113 (BIGINTEGER -> DOT BIGINTEGER BACKSLASH INTEGER |,| $) 114 (BIGINTEGER -> DOT INTEGER |,| $) 115 (BIGINTEGER -> DOT BIGINTEGER BACKSLASH INTEGER |,| PERIOD) 116 (BIGINTEGER -> DOT INTEGER |,| PERIOD) 117 (BIGINTEGER -> DOT BIGINTEGER BACKSLASH INTEGER |,| BACKSLASH) 118 (BIGINTEGER -> DOT INTEGER |,| BACKSLASH) 119 ) 120 (14 121 14940 122 (BIGINTEGER -> BIGINTEGER BACKSLASH INTEGER DOT |,| ^) 123 (BIGINTEGER -> BIGINTEGER BACKSLASH INTEGER DOT |,| $) 124 (BIGINTEGER -> BIGINTEGER BACKSLASH INTEGER DOT |,| PERIOD) 125 (BIGINTEGER -> BIGINTEGER BACKSLASH INTEGER DOT |,| BACKSLASH) 126 ) 127 (11 128 16070 129 (FACTORIZATION -> FACTORIZATION PERIOD FACTOR DOT |,| $) 130 (FACTORIZATION -> FACTORIZATION PERIOD FACTOR DOT |,| PERIOD) 131 ) 132 (7 133 16564 134 (FACTOR -> BIGINTEGER DOT ^ BIGINTEGER |,| $) 135 (FACTOR -> BIGINTEGER DOT |,| $) 136 (FACTOR -> BIGINTEGER DOT ^ BIGINTEGER |,| PERIOD) 137 (FACTOR -> BIGINTEGER DOT |,| PERIOD) 138 (BIGINTEGER -> BIGINTEGER DOT BACKSLASH INTEGER |,| ^) 139 (BIGINTEGER -> BIGINTEGER DOT BACKSLASH INTEGER |,| $) 140 (BIGINTEGER -> BIGINTEGER DOT BACKSLASH INTEGER |,| PERIOD) 141 (BIGINTEGER -> BIGINTEGER DOT BACKSLASH INTEGER |,| BACKSLASH) 142 ) 143 (13 144 18363 145 (FACTOR -> BIGINTEGER ^ BIGINTEGER DOT |,| $) 146 (FACTOR -> BIGINTEGER ^ BIGINTEGER DOT |,| PERIOD) 147 (BIGINTEGER -> BIGINTEGER DOT BACKSLASH INTEGER |,| $) 148 (BIGINTEGER -> BIGINTEGER DOT BACKSLASH INTEGER |,| PERIOD) 149 (BIGINTEGER -> BIGINTEGER DOT BACKSLASH INTEGER |,| BACKSLASH) 150 ) 151 (5 152 20156 153 (S -> INTEGER INTEGER FACTORIZATION DOT |,| $) 154 (FACTORIZATION -> FACTORIZATION DOT PERIOD FACTOR |,| $) 155 (FACTORIZATION -> FACTORIZATION DOT PERIOD FACTOR |,| PERIOD) 156 ) 157 (8 158 23693 159 (FACTORIZATION -> FACTORIZATION PERIOD DOT FACTOR |,| $) 160 (FACTORIZATION -> FACTORIZATION PERIOD DOT FACTOR |,| PERIOD) 161 (FACTOR -> DOT BIGINTEGER ^ BIGINTEGER |,| $) 162 (FACTOR -> DOT BIGINTEGER |,| $) 163 (FACTOR -> DOT BIGINTEGER ^ BIGINTEGER |,| PERIOD) 164 (FACTOR -> DOT BIGINTEGER |,| PERIOD) 165 (BIGINTEGER -> DOT BIGINTEGER BACKSLASH INTEGER |,| ^) 166 (BIGINTEGER -> DOT INTEGER |,| ^) 167 (BIGINTEGER -> DOT BIGINTEGER BACKSLASH INTEGER |,| $) 168 (BIGINTEGER -> DOT INTEGER |,| $) 169 (BIGINTEGER -> DOT BIGINTEGER BACKSLASH INTEGER |,| PERIOD) 170 (BIGINTEGER -> DOT INTEGER |,| PERIOD) 171 (BIGINTEGER -> DOT BIGINTEGER BACKSLASH INTEGER |,| BACKSLASH) 172 (BIGINTEGER -> DOT INTEGER |,| BACKSLASH) 173 ) 174 (3 175 26701 176 (S -> INTEGER INTEGER DOT FACTORIZATION |,| $) 177 (FACTORIZATION -> DOT FACTORIZATION PERIOD FACTOR |,| $) 178 (FACTORIZATION -> DOT FACTOR |,| $) 179 (FACTORIZATION -> DOT FACTORIZATION PERIOD FACTOR |,| PERIOD) 180 (FACTORIZATION -> DOT FACTOR |,| PERIOD) 181 (FACTOR -> DOT BIGINTEGER ^ BIGINTEGER |,| $) 182 (FACTOR -> DOT BIGINTEGER |,| $) 183 (FACTOR -> DOT BIGINTEGER ^ BIGINTEGER |,| PERIOD) 184 (FACTOR -> DOT BIGINTEGER |,| PERIOD) 185 (BIGINTEGER -> DOT BIGINTEGER BACKSLASH INTEGER |,| ^) 186 (BIGINTEGER -> DOT INTEGER |,| ^) 187 (BIGINTEGER -> DOT BIGINTEGER BACKSLASH INTEGER |,| $) 188 (BIGINTEGER -> DOT INTEGER |,| $) 189 (BIGINTEGER -> DOT BIGINTEGER BACKSLASH INTEGER |,| PERIOD) 190 (BIGINTEGER -> DOT INTEGER |,| PERIOD) 191 (BIGINTEGER -> DOT BIGINTEGER BACKSLASH INTEGER |,| BACKSLASH) 192 (BIGINTEGER -> DOT INTEGER |,| BACKSLASH) 193 ) 194 ) 195 ) 196 197 ; ACTION TABLE 198 ; 199 ; (state 200 ; (item) 201 ; ... 202 203 ( 204 ( (0) 205 ( 206 (INTEGER (S 2)) 207 (DEFAULT (ERROR)) 208 ) 209 ) 210 ( (1) 211 ( 212 ($ (ACC NIL)) 213 (DEFAULT (ERROR)) 214 ) 215 ) 216 ( (2) 217 ( 218 (INTEGER (S 3)) 219 (DEFAULT (ERROR)) 220 ) 221 ) 222 ( (3) 223 ( 224 (INTEGER (S 4)) 225 (DEFAULT (ERROR)) 226 ) 227 ) 228 ( (4) 229 ( 230 (^ (R 7)) 231 ($ (R 7)) 232 (PERIOD (R 7)) 233 (BACKSLASH (R 7)) 234 (DEFAULT (ERROR)) 235 ) 236 ) 237 ( (5) 238 ( 239 ($ (R 1)) 240 (PERIOD (S 8)) 241 (DEFAULT (ERROR)) 242 ) 243 ) 244 ( (6) 245 ( 246 ($ (R 3)) 247 (PERIOD (R 3)) 248 (DEFAULT (ERROR)) 249 ) 250 ) 251 ( (7) 252 ( 253 (^ (S 9)) 254 ($ (R 5)) 255 (PERIOD (R 5)) 256 (BACKSLASH (S 10)) 257 (DEFAULT (ERROR)) 258 ) 259 ) 260 ( (8) 261 ( 262 (INTEGER (S 4)) 263 (DEFAULT (ERROR)) 264 ) 265 ) 266 ( (9) 267 ( 268 (INTEGER (S 4)) 269 (DEFAULT (ERROR)) 270 ) 271 ) 272 ( (10) 273 ( 274 (INTEGER (S 14)) 275 (DEFAULT (ERROR)) 276 ) 277 ) 278 ( (11) 279 ( 280 ($ (R 2)) 281 (PERIOD (R 2)) 282 (DEFAULT (ERROR)) 283 ) 284 ) 285 ( (13) 286 ( 287 ($ (R 4)) 288 (PERIOD (R 4)) 289 (BACKSLASH (S 10)) 290 (DEFAULT (ERROR)) 291 ) 292 ) 293 ( (14) 294 ( 295 (^ (R 6)) 296 ($ (R 6)) 297 (PERIOD (R 6)) 298 (BACKSLASH (R 6)) 299 (DEFAULT (ERROR)) 300 ) 301 ) 302 ) 303 304 ; GOTO TABLE 305 ; 306 ; (state 307 ; (item) 308 ; ... 309 310 ( 311 ( (0) 312 ( 313 (S 1) 314 (DEFAULT (ERROR)) 315 ) 316 ) 317 ( (3) 318 ( 319 (FACTORIZATION 5) 320 (FACTOR 6) 321 (BIGINTEGER 7) 322 (DEFAULT (ERROR)) 323 ) 324 ) 325 ( (8) 326 ( 327 (FACTOR 11) 328 (BIGINTEGER 7) 329 (DEFAULT (ERROR)) 330 ) 331 ) 332 ( (9) 333 ( 334 (BIGINTEGER 13) 335 (DEFAULT (ERROR)) 336 ) 337 ) 338 ) 339 340 341 ; ERROR MESSAGE TABLE 342 ; 343 ; If the action table has an error state, the other non-error 344 ; actions show which symbol was failed to appear next on the input. 345 ; 346 ; The user can modify these minimal error messages. 347 348 349 350 ( 351 352 ((0) ("error - expecting one of the symbols INTEGER")) 353 ((1) ("error - expecting one of the symbols $")) 354 ((2) ("error - expecting one of the symbols INTEGER")) 355 ((3) ("error - expecting one of the symbols INTEGER")) 356 ((4) ("error - expecting one of the symbols BACKSLASH PERIOD $ ^")) 357 ((5) ("error - expecting one of the symbols PERIOD $")) 358 ((6) ("error - expecting one of the symbols PERIOD $")) 359 ((7) ("error - expecting one of the symbols BACKSLASH PERIOD $ ^")) 360 ((8) ("error - expecting one of the symbols INTEGER")) 361 ((9) ("error - expecting one of the symbols INTEGER")) 362 ((10) ("error - expecting one of the symbols INTEGER")) 363 ((11) ("error - expecting one of the symbols PERIOD $")) 364 ((13) ("error - expecting one of the symbols BACKSLASH PERIOD $")) 365 ((14) ("error - expecting one of the symbols BACKSLASH PERIOD $ ^")) 366 ) 367