--- /dev/null
+#!/usr/bin/perl -w
+
+use v5.16;
+use strict;
+
+say <<'HEAD';
+%{
+ my $count = 0;
+%}
+
+%start e
+
+%%
+HEAD
+
+my $prev;
+while (<>) {
+ chomp;
+ last if /^$/;
+ my ($src, $dst) = /(\w+) => (\w+)/;
+ $dst =~ s/(?=[A-Z])/ /g;
+ if (!$prev || $src ne $prev) {
+ if ($prev) {
+ say "\t;";
+ }
+ if ($src eq 'e') {
+ say "$src:";
+ } else {
+ say "$src :\t'$src'";
+ }
+ }
+ if ($src eq 'e' && $prev ne $src) {
+ say "\t $dst { shift->YYData->{count}++ }";
+ } else {
+ say "\t| $dst { shift->YYData->{count}++ }";
+ }
+ $prev = $src;
+}
+say "\t;";
+say '%%';