s{^\s+}{};
if (s{^[\$\@\%]?[_0-9a-zA-Z]+}{}) {
push @o, { T => 'ident', E => $&, P => $& };
s{^\s+}{};
if (s{^[\$\@\%]?[_0-9a-zA-Z]+}{}) {
push @o, { T => 'ident', E => $&, P => $& };
push @o, { T => 'heredoc', Q => $q, Delim => $d,
E => $&, P => "<<$q$d..." };
s{^
push @o, { T => 'heredoc', Q => $q, Delim => $d,
E => $&, P => "<<$q$d..." };
s{^
- push @o, { T => 'string', Q => $q, V => $v,
- I => $&, P => "$q-string" };
+ push @o, { T => 'string', E => $&, P => "$q-string",
+ Q => $q, V => $v};
- push @o, { T => 'op', E => $&, I => $& };
+ push @o, { T => 'op', E => $&, P => $& };
- push @o, { T => 'bra', E => $&, I => $& };
+ push @o, { T => 'bra', E => $&, P => $& };
- push @o, { T => 'ket', E => $&, I => $& };
+ push @o, { T => 'ket', E => $&, P => $& };
- push @o, { T => 'deref', E => $1, I => $1 },
- { T => 'bra', E => $2, I => $1 };
+ push @o, { T => 'deref', E => $1, P => $1 },
+ { T => 'bra', E => $2, P => $2 };
- push @o, { T => 'specvar', E => $&, I => $& };
+ push @o, { T => 'specvar', E => $&, P => $& };
my $next_before = sub { $next_something->(\@before, \$x, 'before'); };
my $next_after = sub { $next_something->(\@after , \$y, 'after' ); };
my $next_before = sub { $next_something->(\@before, \$x, 'before'); };
my $next_after = sub { $next_something->(\@after , \$y, 'after' ); };
- die "__ on non-string\n" unless Sis_string($y);
- die "__ on was non-string\n" unless $is_string($x);
+ die "__ on non-string $y->{P}\n" unless Sis_string->($y);
+ die "__ on was non-string $y->{P}\n" unless $is_string->($x);
- die "mismatch
-
- $exact->
-
- if ($fmt =~ m{
- if
-
- if ($y->{Q} eq $x->{Q} && $y->
-
- $y = shift @after;
- print Dumper($ichunkstart, $ichunkend, \@before, \@after);
- flush STDOUT;
+ die "mismatch $x->{P} => $y->{P}\n";
+ }