Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- my $i3_packet_grammar = qr{
- # Start
- <nocontext:>
- <map> | <array>
- <rule: map>
- \(\[ <[entry]>+ % ( , ) \]\)
- (?{ my $tmp = {};
- my $arr = $MATCH{entry};
- foreach my $i (@$arr) {
- my @keys = keys(%$i);
- foreach my $k (@keys) {
- $tmp->{$k} = $i->{$k};
- };
- };
- $MATCH = $tmp;
- })
- <rule: entry>
- <key=string> \: <value>
- (?{ $MATCH = { $MATCH{key} => $MATCH{value} } })
- <rule: array>
- \(\{ <[value]>+ % ( , ) \}\)
- (?{ $MATCH = $MATCH{value} })
- <rule: value>
- <string>
- (?{ $MATCH = $MATCH{string} })
- | <number>
- (?{ $MATCH = $MATCH{number} })
- | <map>
- (?{ $MATCH = $MATCH{map} })
- | <array>
- (?{ $MATCH = $MATCH{array} })
- <token: string>
- ( \".*?(?<!\\)\" )
- <MATCH= (?{ unescape_string( $CAPTURE ); })>
- <token: number>
- ( [+-]?[0-9]*\.?[0-9]+(?:[eE][+-]?[0-9]+)? )
- <MATCH= (?{ $CAPTURE + 0; })>
- }xms;
Advertisement
Add Comment
Please, Sign In to add comment