(* LL(1) #01 - E0 -> function ident -> E0 #02 - E0 -> let ident = E0 in E0 #03 - E0 -> letrec ident = E0 in E0 #04 - E0 -> if E0 then E0 else E0 #05 - E0 -> F TY EY EX #06 - EX -> = F TY EY EX #07 - EX -> #08 - EY -> + F TY EY #09 - EY -> - F TY EY #10 - EY -> #11 - TY -> * F TY #12 - TY -> / F TY #13 - TY -> #14 - F -> - F #15 - F -> ( E0 ) FX #16 - F -> ident FI #17 - F -> true #18 - F -> false #19 - F -> number #20 - FX -> ( E0 ) #21 - FX -> #22 - FI -> ( EO ) #23 - FI -> *)