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, 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 — this site — 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