%% generate tags start %% #software-engineering %% generate tags end %% #software-engineering/javascript 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. The _Ohm language_ is based on [parsing expression grammars](http://en.wikipedia.org/wiki/Parsing_expression_grammar) (PEGs), which are a formal way of describing syntax, similar to regular expressions and context-free grammars. The _Ohm library_ provides a JavaScript interface for creating parsers, interpreters, and more from the grammars you write. ## First Tutorial %% run start ```ts const {LinkPreview} = customJS return LinkPreview.getLinkPreviewFromUrl("https://nextjournal.com/dubroy/ohm-parsing-made-easy") ``` %% <div class="nifty-link-card-container"> <a class="nifty-link-card" href="https://nextjournal.com/dubroy/ohm-parsing-made-easy" target="_blank"> <div class="nifty-link-card-text"> <div class="nifty-link-card-title line-clamp-2">Ohm: Parsing Made Easy</div> <div class="nifty-link-card-description">Ohm is a parsing library for JavaScript, which was created at HARC to support our programming language research. We think of it as a language implementation toolkit that lets you quickly prototype new languages and experiment with extensions to existing languages. You can use Ohm to parse custom file formats or quickly build parsers, interpreters, and compilers for programming languages.</div> <div class="nifty-link-href"> <img class="nifty-link-icon" src="https://nextjournal.com/images/favicon/apple-touch-icon-144.png"> https://nextjournal.com/dubroy/ohm-parsing-made-easy </div> </div> <div class="nifty-link-image-container"> <div class="nifty-link-image" style="background-image: url('https://cdn.nextjournal.com/data/QmPrWLsbXH8q3NkbvpByESUm2o27vvdzBm13cQ1k58RDFW?content-type=image%2Fpng')"> </div> </div> </a> </div> %% run end %% ## How to Use? ## Alternative and Comparison