Ohm is a parsing toolkit consisting of a library and a domain-specific language. You can use it to parse custom file formats or quickly build parsers, interpreters, and compilers for programming languages.
Unlike many similar tools, Ohm completely separates grammars from semantic actions. This improves modularity and extensibility, and makes both grammars and semantic actions easier to read and understand.
The Ohm Editor provides instant feedback and an interactive visualization makes the entire execution of the parser visible and tangible. It'll make you feel like you have superpowers.