module lpbasicparser. accumulate lpbasicgram. first (exp _91) (iconst _93). first (exp _102) (sconst _104). first (exp _112) (id _114). first (exp _231) nott. first (exp _243) lparen. first (stat _252) printt. first (astat _273) (id _275). first (stat _287) ift. first (stat _302) ift. first (stat _319) whilet. first (stat _332) lett. first (stat _345) begint. first (statlist _69) printt. first (statlist _69) ift. first (statlist _69) ift. first (statlist _69) whilet. first (statlist _69) lett. first (statlist _69) begint. first (statlist _80) printt. first (statlist _80) ift. first (statlist _80) ift. first (statlist _80) whilet. first (statlist _80) lett. first (statlist _80) begint. first (stat _266) (id _583). first (statlist _72) (id _891). first (statlist _82) (id _891). first X X :- terminal X. parse [stat _85,B|Alpha] [A|Beta] Result "shift" :- member B (begint :: semicolon :: nil), first (semicolon) A, parse [A,stat _85,B|Alpha] Beta Result Str. parse [semicolon,stat _85,B|Alpha] [A|Beta] Result "shift" :- member B (begint :: semicolon :: nil), first (statlist _88) A, parse [A,semicolon,stat _85,B|Alpha] Beta Result Str. parse [exp _129,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: assignt :: ift :: lparen :: nil), first (plust) A, parse [A,exp _129,B|Alpha] Beta Result Str. parse [plust,exp _129,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: assignt :: ift :: lparen :: nil), first (exp _132) A, parse [A,plust,exp _129,B|Alpha] Beta Result Str. parse [exp _143,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: assignt :: plust :: ift :: lparen :: nil), first (minust) A, parse [A,exp _143,B|Alpha] Beta Result Str. parse [minust,exp _143,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: assignt :: plust :: ift :: lparen :: nil), first (exp _146) A, parse [A,minust,exp _143,B|Alpha] Beta Result Str. parse [exp _156,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: timest :: dividet :: andt :: ort :: eqt :: lesst :: assignt :: plust :: minust :: ift :: lparen :: nil), first (timest) A, parse [A,exp _156,B|Alpha] Beta Result Str. parse [timest,exp _156,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: timest :: dividet :: andt :: ort :: eqt :: lesst :: assignt :: plust :: minust :: ift :: lparen :: nil), first (exp _159) A, parse [A,timest,exp _156,B|Alpha] Beta Result Str. parse [exp _170,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: dividet :: andt :: ort :: eqt :: lesst :: assignt :: plust :: minust :: timest :: ift :: lparen :: nil), first (dividet) A, parse [A,exp _170,B|Alpha] Beta Result Str. parse [dividet,exp _170,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: dividet :: andt :: ort :: eqt :: lesst :: assignt :: plust :: minust :: timest :: ift :: lparen :: nil), first (exp _173) A, parse [A,dividet,exp _170,B|Alpha] Beta Result Str. parse [exp _183,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: andt :: ort :: eqt :: lesst :: assignt :: plust :: minust :: timest :: dividet :: ift :: lparen :: nil), first (andt) A, parse [A,exp _183,B|Alpha] Beta Result Str. parse [andt,exp _183,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: andt :: ort :: eqt :: lesst :: assignt :: plust :: minust :: timest :: dividet :: ift :: lparen :: nil), first (exp _186) A, parse [A,andt,exp _183,B|Alpha] Beta Result Str. parse [exp _197,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: ort :: eqt :: lesst :: assignt :: plust :: minust :: timest :: dividet :: andt :: ift :: lparen :: nil), first (ort) A, parse [A,exp _197,B|Alpha] Beta Result Str. parse [ort,exp _197,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: ort :: eqt :: lesst :: assignt :: plust :: minust :: timest :: dividet :: andt :: ift :: lparen :: nil), first (exp _200) A, parse [A,ort,exp _197,B|Alpha] Beta Result Str. parse [exp _197,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: eqt :: lesst :: assignt :: plust :: minust :: timest :: dividet :: andt :: ort :: ift :: lparen :: nil), first (eqt) A, parse [A,exp _197,B|Alpha] Beta Result Str. parse [eqt,exp _197,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: eqt :: lesst :: assignt :: plust :: minust :: timest :: dividet :: andt :: ort :: ift :: lparen :: nil), first (exp _200) A, parse [A,eqt,exp _197,B|Alpha] Beta Result Str. parse [exp _224,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: lesst :: assignt :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: ift :: lparen :: nil), first (lesst) A, parse [A,exp _224,B|Alpha] Beta Result Str. parse [lesst,exp _224,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: lesst :: assignt :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: ift :: lparen :: nil), first (exp _227) A, parse [A,lesst,exp _224,B|Alpha] Beta Result Str. parse [nott,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: assignt :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: ift :: lparen :: nil), first (lparen) A, parse [A,nott,B|Alpha] Beta Result Str. parse [lparen,nott,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: assignt :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: ift :: lparen :: nil), first (exp _239) A, parse [A,lparen,nott,B|Alpha] Beta Result Str. parse [exp _239,lparen,nott,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: assignt :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: ift :: lparen :: nil), first (rparen) A, parse [A,exp _239,lparen,nott,B|Alpha] Beta Result Str. parse [lparen,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: assignt :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: ift :: lparen :: nil), first (exp _96) A, parse [A,lparen,B|Alpha] Beta Result Str. parse [exp _96,lparen,B|Alpha] [A|Beta] Result "shift" :- member B (printt :: whilet :: assignt :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: ift :: lparen :: nil), first (rparen) A, parse [A,exp _96,lparen,B|Alpha] Beta Result Str. parse [printt,B|Alpha] [A|Beta] Result "shift" :- member B (bofs :: thent :: elset :: exp _57078 :: intok :: begint :: semicolon :: nil), first (exp _260) A, parse [A,printt,B|Alpha] Beta Result Str. parse [id _279,B|Alpha] [A|Beta] Result "shift" :- member B (bofs :: lett :: thent :: elset :: exp _679843 :: intok :: begint :: semicolon :: nil), first (assignt) A, parse [A,id _279,B|Alpha] Beta Result Str. parse [assignt,id _279,B|Alpha] [A|Beta] Result "shift" :- member B (bofs :: lett :: thent :: elset :: exp _679843 :: intok :: begint :: semicolon :: nil), first (exp _282) A, parse [A,assignt,id _279,B|Alpha] Beta Result Str. parse [ift,B|Alpha] [A|Beta] Result "shift" :- member B (bofs :: thent :: elset :: exp _60413 :: intok :: begint :: semicolon :: nil), first (exp _295) A, parse [A,ift,B|Alpha] Beta Result Str. parse [exp _295,ift,B|Alpha] [A|Beta] Result "shift" :- member B (bofs :: thent :: elset :: exp _60413 :: intok :: begint :: semicolon :: nil), first (thent) A, parse [A,exp _295,ift,B|Alpha] Beta Result Str. parse [thent,exp _295,ift,B|Alpha] [A|Beta] Result "shift" :- member B (bofs :: thent :: elset :: exp _60413 :: intok :: begint :: semicolon :: nil), first (stat _298) A, parse [A,thent,exp _295,ift,B|Alpha] Beta Result Str. parse [ift,B|Alpha] [A|Beta] Result "shift" :- member B (bofs :: elset :: exp _62947 :: intok :: thent :: begint :: semicolon :: nil), first (exp _309) A, parse [A,ift,B|Alpha] Beta Result Str. parse [exp _309,ift,B|Alpha] [A|Beta] Result "shift" :- member B (bofs :: elset :: exp _62947 :: intok :: thent :: begint :: semicolon :: nil), first (thent) A, parse [A,exp _309,ift,B|Alpha] Beta Result Str. parse [thent,exp _309,ift,B|Alpha] [A|Beta] Result "shift" :- member B (bofs :: elset :: exp _62947 :: intok :: thent :: begint :: semicolon :: nil), first (stat _312) A, parse [A,thent,exp _309,ift,B|Alpha] Beta Result Str. parse (stat _298 :: thent :: exp _295 :: ift :: bofs :: _1236295) [elset|Beta] Result "special" :- !, parse (stat _298 :: thent :: exp _295 :: ift :: bofs :: _1236295) [elset|Beta] Result "shift". parse (stat _298 :: thent :: exp _295 :: ift :: elset :: _1236295) [elset|Beta] Result "special" :- !, parse (stat _298 :: thent :: exp _295 :: ift :: elset :: _1236295) [elset|Beta] Result "shift". parse (stat _298 :: thent :: exp _295 :: ift :: exp _60413 :: _1236295) [elset|Beta] Result "special" :- !, parse (stat _298 :: thent :: exp _295 :: ift :: exp _60413 :: _1236295) [elset|Beta] Result "shift". parse (stat _298 :: thent :: exp _295 :: ift :: intok :: _1236295) [elset|Beta] Result "special" :- !, parse (stat _298 :: thent :: exp _295 :: ift :: intok :: _1236295) [elset|Beta] Result "shift". parse (stat _298 :: thent :: exp _295 :: ift :: thent :: _1236295) [elset|Beta] Result "special" :- !, parse (stat _298 :: thent :: exp _295 :: ift :: thent :: _1236295) [elset|Beta] Result "shift". parse (stat _298 :: thent :: exp _295 :: ift :: begint :: _1236295) [elset|Beta] Result "special" :- !, parse (stat _298 :: thent :: exp _295 :: ift :: begint :: _1236295) [elset|Beta] Result "shift". parse (stat _298 :: thent :: exp _295 :: ift :: semicolon :: _1236295) [elset|Beta] Result "special" :- !, parse (stat _298 :: thent :: exp _295 :: ift :: semicolon :: _1236295) [elset|Beta] Result "shift". parse [stat _312,thent,exp _309,ift,B|Alpha] [A|Beta] Result "shift" :- member B (bofs :: elset :: exp _62947 :: intok :: thent :: begint :: semicolon :: nil), first (elset) A, parse [A,stat _312,thent,exp _309,ift,B|Alpha] Beta Result Str. parse [elset,stat _312,thent,exp _309,ift,B|Alpha] [A|Beta] Result "shift" :- member B (bofs :: elset :: exp _62947 :: intok :: thent :: begint :: semicolon :: nil), first (stat _315) A, parse [A,elset,stat _312,thent,exp _309,ift,B|Alpha] Beta Result Str. parse [whilet,B|Alpha] [A|Beta] Result "shift" :- member B (bofs :: exp _65024 :: intok :: thent :: begint :: elset :: semicolon :: nil), first (exp _326) A, parse [A,whilet,B|Alpha] Beta Result Str. parse [exp _326,whilet,B|Alpha] [A|Beta] Result "shift" :- member B (bofs :: exp _65024 :: intok :: thent :: begint :: elset :: semicolon :: nil), first (stat _329) A, parse [A,exp _326,whilet,B|Alpha] Beta Result Str. parse [lett,B|Alpha] [A|Beta] Result "shift" :- member B (bofs :: intok :: thent :: begint :: elset :: exp _1104273 :: semicolon :: nil), first (astat _340) A, parse [A,lett,B|Alpha] Beta Result Str. parse [astat _340,lett,B|Alpha] [A|Beta] Result "shift" :- member B (bofs :: intok :: thent :: begint :: elset :: exp _1104273 :: semicolon :: nil), first (intok) A, parse [A,astat _340,lett,B|Alpha] Beta Result Str. parse [intok,astat _340,lett,B|Alpha] [A|Beta] Result "shift" :- member B (bofs :: intok :: thent :: begint :: elset :: exp _1104273 :: semicolon :: nil), first (stat _343) A, parse [A,intok,astat _340,lett,B|Alpha] Beta Result Str. parse [begint,B|Alpha] [A|Beta] Result "shift" :- member B (bofs :: thent :: begint :: elset :: exp _1106381 :: intok :: semicolon :: nil), first (statlist _353) A, parse [A,begint,B|Alpha] Beta Result Str. parse [statlist _353,begint,B|Alpha] [A|Beta] Result "shift" :- member B (bofs :: thent :: begint :: elset :: exp _1106381 :: intok :: semicolon :: nil), first (endt) A, parse [A,statlist _353,begint,B|Alpha] Beta Result Str. parse [bofs] [A|B] R "shift" :- first (stat _1237217) A, parse [A,bofs] B R Str. parse [Sx,bofs] [eofs] Sx "accept" :- start_symbol Sx. parse [stat _74,B|Alpha] [A|Beta] Result "reduce" :- member B (begint :: semicolon :: nil), member Sym (endt :: nil), first Sym A, (_72 = _74 :: nil), parse [statlist _72,B|Alpha] [A|Beta] Result Str. parse [statlist _88,semicolon,stat _85,B|Alpha] [A|Beta] Result "reduce" :- member B (begint :: semicolon :: nil), member Sym (endt :: nil), first Sym A, (_72 = _85 :: _88), parse [statlist _72,B|Alpha] [A|Beta] Result Str. parse [iconst _98,B|Alpha] [A|Beta] Result "reduce" :- member B (printt :: whilet :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: assignt :: ift :: lparen :: nil), member Sym (eofs :: stat _35850 :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: elset :: intok :: endt :: semicolon :: thent :: rparen :: nil), first Sym A, (_96 = intexp _98), parse [exp _96,B|Alpha] [A|Beta] Result Str. parse [sconst _109,B|Alpha] [A|Beta] Result "reduce" :- member B (printt :: whilet :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: assignt :: ift :: lparen :: nil), member Sym (eofs :: stat _36500 :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: elset :: intok :: endt :: semicolon :: thent :: rparen :: nil), first Sym A, (_96 = strexp _109), parse [exp _96,B|Alpha] [A|Beta] Result Str. parse [id _119,B|Alpha] [A|Beta] Result "reduce" :- member B (printt :: whilet :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: assignt :: ift :: lparen :: nil), member Sym (eofs :: stat _37149 :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: elset :: intok :: endt :: semicolon :: thent :: rparen :: nil), first Sym A, (_96 = varexp _119), parse [exp _96,B|Alpha] [A|Beta] Result Str. parse [exp _132,plust,exp _129,B|Alpha] [A|Beta] Result "reduce" :- member B (printt :: whilet :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: assignt :: ift :: lparen :: nil), member Sym (eofs :: stat _38925 :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: elset :: intok :: endt :: semicolon :: thent :: rparen :: nil), first Sym A, (_96 = sumexp _129 _132), parse [exp _96,B|Alpha] [A|Beta] Result Str. parse [exp _146,minust,exp _143,B|Alpha] [A|Beta] Result "reduce" :- member B (printt :: whilet :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: assignt :: plust :: ift :: lparen :: nil), member Sym (eofs :: stat _40740 :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: elset :: plust :: intok :: endt :: semicolon :: thent :: rparen :: nil), first Sym A, (_96 = difexp _143 _146), parse [exp _96,B|Alpha] [A|Beta] Result Str. parse [exp _159,timest,exp _156,B|Alpha] [A|Beta] Result "reduce" :- member B (printt :: whilet :: timest :: dividet :: andt :: ort :: eqt :: lesst :: assignt :: plust :: minust :: ift :: lparen :: nil), member Sym (eofs :: stat _42591 :: timest :: dividet :: andt :: ort :: eqt :: lesst :: elset :: plust :: intok :: minust :: endt :: semicolon :: thent :: rparen :: nil), first Sym A, (_96 = multexp _156 _159), parse [exp _96,B|Alpha] [A|Beta] Result Str. parse [exp _173,dividet,exp _170,B|Alpha] [A|Beta] Result "reduce" :- member B (printt :: whilet :: dividet :: andt :: ort :: eqt :: lesst :: assignt :: plust :: minust :: timest :: ift :: lparen :: nil), member Sym (eofs :: stat _44481 :: dividet :: andt :: ort :: eqt :: lesst :: elset :: plust :: intok :: minust :: timest :: endt :: semicolon :: thent :: rparen :: nil), first Sym A, (_96 = divexp _170 _173), parse [exp _96,B|Alpha] [A|Beta] Result Str. parse [exp _186,andt,exp _183,B|Alpha] [A|Beta] Result "reduce" :- member B (printt :: whilet :: andt :: ort :: eqt :: lesst :: assignt :: plust :: minust :: timest :: dividet :: ift :: lparen :: nil), member Sym (eofs :: stat _46407 :: andt :: ort :: eqt :: lesst :: elset :: plust :: intok :: minust :: timest :: dividet :: endt :: semicolon :: thent :: rparen :: nil), first Sym A, (_96 = andexp _183 _186), parse [exp _96,B|Alpha] [A|Beta] Result Str. parse [exp _200,ort,exp _197,B|Alpha] [A|Beta] Result "reduce" :- member B (printt :: whilet :: ort :: eqt :: lesst :: assignt :: plust :: minust :: timest :: dividet :: andt :: ift :: lparen :: nil), member Sym (eofs :: stat _48372 :: ort :: eqt :: lesst :: elset :: plust :: intok :: minust :: timest :: dividet :: andt :: endt :: semicolon :: thent :: rparen :: nil), first Sym A, (_96 = orexp _197 _200), parse [exp _96,B|Alpha] [A|Beta] Result Str. parse [exp _200,eqt,exp _197,B|Alpha] [A|Beta] Result "reduce" :- member B (printt :: whilet :: eqt :: lesst :: assignt :: plust :: minust :: timest :: dividet :: andt :: ort :: ift :: lparen :: nil), member Sym (eofs :: stat _50373 :: eqt :: lesst :: elset :: plust :: intok :: minust :: timest :: dividet :: andt :: ort :: endt :: semicolon :: thent :: rparen :: nil), first Sym A, (_96 = eqexp _197 _200), parse [exp _96,B|Alpha] [A|Beta] Result Str. parse [exp _227,lesst,exp _224,B|Alpha] [A|Beta] Result "reduce" :- member B (printt :: whilet :: lesst :: assignt :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: ift :: lparen :: nil), member Sym (eofs :: stat _52413 :: lesst :: elset :: plust :: intok :: minust :: timest :: dividet :: andt :: ort :: eqt :: endt :: semicolon :: thent :: rparen :: nil), first Sym A, (_96 = ineqexp _224 _227), parse [exp _96,B|Alpha] [A|Beta] Result Str. parse [rparen,exp _239,lparen,nott,B|Alpha] [A|Beta] Result "reduce" :- member B (printt :: whilet :: assignt :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: ift :: lparen :: nil), member Sym (eofs :: stat _53975 :: elset :: plust :: intok :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: endt :: semicolon :: thent :: rparen :: nil), first Sym A, (_96 = notexp _239), parse [exp _96,B|Alpha] [A|Beta] Result Str. parse [rparen,exp _96,lparen,B|Alpha] [A|Beta] Result "reduce" :- member B (printt :: whilet :: assignt :: plust :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: ift :: lparen :: nil), member Sym (eofs :: stat _55530 :: elset :: plust :: intok :: minust :: timest :: dividet :: andt :: ort :: eqt :: lesst :: endt :: semicolon :: thent :: rparen :: nil), first Sym A, (true), parse [exp _96,B|Alpha] [A|Beta] Result Str. parse [exp _260,printt,B|Alpha] [A|Beta] Result "reduce" :- member B (bofs :: thent :: elset :: exp _57078 :: intok :: begint :: semicolon :: nil), member Sym (eofs :: elset :: endt :: semicolon :: nil), first Sym A, (_257 = printst _260), parse [stat _257,B|Alpha] [A|Beta] Result Str. parse [astat _270,B|Alpha] [A|Beta] Result "reduce" :- member B (bofs :: thent :: elset :: exp _58378 :: intok :: begint :: semicolon :: nil), member Sym (eofs :: elset :: endt :: semicolon :: nil), first Sym A, (_257 = _270), parse [stat _257,B|Alpha] [A|Beta] Result Str. parse [exp _282,assignt,id _279,B|Alpha] [A|Beta] Result "reduce" :- member B (bofs :: lett :: thent :: elset :: exp _679843 :: intok :: begint :: semicolon :: nil), member Sym (eofs :: intok :: elset :: endt :: semicolon :: nil), first Sym A, (_277 = assignst (varexp _279) _282), parse [astat _277,B|Alpha] [A|Beta] Result Str. parse [stat _298,thent,exp _295,ift,B|Alpha] [A|Beta] Result "reduce" :- member B (bofs :: thent :: elset :: exp _60413 :: intok :: begint :: semicolon :: nil), member Sym (eofs :: elset :: endt :: semicolon :: nil), first Sym A, (_257 = ifst _295 _298), parse [stat _257,B|Alpha] [A|Beta] Result Str. parse [stat _315,elset,stat _312,thent,exp _309,ift,B|Alpha] [A|Beta] Result "reduce" :- member B (bofs :: elset :: exp _62947 :: intok :: thent :: begint :: semicolon :: nil), member Sym (eofs :: endt :: semicolon :: elset :: nil), first Sym A, (_257 = ifelsest _309 _312 _315), parse [stat _257,B|Alpha] [A|Beta] Result Str. parse [stat _329,exp _326,whilet,B|Alpha] [A|Beta] Result "reduce" :- member B (bofs :: exp _65024 :: intok :: thent :: begint :: elset :: semicolon :: nil), member Sym (eofs :: endt :: semicolon :: elset :: nil), first Sym A, (_257 = whilest _326 _329), parse [stat _257,B|Alpha] [A|Beta] Result Str. parse [stat _343,intok,astat _340,lett,B|Alpha] [A|Beta] Result "reduce" :- member B (bofs :: intok :: thent :: begint :: elset :: exp _1104273 :: semicolon :: nil), member Sym (eofs :: endt :: semicolon :: elset :: nil), first Sym A, (formlet _340 _343 _257), parse [stat _257,B|Alpha] [A|Beta] Result Str. parse [endt,statlist _353,begint,B|Alpha] [A|Beta] Result "reduce" :- member B (bofs :: thent :: begint :: elset :: exp _1106381 :: intok :: semicolon :: nil), member Sym (eofs :: endt :: semicolon :: elset :: nil), first Sym A, (_257 = blockst _353), parse [stat _257,B|Alpha] [A|Beta] Result Str. parse V I R "failure" :- print "Parse Failed\n", !, fail.