myco 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/myco/bootstrap/component.rb +2 -0
- data/lib/myco/bootstrap/evaluator.rb +58 -0
- data/lib/myco/bootstrap/instance.rb +1 -1
- data/lib/myco/bootstrap/meme.rb +4 -9
- data/lib/myco/bootstrap.my +1 -1
- data/lib/myco/bootstrap.my.rb +1 -1
- data/lib/myco/code_loader.rb +6 -1
- data/lib/myco/code_tools/AST/ArgumentAssembly.my +8 -12
- data/lib/myco/code_tools/AST/ArgumentAssembly.my.rb +12 -9
- data/lib/myco/code_tools/AST/ArrayAssembly.my +2 -3
- data/lib/myco/code_tools/AST/ArrayAssembly.my.rb +2 -5
- data/lib/myco/code_tools/AST/Block.my +4 -4
- data/lib/myco/code_tools/AST/Block.my.rb +3 -7
- data/lib/myco/code_tools/AST/BlockArgument.my +4 -5
- data/lib/myco/code_tools/AST/BlockArgument.my.rb +2 -5
- data/lib/myco/code_tools/AST/BlockLiteral.my +3 -4
- data/lib/myco/code_tools/AST/BlockLiteral.my.rb +6 -6
- data/lib/myco/code_tools/AST/BlockParameter.my +4 -11
- data/lib/myco/code_tools/AST/BlockParameter.my.rb +4 -13
- data/lib/myco/code_tools/AST/BranchOperator.my +2 -3
- data/lib/myco/code_tools/AST/BranchOperator.my.rb +4 -9
- data/lib/myco/code_tools/AST/ConstantAccess.my +11 -8
- data/lib/myco/code_tools/AST/ConstantAccess.my.rb +16 -12
- data/lib/myco/code_tools/AST/ConstantAssignment.my +13 -5
- data/lib/myco/code_tools/AST/ConstantAssignment.my.rb +16 -11
- data/lib/myco/code_tools/AST/ConstantDefine.my +2 -3
- data/lib/myco/code_tools/AST/ConstantDefine.my.rb +3 -7
- data/lib/myco/code_tools/AST/DeclareCategory.my +4 -14
- data/lib/myco/code_tools/AST/DeclareCategory.my.rb +20 -36
- data/lib/myco/code_tools/AST/DeclareDecorator.my +2 -3
- data/lib/myco/code_tools/AST/DeclareDecorator.my.rb +3 -7
- data/lib/myco/code_tools/AST/DeclareExtension.my +22 -0
- data/lib/myco/code_tools/AST/DeclareExtension.my.rb +19 -0
- data/lib/myco/code_tools/AST/DeclareFile.my +4 -15
- data/lib/myco/code_tools/AST/DeclareFile.my.rb +34 -50
- data/lib/myco/code_tools/AST/DeclareMeme.my +5 -7
- data/lib/myco/code_tools/AST/DeclareMeme.my.rb +8 -17
- data/lib/myco/code_tools/AST/DeclareObject.my +6 -18
- data/lib/myco/code_tools/AST/DeclareObject.my.rb +41 -59
- data/lib/myco/code_tools/AST/DeclareString.my +2 -3
- data/lib/myco/code_tools/AST/DeclareString.my.rb +3 -7
- data/lib/myco/code_tools/AST/{MycoModuleScope.my → DeclaredScope.my} +15 -16
- data/lib/myco/code_tools/AST/{MycoModuleScope.my.rb → DeclaredScope.my.rb} +15 -20
- data/lib/myco/code_tools/AST/Invoke.my +8 -8
- data/lib/myco/code_tools/AST/Invoke.my.rb +13 -21
- data/lib/myco/code_tools/AST/InvokeMethod.my +2 -3
- data/lib/myco/code_tools/AST/InvokeMethod.my.rb +4 -9
- data/lib/myco/code_tools/AST/KeywordAssembly.my +3 -4
- data/lib/myco/code_tools/AST/KeywordAssembly.my.rb +2 -5
- data/lib/myco/code_tools/AST/KeywordOptionalParameter.my +16 -0
- data/lib/myco/code_tools/AST/KeywordOptionalParameter.my.rb +14 -0
- data/lib/myco/code_tools/AST/KeywordRequiredParameter.my +16 -0
- data/lib/myco/code_tools/AST/KeywordRequiredParameter.my.rb +13 -0
- data/lib/myco/code_tools/AST/KeywordRestParameter.my +16 -0
- data/lib/myco/code_tools/AST/KeywordRestParameter.my.rb +13 -0
- data/lib/myco/code_tools/AST/LocalVariableAccessAmbiguous.my +2 -3
- data/lib/myco/code_tools/AST/LocalVariableAccessAmbiguous.my.rb +2 -5
- data/lib/myco/code_tools/AST/LocalVariableAssignment.my +3 -3
- data/lib/myco/code_tools/AST/LocalVariableAssignment.my.rb +3 -7
- data/lib/myco/code_tools/AST/Node.my +32 -2
- data/lib/myco/code_tools/AST/Node.my.rb +34 -1
- data/lib/myco/code_tools/AST/NumericLiteral.my +15 -0
- data/lib/myco/code_tools/AST/NumericLiteral.my.rb +12 -0
- data/lib/myco/code_tools/AST/OptionalParameter.my +24 -0
- data/lib/myco/code_tools/AST/OptionalParameter.my.rb +19 -0
- data/lib/myco/code_tools/AST/ParameterAssembly.my +60 -103
- data/lib/myco/code_tools/AST/ParameterAssembly.my.rb +60 -121
- data/lib/myco/code_tools/AST/PipeOperator.my +2 -3
- data/lib/myco/code_tools/AST/PipeOperator.my.rb +3 -7
- data/lib/myco/code_tools/AST/Quest.my +8 -10
- data/lib/myco/code_tools/AST/Quest.my.rb +9 -13
- data/lib/myco/code_tools/AST/RequiredParameter.my +12 -0
- data/lib/myco/code_tools/AST/RequiredParameter.my.rb +10 -0
- data/lib/myco/code_tools/AST/RestParameter.my +12 -0
- data/lib/myco/code_tools/AST/RestParameter.my.rb +10 -0
- data/lib/myco/code_tools/AST/Script.my +4 -4
- data/lib/myco/code_tools/AST/Script.my.rb +3 -7
- data/lib/myco/code_tools/AST/Sequence.my +2 -3
- data/lib/myco/code_tools/AST/Sequence.my.rb +2 -5
- data/lib/myco/code_tools/AST/SplatValue.my +3 -4
- data/lib/myco/code_tools/AST/SplatValue.my.rb +2 -5
- data/lib/myco/code_tools/AST/{DynamicString.my → StringCompose.my} +3 -4
- data/lib/myco/code_tools/AST/{DynamicString.my.rb → StringCompose.my.rb} +4 -7
- data/lib/myco/code_tools/AST/StringLiteral.my +2 -3
- data/lib/myco/code_tools/AST/StringLiteral.my.rb +2 -5
- data/lib/myco/code_tools/AST/{DynamicSymbol.my → SymbolCompose.my} +3 -4
- data/lib/myco/code_tools/AST/{DynamicSymbol.my.rb → SymbolCompose.my.rb} +4 -7
- data/lib/myco/code_tools/AST/SymbolLiteral.my +2 -3
- data/lib/myco/code_tools/AST/SymbolLiteral.my.rb +2 -5
- data/lib/myco/code_tools/AST/ToRuby.my +40 -57
- data/lib/myco/code_tools/AST/ToRuby.my.rb +43 -52
- data/lib/myco/code_tools/AST/misc.my +19 -24
- data/lib/myco/code_tools/AST/misc.my.rb +18 -23
- data/lib/myco/code_tools/AST.my +17 -8
- data/lib/myco/code_tools/AST.my.rb +14 -7
- data/lib/myco/code_tools/Parser.my +1 -1
- data/lib/myco/code_tools/parser/MycoBuilder.my +3 -3
- data/lib/myco/code_tools/parser/MycoBuilder.my.rb +3 -3
- data/lib/myco/code_tools/parser/MycoGrammar.my +67 -74
- data/lib/myco/code_tools/parser/MycoGrammar.my.rb +211 -316
- data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/BytecodeHelpers.my +3 -3
- data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/BytecodeHelpers.my.rb +2 -2
- data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/BytecodeInstructions.my +9 -9
- data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/BytecodeInstructions.my.rb +9 -9
- data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/BytecodeParser.my +2 -2
- data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/BytecodeParser.my.rb +4 -1
- data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Grammar.my +2 -3
- data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Grammar.my.rb +2 -3
- data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Machine.my +1 -1
- data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Machine.my.rb +1 -1
- data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Processor.my +5 -5
- data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Processor.my.rb +5 -5
- data/lib/myco/command.my +1 -1
- data/lib/myco/command.my.rb +1 -1
- data/lib/myco/core/BasicDecorators.my +10 -8
- data/lib/myco/core/BasicDecorators.my.rb +7 -7
- data/lib/myco/core/BasicObject.my +38 -7
- data/lib/myco/core/BasicObject.my.rb +23 -4
- data/lib/myco/tools/BasicCommand.my +1 -1
- data/lib/myco/tools/BasicCommand.my.rb +1 -1
- data/lib/myco/version.rb +1 -1
- data/lib/myco.rb +3 -0
- metadata +41 -26
- data/lib/myco/code_tools/AST/ConstantReopen.my +0 -29
- data/lib/myco/code_tools/AST/ConstantReopen.my.rb +0 -35
@@ -48,10 +48,10 @@
|
|
48
48
|
self.left_chained_operations
|
49
49
|
).__send__(
|
50
50
|
:/,
|
51
|
-
self.
|
51
|
+
self.string_compose
|
52
52
|
).__send__(
|
53
53
|
:/,
|
54
|
-
self.
|
54
|
+
self.symbol_compose
|
55
55
|
).__send__(
|
56
56
|
:/,
|
57
57
|
self.left_chained_piping
|
@@ -175,7 +175,7 @@
|
|
175
175
|
self.r(::Myco.find_constant(:T).float.__send__(
|
176
176
|
:[],
|
177
177
|
:t0
|
178
|
-
)) { || (self.ast.
|
178
|
+
)) { || (self.ast.numeric(
|
179
179
|
self.__send__(:t0),
|
180
180
|
self.__send__(:t0).float
|
181
181
|
))}
|
@@ -184,7 +184,7 @@
|
|
184
184
|
self.r(::Myco.find_constant(:T).integer.__send__(
|
185
185
|
:[],
|
186
186
|
:t0
|
187
|
-
)) { || (self.ast.
|
187
|
+
)) { || (self.ast.numeric(
|
188
188
|
self.__send__(:t0),
|
189
189
|
self.__send__(:t0).integer
|
190
190
|
))}
|
@@ -193,9 +193,9 @@
|
|
193
193
|
self.r(::Myco.find_constant(:T).symbol.__send__(
|
194
194
|
:[],
|
195
195
|
:t0
|
196
|
-
)) { || (self.ast.
|
196
|
+
)) { || (self.ast.symbol(
|
197
197
|
self.__send__(:t0),
|
198
|
-
self.__send__(:t0).text.slice(::Range.new(
|
198
|
+
self.__send__(:t0).text.slice(::Myco.find_constant(:Range).new(
|
199
199
|
1,
|
200
200
|
-1
|
201
201
|
)).to_sym
|
@@ -256,7 +256,7 @@
|
|
256
256
|
:+,
|
257
257
|
::Myco.find_constant(:T).sstring_end
|
258
258
|
)
|
259
|
-
)) { || (self.ast.
|
259
|
+
)) { || (self.ast.symbol(
|
260
260
|
self.tb,
|
261
261
|
self.encode_escapes(self.tb.text)
|
262
262
|
))})}
|
@@ -281,7 +281,7 @@
|
|
281
281
|
:+,
|
282
282
|
::Myco.find_constant(:T).sstring_end
|
283
283
|
)
|
284
|
-
)) { || (self.ast.
|
284
|
+
)) { || (self.ast.symbol(
|
285
285
|
self.tb,
|
286
286
|
self.encode_escapes(self.tb.text).to_sym
|
287
287
|
))})}
|
@@ -294,7 +294,7 @@
|
|
294
294
|
).__send__(
|
295
295
|
:+,
|
296
296
|
::Myco.find_constant(:T).string_end
|
297
|
-
)) { || (self.ast.
|
297
|
+
)) { || (self.ast.symbol(
|
298
298
|
self.tb,
|
299
299
|
self.encode_escapes(self.tb.text).to_sym
|
300
300
|
))})}
|
@@ -307,11 +307,11 @@
|
|
307
307
|
).__send__(
|
308
308
|
:+,
|
309
309
|
::Myco.find_constant(:T).catgry_end
|
310
|
-
)) { || (self.ast.
|
310
|
+
)) { || (self.ast.symbol(
|
311
311
|
self.tb,
|
312
312
|
self.encode_escapes(self.tb.text).to_sym
|
313
313
|
))})}
|
314
|
-
declare_meme(:
|
314
|
+
declare_meme(:string_compose_part, [[:rule, []]], nil, ::Myco.cscope.dup) { |*| (self.r(::Myco.find_constant(:C).spc.__send__(:*).__send__(
|
315
315
|
:+,
|
316
316
|
self.expr_atom_not_string.__send__(
|
317
317
|
:[],
|
@@ -330,36 +330,36 @@
|
|
330
330
|
self.__send__(:n0),
|
331
331
|
self.__send__(:n1)
|
332
332
|
])})}
|
333
|
-
declare_meme(:
|
333
|
+
declare_meme(:string_compose_parts, [[:rule, []]], nil, ::Myco.cscope.dup) { |*| (self.r(self.string_compose_part.__send__(:+).__send__(
|
334
334
|
:[],
|
335
335
|
:nlist
|
336
336
|
)) { || (self.nlist.flatten)})}
|
337
|
-
declare_meme(:
|
337
|
+
declare_meme(:string_compose, [[:rule, []]], nil, ::Myco.cscope.dup) { |*| (self.r(self.lit_string.__send__(
|
338
338
|
:[],
|
339
339
|
:n0
|
340
340
|
).__send__(
|
341
341
|
:+,
|
342
|
-
self.
|
342
|
+
self.string_compose_parts.__send__(
|
343
343
|
:[],
|
344
344
|
:nrest
|
345
345
|
)
|
346
|
-
)) { || (self.ast.
|
346
|
+
)) { || (self.ast.string_compose(
|
347
347
|
self.__send__(:n0),
|
348
348
|
[self.__send__(:n0)].__send__(
|
349
349
|
:+,
|
350
350
|
self.nrest
|
351
351
|
)
|
352
352
|
))})}
|
353
|
-
declare_meme(:
|
353
|
+
declare_meme(:symbol_compose, [[:rule, []]], nil, ::Myco.cscope.dup) { |*| (self.r(self.lit_symstr.__send__(
|
354
354
|
:[],
|
355
355
|
:n0
|
356
356
|
).__send__(
|
357
357
|
:+,
|
358
|
-
self.
|
358
|
+
self.string_compose_parts.__send__(
|
359
359
|
:[],
|
360
360
|
:nrest
|
361
361
|
)
|
362
|
-
)) { || (self.ast.
|
362
|
+
)) { || (self.ast.symbol_compose(
|
363
363
|
self.__send__(:n0),
|
364
364
|
[self.__send__(:n0)].__send__(
|
365
365
|
:+,
|
@@ -419,7 +419,7 @@
|
|
419
419
|
:[],
|
420
420
|
:nrest
|
421
421
|
)
|
422
|
-
)) { || (self.ast.
|
422
|
+
)) { || (self.ast.array(
|
423
423
|
self.__send__(:n0),
|
424
424
|
[
|
425
425
|
self.__send__(:n0),
|
@@ -429,7 +429,7 @@
|
|
429
429
|
declare_meme(:id_as_symbol, [[:rule, []]], nil, ::Myco.cscope.dup) { |*| (self.r(::Myco.find_constant(:T).identifier.__send__(
|
430
430
|
:[],
|
431
431
|
:t0
|
432
|
-
)) { || (self.ast.
|
432
|
+
)) { || (self.ast.symbol(
|
433
433
|
self.__send__(:t0),
|
434
434
|
self.__send__(:t0).sym
|
435
435
|
))})}
|
@@ -725,7 +725,7 @@
|
|
725
725
|
]}
|
726
726
|
self.lhs.__send__(
|
727
727
|
:arguments=,
|
728
|
-
self.ast.
|
728
|
+
self.ast.args(
|
729
729
|
self.rhs,
|
730
730
|
arg_order
|
731
731
|
)
|
@@ -803,7 +803,7 @@
|
|
803
803
|
self.na,
|
804
804
|
nil,
|
805
805
|
:[],
|
806
|
-
self.ast.
|
806
|
+
self.ast.args(
|
807
807
|
self.na,
|
808
808
|
self.na.body
|
809
809
|
),
|
@@ -1039,7 +1039,7 @@
|
|
1039
1039
|
).__send__(
|
1040
1040
|
:+,
|
1041
1041
|
::Myco.find_constant(:T).args_end
|
1042
|
-
)) { || (self.ast.
|
1042
|
+
)) { || (self.ast.args(
|
1043
1043
|
self.tb,
|
1044
1044
|
::Myco.branch_op(:"||", self.nlist) {[]}
|
1045
1045
|
))})}
|
@@ -1061,11 +1061,45 @@
|
|
1061
1061
|
).__send__(
|
1062
1062
|
:+,
|
1063
1063
|
::Myco.find_constant(:T).array_end
|
1064
|
-
)) { || (self.ast.
|
1064
|
+
)) { || (self.ast.array(
|
1065
1065
|
self.tb,
|
1066
1066
|
::Myco.branch_op(:"||", self.nlist) {[]}
|
1067
1067
|
))})}
|
1068
|
-
declare_meme(:
|
1068
|
+
declare_meme(:param_sep, [], nil, ::Myco.cscope.dup) { |*| (::Myco.find_constant(:C).spc.__send__(:*).__send__(
|
1069
|
+
:+,
|
1070
|
+
::Myco.find_constant(:T).arg_sep
|
1071
|
+
).__send__(
|
1072
|
+
:+,
|
1073
|
+
::Myco.find_constant(:C).spc.__send__(:*)
|
1074
|
+
).__send__(:+).__send__(
|
1075
|
+
:/,
|
1076
|
+
::Myco.find_constant(:C).spc.__send__(:*).__send__(
|
1077
|
+
:+,
|
1078
|
+
::Myco.find_constant(:T).params_end.__send__(:!).__send__(:!)
|
1079
|
+
)
|
1080
|
+
))}
|
1081
|
+
declare_meme(:param_sep_opt, [], nil, ::Myco.cscope.dup) { |*| (::Myco.find_constant(:C).spc.__send__(
|
1082
|
+
:/,
|
1083
|
+
::Myco.find_constant(:T).arg_sep
|
1084
|
+
).__send__(:*))}
|
1085
|
+
declare_meme(:param_sepd, [], nil, ::Myco.cscope.dup) { |x| (self.r(x.__send__(
|
1086
|
+
:[],
|
1087
|
+
:n0
|
1088
|
+
).__send__(
|
1089
|
+
:+,
|
1090
|
+
self.param_sep
|
1091
|
+
)) { || (self.__send__(:n0))})}
|
1092
|
+
declare_meme(:req_param, [[:rule, []]], nil, ::Myco.cscope.dup) { |*| (self.r(::Myco.find_constant(:T).identifier.__send__(
|
1093
|
+
:[],
|
1094
|
+
:ti
|
1095
|
+
).__send__(
|
1096
|
+
:+,
|
1097
|
+
self.param_sep.__send__(:!).__send__(:!)
|
1098
|
+
)) { || (self.ast.reqprm(
|
1099
|
+
self.ti,
|
1100
|
+
self.ti.sym
|
1101
|
+
))})}
|
1102
|
+
declare_meme(:opt_param, [[:rule, []]], nil, ::Myco.cscope.dup) { |*| (self.r(::Myco.find_constant(:T).identifier.__send__(
|
1069
1103
|
:[],
|
1070
1104
|
:ti
|
1071
1105
|
).__send__(
|
@@ -1086,318 +1120,179 @@
|
|
1086
1120
|
:[],
|
1087
1121
|
:nv
|
1088
1122
|
)
|
1089
|
-
)) { || (
|
1090
|
-
|
1091
|
-
self.
|
1092
|
-
|
1093
|
-
|
1094
|
-
|
1095
|
-
|
1096
|
-
|
1097
|
-
|
1098
|
-
|
1123
|
+
)) { || (self.ast.optprm(
|
1124
|
+
self.ti,
|
1125
|
+
self.ti.sym,
|
1126
|
+
self.nv
|
1127
|
+
))})}
|
1128
|
+
declare_meme(:rest_param, [[:rule, []]], nil, ::Myco.cscope.dup) { |*| (self.r(::Myco.find_constant(:T).op_mult.__send__(
|
1129
|
+
:+,
|
1130
|
+
::Myco.find_constant(:C).spc_nl.__send__(:*)
|
1131
|
+
).__send__(
|
1132
|
+
:+,
|
1133
|
+
::Myco.find_constant(:T).identifier.__send__(
|
1099
1134
|
:[],
|
1100
1135
|
:ti
|
1101
|
-
)
|
1102
|
-
|
1103
|
-
|
1104
|
-
|
1105
|
-
|
1106
|
-
|
1107
|
-
|
1108
|
-
|
1109
|
-
)
|
1110
|
-
).__send__(
|
1111
|
-
:+,
|
1112
|
-
::Myco.find_constant(:C).spc_nl.__send__(:*)
|
1113
|
-
).__send__(
|
1114
|
-
:+,
|
1115
|
-
self.arg_expr.__send__(:-).__send__(
|
1116
|
-
:[],
|
1117
|
-
:nv
|
1118
|
-
)
|
1119
|
-
)) { || ([
|
1120
|
-
:kwargs,
|
1121
|
-
self.ast.lasgn(
|
1122
|
-
self.ti,
|
1123
|
-
self.ti.sym,
|
1124
|
-
::Myco.branch_op(:"||", self.nv) {self.ast.lit(
|
1125
|
-
self.to,
|
1126
|
-
:*
|
1127
|
-
)}
|
1128
|
-
)
|
1129
|
-
])}
|
1136
|
+
)
|
1137
|
+
)) { || (self.ast.restprm(
|
1138
|
+
self.ti,
|
1139
|
+
self.ti.sym
|
1140
|
+
))})}
|
1141
|
+
declare_meme(:kwopt_param, [[:rule, []]], nil, ::Myco.cscope.dup) { |*| (self.r(::Myco.find_constant(:T).identifier.__send__(
|
1142
|
+
:[],
|
1143
|
+
:ti
|
1130
1144
|
).__send__(
|
1131
|
-
|
1132
|
-
|
1133
|
-
:+,
|
1134
|
-
::Myco.find_constant(:C).spc_nl.__send__(:*)
|
1135
|
-
).__send__(
|
1136
|
-
:+,
|
1137
|
-
::Myco.find_constant(:T).identifier.__send__(
|
1138
|
-
:[],
|
1139
|
-
:ti
|
1140
|
-
)
|
1141
|
-
)) { || ([
|
1142
|
-
:kwrest,
|
1143
|
-
self.ti.sym
|
1144
|
-
])}
|
1145
|
+
:+,
|
1146
|
+
::Myco.find_constant(:C).spc_nl.__send__(:*)
|
1145
1147
|
).__send__(
|
1146
|
-
|
1147
|
-
|
1148
|
-
|
1149
|
-
|
1150
|
-
)
|
1151
|
-
:+,
|
1152
|
-
::Myco.find_constant(:T).identifier.__send__(
|
1153
|
-
:[],
|
1154
|
-
:ti
|
1155
|
-
)
|
1156
|
-
)) { || ([
|
1157
|
-
:rest,
|
1158
|
-
self.ti.sym
|
1159
|
-
])}
|
1148
|
+
:+,
|
1149
|
+
::Myco.find_constant(:T).meme_mark.__send__(
|
1150
|
+
:[],
|
1151
|
+
:to
|
1152
|
+
)
|
1160
1153
|
).__send__(
|
1161
|
-
|
1162
|
-
|
1163
|
-
:+,
|
1164
|
-
::Myco.find_constant(:C).spc_nl.__send__(:*)
|
1165
|
-
).__send__(
|
1166
|
-
:+,
|
1167
|
-
::Myco.find_constant(:T).identifier.__send__(
|
1168
|
-
:[],
|
1169
|
-
:ti
|
1170
|
-
)
|
1171
|
-
)) { || ([
|
1172
|
-
:block,
|
1173
|
-
self.ti.sym
|
1174
|
-
])}
|
1154
|
+
:+,
|
1155
|
+
::Myco.find_constant(:C).spc_nl.__send__(:*)
|
1175
1156
|
).__send__(
|
1176
|
-
:/,
|
1177
|
-
self.r(::Myco.find_constant(:T).identifier.__send__(
|
1178
|
-
:[],
|
1179
|
-
:ti
|
1180
|
-
)) { || ([
|
1181
|
-
:required,
|
1182
|
-
self.ti.sym
|
1183
|
-
])}
|
1184
|
-
))}
|
1185
|
-
declare_meme(:param_sepd, [[:rule, []]], nil, ::Myco.cscope.dup) { |*| (self.r(self.arg_sep.__send__(
|
1186
1157
|
:+,
|
1187
|
-
self.
|
1158
|
+
self.arg_expr.__send__(
|
1188
1159
|
:[],
|
1189
|
-
:
|
1160
|
+
:nv
|
1190
1161
|
)
|
1191
|
-
)) { || (self.
|
1192
|
-
|
1162
|
+
)) { || (self.ast.kwoptprm(
|
1163
|
+
self.ti,
|
1164
|
+
self.ti.sym,
|
1165
|
+
self.nv
|
1166
|
+
))})}
|
1167
|
+
declare_meme(:kwreq_param, [[:rule, []]], nil, ::Myco.cscope.dup) { |*| (self.r(::Myco.find_constant(:T).identifier.__send__(
|
1193
1168
|
:[],
|
1194
|
-
:
|
1169
|
+
:ti
|
1170
|
+
).__send__(
|
1171
|
+
:+,
|
1172
|
+
::Myco.find_constant(:C).spc_nl.__send__(:*)
|
1195
1173
|
).__send__(
|
1196
1174
|
:+,
|
1197
|
-
|
1175
|
+
::Myco.find_constant(:T).meme_mark.__send__(
|
1198
1176
|
:[],
|
1199
|
-
:
|
1177
|
+
:to
|
1200
1178
|
)
|
1201
1179
|
).__send__(
|
1202
1180
|
:+,
|
1203
|
-
self.
|
1204
|
-
)) { || (
|
1205
|
-
self.
|
1206
|
-
|
1207
|
-
|
1181
|
+
self.param_sep.__send__(:!).__send__(:!)
|
1182
|
+
)) { || (self.ast.kwreqprm(
|
1183
|
+
self.ti,
|
1184
|
+
self.ti.sym
|
1185
|
+
))})}
|
1186
|
+
declare_meme(:kwrest_param, [[:rule, []]], nil, ::Myco.cscope.dup) { |*| (self.r(::Myco.find_constant(:T).op_exp.__send__(
|
1187
|
+
:+,
|
1188
|
+
::Myco.find_constant(:C).spc_nl.__send__(:*)
|
1189
|
+
).__send__(
|
1190
|
+
:+,
|
1191
|
+
::Myco.find_constant(:T).identifier.__send__(
|
1192
|
+
:[],
|
1193
|
+
:ti
|
1194
|
+
)
|
1195
|
+
)) { || (self.ast.kwrestprm(
|
1196
|
+
self.ti,
|
1197
|
+
self.ti.sym
|
1198
|
+
))})}
|
1199
|
+
declare_meme(:block_param, [[:rule, []]], nil, ::Myco.cscope.dup) { |*| (self.r(::Myco.find_constant(:T).op_toproc.__send__(
|
1200
|
+
:+,
|
1201
|
+
::Myco.find_constant(:C).spc_nl.__send__(:*)
|
1202
|
+
).__send__(
|
1203
|
+
:+,
|
1204
|
+
::Myco.find_constant(:T).identifier.__send__(
|
1205
|
+
:[],
|
1206
|
+
:ti
|
1207
|
+
)
|
1208
|
+
)) { || (self.ast.blkprm(
|
1209
|
+
self.ti,
|
1210
|
+
self.ti.sym
|
1211
|
+
))})}
|
1208
1212
|
declare_meme(:param_list, [[:rule, []]], nil, ::Myco.cscope.dup) { |*| (self.r(::Myco.find_constant(:T).params_begin.__send__(
|
1209
1213
|
:[],
|
1210
1214
|
:tb
|
1211
1215
|
).__send__(
|
1212
1216
|
:+,
|
1213
|
-
|
1214
|
-
)
|
1215
|
-
|
1216
|
-
|
1217
|
-
[],
|
1218
|
-
nil,
|
1219
|
-
[],
|
1220
|
-
[],
|
1221
|
-
nil,
|
1222
|
-
nil
|
1223
|
-
))}.__send__(
|
1224
|
-
:/,
|
1225
|
-
self.r(::Myco.find_constant(:T).params_begin.__send__(
|
1217
|
+
self.param_sep_opt
|
1218
|
+
).__send__(
|
1219
|
+
:+,
|
1220
|
+
self.param_sepd(self.req_param).__send__(:*).__send__(
|
1226
1221
|
:[],
|
1227
|
-
:
|
1228
|
-
)
|
1229
|
-
|
1230
|
-
|
1231
|
-
|
1232
|
-
|
1233
|
-
|
1234
|
-
)
|
1235
|
-
|
1236
|
-
|
1237
|
-
))
|
1238
|
-
|
1239
|
-
|
1240
|
-
|
1241
|
-
|
1242
|
-
|
1243
|
-
|
1244
|
-
|
1245
|
-
|
1246
|
-
|
1247
|
-
|
1248
|
-
|
1249
|
-
|
1250
|
-
|
1251
|
-
|
1252
|
-
|
1253
|
-
|
1254
|
-
|
1255
|
-
|
1256
|
-
|
1257
|
-
|
1258
|
-
|
1259
|
-
|
1260
|
-
|
1261
|
-
|
1262
|
-
|
1263
|
-
|
1264
|
-
|
1265
|
-
|
1266
|
-
|
1267
|
-
|
1268
|
-
|
1269
|
-
|
1270
|
-
|
1271
|
-
|
1272
|
-
|
1273
|
-
|
1274
|
-
|
1275
|
-
|
1276
|
-
|
1277
|
-
|
1278
|
-
|
1279
|
-
|
1280
|
-
|
1281
|
-
|
1282
|
-
|
1283
|
-
self.
|
1284
|
-
|
1285
|
-
|
1286
|
-
|
1287
|
-
|
1288
|
-
|
1289
|
-
|
1290
|
-
|
1291
|
-
|
1292
|
-
|
1293
|
-
|
1294
|
-
|
1295
|
-
|
1296
|
-
|
1297
|
-
|
1298
|
-
|
1299
|
-
|
1300
|
-
|
1301
|
-
)}
|
1302
|
-
self.loop { || (
|
1303
|
-
::Myco.branch_op(:"||", ::Myco.branch_op(:"&&", self.plist.__send__(
|
1304
|
-
:[],
|
1305
|
-
0
|
1306
|
-
)) {self.plist.__send__(
|
1307
|
-
:[],
|
1308
|
-
0
|
1309
|
-
).__send__(
|
1310
|
-
:[],
|
1311
|
-
0
|
1312
|
-
).__send__(
|
1313
|
-
:==,
|
1314
|
-
:required
|
1315
|
-
)}) {self.__send__(:break)}
|
1316
|
-
post.push(self.plist.shift.__send__(
|
1317
|
-
:[],
|
1318
|
-
1
|
1319
|
-
))
|
1320
|
-
)}
|
1321
|
-
self.loop { || (
|
1322
|
-
::Myco.branch_op(:"||", ::Myco.branch_op(:"&&", self.plist.__send__(
|
1323
|
-
:[],
|
1324
|
-
0
|
1325
|
-
)) {self.plist.__send__(
|
1326
|
-
:[],
|
1327
|
-
0
|
1328
|
-
).__send__(
|
1329
|
-
:[],
|
1330
|
-
0
|
1331
|
-
).__send__(
|
1332
|
-
:==,
|
1333
|
-
:kwargs
|
1334
|
-
)}) {self.__send__(:break)}
|
1335
|
-
kwargs.push(self.plist.shift.__send__(
|
1336
|
-
:[],
|
1337
|
-
1
|
1338
|
-
))
|
1339
|
-
)}
|
1340
|
-
self.loop { || (
|
1341
|
-
::Myco.branch_op(:"||", ::Myco.branch_op(:"&&", self.plist.__send__(
|
1342
|
-
:[],
|
1343
|
-
0
|
1344
|
-
)) {self.plist.__send__(
|
1345
|
-
:[],
|
1346
|
-
0
|
1347
|
-
).__send__(
|
1348
|
-
:[],
|
1349
|
-
0
|
1350
|
-
).__send__(
|
1351
|
-
:==,
|
1352
|
-
:kwrest
|
1353
|
-
)}) {self.__send__(:break)}
|
1354
|
-
kwrest.push(self.plist.shift.__send__(
|
1355
|
-
:[],
|
1356
|
-
1
|
1357
|
-
))
|
1358
|
-
)}
|
1359
|
-
self.loop { || (
|
1360
|
-
::Myco.branch_op(:"||", ::Myco.branch_op(:"&&", self.plist.__send__(
|
1361
|
-
:[],
|
1362
|
-
0
|
1363
|
-
)) {self.plist.__send__(
|
1364
|
-
:[],
|
1365
|
-
0
|
1366
|
-
).__send__(
|
1367
|
-
:[],
|
1368
|
-
0
|
1369
|
-
).__send__(
|
1370
|
-
:==,
|
1371
|
-
:block
|
1372
|
-
)}) {self.__send__(:break)}
|
1373
|
-
block.push(self.plist.shift.__send__(
|
1374
|
-
:[],
|
1375
|
-
1
|
1376
|
-
))
|
1377
|
-
)}
|
1378
|
-
required = required
|
1379
|
-
optional = optional
|
1380
|
-
rest = rest.first
|
1381
|
-
post = post
|
1382
|
-
kwargs = kwargs
|
1383
|
-
kwrest = kwrest.first
|
1384
|
-
block = block.first
|
1385
|
-
block = ::Myco.branch_op(:"&&", block) {self.ast.blkprm(
|
1386
|
-
self.tb,
|
1387
|
-
block
|
1388
|
-
)}
|
1389
|
-
self.ast.args(
|
1390
|
-
self.tb,
|
1391
|
-
required,
|
1392
|
-
optional,
|
1393
|
-
rest,
|
1394
|
-
post,
|
1395
|
-
kwargs,
|
1396
|
-
kwrest,
|
1397
|
-
block
|
1398
|
-
)
|
1399
|
-
)}
|
1400
|
-
))}
|
1222
|
+
:required
|
1223
|
+
)
|
1224
|
+
).__send__(
|
1225
|
+
:+,
|
1226
|
+
self.param_sepd(self.opt_param).__send__(:*).__send__(
|
1227
|
+
:[],
|
1228
|
+
:optional
|
1229
|
+
)
|
1230
|
+
).__send__(
|
1231
|
+
:+,
|
1232
|
+
self.param_sepd(self.rest_param).__send__(:-).__send__(
|
1233
|
+
:[],
|
1234
|
+
:rest
|
1235
|
+
)
|
1236
|
+
).__send__(
|
1237
|
+
:+,
|
1238
|
+
self.param_sepd(self.req_param).__send__(:*).__send__(
|
1239
|
+
:[],
|
1240
|
+
:post
|
1241
|
+
)
|
1242
|
+
).__send__(
|
1243
|
+
:+,
|
1244
|
+
self.param_sepd(self.kwreq_param.__send__(
|
1245
|
+
:/,
|
1246
|
+
self.kwopt_param
|
1247
|
+
)).__send__(:*).__send__(
|
1248
|
+
:[],
|
1249
|
+
:kw
|
1250
|
+
)
|
1251
|
+
).__send__(
|
1252
|
+
:+,
|
1253
|
+
self.param_sepd(self.kwrest_param).__send__(:-).__send__(
|
1254
|
+
:[],
|
1255
|
+
:kwrest
|
1256
|
+
)
|
1257
|
+
).__send__(
|
1258
|
+
:+,
|
1259
|
+
self.param_sepd(self.block_param).__send__(:-).__send__(
|
1260
|
+
:[],
|
1261
|
+
:block
|
1262
|
+
)
|
1263
|
+
).__send__(
|
1264
|
+
:+,
|
1265
|
+
::Myco.find_constant(:T).params_end
|
1266
|
+
)) { || (
|
1267
|
+
kwrequired = self.kw.select { |x| (x.node_type.__send__(
|
1268
|
+
:==,
|
1269
|
+
:kwreqprm
|
1270
|
+
))}
|
1271
|
+
kwoptional = self.kw.select { |x| (x.node_type.__send__(
|
1272
|
+
:==,
|
1273
|
+
:kwoptprm
|
1274
|
+
))}
|
1275
|
+
self.ast.params(
|
1276
|
+
self.tb,
|
1277
|
+
self.required,
|
1278
|
+
self.optional,
|
1279
|
+
::Myco.branch_op(:"??", ::Myco.branch_op(:"&?", self.rest.__send__(
|
1280
|
+
:is_a?,
|
1281
|
+
::Myco.find_constant(:Array)
|
1282
|
+
)) {self.rest.first}) {self.rest},
|
1283
|
+
self.post,
|
1284
|
+
kwrequired,
|
1285
|
+
kwoptional,
|
1286
|
+
::Myco.branch_op(:"??", ::Myco.branch_op(:"&?", self.kwrest.__send__(
|
1287
|
+
:is_a?,
|
1288
|
+
::Myco.find_constant(:Array)
|
1289
|
+
)) {self.kwrest.first}) {self.kwrest},
|
1290
|
+
::Myco.branch_op(:"??", ::Myco.branch_op(:"&?", self.block.__send__(
|
1291
|
+
:is_a?,
|
1292
|
+
::Myco.find_constant(:Array)
|
1293
|
+
)) {self.block.first}) {self.block}
|
1294
|
+
)
|
1295
|
+
)})}
|
1401
1296
|
declare_meme(:left_op_normal, [], nil, ::Myco.cscope.dup) { |*| (::Myco.find_constant(:T).op_exp.__send__(
|
1402
1297
|
:/,
|
1403
1298
|
::Myco.find_constant(:T).op_mult
|
@@ -1862,7 +1757,7 @@
|
|
1862
1757
|
:[],
|
1863
1758
|
:nrest
|
1864
1759
|
)
|
1865
|
-
)) { || (self.ast.
|
1760
|
+
)) { || (self.ast.array(
|
1866
1761
|
self.__send__(:n0),
|
1867
1762
|
[
|
1868
1763
|
self.__send__(:n0),
|