http://qs321.pair.com?node_id=1168024


in reply to Perl 6 grammars - setting the actions object

One solution is to pass-through the made value instead of stringifying. There may be a better way of doing this (update: the post by moritz below is that better way), but this at least works:

token value { <val=object> | <val=string> | <val=number> | true | false | null } # ... given ~$/ { when "true" {make Bool::True;} when "false" {make Bool::False;} when "null" {make Any;} default { make $<val>.made; } }

Though it would probably be better to pass-through if $<val> is defined at all rather than rely on the stringified fall-through:

return make $<val>.made if $<val>; given ~$/ { when "true" {make Bool::True;} when "false" {make Bool::False;} when "null" {make Any;} default { die; } }

Good Day,
    Dean