#!/usr/bin/perl use strict; use warnings; use Devel::Peek; use Data::Dumper; my ($source, $local); BEGIN { $source = 'local/test.C'; $local = -r $source; } use Test::More tests => ($local ? 9 : 4); select STDERR; $|++; select STDOUT; $|++; $Data::Dumper::Indent = 1; use_ok('Anarres::Mud::Driver::Program'); use_ok('Anarres::Mud::Driver::Compiler'); use_ok('Anarres::Mud::Driver::Efun::Core'); my $compiler = new Anarres::Mud::Driver::Compiler; ok(defined($compiler), 'We constructed a compiler'); exit unless $local; my $program = $compiler->compile($source); ok(defined($program), 'Got a return value from compile() ...'); ok(ref($program) =~ m/::Program$/, '... which looks like a program'); # print $program->dump; ok($program->dump, 'Program appears to dump'); my $ch; eval { $ch = $program->check; ok($ch, 'Typechecked program'); }; die "TYPECHECK ERROR: $@" if $@; # print $program->dump, "\n"; ok($program->dump, 'Program still appears to dump'); # print Dumper($program); print $program->dump, "\n";