I was under the impression that its more BNF than EBNF ... whatever that means :)
meaning you don't use * to specify OPTIONAL rule, or zero or more times ... or whatever you mean by it :) see http://blogs.perl.org/users/jeffrey_kegler/2013/01/making-dsls-even-simpler.html#comment-311460 and http://stackoverflow.com/questions/18634749/marpa-parser-cant-seem-to-cope-with-optional-first-symbol
With that in mind I come up with something which doesn't croak on the SLIF; I've no idea what it does :)
sub get_grammar { return q{ :start ::= Alias :discard ~ ws Alias ::= 'User_Alias' User_Alias repeatUser_Alias | 'User_Alias' User_Alias repeatUser_Alias ::= manyColonUser_Alias ### repeated OPTIONALLY repeatUser_Alias ::= ### repeated many times manyColonUser_Alias ::= colonUser_Alias* colonUser_Alias ::= ':' User_Alias User_Alias ::= NAME '=' User_List User_List ::= User | User ',' User_List User ::= <user name> ws ~ [\s]+ NAME ~ <name_firstchar><name_restchars> name_firstchar ~ [A-Z] name_restchars ~ [A-Z0-9_]* <user name> ~ <username_firstchar><username_restchars> username_firstchar ~ [a-z] username_restchars ~ [a-z0-9_]* };
I'm eager to learn what you learn about this :)
In reply to Re: [Marpa::R2] Help with EBNF Grammar Formatting (SLIF is more BNF than EBNF)
by Anonymous Monk
in thread [Marpa::R2] Help with EBNF Grammar Formatting
by three18ti
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |