File Coverage

blib/lib/Anarres/Mud/Driver/Compiler.pm
Criterion Covered Total %
statement 27 43 62.7
branch 0 2 0.0
condition n/a
subroutine 9 12 75.0
pod 0 1 0.0
total 36 58 62.0


line stmt bran cond sub pod time code
1             package Anarres::Mud::Driver::Compiler;
2              
3 2     2   2385 use strict;
  2         4  
  2         68  
4 2     2   12 use warnings;
  2         5  
  2         64  
5 2     2   9 use vars qw($VERSION @ISA);
  2         4  
  2         110  
6 2     2   8 use Carp qw(cluck confess);
  2         3  
  2         174  
7              
8             require DynaLoader;
9              
10             $VERSION = 0.10;
11             @ISA = qw(DynaLoader);
12              
13 2     2   614 use Anarres::Mud::Driver::Compiler::Type;
  2         3  
  2         94  
14 2     2   1086 use Anarres::Mud::Driver::Compiler::Node;
  2         8  
  2         87  
15 2     2   1476 use Anarres::Mud::Driver::Compiler::Dump;
  2         5  
  2         80  
16 2     2   1618 use Anarres::Mud::Driver::Compiler::Check;
  2         8  
  2         102  
17 2     2   1560 use Anarres::Mud::Driver::Compiler::Generate;
  2         8  
  2         529  
18              
19             bootstrap Anarres::Mud::Driver::Compiler;
20              
21             sub compile {
22 0     0 0   my ($self, $path) = @_;
23 0           my $program = new Anarres::Mud::Driver::Program(
24             Path => $path,
25             );
26 0           my $data;
27             {
28 0           local $/ = undef;
  0            
29 0           local *FH;
30              
31 0 0         open(FH, "<$path") or die "Compiler: Cannot open file $path";
32 0           $data = ;
33 0           close(FH);
34             }
35              
36             {
37 0     0     local $SIG{__WARN__} = sub { cluck @_; };
  0            
  0            
38 0     0     local $SIG{__DIE__} = sub { confess @_; };
  0            
39 0           $self->parse($program, $data);
40             }
41              
42 0           return $program
43             }
44              
45             1;