http://qs1969.pair.com?node_id=1168279


in reply to Perl 6 grammars - setting the actions object

The solution I used in JSON::Tiny is to have separate rules for the different literal values:

proto token value {*}; token value:sym<true> { <sym> }; token value:sym<false> { <sym> }; token value:sym<null> { <sym> }; ...

And then in the action class, have one method per literal:

method value:sym<true>($/) { make Bool::True } method value:sym<false>($/) { make Bool::False } method value:sym<null>($/) { make Any }

But the key is, as already mentioned by duelafn, to create the right object in the action directly, and not try to post-press the made value later on.