This looks amazing! I would love to have access to a tool like this for working on my current programming language project; is the tool available for download somewhere? I don't see anything about the editor in the Ohm repo[0].
Another cool thing would be to make an Ohm-to-Bison compiler; I'm not about to reimplement my whole language in Javascript, but I would love to prototype the grammar in the Ohm editor and then compile it down to Bison.
The grammar language looks unexciting, which is exactly what I want from a grammar language. Some kind of conversion is probably possible. But it looks like one of the really cool bits is being able to add actions to rules so easily, and that won't be as fluid in anything but Javascript.
Not sure what you mean here...are you asking if Ohm has any support for type checking a language that you create using Ohm?
If so, the answer is no -- not yet. But I could definitely imagine implementing a pluggable Semantics that could make this really easy to do for most languages. We are happy to accept pull requests :-)
> Does Ohm support indentation based syntax?
No, it's not (yet) possible to do this directly. Though it can be done with a simple preprocessing step that expands the source code to include explicit indent/dedent tokens.
It's definitely something we'd like to support, we just haven't settled on how.
> Does Ohm handle language composition (eg. JavaScript or CSS inside HTML)?
Yes and no. Right now, the only means of composition Ohm supports is grammar inheritance. This makes sense for things like ES5 and ES6, but not so much for the use case you describe. The problem is that inheritance won't work if you have any name clashes in the grammars.
We've considered something traits-like (http://scg.unibe.ch/archive/phd/schaerli-phd.pdf), but we're not sure whether it's worth the additional language complexity. A simple workaround for the use case you describe is to just parse in two phases: first match the HTML, allowing `any*` inside a script tag, then match the JavaScript inside a semantic action.
Another cool thing would be to make an Ohm-to-Bison compiler; I'm not about to reimplement my whole language in Javascript, but I would love to prototype the grammar in the Ohm editor and then compile it down to Bison.
[0]: https://github.com/cdglabs/ohm