I believe that no existing parser generator can generate a parser for TLA+ in a reasonable way. The decision was made long ago to generate it with a kludge based on javacc rather than implementing it from scratch (or on top of an existing lexer). That kludge requires modifying one or two of the files produced by javacc. This is documented in the tlatools/javacc/README subdirectory of the TLA+ Tools Eclipse package.
It is difficult to maintain software that is built on top of infrastructure whose authors care little whether their next release breaks applications that depend on it. Fortunately, we can at least avoid that problem with javacc by saving and executing the version used to construct the parser.
Leslie