;---------------------; LALR(1) parse tables;---------------------;; Suitable for input to the Common Lisp program ;; LR(1)AndLALR(1)Parser.lsp;; TERMINALS;(|a||b| $); PRODUCTIONS;; Productions are numbered starting with 1.; All alternates were expanded into separate productions.(((1)(S -> S |a| S |b|))((2)(S -> EPSILON))); GOTO GRAPH; ; Not needed for the parser, but here for reference and debugging.; **********; Goto graph of the LR(1) or LALR(1) grammar of the form; ; (; ( <-- List of links.; (6 |a| 4) <-- Transition in Goto graph from state 6 to; state 4 on symbol a.; (1 |a| 2) <-- Transition from state 1 to state 2 on a.; ); ; ( <-- List of sets of items.; ( 0 <-- State number 0.; 3668 <-- Hash value of core.; (; (SP -> DOT S |,| $) ----+; ( S -> DOT S |a| S |b| |,| $) |; ( S -> DOT EPSILON |,| $) +---- Set of items for state 0; ( S -> DOT S |a| S |b| |,| |a|) |; ( S -> DOT EPSILON |,| |a|) |; ) ----+; ) (((-1NIL0)(0 S 1)(1|a|2)(2 S 3)(3|a|2)(3|b|5))((13542(SP -> S DOT |,| $)(S -> S DOT |a| S |b||,| $)(S -> S DOT |a| S |b||,||a|))(03668(SP -> DOT S |,| $)(S -> DOT S |a| S |b||,| $)(S -> DOT EPSILON |,| $)(S -> DOT S |a| S |b||,||a|)(S -> DOT EPSILON |,||a|))(54692(S -> S |a| S |b| DOT |,||b|)(S -> S |a| S |b| DOT |,| $)(S -> S |a| S |b| DOT |,||a|))(25168(S -> S |a| DOT S |b||,||b|)(S -> S |a| DOT S |b||,| $)(S -> S |a| DOT S |b||,||a|)(S -> DOT S |a| S |b||,||b|)(S -> DOT EPSILON |,||b|)(S -> DOT S |a| S |b||,||a|)(S -> DOT EPSILON |,||a|))(35308(S -> S |a| S DOT |b||,||b|)(S -> S |a| S DOT |b||,| $)(S -> S |a| S DOT |b||,||a|)(S -> S DOT |a| S |b||,||b|)(S -> S DOT |a| S |b||,||a|)))); ACTION TABLE;; (state; (item); ...(((0)(($ (R 2))(|a|(R 2))(DEFAULT (ERROR))))((1)(($ (ACC NIL))(|a|(S 2))(DEFAULT (ERROR))))((2)((|b|(R 2))(|a|(R 2))(DEFAULT (ERROR))))((3)((|b|(S 5))(|a|(S 2))(DEFAULT (ERROR))))((5)((|b|(R 1))($ (R 1))(|a|(R 1))(DEFAULT (ERROR))))); GOTO TABLE;; (state; (item); ...(((0)((S 1)(DEFAULT (ERROR))))((2)((S 3)(DEFAULT (ERROR))))); ERROR MESSAGE TABLE;; If the action table has an error state, the other non-error; actions show which symbol was failed to appear next on the input.;; The user can modify these minimal error messages.(((0)("error - expecting one of the symbols |a| $"))((1)("error - expecting one of the symbols |a| $"))((2)("error - expecting one of the symbols |a| |b|"))((3)("error - expecting one of the symbols |a| |b|"))((5)("error - expecting one of the symbols |a| $ |b|")))