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
|
4
|
|
|
4
|
|
24
|
use strict; |
|
4
|
|
|
|
|
8
|
|
|
4
|
|
|
|
|
93
|
|
5
|
4
|
|
|
4
|
|
17
|
use warnings; |
|
4
|
|
|
|
|
8
|
|
|
4
|
|
|
|
|
126
|
|
6
|
|
|
|
|
|
|
our $VERSION = 0.001_700; |
7
|
4
|
|
|
4
|
|
18
|
use Carp; |
|
4
|
|
|
|
|
7
|
|
|
4
|
|
|
|
|
358
|
|
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
|
4
|
|
|
4
|
|
1154
|
use RPerl::Operation::Expression::Operator::Bitwise::And; |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
102
|
|
26
|
4
|
|
|
4
|
|
1161
|
use RPerl::Operation::Expression::Operator::Bitwise::OrXor; |
|
4
|
|
|
|
|
9
|
|
|
4
|
|
|
|
|
114
|
|
27
|
4
|
|
|
4
|
|
1078
|
use RPerl::Operation::Expression::Operator::Bitwise::Shift; |
|
4
|
|
|
|
|
11
|
|
|
4
|
|
|
|
|
113
|
|
28
|
4
|
|
|
4
|
|
1241
|
use RPerl::Operation::Expression::Operator::Bitwise::Negation; |
|
4
|
|
|
|
|
11
|
|
|
4
|
|
|
|
|
113
|
|
29
|
4
|
|
|
4
|
|
1130
|
use RPerl::Operation::Expression::Operator::Close; |
|
4
|
|
|
|
|
9
|
|
|
4
|
|
|
|
|
114
|
|
30
|
4
|
|
|
4
|
|
1077
|
use RPerl::Operation::Expression::Operator::Compare::EqualNotEqual; |
|
4
|
|
|
|
|
11
|
|
|
4
|
|
|
|
|
126
|
|
31
|
4
|
|
|
4
|
|
1242
|
use RPerl::Operation::Expression::Operator::Compare::LessThanGreaterThan; |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
139
|
|
32
|
4
|
|
|
4
|
|
1098
|
use RPerl::Operation::Expression::Operator::List::Range; |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
102
|
|
33
|
4
|
|
|
4
|
|
1054
|
use RPerl::Operation::Expression::Operator::Logical::And; |
|
4
|
|
|
|
|
12
|
|
|
4
|
|
|
|
|
106
|
|
34
|
4
|
|
|
4
|
|
1080
|
use RPerl::Operation::Expression::Operator::Logical::Negation; |
|
4
|
|
|
|
|
11
|
|
|
4
|
|
|
|
|
115
|
|
35
|
4
|
|
|
4
|
|
1046
|
use RPerl::Operation::Expression::Operator::Logical::OrXor; |
|
4
|
|
|
|
|
11
|
|
|
4
|
|
|
|
|
121
|
|
36
|
4
|
|
|
4
|
|
1056
|
use RPerl::Operation::Expression::Operator::Arithmetic::AddSubtract; |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
108
|
|
37
|
4
|
|
|
4
|
|
999
|
use RPerl::Operation::Expression::Operator::IncrementDecrement; |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
115
|
|
38
|
4
|
|
|
4
|
|
1101
|
use RPerl::Operation::Expression::Operator::Arithmetic::MultiplyDivideModulo; |
|
4
|
|
|
|
|
14
|
|
|
4
|
|
|
|
|
120
|
|
39
|
4
|
|
|
4
|
|
1018
|
use RPerl::Operation::Expression::Operator::Arithmetic::Negative; |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
118
|
|
40
|
4
|
|
|
4
|
|
1039
|
use RPerl::Operation::Expression::Operator::Arithmetic::Power; |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
121
|
|
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
|
4
|
|
|
4
|
|
1086
|
use RPerl::Operation::Expression::Operator::Named; |
|
4
|
|
|
|
|
12
|
|
|
4
|
|
|
|
|
135
|
|
43
|
4
|
|
|
4
|
|
1035
|
use RPerl::Operation::Expression::Operator::Named::AbsoluteValue; |
|
4
|
|
|
|
|
12
|
|
|
4
|
|
|
|
|
115
|
|
44
|
4
|
|
|
4
|
|
1169
|
use RPerl::Operation::Expression::Operator::Named::Atan2; |
|
4
|
|
|
|
|
11
|
|
|
4
|
|
|
|
|
137
|
|
45
|
4
|
|
|
4
|
|
1224
|
use RPerl::Operation::Expression::Operator::Named::Chomp; |
|
4
|
|
|
|
|
12
|
|
|
4
|
|
|
|
|
122
|
|
46
|
4
|
|
|
4
|
|
1197
|
use RPerl::Operation::Expression::Operator::Named::Exp; |
|
4
|
|
|
|
|
12
|
|
|
4
|
|
|
|
|
123
|
|
47
|
4
|
|
|
4
|
|
1089
|
use RPerl::Operation::Expression::Operator::Named::Keys; |
|
4
|
|
|
|
|
12
|
|
|
4
|
|
|
|
|
122
|
|
48
|
4
|
|
|
4
|
|
1171
|
use RPerl::Operation::Expression::Operator::Named::Join; |
|
4
|
|
|
|
|
11
|
|
|
4
|
|
|
|
|
129
|
|
49
|
4
|
|
|
4
|
|
1217
|
use RPerl::Operation::Expression::Operator::Named::Pop; |
|
4
|
|
|
|
|
13
|
|
|
4
|
|
|
|
|
118
|
|
50
|
4
|
|
|
4
|
|
1246
|
use RPerl::Operation::Expression::Operator::Named::Push; |
|
4
|
|
|
|
|
11
|
|
|
4
|
|
|
|
|
120
|
|
51
|
4
|
|
|
4
|
|
1104
|
use RPerl::Operation::Expression::Operator::Named::Shift; |
|
4
|
|
|
|
|
11
|
|
|
4
|
|
|
|
|
114
|
|
52
|
4
|
|
|
4
|
|
1106
|
use RPerl::Operation::Expression::Operator::Named::Sort; |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
132
|
|
53
|
4
|
|
|
4
|
|
1123
|
use RPerl::Operation::Expression::Operator::Named::Split; |
|
4
|
|
|
|
|
13
|
|
|
4
|
|
|
|
|
131
|
|
54
|
4
|
|
|
4
|
|
1103
|
use RPerl::Operation::Expression::Operator::Named::Reverse; |
|
4
|
|
|
|
|
11
|
|
|
4
|
|
|
|
|
136
|
|
55
|
4
|
|
|
4
|
|
1148
|
use RPerl::Operation::Expression::Operator::Named::Unshift; |
|
4
|
|
|
|
|
12
|
|
|
4
|
|
|
|
|
286
|
|
56
|
4
|
|
|
4
|
|
1180
|
use RPerl::Operation::Expression::Operator::Named::Values; |
|
4
|
|
|
|
|
12
|
|
|
4
|
|
|
|
|
142
|
|
57
|
4
|
|
|
4
|
|
1105
|
use RPerl::Operation::Expression::Operator::Named::Wait; |
|
4
|
|
|
|
|
12
|
|
|
4
|
|
|
|
|
124
|
|
58
|
4
|
|
|
4
|
|
1041
|
use RPerl::Operation::Expression::Operator::NamedUnary; |
|
4
|
|
|
|
|
12
|
|
|
4
|
|
|
|
|
121
|
|
59
|
4
|
|
|
4
|
|
1091
|
use RPerl::Operation::Expression::Operator::NamedUnary::ChangeDirectory; |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
141
|
|
60
|
4
|
|
|
4
|
|
1136
|
use RPerl::Operation::Expression::Operator::NamedUnary::Cosine; |
|
4
|
|
|
|
|
12
|
|
|
4
|
|
|
|
|
111
|
|
61
|
4
|
|
|
4
|
|
1046
|
use RPerl::Operation::Expression::Operator::NamedUnary::Defined; |
|
4
|
|
|
|
|
11
|
|
|
4
|
|
|
|
|
110
|
|
62
|
4
|
|
|
4
|
|
1051
|
use RPerl::Operation::Expression::Operator::NamedUnary::Exists; |
|
4
|
|
|
|
|
11
|
|
|
4
|
|
|
|
|
169
|
|
63
|
4
|
|
|
4
|
|
1043
|
use RPerl::Operation::Expression::Operator::NamedUnary::FileExists; |
|
4
|
|
|
|
|
9
|
|
|
4
|
|
|
|
|
113
|
|
64
|
4
|
|
|
4
|
|
1095
|
use RPerl::Operation::Expression::Operator::NamedUnary::FileReadable; |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
113
|
|
65
|
4
|
|
|
4
|
|
1429
|
use RPerl::Operation::Expression::Operator::NamedUnary::FileRegular; |
|
4
|
|
|
|
|
14
|
|
|
4
|
|
|
|
|
128
|
|
66
|
4
|
|
|
4
|
|
1146
|
use RPerl::Operation::Expression::Operator::NamedUnary::FileText; |
|
4
|
|
|
|
|
11
|
|
|
4
|
|
|
|
|
113
|
|
67
|
4
|
|
|
4
|
|
1090
|
use RPerl::Operation::Expression::Operator::NamedUnary::Length; |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
112
|
|
68
|
4
|
|
|
4
|
|
1050
|
use RPerl::Operation::Expression::Operator::NamedUnary::Log; |
|
4
|
|
|
|
|
13
|
|
|
4
|
|
|
|
|
126
|
|
69
|
4
|
|
|
4
|
|
1107
|
use RPerl::Operation::Expression::Operator::NamedUnary::Random; |
|
4
|
|
|
|
|
12
|
|
|
4
|
|
|
|
|
110
|
|
70
|
4
|
|
|
4
|
|
1114
|
use RPerl::Operation::Expression::Operator::NamedUnary::Scalar; |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
125
|
|
71
|
4
|
|
|
4
|
|
1070
|
use RPerl::Operation::Expression::Operator::NamedUnary::Sine; |
|
4
|
|
|
|
|
8
|
|
|
4
|
|
|
|
|
143
|
|
72
|
4
|
|
|
4
|
|
1085
|
use RPerl::Operation::Expression::Operator::NamedUnary::SquareRoot; |
|
4
|
|
|
|
|
11
|
|
|
4
|
|
|
|
|
113
|
|
73
|
4
|
|
|
4
|
|
1028
|
use RPerl::Operation::Expression::Operator::Open; |
|
4
|
|
|
|
|
8
|
|
|
4
|
|
|
|
|
110
|
|
74
|
4
|
|
|
4
|
|
989
|
use RPerl::Operation::Expression::Operator::Print; |
|
4
|
|
|
|
|
11
|
|
|
4
|
|
|
|
|
126
|
|
75
|
4
|
|
|
4
|
|
1261
|
use RPerl::Operation::Expression::Operator::RegularExpression; |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
126
|
|
76
|
4
|
|
|
4
|
|
1179
|
use RPerl::Operation::Expression::Operator::String::Concatenate; |
|
4
|
|
|
|
|
11
|
|
|
4
|
|
|
|
|
105
|
|
77
|
4
|
|
|
4
|
|
1012
|
use RPerl::Operation::Expression::Operator::String::Repeat; |
|
4
|
|
|
|
|
9
|
|
|
4
|
|
|
|
|
112
|
|
78
|
4
|
|
|
4
|
|
1079
|
use RPerl::Operation::Expression::Operator::Ternary; |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
125
|
|
79
|
|
|
|
|
|
|
|
80
|
4
|
|
|
4
|
|
994
|
use RPerl::Operation::Expression::ConstantCall; # grammar rule & operation |
|
4
|
|
|
|
|
8
|
|
|
4
|
|
|
|
|
122
|
|
81
|
4
|
|
|
4
|
|
972
|
use RPerl::Operation::Expression::SubroutineCall; # grammar rule & operation |
|
4
|
|
|
|
|
7
|
|
|
4
|
|
|
|
|
114
|
|
82
|
4
|
|
|
4
|
|
1072
|
use RPerl::Operation::Expression::SubroutineCall::MethodCall; # grammar rule & operation |
|
4
|
|
|
|
|
8
|
|
|
4
|
|
|
|
|
117
|
|
83
|
4
|
|
|
4
|
|
1225
|
use RPerl::Operation::Expression::SubroutineCall::MethodCall::ConstructorCall; # grammar rule & operation |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
129
|
|
84
|
|
|
|
|
|
|
|
85
|
|
|
|
|
|
|
# [[[ STATEMENTS ]]] |
86
|
|
|
|
|
|
|
|
87
|
4
|
|
|
4
|
|
1106
|
use RPerl::Operation::Statement::Conditional; # grammar rule & operation |
|
4
|
|
|
|
|
12
|
|
|
4
|
|
|
|
|
131
|
|
88
|
4
|
|
|
4
|
|
1062
|
use RPerl::Operation::Statement::Loop; # grammar rule & operation |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
119
|
|
89
|
4
|
|
|
4
|
|
1303
|
use RPerl::Operation::Statement::Loop::For; # grammar rule & operation |
|
4
|
|
|
|
|
13
|
|
|
4
|
|
|
|
|
149
|
|
90
|
4
|
|
|
4
|
|
1158
|
use RPerl::Operation::Statement::Loop::ForEach; # grammar rule & operation |
|
4
|
|
|
|
|
11
|
|
|
4
|
|
|
|
|
126
|
|
91
|
4
|
|
|
4
|
|
1071
|
use RPerl::Operation::Statement::Loop::While; # grammar rule & operation |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
121
|
|
92
|
4
|
|
|
4
|
|
1063
|
use RPerl::Operation::Statement::OperatorVoid::LoopControl; |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
108
|
|
93
|
4
|
|
|
4
|
|
1364
|
use RPerl::Operation::Statement::OperatorVoid::Named::Return; |
|
4
|
|
|
|
|
9
|
|
|
4
|
|
|
|
|
111
|
|
94
|
4
|
|
|
4
|
|
1122
|
use RPerl::Operation::Statement::OperatorVoid::Named::Exit; |
|
4
|
|
|
|
|
11
|
|
|
4
|
|
|
|
|
120
|
|
95
|
4
|
|
|
4
|
|
1108
|
use RPerl::Operation::Statement::OperatorVoid::Named::Die; |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
124
|
|
96
|
4
|
|
|
4
|
|
1088
|
use RPerl::Operation::Statement::OperatorVoid::Named::Croak; |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
120
|
|
97
|
4
|
|
|
4
|
|
1101
|
use RPerl::Operation::Statement::OperatorVoid::Print; |
|
4
|
|
|
|
|
12
|
|
|
4
|
|
|
|
|
110
|
|
98
|
|
|
|
|
|
|
|
99
|
|
|
|
|
|
|
1; |