#!/usr/bin/perl -w
use strict;
use Rule5;
use Parse::Eyapp::Base qw(insert_function);
use Shift;
=head1 SYNOPSIS
Compile the grammar and tree transformations first:
$ eyapp Rule5
$ treereg Shift
Then execute it with:
$ ./useruleandshift.pl
Try inputs:
a = b * 8
d = c * 16
=cut
sub SHIFTLEFT::info { $_[0]{shift} }
insert_function('TERMINAL::info', \&TERMINAL::attr);
my $parser = new Rule5();
$parser->YYPrompt('Arithmetic expression: ');
$parser->slurp_file('', "\n");
my $t = $parser->Run;
unless ($parser->YYNberr) {
print "***********\n",$t->str,"\n";
$t->s(@Shift::all);
print "***********\n",$t->str,"\n";
}