depager 0.2.3 → 0.3.0.b20250423

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +44 -0
  3. data/.simplecov +5 -0
  4. data/Gemfile +12 -0
  5. data/LICENSE.gpl +339 -0
  6. data/Manifest.txt +73 -0
  7. data/README.en +7 -21
  8. data/README.ja +19 -99
  9. data/Rakefile +31 -0
  10. data/bin/depager +7 -45
  11. data/examples/action_pl0d/pl0d.action.dr +421 -0
  12. data/examples/action_pl0d/test.pl0ds +48 -0
  13. data/examples/c89/c89.dr +493 -496
  14. data/examples/c89/test.c89 +10 -10
  15. data/examples/extension/astdf.rb +9 -0
  16. data/examples/extension/atree.dr +55 -0
  17. data/examples/{sample_calc → extension}/calc.atree.dr +42 -43
  18. data/examples/{sample_calc/calc.action.dr → extension/calc.simple_action.dr} +33 -33
  19. data/examples/extension/paction.dr +16 -15
  20. data/examples/extension/pactiontest.dr +14 -14
  21. data/examples/extension/simple_action.rb +46 -0
  22. data/examples/pl0d/pl0ds.dr +337 -334
  23. data/examples/pl0d/test.pl0ds +33 -33
  24. data/examples/rie_calc/calc.rie.dr +57 -0
  25. data/examples/rie_calc/test.calc +4 -0
  26. data/examples/rie_dcuse/dcuse.rie.dr +71 -0
  27. data/examples/rie_dcuse/test.dcuse +1 -0
  28. data/examples/rie_pl0/orig_ex/exerrdg.pl0 +44 -0
  29. data/examples/rie_pl0/orig_ex/exerrm.pl0 +19 -0
  30. data/examples/rie_pl0/orig_ex/exerrmre.pl0 +20 -0
  31. data/examples/rie_pl0/orig_ex/exerrtok.pl0 +18 -0
  32. data/examples/rie_pl0/orig_ex/exmdg.pl0 +40 -0
  33. data/examples/rie_pl0/orig_ex/exmdgwwl.pl0 +43 -0
  34. data/examples/rie_pl0/orig_ex/exmrw.pl0 +22 -0
  35. data/examples/rie_pl0/orig_ex/exmwwl.pl0 +18 -0
  36. data/examples/rie_pl0/orig_ex/exnorw.pl0 +17 -0
  37. data/examples/rie_pl0/pl0.rie.dr +450 -0
  38. data/examples/rie_pl0/test.pl0 +10 -0
  39. data/examples/slex_test/divreg.slex.dr +29 -29
  40. data/examples/slex_test/ljoin.slex.dr +36 -36
  41. data/examples/slex_test/test.divreg +1 -1
  42. data/examples/slex_test/test.ljoin +3 -3
  43. data/examples/{sample_calc/calc.nvaction.dr → tiny_calc/calc.action.dr} +33 -33
  44. data/examples/{sample_calc → tiny_calc}/calc.ast.action.dr +76 -66
  45. data/examples/{sample_calc → tiny_calc}/calc.ast.dr +67 -55
  46. data/examples/tiny_calc/calc.cst.dr +50 -0
  47. data/examples/{sample_calc → tiny_calc}/calc.dr +43 -43
  48. data/examples/{sample_calc → tiny_calc}/calc.lex.dr +29 -29
  49. data/examples/{sample_calc/calc_prec.nvaction.dr → tiny_calc/calc_prec.action.dr} +31 -31
  50. data/lib/depager/cli.rb +44 -0
  51. data/lib/depager/grammar.rb +253 -291
  52. data/lib/depager/lr.rb +589 -579
  53. data/lib/depager/parser.rb +269 -277
  54. data/lib/depager/plugins/_rie_debug.rb +63 -0
  55. data/lib/depager/plugins/action.rb +47 -0
  56. data/lib/depager/plugins/ast.dr +367 -0
  57. data/lib/depager/plugins/ast.rb +1329 -0
  58. data/lib/depager/{ruby/plugins → plugins}/cst.dr +174 -180
  59. data/lib/depager/plugins/cst.rb +591 -0
  60. data/lib/depager/{ruby/plugins → plugins}/lex.dr +85 -89
  61. data/lib/depager/plugins/lex.rb +313 -0
  62. data/lib/depager/plugins/rie.dr +725 -0
  63. data/lib/depager/plugins/rie.rb +1614 -0
  64. data/lib/depager/{ruby/plugins → plugins}/slex.dr +201 -200
  65. data/lib/depager/plugins/slex.rb +769 -0
  66. data/lib/depager/plugins/srp.rb +46 -0
  67. data/lib/depager/ruby/templates/extension_lalr_master.erb +40 -51
  68. data/lib/depager/ruby/templates/extension_lalr_slave.erb +113 -107
  69. data/lib/depager/ruby/templates/single_lalr_parser.erb +124 -117
  70. data/lib/depager/utils.rb +158 -318
  71. data/lib/depager/version.rb +3 -3
  72. data/lib/depager.rb +572 -670
  73. metadata +77 -80
  74. data/ChangeLog +0 -16
  75. data/data/depager/pre-setup.rb +0 -3
  76. data/examples/c89/c89.tab.rb +0 -7127
  77. data/examples/pl0d/pl0ds.tab.rb +0 -2698
  78. data/examples/sample_calc/calc.action.tab.rb +0 -457
  79. data/examples/sample_calc/calc.ast.action.tab.rb +0 -749
  80. data/examples/sample_calc/calc.ast.tab.rb +0 -665
  81. data/examples/sample_calc/calc.astdf.dr +0 -54
  82. data/examples/sample_calc/calc.astdf.tab.rb +0 -672
  83. data/examples/sample_calc/calc.atree.tab.rb +0 -451
  84. data/examples/sample_calc/calc.cst.dr +0 -45
  85. data/examples/sample_calc/calc.cst.tab.rb +0 -644
  86. data/examples/sample_calc/calc.lex.tab.rb +0 -374
  87. data/examples/sample_calc/calc.nvaction.tab.rb +0 -465
  88. data/examples/sample_calc/calc.tab.rb +0 -365
  89. data/examples/sample_calc/calc_prec.nvaction.tab.rb +0 -431
  90. data/examples/slex_test/divreg.slex.tab.rb +0 -303
  91. data/examples/slex_test/ljoin.slex.tab.rb +0 -370
  92. data/lib/depager/ruby/plugins/_ast_tmpl.rb +0 -73
  93. data/lib/depager/ruby/plugins/action.rb +0 -43
  94. data/lib/depager/ruby/plugins/ast.dr +0 -269
  95. data/lib/depager/ruby/plugins/ast.rb +0 -1308
  96. data/lib/depager/ruby/plugins/astdf.rb +0 -6
  97. data/lib/depager/ruby/plugins/atree.dr +0 -55
  98. data/lib/depager/ruby/plugins/atree.rb +0 -347
  99. data/lib/depager/ruby/plugins/cst.rb +0 -626
  100. data/lib/depager/ruby/plugins/lex.rb +0 -336
  101. data/lib/depager/ruby/plugins/nvaction.rb +0 -19
  102. data/lib/depager/ruby/plugins/slex.rb +0 -817
  103. data/lib/depager/ruby/plugins/srp.rb +0 -51
  104. data/lib/depager/ruby/templates/simple.erb +0 -23
  105. data/setup.rb +0 -1585
  106. /data/examples/{sample_calc → tiny_calc}/test.calc +0 -0
@@ -1,626 +0,0 @@
1
-
2
- ###
3
- ### CSTBuilderExtension - Depager Extension (master)
4
- ###
5
- require 'pp.rb'
6
- require 'depager/parser.rb'
7
-
8
-
9
- module D4CSTBuilderExtension #:nodoc:all
10
- end
11
-
12
- class CSTBuilderExtension #:nodoc:all
13
- include Depager::ExtensionUtils
14
-
15
- attr_accessor :h2p
16
-
17
- def initialize
18
- @master = self
19
- @hook = []
20
- @h2p = {}
21
- init_parser
22
- end
23
-
24
- def __regext__ p
25
- super p, :default, nil
26
-
27
- @hook[0] = CSTBuilderExtension_post_lhs.new(p, @nparam, self)
28
- @h2p['post_lhs'] = @hook[0]
29
- p.hooks[:post_lhs].push [@hook[0], :do_parse]
30
-
31
- @hook[1] = CSTBuilderExtension_pre_rule_list.new(p, @nparam, self)
32
- @h2p['pre_rule_list'] = @hook[1]
33
- p.hooks[:pre_rule_list].push [@hook[1], :do_parse]
34
-
35
- regext p
36
- end
37
-
38
- ### Inner Code
39
- attr_accessor :optouter, :nodes_code
40
- def init_parser
41
- super
42
- @n = 0
43
- @visitor_code = []
44
- @nodes_code = []
45
- @optouter = []
46
- @on_reduce = []
47
- end
48
- def modify_action_code code
49
- code.gsub(/~([a-z_])/, 'node.\1')
50
- end
51
- def post_rhs
52
- code, lineno = '', g_parser.lineno
53
- if g_parser.line =~ /\s*\{/
54
- @line0, @line = g_parser.line0, g_parser.line
55
- code = parse_action
56
-
57
- g_parser.update_context @line
58
- end
59
-
60
- node_name = "#{lhs_name}_#{nrhs}"
61
- accept = ""
62
- nodes = g_parser.rhs.map do |i|
63
- x = g_parser.int_to_sym(i)
64
- if x.class == String
65
- "tx#{x.unpack("H*")[0]}"
66
- else
67
- x = x.to_s
68
- accept << "#{x}.accept(v); " if x =~ /\A[a-z_]+\Z/
69
- x.downcase
70
- end
71
- end
72
- attrc = nodes.map{|i| ":#{i}" }.join(', ')
73
- inic = nodes.map{|i| "@#{i} = #{i}"}.join('; ')
74
- @nodes_code << %{
75
- class Node_#{node_name} < Node_#{lhs_name}
76
- attr_accessor #{attrc}
77
- def initialize #{nodes.join(', ')}
78
- super()
79
- #{inic}
80
- end
81
- def accept v
82
- #{accept}
83
- v.visit_Node_#{node_name}(self)
84
- end
85
- end
86
- }; #code
87
-
88
- @visitor_code <<
89
- gen_defm_code("visit_Node_#{node_name} node",
90
- modify_action_code(code), lineno)
91
-
92
- args = nodes.inject([]){|r, i| r << "val[#{r.size}]"}
93
- code = "Node_#{node_name}.new(#{args.join(', ')})"
94
- @optouter <<
95
- gen_defm_code("_cst_#{nrules} val", code, lineno)
96
-
97
- @on_reduce[nrules] = ":_cst_#{nrules}"
98
- end
99
- def post_rule_list
100
- code = unindent %{
101
- class Node
102
- def accept
103
- end
104
- end
105
- }; #code
106
- g_parser.optouter << code
107
-
108
- code = unindent %{
109
- class Visitor
110
- $$!!@ CST @!!$$
111
- end
112
- }; #code
113
- g_parser.optouter <<
114
- code.sub!('$$!!@ CST @!!$$', @visitor_code.join) <<
115
- unindent(@nodes_code) <<
116
- gen_action_decorator_code(target_name, paramkey,
117
- @on_reduce, @optouter)
118
- end
119
-
120
- end
121
-
122
- ### Outer Code
123
-
124
- ###
125
- ### CSTBuilderExtension_pre_rule_list - Part of Depager Extension (slave)
126
- ###
127
- module D4CSTBuilderExtension_pre_rule_list #:nodoc:all
128
- end
129
-
130
- class CSTBuilderExtension_pre_rule_list < Depager::LALR::Basis #:nodoc:all
131
- include Depager::ExtensionUtils
132
-
133
-
134
- ### Reduce Table
135
- reduce_table = [
136
- [ -1, 1 ],
137
- [ 0, 2 ],
138
- [ 1, 0 ],
139
- [ 1, 2 ],
140
- [ 2, 0 ],
141
- [ 2, 2 ],
142
- ]
143
- ### Extension Params
144
- nparams = {
145
- 'NVAction' => 2,
146
- }
147
- ### Term to Int
148
- t2i = {
149
- nil => 0,
150
- false => 1,
151
- :NODE => 2,
152
- :ACTION => 3,
153
- :VISITOR => 4,
154
- }
155
- ### Int to Term
156
- i2t = [
157
- nil,
158
- false,
159
- :NODE,
160
- :ACTION,
161
- :VISITOR,
162
- ]
163
- ### Action Table
164
- action_table = [
165
- [ nil, nil, 1, nil, nil, ],
166
- [ nil, nil, nil, 4, nil, ],
167
- [ ACC, nil, nil, nil, nil, ],
168
- [ nil, nil, nil, nil, 5, ],
169
- [ nil, nil, nil, nil, nil, ],
170
- [ nil, nil, nil, 7, nil, ],
171
- [ nil, nil, nil, nil, nil, ],
172
- [ nil, nil, nil, nil, nil, ],
173
- ]
174
- ### Default Reduce Table
175
- defred_table = [
176
- -2,
177
- nil,
178
- nil,
179
- -4,
180
- -3,
181
- nil,
182
- -1,
183
- -5,
184
- ]
185
- defred_after_shift_table = [
186
- nil,
187
- nil,
188
- nil,
189
- nil,
190
- -3,
191
- nil,
192
- -1,
193
- -5,
194
- ]
195
- ### Nonterm to Int
196
- nt2i = {
197
- :start => 0,
198
- :opt_node => 1,
199
- :opt_visitor => 2,
200
- }
201
- ### Int to Nonterm
202
- i2nt = [
203
- :start,
204
- :opt_node,
205
- :opt_visitor,
206
- ]
207
- ### Goto Table
208
- goto_table = [
209
- [ 2, 3, nil, ],
210
- [ nil, nil, nil, ],
211
- [ nil, nil, nil, ],
212
- [ nil, nil, 6, ],
213
- [ nil, nil, nil, ],
214
- [ nil, nil, nil, ],
215
- [ nil, nil, nil, ],
216
- [ nil, nil, nil, ],
217
- ]
218
-
219
- Tables = [ reduce_table, nparams, action_table,
220
- defred_table, defred_after_shift_table, goto_table,
221
- t2i, i2t, nt2i, i2nt ]
222
-
223
- attr_accessor :p, :m
224
- def initialize p, nparam, master = nil
225
- super()
226
- @g_parser = @p = p
227
- @master = @m = master
228
- @nparam = nparam
229
- @dect = D4CSTBuilderExtension_pre_rule_list::NVAction.new(self)
230
- init_parser
231
- end
232
-
233
-
234
- def do_parse?
235
- if @line =~ /^\s*%CST\{\s*\Z/
236
- @line = $'
237
- true
238
- else
239
- false
240
- end
241
- end
242
-
243
-
244
- def banner
245
- "%CST{ ... } / #{@master.class.name}"
246
- end
247
-
248
- ### Inner Code
249
-
250
- def lex
251
- begin
252
- until @line.empty?
253
- case @line
254
-
255
- when /\A\s+/, /\A#.*/
256
- @oldline = @line; @line = $'
257
-
258
-
259
-
260
- when /\A%\}\s*\Z/
261
- @oldline = @line; @line = $'
262
- yield nil,nil
263
-
264
-
265
- when /\ANode/
266
- @oldline = @line; @line = $'
267
- yield token(:NODE, $&)
268
-
269
-
270
- when /\A\{/
271
- #
272
- ln = lineno; yield token(:ACTION, parse_action, ln)
273
-
274
-
275
- else
276
- raise RuntimeError, "must not happen #{@line}"
277
- end
278
- end
279
- end while @line0 = @line = getline
280
- yield nil, nil
281
- end
282
-
283
- end
284
-
285
- ### Outer Code
286
-
287
- class D4CSTBuilderExtension_pre_rule_list::NVAction < Depager::LALR::Action #:nodoc:all
288
- include Depager::DecoratorUtils
289
-
290
- on_reduce = [
291
- nil,
292
- :_act_0,
293
- :_act_1,
294
- :_act_2,
295
- :_act_3,
296
- :_act_4,
297
-
298
- ]
299
- Tables = [on_reduce]
300
- def initialize inside
301
- super inside, 'NVAction'
302
- @on_reduce, = self.class::Tables
303
- init_parser
304
- end
305
-
306
-
307
- module_eval <<-'.,.,122745803312555.,.,', 'cst.dr', 100
308
- def _act_0 val
309
- _opt_node, _opt_visitor, = *val
310
-
311
- code = %{
312
- class Node
313
- $$!!@ NODE @!!$$
314
- end
315
- class Visitor
316
- $$!!@ VISITOR @!!$$
317
- end
318
- }; #code
319
- master.nodes_code <<
320
- code.sub!('$$!!@ NODE @!!$$', _opt_node) \
321
- .sub!('$$!!@ VISITOR @!!$$', _opt_visitor)
322
-
323
- end
324
- .,.,122745803312555.,.,
325
-
326
- module_eval <<-'.,.,12274580333994.,.,', 'cst.dr', 115
327
- def _act_1 val
328
- ''
329
-
330
- end
331
- .,.,12274580333994.,.,
332
-
333
- module_eval <<-'.,.,122745803355803.,.,', 'cst.dr', 116
334
- def _act_2 val
335
- _NODE, _ACTION, = *val
336
- _ACTION.value
337
-
338
- end
339
- .,.,122745803355803.,.,
340
-
341
- module_eval <<-'.,.,122745803313768.,.,', 'cst.dr', 119
342
- def _act_3 val
343
- ''
344
-
345
- end
346
- .,.,122745803313768.,.,
347
-
348
- module_eval <<-'.,.,122745803342911.,.,', 'cst.dr', 120
349
- def _act_4 val
350
- _VISITOR, _ACTION, = *val
351
- _ACTION.value
352
-
353
- end
354
- .,.,122745803342911.,.,
355
-
356
- end
357
-
358
-
359
- ###
360
- ### CSTBuilderExtension_post_lhs - Part of Depager Extension (slave)
361
- ###
362
- module D4CSTBuilderExtension_post_lhs #:nodoc:all
363
- end
364
-
365
- class CSTBuilderExtension_post_lhs < Depager::LALR::Basis #:nodoc:all
366
- include Depager::ExtensionUtils
367
-
368
-
369
- ### Reduce Table
370
- reduce_table = [
371
- [ -1, 1 ],
372
- [ 0, 3 ],
373
- [ 1, 1 ],
374
- [ 1, 3 ],
375
- [ 2, 1 ],
376
- [ 2, 3 ],
377
- ]
378
- ### Extension Params
379
- nparams = {
380
- 'NVAction' => 2,
381
- }
382
- ### Term to Int
383
- t2i = {
384
- nil => 0,
385
- false => 1,
386
- "[" => 2,
387
- "]" => 3,
388
- "," => 4,
389
- :ID => 5,
390
- "=" => 6,
391
- :LIT => 7,
392
- }
393
- ### Int to Term
394
- i2t = [
395
- nil,
396
- false,
397
- "[",
398
- "]",
399
- ",",
400
- :ID,
401
- "=",
402
- :LIT,
403
- ]
404
- ### Action Table
405
- action_table = [
406
- [ nil, nil, 1, nil, nil, nil, nil, nil, ],
407
- [ nil, nil, nil, nil, nil, 5, nil, nil, ],
408
- [ ACC, nil, nil, nil, nil, nil, nil, nil, ],
409
- [ nil, nil, nil, 6, 7, nil, nil, nil, ],
410
- [ nil, nil, nil, nil, nil, nil, nil, nil, ],
411
- [ nil, nil, nil, nil, nil, nil, 8, nil, ],
412
- [ nil, nil, nil, nil, nil, nil, nil, nil, ],
413
- [ nil, nil, nil, nil, nil, 5, nil, nil, ],
414
- [ nil, nil, nil, nil, nil, nil, nil, 10, ],
415
- [ nil, nil, nil, nil, nil, nil, nil, nil, ],
416
- [ nil, nil, nil, nil, nil, nil, nil, nil, ],
417
- ]
418
- ### Default Reduce Table
419
- defred_table = [
420
- nil,
421
- nil,
422
- nil,
423
- nil,
424
- -2,
425
- -4,
426
- -1,
427
- nil,
428
- nil,
429
- -3,
430
- -5,
431
- ]
432
- defred_after_shift_table = [
433
- nil,
434
- nil,
435
- nil,
436
- nil,
437
- -2,
438
- nil,
439
- -1,
440
- nil,
441
- nil,
442
- -3,
443
- -5,
444
- ]
445
- ### Nonterm to Int
446
- nt2i = {
447
- :start => 0,
448
- :pair => 1,
449
- :expr => 2,
450
- }
451
- ### Int to Nonterm
452
- i2nt = [
453
- :start,
454
- :pair,
455
- :expr,
456
- ]
457
- ### Goto Table
458
- goto_table = [
459
- [ 2, nil, nil, ],
460
- [ nil, 3, 4, ],
461
- [ nil, nil, nil, ],
462
- [ nil, nil, nil, ],
463
- [ nil, nil, nil, ],
464
- [ nil, nil, nil, ],
465
- [ nil, nil, nil, ],
466
- [ nil, nil, 9, ],
467
- [ nil, nil, nil, ],
468
- [ nil, nil, nil, ],
469
- [ nil, nil, nil, ],
470
- ]
471
-
472
- Tables = [ reduce_table, nparams, action_table,
473
- defred_table, defred_after_shift_table, goto_table,
474
- t2i, i2t, nt2i, i2nt ]
475
-
476
- attr_accessor :p, :m
477
- def initialize p, nparam, master = nil
478
- super()
479
- @g_parser = @p = p
480
- @master = @m = master
481
- @nparam = nparam
482
- @dect = D4CSTBuilderExtension_post_lhs::NVAction.new(self)
483
- init_parser
484
- end
485
-
486
-
487
- def do_parse?
488
- if @line =~ /^\s*\[/
489
- @line = $'
490
- true
491
- else
492
- false
493
- end
494
- end
495
-
496
-
497
- def banner
498
- "[ ... ] / #{@master.class.name}"
499
- end
500
-
501
- ### Inner Code
502
-
503
- def lex
504
- begin
505
- until @line.empty?
506
- case @line
507
-
508
- when /\A\A\s+/
509
- @oldline = @line; @line = $'
510
-
511
-
512
-
513
- when /\A""/, /\A''/, /\A[0-9]+/, /\A\{\s*\}/, /\A\[\s*\]/, /\Anil/
514
- @oldline = @line; @line = $'
515
- yield token(:LIT, $&)
516
-
517
-
518
- when /\A\A[a-z][a-z_]*/
519
- @oldline = @line; @line = $'
520
- yield token(:ID, $&)
521
-
522
-
523
- when /\A\A(.)/
524
- @oldline = @line; @line = $'
525
- yield token($&, $&)
526
-
527
-
528
- else
529
- raise RuntimeError, "must not happen #{@line}"
530
- end
531
- end
532
- end while @line0 = @line = getline
533
- yield nil, nil
534
- end
535
- def do_default
536
- master.nodes_code << %{
537
- class Node_#{master.lhs_name} < Node
538
- def initialize
539
- super()
540
- end
541
- end
542
- }; #code
543
- end
544
-
545
- end
546
-
547
- ### Outer Code
548
-
549
- class D4CSTBuilderExtension_post_lhs::NVAction < Depager::LALR::Action #:nodoc:all
550
- include Depager::DecoratorUtils
551
-
552
- on_reduce = [
553
- nil,
554
- :_act_0,
555
- :_act_1,
556
- :_act_2,
557
- :_act_3,
558
- :_act_4,
559
-
560
- ]
561
- Tables = [on_reduce]
562
- def initialize inside
563
- super inside, 'NVAction'
564
- @on_reduce, = self.class::Tables
565
- init_parser
566
- end
567
-
568
-
569
- module_eval <<-'.,.,122745803313978.,.,', 'cst.dr', 151
570
- def _act_0 val
571
- _, _pair, _, = *val
572
-
573
- args = []; code = ''
574
- _pair.each do |id, lit|
575
- args << id
576
- code << "#{id} = #{lit}; " if lit
577
- end
578
- attrc = args.map{|i| ":#{i}"}.join(', ')
579
- master.nodes_code << %{
580
- class Node_#{master.lhs_name} < Node
581
- attr_accessor #{attrc}
582
- def initialize
583
- super()
584
- #{code}
585
- end
586
- end
587
- }; #code
588
-
589
- end
590
- .,.,122745803313978.,.,
591
-
592
- module_eval <<-'.,.,122745803351295.,.,', 'cst.dr', 170
593
- def _act_1 val
594
- _expr, = *val
595
- [ _expr ]
596
-
597
- end
598
- .,.,122745803351295.,.,
599
-
600
- module_eval <<-'.,.,122745803357565.,.,', 'cst.dr', 171
601
- def _act_2 val
602
- _pair, _, _expr, = *val
603
- _pair << _expr
604
-
605
- end
606
- .,.,122745803357565.,.,
607
-
608
- module_eval <<-'.,.,122745803313793.,.,', 'cst.dr', 174
609
- def _act_3 val
610
- _ID, = *val
611
- [ _ID.value, nil]
612
-
613
- end
614
- .,.,122745803313793.,.,
615
-
616
- module_eval <<-'.,.,12274580337259.,.,', 'cst.dr', 175
617
- def _act_4 val
618
- _ID, _, _LIT, = *val
619
- [ _ID.value, _LIT.value ]
620
-
621
- end
622
- .,.,12274580337259.,.,
623
-
624
- end
625
-
626
-