#!/usr/bin/env perl
=head1 SYNOPSIS
foldand0rule9_4.pl
Try inputs:
a = 2*3+4 # Reducido a: a = 6
a = 2*[3+b] # syntax error
a = 2*3*b # Reducido a: a = 6*b
Compile it with
eyapp -m 'Calc' Rule9.yp
treereg -o T.pm -p 'R::' -m T Transform4
=cut
use warnings;
use strict;
use Calc;
use T;
sub R::TERMINAL::info { $_[0]{attr} }
my $parser = new Calc(yyprefix => "R::");
# stdin, prompt , read one line at time
$parser->YYPrompt("Arithmetic expression: ");
$parser->slurp_file('', "\n");
my $t = $parser->YYParse;
unless ($parser->YYNberr) {
print "\n***** Tree before the transformations ******\n";
print $t->str."\n";
$t->s(@T::all);
print "\n***** Tree after the transformations were applied ******\n";
print $t->str."\n";
}