Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Because many don't know any better and are stuck in 70's parser tools mindset.

Tools like ANTLR[0], SableCC[1], JavaCC[2], MPS[5] and approaches like Attribute Grammars[3], Parsing expression grammars[4] are much more suitable for the modern days.

I don't know gprolog, but SWI has GUI tooling, compilation and I was already using it in 1997, so it is very sound toolchain.

[0] - http://www.antlr.org/

[1] - https://github.com/SableCC/sablecc

[2] - https://javacc.java.net/doc/JJTree.html

[3] - https://wiki.haskell.org/Attribute_grammar

[4] - https://en.wikipedia.org/wiki/Parsing_expression_grammar

[5] - https://www.jetbrains.com/mps



I've tried Antlr and it was a horrible experience compared to Menhir: Being stuck with LL(n) causes a lot of unnecessary refactoring, the syntax for anything out of the ordinary is arcane and IMO not well documented.

Give me the 70's tools any day.


You should of course use a tool that supports the grammar productions of the language being designed.

I just listed a few examples.


Menhir is hardly a 70s tool...


This is true of course. But it is ocamlyacc compatible and uses a separate lexer.

I'd at least say that it is using the lex/yacc approach, which I actually like.


LL(n) can be limiting indeed. But you can easily mix, say, PEG and Pratt. Because where else do you need LR-like parsing but in the binary expressions, the C-style dot syntax and so on.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: