bel_parser 1.0.0.alpha.13 → 1.0.0.alpha.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/lib/bel_parser/language/apply_namespace_encoding.rb +5 -2
  4. data/lib/bel_parser/language/expression_validator.rb +25 -7
  5. data/lib/bel_parser/language/syntax/undefined_namespace_value.rb +5 -6
  6. data/lib/bel_parser/language.rb +8 -0
  7. data/lib/bel_parser/parsers/ast/node.rb +30 -3
  8. data/lib/bel_parser/parsers/bel_script/define_annotation.rb +1732 -1288
  9. data/lib/bel_parser/parsers/bel_script/set.rb +1424 -972
  10. data/lib/bel_parser/parsers/bel_script/set_document.rb +2735 -2100
  11. data/lib/bel_parser/parsers/common/list.rb +708 -462
  12. data/lib/bel_parser/parsers/common/list.rl +6 -4
  13. data/lib/bel_parser/resource/eager_reader.rb +9 -9
  14. data/lib/bel_parser/resource/http_cache.rb +26 -8
  15. data/lib/bel_parser/resource/resource_file_reader.rb +1 -0
  16. data/lib/bel_parser/resource/sparql_reader.rb +1 -0
  17. data/lib/bel_parser/script/state/annotation_definition.rb +62 -0
  18. data/lib/bel_parser/script/state/bel_version.rb +35 -0
  19. data/lib/bel_parser/script/state/document_property.rb +29 -0
  20. data/lib/bel_parser/script/state/namespace_definition.rb +32 -0
  21. data/lib/bel_parser/script/state/set.rb +57 -0
  22. data/lib/bel_parser/script/state/unset.rb +43 -0
  23. data/lib/bel_parser/script/state_function.rb +10 -0
  24. data/lib/bel_parser/script/syntax/expression_validation.rb +46 -0
  25. data/lib/bel_parser/script/syntax/invalid_regex_pattern.rb +49 -0
  26. data/lib/bel_parser/script/syntax/undefined_annotation.rb +60 -0
  27. data/lib/bel_parser/script/syntax/undefined_annotation_value.rb +83 -0
  28. data/lib/bel_parser/script/syntax/unresolvable_namespace.rb +55 -0
  29. data/lib/bel_parser/script/syntax/unsupported_bel_version.rb +58 -0
  30. data/lib/bel_parser/script/validator.rb +153 -0
  31. metadata +15 -1
@@ -7,13 +7,14 @@ class << self
7
7
  private :_bel_trans_keys, :_bel_trans_keys=
8
8
  end
9
9
  self._bel_trans_keys = [
10
- 0, 0, 123, 123, 9, 122,
10
+ 0, 0, 123, 123, 9, 125,
11
11
  34, 92, 9, 125, 9,
12
- 125, 10, 10, 92, 92,
13
- 9, 125, 48, 122, 10, 122,
14
- 34, 34, 34, 92, 10,
15
- 10, 92, 92, 0, 0,
16
- 0, 0, 0, 0, 0
12
+ 125, 9, 122, 9, 125,
13
+ 10, 10, 92, 92, 48, 122,
14
+ 10, 122, 34, 34, 34,
15
+ 92, 10, 10, 92, 92,
16
+ 0, 0, 0, 0, 0, 0,
17
+ 0
17
18
  ]
18
19
 
19
20
  class << self
@@ -21,9 +22,9 @@ class << self
21
22
  private :_bel_key_spans, :_bel_key_spans=
22
23
  end
23
24
  self._bel_key_spans = [
24
- 0, 1, 114, 59, 117, 117, 1, 1,
25
- 117, 75, 113, 1, 59, 1, 1, 0,
26
- 0, 0
25
+ 0, 1, 117, 59, 117, 117, 114, 117,
26
+ 1, 1, 75, 113, 1, 59, 1, 1,
27
+ 0, 0, 0
27
28
  ]
28
29
 
29
30
  class << self
@@ -31,9 +32,9 @@ class << self
31
32
  private :_bel_index_offsets, :_bel_index_offsets=
32
33
  end
33
34
  self._bel_index_offsets = [
34
- 0, 0, 2, 117, 177, 295, 413, 415,
35
- 417, 535, 611, 725, 727, 787, 789, 791,
36
- 792, 793
35
+ 0, 0, 2, 120, 180, 298, 416, 531,
36
+ 649, 651, 653, 729, 843, 845, 905, 907,
37
+ 909, 910, 911
37
38
  ]
38
39
 
39
40
  class << self
@@ -45,44 +46,44 @@ self._bel_indicies = [
45
46
  2, 2, 2, 2, 2, 2, 2, 2,
46
47
  2, 2, 2, 2, 2, 2, 2, 2,
47
48
  2, 3, 2, 4, 2, 2, 2, 2,
48
- 2, 2, 2, 2, 2, 2, 2, 2,
49
- 2, 5, 5, 5, 5, 5, 5, 5,
50
- 5, 5, 5, 2, 2, 2, 2, 2,
51
- 2, 2, 5, 5, 5, 5, 5, 5,
52
- 5, 5, 5, 5, 5, 5, 5, 5,
53
- 5, 5, 5, 5, 5, 5, 5, 5,
54
- 5, 5, 5, 5, 2, 2, 2, 2,
55
- 5, 2, 5, 5, 5, 5, 5, 5,
56
- 5, 5, 5, 5, 5, 5, 5, 5,
57
- 5, 5, 5, 5, 5, 5, 5, 5,
58
- 5, 5, 5, 5, 2, 7, 6, 6,
59
- 6, 6, 6, 6, 6, 6, 6, 6,
49
+ 2, 2, 2, 2, 2, 5, 2, 2,
50
+ 2, 6, 6, 6, 6, 6, 6, 6,
51
+ 6, 6, 6, 2, 2, 2, 2, 2,
52
+ 2, 2, 6, 6, 6, 6, 6, 6,
60
53
  6, 6, 6, 6, 6, 6, 6, 6,
61
54
  6, 6, 6, 6, 6, 6, 6, 6,
55
+ 6, 6, 6, 6, 2, 2, 2, 2,
56
+ 6, 2, 6, 6, 6, 6, 6, 6,
62
57
  6, 6, 6, 6, 6, 6, 6, 6,
63
58
  6, 6, 6, 6, 6, 6, 6, 6,
64
- 6, 6, 6, 6, 6, 6, 6, 6,
65
- 6, 6, 6, 6, 6, 6, 6, 8,
66
- 6, 10, 9, 9, 9, 9, 9, 9,
67
- 9, 9, 9, 9, 9, 9, 9, 9,
68
- 9, 9, 9, 9, 9, 9, 9, 9,
69
- 10, 9, 9, 9, 9, 9, 9, 9,
70
- 9, 9, 9, 9, 11, 9, 9, 9,
71
- 9, 9, 9, 9, 9, 9, 9, 9,
72
- 9, 9, 9, 9, 9, 9, 9, 9,
73
- 9, 9, 9, 9, 9, 9, 9, 9,
74
- 9, 9, 9, 9, 9, 9, 9, 9,
75
- 9, 9, 9, 9, 9, 9, 9, 9,
76
- 9, 9, 9, 9, 9, 9, 9, 9,
77
- 9, 9, 9, 9, 9, 9, 9, 9,
78
- 9, 9, 9, 9, 9, 9, 9, 9,
79
- 9, 9, 9, 9, 9, 9, 9, 9,
80
- 9, 9, 9, 9, 9, 12, 9, 13,
81
- 0, 0, 0, 0, 0, 0, 0, 0,
59
+ 6, 6, 6, 6, 2, 2, 7, 2,
60
+ 9, 8, 8, 8, 8, 8, 8, 8,
61
+ 8, 8, 8, 8, 8, 8, 8, 8,
62
+ 8, 8, 8, 8, 8, 8, 8, 8,
63
+ 8, 8, 8, 8, 8, 8, 8, 8,
64
+ 8, 8, 8, 8, 8, 8, 8, 8,
65
+ 8, 8, 8, 8, 8, 8, 8, 8,
66
+ 8, 8, 8, 8, 8, 8, 8, 8,
67
+ 8, 8, 10, 8, 12, 11, 11, 11,
68
+ 11, 11, 11, 11, 11, 11, 11, 11,
69
+ 11, 11, 11, 11, 11, 11, 11, 11,
70
+ 11, 11, 11, 12, 11, 11, 11, 11,
71
+ 11, 11, 11, 11, 11, 11, 11, 13,
72
+ 11, 11, 11, 11, 11, 11, 11, 11,
73
+ 11, 11, 11, 11, 11, 11, 11, 11,
74
+ 11, 11, 11, 11, 11, 11, 11, 11,
75
+ 11, 11, 11, 11, 11, 11, 11, 11,
76
+ 11, 11, 11, 11, 11, 11, 11, 11,
77
+ 11, 11, 11, 11, 11, 11, 11, 11,
78
+ 11, 11, 11, 11, 11, 11, 11, 11,
79
+ 11, 11, 11, 11, 11, 11, 11, 11,
80
+ 11, 11, 11, 11, 11, 11, 11, 11,
81
+ 11, 11, 11, 11, 11, 11, 11, 11,
82
+ 14, 11, 15, 0, 0, 0, 0, 0,
82
83
  0, 0, 0, 0, 0, 0, 0, 0,
83
- 0, 0, 0, 0, 0, 0, 13, 0,
84
84
  0, 0, 0, 0, 0, 0, 0, 0,
85
- 0, 0, 14, 0, 0, 0, 0, 0,
85
+ 0, 15, 0, 0, 0, 0, 0, 0,
86
+ 0, 0, 0, 0, 0, 16, 0, 0,
86
87
  0, 0, 0, 0, 0, 0, 0, 0,
87
88
  0, 0, 0, 0, 0, 0, 0, 0,
88
89
  0, 0, 0, 0, 0, 0, 0, 0,
@@ -92,55 +93,70 @@ self._bel_indicies = [
92
93
  0, 0, 0, 0, 0, 0, 0, 0,
93
94
  0, 0, 0, 0, 0, 0, 0, 0,
94
95
  0, 0, 0, 0, 0, 0, 0, 0,
95
- 0, 0, 0, 15, 0, 16, 0, 8,
96
- 6, 18, 17, 17, 17, 17, 17, 17,
97
- 17, 17, 17, 17, 17, 17, 17, 17,
98
- 17, 17, 17, 17, 17, 17, 17, 17,
99
- 18, 17, 17, 17, 17, 17, 17, 17,
100
- 17, 17, 17, 17, 19, 17, 17, 17,
101
- 20, 20, 20, 20, 20, 20, 20, 20,
102
- 20, 20, 17, 17, 17, 17, 17, 17,
103
- 17, 20, 20, 20, 20, 20, 20, 20,
104
- 20, 20, 20, 20, 20, 20, 20, 20,
105
- 20, 20, 20, 20, 20, 20, 20, 20,
106
- 20, 20, 20, 17, 17, 17, 17, 20,
107
- 17, 20, 20, 20, 20, 20, 20, 20,
108
- 20, 20, 20, 20, 20, 20, 20, 20,
109
- 20, 20, 20, 20, 20, 20, 20, 20,
110
- 20, 20, 20, 17, 17, 21, 17, 23,
111
- 23, 23, 23, 23, 23, 23, 23, 23,
112
- 23, 22, 22, 22, 22, 22, 22, 22,
113
- 23, 23, 23, 23, 23, 23, 23, 23,
114
- 23, 23, 23, 23, 23, 23, 23, 23,
115
- 23, 23, 23, 23, 23, 23, 23, 23,
116
- 23, 23, 22, 22, 22, 22, 23, 22,
117
- 23, 23, 23, 23, 23, 23, 23, 23,
118
- 23, 23, 23, 23, 23, 23, 23, 23,
119
- 23, 23, 23, 23, 23, 23, 23, 23,
120
- 23, 23, 22, 24, 22, 22, 22, 22,
96
+ 0, 0, 0, 0, 0, 0, 17, 0,
97
+ 18, 2, 2, 2, 2, 2, 2, 2,
98
+ 2, 2, 2, 2, 2, 2, 2, 2,
99
+ 2, 2, 2, 2, 2, 2, 2, 18,
100
+ 2, 4, 2, 2, 2, 2, 2, 2,
101
+ 2, 2, 2, 2, 2, 2, 2, 6,
102
+ 6, 6, 6, 6, 6, 6, 6, 6,
103
+ 6, 2, 2, 2, 2, 2, 2, 2,
104
+ 6, 6, 6, 6, 6, 6, 6, 6,
105
+ 6, 6, 6, 6, 6, 6, 6, 6,
106
+ 6, 6, 6, 6, 6, 6, 6, 6,
107
+ 6, 6, 2, 2, 2, 2, 6, 2,
108
+ 6, 6, 6, 6, 6, 6, 6, 6,
109
+ 6, 6, 6, 6, 6, 6, 6, 6,
110
+ 6, 6, 6, 6, 6, 6, 6, 6,
111
+ 6, 6, 2, 20, 19, 19, 19, 19,
112
+ 19, 19, 19, 19, 19, 19, 19, 19,
113
+ 19, 19, 19, 19, 19, 19, 19, 19,
114
+ 19, 19, 20, 19, 19, 19, 19, 19,
115
+ 19, 19, 19, 19, 19, 19, 21, 19,
116
+ 19, 19, 22, 22, 22, 22, 22, 22,
117
+ 22, 22, 22, 22, 19, 19, 19, 19,
118
+ 19, 19, 19, 22, 22, 22, 22, 22,
121
119
  22, 22, 22, 22, 22, 22, 22, 22,
122
120
  22, 22, 22, 22, 22, 22, 22, 22,
121
+ 22, 22, 22, 22, 22, 19, 19, 19,
122
+ 19, 22, 19, 22, 22, 22, 22, 22,
123
123
  22, 22, 22, 22, 22, 22, 22, 22,
124
124
  22, 22, 22, 22, 22, 22, 22, 22,
125
- 22, 25, 25, 25, 25, 25, 25, 25,
126
- 25, 25, 25, 22, 22, 22, 22, 22,
127
- 22, 22, 25, 25, 25, 25, 25, 25,
125
+ 22, 22, 22, 22, 22, 19, 19, 23,
126
+ 19, 24, 0, 10, 8, 26, 26, 26,
127
+ 26, 26, 26, 26, 26, 26, 26, 25,
128
+ 25, 25, 25, 25, 25, 25, 26, 26,
129
+ 26, 26, 26, 26, 26, 26, 26, 26,
130
+ 26, 26, 26, 26, 26, 26, 26, 26,
131
+ 26, 26, 26, 26, 26, 26, 26, 26,
132
+ 25, 25, 25, 25, 26, 25, 26, 26,
133
+ 26, 26, 26, 26, 26, 26, 26, 26,
134
+ 26, 26, 26, 26, 26, 26, 26, 26,
135
+ 26, 26, 26, 26, 26, 26, 26, 26,
136
+ 25, 27, 25, 25, 25, 25, 25, 25,
128
137
  25, 25, 25, 25, 25, 25, 25, 25,
129
138
  25, 25, 25, 25, 25, 25, 25, 25,
130
- 25, 25, 25, 25, 22, 22, 22, 22,
131
- 25, 22, 25, 25, 25, 25, 25, 25,
132
139
  25, 25, 25, 25, 25, 25, 25, 25,
133
- 25, 25, 25, 25, 25, 25, 25, 25,
134
- 25, 25, 25, 25, 22, 27, 26, 29,
140
+ 25, 25, 25, 25, 25, 25, 25, 28,
135
141
  28, 28, 28, 28, 28, 28, 28, 28,
142
+ 28, 25, 25, 25, 25, 25, 25, 25,
136
143
  28, 28, 28, 28, 28, 28, 28, 28,
137
144
  28, 28, 28, 28, 28, 28, 28, 28,
138
145
  28, 28, 28, 28, 28, 28, 28, 28,
146
+ 28, 28, 25, 25, 25, 25, 28, 25,
139
147
  28, 28, 28, 28, 28, 28, 28, 28,
140
148
  28, 28, 28, 28, 28, 28, 28, 28,
141
149
  28, 28, 28, 28, 28, 28, 28, 28,
142
- 28, 30, 28, 31, 26, 30, 28, 32,
143
- 32, 32, 0
150
+ 28, 28, 25, 30, 29, 32, 31, 31,
151
+ 31, 31, 31, 31, 31, 31, 31, 31,
152
+ 31, 31, 31, 31, 31, 31, 31, 31,
153
+ 31, 31, 31, 31, 31, 31, 31, 31,
154
+ 31, 31, 31, 31, 31, 31, 31, 31,
155
+ 31, 31, 31, 31, 31, 31, 31, 31,
156
+ 31, 31, 31, 31, 31, 31, 31, 31,
157
+ 31, 31, 31, 31, 31, 31, 31, 33,
158
+ 31, 34, 29, 33, 31, 35, 35, 35,
159
+ 0
144
160
  ]
145
161
 
146
162
  class << self
@@ -148,11 +164,11 @@ class << self
148
164
  private :_bel_trans_targs, :_bel_trans_targs=
149
165
  end
150
166
  self._bel_trans_targs = [
151
- 0, 2, 0, 2, 3, 8, 3, 4,
152
- 7, 0, 5, 2, 6, 5, 2, 6,
153
- 15, 0, 5, 2, 8, 6, 0, 10,
154
- 16, 10, 0, 12, 12, 13, 14, 17,
155
- 0
167
+ 0, 2, 0, 2, 3, 6, 7, 8,
168
+ 3, 4, 9, 0, 5, 6, 8, 5,
169
+ 6, 8, 6, 0, 5, 6, 7, 8,
170
+ 16, 0, 11, 17, 11, 0, 13, 13,
171
+ 14, 15, 18, 0
156
172
  ]
157
173
 
158
174
  class << self
@@ -160,11 +176,11 @@ class << self
160
176
  private :_bel_trans_actions, :_bel_trans_actions=
161
177
  end
162
178
  self._bel_trans_actions = [
163
- 1, 2, 3, 0, 4, 5, 7, 7,
164
- 7, 6, 8, 9, 10, 0, 11, 12,
165
- 13, 14, 15, 16, 17, 18, 19, 5,
166
- 20, 17, 21, 4, 7, 7, 7, 22,
167
- 0
179
+ 1, 2, 3, 4, 5, 6, 7, 8,
180
+ 10, 10, 10, 9, 11, 12, 13, 0,
181
+ 14, 15, 0, 16, 17, 18, 19, 20,
182
+ 21, 22, 7, 23, 19, 24, 5, 10,
183
+ 10, 10, 25, 0
168
184
  ]
169
185
 
170
186
  class << self
@@ -172,9 +188,9 @@ class << self
172
188
  private :_bel_eof_actions, :_bel_eof_actions=
173
189
  end
174
190
  self._bel_eof_actions = [
175
- 0, 1, 3, 6, 6, 1, 1, 6,
176
- 14, 19, 19, 21, 21, 21, 21, 0,
177
- 0, 0
191
+ 0, 1, 3, 9, 9, 1, 3, 16,
192
+ 1, 9, 22, 22, 24, 24, 24, 24,
193
+ 0, 0, 0
178
194
  ]
179
195
 
180
196
  class << self
@@ -184,7 +200,7 @@ self.bel_start = 1;
184
200
  class << self
185
201
  attr_accessor :bel_first_final
186
202
  end
187
- self.bel_first_final = 15;
203
+ self.bel_first_final = 16;
188
204
  class << self
189
205
  attr_accessor :bel_error
190
206
  end
@@ -193,11 +209,11 @@ self.bel_error = 0;
193
209
  class << self
194
210
  attr_accessor :bel_en_ident
195
211
  end
196
- self.bel_en_ident = 9;
212
+ self.bel_en_ident = 10;
197
213
  class << self
198
214
  attr_accessor :bel_en_string
199
215
  end
200
- self.bel_en_string = 11;
216
+ self.bel_en_string = 12;
201
217
  class << self
202
218
  attr_accessor :bel_en_list
203
219
  end
@@ -246,17 +262,17 @@ begin
246
262
  cs = _bel_trans_targs[_trans]
247
263
  if _bel_trans_actions[_trans] != 0
248
264
  case _bel_trans_actions[_trans]
249
- when 17 then
265
+ when 19 then
250
266
  begin
251
267
 
252
268
  (@buffers[:ident] ||= []) << data[p].ord
253
269
  end
254
- when 7 then
270
+ when 10 then
255
271
  begin
256
272
 
257
273
  (@buffers[:string] ||= []) << data[p].ord
258
274
  end
259
- when 11 then
275
+ when 14 then
260
276
  begin
261
277
 
262
278
  @buffers.delete(:string)
@@ -267,12 +283,23 @@ begin
267
283
 
268
284
  @buffers[:list] = list()
269
285
  end
270
- when 12 then
286
+ when 4 then
287
+ begin
288
+
289
+ # Append list argument if its value is not empty.
290
+ if @buffers[:list_arg]
291
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
292
+ if list_arg_value != ''
293
+ @buffers[:list] <<= @buffers[:list_arg]
294
+ end
295
+ end
296
+ end
297
+ when 15 then
271
298
  begin
272
299
 
273
300
  #TODO: Mark @buffers[:list] as complete.
274
301
  end
275
- when 13 then
302
+ when 21 then
276
303
  begin
277
304
 
278
305
  yield @buffers[:list]
@@ -283,7 +310,7 @@ begin
283
310
  @buffers[:list] ||= list()
284
311
  yield @buffers[:list]
285
312
  end
286
- when 5 then
313
+ when 7 then
287
314
  begin
288
315
 
289
316
  @buffers[:ident] = []
@@ -292,7 +319,7 @@ begin
292
319
 
293
320
  (@buffers[:ident] ||= []) << data[p].ord
294
321
  end
295
- when 20 then
322
+ when 23 then
296
323
  begin
297
324
 
298
325
  @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
@@ -301,7 +328,7 @@ begin
301
328
 
302
329
  yield @buffers[:ident]
303
330
  end
304
- when 19 then
331
+ when 22 then
305
332
  begin
306
333
 
307
334
  unless @buffers[:ident].is_a?(::AST::Node)
@@ -314,7 +341,7 @@ begin
314
341
  @buffers[:ident] ||= []
315
342
  yield @buffers[:ident]
316
343
  end
317
- when 4 then
344
+ when 5 then
318
345
  begin
319
346
 
320
347
  @buffers[:string] = []
@@ -323,7 +350,7 @@ begin
323
350
 
324
351
  (@buffers[:string] ||= []) << data[p].ord
325
352
  end
326
- when 22 then
353
+ when 25 then
327
354
  begin
328
355
 
329
356
  @buffers[:string] = string(utf8_string(@buffers[:string]))
@@ -332,7 +359,7 @@ begin
332
359
 
333
360
  yield @buffers[:string]
334
361
  end
335
- when 21 then
362
+ when 24 then
336
363
  begin
337
364
 
338
365
  @buffers[:string] ||= []
@@ -343,7 +370,38 @@ begin
343
370
  @buffers[:string] ||= []
344
371
  yield @buffers[:string]
345
372
  end
346
- when 15 then
373
+ when 6 then
374
+ begin
375
+
376
+ # Append list argument if its value is not empty.
377
+ if @buffers[:list_arg]
378
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
379
+ if list_arg_value != ''
380
+ @buffers[:list] <<= @buffers[:list_arg]
381
+ end
382
+ end
383
+ end
384
+ begin
385
+
386
+ @buffers.delete(:string)
387
+ @buffers.delete(:ident)
388
+ end
389
+ when 8 then
390
+ begin
391
+
392
+ # Append list argument if its value is not empty.
393
+ if @buffers[:list_arg]
394
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
395
+ if list_arg_value != ''
396
+ @buffers[:list] <<= @buffers[:list_arg]
397
+ end
398
+ end
399
+ end
400
+ begin
401
+
402
+ #TODO: Mark @buffers[:list] as complete.
403
+ end
404
+ when 17 then
347
405
  begin
348
406
 
349
407
  @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
@@ -355,12 +413,14 @@ begin
355
413
  begin
356
414
 
357
415
  # Append list argument if its value is not empty.
358
- list_arg_value = @buffers[:list_arg].children[0].children[0]
359
- if list_arg_value != ''
360
- @buffers[:list] <<= @buffers[:list_arg]
416
+ if @buffers[:list_arg]
417
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
418
+ if list_arg_value != ''
419
+ @buffers[:list] <<= @buffers[:list_arg]
420
+ end
361
421
  end
362
422
  end
363
- when 8 then
423
+ when 11 then
364
424
  begin
365
425
 
366
426
  @buffers[:string] = string(utf8_string(@buffers[:string]))
@@ -372,12 +432,14 @@ begin
372
432
  begin
373
433
 
374
434
  # Append list argument if its value is not empty.
375
- list_arg_value = @buffers[:list_arg].children[0].children[0]
376
- if list_arg_value != ''
377
- @buffers[:list] <<= @buffers[:list_arg]
435
+ if @buffers[:list_arg]
436
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
437
+ if list_arg_value != ''
438
+ @buffers[:list] <<= @buffers[:list_arg]
439
+ end
378
440
  end
379
441
  end
380
- when 16 then
442
+ when 18 then
381
443
  begin
382
444
 
383
445
  @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
@@ -389,9 +451,11 @@ begin
389
451
  begin
390
452
 
391
453
  # Append list argument if its value is not empty.
392
- list_arg_value = @buffers[:list_arg].children[0].children[0]
393
- if list_arg_value != ''
394
- @buffers[:list] <<= @buffers[:list_arg]
454
+ if @buffers[:list_arg]
455
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
456
+ if list_arg_value != ''
457
+ @buffers[:list] <<= @buffers[:list_arg]
458
+ end
395
459
  end
396
460
  end
397
461
  begin
@@ -399,7 +463,7 @@ begin
399
463
  @buffers.delete(:string)
400
464
  @buffers.delete(:ident)
401
465
  end
402
- when 18 then
466
+ when 20 then
403
467
  begin
404
468
 
405
469
  @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
@@ -411,16 +475,18 @@ begin
411
475
  begin
412
476
 
413
477
  # Append list argument if its value is not empty.
414
- list_arg_value = @buffers[:list_arg].children[0].children[0]
415
- if list_arg_value != ''
416
- @buffers[:list] <<= @buffers[:list_arg]
478
+ if @buffers[:list_arg]
479
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
480
+ if list_arg_value != ''
481
+ @buffers[:list] <<= @buffers[:list_arg]
482
+ end
417
483
  end
418
484
  end
419
485
  begin
420
486
 
421
487
  #TODO: Mark @buffers[:list] as complete.
422
488
  end
423
- when 14 then
489
+ when 16 then
424
490
  begin
425
491
 
426
492
  unless @buffers[:ident].is_a?(::AST::Node)
@@ -436,9 +502,11 @@ begin
436
502
  begin
437
503
 
438
504
  # Append list argument if its value is not empty.
439
- list_arg_value = @buffers[:list_arg].children[0].children[0]
440
- if list_arg_value != ''
441
- @buffers[:list] <<= @buffers[:list_arg]
505
+ if @buffers[:list_arg]
506
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
507
+ if list_arg_value != ''
508
+ @buffers[:list] <<= @buffers[:list_arg]
509
+ end
442
510
  end
443
511
  end
444
512
  begin
@@ -446,7 +514,7 @@ begin
446
514
  @buffers[:list] ||= list()
447
515
  yield @buffers[:list]
448
516
  end
449
- when 9 then
517
+ when 12 then
450
518
  begin
451
519
 
452
520
  @buffers[:string] = string(utf8_string(@buffers[:string]))
@@ -458,9 +526,11 @@ begin
458
526
  begin
459
527
 
460
528
  # Append list argument if its value is not empty.
461
- list_arg_value = @buffers[:list_arg].children[0].children[0]
462
- if list_arg_value != ''
463
- @buffers[:list] <<= @buffers[:list_arg]
529
+ if @buffers[:list_arg]
530
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
531
+ if list_arg_value != ''
532
+ @buffers[:list] <<= @buffers[:list_arg]
533
+ end
464
534
  end
465
535
  end
466
536
  begin
@@ -468,7 +538,7 @@ begin
468
538
  @buffers.delete(:string)
469
539
  @buffers.delete(:ident)
470
540
  end
471
- when 10 then
541
+ when 13 then
472
542
  begin
473
543
 
474
544
  @buffers[:string] = string(utf8_string(@buffers[:string]))
@@ -480,16 +550,18 @@ begin
480
550
  begin
481
551
 
482
552
  # Append list argument if its value is not empty.
483
- list_arg_value = @buffers[:list_arg].children[0].children[0]
484
- if list_arg_value != ''
485
- @buffers[:list] <<= @buffers[:list_arg]
553
+ if @buffers[:list_arg]
554
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
555
+ if list_arg_value != ''
556
+ @buffers[:list] <<= @buffers[:list_arg]
557
+ end
486
558
  end
487
559
  end
488
560
  begin
489
561
 
490
562
  #TODO: Mark @buffers[:list] as complete.
491
563
  end
492
- when 6 then
564
+ when 9 then
493
565
  begin
494
566
 
495
567
  @buffers[:string] ||= []
@@ -503,9 +575,11 @@ begin
503
575
  begin
504
576
 
505
577
  # Append list argument if its value is not empty.
506
- list_arg_value = @buffers[:list_arg].children[0].children[0]
507
- if list_arg_value != ''
508
- @buffers[:list] <<= @buffers[:list_arg]
578
+ if @buffers[:list_arg]
579
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
580
+ if list_arg_value != ''
581
+ @buffers[:list] <<= @buffers[:list_arg]
582
+ end
509
583
  end
510
584
  end
511
585
  begin
@@ -539,9 +613,11 @@ begin
539
613
  begin
540
614
 
541
615
  # Append list argument if its value is not empty.
542
- list_arg_value = @buffers[:list_arg].children[0].children[0]
543
- if list_arg_value != ''
544
- @buffers[:list] <<= @buffers[:list_arg]
616
+ if @buffers[:list_arg]
617
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
618
+ if list_arg_value != ''
619
+ @buffers[:list] <<= @buffers[:list_arg]
620
+ end
545
621
  end
546
622
  end
547
623
  begin
@@ -572,7 +648,7 @@ begin
572
648
  @buffers[:list] ||= list()
573
649
  yield @buffers[:list]
574
650
  end
575
- when 19 then
651
+ when 22 then
576
652
  begin
577
653
 
578
654
  unless @buffers[:ident].is_a?(::AST::Node)
@@ -585,7 +661,7 @@ begin
585
661
  @buffers[:ident] ||= []
586
662
  yield @buffers[:ident]
587
663
  end
588
- when 21 then
664
+ when 24 then
589
665
  begin
590
666
 
591
667
  @buffers[:string] ||= []
@@ -596,7 +672,7 @@ begin
596
672
  @buffers[:string] ||= []
597
673
  yield @buffers[:string]
598
674
  end
599
- when 14 then
675
+ when 16 then
600
676
  begin
601
677
 
602
678
  unless @buffers[:ident].is_a?(::AST::Node)
@@ -612,9 +688,11 @@ begin
612
688
  begin
613
689
 
614
690
  # Append list argument if its value is not empty.
615
- list_arg_value = @buffers[:list_arg].children[0].children[0]
616
- if list_arg_value != ''
617
- @buffers[:list] <<= @buffers[:list_arg]
691
+ if @buffers[:list_arg]
692
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
693
+ if list_arg_value != ''
694
+ @buffers[:list] <<= @buffers[:list_arg]
695
+ end
618
696
  end
619
697
  end
620
698
  begin
@@ -622,7 +700,7 @@ begin
622
700
  @buffers[:list] ||= list()
623
701
  yield @buffers[:list]
624
702
  end
625
- when 6 then
703
+ when 9 then
626
704
  begin
627
705
 
628
706
  @buffers[:string] ||= []
@@ -636,9 +714,11 @@ begin
636
714
  begin
637
715
 
638
716
  # Append list argument if its value is not empty.
639
- list_arg_value = @buffers[:list_arg].children[0].children[0]
640
- if list_arg_value != ''
641
- @buffers[:list] <<= @buffers[:list_arg]
717
+ if @buffers[:list_arg]
718
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
719
+ if list_arg_value != ''
720
+ @buffers[:list] <<= @buffers[:list_arg]
721
+ end
642
722
  end
643
723
  end
644
724
  begin
@@ -672,9 +752,11 @@ begin
672
752
  begin
673
753
 
674
754
  # Append list argument if its value is not empty.
675
- list_arg_value = @buffers[:list_arg].children[0].children[0]
676
- if list_arg_value != ''
677
- @buffers[:list] <<= @buffers[:list_arg]
755
+ if @buffers[:list_arg]
756
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
757
+ if list_arg_value != ''
758
+ @buffers[:list] <<= @buffers[:list_arg]
759
+ end
678
760
  end
679
761
  end
680
762
  begin
@@ -697,13 +779,14 @@ class << self
697
779
  private :_bel_trans_keys, :_bel_trans_keys=
698
780
  end
699
781
  self._bel_trans_keys = [
700
- 0, 0, 123, 123, 9, 122,
782
+ 0, 0, 123, 123, 9, 125,
701
783
  34, 92, 9, 125, 9,
702
- 125, 10, 10, 92, 92,
703
- 9, 125, 48, 122, 10, 122,
704
- 34, 34, 34, 92, 10,
705
- 10, 92, 92, 0, 0,
706
- 0, 0, 0, 0, 0
784
+ 125, 9, 122, 9, 125,
785
+ 10, 10, 92, 92, 48, 122,
786
+ 10, 122, 34, 34, 34,
787
+ 92, 10, 10, 92, 92,
788
+ 0, 0, 0, 0, 0, 0,
789
+ 0
707
790
  ]
708
791
 
709
792
  class << self
@@ -711,9 +794,9 @@ class << self
711
794
  private :_bel_key_spans, :_bel_key_spans=
712
795
  end
713
796
  self._bel_key_spans = [
714
- 0, 1, 114, 59, 117, 117, 1, 1,
715
- 117, 75, 113, 1, 59, 1, 1, 0,
716
- 0, 0
797
+ 0, 1, 117, 59, 117, 117, 114, 117,
798
+ 1, 1, 75, 113, 1, 59, 1, 1,
799
+ 0, 0, 0
717
800
  ]
718
801
 
719
802
  class << self
@@ -721,9 +804,9 @@ class << self
721
804
  private :_bel_index_offsets, :_bel_index_offsets=
722
805
  end
723
806
  self._bel_index_offsets = [
724
- 0, 0, 2, 117, 177, 295, 413, 415,
725
- 417, 535, 611, 725, 727, 787, 789, 791,
726
- 792, 793
807
+ 0, 0, 2, 120, 180, 298, 416, 531,
808
+ 649, 651, 653, 729, 843, 845, 905, 907,
809
+ 909, 910, 911
727
810
  ]
728
811
 
729
812
  class << self
@@ -735,44 +818,45 @@ self._bel_indicies = [
735
818
  2, 2, 2, 2, 2, 2, 2, 2,
736
819
  2, 2, 2, 2, 2, 2, 2, 2,
737
820
  2, 3, 2, 4, 2, 2, 2, 2,
738
- 2, 2, 2, 2, 2, 2, 2, 2,
739
- 2, 5, 5, 5, 5, 5, 5, 5,
740
- 5, 5, 5, 2, 2, 2, 2, 2,
741
- 2, 2, 5, 5, 5, 5, 5, 5,
742
- 5, 5, 5, 5, 5, 5, 5, 5,
743
- 5, 5, 5, 5, 5, 5, 5, 5,
744
- 5, 5, 5, 5, 2, 2, 2, 2,
745
- 5, 2, 5, 5, 5, 5, 5, 5,
746
- 5, 5, 5, 5, 5, 5, 5, 5,
747
- 5, 5, 5, 5, 5, 5, 5, 5,
748
- 5, 5, 5, 5, 2, 7, 6, 6,
749
- 6, 6, 6, 6, 6, 6, 6, 6,
750
- 6, 6, 6, 6, 6, 6, 6, 6,
821
+ 2, 2, 2, 2, 2, 5, 2, 2,
822
+ 2, 6, 6, 6, 6, 6, 6, 6,
823
+ 6, 6, 6, 2, 2, 2, 2, 2,
824
+ 2, 2, 6, 6, 6, 6, 6, 6,
751
825
  6, 6, 6, 6, 6, 6, 6, 6,
752
826
  6, 6, 6, 6, 6, 6, 6, 6,
827
+ 6, 6, 6, 6, 2, 2, 2, 2,
828
+ 6, 2, 6, 6, 6, 6, 6, 6,
753
829
  6, 6, 6, 6, 6, 6, 6, 6,
754
830
  6, 6, 6, 6, 6, 6, 6, 6,
755
- 6, 6, 6, 6, 6, 6, 6, 8,
756
- 6, 10, 9, 9, 9, 9, 9, 9,
757
- 9, 9, 9, 9, 9, 9, 9, 9,
758
- 9, 9, 9, 9, 9, 9, 9, 9,
759
- 10, 9, 9, 9, 9, 9, 9, 9,
760
- 9, 9, 9, 9, 11, 9, 9, 9,
761
- 9, 9, 9, 9, 9, 9, 9, 9,
762
- 9, 9, 9, 9, 9, 9, 9, 9,
763
- 9, 9, 9, 9, 9, 9, 9, 9,
764
- 9, 9, 9, 9, 9, 9, 9, 9,
765
- 9, 9, 9, 9, 9, 9, 9, 9,
766
- 9, 9, 9, 9, 9, 9, 9, 9,
767
- 9, 9, 9, 9, 9, 9, 9, 9,
768
- 9, 9, 9, 9, 9, 9, 9, 9,
769
- 9, 9, 9, 9, 9, 9, 9, 9,
770
- 9, 9, 9, 9, 9, 12, 9, 13,
831
+ 6, 6, 6, 6, 2, 2, 7, 2,
832
+ 9, 8, 8, 8, 8, 8, 8, 8,
833
+ 8, 8, 8, 8, 8, 8, 8, 8,
834
+ 8, 8, 8, 8, 8, 8, 8, 8,
835
+ 8, 8, 8, 8, 8, 8, 8, 8,
836
+ 8, 8, 8, 8, 8, 8, 8, 8,
837
+ 8, 8, 8, 8, 8, 8, 8, 8,
838
+ 8, 8, 8, 8, 8, 8, 8, 8,
839
+ 8, 8, 10, 8, 12, 11, 11, 11,
840
+ 11, 11, 11, 11, 11, 11, 11, 11,
841
+ 11, 11, 11, 11, 11, 11, 11, 11,
842
+ 11, 11, 11, 12, 11, 11, 11, 11,
843
+ 11, 11, 11, 11, 11, 11, 11, 13,
844
+ 11, 11, 11, 11, 11, 11, 11, 11,
845
+ 11, 11, 11, 11, 11, 11, 11, 11,
846
+ 11, 11, 11, 11, 11, 11, 11, 11,
847
+ 11, 11, 11, 11, 11, 11, 11, 11,
848
+ 11, 11, 11, 11, 11, 11, 11, 11,
849
+ 11, 11, 11, 11, 11, 11, 11, 11,
850
+ 11, 11, 11, 11, 11, 11, 11, 11,
851
+ 11, 11, 11, 11, 11, 11, 11, 11,
852
+ 11, 11, 11, 11, 11, 11, 11, 11,
853
+ 11, 11, 11, 11, 11, 11, 11, 11,
854
+ 14, 11, 15, 0, 0, 0, 0, 0,
771
855
  0, 0, 0, 0, 0, 0, 0, 0,
772
856
  0, 0, 0, 0, 0, 0, 0, 0,
773
- 0, 0, 0, 0, 0, 0, 13, 0,
857
+ 0, 15, 0, 0, 0, 0, 0, 0,
858
+ 0, 0, 0, 0, 0, 16, 0, 0,
774
859
  0, 0, 0, 0, 0, 0, 0, 0,
775
- 0, 0, 14, 0, 0, 0, 0, 0,
776
860
  0, 0, 0, 0, 0, 0, 0, 0,
777
861
  0, 0, 0, 0, 0, 0, 0, 0,
778
862
  0, 0, 0, 0, 0, 0, 0, 0,
@@ -781,56 +865,70 @@ self._bel_indicies = [
781
865
  0, 0, 0, 0, 0, 0, 0, 0,
782
866
  0, 0, 0, 0, 0, 0, 0, 0,
783
867
  0, 0, 0, 0, 0, 0, 0, 0,
784
- 0, 0, 0, 0, 0, 0, 0, 0,
785
- 0, 0, 0, 15, 0, 16, 0, 8,
786
- 6, 18, 17, 17, 17, 17, 17, 17,
787
- 17, 17, 17, 17, 17, 17, 17, 17,
788
- 17, 17, 17, 17, 17, 17, 17, 17,
789
- 18, 17, 17, 17, 17, 17, 17, 17,
790
- 17, 17, 17, 17, 19, 17, 17, 17,
791
- 20, 20, 20, 20, 20, 20, 20, 20,
792
- 20, 20, 17, 17, 17, 17, 17, 17,
793
- 17, 20, 20, 20, 20, 20, 20, 20,
794
- 20, 20, 20, 20, 20, 20, 20, 20,
795
- 20, 20, 20, 20, 20, 20, 20, 20,
796
- 20, 20, 20, 17, 17, 17, 17, 20,
797
- 17, 20, 20, 20, 20, 20, 20, 20,
798
- 20, 20, 20, 20, 20, 20, 20, 20,
799
- 20, 20, 20, 20, 20, 20, 20, 20,
800
- 20, 20, 20, 17, 17, 21, 17, 23,
801
- 23, 23, 23, 23, 23, 23, 23, 23,
802
- 23, 22, 22, 22, 22, 22, 22, 22,
803
- 23, 23, 23, 23, 23, 23, 23, 23,
804
- 23, 23, 23, 23, 23, 23, 23, 23,
805
- 23, 23, 23, 23, 23, 23, 23, 23,
806
- 23, 23, 22, 22, 22, 22, 23, 22,
807
- 23, 23, 23, 23, 23, 23, 23, 23,
808
- 23, 23, 23, 23, 23, 23, 23, 23,
809
- 23, 23, 23, 23, 23, 23, 23, 23,
810
- 23, 23, 22, 24, 22, 22, 22, 22,
868
+ 0, 0, 0, 0, 0, 0, 17, 0,
869
+ 18, 2, 2, 2, 2, 2, 2, 2,
870
+ 2, 2, 2, 2, 2, 2, 2, 2,
871
+ 2, 2, 2, 2, 2, 2, 2, 18,
872
+ 2, 4, 2, 2, 2, 2, 2, 2,
873
+ 2, 2, 2, 2, 2, 2, 2, 6,
874
+ 6, 6, 6, 6, 6, 6, 6, 6,
875
+ 6, 2, 2, 2, 2, 2, 2, 2,
876
+ 6, 6, 6, 6, 6, 6, 6, 6,
877
+ 6, 6, 6, 6, 6, 6, 6, 6,
878
+ 6, 6, 6, 6, 6, 6, 6, 6,
879
+ 6, 6, 2, 2, 2, 2, 6, 2,
880
+ 6, 6, 6, 6, 6, 6, 6, 6,
881
+ 6, 6, 6, 6, 6, 6, 6, 6,
882
+ 6, 6, 6, 6, 6, 6, 6, 6,
883
+ 6, 6, 2, 20, 19, 19, 19, 19,
884
+ 19, 19, 19, 19, 19, 19, 19, 19,
885
+ 19, 19, 19, 19, 19, 19, 19, 19,
886
+ 19, 19, 20, 19, 19, 19, 19, 19,
887
+ 19, 19, 19, 19, 19, 19, 21, 19,
888
+ 19, 19, 22, 22, 22, 22, 22, 22,
889
+ 22, 22, 22, 22, 19, 19, 19, 19,
890
+ 19, 19, 19, 22, 22, 22, 22, 22,
811
891
  22, 22, 22, 22, 22, 22, 22, 22,
812
892
  22, 22, 22, 22, 22, 22, 22, 22,
893
+ 22, 22, 22, 22, 22, 19, 19, 19,
894
+ 19, 22, 19, 22, 22, 22, 22, 22,
813
895
  22, 22, 22, 22, 22, 22, 22, 22,
814
896
  22, 22, 22, 22, 22, 22, 22, 22,
815
- 22, 25, 25, 25, 25, 25, 25, 25,
816
- 25, 25, 25, 22, 22, 22, 22, 22,
817
- 22, 22, 25, 25, 25, 25, 25, 25,
897
+ 22, 22, 22, 22, 22, 19, 19, 23,
898
+ 19, 24, 0, 10, 8, 26, 26, 26,
899
+ 26, 26, 26, 26, 26, 26, 26, 25,
900
+ 25, 25, 25, 25, 25, 25, 26, 26,
901
+ 26, 26, 26, 26, 26, 26, 26, 26,
902
+ 26, 26, 26, 26, 26, 26, 26, 26,
903
+ 26, 26, 26, 26, 26, 26, 26, 26,
904
+ 25, 25, 25, 25, 26, 25, 26, 26,
905
+ 26, 26, 26, 26, 26, 26, 26, 26,
906
+ 26, 26, 26, 26, 26, 26, 26, 26,
907
+ 26, 26, 26, 26, 26, 26, 26, 26,
908
+ 25, 27, 25, 25, 25, 25, 25, 25,
818
909
  25, 25, 25, 25, 25, 25, 25, 25,
819
910
  25, 25, 25, 25, 25, 25, 25, 25,
820
- 25, 25, 25, 25, 22, 22, 22, 22,
821
- 25, 22, 25, 25, 25, 25, 25, 25,
822
911
  25, 25, 25, 25, 25, 25, 25, 25,
823
- 25, 25, 25, 25, 25, 25, 25, 25,
824
- 25, 25, 25, 25, 22, 27, 26, 29,
912
+ 25, 25, 25, 25, 25, 25, 25, 28,
825
913
  28, 28, 28, 28, 28, 28, 28, 28,
914
+ 28, 25, 25, 25, 25, 25, 25, 25,
826
915
  28, 28, 28, 28, 28, 28, 28, 28,
827
916
  28, 28, 28, 28, 28, 28, 28, 28,
828
917
  28, 28, 28, 28, 28, 28, 28, 28,
918
+ 28, 28, 25, 25, 25, 25, 28, 25,
829
919
  28, 28, 28, 28, 28, 28, 28, 28,
830
920
  28, 28, 28, 28, 28, 28, 28, 28,
831
921
  28, 28, 28, 28, 28, 28, 28, 28,
832
- 28, 30, 28, 31, 26, 30, 28, 32,
833
- 32, 32, 0
922
+ 28, 28, 25, 30, 29, 32, 31, 31,
923
+ 31, 31, 31, 31, 31, 31, 31, 31,
924
+ 31, 31, 31, 31, 31, 31, 31, 31,
925
+ 31, 31, 31, 31, 31, 31, 31, 31,
926
+ 31, 31, 31, 31, 31, 31, 31, 31,
927
+ 31, 31, 31, 31, 31, 31, 31, 31,
928
+ 31, 31, 31, 31, 31, 31, 31, 31,
929
+ 31, 31, 31, 31, 31, 31, 31, 33,
930
+ 31, 34, 29, 33, 31, 35, 35, 35,
931
+ 0
834
932
  ]
835
933
 
836
934
  class << self
@@ -838,11 +936,11 @@ class << self
838
936
  private :_bel_trans_targs, :_bel_trans_targs=
839
937
  end
840
938
  self._bel_trans_targs = [
841
- 0, 2, 0, 2, 3, 8, 3, 4,
842
- 7, 0, 5, 2, 6, 5, 2, 6,
843
- 15, 0, 5, 2, 8, 6, 0, 10,
844
- 16, 10, 0, 12, 12, 13, 14, 17,
845
- 0
939
+ 0, 2, 0, 2, 3, 6, 7, 8,
940
+ 3, 4, 9, 0, 5, 6, 8, 5,
941
+ 6, 8, 6, 0, 5, 6, 7, 8,
942
+ 16, 0, 11, 17, 11, 0, 13, 13,
943
+ 14, 15, 18, 0
846
944
  ]
847
945
 
848
946
  class << self
@@ -850,11 +948,11 @@ class << self
850
948
  private :_bel_trans_actions, :_bel_trans_actions=
851
949
  end
852
950
  self._bel_trans_actions = [
853
- 1, 2, 3, 0, 4, 5, 7, 7,
854
- 7, 6, 8, 9, 10, 0, 11, 12,
855
- 13, 14, 15, 16, 17, 18, 19, 5,
856
- 20, 17, 21, 4, 7, 7, 7, 22,
857
- 0
951
+ 1, 2, 3, 4, 5, 6, 7, 8,
952
+ 10, 10, 10, 9, 11, 12, 13, 0,
953
+ 14, 15, 0, 16, 17, 18, 19, 20,
954
+ 21, 22, 7, 23, 19, 24, 5, 10,
955
+ 10, 10, 25, 0
858
956
  ]
859
957
 
860
958
  class << self
@@ -862,9 +960,9 @@ class << self
862
960
  private :_bel_eof_actions, :_bel_eof_actions=
863
961
  end
864
962
  self._bel_eof_actions = [
865
- 0, 1, 3, 6, 6, 1, 1, 6,
866
- 14, 19, 19, 21, 21, 21, 21, 0,
867
- 0, 0
963
+ 0, 1, 3, 9, 9, 1, 3, 16,
964
+ 1, 9, 22, 22, 24, 24, 24, 24,
965
+ 0, 0, 0
868
966
  ]
869
967
 
870
968
  class << self
@@ -874,7 +972,7 @@ self.bel_start = 1;
874
972
  class << self
875
973
  attr_accessor :bel_first_final
876
974
  end
877
- self.bel_first_final = 15;
975
+ self.bel_first_final = 16;
878
976
  class << self
879
977
  attr_accessor :bel_error
880
978
  end
@@ -883,11 +981,11 @@ self.bel_error = 0;
883
981
  class << self
884
982
  attr_accessor :bel_en_ident
885
983
  end
886
- self.bel_en_ident = 9;
984
+ self.bel_en_ident = 10;
887
985
  class << self
888
986
  attr_accessor :bel_en_string
889
987
  end
890
- self.bel_en_string = 11;
988
+ self.bel_en_string = 12;
891
989
  class << self
892
990
  attr_accessor :bel_en_list
893
991
  end
@@ -936,17 +1034,17 @@ begin
936
1034
  cs = _bel_trans_targs[_trans]
937
1035
  if _bel_trans_actions[_trans] != 0
938
1036
  case _bel_trans_actions[_trans]
939
- when 17 then
1037
+ when 19 then
940
1038
  begin
941
1039
 
942
1040
  (@buffers[:ident] ||= []) << data[p].ord
943
1041
  end
944
- when 7 then
1042
+ when 10 then
945
1043
  begin
946
1044
 
947
1045
  (@buffers[:string] ||= []) << data[p].ord
948
1046
  end
949
- when 11 then
1047
+ when 14 then
950
1048
  begin
951
1049
 
952
1050
  @buffers.delete(:string)
@@ -957,12 +1055,23 @@ begin
957
1055
 
958
1056
  @buffers[:list] = list()
959
1057
  end
960
- when 12 then
1058
+ when 4 then
1059
+ begin
1060
+
1061
+ # Append list argument if its value is not empty.
1062
+ if @buffers[:list_arg]
1063
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
1064
+ if list_arg_value != ''
1065
+ @buffers[:list] <<= @buffers[:list_arg]
1066
+ end
1067
+ end
1068
+ end
1069
+ when 15 then
961
1070
  begin
962
1071
 
963
1072
  #TODO: Mark @buffers[:list] as complete.
964
1073
  end
965
- when 13 then
1074
+ when 21 then
966
1075
  begin
967
1076
 
968
1077
  yield @buffers[:list]
@@ -973,7 +1082,7 @@ begin
973
1082
  @buffers[:list] ||= list()
974
1083
  yield @buffers[:list]
975
1084
  end
976
- when 5 then
1085
+ when 7 then
977
1086
  begin
978
1087
 
979
1088
  @buffers[:ident] = []
@@ -982,7 +1091,7 @@ begin
982
1091
 
983
1092
  (@buffers[:ident] ||= []) << data[p].ord
984
1093
  end
985
- when 20 then
1094
+ when 23 then
986
1095
  begin
987
1096
 
988
1097
  @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
@@ -991,7 +1100,7 @@ begin
991
1100
 
992
1101
  yield @buffers[:ident]
993
1102
  end
994
- when 19 then
1103
+ when 22 then
995
1104
  begin
996
1105
 
997
1106
  unless @buffers[:ident].is_a?(::AST::Node)
@@ -1004,7 +1113,7 @@ begin
1004
1113
  @buffers[:ident] ||= []
1005
1114
  yield @buffers[:ident]
1006
1115
  end
1007
- when 4 then
1116
+ when 5 then
1008
1117
  begin
1009
1118
 
1010
1119
  @buffers[:string] = []
@@ -1013,7 +1122,7 @@ begin
1013
1122
 
1014
1123
  (@buffers[:string] ||= []) << data[p].ord
1015
1124
  end
1016
- when 22 then
1125
+ when 25 then
1017
1126
  begin
1018
1127
 
1019
1128
  @buffers[:string] = string(utf8_string(@buffers[:string]))
@@ -1022,7 +1131,7 @@ begin
1022
1131
 
1023
1132
  yield @buffers[:string]
1024
1133
  end
1025
- when 21 then
1134
+ when 24 then
1026
1135
  begin
1027
1136
 
1028
1137
  @buffers[:string] ||= []
@@ -1033,7 +1142,38 @@ begin
1033
1142
  @buffers[:string] ||= []
1034
1143
  yield @buffers[:string]
1035
1144
  end
1036
- when 15 then
1145
+ when 6 then
1146
+ begin
1147
+
1148
+ # Append list argument if its value is not empty.
1149
+ if @buffers[:list_arg]
1150
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
1151
+ if list_arg_value != ''
1152
+ @buffers[:list] <<= @buffers[:list_arg]
1153
+ end
1154
+ end
1155
+ end
1156
+ begin
1157
+
1158
+ @buffers.delete(:string)
1159
+ @buffers.delete(:ident)
1160
+ end
1161
+ when 8 then
1162
+ begin
1163
+
1164
+ # Append list argument if its value is not empty.
1165
+ if @buffers[:list_arg]
1166
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
1167
+ if list_arg_value != ''
1168
+ @buffers[:list] <<= @buffers[:list_arg]
1169
+ end
1170
+ end
1171
+ end
1172
+ begin
1173
+
1174
+ #TODO: Mark @buffers[:list] as complete.
1175
+ end
1176
+ when 17 then
1037
1177
  begin
1038
1178
 
1039
1179
  @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
@@ -1045,12 +1185,14 @@ begin
1045
1185
  begin
1046
1186
 
1047
1187
  # Append list argument if its value is not empty.
1048
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1049
- if list_arg_value != ''
1050
- @buffers[:list] <<= @buffers[:list_arg]
1188
+ if @buffers[:list_arg]
1189
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
1190
+ if list_arg_value != ''
1191
+ @buffers[:list] <<= @buffers[:list_arg]
1192
+ end
1051
1193
  end
1052
1194
  end
1053
- when 8 then
1195
+ when 11 then
1054
1196
  begin
1055
1197
 
1056
1198
  @buffers[:string] = string(utf8_string(@buffers[:string]))
@@ -1062,12 +1204,14 @@ begin
1062
1204
  begin
1063
1205
 
1064
1206
  # Append list argument if its value is not empty.
1065
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1066
- if list_arg_value != ''
1067
- @buffers[:list] <<= @buffers[:list_arg]
1207
+ if @buffers[:list_arg]
1208
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
1209
+ if list_arg_value != ''
1210
+ @buffers[:list] <<= @buffers[:list_arg]
1211
+ end
1068
1212
  end
1069
1213
  end
1070
- when 16 then
1214
+ when 18 then
1071
1215
  begin
1072
1216
 
1073
1217
  @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
@@ -1079,9 +1223,11 @@ begin
1079
1223
  begin
1080
1224
 
1081
1225
  # Append list argument if its value is not empty.
1082
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1083
- if list_arg_value != ''
1084
- @buffers[:list] <<= @buffers[:list_arg]
1226
+ if @buffers[:list_arg]
1227
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
1228
+ if list_arg_value != ''
1229
+ @buffers[:list] <<= @buffers[:list_arg]
1230
+ end
1085
1231
  end
1086
1232
  end
1087
1233
  begin
@@ -1089,7 +1235,7 @@ begin
1089
1235
  @buffers.delete(:string)
1090
1236
  @buffers.delete(:ident)
1091
1237
  end
1092
- when 18 then
1238
+ when 20 then
1093
1239
  begin
1094
1240
 
1095
1241
  @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
@@ -1101,16 +1247,18 @@ begin
1101
1247
  begin
1102
1248
 
1103
1249
  # Append list argument if its value is not empty.
1104
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1105
- if list_arg_value != ''
1106
- @buffers[:list] <<= @buffers[:list_arg]
1250
+ if @buffers[:list_arg]
1251
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
1252
+ if list_arg_value != ''
1253
+ @buffers[:list] <<= @buffers[:list_arg]
1254
+ end
1107
1255
  end
1108
1256
  end
1109
1257
  begin
1110
1258
 
1111
1259
  #TODO: Mark @buffers[:list] as complete.
1112
1260
  end
1113
- when 14 then
1261
+ when 16 then
1114
1262
  begin
1115
1263
 
1116
1264
  unless @buffers[:ident].is_a?(::AST::Node)
@@ -1126,9 +1274,11 @@ begin
1126
1274
  begin
1127
1275
 
1128
1276
  # Append list argument if its value is not empty.
1129
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1130
- if list_arg_value != ''
1131
- @buffers[:list] <<= @buffers[:list_arg]
1277
+ if @buffers[:list_arg]
1278
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
1279
+ if list_arg_value != ''
1280
+ @buffers[:list] <<= @buffers[:list_arg]
1281
+ end
1132
1282
  end
1133
1283
  end
1134
1284
  begin
@@ -1136,7 +1286,7 @@ begin
1136
1286
  @buffers[:list] ||= list()
1137
1287
  yield @buffers[:list]
1138
1288
  end
1139
- when 9 then
1289
+ when 12 then
1140
1290
  begin
1141
1291
 
1142
1292
  @buffers[:string] = string(utf8_string(@buffers[:string]))
@@ -1148,9 +1298,11 @@ begin
1148
1298
  begin
1149
1299
 
1150
1300
  # Append list argument if its value is not empty.
1151
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1152
- if list_arg_value != ''
1153
- @buffers[:list] <<= @buffers[:list_arg]
1301
+ if @buffers[:list_arg]
1302
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
1303
+ if list_arg_value != ''
1304
+ @buffers[:list] <<= @buffers[:list_arg]
1305
+ end
1154
1306
  end
1155
1307
  end
1156
1308
  begin
@@ -1158,7 +1310,7 @@ begin
1158
1310
  @buffers.delete(:string)
1159
1311
  @buffers.delete(:ident)
1160
1312
  end
1161
- when 10 then
1313
+ when 13 then
1162
1314
  begin
1163
1315
 
1164
1316
  @buffers[:string] = string(utf8_string(@buffers[:string]))
@@ -1170,16 +1322,18 @@ begin
1170
1322
  begin
1171
1323
 
1172
1324
  # Append list argument if its value is not empty.
1173
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1174
- if list_arg_value != ''
1175
- @buffers[:list] <<= @buffers[:list_arg]
1325
+ if @buffers[:list_arg]
1326
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
1327
+ if list_arg_value != ''
1328
+ @buffers[:list] <<= @buffers[:list_arg]
1329
+ end
1176
1330
  end
1177
1331
  end
1178
1332
  begin
1179
1333
 
1180
1334
  #TODO: Mark @buffers[:list] as complete.
1181
1335
  end
1182
- when 6 then
1336
+ when 9 then
1183
1337
  begin
1184
1338
 
1185
1339
  @buffers[:string] ||= []
@@ -1193,9 +1347,11 @@ begin
1193
1347
  begin
1194
1348
 
1195
1349
  # Append list argument if its value is not empty.
1196
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1197
- if list_arg_value != ''
1198
- @buffers[:list] <<= @buffers[:list_arg]
1350
+ if @buffers[:list_arg]
1351
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
1352
+ if list_arg_value != ''
1353
+ @buffers[:list] <<= @buffers[:list_arg]
1354
+ end
1199
1355
  end
1200
1356
  end
1201
1357
  begin
@@ -1229,9 +1385,11 @@ begin
1229
1385
  begin
1230
1386
 
1231
1387
  # Append list argument if its value is not empty.
1232
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1233
- if list_arg_value != ''
1234
- @buffers[:list] <<= @buffers[:list_arg]
1388
+ if @buffers[:list_arg]
1389
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
1390
+ if list_arg_value != ''
1391
+ @buffers[:list] <<= @buffers[:list_arg]
1392
+ end
1235
1393
  end
1236
1394
  end
1237
1395
  begin
@@ -1262,7 +1420,7 @@ begin
1262
1420
  @buffers[:list] ||= list()
1263
1421
  yield @buffers[:list]
1264
1422
  end
1265
- when 19 then
1423
+ when 22 then
1266
1424
  begin
1267
1425
 
1268
1426
  unless @buffers[:ident].is_a?(::AST::Node)
@@ -1275,7 +1433,7 @@ begin
1275
1433
  @buffers[:ident] ||= []
1276
1434
  yield @buffers[:ident]
1277
1435
  end
1278
- when 21 then
1436
+ when 24 then
1279
1437
  begin
1280
1438
 
1281
1439
  @buffers[:string] ||= []
@@ -1286,7 +1444,7 @@ begin
1286
1444
  @buffers[:string] ||= []
1287
1445
  yield @buffers[:string]
1288
1446
  end
1289
- when 14 then
1447
+ when 16 then
1290
1448
  begin
1291
1449
 
1292
1450
  unless @buffers[:ident].is_a?(::AST::Node)
@@ -1302,9 +1460,11 @@ begin
1302
1460
  begin
1303
1461
 
1304
1462
  # Append list argument if its value is not empty.
1305
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1306
- if list_arg_value != ''
1307
- @buffers[:list] <<= @buffers[:list_arg]
1463
+ if @buffers[:list_arg]
1464
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
1465
+ if list_arg_value != ''
1466
+ @buffers[:list] <<= @buffers[:list_arg]
1467
+ end
1308
1468
  end
1309
1469
  end
1310
1470
  begin
@@ -1312,7 +1472,7 @@ begin
1312
1472
  @buffers[:list] ||= list()
1313
1473
  yield @buffers[:list]
1314
1474
  end
1315
- when 6 then
1475
+ when 9 then
1316
1476
  begin
1317
1477
 
1318
1478
  @buffers[:string] ||= []
@@ -1326,9 +1486,11 @@ begin
1326
1486
  begin
1327
1487
 
1328
1488
  # Append list argument if its value is not empty.
1329
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1330
- if list_arg_value != ''
1331
- @buffers[:list] <<= @buffers[:list_arg]
1489
+ if @buffers[:list_arg]
1490
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
1491
+ if list_arg_value != ''
1492
+ @buffers[:list] <<= @buffers[:list_arg]
1493
+ end
1332
1494
  end
1333
1495
  end
1334
1496
  begin
@@ -1362,9 +1524,11 @@ begin
1362
1524
  begin
1363
1525
 
1364
1526
  # Append list argument if its value is not empty.
1365
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1366
- if list_arg_value != ''
1367
- @buffers[:list] <<= @buffers[:list_arg]
1527
+ if @buffers[:list_arg]
1528
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
1529
+ if list_arg_value != ''
1530
+ @buffers[:list] <<= @buffers[:list_arg]
1531
+ end
1368
1532
  end
1369
1533
  end
1370
1534
  begin
@@ -1424,13 +1588,14 @@ class << self
1424
1588
  private :_bel_trans_keys, :_bel_trans_keys=
1425
1589
  end
1426
1590
  self._bel_trans_keys = [
1427
- 0, 0, 123, 123, 9, 122,
1591
+ 0, 0, 123, 123, 9, 125,
1428
1592
  34, 92, 9, 125, 9,
1429
- 125, 10, 10, 92, 92,
1430
- 9, 125, 48, 122, 10, 122,
1431
- 34, 34, 34, 92, 10,
1432
- 10, 92, 92, 0, 0,
1433
- 0, 0, 0, 0, 0
1593
+ 125, 9, 122, 9, 125,
1594
+ 10, 10, 92, 92, 48, 122,
1595
+ 10, 122, 34, 34, 34,
1596
+ 92, 10, 10, 92, 92,
1597
+ 0, 0, 0, 0, 0, 0,
1598
+ 0
1434
1599
  ]
1435
1600
 
1436
1601
  class << self
@@ -1438,9 +1603,9 @@ class << self
1438
1603
  private :_bel_key_spans, :_bel_key_spans=
1439
1604
  end
1440
1605
  self._bel_key_spans = [
1441
- 0, 1, 114, 59, 117, 117, 1, 1,
1442
- 117, 75, 113, 1, 59, 1, 1, 0,
1443
- 0, 0
1606
+ 0, 1, 117, 59, 117, 117, 114, 117,
1607
+ 1, 1, 75, 113, 1, 59, 1, 1,
1608
+ 0, 0, 0
1444
1609
  ]
1445
1610
 
1446
1611
  class << self
@@ -1448,9 +1613,9 @@ class << self
1448
1613
  private :_bel_index_offsets, :_bel_index_offsets=
1449
1614
  end
1450
1615
  self._bel_index_offsets = [
1451
- 0, 0, 2, 117, 177, 295, 413, 415,
1452
- 417, 535, 611, 725, 727, 787, 789, 791,
1453
- 792, 793
1616
+ 0, 0, 2, 120, 180, 298, 416, 531,
1617
+ 649, 651, 653, 729, 843, 845, 905, 907,
1618
+ 909, 910, 911
1454
1619
  ]
1455
1620
 
1456
1621
  class << self
@@ -1462,44 +1627,44 @@ self._bel_indicies = [
1462
1627
  2, 2, 2, 2, 2, 2, 2, 2,
1463
1628
  2, 2, 2, 2, 2, 2, 2, 2,
1464
1629
  2, 3, 2, 4, 2, 2, 2, 2,
1465
- 2, 2, 2, 2, 2, 2, 2, 2,
1466
- 2, 5, 5, 5, 5, 5, 5, 5,
1467
- 5, 5, 5, 2, 2, 2, 2, 2,
1468
- 2, 2, 5, 5, 5, 5, 5, 5,
1469
- 5, 5, 5, 5, 5, 5, 5, 5,
1470
- 5, 5, 5, 5, 5, 5, 5, 5,
1471
- 5, 5, 5, 5, 2, 2, 2, 2,
1472
- 5, 2, 5, 5, 5, 5, 5, 5,
1473
- 5, 5, 5, 5, 5, 5, 5, 5,
1474
- 5, 5, 5, 5, 5, 5, 5, 5,
1475
- 5, 5, 5, 5, 2, 7, 6, 6,
1476
- 6, 6, 6, 6, 6, 6, 6, 6,
1630
+ 2, 2, 2, 2, 2, 5, 2, 2,
1631
+ 2, 6, 6, 6, 6, 6, 6, 6,
1632
+ 6, 6, 6, 2, 2, 2, 2, 2,
1633
+ 2, 2, 6, 6, 6, 6, 6, 6,
1477
1634
  6, 6, 6, 6, 6, 6, 6, 6,
1478
1635
  6, 6, 6, 6, 6, 6, 6, 6,
1636
+ 6, 6, 6, 6, 2, 2, 2, 2,
1637
+ 6, 2, 6, 6, 6, 6, 6, 6,
1479
1638
  6, 6, 6, 6, 6, 6, 6, 6,
1480
1639
  6, 6, 6, 6, 6, 6, 6, 6,
1481
- 6, 6, 6, 6, 6, 6, 6, 6,
1482
- 6, 6, 6, 6, 6, 6, 6, 8,
1483
- 6, 10, 9, 9, 9, 9, 9, 9,
1484
- 9, 9, 9, 9, 9, 9, 9, 9,
1485
- 9, 9, 9, 9, 9, 9, 9, 9,
1486
- 10, 9, 9, 9, 9, 9, 9, 9,
1487
- 9, 9, 9, 9, 11, 9, 9, 9,
1488
- 9, 9, 9, 9, 9, 9, 9, 9,
1489
- 9, 9, 9, 9, 9, 9, 9, 9,
1490
- 9, 9, 9, 9, 9, 9, 9, 9,
1491
- 9, 9, 9, 9, 9, 9, 9, 9,
1492
- 9, 9, 9, 9, 9, 9, 9, 9,
1493
- 9, 9, 9, 9, 9, 9, 9, 9,
1494
- 9, 9, 9, 9, 9, 9, 9, 9,
1495
- 9, 9, 9, 9, 9, 9, 9, 9,
1496
- 9, 9, 9, 9, 9, 9, 9, 9,
1497
- 9, 9, 9, 9, 9, 12, 9, 13,
1498
- 0, 0, 0, 0, 0, 0, 0, 0,
1640
+ 6, 6, 6, 6, 2, 2, 7, 2,
1641
+ 9, 8, 8, 8, 8, 8, 8, 8,
1642
+ 8, 8, 8, 8, 8, 8, 8, 8,
1643
+ 8, 8, 8, 8, 8, 8, 8, 8,
1644
+ 8, 8, 8, 8, 8, 8, 8, 8,
1645
+ 8, 8, 8, 8, 8, 8, 8, 8,
1646
+ 8, 8, 8, 8, 8, 8, 8, 8,
1647
+ 8, 8, 8, 8, 8, 8, 8, 8,
1648
+ 8, 8, 10, 8, 12, 11, 11, 11,
1649
+ 11, 11, 11, 11, 11, 11, 11, 11,
1650
+ 11, 11, 11, 11, 11, 11, 11, 11,
1651
+ 11, 11, 11, 12, 11, 11, 11, 11,
1652
+ 11, 11, 11, 11, 11, 11, 11, 13,
1653
+ 11, 11, 11, 11, 11, 11, 11, 11,
1654
+ 11, 11, 11, 11, 11, 11, 11, 11,
1655
+ 11, 11, 11, 11, 11, 11, 11, 11,
1656
+ 11, 11, 11, 11, 11, 11, 11, 11,
1657
+ 11, 11, 11, 11, 11, 11, 11, 11,
1658
+ 11, 11, 11, 11, 11, 11, 11, 11,
1659
+ 11, 11, 11, 11, 11, 11, 11, 11,
1660
+ 11, 11, 11, 11, 11, 11, 11, 11,
1661
+ 11, 11, 11, 11, 11, 11, 11, 11,
1662
+ 11, 11, 11, 11, 11, 11, 11, 11,
1663
+ 14, 11, 15, 0, 0, 0, 0, 0,
1499
1664
  0, 0, 0, 0, 0, 0, 0, 0,
1500
- 0, 0, 0, 0, 0, 0, 13, 0,
1501
1665
  0, 0, 0, 0, 0, 0, 0, 0,
1502
- 0, 0, 14, 0, 0, 0, 0, 0,
1666
+ 0, 15, 0, 0, 0, 0, 0, 0,
1667
+ 0, 0, 0, 0, 0, 16, 0, 0,
1503
1668
  0, 0, 0, 0, 0, 0, 0, 0,
1504
1669
  0, 0, 0, 0, 0, 0, 0, 0,
1505
1670
  0, 0, 0, 0, 0, 0, 0, 0,
@@ -1509,55 +1674,70 @@ self._bel_indicies = [
1509
1674
  0, 0, 0, 0, 0, 0, 0, 0,
1510
1675
  0, 0, 0, 0, 0, 0, 0, 0,
1511
1676
  0, 0, 0, 0, 0, 0, 0, 0,
1512
- 0, 0, 0, 15, 0, 16, 0, 8,
1513
- 6, 18, 17, 17, 17, 17, 17, 17,
1514
- 17, 17, 17, 17, 17, 17, 17, 17,
1515
- 17, 17, 17, 17, 17, 17, 17, 17,
1516
- 18, 17, 17, 17, 17, 17, 17, 17,
1517
- 17, 17, 17, 17, 19, 17, 17, 17,
1518
- 20, 20, 20, 20, 20, 20, 20, 20,
1519
- 20, 20, 17, 17, 17, 17, 17, 17,
1520
- 17, 20, 20, 20, 20, 20, 20, 20,
1521
- 20, 20, 20, 20, 20, 20, 20, 20,
1522
- 20, 20, 20, 20, 20, 20, 20, 20,
1523
- 20, 20, 20, 17, 17, 17, 17, 20,
1524
- 17, 20, 20, 20, 20, 20, 20, 20,
1525
- 20, 20, 20, 20, 20, 20, 20, 20,
1526
- 20, 20, 20, 20, 20, 20, 20, 20,
1527
- 20, 20, 20, 17, 17, 21, 17, 23,
1528
- 23, 23, 23, 23, 23, 23, 23, 23,
1529
- 23, 22, 22, 22, 22, 22, 22, 22,
1530
- 23, 23, 23, 23, 23, 23, 23, 23,
1531
- 23, 23, 23, 23, 23, 23, 23, 23,
1532
- 23, 23, 23, 23, 23, 23, 23, 23,
1533
- 23, 23, 22, 22, 22, 22, 23, 22,
1534
- 23, 23, 23, 23, 23, 23, 23, 23,
1535
- 23, 23, 23, 23, 23, 23, 23, 23,
1536
- 23, 23, 23, 23, 23, 23, 23, 23,
1537
- 23, 23, 22, 24, 22, 22, 22, 22,
1677
+ 0, 0, 0, 0, 0, 0, 17, 0,
1678
+ 18, 2, 2, 2, 2, 2, 2, 2,
1679
+ 2, 2, 2, 2, 2, 2, 2, 2,
1680
+ 2, 2, 2, 2, 2, 2, 2, 18,
1681
+ 2, 4, 2, 2, 2, 2, 2, 2,
1682
+ 2, 2, 2, 2, 2, 2, 2, 6,
1683
+ 6, 6, 6, 6, 6, 6, 6, 6,
1684
+ 6, 2, 2, 2, 2, 2, 2, 2,
1685
+ 6, 6, 6, 6, 6, 6, 6, 6,
1686
+ 6, 6, 6, 6, 6, 6, 6, 6,
1687
+ 6, 6, 6, 6, 6, 6, 6, 6,
1688
+ 6, 6, 2, 2, 2, 2, 6, 2,
1689
+ 6, 6, 6, 6, 6, 6, 6, 6,
1690
+ 6, 6, 6, 6, 6, 6, 6, 6,
1691
+ 6, 6, 6, 6, 6, 6, 6, 6,
1692
+ 6, 6, 2, 20, 19, 19, 19, 19,
1693
+ 19, 19, 19, 19, 19, 19, 19, 19,
1694
+ 19, 19, 19, 19, 19, 19, 19, 19,
1695
+ 19, 19, 20, 19, 19, 19, 19, 19,
1696
+ 19, 19, 19, 19, 19, 19, 21, 19,
1697
+ 19, 19, 22, 22, 22, 22, 22, 22,
1698
+ 22, 22, 22, 22, 19, 19, 19, 19,
1699
+ 19, 19, 19, 22, 22, 22, 22, 22,
1538
1700
  22, 22, 22, 22, 22, 22, 22, 22,
1539
1701
  22, 22, 22, 22, 22, 22, 22, 22,
1702
+ 22, 22, 22, 22, 22, 19, 19, 19,
1703
+ 19, 22, 19, 22, 22, 22, 22, 22,
1540
1704
  22, 22, 22, 22, 22, 22, 22, 22,
1541
1705
  22, 22, 22, 22, 22, 22, 22, 22,
1542
- 22, 25, 25, 25, 25, 25, 25, 25,
1543
- 25, 25, 25, 22, 22, 22, 22, 22,
1544
- 22, 22, 25, 25, 25, 25, 25, 25,
1545
- 25, 25, 25, 25, 25, 25, 25, 25,
1706
+ 22, 22, 22, 22, 22, 19, 19, 23,
1707
+ 19, 24, 0, 10, 8, 26, 26, 26,
1708
+ 26, 26, 26, 26, 26, 26, 26, 25,
1709
+ 25, 25, 25, 25, 25, 25, 26, 26,
1710
+ 26, 26, 26, 26, 26, 26, 26, 26,
1711
+ 26, 26, 26, 26, 26, 26, 26, 26,
1712
+ 26, 26, 26, 26, 26, 26, 26, 26,
1713
+ 25, 25, 25, 25, 26, 25, 26, 26,
1714
+ 26, 26, 26, 26, 26, 26, 26, 26,
1715
+ 26, 26, 26, 26, 26, 26, 26, 26,
1716
+ 26, 26, 26, 26, 26, 26, 26, 26,
1717
+ 25, 27, 25, 25, 25, 25, 25, 25,
1546
1718
  25, 25, 25, 25, 25, 25, 25, 25,
1547
- 25, 25, 25, 25, 22, 22, 22, 22,
1548
- 25, 22, 25, 25, 25, 25, 25, 25,
1549
1719
  25, 25, 25, 25, 25, 25, 25, 25,
1550
1720
  25, 25, 25, 25, 25, 25, 25, 25,
1551
- 25, 25, 25, 25, 22, 27, 26, 29,
1721
+ 25, 25, 25, 25, 25, 25, 25, 28,
1552
1722
  28, 28, 28, 28, 28, 28, 28, 28,
1723
+ 28, 25, 25, 25, 25, 25, 25, 25,
1553
1724
  28, 28, 28, 28, 28, 28, 28, 28,
1554
1725
  28, 28, 28, 28, 28, 28, 28, 28,
1555
1726
  28, 28, 28, 28, 28, 28, 28, 28,
1727
+ 28, 28, 25, 25, 25, 25, 28, 25,
1556
1728
  28, 28, 28, 28, 28, 28, 28, 28,
1557
1729
  28, 28, 28, 28, 28, 28, 28, 28,
1558
1730
  28, 28, 28, 28, 28, 28, 28, 28,
1559
- 28, 30, 28, 31, 26, 30, 28, 32,
1560
- 32, 32, 0
1731
+ 28, 28, 25, 30, 29, 32, 31, 31,
1732
+ 31, 31, 31, 31, 31, 31, 31, 31,
1733
+ 31, 31, 31, 31, 31, 31, 31, 31,
1734
+ 31, 31, 31, 31, 31, 31, 31, 31,
1735
+ 31, 31, 31, 31, 31, 31, 31, 31,
1736
+ 31, 31, 31, 31, 31, 31, 31, 31,
1737
+ 31, 31, 31, 31, 31, 31, 31, 31,
1738
+ 31, 31, 31, 31, 31, 31, 31, 33,
1739
+ 31, 34, 29, 33, 31, 35, 35, 35,
1740
+ 0
1561
1741
  ]
1562
1742
 
1563
1743
  class << self
@@ -1565,11 +1745,11 @@ class << self
1565
1745
  private :_bel_trans_targs, :_bel_trans_targs=
1566
1746
  end
1567
1747
  self._bel_trans_targs = [
1568
- 0, 2, 0, 2, 3, 8, 3, 4,
1569
- 7, 0, 5, 2, 6, 5, 2, 6,
1570
- 15, 0, 5, 2, 8, 6, 0, 10,
1571
- 16, 10, 0, 12, 12, 13, 14, 17,
1572
- 0
1748
+ 0, 2, 0, 2, 3, 6, 7, 8,
1749
+ 3, 4, 9, 0, 5, 6, 8, 5,
1750
+ 6, 8, 6, 0, 5, 6, 7, 8,
1751
+ 16, 0, 11, 17, 11, 0, 13, 13,
1752
+ 14, 15, 18, 0
1573
1753
  ]
1574
1754
 
1575
1755
  class << self
@@ -1577,11 +1757,11 @@ class << self
1577
1757
  private :_bel_trans_actions, :_bel_trans_actions=
1578
1758
  end
1579
1759
  self._bel_trans_actions = [
1580
- 1, 2, 3, 0, 4, 5, 7, 7,
1581
- 7, 6, 8, 9, 10, 0, 11, 12,
1582
- 13, 14, 15, 16, 17, 18, 19, 5,
1583
- 20, 17, 21, 4, 7, 7, 7, 22,
1584
- 0
1760
+ 1, 2, 3, 4, 5, 6, 7, 8,
1761
+ 10, 10, 10, 9, 11, 12, 13, 0,
1762
+ 14, 15, 0, 16, 17, 18, 19, 20,
1763
+ 21, 22, 7, 23, 19, 24, 5, 10,
1764
+ 10, 10, 25, 0
1585
1765
  ]
1586
1766
 
1587
1767
  class << self
@@ -1589,9 +1769,9 @@ class << self
1589
1769
  private :_bel_eof_actions, :_bel_eof_actions=
1590
1770
  end
1591
1771
  self._bel_eof_actions = [
1592
- 0, 1, 3, 6, 6, 1, 1, 6,
1593
- 14, 19, 19, 21, 21, 21, 21, 0,
1594
- 0, 0
1772
+ 0, 1, 3, 9, 9, 1, 3, 16,
1773
+ 1, 9, 22, 22, 24, 24, 24, 24,
1774
+ 0, 0, 0
1595
1775
  ]
1596
1776
 
1597
1777
  class << self
@@ -1601,7 +1781,7 @@ self.bel_start = 1;
1601
1781
  class << self
1602
1782
  attr_accessor :bel_first_final
1603
1783
  end
1604
- self.bel_first_final = 15;
1784
+ self.bel_first_final = 16;
1605
1785
  class << self
1606
1786
  attr_accessor :bel_error
1607
1787
  end
@@ -1610,11 +1790,11 @@ self.bel_error = 0;
1610
1790
  class << self
1611
1791
  attr_accessor :bel_en_ident
1612
1792
  end
1613
- self.bel_en_ident = 9;
1793
+ self.bel_en_ident = 10;
1614
1794
  class << self
1615
1795
  attr_accessor :bel_en_string
1616
1796
  end
1617
- self.bel_en_string = 11;
1797
+ self.bel_en_string = 12;
1618
1798
  class << self
1619
1799
  attr_accessor :bel_en_list
1620
1800
  end
@@ -1676,17 +1856,17 @@ begin
1676
1856
  cs = _bel_trans_targs[_trans]
1677
1857
  if _bel_trans_actions[_trans] != 0
1678
1858
  case _bel_trans_actions[_trans]
1679
- when 17 then
1859
+ when 19 then
1680
1860
  begin
1681
1861
 
1682
1862
  (@buffers[:ident] ||= []) << data[p].ord
1683
1863
  end
1684
- when 7 then
1864
+ when 10 then
1685
1865
  begin
1686
1866
 
1687
1867
  (@buffers[:string] ||= []) << data[p].ord
1688
1868
  end
1689
- when 11 then
1869
+ when 14 then
1690
1870
  begin
1691
1871
 
1692
1872
  @buffers.delete(:string)
@@ -1697,12 +1877,23 @@ begin
1697
1877
 
1698
1878
  @buffers[:list] = list()
1699
1879
  end
1700
- when 12 then
1880
+ when 4 then
1881
+ begin
1882
+
1883
+ # Append list argument if its value is not empty.
1884
+ if @buffers[:list_arg]
1885
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
1886
+ if list_arg_value != ''
1887
+ @buffers[:list] <<= @buffers[:list_arg]
1888
+ end
1889
+ end
1890
+ end
1891
+ when 15 then
1701
1892
  begin
1702
1893
 
1703
1894
  #TODO: Mark @buffers[:list] as complete.
1704
1895
  end
1705
- when 13 then
1896
+ when 21 then
1706
1897
  begin
1707
1898
 
1708
1899
  yield @buffers[:list]
@@ -1713,7 +1904,7 @@ begin
1713
1904
  @buffers[:list] ||= list()
1714
1905
  yield @buffers[:list]
1715
1906
  end
1716
- when 5 then
1907
+ when 7 then
1717
1908
  begin
1718
1909
 
1719
1910
  @buffers[:ident] = []
@@ -1722,7 +1913,7 @@ begin
1722
1913
 
1723
1914
  (@buffers[:ident] ||= []) << data[p].ord
1724
1915
  end
1725
- when 20 then
1916
+ when 23 then
1726
1917
  begin
1727
1918
 
1728
1919
  @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
@@ -1731,7 +1922,7 @@ begin
1731
1922
 
1732
1923
  yield @buffers[:ident]
1733
1924
  end
1734
- when 19 then
1925
+ when 22 then
1735
1926
  begin
1736
1927
 
1737
1928
  unless @buffers[:ident].is_a?(::AST::Node)
@@ -1744,7 +1935,7 @@ begin
1744
1935
  @buffers[:ident] ||= []
1745
1936
  yield @buffers[:ident]
1746
1937
  end
1747
- when 4 then
1938
+ when 5 then
1748
1939
  begin
1749
1940
 
1750
1941
  @buffers[:string] = []
@@ -1753,7 +1944,7 @@ begin
1753
1944
 
1754
1945
  (@buffers[:string] ||= []) << data[p].ord
1755
1946
  end
1756
- when 22 then
1947
+ when 25 then
1757
1948
  begin
1758
1949
 
1759
1950
  @buffers[:string] = string(utf8_string(@buffers[:string]))
@@ -1762,7 +1953,7 @@ begin
1762
1953
 
1763
1954
  yield @buffers[:string]
1764
1955
  end
1765
- when 21 then
1956
+ when 24 then
1766
1957
  begin
1767
1958
 
1768
1959
  @buffers[:string] ||= []
@@ -1773,7 +1964,38 @@ begin
1773
1964
  @buffers[:string] ||= []
1774
1965
  yield @buffers[:string]
1775
1966
  end
1776
- when 15 then
1967
+ when 6 then
1968
+ begin
1969
+
1970
+ # Append list argument if its value is not empty.
1971
+ if @buffers[:list_arg]
1972
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
1973
+ if list_arg_value != ''
1974
+ @buffers[:list] <<= @buffers[:list_arg]
1975
+ end
1976
+ end
1977
+ end
1978
+ begin
1979
+
1980
+ @buffers.delete(:string)
1981
+ @buffers.delete(:ident)
1982
+ end
1983
+ when 8 then
1984
+ begin
1985
+
1986
+ # Append list argument if its value is not empty.
1987
+ if @buffers[:list_arg]
1988
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
1989
+ if list_arg_value != ''
1990
+ @buffers[:list] <<= @buffers[:list_arg]
1991
+ end
1992
+ end
1993
+ end
1994
+ begin
1995
+
1996
+ #TODO: Mark @buffers[:list] as complete.
1997
+ end
1998
+ when 17 then
1777
1999
  begin
1778
2000
 
1779
2001
  @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
@@ -1785,12 +2007,14 @@ begin
1785
2007
  begin
1786
2008
 
1787
2009
  # Append list argument if its value is not empty.
1788
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1789
- if list_arg_value != ''
1790
- @buffers[:list] <<= @buffers[:list_arg]
2010
+ if @buffers[:list_arg]
2011
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
2012
+ if list_arg_value != ''
2013
+ @buffers[:list] <<= @buffers[:list_arg]
2014
+ end
1791
2015
  end
1792
2016
  end
1793
- when 8 then
2017
+ when 11 then
1794
2018
  begin
1795
2019
 
1796
2020
  @buffers[:string] = string(utf8_string(@buffers[:string]))
@@ -1802,12 +2026,14 @@ begin
1802
2026
  begin
1803
2027
 
1804
2028
  # Append list argument if its value is not empty.
1805
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1806
- if list_arg_value != ''
1807
- @buffers[:list] <<= @buffers[:list_arg]
2029
+ if @buffers[:list_arg]
2030
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
2031
+ if list_arg_value != ''
2032
+ @buffers[:list] <<= @buffers[:list_arg]
2033
+ end
1808
2034
  end
1809
2035
  end
1810
- when 16 then
2036
+ when 18 then
1811
2037
  begin
1812
2038
 
1813
2039
  @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
@@ -1819,9 +2045,11 @@ begin
1819
2045
  begin
1820
2046
 
1821
2047
  # Append list argument if its value is not empty.
1822
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1823
- if list_arg_value != ''
1824
- @buffers[:list] <<= @buffers[:list_arg]
2048
+ if @buffers[:list_arg]
2049
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
2050
+ if list_arg_value != ''
2051
+ @buffers[:list] <<= @buffers[:list_arg]
2052
+ end
1825
2053
  end
1826
2054
  end
1827
2055
  begin
@@ -1829,7 +2057,7 @@ begin
1829
2057
  @buffers.delete(:string)
1830
2058
  @buffers.delete(:ident)
1831
2059
  end
1832
- when 18 then
2060
+ when 20 then
1833
2061
  begin
1834
2062
 
1835
2063
  @buffers[:ident] = identifier(utf8_string(@buffers[:ident]))
@@ -1841,16 +2069,18 @@ begin
1841
2069
  begin
1842
2070
 
1843
2071
  # Append list argument if its value is not empty.
1844
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1845
- if list_arg_value != ''
1846
- @buffers[:list] <<= @buffers[:list_arg]
2072
+ if @buffers[:list_arg]
2073
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
2074
+ if list_arg_value != ''
2075
+ @buffers[:list] <<= @buffers[:list_arg]
2076
+ end
1847
2077
  end
1848
2078
  end
1849
2079
  begin
1850
2080
 
1851
2081
  #TODO: Mark @buffers[:list] as complete.
1852
2082
  end
1853
- when 14 then
2083
+ when 16 then
1854
2084
  begin
1855
2085
 
1856
2086
  unless @buffers[:ident].is_a?(::AST::Node)
@@ -1866,9 +2096,11 @@ begin
1866
2096
  begin
1867
2097
 
1868
2098
  # Append list argument if its value is not empty.
1869
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1870
- if list_arg_value != ''
1871
- @buffers[:list] <<= @buffers[:list_arg]
2099
+ if @buffers[:list_arg]
2100
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
2101
+ if list_arg_value != ''
2102
+ @buffers[:list] <<= @buffers[:list_arg]
2103
+ end
1872
2104
  end
1873
2105
  end
1874
2106
  begin
@@ -1876,7 +2108,7 @@ begin
1876
2108
  @buffers[:list] ||= list()
1877
2109
  yield @buffers[:list]
1878
2110
  end
1879
- when 9 then
2111
+ when 12 then
1880
2112
  begin
1881
2113
 
1882
2114
  @buffers[:string] = string(utf8_string(@buffers[:string]))
@@ -1888,9 +2120,11 @@ begin
1888
2120
  begin
1889
2121
 
1890
2122
  # Append list argument if its value is not empty.
1891
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1892
- if list_arg_value != ''
1893
- @buffers[:list] <<= @buffers[:list_arg]
2123
+ if @buffers[:list_arg]
2124
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
2125
+ if list_arg_value != ''
2126
+ @buffers[:list] <<= @buffers[:list_arg]
2127
+ end
1894
2128
  end
1895
2129
  end
1896
2130
  begin
@@ -1898,7 +2132,7 @@ begin
1898
2132
  @buffers.delete(:string)
1899
2133
  @buffers.delete(:ident)
1900
2134
  end
1901
- when 10 then
2135
+ when 13 then
1902
2136
  begin
1903
2137
 
1904
2138
  @buffers[:string] = string(utf8_string(@buffers[:string]))
@@ -1910,16 +2144,18 @@ begin
1910
2144
  begin
1911
2145
 
1912
2146
  # Append list argument if its value is not empty.
1913
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1914
- if list_arg_value != ''
1915
- @buffers[:list] <<= @buffers[:list_arg]
2147
+ if @buffers[:list_arg]
2148
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
2149
+ if list_arg_value != ''
2150
+ @buffers[:list] <<= @buffers[:list_arg]
2151
+ end
1916
2152
  end
1917
2153
  end
1918
2154
  begin
1919
2155
 
1920
2156
  #TODO: Mark @buffers[:list] as complete.
1921
2157
  end
1922
- when 6 then
2158
+ when 9 then
1923
2159
  begin
1924
2160
 
1925
2161
  @buffers[:string] ||= []
@@ -1933,9 +2169,11 @@ begin
1933
2169
  begin
1934
2170
 
1935
2171
  # Append list argument if its value is not empty.
1936
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1937
- if list_arg_value != ''
1938
- @buffers[:list] <<= @buffers[:list_arg]
2172
+ if @buffers[:list_arg]
2173
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
2174
+ if list_arg_value != ''
2175
+ @buffers[:list] <<= @buffers[:list_arg]
2176
+ end
1939
2177
  end
1940
2178
  end
1941
2179
  begin
@@ -1969,9 +2207,11 @@ begin
1969
2207
  begin
1970
2208
 
1971
2209
  # Append list argument if its value is not empty.
1972
- list_arg_value = @buffers[:list_arg].children[0].children[0]
1973
- if list_arg_value != ''
1974
- @buffers[:list] <<= @buffers[:list_arg]
2210
+ if @buffers[:list_arg]
2211
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
2212
+ if list_arg_value != ''
2213
+ @buffers[:list] <<= @buffers[:list_arg]
2214
+ end
1975
2215
  end
1976
2216
  end
1977
2217
  begin
@@ -2002,7 +2242,7 @@ begin
2002
2242
  @buffers[:list] ||= list()
2003
2243
  yield @buffers[:list]
2004
2244
  end
2005
- when 19 then
2245
+ when 22 then
2006
2246
  begin
2007
2247
 
2008
2248
  unless @buffers[:ident].is_a?(::AST::Node)
@@ -2015,7 +2255,7 @@ begin
2015
2255
  @buffers[:ident] ||= []
2016
2256
  yield @buffers[:ident]
2017
2257
  end
2018
- when 21 then
2258
+ when 24 then
2019
2259
  begin
2020
2260
 
2021
2261
  @buffers[:string] ||= []
@@ -2026,7 +2266,7 @@ begin
2026
2266
  @buffers[:string] ||= []
2027
2267
  yield @buffers[:string]
2028
2268
  end
2029
- when 14 then
2269
+ when 16 then
2030
2270
  begin
2031
2271
 
2032
2272
  unless @buffers[:ident].is_a?(::AST::Node)
@@ -2042,9 +2282,11 @@ begin
2042
2282
  begin
2043
2283
 
2044
2284
  # Append list argument if its value is not empty.
2045
- list_arg_value = @buffers[:list_arg].children[0].children[0]
2046
- if list_arg_value != ''
2047
- @buffers[:list] <<= @buffers[:list_arg]
2285
+ if @buffers[:list_arg]
2286
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
2287
+ if list_arg_value != ''
2288
+ @buffers[:list] <<= @buffers[:list_arg]
2289
+ end
2048
2290
  end
2049
2291
  end
2050
2292
  begin
@@ -2052,7 +2294,7 @@ begin
2052
2294
  @buffers[:list] ||= list()
2053
2295
  yield @buffers[:list]
2054
2296
  end
2055
- when 6 then
2297
+ when 9 then
2056
2298
  begin
2057
2299
 
2058
2300
  @buffers[:string] ||= []
@@ -2066,9 +2308,11 @@ begin
2066
2308
  begin
2067
2309
 
2068
2310
  # Append list argument if its value is not empty.
2069
- list_arg_value = @buffers[:list_arg].children[0].children[0]
2070
- if list_arg_value != ''
2071
- @buffers[:list] <<= @buffers[:list_arg]
2311
+ if @buffers[:list_arg]
2312
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
2313
+ if list_arg_value != ''
2314
+ @buffers[:list] <<= @buffers[:list_arg]
2315
+ end
2072
2316
  end
2073
2317
  end
2074
2318
  begin
@@ -2102,9 +2346,11 @@ begin
2102
2346
  begin
2103
2347
 
2104
2348
  # Append list argument if its value is not empty.
2105
- list_arg_value = @buffers[:list_arg].children[0].children[0]
2106
- if list_arg_value != ''
2107
- @buffers[:list] <<= @buffers[:list_arg]
2349
+ if @buffers[:list_arg]
2350
+ list_arg_value = @buffers[:list_arg].children[0].children[0]
2351
+ if list_arg_value != ''
2352
+ @buffers[:list] <<= @buffers[:list_arg]
2353
+ end
2108
2354
  end
2109
2355
  end
2110
2356
  begin