#!/usr/bin/perl -w
use strict;
my $nt;
BEGIN { $nt = 4 }
use Test::More tests=> 2*$nt+2;
SKIP: {
skip "t/SemanticInfoInTokens.eyp not found", $nt unless ($ENV{DEVELOPER} && -r "t/SemanticInfoInTokens.eyp" && -x "./eyapp");
unlink 't/SemanticInfoInTokens.pl';
my $r = system(q{perl -I./lib/ eyapp -b '' -o t/SemanticInfoInTokens.pl t/SemanticInfoInTokens.eyp 2> t/err});
ok(!$r, "compiled t/SemanticInfoInTokens.eyp with eyapp");
ok(-s "t/SemanticInfoInTokens.pl", "modulino SemanticInfoInTokens.pl exists");
ok(-x "t/SemanticInfoInTokens.pl", "modulino SemanticInfoInTokens.pl has execution permits");
ok((-s 't/err' == 0), 'No warnings during compilation of t/SemanticInfoInTokens.eyp');
unlink 't/SemanticInfoInTokens.pl';
unlink 't/err';
}
SKIP: {
skip "t/syntactictoken.eyp not found", $nt+2 unless ($ENV{DEVELOPER} && -r "t/syntactictoken.eyp" && -x "./eyapp");
unlink 't/syntactictoken.pl';
my $r = system(q{perl -I./lib/ eyapp -TC -o t/syntactictoken.pl t/syntactictoken.eyp 2> t/err});
ok(!$r, "compiled t/syntactictoken.eyp with eyapp");
ok(-s "t/syntactictoken.pl", "modulino syntactictoken.pl exists");
ok(-x "t/syntactictoken.pl", "modulino syntactictoken.pl has execution permits");
ok((-s 't/err' == 0), 'No warnings during compilation of t/syntactictoken.eyp');
eval {
$r = qx{t/syntactictoken.pl -t -i -m 1 -c '4 2 a'};
};
ok(!$@,'t/syntactictoken.pl executed as modulino');
my $expected = q{
s_is_s_W(
s_is_s_N(
s_is_N(
TERMINAL[4]
),
TERMINAL[2]
),
TERMINAL[a]
)
};
$expected =~ s/\s+//g;
$expected = quotemeta($expected);
$expected = qr{$expected};
$r =~ s/\s+//g;
like($r, $expected,'AST for "4 2 a"');
unlink 't/syntactictoken.pl';
unlink 't/err';
}