module calculator. accumulate calcgrammar. first (ae _609) quitt. first (ae _301) lparen. first (ae _264) (iconst _273). first X X :- terminal X. parse [lparen,B|Alpha] [A|Beta] Result "shift" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), first (ae _1030) A, !, parse [A,lparen,B|Alpha] Beta Result Str. parse [ae _1030,lparen,B|Alpha] [A|Beta] Result "shift" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), first (rparen) A, !, parse [A,ae _1030,lparen,B|Alpha] Beta Result Str. parse [ae _1070,B|Alpha] [A|Beta] Result "shift" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), first (plust) A, !, parse [A,ae _1070,B|Alpha] Beta Result Str. parse [plust,ae _1070,B|Alpha] [A|Beta] Result "shift" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), first (ae _1082) A, !, parse [A,plust,ae _1070,B|Alpha] Beta Result Str. parse [ae _1124,B|Alpha] [A|Beta] Result "shift" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), first (minust) A, !, parse [A,ae _1124,B|Alpha] Beta Result Str. parse [minust,ae _1124,B|Alpha] [A|Beta] Result "shift" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), first (ae _1136) A, !, parse [A,minust,ae _1124,B|Alpha] Beta Result Str. parse [ae _1178,B|Alpha] [A|Beta] Result "shift" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), first (timest) A, !, parse [A,ae _1178,B|Alpha] Beta Result Str. parse [timest,ae _1178,B|Alpha] [A|Beta] Result "shift" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), first (ae _1190) A, !, parse [A,timest,ae _1178,B|Alpha] Beta Result Str. parse [ae _1232,B|Alpha] [A|Beta] Result "shift" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), first (dividet) A, !, parse [A,ae _1232,B|Alpha] Beta Result Str. parse [dividet,ae _1232,B|Alpha] [A|Beta] Result "shift" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), first (ae _1244) A, !, parse [A,dividet,ae _1232,B|Alpha] Beta Result Str. parse [ae _1286,B|Alpha] [A|Beta] Result "shift" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), first (expt) A, !, parse [A,ae _1286,B|Alpha] Beta Result Str. parse [expt,ae _1286,B|Alpha] [A|Beta] Result "shift" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), first (ae _1298) A, !, parse [A,expt,ae _1286,B|Alpha] Beta Result Str. parse [bofs] [A|B] R "shift" :- first (ae _19624) A, parse [A,bofs] B R Str. startparse START [bols] [A|B] R "shift" :- first (START) A, parse [A,bols] B R Str,!. parse [Sx,bofs] [eofs] Sx "accept" :- start_symbol Sx. parse [Sx,bols] [eols] Sx "accept" :- !. parse [iconst _991,B|Alpha] [A|Beta] Result "reduce" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), memb Sym (eols :: eofs :: rparen :: plust :: minust :: timest :: dividet :: expt :: nil), first Sym A, !, (_982 is _991), parse [ae _982,B|Alpha] [A|Beta] Result Str. parse [rparen,ae _1030,lparen,B|Alpha] [A|Beta] Result "reduce" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), memb Sym (eols :: eofs :: rparen :: plust :: minust :: timest :: dividet :: expt :: nil), first Sym A, !, (_982 is _1030), parse [ae _982,B|Alpha] [A|Beta] Result Str. parse [ae _1082,plust,ae _1070,B|Alpha] [A|Beta] Result "reduce" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), memb Sym (eols :: eofs :: rparen :: plust :: minust :: timest :: dividet :: expt :: nil), first Sym A, !, (_982 is _1070 + _1082), parse [ae _982,B|Alpha] [A|Beta] Result Str. parse [ae _1136,minust,ae _1124,B|Alpha] [A|Beta] Result "reduce" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), memb Sym (eols :: eofs :: rparen :: plust :: minust :: timest :: dividet :: expt :: nil), first Sym A, !, (_982 is _1124 - _1136), parse [ae _982,B|Alpha] [A|Beta] Result Str. parse [ae _1190,timest,ae _1178,B|Alpha] [A|Beta] Result "reduce" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), memb Sym (eols :: eofs :: rparen :: plust :: minust :: timest :: dividet :: expt :: nil), first Sym A, !, (_982 is _1178 * _1190), parse [ae _982,B|Alpha] [A|Beta] Result Str. parse [ae _1244,dividet,ae _1232,B|Alpha] [A|Beta] Result "reduce" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), memb Sym (eols :: eofs :: rparen :: plust :: minust :: timest :: dividet :: expt :: nil), first Sym A, !, (_982 is _1232 div _1244), parse [ae _982,B|Alpha] [A|Beta] Result Str. parse [ae _1298,expt,ae _1286,B|Alpha] [A|Beta] Result "reduce" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), memb Sym (eols :: eofs :: rparen :: plust :: minust :: timest :: dividet :: expt :: nil), first Sym A, !, (power _1286 _1286 _1298 _982), parse [ae _982,B|Alpha] [A|Beta] Result Str. parse [quitt,B|Alpha] [A|Beta] Result "reduce" :- memb B (bols :: bofs :: lparen :: plust :: minust :: timest :: dividet :: expt :: nil), memb Sym (eols :: eofs :: rparen :: plust :: minust :: timest :: dividet :: expt :: nil), first Sym A, !, (failure), parse [ae _982,B|Alpha] [A|Beta] Result Str. parse V I R "error" :- !, finderrline V I,print "Remaining Input = ", print_tokens 10 I, !, fail.