line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
1
|
|
|
1
|
|
511
|
use strict; |
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
31
|
|
2
|
1
|
|
|
1
|
|
5
|
use warnings; |
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
47
|
|
3
|
|
|
|
|
|
|
|
4
|
|
|
|
|
|
|
package LispParser; |
5
|
1
|
|
|
1
|
|
5
|
use base qw( Parser::MGC ); |
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
585
|
|
6
|
|
|
|
|
|
|
|
7
|
1
|
|
|
1
|
|
7
|
use constant pattern_ident => qr{[[:alnum:]+*/._:-]+}; |
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
202
|
|
8
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
sub parse |
10
|
|
|
|
|
|
|
{ |
11
|
7
|
|
|
7
|
|
11
|
my $self = shift; |
12
|
|
|
|
|
|
|
|
13
|
|
|
|
|
|
|
$self->sequence_of( sub { |
14
|
|
|
|
|
|
|
$self->any_of( |
15
|
12
|
|
|
|
|
23
|
sub { $self->token_int }, |
16
|
6
|
|
|
|
|
14
|
sub { $self->token_string }, |
17
|
5
|
|
|
|
|
13
|
sub { \$self->token_ident }, |
18
|
3
|
|
|
|
|
16
|
sub { $self->scope_of( "(", \&parse, ")" ) } |
19
|
12
|
|
|
12
|
|
74
|
); |
20
|
7
|
|
|
|
|
41
|
} ); |
21
|
|
|
|
|
|
|
} |
22
|
|
|
|
|
|
|
|
23
|
1
|
|
|
1
|
|
762
|
use Data::Dumper; |
|
1
|
|
|
|
|
6751
|
|
|
1
|
|
|
|
|
149
|
|
24
|
|
|
|
|
|
|
|
25
|
|
|
|
|
|
|
if( !caller ) { |
26
|
|
|
|
|
|
|
my $parser = __PACKAGE__->new; |
27
|
|
|
|
|
|
|
|
28
|
|
|
|
|
|
|
print Dumper( $parser->from_file( $ARGV[0] ) ); |
29
|
|
|
|
|
|
|
} |
30
|
|
|
|
|
|
|
|
31
|
|
|
|
|
|
|
1; |