line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
# [[[ HEADER ]]] |
2
|
|
|
|
|
|
|
package # hide from PAUSE indexing |
3
|
|
|
|
|
|
|
rperloperations; ## no critic qw(Capitalization ProhibitMultiplePackages ProhibitReusedNames) # SYSTEM DEFAULT 3: allow multiple & lower case package names |
4
|
5
|
|
|
5
|
|
32
|
use strict; |
|
5
|
|
|
|
|
13
|
|
|
5
|
|
|
|
|
123
|
|
5
|
5
|
|
|
5
|
|
27
|
use warnings; |
|
5
|
|
|
|
|
7
|
|
|
5
|
|
|
|
|
211
|
|
6
|
|
|
|
|
|
|
our $VERSION = 0.001_700; |
7
|
5
|
|
|
5
|
|
30
|
use Carp; |
|
5
|
|
|
|
|
10
|
|
|
5
|
|
|
|
|
424
|
|
8
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
# NEED UPGRADE: make Grammars first-class citizens for full Perl 6 compatibility, we should have it done by Christmas XD |
10
|
|
|
|
|
|
|
#use parent qw(RPerl::GrammarComponent) |
11
|
|
|
|
|
|
|
|
12
|
|
|
|
|
|
|
# RPerl system builtin functions, RPerl to C++ name mapping, used in SubroutineCall.pm |
13
|
|
|
|
|
|
|
our $BUILTINS = { |
14
|
|
|
|
|
|
|
'blessed' => 'classname', |
15
|
|
|
|
|
|
|
'class' => 'classname', |
16
|
|
|
|
|
|
|
'to_string' => 'To_string', # DEV NOTE, CORRELATION #rp028: renamed from Perl to_string() to C++ To_string() to avoid error redefining std::to_string() |
17
|
|
|
|
|
|
|
# NEED REFACTOR: move SSE builtins to rperlsse.pm, create second $BUILTINS to be used in SubroutineCall.pm? |
18
|
|
|
|
|
|
|
'sse_number_pair::new_from_singleton_duplicate' => 'sse_number_pair__new_from_singleton_duplicate', |
19
|
|
|
|
|
|
|
'sse_number_pair::new_from_pair' => 'sse_number_pair__new_from_pair', |
20
|
|
|
|
|
|
|
'constant_sse_number_pair::new_from_singleton_duplicate' => 'constant_sse_number_pair__new_from_singleton_duplicate', |
21
|
|
|
|
|
|
|
'constant_sse_number_pair::new_from_pair' => 'constant_sse_number_pair__new_from_pair' |
22
|
|
|
|
|
|
|
}; |
23
|
|
|
|
|
|
|
|
24
|
|
|
|
|
|
|
# [[[ EXPRESSIONS ]]] |
25
|
5
|
|
|
5
|
|
2078
|
use RPerl::Operation::Expression::Operator::Bitwise::And; |
|
5
|
|
|
|
|
26
|
|
|
5
|
|
|
|
|
168
|
|
26
|
5
|
|
|
5
|
|
2019
|
use RPerl::Operation::Expression::Operator::Bitwise::OrXor; |
|
5
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
151
|
|
27
|
5
|
|
|
5
|
|
1958
|
use RPerl::Operation::Expression::Operator::Bitwise::Shift; |
|
5
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
158
|
|
28
|
5
|
|
|
5
|
|
1962
|
use RPerl::Operation::Expression::Operator::Bitwise::Negation; |
|
5
|
|
|
|
|
17
|
|
|
5
|
|
|
|
|
161
|
|
29
|
5
|
|
|
5
|
|
1901
|
use RPerl::Operation::Expression::Operator::Close; |
|
5
|
|
|
|
|
14
|
|
|
5
|
|
|
|
|
171
|
|
30
|
5
|
|
|
5
|
|
2101
|
use RPerl::Operation::Expression::Operator::Compare::EqualNotEqual; |
|
5
|
|
|
|
|
16
|
|
|
5
|
|
|
|
|
157
|
|
31
|
5
|
|
|
5
|
|
2092
|
use RPerl::Operation::Expression::Operator::Compare::LessThanGreaterThan; |
|
5
|
|
|
|
|
16
|
|
|
5
|
|
|
|
|
191
|
|
32
|
5
|
|
|
5
|
|
1948
|
use RPerl::Operation::Expression::Operator::List::Range; |
|
5
|
|
|
|
|
13
|
|
|
5
|
|
|
|
|
136
|
|
33
|
5
|
|
|
5
|
|
2104
|
use RPerl::Operation::Expression::Operator::Logical::And; |
|
5
|
|
|
|
|
14
|
|
|
5
|
|
|
|
|
151
|
|
34
|
5
|
|
|
5
|
|
2096
|
use RPerl::Operation::Expression::Operator::Logical::Negation; |
|
5
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
160
|
|
35
|
5
|
|
|
5
|
|
2082
|
use RPerl::Operation::Expression::Operator::Logical::OrXor; |
|
5
|
|
|
|
|
14
|
|
|
5
|
|
|
|
|
153
|
|
36
|
5
|
|
|
5
|
|
2044
|
use RPerl::Operation::Expression::Operator::Arithmetic::AddSubtract; |
|
5
|
|
|
|
|
14
|
|
|
5
|
|
|
|
|
172
|
|
37
|
5
|
|
|
5
|
|
1931
|
use RPerl::Operation::Expression::Operator::IncrementDecrement; |
|
5
|
|
|
|
|
14
|
|
|
5
|
|
|
|
|
190
|
|
38
|
5
|
|
|
5
|
|
2351
|
use RPerl::Operation::Expression::Operator::Arithmetic::MultiplyDivideModulo; |
|
5
|
|
|
|
|
16
|
|
|
5
|
|
|
|
|
187
|
|
39
|
5
|
|
|
5
|
|
2189
|
use RPerl::Operation::Expression::Operator::Arithmetic::Negative; |
|
5
|
|
|
|
|
16
|
|
|
5
|
|
|
|
|
163
|
|
40
|
5
|
|
|
5
|
|
1914
|
use RPerl::Operation::Expression::Operator::Arithmetic::Power; |
|
5
|
|
|
|
|
13
|
|
|
5
|
|
|
|
|
163
|
|
41
|
|
|
|
|
|
|
# DEV NOTE, CORRELATION #rp020: upon adding new named op file lib/RPerl/Operation/Expression/Operator/Named*/* also add in Named*.pm and rperloperations.* |
42
|
5
|
|
|
5
|
|
1916
|
use RPerl::Operation::Expression::Operator::Named; |
|
5
|
|
|
|
|
13
|
|
|
5
|
|
|
|
|
161
|
|
43
|
5
|
|
|
5
|
|
2003
|
use RPerl::Operation::Expression::Operator::Named::AbsoluteValue; |
|
5
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
178
|
|
44
|
5
|
|
|
5
|
|
2174
|
use RPerl::Operation::Expression::Operator::Named::Atan2; |
|
5
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
160
|
|
45
|
5
|
|
|
5
|
|
1943
|
use RPerl::Operation::Expression::Operator::Named::Chomp; |
|
5
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
152
|
|
46
|
5
|
|
|
5
|
|
2025
|
use RPerl::Operation::Expression::Operator::Named::Exp; |
|
5
|
|
|
|
|
14
|
|
|
5
|
|
|
|
|
153
|
|
47
|
5
|
|
|
5
|
|
2073
|
use RPerl::Operation::Expression::Operator::Named::Keys; |
|
5
|
|
|
|
|
19
|
|
|
5
|
|
|
|
|
191
|
|
48
|
5
|
|
|
5
|
|
2140
|
use RPerl::Operation::Expression::Operator::Named::Join; |
|
5
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
151
|
|
49
|
5
|
|
|
5
|
|
1919
|
use RPerl::Operation::Expression::Operator::Named::Pop; |
|
5
|
|
|
|
|
14
|
|
|
5
|
|
|
|
|
150
|
|
50
|
5
|
|
|
5
|
|
2034
|
use RPerl::Operation::Expression::Operator::Named::Push; |
|
5
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
157
|
|
51
|
5
|
|
|
5
|
|
2020
|
use RPerl::Operation::Expression::Operator::Named::Shift; |
|
5
|
|
|
|
|
14
|
|
|
5
|
|
|
|
|
162
|
|
52
|
5
|
|
|
5
|
|
2043
|
use RPerl::Operation::Expression::Operator::Named::Sort; |
|
5
|
|
|
|
|
13
|
|
|
5
|
|
|
|
|
150
|
|
53
|
5
|
|
|
5
|
|
2066
|
use RPerl::Operation::Expression::Operator::Named::Split; |
|
5
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
166
|
|
54
|
5
|
|
|
5
|
|
2050
|
use RPerl::Operation::Expression::Operator::Named::Reverse; |
|
5
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
161
|
|
55
|
5
|
|
|
5
|
|
2059
|
use RPerl::Operation::Expression::Operator::Named::Unshift; |
|
5
|
|
|
|
|
17
|
|
|
5
|
|
|
|
|
169
|
|
56
|
5
|
|
|
5
|
|
2000
|
use RPerl::Operation::Expression::Operator::Named::Values; |
|
5
|
|
|
|
|
14
|
|
|
5
|
|
|
|
|
173
|
|
57
|
5
|
|
|
5
|
|
2077
|
use RPerl::Operation::Expression::Operator::Named::Wait; |
|
5
|
|
|
|
|
12
|
|
|
5
|
|
|
|
|
150
|
|
58
|
5
|
|
|
5
|
|
1981
|
use RPerl::Operation::Expression::Operator::NamedUnary; |
|
5
|
|
|
|
|
18
|
|
|
5
|
|
|
|
|
174
|
|
59
|
5
|
|
|
5
|
|
2048
|
use RPerl::Operation::Expression::Operator::NamedUnary::ChangeDirectory; |
|
5
|
|
|
|
|
17
|
|
|
5
|
|
|
|
|
164
|
|
60
|
5
|
|
|
5
|
|
2098
|
use RPerl::Operation::Expression::Operator::NamedUnary::Cosine; |
|
5
|
|
|
|
|
12
|
|
|
5
|
|
|
|
|
158
|
|
61
|
5
|
|
|
5
|
|
2049
|
use RPerl::Operation::Expression::Operator::NamedUnary::Defined; |
|
5
|
|
|
|
|
16
|
|
|
5
|
|
|
|
|
157
|
|
62
|
5
|
|
|
5
|
|
2056
|
use RPerl::Operation::Expression::Operator::NamedUnary::Exists; |
|
5
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
149
|
|
63
|
5
|
|
|
5
|
|
1977
|
use RPerl::Operation::Expression::Operator::NamedUnary::FileExists; |
|
5
|
|
|
|
|
14
|
|
|
5
|
|
|
|
|
176
|
|
64
|
5
|
|
|
5
|
|
2009
|
use RPerl::Operation::Expression::Operator::NamedUnary::FileReadable; |
|
5
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
152
|
|
65
|
5
|
|
|
5
|
|
1968
|
use RPerl::Operation::Expression::Operator::NamedUnary::FileRegular; |
|
5
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
173
|
|
66
|
5
|
|
|
5
|
|
2166
|
use RPerl::Operation::Expression::Operator::NamedUnary::FileText; |
|
5
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
149
|
|
67
|
5
|
|
|
5
|
|
1970
|
use RPerl::Operation::Expression::Operator::NamedUnary::Length; |
|
5
|
|
|
|
|
18
|
|
|
5
|
|
|
|
|
177
|
|
68
|
5
|
|
|
5
|
|
2327
|
use RPerl::Operation::Expression::Operator::NamedUnary::Log; |
|
5
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
165
|
|
69
|
5
|
|
|
5
|
|
2110
|
use RPerl::Operation::Expression::Operator::NamedUnary::Random; |
|
5
|
|
|
|
|
17
|
|
|
5
|
|
|
|
|
171
|
|
70
|
5
|
|
|
5
|
|
2113
|
use RPerl::Operation::Expression::Operator::NamedUnary::Scalar; |
|
5
|
|
|
|
|
18
|
|
|
5
|
|
|
|
|
175
|
|
71
|
5
|
|
|
5
|
|
2169
|
use RPerl::Operation::Expression::Operator::NamedUnary::Sine; |
|
5
|
|
|
|
|
14
|
|
|
5
|
|
|
|
|
163
|
|
72
|
5
|
|
|
5
|
|
2019
|
use RPerl::Operation::Expression::Operator::NamedUnary::SquareRoot; |
|
5
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
158
|
|
73
|
5
|
|
|
5
|
|
1914
|
use RPerl::Operation::Expression::Operator::Open; |
|
5
|
|
|
|
|
16
|
|
|
5
|
|
|
|
|
178
|
|
74
|
5
|
|
|
5
|
|
1893
|
use RPerl::Operation::Expression::Operator::Print; |
|
5
|
|
|
|
|
13
|
|
|
5
|
|
|
|
|
159
|
|
75
|
5
|
|
|
5
|
|
1917
|
use RPerl::Operation::Expression::Operator::RegularExpression; |
|
5
|
|
|
|
|
14
|
|
|
5
|
|
|
|
|
154
|
|
76
|
5
|
|
|
5
|
|
1958
|
use RPerl::Operation::Expression::Operator::String::Concatenate; |
|
5
|
|
|
|
|
12
|
|
|
5
|
|
|
|
|
143
|
|
77
|
5
|
|
|
5
|
|
1871
|
use RPerl::Operation::Expression::Operator::String::Repeat; |
|
5
|
|
|
|
|
13
|
|
|
5
|
|
|
|
|
154
|
|
78
|
5
|
|
|
5
|
|
1856
|
use RPerl::Operation::Expression::Operator::Ternary; |
|
5
|
|
|
|
|
11
|
|
|
5
|
|
|
|
|
166
|
|
79
|
|
|
|
|
|
|
|
80
|
5
|
|
|
5
|
|
1779
|
use RPerl::Operation::Expression::ConstantCall; # grammar rule & operation |
|
5
|
|
|
|
|
12
|
|
|
5
|
|
|
|
|
149
|
|
81
|
5
|
|
|
5
|
|
1833
|
use RPerl::Operation::Expression::SubroutineCall; # grammar rule & operation |
|
5
|
|
|
|
|
14
|
|
|
5
|
|
|
|
|
168
|
|
82
|
5
|
|
|
5
|
|
2147
|
use RPerl::Operation::Expression::SubroutineCall::MethodCall; # grammar rule & operation |
|
5
|
|
|
|
|
16
|
|
|
5
|
|
|
|
|
185
|
|
83
|
5
|
|
|
5
|
|
2254
|
use RPerl::Operation::Expression::SubroutineCall::MethodCall::ConstructorCall; # grammar rule & operation |
|
5
|
|
|
|
|
17
|
|
|
5
|
|
|
|
|
179
|
|
84
|
|
|
|
|
|
|
|
85
|
|
|
|
|
|
|
# [[[ STATEMENTS ]]] |
86
|
|
|
|
|
|
|
|
87
|
5
|
|
|
5
|
|
2170
|
use RPerl::Operation::Statement::Conditional; # grammar rule & operation |
|
5
|
|
|
|
|
16
|
|
|
5
|
|
|
|
|
172
|
|
88
|
5
|
|
|
5
|
|
2231
|
use RPerl::Operation::Statement::Loop; # grammar rule & operation |
|
5
|
|
|
|
|
16
|
|
|
5
|
|
|
|
|
146
|
|
89
|
5
|
|
|
5
|
|
2346
|
use RPerl::Operation::Statement::Loop::For; # grammar rule & operation |
|
5
|
|
|
|
|
18
|
|
|
5
|
|
|
|
|
181
|
|
90
|
5
|
|
|
5
|
|
2056
|
use RPerl::Operation::Statement::Loop::ForEach; # grammar rule & operation |
|
5
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
161
|
|
91
|
5
|
|
|
5
|
|
1864
|
use RPerl::Operation::Statement::Loop::While; # grammar rule & operation |
|
5
|
|
|
|
|
14
|
|
|
5
|
|
|
|
|
161
|
|
92
|
5
|
|
|
5
|
|
1990
|
use RPerl::Operation::Statement::OperatorVoid::LoopControl; |
|
5
|
|
|
|
|
13
|
|
|
5
|
|
|
|
|
202
|
|
93
|
5
|
|
|
5
|
|
2295
|
use RPerl::Operation::Statement::OperatorVoid::Named::Return; |
|
5
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
146
|
|
94
|
5
|
|
|
5
|
|
2782
|
use RPerl::Operation::Statement::OperatorVoid::Named::Exit; |
|
5
|
|
|
|
|
17
|
|
|
5
|
|
|
|
|
222
|
|
95
|
5
|
|
|
5
|
|
1992
|
use RPerl::Operation::Statement::OperatorVoid::Named::Die; |
|
5
|
|
|
|
|
15
|
|
|
5
|
|
|
|
|
178
|
|
96
|
5
|
|
|
5
|
|
1933
|
use RPerl::Operation::Statement::OperatorVoid::Named::Croak; |
|
5
|
|
|
|
|
17
|
|
|
5
|
|
|
|
|
160
|
|
97
|
5
|
|
|
5
|
|
2081
|
use RPerl::Operation::Statement::OperatorVoid::Print; |
|
5
|
|
|
|
|
14
|
|
|
5
|
|
|
|
|
185
|
|
98
|
|
|
|
|
|
|
|
99
|
|
|
|
|
|
|
1; |