#!/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 } #### Error in SLIF parse: No lexemes accepted at line 4, column 70 * String before error: ::= 'User_Alias' User_Alias (':' User_Alias) * The error was at line 4, column 70, and at character 0x002a '*', ... * here: *\n User_Alias ::= NAME '=' User_List\n Marpa::R2 exception at test.pl line 10. #### Alias ::= 'User_Alias' User_Alias (':' User_Alias)* #### Alias ::= 'User_Alias' User_Alias #### Error in SLIF parse: No lexemes accepted at line 10, column 45 * String before error: ame>\n NAME ~ [A-Z]([A-Z][0-9]_) * The error was at line 10, column 45, and at character 0x002a '*', ... * here: *\n ws ~ [\\s]+\n