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 ::= ws ~ [\s]+ NAME ~ name_firstchar ~ [A-Z] name_restchars ~ [A-Z0-9_]* ~ username_firstchar ~ [a-z] username_restchars ~ [a-z0-9_]* };