depager 0.1.9 → 0.2.0
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/bin/depager +1 -0
- data/data/depager/misc/depager-mode.el +35 -24
- data/data/depager/pre-setup.rb +3 -0
- data/examples/Rakefile +36 -0
- data/examples/c89/c89.dr +496 -0
- data/examples/c89/c89.tab.rb +2197 -0
- data/examples/c89/test.c89 +10 -0
- data/{data/depager/sample → examples}/extension/paction.dr +0 -0
- data/{data/depager/sample → examples}/extension/pactiontest.dr +0 -0
- data/{data/depager/sample → examples}/pl0d/pl0ds.dr +0 -0
- data/examples/pl0d/pl0ds.tab.rb +1702 -0
- data/{data/depager/sample/pl0d/pl0test.pl0 → examples/pl0d/test.pl0ds} +0 -0
- data/{data/depager/sample → examples}/sample_calc/calc.action.dr +0 -0
- data/examples/sample_calc/calc.action.tab.rb +283 -0
- data/{data/depager/sample → examples}/sample_calc/calc.astdf.dr +0 -0
- data/examples/sample_calc/calc.astdf.tab.rb +476 -0
- data/{data/depager/sample → examples}/sample_calc/calc.astl.action.dr +0 -0
- data/examples/sample_calc/calc.astl.action.tab.rb +593 -0
- data/{data/depager/sample → examples}/sample_calc/calc.astl.dr +0 -0
- data/examples/sample_calc/calc.astl.tab.rb +501 -0
- data/{data/depager/sample → examples}/sample_calc/calc.atree.dr +0 -0
- data/examples/sample_calc/calc.atree.tab.rb +277 -0
- data/{data/depager/sample → examples}/sample_calc/calc.cst.dr +0 -0
- data/examples/sample_calc/calc.cst.tab.rb +478 -0
- data/{data/depager/sample → examples}/sample_calc/calc.dr +0 -0
- data/{data/depager/sample → examples}/sample_calc/calc.lex.dr +0 -0
- data/examples/sample_calc/calc.lex.tab.rb +192 -0
- data/{data/depager/sample → examples}/sample_calc/calc.nvaction.dr +0 -0
- data/examples/sample_calc/calc.nvaction.tab.rb +291 -0
- data/examples/sample_calc/calc.tab.rb +183 -0
- data/{data/depager/sample → examples}/sample_calc/calc_prec.nvaction.dr +0 -0
- data/examples/sample_calc/calc_prec.nvaction.tab.rb +257 -0
- data/examples/sample_calc/test.calc +1 -0
- data/{data/depager/sample/slex_test/slextest1.dr → examples/slex_test/divreg.slex.dr} +3 -11
- data/examples/slex_test/divreg.slex.tab.rb +227 -0
- data/{data/depager/sample/slex_test/slextest2.dr → examples/slex_test/ljoin.slex.dr} +10 -7
- data/examples/slex_test/ljoin.slex.tab.rb +277 -0
- data/examples/slex_test/test.divreg +1 -0
- data/examples/slex_test/test.ljoin +3 -0
- data/lib/depager.rb +194 -127
- data/lib/depager/Rakefile +8 -4
- data/lib/depager/ast_base.dr +3 -3
- data/lib/depager/ast_base.rb +197 -144
- data/lib/depager/atree.rb +55 -36
- data/lib/depager/cst.dr +6 -4
- data/lib/depager/cst.rb +69 -49
- data/lib/depager/grammar.rb +136 -0
- data/lib/depager/lex.dr +22 -8
- data/lib/depager/lex.rb +94 -53
- data/lib/depager/lr.rb +101 -167
- data/lib/depager/parse_action.rb +1 -1
- data/lib/depager/parser.rb +34 -7
- data/lib/depager/slex.dr +76 -36
- data/lib/depager/slex.rb +345 -151
- data/lib/depager/srp.rb +3 -2
- data/lib/depager/template/extension_lalr_slave.erb +1 -1
- data/lib/depager/template/single_lalr_parser.erb +1 -1
- data/lib/depager/utils.rb +2 -1
- data/lib/depager/version.rb +2 -2
- metadata +42 -28
- data/Manifest.txt +0 -52
- data/lib/depager/psrtmpl.rb +0 -33
@@ -0,0 +1,136 @@
|
|
1
|
+
module Depager::ParsingMethodCommon
|
2
|
+
class G
|
3
|
+
attr_accessor :rulelist, :gh, :syms, :nonterms, :terms, :closure, :ismap, :nssize, :tla
|
4
|
+
attr_accessor :precs, :epr, :epr2, :f0e, :first1, :eoi
|
5
|
+
Eps = 0x3fffffff #epsilon
|
6
|
+
#Eps = []
|
7
|
+
def initialize rulelist, ts, ns, precs = nil
|
8
|
+
@nssize = ns.size
|
9
|
+
@precs = precs
|
10
|
+
@eoi = ts[nil]
|
11
|
+
@syms = ns.invert.merge(ts.invert)
|
12
|
+
@tla = @syms.size
|
13
|
+
|
14
|
+
@rulelist = rulelist
|
15
|
+
@gh = []; @nssize.times{|i| @gh[i] = []}
|
16
|
+
@epr = {}
|
17
|
+
@f0e = {}
|
18
|
+
@rulelist.each_with_index do |rule, rx|
|
19
|
+
rule.g = self
|
20
|
+
rule.n = rx
|
21
|
+
@gh[rule.l].push rule
|
22
|
+
if rule.r.empty?
|
23
|
+
@epr[rule.l] = rule.n
|
24
|
+
@f0e[rule.l] = { rule.n => [Eps] }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
make_sym_first
|
28
|
+
initialize_depend
|
29
|
+
end
|
30
|
+
|
31
|
+
def initialize_depend
|
32
|
+
end
|
33
|
+
|
34
|
+
def make_sym_first
|
35
|
+
@first1 = {@tla => [@tla]}
|
36
|
+
@syms.each_key do |s|
|
37
|
+
if terms? s
|
38
|
+
@first1[s] = [s]
|
39
|
+
else
|
40
|
+
@first1[s] = []
|
41
|
+
@first1[s].push Eps if @epr[s]
|
42
|
+
end
|
43
|
+
end
|
44
|
+
begin
|
45
|
+
cnt = false
|
46
|
+
@syms.each_key do |s|
|
47
|
+
@gh[s].each do |rule|
|
48
|
+
rule.r.each do |es|
|
49
|
+
ss = @first1[es] - @first1[s]
|
50
|
+
unless ss.empty?
|
51
|
+
@first1[s] |= ss
|
52
|
+
cnt = true
|
53
|
+
end
|
54
|
+
break unless @first1[es].include? Eps
|
55
|
+
end
|
56
|
+
unless @first1[s].include? Eps
|
57
|
+
if rule.r.all?{|i| @first1[i].include? Eps }
|
58
|
+
@first1.push Eps
|
59
|
+
cnt = true
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end if nonterms? s
|
63
|
+
end
|
64
|
+
end while cnt
|
65
|
+
end
|
66
|
+
|
67
|
+
def first p
|
68
|
+
r = []
|
69
|
+
x = 0
|
70
|
+
p.each do |i|
|
71
|
+
if i == Eps
|
72
|
+
elsif i.class == Array
|
73
|
+
i.each do |j|
|
74
|
+
r |= @first1[j]
|
75
|
+
end
|
76
|
+
break unless i.any?{|j| @epr[j] || j==Eps }
|
77
|
+
else
|
78
|
+
r |= @first1[i]
|
79
|
+
break unless @epr[i]
|
80
|
+
end
|
81
|
+
x += 1
|
82
|
+
end
|
83
|
+
r -= [Eps]
|
84
|
+
r |= [Eps] if x == p.size
|
85
|
+
return r
|
86
|
+
end
|
87
|
+
|
88
|
+
def terms? i
|
89
|
+
i && i >= @nssize
|
90
|
+
end
|
91
|
+
|
92
|
+
def nonterms? i
|
93
|
+
i && i < @nssize
|
94
|
+
end
|
95
|
+
|
96
|
+
def [](n)
|
97
|
+
@rulelist[n]
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
class Rule
|
102
|
+
def self.[] l, r, prec = nil
|
103
|
+
self.new l, r, nil, nil, nil, prec
|
104
|
+
end
|
105
|
+
|
106
|
+
attr_accessor :l, :r, :g, :n, :act, :epr, :prec
|
107
|
+
def initialize l, r, g = nil, n = nil, act = nil, prec = nil
|
108
|
+
@l = l
|
109
|
+
@r = r
|
110
|
+
@g = g
|
111
|
+
@n = n
|
112
|
+
@act = act
|
113
|
+
@epr = []
|
114
|
+
@prec = prec
|
115
|
+
initialize_depend
|
116
|
+
end
|
117
|
+
def initialize_depend
|
118
|
+
end
|
119
|
+
|
120
|
+
alias lhs l
|
121
|
+
alias rhs r
|
122
|
+
|
123
|
+
def to_s
|
124
|
+
r = @r.map{|i| @g.syms[i]}.join(' ')
|
125
|
+
"(#{'%03s'%@n}) #{@g.syms[@l]} : #{r}"
|
126
|
+
end
|
127
|
+
|
128
|
+
def hash
|
129
|
+
(@l.hash % 37) * (@r.hash % 37)
|
130
|
+
end
|
131
|
+
def eql? i
|
132
|
+
@l == i.l && @r == i.r
|
133
|
+
end
|
134
|
+
alias == eql?
|
135
|
+
end
|
136
|
+
end
|
data/lib/depager/lex.dr
CHANGED
@@ -13,15 +13,20 @@
|
|
13
13
|
end
|
14
14
|
def lex
|
15
15
|
until @file.eof?
|
16
|
-
until @line.empty?
|
16
|
+
until @line.empty?
|
17
17
|
case @line
|
18
18
|
when /\A\s+/
|
19
19
|
#skip blank
|
20
20
|
when /\A%\}\s*\Z/
|
21
21
|
@line = $'
|
22
22
|
yield nil,nil
|
23
|
-
when /\A\/(([^\/\\]+|\\.)*)
|
23
|
+
when /\A\/(([^\/\\]+|\\.)*)\//
|
24
24
|
yield :LEX, "/\\A#{$1}/"
|
25
|
+
when /\A'([^'\\]+|\\.)*'/, /\A"([^"\\]+|\\.)*"/
|
26
|
+
rest = $'
|
27
|
+
str = Regexp.escape($1).gsub('/', '\/')
|
28
|
+
rest.match(/^/)
|
29
|
+
yield :LEX, "/\\A#{str}/"
|
25
30
|
when /\A\{/
|
26
31
|
yield :ACTION, parse_action
|
27
32
|
/./=~'.'
|
@@ -46,16 +51,14 @@
|
|
46
51
|
g_parser.optinner << %{
|
47
52
|
def lex
|
48
53
|
begin
|
49
|
-
until @line.empty?
|
54
|
+
until @line.empty?
|
50
55
|
case @line
|
51
|
-
|
56
|
+
#{ _lexactlist }
|
52
57
|
else
|
53
58
|
raise RuntimeError, "must not happen \#{@line}"
|
54
59
|
end
|
55
|
-
@oldline = @line
|
56
|
-
@line = $'
|
57
60
|
end
|
58
|
-
end while @line = getline
|
61
|
+
end while @line0 = @line = getline
|
59
62
|
yield nil, nil
|
60
63
|
end
|
61
64
|
}; #code
|
@@ -66,7 +69,18 @@
|
|
66
69
|
| lexactlist lexact { _lexactlist << _lexact }
|
67
70
|
;
|
68
71
|
lexact:
|
69
|
-
lexlist ACTION
|
72
|
+
lexlist opt_noskip ACTION
|
73
|
+
{
|
74
|
+
%{
|
75
|
+
when #{_lexlist.join(', ')}
|
76
|
+
#{ _opt_noskip ? '#' : "@oldline = @line; @line = $'" }
|
77
|
+
#{ _ACTION }
|
78
|
+
}; #code
|
79
|
+
}
|
80
|
+
;
|
81
|
+
opt_noskip:
|
82
|
+
{ false }
|
83
|
+
| '!' { true }
|
70
84
|
;
|
71
85
|
lexlist:
|
72
86
|
LEX { [ _LEX ] }
|
data/lib/depager/lex.rb
CHANGED
@@ -44,7 +44,7 @@ end
|
|
44
44
|
module D4LexerExtension_prerulelist #:nodoc:all
|
45
45
|
end
|
46
46
|
|
47
|
-
class LexerExtension_prerulelist < Basis #:nodoc:all
|
47
|
+
class LexerExtension_prerulelist < Depager::LALR::Basis #:nodoc:all
|
48
48
|
include Depager::ExtensionUtils
|
49
49
|
|
50
50
|
include ActionParser
|
@@ -55,7 +55,9 @@ class LexerExtension_prerulelist < Basis #:nodoc:all
|
|
55
55
|
[ 0, 1 ],
|
56
56
|
[ 1, 1 ],
|
57
57
|
[ 1, 2 ],
|
58
|
-
[ 2,
|
58
|
+
[ 2, 3 ],
|
59
|
+
[ 4, 0 ],
|
60
|
+
[ 4, 1 ],
|
59
61
|
[ 3, 1 ],
|
60
62
|
[ 3, 3 ],
|
61
63
|
]
|
@@ -68,61 +70,70 @@ class LexerExtension_prerulelist < Basis #:nodoc:all
|
|
68
70
|
nil => 0,
|
69
71
|
false => 1,
|
70
72
|
:ACTION => 2,
|
71
|
-
|
72
|
-
|
73
|
+
"!" => 3,
|
74
|
+
:LEX => 4,
|
75
|
+
"," => 5,
|
73
76
|
}
|
74
77
|
### Int to Term
|
75
78
|
i2t = [
|
76
79
|
nil,
|
77
80
|
false,
|
78
81
|
:ACTION,
|
82
|
+
"!",
|
79
83
|
:LEX,
|
80
84
|
",",
|
81
85
|
]
|
82
86
|
### Action Table
|
83
87
|
action_table = [
|
84
|
-
[ nil, nil, nil,
|
85
|
-
[ ACC, nil, nil, nil, nil, ],
|
86
|
-
[ nil, nil, nil,
|
87
|
-
[ nil, nil, nil, nil, nil, ],
|
88
|
-
[ nil, nil, nil,
|
89
|
-
[ nil, nil,
|
90
|
-
[ nil, nil, nil, nil, nil, ],
|
91
|
-
[ nil, nil, nil, nil, nil, ],
|
92
|
-
[ nil, nil, nil,
|
93
|
-
[ nil, nil, nil, nil, nil, ],
|
88
|
+
[ nil, nil, nil, nil, 5, nil, ],
|
89
|
+
[ ACC, nil, nil, nil, nil, nil, ],
|
90
|
+
[ nil, nil, nil, nil, 5, nil, ],
|
91
|
+
[ nil, nil, nil, nil, nil, nil, ],
|
92
|
+
[ nil, nil, nil, 9, nil, 8, ],
|
93
|
+
[ nil, nil, nil, nil, nil, nil, ],
|
94
|
+
[ nil, nil, nil, nil, nil, nil, ],
|
95
|
+
[ nil, nil, 10, nil, nil, nil, ],
|
96
|
+
[ nil, nil, nil, nil, 11, nil, ],
|
97
|
+
[ nil, nil, nil, nil, nil, nil, ],
|
98
|
+
[ nil, nil, nil, nil, nil, nil, ],
|
99
|
+
[ nil, nil, nil, nil, nil, nil, ],
|
94
100
|
]
|
95
101
|
### Default Reduce Table
|
96
102
|
defred_table = [
|
97
103
|
nil,
|
98
104
|
nil,
|
99
105
|
-1,
|
100
|
-
-5,
|
101
106
|
-2,
|
102
|
-
|
107
|
+
-5,
|
108
|
+
-7,
|
103
109
|
-3,
|
104
|
-
|
110
|
+
nil,
|
105
111
|
nil,
|
106
112
|
-6,
|
113
|
+
-4,
|
114
|
+
-8,
|
107
115
|
]
|
108
116
|
defred_after_shift_table = [
|
109
117
|
nil,
|
110
118
|
nil,
|
111
119
|
nil,
|
112
|
-
-5,
|
113
120
|
-2,
|
114
121
|
nil,
|
122
|
+
-7,
|
115
123
|
-3,
|
116
|
-
|
124
|
+
nil,
|
117
125
|
nil,
|
118
126
|
-6,
|
127
|
+
-4,
|
128
|
+
-8,
|
119
129
|
]
|
120
130
|
### Nonterm to Int
|
121
131
|
nt2i = {
|
122
132
|
:start => 0,
|
123
133
|
:lexactlist => 1,
|
124
134
|
:lexact => 2,
|
125
|
-
:lexlist => 3,
|
135
|
+
:lexlist => 3,
|
136
|
+
:opt_noskip => 4,
|
126
137
|
}
|
127
138
|
### Int to Nonterm
|
128
139
|
i2nt = [
|
@@ -130,19 +141,22 @@ class LexerExtension_prerulelist < Basis #:nodoc:all
|
|
130
141
|
:lexactlist,
|
131
142
|
:lexact,
|
132
143
|
:lexlist,
|
144
|
+
:opt_noskip,
|
133
145
|
]
|
134
146
|
### Goto Table
|
135
147
|
goto_table = [
|
136
|
-
[ 1, 2, 4,
|
137
|
-
[ nil, nil, nil, nil, ],
|
138
|
-
[ nil, nil, 6,
|
139
|
-
[ nil, nil, nil, nil, ],
|
140
|
-
[ nil, nil, nil, nil, ],
|
141
|
-
[ nil, nil, nil, nil, ],
|
142
|
-
[ nil, nil, nil, nil, ],
|
143
|
-
[ nil, nil, nil, nil, ],
|
144
|
-
[ nil, nil, nil, nil, ],
|
145
|
-
[ nil, nil, nil, nil, ],
|
148
|
+
[ 1, 2, 3, 4, nil, ],
|
149
|
+
[ nil, nil, nil, nil, nil, ],
|
150
|
+
[ nil, nil, 6, 4, nil, ],
|
151
|
+
[ nil, nil, nil, nil, nil, ],
|
152
|
+
[ nil, nil, nil, nil, 7, ],
|
153
|
+
[ nil, nil, nil, nil, nil, ],
|
154
|
+
[ nil, nil, nil, nil, nil, ],
|
155
|
+
[ nil, nil, nil, nil, nil, ],
|
156
|
+
[ nil, nil, nil, nil, nil, ],
|
157
|
+
[ nil, nil, nil, nil, nil, ],
|
158
|
+
[ nil, nil, nil, nil, nil, ],
|
159
|
+
[ nil, nil, nil, nil, nil, ],
|
146
160
|
]
|
147
161
|
|
148
162
|
Tables = [ reduce_table, nparams, action_table,
|
@@ -181,15 +195,20 @@ class LexerExtension_prerulelist < Basis #:nodoc:all
|
|
181
195
|
end
|
182
196
|
def lex
|
183
197
|
until @file.eof?
|
184
|
-
until @line.empty?
|
198
|
+
until @line.empty?
|
185
199
|
case @line
|
186
200
|
when /\A\s+/
|
187
201
|
#skip blank
|
188
202
|
when /\A%\}\s*\Z/
|
189
203
|
@line = $'
|
190
204
|
yield nil,nil
|
191
|
-
when /\A\/(([^\/\\]+|\\.)*)
|
205
|
+
when /\A\/(([^\/\\]+|\\.)*)\//
|
192
206
|
yield :LEX, "/\\A#{$1}/"
|
207
|
+
when /\A'([^'\\]+|\\.)*'/, /\A"([^"\\]+|\\.)*"/
|
208
|
+
rest = $'
|
209
|
+
str = Regexp.escape($1).gsub('/', '\/')
|
210
|
+
rest.match(/^/)
|
211
|
+
yield :LEX, "/\\A#{str}/"
|
193
212
|
when /\A\{/
|
194
213
|
yield :ACTION, parse_action
|
195
214
|
/./=~'.'
|
@@ -209,7 +228,7 @@ end
|
|
209
228
|
|
210
229
|
### Outer Code
|
211
230
|
|
212
|
-
class D4LexerExtension_prerulelist::NVAction < Depager::Action #:nodoc:all
|
231
|
+
class D4LexerExtension_prerulelist::NVAction < Depager::LALR::Action #:nodoc:all
|
213
232
|
include Depager::DecoratorUtils
|
214
233
|
include ActionParser
|
215
234
|
|
@@ -221,6 +240,8 @@ class D4LexerExtension_prerulelist::NVAction < Depager::Action #:nodoc:all
|
|
221
240
|
:_act_3,
|
222
241
|
:_act_4,
|
223
242
|
:_act_5,
|
243
|
+
:_act_6,
|
244
|
+
:_act_7,
|
224
245
|
|
225
246
|
]
|
226
247
|
Tables = [on_reduce]
|
@@ -231,75 +252,95 @@ class D4LexerExtension_prerulelist::NVAction < Depager::Action #:nodoc:all
|
|
231
252
|
end
|
232
253
|
|
233
254
|
|
234
|
-
module_eval <<-'.,.,
|
255
|
+
module_eval <<-'.,.,118754107729449.,.,', 'lex.dr', 48
|
235
256
|
def _act_0 val
|
236
257
|
_lexactlist = *val
|
237
258
|
|
238
259
|
g_parser.optinner << %{
|
239
260
|
def lex
|
240
261
|
begin
|
241
|
-
until @line.empty?
|
262
|
+
until @line.empty?
|
242
263
|
case @line
|
243
|
-
|
264
|
+
#{ _lexactlist }
|
244
265
|
else
|
245
266
|
raise RuntimeError, "must not happen \#{@line}"
|
246
267
|
end
|
247
|
-
@oldline = @line
|
248
|
-
@line = $'
|
249
268
|
end
|
250
|
-
end while @line = getline
|
269
|
+
end while @line0 = @line = getline
|
251
270
|
yield nil, nil
|
252
271
|
end
|
253
272
|
}; #code
|
254
273
|
|
255
274
|
end
|
256
275
|
|
257
|
-
.,.,
|
276
|
+
.,.,118754107729449.,.,
|
258
277
|
|
259
|
-
module_eval <<-'.,.,
|
278
|
+
module_eval <<-'.,.,118754107760430.,.,', 'lex.dr', 66
|
260
279
|
def _act_1 val
|
261
280
|
_lexact = *val
|
262
281
|
[ _lexact ]
|
263
282
|
|
264
283
|
end
|
265
284
|
|
266
|
-
.,.,
|
285
|
+
.,.,118754107760430.,.,
|
267
286
|
|
268
|
-
module_eval <<-'.,.,
|
287
|
+
module_eval <<-'.,.,118754107730115.,.,', 'lex.dr', 67
|
269
288
|
def _act_2 val
|
270
289
|
_lexactlist, _lexact = *val
|
271
290
|
_lexactlist << _lexact
|
272
291
|
|
273
292
|
end
|
274
293
|
|
275
|
-
.,.,
|
294
|
+
.,.,118754107730115.,.,
|
276
295
|
|
277
|
-
module_eval <<-'.,.,
|
296
|
+
module_eval <<-'.,.,118754107747000.,.,', 'lex.dr', 71
|
278
297
|
def _act_3 val
|
279
|
-
_lexlist, _ACTION = *val
|
280
|
-
|
298
|
+
_lexlist, _opt_noskip, _ACTION = *val
|
299
|
+
|
300
|
+
%{
|
301
|
+
when #{_lexlist.join(', ')}
|
302
|
+
#{ _opt_noskip ? '#' : "@oldline = @line; @line = $'" }
|
303
|
+
#{ _ACTION }
|
304
|
+
}; #code
|
281
305
|
|
282
306
|
end
|
283
307
|
|
284
|
-
.,.,
|
308
|
+
.,.,118754107747000.,.,
|
285
309
|
|
286
|
-
module_eval <<-'.,.,
|
310
|
+
module_eval <<-'.,.,118754107727512.,.,', 'lex.dr', 80
|
287
311
|
def _act_4 val
|
312
|
+
false
|
313
|
+
|
314
|
+
end
|
315
|
+
|
316
|
+
.,.,118754107727512.,.,
|
317
|
+
|
318
|
+
module_eval <<-'.,.,118754107710888.,.,', 'lex.dr', 81
|
319
|
+
def _act_5 val
|
320
|
+
_ = *val
|
321
|
+
true
|
322
|
+
|
323
|
+
end
|
324
|
+
|
325
|
+
.,.,118754107710888.,.,
|
326
|
+
|
327
|
+
module_eval <<-'.,.,118754107743010.,.,', 'lex.dr', 84
|
328
|
+
def _act_6 val
|
288
329
|
_LEX = *val
|
289
330
|
[ _LEX ]
|
290
331
|
|
291
332
|
end
|
292
333
|
|
293
|
-
.,.,
|
334
|
+
.,.,118754107743010.,.,
|
294
335
|
|
295
|
-
module_eval <<-'.,.,
|
296
|
-
def
|
336
|
+
module_eval <<-'.,.,118754107718606.,.,', 'lex.dr', 85
|
337
|
+
def _act_7 val
|
297
338
|
_lexlist, _, _LEX = *val
|
298
339
|
_lexlist << _LEX
|
299
340
|
|
300
341
|
end
|
301
342
|
|
302
|
-
.,.,
|
343
|
+
.,.,118754107718606.,.,
|
303
344
|
|
304
345
|
end
|
305
346
|
|