Grammar
ANTLR4::Grammar
ANTLR4::Grammar
generates a Raku representation of an ANTLR4 AST.
Synopsis
use ANTLR4::Grammar;
my $ag = ANTLR4::Grammar.new;
say $ag.to-string('grammar Minimal { identifier : [A-Z][A-Za-z]+ ; }');
say $ag.file-to-string('ECMAScript.g4');
Installation
From the ecosystem using zef
:
zef install ANTLR4::Grammar
Documentation
In its simplest form, just use the to-string
method on an existing grammar
text to get back its closest Raku representation.
Extension
Suppose you don't like how the module formats the ANTLR grammar. Subclass this
module and override the to-lines
methods I've provided, or go all the way
back to the top level and replace the to-lines( Grammar $g )
with your own
inheritance hierarchy.
Maybe you want to add a way to create a bare-bones action class to go along
with your resulting grammar - override the to-string
method, you've got the
$grammar
value that you can walk through, and do your own thing.
Author
ā Jeffrey Goff, DrForr on #raku, https://github.com/drforr/
Maintained by the Raku community (2020-2023)
License
Artistic License 2.0