File Coverage

blib/lib/RPerl/Operation/Expression/Operator/Open.pm
Criterion Covered Total %
statement 34 45 75.5
branch 1 2 50.0
condition n/a
subroutine 6 8 75.0
pod n/a
total 41 55 74.5


line stmt bran cond sub pod time code
1             # [[[ DOCUMENTATION ]]]
2             # http://perldoc.perl.org/functions/open.html
3             # NOT SUPPORTED: open FILEHANDLE,EXPR
4             # SUPPORTED: open FILEHANDLE,MODE,EXPR
5             # NOT SUPPORTED: open FILEHANDLE,MODE,EXPR,LIST
6             # NOT SUPPORTED: open FILEHANDLE,MODE,REFERENCE
7             # NOT SUPPORTED: open FILEHANDLE
8              
9             # [[[ HEADER ]]]
10             package RPerl::Operation::Expression::Operator::Open;
11 4     4   23 use strict;
  4         8  
  4         97  
12 4     4   22 use warnings;
  4         10  
  4         98  
13 4     4   19 use RPerl::AfterSubclass;
  4         8  
  4         480  
14             our $VERSION = 0.001_000;
15              
16             # [[[ OO INHERITANCE ]]]
17 4     4   23 use parent qw(RPerl::Operation::Expression::Operator);
  4         10  
  4         24  
18 4     4   228 use RPerl::Operation::Expression::Operator;
  4         9  
  4         1158  
19              
20             # [[[ CRITICS ]]]
21             ## no critic qw(ProhibitUselessNoCritic ProhibitMagicNumbers RequireCheckedSyscalls) # USER DEFAULT 1: allow numeric values & print operator
22             ## no critic qw(RequireInterpolationOfMetachars) # USER DEFAULT 2: allow single-quoted control characters & sigils
23              
24             # [[[ OO PROPERTIES ]]]
25             our hashref $properties = {};
26              
27             # [[[ SUBROUTINES & OO METHODS ]]]
28              
29             sub ast_to_rperl__generate {
30 3     3   10 { my string_hashref::method $RETURN_TYPE };
  3         10  
31 3         9 ( my object $self, my string_hashref $modes) = @ARG;
32 3         17 my string_hashref $rperl_source_group = { PMC => q{} };
33 3         10 my string_hashref $rperl_source_subgroup;
34              
35             # RPerl::diag( 'in Operator::Open->ast_to_rperl__generate(), received $self = ' . "\n" . RPerl::Parser::rperl_ast__dump($self) . "\n" );
36              
37 3         10 my string $self_class = ref $self;
38 3 50       15 if ( $self_class eq 'Operator_96' ) { # Operator -> OP01_OPEN MY TYPE_FHREF FHREF_SYMBOL OP21_LIST_COMMA LITERAL_STRING OP21_LIST_COMMA SubExpression
39 3         33 my string $open_operator = $self->{children}->[0];
40 3         14 my string $my = $self->{children}->[1];
41 3         9 my string $type_fhref = $self->{children}->[2];
42 3         12 my string $fhref_symbol = $self->{children}->[3];
43 3         11 my string $list_comma0 = $self->{children}->[4];
44 3         12 my string $open_mode = $self->{children}->[5];
45 3         10 my string $list_comma1 = $self->{children}->[6];
46 3         12 my object $subexpression = $self->{children}->[7];
47              
48             $rperl_source_group->{PMC}
49 3         21 .= $open_operator . q{ }
50             . $my . q{ }
51             . $type_fhref . q{ }
52             . $fhref_symbol
53             . $list_comma0 . q{ }
54             . $open_mode
55             . $list_comma1 . q{ };
56 3         72 $rperl_source_subgroup
57             = $subexpression->ast_to_rperl__generate($modes);
58 3         61 RPerl::Generator::source_group_append( $rperl_source_group,
59             $rperl_source_subgroup );
60             }
61             else {
62 0         0 die RPerl::Parser::rperl_rule__replace(
63             'ERROR ECOGEASRP00, CODE GENERATOR, ABSTRACT SYNTAX TO RPERL: Grammar rule '
64             . $self_class
65             . ' found where Operator_96 expected, dying' )
66             . "\n";
67             }
68 3         21 return $rperl_source_group;
69             }
70              
71             sub ast_to_cpp__generate__CPPOPS_PERLTYPES {
72 0     0     { my string_hashref::method $RETURN_TYPE };
  0            
73 0           ( my object $self, my string_hashref $modes) = @ARG;
74 0           my string_hashref $cpp_source_group
75             = { CPP =>
76             q{// <<< RP::O::E::O::O __DUMMY_SOURCE_CODE CPPOPS_PERLTYPES >>>}
77             . "\n" };
78              
79             #...
80 0           return $cpp_source_group;
81             }
82              
83             sub ast_to_cpp__generate__CPPOPS_CPPTYPES {
84 0     0     { my string_hashref::method $RETURN_TYPE };
  0            
85 0           ( my object $self, my string_hashref $modes) = @ARG;
86 0           my string_hashref $cpp_source_group
87             = { CPP =>
88             q{// <<< RP::O::E::O::O __DUMMY_SOURCE_CODE CPPOPS_CPPTYPES >>>}
89             . "\n" };
90              
91             #...
92 0           return $cpp_source_group;
93             }
94              
95             1; # end of class