# Usage:
#   util/compile_p6grammar.pl examples/langs2.grammar > Langs2.pm
#   perl -MLangs2 -e 'print My::VB->def("Dim a, b As double")->{"My::C.var_list"}, "\n"'

# We use 'rule' instead of 'token' in this file
# (compared to examples/langs.grammar)

grammar My::C;

rule def {
    <type> <var_list> ';'
}

token type { int | float | double | char }

rule var_list {
    
<ident>**{1} [ ',' <ident> ]*
}

grammar My::VB;

rule def {
    
'Dim' <My::C.var_list>
    
[ 'As' <My::C.type> ]?
}