File Coverage

blib/lib/Repl/Core/Token.pm
Criterion Covered Total %
statement 33 39 84.6
branch 1 2 50.0
condition 3 6 50.0
subroutine 12 15 80.0
pod 0 14 0.0
total 49 76 64.4


line stmt bran cond sub pod time code
1             package Repl::Core::Token;
2            
3             # Pragma's.
4 1     1   6 use strict;
  1         2  
  1         521  
5            
6             # Uses.
7            
8             our %tokenTypes = (beginlist=>1,endlist=>1,string=>1,pair=>1,whitespace=>1,quote=>1,eof=>1,error=>1);
9            
10             sub new
11             {
12 812     812 0 897 my $invocant = shift;
13 812         3801 my %args = (TYPE=>"error", VALUE=>"", LINENO=>0, COLNO=>0, @_);
14 812   33     2649 my $class = ref($invocant) || $invocant;
15            
16             # Argument checking.
17 812 50       2054 die sprintf("Tokentype %s does not exist.", $args{TYPE}) unless exists $tokenTypes{$args{TYPE}};
18            
19             # Initialize the token instance.
20 812         1127 my $self = {};
21 812         1804 $self->{TYPE} = $args{TYPE};
22 812         1399 $self->{VALUE} = $args{VALUE};
23 812         1293 $self->{LINENO} = $args{LINENO};
24 812         1098 $self->{COLNO} = $args{COLNO};
25            
26 812         4610 return bless($self, $class);
27             }
28            
29             sub getType
30             {
31 0     0 0 0 my $self = shift;
32 0         0 return $self->{TYPE};
33             }
34            
35             sub getValue
36             {
37 288     288 0 285 my $self = shift;
38 288         2967 return $self->{VALUE};
39             }
40            
41             sub getLineNo
42             {
43 0     0 0 0 my $self = shift;
44 0         0 return $self->{LINENO};
45             }
46            
47             sub getColNo
48             {
49 0     0 0 0 my $self = shift;
50 0         0 return $self->{COLONO};
51             }
52            
53             sub isBeginList
54             {
55 913     913 0 989 my $self = shift;
56 913         3701 return $self->{TYPE} eq "beginlist";
57             }
58            
59             sub isEndList
60             {
61 450     450 0 484 my $self = shift;
62 450         1540 return $self->{TYPE} eq "endlist";
63             }
64            
65             sub isWhitespace
66             {
67 1603     1603 0 1684 my $self = shift;
68 1603         6085 return $self->{TYPE} eq "whitespace";
69             }
70            
71             sub isString
72             {
73 289     289 0 322 my $self = shift;
74 289         1252 return $self->{TYPE} eq "string";
75             }
76            
77             sub isError
78             {
79 1076     1076 0 1082 my $self = shift;
80 1076         10271 return $self->{TYPE} eq "error";
81             }
82            
83             sub isEof
84             {
85 1077     1077 0 1109 my $self = shift;
86 1077         5932 return $self->{TYPE} eq "eof";
87             }
88            
89             sub isErroneous
90             {
91 1076     1076 0 1169 my $self = shift;
92 1076   66     1678 return $self->isError() || $self->isEof();
93             }
94            
95             sub isQuote
96             {
97 1     1 0 3 my $self = shift;
98 1         6 return $self->{TYPE} eq "quote";
99             }
100            
101             sub isPair
102             {
103 400     400 0 447 my $self = shift;
104 400         1274 return $self->{TYPE} eq "pair";
105             }
106            
107             1;