File Coverage

blib/lib/SpeL/Object/Expression.pm
Criterion Covered Total %
statement 75 78 96.1
branch 9 12 75.0
condition n/a
subroutine 22 22 100.0
pod 1 1 100.0
total 107 113 94.6


line stmt bran cond sub pod time code
1             # -*- cperl -*-
2             # ABSTRACT: LaTeX expression object
3              
4              
5             package SpeL::Object::Expression;
6              
7 41     41   321 use SpeL::Object::MathUnit;
  41         82  
  41         1798  
8 41     41   209 use SpeL::Object::Variable;
  41         106  
  41         1902  
9 41     41   211 use SpeL::Object::Function;
  41         77  
  41         1373  
10 41     41   18880 use SpeL::Object::Fraction;
  41         129  
  41         2716  
11 41     41   19047 use SpeL::Object::Bracketconstruction;
  41         140  
  41         2342  
12 41     41   19630 use SpeL::Object::Expressionrest;
  41         136  
  41         2067  
13 41     41   249 use SpeL::Object::Limitsexpression;
  41         74  
  41         1439  
14 41     41   19801 use SpeL::Object::Underbrace;
  41         135  
  41         1966  
15 41     41   19032 use SpeL::Object::Overbrace;
  41         141  
  41         1970  
16 41     41   18401 use SpeL::Object::Number;
  41         131  
  41         1970  
17 41     41   19069 use SpeL::Object::Num;
  41         130  
  41         2413  
18 41     41   18367 use SpeL::Object::Qty;
  41         162  
  41         2413  
19 41     41   268 use SpeL::Object::Unop;
  41         76  
  41         1405  
20 41     41   18431 use SpeL::Object::MathEnvironmentInner;
  41         154  
  41         1997  
21 41     41   18168 use SpeL::Object::Matrix;
  41         164  
  41         2169  
22 41     41   19459 use SpeL::Object::Interval;
  41         139  
  41         2378  
23 41     41   248 use SpeL::Object::Command;
  41         71  
  41         1675  
24 41     41   18514 use SpeL::Object::Unit;
  41         153  
  41         1980  
25              
26 41     41   291 use parent 'Exporter';
  41         98  
  41         204  
27 41     41   2659 use Carp;
  41         84  
  41         2190  
28              
29 41     41   229 use Data::Dumper;
  41         70  
  41         14593  
30              
31              
32              
33             sub read {
34 427     427 1 11046 my $self = shift;
35 427         796 my ( $level ) = @_;
36              
37 427 100       1189 if ( exists $self->{Begintext} ) {
38             return
39             $self->{Begintext}->read( $level + 1 )
40             . ' ' .
41 4 100       29 ( exists $self->{Rest} ? $self->{Rest}->read( $level + 1 ) : '' );
42             }
43            
44 423 50       1057 if ( exists $self->{Absval} ) {
45             return $SpeL::I18n::lh
46             ->maketext( 'Absval',
47 0         0 $self->{Absval}->read( $level + 1 ) );
48             }
49              
50 423 50       1000 if ( exists $self->{Interval} ) {
51 0         0 return $self->{Interval}->read( $level + 1 );
52             }
53            
54 423 50       1086 if ( exists $self->{Ellipsis} ) {
55             return $SpeL::I18n::lh->maketext( 'dotdotdot' ) . ' ' .
56 0         0 $self->{Rest}->read( $level + 1 );
57             }
58              
59 423         745 my $sign = '';
60 423 100       1012 if ( exists $self->{Sign} ) {
61 14         29 $self->{Sign} =~ s/^\\pm$/plusminus/;
62 14         46 $sign = $SpeL::I18n::lh->maketext( $self->{Sign} ) . ' ';
63             }
64              
65             return
66             $sign . ' ' .
67             $self->{Component}->read( $level + 1 ) . ' ' .
68 423         3472 $self->{Rest}->read( $level + 1 )
69             ;
70             }
71              
72             1;
73              
74             __END__