###############################################################################
# The receiver class can reshape the data at any given rule match.
###############################################################################
package JSONY::Receiver;
use base 'Pegex::Tree';
use boolean;
sub got_top_seq_entry { $_[1][0][0] }
sub got_top_map { $_[0]->got_map([$_[1]]) }
sub got_seq { $_[1]->[0] }
sub got_map { +{ map {($_->[0], $_->[1])} @{$_[1]->[0]} } }
sub got_string {"$_[1]"}
sub got_bare {
$_ = pop;
/^true$/ ? true :
/^false$/ ? false :
/^null$/ ? undef :
/^(
-?
(?: 0 | [1-9] [0-9]* )
(?: \. [0-9]* )?
(?: [eE] [\-\+]? [0-9]+ )?
)$/x ? ($_ + 0) :
"$_"
}
1;