#!/usr/bin/perl -w use strict; my $nt; BEGIN { $nt = 9 } use Test::More tests=>$nt; #use_ok qw(Parse::Eyapp) or exit; SKIP: { skip "t/dynamicresolution/pascalenumeratedvsrangesolvedviadyn.eyp not found", $nt unless ($ENV{DEVELOPER} && ($ENV{DEVELOPER} eq 'casiano') && -r "t/dynamicresolution/pascalenumeratedvsrangesolvedviadyn.eyp" && -x "./eyapp"); unlink 't/Calc.pm'; my $r = system(q{perl -I./lib/ eyapp -b '' -s -o t/dynamicresolution/persvd.pl t/dynamicresolution/pascalenumeratedvsrangesolvedviadyn.eyp}); ok(!$r, "standalone option"); ok(-s "t/dynamicresolution/persvd.pl", "modulino standalone exists"); ok(-x "t/dynamicresolution/persvd.pl", "modulino standalone has execution permits"); local $ENV{PERL5LIB}; my $eyapppath = shift @INC; # Supress ~/LEyapp/lib from search path eval { $r = qx{t/dynamicresolution/persvd.pl -t -c 'Type r = (x+2)*3 .. y/2 ;'}; }; ok(!$@,'pascalenumeratedvsrangesolvedviadyn executed as standalone modulino'); my $expected = q{ typeDecl_is_TYPE_ID_type(TERMINAL, TERMINAL, RANGE( expr_is_expr_TIMES_expr( expr_is_LP_expr_RP( expr_is_expr_PLUS_expr( ID( TERMINAL ), expr_is_NUM( TERMINAL ) ) ), expr_is_NUM( TERMINAL ) ), TERMINAL, expr_is_expr_DIV_expr( ID( TERMINAL ), expr_is_NUM( TERMINAL ) ) ) )}; $expected =~ s/\s+//g; $expected = quotemeta($expected); $expected = qr{$expected}; $r =~ s/\s+//g; like($r, $expected,'AST for Type r = (x+2)*3 .. y/2 ;'); eval { $r = qx{t/dynamicresolution/persvd.pl -t -c 'Type e = (x, y, z);'}; }; ok(!$@,'pascalenumeratedvsrangesolvedviadyn executed as standalone modulino'); $expected = q{ typeDecl_is_TYPE_ID_type( TERMINAL, TERMINAL, ENUM( idList_is_idList_COMMA_ID( idList_is_idList_COMMA_ID( ID( TERMINAL ), TERMINAL ), TERMINAL ) ) ) }; $expected =~ s/\s+//g; $expected = quotemeta($expected); $expected = qr{$expected}; $r =~ s/\s+//g; like($r, $expected,'AST for Type e = (x, y, z);'); eval { $r = qx{t/dynamicresolution/persvd.pl -t -c 'Type e = (x);'}; }; ok(!$@,'pascalenumeratedvsrangesolvedviadyn executed as standalone modulino'); $expected = q{ typeDecl_is_TYPE_ID_type( TERMINAL, TERMINAL, ENUM( ID( TERMINAL ) ) ) }; $expected =~ s/\s+//g; $expected = quotemeta($expected); $expected = qr{$expected}; $r =~ s/\s+//g; like($r, $expected,'AST for Type e = (x);'); unlink 't/dynamicresolution/persvd.pl'; }