3 ms·
Ohm is not really "just" a parser generator -- but that's the easiest way to describe it. The big idea in Ohm is its modular semantic actions. You can read mor
by pdubroy 9y ago
Ohm is not really "just" a parser generator -- but that's the easiest way to describe it.
The big idea in Ohm is its modular semantic actions. You can read more about the design -- and why we think it's interesting -- in our DLS paper: https://ohmlang.github.io/pubs/dls2016/modular-semantic-actions.pdf https://ohmlang.github.io/pubs/dls2016/modular-semantic-acti...
- richard_shelton 9y agoThank you for the answer! I understand that separation of the grammar and semantics has its benefits. You can use the same grammar description with different semantic rules sets etc. It's, indeed, a clean and interesting approach. But, as I understand, Ohm still has no support for context-sensitive grammars, which is more important to have in many cases, than proper left recursion handling. And oMeta had another nice feature: meta-rules (higher-order rules) which is absent in Ohm, if I understand correctly. Ohm tries to be very user-friendly, but at the price of droping the functionality. So in this case Ohm is not a modern replacement for oMeta (which had the AST transforming features -- very important for making compilers!). I'm not trying to be negative and I really wish a big success to your team!
- pdubroy 9y ago> But, as I understand, Ohm still has no support for context-sensitive grammars, which is more important to have in many cases, than proper left recursion handling. Right, we don't support context-sensitive grammars yet. But we'd like to -- we're just trying to figure out how to do it in a way that fits Ohm's design principles. I'm optimistic that we'll be able to do that.