myco 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/lib/myco/bootstrap/instance.rb +13 -3
  3. data/lib/myco/code_tools/AST.my +0 -2
  4. data/lib/myco/code_tools/AST.my.rb +0 -1
  5. data/lib/myco/code_tools/AST/Block.my +15 -4
  6. data/lib/myco/code_tools/AST/Block.my.rb +16 -3
  7. data/lib/myco/code_tools/AST/DeclareMeme.my +44 -64
  8. data/lib/myco/code_tools/AST/DeclareMeme.my.rb +66 -74
  9. data/lib/myco/code_tools/AST/ToRuby.my +17 -20
  10. data/lib/myco/code_tools/AST/ToRuby.my.rb +24 -22
  11. data/lib/myco/code_tools/Parser.my +2 -1
  12. data/lib/myco/code_tools/Parser.my.rb +2 -1
  13. data/lib/myco/code_tools/parser/MycoBuilder.my +2 -2
  14. data/lib/myco/code_tools/parser/MycoBuilder.my.rb +2 -2
  15. data/lib/myco/code_tools/parser/MycoGrammar.my +28 -21
  16. data/lib/myco/code_tools/parser/MycoGrammar.my.rb +94 -56
  17. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces.my +10 -11
  18. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces.my.rb +10 -9
  19. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/BytecodeHelpers.my +25 -3
  20. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/BytecodeHelpers.my.rb +38 -0
  21. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Capture.my +152 -0
  22. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Capture.my.rb +189 -0
  23. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Common.my +84 -0
  24. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Common.my.rb +114 -0
  25. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Common/Parser.my +139 -0
  26. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/{BytecodeParser.my.rb → Common/Parser.my.rb} +17 -36
  27. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Composite.my +229 -0
  28. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Composite.my.rb +296 -0
  29. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Grammar.my +8 -25
  30. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Grammar.my.rb +9 -37
  31. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Parser.my +139 -37
  32. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Parser.my.rb +206 -36
  33. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Processor.my +21 -12
  34. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Processor.my.rb +45 -24
  35. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Stream.my +99 -0
  36. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Stream.my.rb +152 -0
  37. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Stream/Parser.my +37 -0
  38. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Stream/Parser.my.rb +57 -0
  39. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/String.my +136 -0
  40. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/String.my.rb +147 -0
  41. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/String/Parser.my +45 -0
  42. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/String/Parser.my.rb +85 -0
  43. data/lib/myco/code_tools/parser/pegleromyces/spec/Patterns.test.my +31 -25
  44. data/lib/myco/code_tools/parser/pegleromyces/spec/Patterns.test.my.rb +44 -25
  45. data/lib/myco/code_tools/parser/pegleromyces/spec/Stream/Parser.test.my +49 -0
  46. data/lib/myco/code_tools/parser/pegleromyces/spec/Stream/Parser.test.my.rb +119 -0
  47. data/lib/myco/code_tools/parser/pegleromyces/spec/Stream/Patterns.test.my +131 -0
  48. data/lib/myco/code_tools/parser/pegleromyces/spec/Stream/Patterns.test.my.rb +595 -0
  49. data/lib/myco/code_tools/parser/pegleromyces/spec/{BytecodeParser.test.my → String/Parser.test.my} +41 -2
  50. data/lib/myco/code_tools/parser/pegleromyces/spec/{BytecodeParser.test.my.rb → String/Parser.test.my.rb} +144 -3
  51. data/lib/myco/code_tools/parser/pegleromyces/spec/run.my +4 -10
  52. data/lib/myco/code_tools/parser/pegleromyces/spec/run.my.rb +4 -8
  53. data/lib/myco/core.my +1 -0
  54. data/lib/myco/core.my.rb +1 -0
  55. data/lib/myco/core/BasicObject.my +4 -2
  56. data/lib/myco/core/BasicObject.my.rb +2 -5
  57. data/lib/myco/core/Loop.my +5 -0
  58. data/lib/myco/core/Loop.my.rb +13 -0
  59. data/lib/myco/dev.rb +1 -0
  60. data/lib/myco/dev/profile.rb +12 -0
  61. data/lib/myco/version.rb +3 -3
  62. metadata +54 -59
  63. data/lib/myco/code_tools/AST/DeclareDecorator.my +0 -19
  64. data/lib/myco/code_tools/AST/DeclareDecorator.my.rb +0 -24
  65. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Builder.my +0 -4
  66. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Builder.my.rb +0 -5
  67. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/BytecodeInstructions.my +0 -420
  68. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/BytecodeInstructions.my.rb +0 -415
  69. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/BytecodeParser.my +0 -147
  70. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Constructions.my +0 -183
  71. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Constructions.my.rb +0 -370
  72. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Instructions.my +0 -139
  73. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Instructions.my.rb +0 -284
  74. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Machine.my +0 -37
  75. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Machine.my.rb +0 -24
  76. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Patterns.my +0 -123
  77. data/lib/myco/code_tools/parser/pegleromyces/lib/pegleromyces/Patterns.my.rb +0 -164
  78. data/lib/myco/code_tools/parser/pegleromyces/spec/Builder.test.my +0 -10
  79. data/lib/myco/code_tools/parser/pegleromyces/spec/Builder.test.my.rb +0 -9
  80. data/lib/myco/code_tools/parser/pegleromyces/spec/BytecodeInstructions.test.my +0 -10
  81. data/lib/myco/code_tools/parser/pegleromyces/spec/BytecodeInstructions.test.my.rb +0 -9
  82. data/lib/myco/code_tools/parser/pegleromyces/spec/Constructions.test.my +0 -229
  83. data/lib/myco/code_tools/parser/pegleromyces/spec/Constructions.test.my.rb +0 -663
  84. data/lib/myco/code_tools/parser/pegleromyces/spec/Instructions.test.my +0 -10
  85. data/lib/myco/code_tools/parser/pegleromyces/spec/Instructions.test.my.rb +0 -9
  86. data/lib/myco/code_tools/parser/pegleromyces/spec/Machine.test.my +0 -13
  87. data/lib/myco/code_tools/parser/pegleromyces/spec/Machine.test.my.rb +0 -20
  88. data/lib/myco/code_tools/parser/pegleromyces/spec/Parser.test.my +0 -54
  89. data/lib/myco/code_tools/parser/pegleromyces/spec/Parser.test.my.rb +0 -215
@@ -1,663 +0,0 @@
1
-
2
- ::Myco::Component.new([::Myco::FileToplevel], ::Myco.cscope.for_method_definition, __FILE__, __LINE__)
3
- .tap { |__c__| __c__.__last__ = __c__.component_eval {(::Myco::Component.new([::Myco.find_constant(:BasicSpec)], ::Myco.cscope.for_method_definition, __FILE__, __LINE__)
4
- .tap { |__c__| __c__.__last__ = __c__.component_eval {(
5
- declare_meme(:name, [], nil, ::Myco.cscope.dup) { |*| ("Constructions")}
6
- __category__(:tests).component_eval {(
7
- declare_meme(:"AnyCharacter creates a single any instruction", [[:specify, []]], nil, ::Myco.cscope.dup) { |*| (
8
- construct = ::Myco.find_constant(:Constructions)::AnyCharacter.new
9
- self.assert_equal(
10
- construct.sequence,
11
- [[
12
- :any,
13
- 1
14
- ]]
15
- )
16
- )}
17
- declare_meme(:"Character creates a single char instruction", [[:specify, []]], nil, ::Myco.cscope.dup) { |*| (
18
- construct = ::Myco.find_constant(:Constructions)::Character.new({:code => 120})
19
- self.assert_equal(
20
- construct.sequence,
21
- [[
22
- :char,
23
- 120
24
- ]]
25
- )
26
- )}
27
- declare_meme(:"CharacterString creates a string of char instructions", [[:specify, []]], nil, ::Myco.cscope.dup) { |*| (
28
- construct = ::Myco.find_constant(:Constructions)::CharacterString.new({:codes => [
29
- 120,
30
- 121,
31
- 122
32
- ]})
33
- self.assert_equal(
34
- construct.sequence,
35
- [
36
- [
37
- :char,
38
- 120
39
- ],
40
- [
41
- :char,
42
- 121
43
- ],
44
- [
45
- :char,
46
- 122
47
- ]
48
- ]
49
- )
50
- )}
51
- declare_meme(:"CharacterSet creates a single charset instruction", [[:specify, []]], nil, ::Myco.cscope.dup) { |*| (
52
- construct = ::Myco.find_constant(:Constructions)::CharacterSet.new({:codes => [
53
- 120,
54
- 121,
55
- 122
56
- ]})
57
- expected_table = [
58
- 120,
59
- 121,
60
- 122
61
- ].map { |code| ([
62
- code,
63
- true
64
- ])}.to_h
65
- self.assert_equal(
66
- construct.sequence,
67
- [[
68
- :charset,
69
- expected_table
70
- ]]
71
- )
72
- )}
73
- declare_meme(:"CharacterRange creates a single charrange instruction", [[:specify, []]], nil, ::Myco.cscope.dup) { |*| (
74
- construct = ::Myco.find_constant(:Constructions)::CharacterRange.new({
75
- :start => 120,
76
- :stop => 122
77
- })
78
- self.assert_equal(
79
- construct.sequence,
80
- [[
81
- :charrange,
82
- 120,
83
- 122
84
- ]]
85
- )
86
- )}
87
- declare_meme(:"NegativePredicate assembles choice, fail_twice instructions", [[:specify, []]], nil, ::Myco.cscope.dup) { |*| (
88
- a = ::Myco.find_constant(:Constructions)::CharacterString.new({:codes => [
89
- 120,
90
- 121,
91
- 122
92
- ]})
93
- construct = ::Myco.find_constant(:Constructions)::NegativePredicate.new({:inner => a})
94
- self.assert_equal(
95
- construct.sequence,
96
- [
97
- [
98
- :choice,
99
- 5
100
- ],
101
- [
102
- :char,
103
- 120
104
- ],
105
- [
106
- :char,
107
- 121
108
- ],
109
- [
110
- :char,
111
- 122
112
- ],
113
- [:fail_twice]
114
- ]
115
- )
116
- )}
117
- declare_meme(:"PositivePredicate assembles choice, commit, fail instructions", [[:specify, []]], nil, ::Myco.cscope.dup) { |*| (
118
- a = ::Myco.find_constant(:Constructions)::CharacterString.new({:codes => [
119
- 120,
120
- 121,
121
- 122
122
- ]})
123
- construct = ::Myco.find_constant(:Constructions)::PositivePredicate.new({:inner => a})
124
- self.assert_equal(
125
- construct.sequence,
126
- [
127
- [
128
- :choice,
129
- 7
130
- ],
131
- [
132
- :choice,
133
- 4
134
- ],
135
- [
136
- :char,
137
- 120
138
- ],
139
- [
140
- :char,
141
- 121
142
- ],
143
- [
144
- :char,
145
- 122
146
- ],
147
- [
148
- :commit,
149
- 1
150
- ],
151
- [:fail]
152
- ]
153
- )
154
- )}
155
- declare_meme(:"OneOrMore assembles UNOPTIMIZED instructions", [[:specify, []]], nil, ::Myco.cscope.dup) { |*| (
156
- a = ::Myco.find_constant(:Constructions)::CharacterString.new({:codes => [
157
- 120,
158
- 121,
159
- 122
160
- ]})
161
- construct = ::Myco.find_constant(:Constructions)::OneOrMore.new({:inner => a})
162
- self.assert_equal(
163
- construct.sequence,
164
- [
165
- [
166
- :char,
167
- 120
168
- ],
169
- [
170
- :char,
171
- 121
172
- ],
173
- [
174
- :char,
175
- 122
176
- ],
177
- [
178
- :choice,
179
- 5
180
- ],
181
- [
182
- :char,
183
- 120
184
- ],
185
- [
186
- :char,
187
- 121
188
- ],
189
- [
190
- :char,
191
- 122
192
- ],
193
- [
194
- :partial_commit,
195
- -3
196
- ]
197
- ]
198
- )
199
- )}
200
- declare_meme(:"ZeroOrOne assembles choice and commit instructions", [[:specify, []]], nil, ::Myco.cscope.dup) { |*| (
201
- a = ::Myco.find_constant(:Constructions)::CharacterString.new({:codes => [
202
- 120,
203
- 121,
204
- 122
205
- ]})
206
- construct = ::Myco.find_constant(:Constructions)::ZeroOrOne.new({:inner => a})
207
- self.assert_equal(
208
- construct.sequence,
209
- [
210
- [
211
- :choice,
212
- 5
213
- ],
214
- [
215
- :char,
216
- 120
217
- ],
218
- [
219
- :char,
220
- 121
221
- ],
222
- [
223
- :char,
224
- 122
225
- ],
226
- [
227
- :commit,
228
- 1
229
- ]
230
- ]
231
- )
232
- )}
233
- declare_meme(:"ZeroOrMore assembles choice and partial_commit instructions", [[:specify, []]], nil, ::Myco.cscope.dup) { |*| (
234
- a = ::Myco.find_constant(:Constructions)::CharacterString.new({:codes => [
235
- 120,
236
- 121,
237
- 122
238
- ]})
239
- construct = ::Myco.find_constant(:Constructions)::ZeroOrMore.new({:inner => a})
240
- self.assert_equal(
241
- construct.sequence,
242
- [
243
- [
244
- :choice,
245
- 5
246
- ],
247
- [
248
- :char,
249
- 120
250
- ],
251
- [
252
- :char,
253
- 121
254
- ],
255
- [
256
- :char,
257
- 122
258
- ],
259
- [
260
- :partial_commit,
261
- -3
262
- ]
263
- ]
264
- )
265
- )}
266
- declare_meme(:"ZeroOrMore<CharacterSet> creates a single span instruction", [[:specify, []]], nil, ::Myco.cscope.dup) { |*| (
267
- a = ::Myco.find_constant(:Constructions)::CharacterSet.new({:codes => [
268
- 120,
269
- 121,
270
- 122
271
- ]})
272
- construct = ::Myco.find_constant(:Constructions)::ZeroOrMore.new({:inner => a})
273
- expected_table = [
274
- 120,
275
- 121,
276
- 122
277
- ].map { |code| ([
278
- code,
279
- true
280
- ])}.to_h
281
- self.assert_equal(
282
- construct.sequence,
283
- [[
284
- :span,
285
- expected_table
286
- ]]
287
- )
288
- )}
289
- declare_meme(:"OrderedChoice assembles choice and commit instructions", [[:specify, []]], nil, ::Myco.cscope.dup) { |*| (
290
- a = ::Myco.find_constant(:Constructions)::CharacterString.new({:codes => [
291
- 110,
292
- 111,
293
- 112
294
- ]})
295
- b = ::Myco.find_constant(:Constructions)::CharacterString.new({:codes => [
296
- 120,
297
- 121,
298
- 122
299
- ]})
300
- construct = ::Myco.find_constant(:Constructions)::OrderedChoice.new({
301
- :first => a,
302
- :second => b
303
- })
304
- self.assert_equal(
305
- construct.sequence,
306
- [
307
- [
308
- :choice,
309
- 5
310
- ],
311
- [
312
- :char,
313
- 110
314
- ],
315
- [
316
- :char,
317
- 111
318
- ],
319
- [
320
- :char,
321
- 112
322
- ],
323
- [
324
- :commit,
325
- 4
326
- ],
327
- [
328
- :char,
329
- 120
330
- ],
331
- [
332
- :char,
333
- 121
334
- ],
335
- [
336
- :char,
337
- 122
338
- ]
339
- ]
340
- )
341
- a = ::Myco.find_constant(:Constructions)::CharacterString.new({:codes => [
342
- 110,
343
- 111,
344
- 112
345
- ]})
346
- b = ::Myco.find_constant(:Constructions)::CharacterString.new({:codes => [
347
- 120,
348
- 121,
349
- 122
350
- ]})
351
- c = ::Myco.find_constant(:Constructions)::CharacterString.new({:codes => [
352
- 130,
353
- 131,
354
- 132
355
- ]})
356
- construct = ::Myco.find_constant(:Constructions)::OrderedChoice.new({
357
- :first => b,
358
- :second => c
359
- })
360
- construct = ::Myco.find_constant(:Constructions)::OrderedChoice.new({
361
- :first => a,
362
- :second => construct
363
- })
364
- self.assert_equal(
365
- construct.sequence,
366
- [
367
- [
368
- :choice,
369
- 5
370
- ],
371
- [
372
- :char,
373
- 110
374
- ],
375
- [
376
- :char,
377
- 111
378
- ],
379
- [
380
- :char,
381
- 112
382
- ],
383
- [
384
- :commit,
385
- 9
386
- ],
387
- [
388
- :choice,
389
- 5
390
- ],
391
- [
392
- :char,
393
- 120
394
- ],
395
- [
396
- :char,
397
- 121
398
- ],
399
- [
400
- :char,
401
- 122
402
- ],
403
- [
404
- :commit,
405
- 4
406
- ],
407
- [
408
- :char,
409
- 130
410
- ],
411
- [
412
- :char,
413
- 131
414
- ],
415
- [
416
- :char,
417
- 132
418
- ]
419
- ]
420
- )
421
- )}
422
- declare_meme(:"Concatenation simply concatenates the operands", [[:specify, []]], nil, ::Myco.cscope.dup) { |*| (
423
- a = ::Myco.find_constant(:Constructions)::CharacterString.new({:codes => [
424
- 110,
425
- 111,
426
- 112
427
- ]})
428
- b = ::Myco.find_constant(:Constructions)::CharacterString.new({:codes => [
429
- 120,
430
- 121,
431
- 122
432
- ]})
433
- construct = ::Myco.find_constant(:Constructions)::Concatenation.new({
434
- :first => a,
435
- :second => b
436
- })
437
- self.assert_equal(
438
- construct.sequence,
439
- [
440
- [
441
- :char,
442
- 110
443
- ],
444
- [
445
- :char,
446
- 111
447
- ],
448
- [
449
- :char,
450
- 112
451
- ],
452
- [
453
- :char,
454
- 120
455
- ],
456
- [
457
- :char,
458
- 121
459
- ],
460
- [
461
- :char,
462
- 122
463
- ]
464
- ]
465
- )
466
- )}
467
- declare_meme(:"NamedCapture assembles capture instructions", [[:specify, []]], nil, ::Myco.cscope.dup) { |*| (
468
- a = ::Myco.find_constant(:Constructions)::CharacterString.new({:codes => [
469
- 120,
470
- 121,
471
- 122
472
- ]})
473
- construct = ::Myco.find_constant(:Constructions)::NamedCapture.new({:inner => a})
474
- self.assert_equal(
475
- construct.sequence,
476
- [
477
- [
478
- :capture,
479
- [:c_start]
480
- ],
481
- [
482
- :char,
483
- 120
484
- ],
485
- [
486
- :char,
487
- 121
488
- ],
489
- [
490
- :char,
491
- 122
492
- ],
493
- [
494
- :capture,
495
- [
496
- :c_end,
497
- construct.captargs
498
- ]
499
- ]
500
- ]
501
- )
502
- )}
503
- declare_meme(:"NamedCapture of ZeroOrMore has a special multiplicit strategy", [[:specify, []]], nil, ::Myco.cscope.dup) { |*| (
504
- a = ::Myco.find_constant(:Constructions)::CharacterString.new({:codes => [
505
- 120,
506
- 121,
507
- 122
508
- ]})
509
- b = ::Myco.find_constant(:Constructions)::ZeroOrMore.new({:inner => a})
510
- construct = ::Myco.find_constant(:Constructions)::NamedCapture.new({:inner => b})
511
- self.assert_equal(
512
- construct.sequence,
513
- [
514
- [
515
- :capture,
516
- [:m_start]
517
- ],
518
- [
519
- :choice,
520
- 6
521
- ],
522
- [
523
- :char,
524
- 120
525
- ],
526
- [
527
- :char,
528
- 121
529
- ],
530
- [
531
- :char,
532
- 122
533
- ],
534
- [
535
- :capture,
536
- [
537
- :m_split,
538
- nil
539
- ]
540
- ],
541
- [
542
- :partial_commit,
543
- -4
544
- ],
545
- [
546
- :capture,
547
- [
548
- :m_end,
549
- nil
550
- ]
551
- ]
552
- ]
553
- )
554
- )}
555
- declare_meme(:"NamedCapture of OneOrMore has a special multiplicit strategy", [[:specify, []]], nil, ::Myco.cscope.dup) { |*| (
556
- a = ::Myco.find_constant(:Constructions)::CharacterString.new({:codes => [
557
- 120,
558
- 121,
559
- 122
560
- ]})
561
- b = ::Myco.find_constant(:Constructions)::OneOrMore.new({:inner => a})
562
- construct = ::Myco.find_constant(:Constructions)::NamedCapture.new({:inner => b})
563
- self.assert_equal(
564
- construct.sequence,
565
- [
566
- [
567
- :capture,
568
- [:m_start]
569
- ],
570
- [
571
- :char,
572
- 120
573
- ],
574
- [
575
- :char,
576
- 121
577
- ],
578
- [
579
- :char,
580
- 122
581
- ],
582
- [
583
- :capture,
584
- [
585
- :m_split,
586
- nil
587
- ]
588
- ],
589
- [
590
- :choice,
591
- 6
592
- ],
593
- [
594
- :char,
595
- 120
596
- ],
597
- [
598
- :char,
599
- 121
600
- ],
601
- [
602
- :char,
603
- 122
604
- ],
605
- [
606
- :capture,
607
- [
608
- :m_split,
609
- nil
610
- ]
611
- ],
612
- [
613
- :partial_commit,
614
- -4
615
- ],
616
- [
617
- :capture,
618
- [
619
- :m_end,
620
- nil
621
- ]
622
- ]
623
- ]
624
- )
625
- )}
626
- declare_meme(:"Reduction assembles capture instructions", [[:specify, []]], nil, ::Myco.cscope.dup) { |*| (
627
- a = ::Myco.find_constant(:Constructions)::CharacterString.new({:codes => [
628
- 120,
629
- 121,
630
- 122
631
- ]})
632
- construct = ::Myco.find_constant(:Constructions)::Reduction.new({:inner => a})
633
- self.assert_equal(
634
- construct.sequence,
635
- [
636
- [
637
- :capture,
638
- [:r_start]
639
- ],
640
- [
641
- :char,
642
- 120
643
- ],
644
- [
645
- :char,
646
- 121
647
- ],
648
- [
649
- :char,
650
- 122
651
- ],
652
- [
653
- :capture,
654
- [
655
- :r_end,
656
- construct.captargs
657
- ]
658
- ]
659
- ]
660
- )
661
- )}
662
- )}
663
- )}}.instance)}}.instance