A thriving ecosystem of parsers, DSLs, and syntax extensions.
There is a rich landscape of modules that put Grammars to work. They can be found on
raku.land. Use, adapt, extend, collaborate or publish your own. Here is a selection - they fall into three natural families:
Custom Domain-Specific Languages
These modules define a bespoke mini-language for a particular problem domain. Modules with
DSL in the name translate natural-language commands into runnable code in multiple target languages; others define custom grammars for configuration, diagrams, or grammar meta-languages.
ANTLR4::Grammar — converts ANTLR4 grammar files into Raku grammars
Sparrow6 — task-runner automation DSL — define and run portable pipeline steps
Vixen — declarative reactive UI DSL for building browser interfaces
Standard-Format Parsers
These modules provide a Grammar and Actions pair for parsing an established, published format or language. Many follow the
…ish naming convention — a signal that the module speaks that format natively.
Cro::Template — Cro template construct grammar with named alternation
Gherkin::Grammar — BDD test specifications in 73 human languages
Grammar::HTTP — HTTP headers, message bodies, and URIs
Jinja2 — template syntax grammar using proto-token dispatch on delimiters
LaTeX::Grammar — LaTeX math expressions → MathJSON, MathML, AsciiMath
Markdown::Grammar — converts Markdown to Jupyter, Pod6, Org-mode, HTML
PDF::Grammar — grammars for PDF content streams, COS, FDF, and document structure
Rakudoc — Raku's native documentation format — grammar parses pod blocks, directives, and inline markup
XML — full-featured XML library built on a Raku grammar
YAMLish — pure-Raku YAML parser and emitter
Jinja2 Template
Proto tokens dispatch on sigil — one grammar covers text, expressions, and blocks.
A slang hooks a Grammar and Actions pair into Raku's own parser, extending the syntax of the language without any preprocessor or macro system. The
Slangify module (which inspired the name of this website) manages the lifecycle of all such slangs.
Grammar::Debugger — interactive step-debugger for any Raku grammar
Physics::Measure — unit expressions parsed from free text: "miles per hour", "mph", "m.s⁻¹"
Slang::Emoji — single emoji characters become valid scalar variables
Slang::Kazu — Japanese numeral literals in Raku source
Slang::Lambda — use λ as a pointy-block starter in place of
->
Slang::Roman — Roman-numeral literals:
0rMMXXVI evaluates to 2026
Slang::SQL — embed SQL literals directly in Raku source; parameterised queries included