#!/usr/bin/env perl use strict; use warnings; use warnings; use Marpa::R2; my $grammar_spec = get_grammar(); my $test_input = test_input(); my $grammar = Marpa::R2::Scanless::G->new({ source => \$grammar_spec, }); my $recce = Marpa::R2::Scanless::R->new({ grammar => $grammar }); $recce->read(\$test_input); my $val = $recce->value; sub get_grammar { return <<'END_GRAMMAR'; :start ::= Alias :discard ~ ws Alias ::= 'User_Alias' User_Alias (':' User_Alias)* User_Alias ::= NAME '=' User_List User_List ::= User | User ',' User_List User ::= NAME ~ [A-Z]([A-Z][0-9]_)* ws ~ [\s]+ ~ [a-z]([a-z][0-9]_)* END_GRAMMAR } sub test_input { return <<'END_INPUT'; User_Alias FOO = abc, def END_INPUT }