LR1 parsers in OCaml