File Coverage

blib/lib/RPerl/Operation/Statement/OperatorVoid.pm
Criterion Covered Total %
statement 35 42 83.3
branch 2 4 50.0
condition 31 42 73.8
subroutine 7 8 87.5
pod n/a
total 75 96 78.1


line stmt bran cond sub pod time code
1             # [[[ HEADER ]]]
2             package RPerl::Operation::Statement::OperatorVoid;
3 4     4   1109 use strict;
  4         9  
  4         110  
4 4     4   18 use warnings;
  4         9  
  4         81  
5 4     4   17 use RPerl::AfterSubclass;
  4         7  
  4         480  
6             our $VERSION = 0.002_000;
7              
8             # [[[ OO INHERITANCE ]]]
9 4     4   24 use parent qw(RPerl::Operation::Statement);
  4         6  
  4         22  
10 4     4   196 use RPerl::Operation::Statement;
  4         8  
  4         1279  
11              
12             # [[[ CRITICS ]]]
13             ## no critic qw(ProhibitUselessNoCritic ProhibitMagicNumbers RequireCheckedSyscalls) # USER DEFAULT 1: allow numeric values & print operator
14             ## no critic qw(RequireInterpolationOfMetachars) # USER DEFAULT 2: allow single-quoted control characters & sigils
15              
16             # [[[ INCLUDES ]]]
17             #use RPerl::Test::Foo; # NEED ANSWER: why are these here? old debugging code to be deleted?
18             #use RPerl::Test::Bar;
19              
20             # [[[ OO PROPERTIES ]]]
21             our hashref $properties = {};
22              
23             # [[[ SUBROUTINES & OO METHODS ]]]
24              
25             sub ast_to_rperl__generate {
26 1398     1398   2561 { my string_hashref::method $RETURN_TYPE };
  1398         3230  
27 1398         3502 ( my object $self, my string_hashref $modes) = @ARG;
28 1398         4605 my string_hashref $rperl_source_group = { PMC => q{} };
29 1398         3244 my string_hashref $rperl_source_subgroup;
30              
31             # RPerl::diag( 'in OperatorVoid->ast_to_rperl__generate(), received $self = ' . "\n" . RPerl::Parser::rperl_ast__dump($self) . "\n" );
32              
33             # Print, OperatorNamedVoid, OperatorNamed, LoopControl
34 1398         5502 my string $child0_class = ref $self->{children}->[0];
35 1398 50 100     16728 if ( ( $child0_class eq 'OperatorVoid_129' )
      100        
      100        
      100        
      100        
      100        
      66        
36             or ( $child0_class eq 'OperatorVoid_130' )
37             or ( $child0_class eq 'OperatorVoid_131' )
38             or ( $child0_class eq 'OperatorVoid_132' )
39             or ( $child0_class eq 'OperatorVoid_133' )
40             or ( $child0_class eq 'OperatorVoid_134' )
41             or ( $child0_class eq 'OperatorVoid_135' )
42             or ( $child0_class eq 'OperatorVoid_136' ) )
43             {
44             $rperl_source_subgroup
45 1398         31674 = $self->{children}->[0]->ast_to_rperl__generate($modes);
46 1377         28606 RPerl::Generator::source_group_append( $rperl_source_group,
47             $rperl_source_subgroup );
48             }
49             else {
50 0         0 die RPerl::Parser::rperl_rule__replace(
51             'ERROR ECOGEASRP00, CODE GENERATOR, ABSTRACT SYNTAX TO RPERL: Grammar rule '
52             . $child0_class
53             . ' found where OperatorVoid_129, OperatorVoid_130, OperatorVoid_121, OperatorVoid_134, OperatorVoid_121, OperatorVoid_134, OperatorVoid_135, or OperatorVoid_136 expected, dying'
54             ) . "\n";
55             }
56 1377         15359 return $rperl_source_group;
57             }
58              
59             sub ast_to_cpp__generate__CPPOPS_PERLTYPES {
60 0     0   0 { my string_hashref::method $RETURN_TYPE };
  0         0  
61 0         0 ( my object $self, my string_hashref $modes) = @ARG;
62 0         0 my string_hashref $cpp_source_group
63             = {
64             CPP => q{// <<< RP::O::S::OV __DUMMY_SOURCE_CODE CPPOPS_PERLTYPES >>>}
65             . "\n"
66             };
67              
68             #...
69 0         0 return $cpp_source_group;
70             }
71              
72             sub ast_to_cpp__generate__CPPOPS_CPPTYPES {
73 103     103   165 { my string_hashref::method $RETURN_TYPE };
  103         225  
74 103         206 ( my object $self, my string_hashref $modes) = @ARG;
75 103         273 my string_hashref $cpp_source_group = { CPP => q{} };
76 103         188 my string_hashref $cpp_source_subgroup;
77              
78             # RPerl::diag( 'in OperatorVoid->ast_to_cpp__generate__CPPOPS_CPPTYPES(), received $self = ' . "\n" . RPerl::Parser::rperl_ast__dump($self) . "\n" );
79              
80             # Print, OperatorNamedVoid, OperatorNamed, LoopControl
81 103         368 my string $child0_class = ref $self->{children}->[0];
82 103 50 66     646 if ( ( $child0_class eq 'OperatorVoid_129' )
      100        
      66        
      66        
      33        
      33        
      0        
83             or ( $child0_class eq 'OperatorVoid_130' )
84             or ( $child0_class eq 'OperatorVoid_131' )
85             or ( $child0_class eq 'OperatorVoid_132' )
86             or ( $child0_class eq 'OperatorVoid_133' )
87             or ( $child0_class eq 'OperatorVoid_134' )
88             or ( $child0_class eq 'OperatorVoid_135' )
89             or ( $child0_class eq 'OperatorVoid_136' ) )
90             {
91             $cpp_source_subgroup
92 103         2270 = $self->{children}->[0]->ast_to_cpp__generate__CPPOPS_CPPTYPES($modes);
93             # RPerl::diag( 'in OperatorVoid->ast_to_cpp__generate__CPPOPS_CPPTYPES(), have $cpp_source_subgroup = ' . "\n" . RPerl::Parser::rperl_ast__dump($cpp_source_subgroup) . "\n" );
94 103         2112 RPerl::Generator::source_group_append( $cpp_source_group,
95             $cpp_source_subgroup );
96             }
97             else {
98 0         0 die RPerl::Parser::rperl_rule__replace(
99             'ERROR ECOGEASCP00, CODE GENERATOR, ABSTRACT SYNTAX TO C++: Grammar rule '
100             . $child0_class
101             . ' found where OperatorVoid_129, OperatorVoid_130, OperatorVoid_121, OperatorVoid_134, OperatorVoid_121, OperatorVoid_134, OperatorVoid_135, or OperatorVoid_136 expected, dying'
102             ) . "\n";
103             }
104 103         1027 return $cpp_source_group;
105             }
106              
107             1; # end of class