depager 0.2.2 → 0.2.3
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.
- data/ChangeLog +4 -0
- data/README.ja +27 -28
- data/examples/c89/c89.dr +34 -34
- data/examples/c89/c89.tab.rb +3074 -3074
- data/examples/extension/paction.dr +4 -4
- data/examples/extension/pactiontest.dr +1 -1
- data/examples/pl0d/pl0ds.dr +27 -27
- data/examples/pl0d/pl0ds.tab.rb +626 -643
- data/examples/sample_calc/calc.action.dr +6 -6
- data/examples/sample_calc/calc.action.tab.rb +90 -90
- data/examples/sample_calc/calc.ast.action.dr +7 -7
- data/examples/sample_calc/calc.ast.action.tab.rb +121 -127
- data/examples/sample_calc/calc.ast.dr +6 -6
- data/examples/sample_calc/calc.ast.tab.rb +102 -109
- data/examples/sample_calc/calc.astdf.dr +6 -6
- data/examples/sample_calc/calc.astdf.tab.rb +102 -109
- data/examples/sample_calc/calc.atree.dr +6 -6
- data/examples/sample_calc/calc.atree.tab.rb +90 -90
- data/examples/sample_calc/calc.cst.dr +5 -5
- data/examples/sample_calc/calc.cst.tab.rb +106 -106
- data/examples/sample_calc/calc.dr +1 -1
- data/examples/sample_calc/calc.lex.dr +4 -4
- data/examples/sample_calc/calc.lex.tab.rb +73 -73
- data/examples/sample_calc/calc.nvaction.dr +6 -6
- data/examples/sample_calc/calc.nvaction.tab.rb +90 -90
- data/examples/sample_calc/calc.tab.rb +71 -71
- data/examples/sample_calc/calc_prec.nvaction.dr +6 -6
- data/examples/sample_calc/calc_prec.nvaction.tab.rb +46 -46
- data/examples/slex_test/divreg.slex.dr +7 -7
- data/examples/slex_test/divreg.slex.tab.rb +20 -20
- data/examples/slex_test/ljoin.slex.dr +7 -7
- data/examples/slex_test/ljoin.slex.tab.rb +15 -15
- data/lib/depager.rb +45 -83
- data/lib/depager/grammar.rb +3 -7
- data/lib/depager/lr.rb +123 -1
- data/lib/depager/parser.rb +29 -48
- data/lib/depager/{template/ast.erbs → ruby/plugins/_ast_tmpl.rb} +11 -7
- data/lib/depager/{action.rb → ruby/plugins/action.rb} +7 -11
- data/lib/depager/{ast.dr → ruby/plugins/ast.dr} +24 -25
- data/lib/depager/{ast.rb → ruby/plugins/ast.rb} +241 -243
- data/lib/depager/{astdf.rb → ruby/plugins/astdf.rb} +1 -2
- data/lib/depager/{atree.dr → ruby/plugins/atree.dr} +5 -5
- data/lib/depager/{atree.rb → ruby/plugins/atree.rb} +39 -39
- data/lib/depager/{cst.dr → ruby/plugins/cst.dr} +17 -21
- data/lib/depager/{cst.rb → ruby/plugins/cst.rb} +62 -68
- data/lib/depager/{lex.dr → ruby/plugins/lex.dr} +3 -4
- data/lib/depager/{lex.rb → ruby/plugins/lex.rb} +29 -31
- data/lib/depager/{nvaction.rb → ruby/plugins/nvaction.rb} +1 -3
- data/lib/depager/{slex.dr → ruby/plugins/slex.dr} +16 -17
- data/lib/depager/{slex.rb → ruby/plugins/slex.rb} +115 -117
- data/lib/depager/{srp.rb → ruby/plugins/srp.rb} +4 -4
- data/lib/depager/{template → ruby/templates}/extension_lalr_master.erb +6 -6
- data/lib/depager/{template → ruby/templates}/extension_lalr_slave.erb +0 -0
- data/lib/depager/{template → ruby/templates}/simple.erb +0 -0
- data/lib/depager/{template → ruby/templates}/single_lalr_parser.erb +0 -0
- data/lib/depager/utils.rb +30 -69
- data/lib/depager/version.rb +1 -1
- metadata +59 -56
- data/examples/Rakefile +0 -36
- data/lib/depager/Rakefile +0 -34
- data/lib/depager/lr_put_table.rb +0 -116
- data/lib/depager/parse_action.rb +0 -24
@@ -1,14 +1,14 @@
|
|
1
1
|
%class TinyCalc
|
2
|
-
%extend Lexer ('
|
3
|
-
%extend ASTBuilderDepthFirst ('
|
2
|
+
%extend Lexer ('plugins/lex.rb')
|
3
|
+
%extend ASTBuilderDepthFirst ('plugins/astdf.rb')
|
4
4
|
%decorate @ASTBuilderDepthFirst
|
5
|
-
#%decorate ShiftReducePrinter ('
|
5
|
+
#%decorate ShiftReducePrinter ('plugins/srp.rb')
|
6
6
|
%%
|
7
7
|
|
8
8
|
%LEX{
|
9
9
|
/\s+/, /\#.*/ { }
|
10
|
-
/[1-9][0-9]*/ { yield
|
11
|
-
/./ { yield
|
10
|
+
/[1-9][0-9]*/ { yield token(:NUM, $&.to_i) }
|
11
|
+
/./ { yield token($&, $&) }
|
12
12
|
%}
|
13
13
|
|
14
14
|
%AST{
|
@@ -48,7 +48,7 @@
|
|
48
48
|
%%
|
49
49
|
require 'pp'
|
50
50
|
parser = createDecoratedTinyCalc()
|
51
|
-
t, = parser.
|
51
|
+
t, = parser.parse(STDIN)
|
52
52
|
v = Visitor.new
|
53
53
|
pp t.accept(v).value
|
54
54
|
pp t
|
@@ -51,25 +51,26 @@ class TinyCalc < Depager::LALR::Basis
|
|
51
51
|
]
|
52
52
|
### Action Table
|
53
53
|
action_table = [
|
54
|
-
[ nil, nil, nil, nil, nil, nil,
|
55
|
-
[
|
56
|
-
[
|
54
|
+
[ nil, nil, nil, nil, nil, nil, 5, 1, nil, ],
|
55
|
+
[ nil, nil, nil, nil, nil, nil, 5, 1, nil, ],
|
56
|
+
[ ACC, nil, 7, 8, nil, nil, nil, nil, nil, ],
|
57
|
+
[ nil, nil, nil, nil, 9, 10, nil, nil, nil, ],
|
57
58
|
[ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
|
58
59
|
[ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
|
59
|
-
[ nil, nil,
|
60
|
-
[ nil, nil, nil, nil, nil, nil,
|
61
|
-
[ nil, nil, nil, nil, nil, nil,
|
62
|
-
[ nil, nil, nil, nil, nil, nil,
|
63
|
-
[ nil, nil, nil, nil, nil, nil,
|
64
|
-
[ nil, nil, 6, 7, nil, nil, nil, nil, 15, ],
|
65
|
-
[ nil, nil, nil, nil, 8, 9, nil, nil, nil, ],
|
66
|
-
[ nil, nil, nil, nil, 8, 9, nil, nil, nil, ],
|
60
|
+
[ nil, nil, 7, 8, nil, nil, nil, nil, 11, ],
|
61
|
+
[ nil, nil, nil, nil, nil, nil, 5, 1, nil, ],
|
62
|
+
[ nil, nil, nil, nil, nil, nil, 5, 1, nil, ],
|
63
|
+
[ nil, nil, nil, nil, nil, nil, 5, 1, nil, ],
|
64
|
+
[ nil, nil, nil, nil, nil, nil, 5, 1, nil, ],
|
67
65
|
[ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
|
66
|
+
[ nil, nil, nil, nil, 9, 10, nil, nil, nil, ],
|
67
|
+
[ nil, nil, nil, nil, 9, 10, nil, nil, nil, ],
|
68
68
|
[ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
|
69
69
|
[ nil, nil, nil, nil, nil, nil, nil, nil, nil, ],
|
70
70
|
]
|
71
71
|
### Default Reduce Table
|
72
72
|
defred_table = [
|
73
|
+
nil,
|
73
74
|
nil,
|
74
75
|
nil,
|
75
76
|
-3,
|
@@ -80,17 +81,17 @@ class TinyCalc < Depager::LALR::Basis
|
|
80
81
|
nil,
|
81
82
|
nil,
|
82
83
|
nil,
|
83
|
-
|
84
|
+
-8,
|
84
85
|
-1,
|
85
86
|
-2,
|
86
87
|
-4,
|
87
88
|
-5,
|
88
|
-
-8,
|
89
89
|
]
|
90
90
|
defred_after_shift_table = [
|
91
91
|
nil,
|
92
92
|
nil,
|
93
93
|
nil,
|
94
|
+
nil,
|
94
95
|
-6,
|
95
96
|
-7,
|
96
97
|
nil,
|
@@ -98,12 +99,11 @@ class TinyCalc < Depager::LALR::Basis
|
|
98
99
|
nil,
|
99
100
|
nil,
|
100
101
|
nil,
|
101
|
-
|
102
|
+
-8,
|
102
103
|
nil,
|
103
104
|
nil,
|
104
105
|
-4,
|
105
106
|
-5,
|
106
|
-
-8,
|
107
107
|
]
|
108
108
|
### Nonterm to Int
|
109
109
|
nt2i = {
|
@@ -119,17 +119,17 @@ class TinyCalc < Depager::LALR::Basis
|
|
119
119
|
]
|
120
120
|
### Goto Table
|
121
121
|
goto_table = [
|
122
|
-
[
|
122
|
+
[ 2, 3, 4, ],
|
123
|
+
[ 6, 3, 4, ],
|
123
124
|
[ nil, nil, nil, ],
|
124
125
|
[ nil, nil, nil, ],
|
125
126
|
[ nil, nil, nil, ],
|
126
127
|
[ nil, nil, nil, ],
|
127
|
-
[ 10, 2, 3, ],
|
128
|
-
[ nil, 11, 3, ],
|
129
|
-
[ nil, 12, 3, ],
|
130
|
-
[ nil, nil, 13, ],
|
131
|
-
[ nil, nil, 14, ],
|
132
128
|
[ nil, nil, nil, ],
|
129
|
+
[ nil, 12, 4, ],
|
130
|
+
[ nil, 13, 4, ],
|
131
|
+
[ nil, nil, 14, ],
|
132
|
+
[ nil, nil, 15, ],
|
133
133
|
[ nil, nil, nil, ],
|
134
134
|
[ nil, nil, nil, ],
|
135
135
|
[ nil, nil, nil, ],
|
@@ -150,20 +150,30 @@ class TinyCalc < Depager::LALR::Basis
|
|
150
150
|
I000 =
|
151
151
|
( 0) $start : _ expr
|
152
152
|
|
153
|
-
NUM shift, and goto to state
|
154
|
-
'(' shift, and goto to state
|
153
|
+
NUM shift, and goto to state 5
|
154
|
+
'(' shift, and goto to state 1
|
155
155
|
|
156
156
|
|
157
157
|
----------
|
158
158
|
|
159
159
|
<<'----------',
|
160
160
|
I001 =
|
161
|
+
( 8) fact : '(' _ expr ')'
|
162
|
+
|
163
|
+
NUM shift, and goto to state 5
|
164
|
+
'(' shift, and goto to state 1
|
165
|
+
|
166
|
+
|
167
|
+
----------
|
168
|
+
|
169
|
+
<<'----------',
|
170
|
+
I002 =
|
161
171
|
( 0) $start : expr _
|
162
172
|
( 1) expr : expr _ '+' term
|
163
173
|
( 2) expr : expr _ '-' term
|
164
174
|
|
165
|
-
'+' shift, and goto to state
|
166
|
-
'-' shift, and goto to state
|
175
|
+
'+' shift, and goto to state 7
|
176
|
+
'-' shift, and goto to state 8
|
167
177
|
|
168
178
|
|
169
179
|
$end accept
|
@@ -171,20 +181,20 @@ I001 =
|
|
171
181
|
----------
|
172
182
|
|
173
183
|
<<'----------',
|
174
|
-
|
184
|
+
I003 =
|
175
185
|
( 3) expr : term _
|
176
186
|
( 4) term : term _ '*' fact
|
177
187
|
( 5) term : term _ '/' fact
|
178
188
|
|
179
|
-
'*' shift, and goto to state
|
180
|
-
'/' shift, and goto to state
|
189
|
+
'*' shift, and goto to state 9
|
190
|
+
'/' shift, and goto to state 10
|
181
191
|
|
182
192
|
$default reduce using rule 3 (expr)
|
183
193
|
|
184
194
|
----------
|
185
195
|
|
186
196
|
<<'----------',
|
187
|
-
|
197
|
+
I004 =
|
188
198
|
( 6) term : fact _
|
189
199
|
|
190
200
|
|
@@ -193,7 +203,7 @@ I003 =
|
|
193
203
|
----------
|
194
204
|
|
195
205
|
<<'----------',
|
196
|
-
|
206
|
+
I005 =
|
197
207
|
( 7) fact : NUM _
|
198
208
|
|
199
209
|
|
@@ -202,96 +212,95 @@ I004 =
|
|
202
212
|
----------
|
203
213
|
|
204
214
|
<<'----------',
|
205
|
-
|
206
|
-
( 8) fact : '(' _
|
215
|
+
I006 =
|
216
|
+
( 8) fact : '(' expr _ ')'
|
217
|
+
( 1) expr : expr _ '+' term
|
218
|
+
( 2) expr : expr _ '-' term
|
207
219
|
|
208
|
-
|
209
|
-
'
|
220
|
+
'+' shift, and goto to state 7
|
221
|
+
'-' shift, and goto to state 8
|
222
|
+
')' shift, and goto to state 11
|
210
223
|
|
211
224
|
|
212
225
|
----------
|
213
226
|
|
214
227
|
<<'----------',
|
215
|
-
|
228
|
+
I007 =
|
216
229
|
( 1) expr : expr '+' _ term
|
217
230
|
|
218
|
-
NUM shift, and goto to state
|
219
|
-
'(' shift, and goto to state
|
231
|
+
NUM shift, and goto to state 5
|
232
|
+
'(' shift, and goto to state 1
|
220
233
|
|
221
234
|
|
222
235
|
----------
|
223
236
|
|
224
237
|
<<'----------',
|
225
|
-
|
238
|
+
I008 =
|
226
239
|
( 2) expr : expr '-' _ term
|
227
240
|
|
228
|
-
NUM shift, and goto to state
|
229
|
-
'(' shift, and goto to state
|
241
|
+
NUM shift, and goto to state 5
|
242
|
+
'(' shift, and goto to state 1
|
230
243
|
|
231
244
|
|
232
245
|
----------
|
233
246
|
|
234
247
|
<<'----------',
|
235
|
-
|
248
|
+
I009 =
|
236
249
|
( 4) term : term '*' _ fact
|
237
250
|
|
238
|
-
NUM shift, and goto to state
|
239
|
-
'(' shift, and goto to state
|
251
|
+
NUM shift, and goto to state 5
|
252
|
+
'(' shift, and goto to state 1
|
240
253
|
|
241
254
|
|
242
255
|
----------
|
243
256
|
|
244
257
|
<<'----------',
|
245
|
-
|
258
|
+
I010 =
|
246
259
|
( 5) term : term '/' _ fact
|
247
260
|
|
248
|
-
NUM shift, and goto to state
|
249
|
-
'(' shift, and goto to state
|
261
|
+
NUM shift, and goto to state 5
|
262
|
+
'(' shift, and goto to state 1
|
250
263
|
|
251
264
|
|
252
265
|
----------
|
253
266
|
|
254
267
|
<<'----------',
|
255
|
-
|
256
|
-
( 8) fact : '(' expr
|
257
|
-
( 1) expr : expr _ '+' term
|
258
|
-
( 2) expr : expr _ '-' term
|
268
|
+
I011 =
|
269
|
+
( 8) fact : '(' expr ')' _
|
259
270
|
|
260
|
-
'+' shift, and goto to state 6
|
261
|
-
'-' shift, and goto to state 7
|
262
|
-
')' shift, and goto to state 15
|
263
271
|
|
272
|
+
$default reduce using rule 8 (fact) [after shift]
|
264
273
|
|
265
274
|
----------
|
266
275
|
|
267
276
|
<<'----------',
|
268
|
-
|
277
|
+
I012 =
|
269
278
|
( 1) expr : expr '+' term _
|
270
279
|
( 4) term : term _ '*' fact
|
271
280
|
( 5) term : term _ '/' fact
|
272
281
|
|
273
|
-
'*' shift, and goto to state
|
274
|
-
'/' shift, and goto to state
|
282
|
+
'*' shift, and goto to state 9
|
283
|
+
'/' shift, and goto to state 10
|
275
284
|
|
276
285
|
$default reduce using rule 1 (expr)
|
277
286
|
|
278
287
|
----------
|
279
288
|
|
280
289
|
<<'----------',
|
281
|
-
|
290
|
+
I013 =
|
282
291
|
( 2) expr : expr '-' term _
|
283
292
|
( 4) term : term _ '*' fact
|
284
293
|
( 5) term : term _ '/' fact
|
285
294
|
|
286
|
-
'*' shift, and goto to state
|
287
|
-
'/' shift, and goto to state
|
295
|
+
'*' shift, and goto to state 9
|
296
|
+
'/' shift, and goto to state 10
|
288
297
|
|
289
298
|
$default reduce using rule 2 (expr)
|
290
299
|
|
291
300
|
----------
|
292
301
|
|
293
302
|
<<'----------',
|
294
|
-
|
303
|
+
I014 =
|
295
304
|
( 4) term : term '*' fact _
|
296
305
|
|
297
306
|
|
@@ -300,21 +309,12 @@ I013 =
|
|
300
309
|
----------
|
301
310
|
|
302
311
|
<<'----------',
|
303
|
-
|
312
|
+
I015 =
|
304
313
|
( 5) term : term '/' fact _
|
305
314
|
|
306
315
|
|
307
316
|
$default reduce using rule 5 (term) [after shift]
|
308
317
|
|
309
|
-
----------
|
310
|
-
|
311
|
-
<<'----------',
|
312
|
-
I015 =
|
313
|
-
( 8) fact : '(' expr ')' _
|
314
|
-
|
315
|
-
|
316
|
-
$default reduce using rule 8 (fact) [after shift]
|
317
|
-
|
318
318
|
----------
|
319
319
|
]
|
320
320
|
|
@@ -341,12 +341,12 @@ I015 =
|
|
341
341
|
|
342
342
|
when /\A[1-9][0-9]*/
|
343
343
|
@oldline = @line; @line = $'
|
344
|
-
yield
|
344
|
+
yield token(:NUM, $&.to_i)
|
345
345
|
|
346
346
|
|
347
347
|
when /\A./
|
348
348
|
@oldline = @line; @line = $'
|
349
|
-
yield
|
349
|
+
yield token($&, $&)
|
350
350
|
|
351
351
|
|
352
352
|
else
|
@@ -360,7 +360,6 @@ I015 =
|
|
360
360
|
end
|
361
361
|
|
362
362
|
### Outer Code
|
363
|
-
|
364
363
|
class Node
|
365
364
|
attr_accessor :lineno
|
366
365
|
attr_accessor :value
|
@@ -417,8 +416,6 @@ class NilNode
|
|
417
416
|
def accept v
|
418
417
|
end
|
419
418
|
end
|
420
|
-
|
421
|
-
|
422
419
|
class Node_add < Node
|
423
420
|
attr_accessor :left, :right
|
424
421
|
attr_accessor
|
@@ -439,7 +436,6 @@ class Node_add < Node
|
|
439
436
|
self
|
440
437
|
end
|
441
438
|
end
|
442
|
-
|
443
439
|
class Node_sub < Node
|
444
440
|
attr_accessor :left, :right
|
445
441
|
attr_accessor
|
@@ -460,7 +456,6 @@ class Node_sub < Node
|
|
460
456
|
self
|
461
457
|
end
|
462
458
|
end
|
463
|
-
|
464
459
|
class Node_mul < Node
|
465
460
|
attr_accessor :left, :right
|
466
461
|
attr_accessor
|
@@ -481,7 +476,6 @@ class Node_mul < Node
|
|
481
476
|
self
|
482
477
|
end
|
483
478
|
end
|
484
|
-
|
485
479
|
class Node_div < Node
|
486
480
|
attr_accessor :left, :right
|
487
481
|
attr_accessor
|
@@ -502,7 +496,6 @@ class Node_div < Node
|
|
502
496
|
self
|
503
497
|
end
|
504
498
|
end
|
505
|
-
|
506
499
|
class Node_literal < Node
|
507
500
|
attr_accessor :n
|
508
501
|
attr_accessor :n
|
@@ -526,12 +519,12 @@ end
|
|
526
519
|
node.accept(self)
|
527
520
|
end
|
528
521
|
|
529
|
-
module_eval <<-'.,.,
|
522
|
+
module_eval <<-'.,.,122745803821011.,.,', 'sample_calc/calc.astdf.dr', 16
|
530
523
|
|
531
524
|
|
532
|
-
.,.,
|
525
|
+
.,.,122745803821011.,.,
|
533
526
|
|
534
|
-
module_eval <<-'.,.,
|
527
|
+
module_eval <<-'.,.,12274580381382.,.,', 'sample_calc/calc.astdf.dr', 16
|
535
528
|
def visit_Node_add node
|
536
529
|
node.value = node.left.value + node.right.value
|
537
530
|
|
@@ -540,9 +533,9 @@ def visit_Node_add node
|
|
540
533
|
raise
|
541
534
|
|
542
535
|
end
|
543
|
-
.,.,
|
536
|
+
.,.,12274580381382.,.,
|
544
537
|
|
545
|
-
module_eval <<-'.,.,
|
538
|
+
module_eval <<-'.,.,122745803862484.,.,', 'sample_calc/calc.astdf.dr', 17
|
546
539
|
def visit_Node_sub node
|
547
540
|
node.value = node.left.value - node.right.value
|
548
541
|
|
@@ -551,9 +544,9 @@ def visit_Node_sub node
|
|
551
544
|
raise
|
552
545
|
|
553
546
|
end
|
554
|
-
.,.,
|
547
|
+
.,.,122745803862484.,.,
|
555
548
|
|
556
|
-
module_eval <<-'.,.,
|
549
|
+
module_eval <<-'.,.,122745803834024.,.,', 'sample_calc/calc.astdf.dr', 18
|
557
550
|
def visit_Node_mul node
|
558
551
|
node.value = node.left.value * node.right.value
|
559
552
|
|
@@ -562,9 +555,9 @@ def visit_Node_mul node
|
|
562
555
|
raise
|
563
556
|
|
564
557
|
end
|
565
|
-
.,.,
|
558
|
+
.,.,122745803834024.,.,
|
566
559
|
|
567
|
-
module_eval <<-'.,.,
|
560
|
+
module_eval <<-'.,.,122745803829849.,.,', 'sample_calc/calc.astdf.dr', 19
|
568
561
|
def visit_Node_div node
|
569
562
|
node.value = node.left.value / node.right.value
|
570
563
|
|
@@ -573,9 +566,9 @@ def visit_Node_div node
|
|
573
566
|
raise
|
574
567
|
|
575
568
|
end
|
576
|
-
.,.,
|
569
|
+
.,.,122745803829849.,.,
|
577
570
|
|
578
|
-
module_eval <<-'.,.,
|
571
|
+
module_eval <<-'.,.,122745803814243.,.,', 'sample_calc/calc.astdf.dr', 20
|
579
572
|
def visit_Node_literal node
|
580
573
|
node.value = node.n.value
|
581
574
|
|
@@ -584,13 +577,13 @@ def visit_Node_literal node
|
|
584
577
|
raise
|
585
578
|
|
586
579
|
end
|
587
|
-
.,.,
|
580
|
+
.,.,122745803814243.,.,
|
588
581
|
|
589
582
|
end
|
590
583
|
|
591
584
|
class D4TinyCalc::ASTBuilderDepthFirst < Depager::LALR::Action #:nodoc:all
|
592
585
|
include Depager::DecoratorUtils
|
593
|
-
|
586
|
+
|
594
587
|
on_reduce = [
|
595
588
|
nil,
|
596
589
|
:_ast_0,
|
@@ -611,53 +604,53 @@ class D4TinyCalc::ASTBuilderDepthFirst < Depager::LALR::Action #:nodoc:all
|
|
611
604
|
end
|
612
605
|
|
613
606
|
|
614
|
-
module_eval <<-'.,.,
|
607
|
+
module_eval <<-'.,.,122745803811862.,.,', 'sample_calc/calc.astdf.dr', 26
|
615
608
|
def _ast_0 val
|
616
609
|
Node_add.new(val[0].lineno, val[0], val[2])
|
617
610
|
end
|
618
|
-
.,.,
|
611
|
+
.,.,122745803811862.,.,
|
619
612
|
|
620
|
-
module_eval <<-'.,.,
|
613
|
+
module_eval <<-'.,.,122745803856027.,.,', 'sample_calc/calc.astdf.dr', 28
|
621
614
|
def _ast_1 val
|
622
615
|
Node_sub.new(val[0].lineno, val[0], val[2])
|
623
616
|
end
|
624
|
-
.,.,
|
617
|
+
.,.,122745803856027.,.,
|
625
618
|
|
626
|
-
module_eval <<-'.,.,
|
619
|
+
module_eval <<-'.,.,122745803849322.,.,', 'sample_calc/calc.astdf.dr', 30
|
627
620
|
def _ast_2 val
|
628
621
|
val[0]
|
629
622
|
end
|
630
|
-
.,.,
|
623
|
+
.,.,122745803849322.,.,
|
631
624
|
|
632
|
-
module_eval <<-'.,.,
|
625
|
+
module_eval <<-'.,.,12274580384051.,.,', 'sample_calc/calc.astdf.dr', 34
|
633
626
|
def _ast_3 val
|
634
627
|
Node_mul.new(val[0].lineno, val[0], val[2])
|
635
628
|
end
|
636
|
-
.,.,
|
629
|
+
.,.,12274580384051.,.,
|
637
630
|
|
638
|
-
module_eval <<-'.,.,
|
631
|
+
module_eval <<-'.,.,122745803856888.,.,', 'sample_calc/calc.astdf.dr', 36
|
639
632
|
def _ast_4 val
|
640
633
|
Node_div.new(val[0].lineno, val[0], val[2])
|
641
634
|
end
|
642
|
-
.,.,
|
635
|
+
.,.,122745803856888.,.,
|
643
636
|
|
644
|
-
module_eval <<-'.,.,
|
637
|
+
module_eval <<-'.,.,122745803846734.,.,', 'sample_calc/calc.astdf.dr', 38
|
645
638
|
def _ast_5 val
|
646
639
|
val[0]
|
647
640
|
end
|
648
|
-
.,.,
|
641
|
+
.,.,122745803846734.,.,
|
649
642
|
|
650
|
-
module_eval <<-'.,.,
|
643
|
+
module_eval <<-'.,.,12274580385064.,.,', 'sample_calc/calc.astdf.dr', 42
|
651
644
|
def _ast_6 val
|
652
645
|
Node_literal.new(val[0].lineno, val[0])
|
653
646
|
end
|
654
|
-
.,.,
|
647
|
+
.,.,12274580385064.,.,
|
655
648
|
|
656
|
-
module_eval <<-'.,.,
|
649
|
+
module_eval <<-'.,.,122745803818388.,.,', 'sample_calc/calc.astdf.dr', 44
|
657
650
|
def _ast_7 val
|
658
651
|
val[1]
|
659
652
|
end
|
660
|
-
.,.,
|
653
|
+
.,.,122745803818388.,.,
|
661
654
|
|
662
655
|
end
|
663
656
|
|
@@ -671,7 +664,7 @@ if __FILE__ == $0
|
|
671
664
|
### Main Code
|
672
665
|
require 'pp'
|
673
666
|
parser = createDecoratedTinyCalc()
|
674
|
-
t, = parser.
|
667
|
+
t, = parser.parse(STDIN)
|
675
668
|
v = Visitor.new
|
676
669
|
pp t.accept(v).value
|
677
670
|
pp t
|