File Coverage

blib/lib/RPerl/Operation/Expression/Operator/Open.pm
Criterion Covered Total %
statement 15 15 100.0
branch n/a
condition n/a
subroutine 5 5 100.0
pod n/a
total 20 20 100.0


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 5     5   30 use strict;
  5         14  
  5         180  
12 5     5   28 use warnings;
  5         37  
  5         122  
13 5     5   28 use RPerl::AfterSubclass;
  5         395  
  5         657  
14             our $VERSION = 0.001_000;
15              
16             # [[[ OO INHERITANCE ]]]
17 5     5   34 use parent qw(RPerl::Operation::Expression::Operator);
  5         10  
  5         30  
18 5     5   297 use RPerl::Operation::Expression::Operator;
  5         15  
  5         1674  
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             our string_hashref::method $ast_to_rperl__generate = sub {
30             ( my object $self, my string_hashref $modes) = @_;
31             my string_hashref $rperl_source_group = { PMC => q{} };
32             my string_hashref $rperl_source_subgroup;
33              
34             # RPerl::diag( 'in Operator::Open->ast_to_rperl__generate(), received $self = ' . "\n" . RPerl::Parser::rperl_ast__dump($self) . "\n" );
35              
36             my string $self_class = ref $self;
37             if ( $self_class eq 'Operator_85' ) { # Operator -> OP01_OPEN MY TYPE_FHREF FHREF_SYMBOL OP21_LIST_COMMA LITERAL_STRING OP21_LIST_COMMA SubExpression
38             my string $open_operator = $self->{children}->[0];
39             my string $my = $self->{children}->[1];
40             my string $type_fhref = $self->{children}->[2];
41             my string $fhref_symbol = $self->{children}->[3];
42             my string $list_comma0 = $self->{children}->[4];
43             my string $open_mode = $self->{children}->[5];
44             my string $list_comma1 = $self->{children}->[6];
45             my object $subexpression = $self->{children}->[7];
46              
47             $rperl_source_group->{PMC}
48             .= $open_operator . q{ }
49             . $my . q{ }
50             . $type_fhref . q{ }
51             . $fhref_symbol
52             . $list_comma0 . q{ }
53             . $open_mode
54             . $list_comma1 . q{ };
55             $rperl_source_subgroup
56             = $subexpression->ast_to_rperl__generate($modes);
57             RPerl::Generator::source_group_append( $rperl_source_group,
58             $rperl_source_subgroup );
59             }
60             else {
61             die RPerl::Parser::rperl_rule__replace(
62             'ERROR ECOGEASRP00, CODE GENERATOR, ABSTRACT SYNTAX TO RPERL: Grammar rule '
63             . $self_class
64             . ' found where Operator_85 expected, dying' )
65             . "\n";
66             }
67              
68             return $rperl_source_group;
69             };
70              
71             our string_hashref::method $ast_to_cpp__generate__CPPOPS_PERLTYPES = sub {
72             ( my object $self, my string_hashref $modes) = @_;
73             my string_hashref $cpp_source_group
74             = { CPP =>
75             q{// <<< RP::O::E::O::O __DUMMY_SOURCE_CODE CPPOPS_PERLTYPES >>>}
76             . "\n" };
77              
78             #...
79             return $cpp_source_group;
80             };
81              
82             our string_hashref::method $ast_to_cpp__generate__CPPOPS_CPPTYPES = sub {
83             ( my object $self, my string_hashref $modes) = @_;
84             my string_hashref $cpp_source_group
85             = { CPP =>
86             q{// <<< RP::O::E::O::O __DUMMY_SOURCE_CODE CPPOPS_CPPTYPES >>>}
87             . "\n" };
88              
89             #...
90             return $cpp_source_group;
91             };
92              
93             1; # end of class