@fraczak/k 2.1.6 → 3.0.2

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.
package/parser.mjs CHANGED
@@ -77,6 +77,16 @@
77
77
 
78
78
  import s from "./symbol-table.mjs";
79
79
 
80
+ function getToken(yytext,yy,lstack) {
81
+ const yylloc = yy.lexer.yylloc;
82
+ const loc = lstack[lstack.length - 1]; // { first_line: 5, last_line: 5, first_column: 2, last_column: 3 };
83
+ const start = {line: loc.first_line, column: loc.first_column + 1};
84
+ const end = {line: start.line, column: start.column + yytext.length};
85
+ const result = {start,end,value: String(yytext)};
86
+ // console.log(result);
87
+ return result;
88
+ }
89
+
80
90
  function fromEscString(escString) {
81
91
  const isSingleQuoted = escString.startsWith("'");
82
92
  let str = escString.substring(1, escString.length - 1);
@@ -100,139 +110,183 @@ function fromEscString(escString) {
100
110
 
101
111
 
102
112
  var parser = (function(){
103
- var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[4,6,8,15,18,21,23,33,35,36],$V1=[1,7],$V2=[1,16],$V3=[1,17],$V4=[1,8],$V5=[1,9],$V6=[1,10],$V7=[1,11],$V8=[1,14],$V9=[1,15],$Va=[1,22],$Vb=[1,20],$Vc=[4,6,8,12,15,18,21,23,30,33,35,36],$Vd=[2,29],$Ve=[1,27],$Vf=[1,28],$Vg=[1,29],$Vh=[4,6,8,12,14,15,18,20,21,22,23,24,27,30,33,34,35,36],$Vi=[2,49],$Vj=[2,32],$Vk=[2,33],$Vl=[4,6,8,12,14,15,18,20,21,22,23,24,27,28,30,33,34,35,36],$Vm=[2,8],$Vn=[2,13],$Vo=[20,27],$Vp=[4,6,8,15,18,21,23,30,33,35,36],$Vq=[22,24,27],$Vr=[20,24,27],$Vs=[2,43],$Vt=[2,44],$Vu=[2,45];
113
+ var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[4,6,8,10,12,14,16,30,38,40,58],$V1=[1,7],$V2=[1,22],$V3=[1,23],$V4=[1,20],$V5=[1,18],$V6=[1,19],$V7=[1,21],$V8=[1,24],$V9=[1,8],$Va=[1,25],$Vb=[1,17],$Vc=[1,28],$Vd=[4,6,8,10,12,14,16,30,38,40,44,55,58],$Ve=[2,62],$Vf=[1,32],$Vg=[4,6,8,10,12,14,16,18,20,22,24,30,32,34,38,40,44,55,58],$Vh=[2,83],$Vi=[1,52],$Vj=[2,65],$Vk=[2,66],$Vl=[4,6,8,10,12,14,16,18,20,22,24,30,32,34,36,38,40,44,55,58],$Vm=[4,6,8],$Vn=[2,24],$Vo=[2,29],$Vp=[1,76],$Vq=[1,78],$Vr=[20,32],$Vs=[4,6,8,10,12,14,16,30,38,40,55,58],$Vt=[1,83],$Vu=[1,87],$Vv=[18,22,32],$Vw=[1,90],$Vx=[2,39],$Vy=[2,45],$Vz=[1,101],$VA=[18,20,32],$VB=[2,77],$VC=[2,78],$VD=[2,79],$VE=[18,20,24,32];
104
114
  var parser = {trace: function trace () { },
105
115
  yy: {},
106
- symbols_: {"error":2,"name":3,"NAME":4,"str":5,"STRING":6,"int":7,"INT":8,"input_with_eof":9,"defs":10,"comp":11,"EOF":12,"EQ":13,"SC":14,"DOLLAR":15,"codeDef":16,"code":17,"LC":18,"labelled_codes":19,"RC":20,"LB":21,"RB":22,"LA":23,"RA":24,"non_empty_labelled_codes":25,"code_label":26,"COMMA":27,"COL":28,"exp":29,"CARET":30,"labelled":31,"list":32,"LP":33,"RP":34,"DOT":35,"PIPE":36,"non_empty_labelled":37,"comp_label":38,"non_empty_list":39,"$accept":0,"$end":1},
107
- terminals_: {2:"error",4:"NAME",6:"STRING",8:"INT",12:"EOF",13:"EQ",14:"SC",15:"DOLLAR",18:"LC",20:"RC",21:"LB",22:"RB",23:"LA",24:"RA",27:"COMMA",28:"COL",30:"CARET",33:"LP",34:"RP",35:"DOT",36:"PIPE"},
108
- productions_: [0,[3,1],[5,1],[7,1],[9,3],[10,0],[10,5],[10,6],[17,1],[17,1],[16,3],[16,3],[16,3],[19,0],[19,1],[25,1],[25,3],[26,2],[26,2],[26,2],[26,3],[26,3],[26,3],[11,1],[11,2],[11,2],[29,3],[29,3],[29,3],[29,1],[29,2],[29,3],[29,1],[29,1],[29,2],[29,2],[29,2],[29,2],[29,1],[31,0],[31,1],[37,1],[37,3],[38,2],[38,2],[38,2],[38,3],[38,3],[38,3],[32,0],[32,1],[39,1],[39,3]],
116
+ symbols_: {"error":2,"name":3,"NAME":4,"str":5,"STRING":6,"int":7,"INT":8,"la":9,"LA":10,"lc":11,"LC":12,"lb":13,"LB":14,"lp":15,"LP":16,"ra":17,"RA":18,"rc":19,"RC":20,"rb":21,"RB":22,"rp":23,"RP":24,"eq":25,"EQ":26,"dots":27,"DOTS":28,"dot":29,"DOT":30,"comma":31,"COMMA":32,"sc":33,"SC":34,"col":35,"COL":36,"dollar":37,"DOLLAR":38,"qmark":39,"QMARK":40,"input_with_eof":41,"defs":42,"comp":43,"EOF":44,"codeDef":45,"code":46,"labelled_codes":47,"non_empty_labelled_codes":48,"code_label":49,"filter":50,"labelled_filters":51,"non_empty_labelled_filters":52,"filter_label":53,"exp":54,"CARET":55,"labelled":56,"list":57,"PIPE":58,"non_empty_labelled":59,"comp_label":60,"non_empty_list":61,"$accept":0,"$end":1},
117
+ terminals_: {2:"error",4:"NAME",6:"STRING",8:"INT",10:"LA",12:"LC",14:"LB",16:"LP",18:"RA",20:"RC",22:"RB",24:"RP",26:"EQ",28:"DOTS",30:"DOT",32:"COMMA",34:"SC",36:"COL",38:"DOLLAR",40:"QMARK",44:"EOF",55:"CARET",58:"PIPE"},
118
+ productions_: [0,[3,1],[5,1],[7,1],[9,1],[11,1],[13,1],[15,1],[17,1],[19,1],[21,1],[23,1],[25,1],[27,1],[29,1],[31,1],[33,1],[35,1],[37,1],[39,1],[41,3],[42,0],[42,5],[42,6],[46,1],[46,1],[45,3],[45,3],[45,3],[47,0],[47,1],[48,1],[48,3],[49,2],[49,2],[49,2],[49,3],[49,3],[49,3],[50,1],[50,2],[50,3],[50,3],[50,3],[50,3],[51,0],[51,1],[52,1],[52,3],[53,1],[53,2],[53,2],[53,2],[53,3],[53,3],[53,3],[43,1],[43,2],[43,2],[54,3],[54,3],[54,3],[54,1],[54,2],[54,3],[54,1],[54,1],[54,2],[54,2],[54,2],[54,2],[54,2],[54,1],[56,0],[56,1],[59,1],[59,3],[60,2],[60,2],[60,2],[60,3],[60,3],[60,3],[57,0],[57,1],[61,1],[61,3]],
109
119
  performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
110
120
  /* this == yyval */
111
121
 
112
122
  var $0 = $$.length - 1;
113
123
  switch (yystate) {
114
- case 1:
115
- this.$ = String(yytext);
124
+ case 1: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19:
125
+ this.$ = getToken(yytext,yy,_$);
116
126
  break;
117
127
  case 2:
118
- this.$ = fromEscString(String(yytext));
128
+ this.$ = getToken(yytext,yy,_$); this.$.value = fromEscString(this.$.value);
119
129
  break;
120
130
  case 3:
121
- this.$ = parseInt(String(yytext));
131
+ this.$ = getToken(yytext,yy,_$); this.$.value = parseInt(this.$.value);
122
132
  break;
123
- case 4:
133
+ case 20:
124
134
 
125
135
  const result = {defs: {rels: s.rels, codes: s.codes}, exp: $$[$0-1]};
126
136
  // console.log(JSON.stringify(result, "", 2));
137
+ // process.exit(0);
127
138
  return result;
128
139
 
129
140
  break;
130
- case 5:
141
+ case 21:
131
142
 
132
143
  break;
133
- case 6:
134
- s.add_rel($$[$0-3],$$[$0-1]);
144
+ case 22:
145
+ s.add_rel($$[$0-3].value,$$[$0-1]);
135
146
  break;
136
- case 7:
137
- s.add_code($$[$0-3],$$[$0-1]);
147
+ case 23:
148
+ s.add_code($$[$0-3].value,$$[$0-1]);
138
149
  break;
139
- case 8:
140
- this.$ = {code: "ref", ref: $$[$0]};
150
+ case 24:
151
+ this.$ = { code: "ref", ref: $$[$0].value, start: $$[$0].start, end: $$[$0].end};
141
152
  break;
142
- case 9: case 23: case 40: case 50:
153
+ case 25: case 56: case 74: case 84:
143
154
  this.$ = $$[$0];
144
155
  break;
145
- case 10:
146
- this.$ = {code: "product", product: $$[$0-1]};
156
+ case 26:
157
+ this.$ = { code: "product", product: $$[$0-1], start: $$[$0-2].start, end: $$[$0].end };
147
158
  break;
148
- case 11:
149
- this.$ = {code: "vector", vector: s.as_ref($$[$0-1])};
159
+ case 27:
160
+ this.$ = { code: "vector", vector: s.as_ref($$[$0-1]), start: $$[$0-2].start, end: $$[$0].end };
150
161
  break;
151
- case 12:
152
- this.$ = {code: "union", union: $$[$0-1]};
162
+ case 28:
163
+ this.$ = { code: "union", union: $$[$0-1], start: $$[$0-2].start, end: $$[$0].end };
153
164
  break;
154
- case 13:
155
- this.$ = {}
165
+ case 29:
166
+ this.$ = {};
156
167
  break;
157
- case 14:
168
+ case 30:
158
169
  this.$ = $$[$0].reduce((r, lc) => {
159
170
  r[lc.label] = s.as_ref(lc.code);
160
171
  return r }
161
172
  , {});
162
173
  break;
163
- case 15: case 51:
174
+ case 31: case 47: case 85:
164
175
  this.$ = [$$[$0]];
165
176
  break;
166
- case 16: case 52:
177
+ case 32: case 48: case 86:
167
178
  this.$ = [].concat($$[$0-2],$$[$0]);
168
179
  break;
169
- case 17: case 18: case 19:
170
- this.$ = {label: $$[$0], code: $$[$0-1]};
180
+ case 33: case 34: case 35:
181
+ this.$ = {label: $$[$0].value, code: $$[$0-1]};
171
182
  break;
172
- case 20: case 21: case 22:
173
- this.$ = {label: $$[$0-2], code: $$[$0]};
183
+ case 36: case 37: case 38:
184
+ this.$ = {label: $$[$0-2].value, code: $$[$0]};
174
185
  break;
175
- case 24:
176
- this.$ = s.comp($$[$0-1], $$[$0]);
186
+ case 39:
187
+ this.$ = { type: "name", name: $$[$0].value, start: $$[$0].start, end: $$[$0].end};
177
188
  break;
178
- case 25:
179
- this.$ = {op: 'caret', caret: $$[$0-1]};
189
+ case 40:
190
+ this.$ = { type: "code", code: s.as_ref($$[$0]), start: $$[$0-1].start, end: $$[$0].end};
180
191
  break;
181
- case 26:
182
- this.$ = $$[$0-1];
192
+ case 41:
193
+ this.$ = { open: $$[$0-1].open, fields: $$[$0-1].fields, start: $$[$0-2].start, end: $$[$0].end};
183
194
  break;
184
- case 27:
185
- this.$ = {op: "vector", vector: $$[$0-1]};
195
+ case 42:
196
+ this.$ = { type: "union", open: $$[$0-1].open, fields: $$[$0-1].fields, start: $$[$0-2].start, end: $$[$0].end};
186
197
  break;
187
- case 28:
188
- this.$ = s.union($$[$0-1]);
198
+ case 43:
199
+ this.$ = { type: "product", open: $$[$0-1].open, fields: $$[$0-1].fields, start: $$[$0-2].start, end: $$[$0].end};
189
200
  break;
190
- case 29:
191
- this.$ = {op: "ref", ref: $$[$0]};
201
+ case 44:
202
+ this.$ = { type: "vector", vector: $$[$0-1], start: $$[$0-2].start, end: $$[$0].end };
192
203
  break;
193
- case 30:
194
- this.$ = s.identity;
204
+ case 45:
205
+ this.$ = { fields: {}};
206
+ break;
207
+ case 46:
208
+ this.$ = $$[$0].reduce((r, lc) => {
209
+ if (lc.dots) {
210
+ r.open = true;
211
+ } else {
212
+ r.fields[lc.label] = lc.filter;
213
+ }
214
+ return r }
215
+ , { fields: {} });
195
216
  break;
196
- case 31:
197
- this.$ = $$[$0-1];
217
+ case 49:
218
+ this.$ = {dots: true };
198
219
  break;
199
- case 32:
200
- this.$ = {op: "str", str: $$[$0]};
220
+ case 50: case 51: case 52:
221
+ this.$ = {label: $$[$0].value, filter: $$[$0-1]};
201
222
  break;
202
- case 33:
203
- this.$ = {op: "int", int: $$[$0]};
223
+ case 53: case 54: case 55:
224
+ this.$ = {label: $$[$0-2].value, filter: $$[$0]};
204
225
  break;
205
- case 34: case 35: case 36:
206
- this.$ = {op: "dot", dot: $$[$0]};
226
+ case 57:
227
+ this.$ = {...s.comp($$[$0-1], $$[$0]), start: $$[$0-1].start, end:$$[$0].end};
207
228
  break;
208
- case 37:
209
- this.$ = {op: "code", code: s.as_ref($$[$0])};
229
+ case 58:
230
+ this.$ = {op: 'caret', caret: $$[$0-1], start: $$[$0-1].start, end:$$[$0].end};
210
231
  break;
211
- case 38:
212
- this.$ = {op: "pipe"};
232
+ case 59:
233
+ this.$ = {...$$[$0-1], start: $$[$0-2].start, end: $$[$0].end};
213
234
  break;
214
- case 39:
235
+ case 60:
236
+ this.$ = {op: "vector", vector: $$[$0-1], start: $$[$0-2].start, end: $$[$0].end};
237
+ break;
238
+ case 61:
239
+ this.$ = {...s.union($$[$0-1]), start: $$[$0-2].start, end: $$[$0].end};
240
+ break;
241
+ case 62:
242
+ this.$ = {op: "ref", ref: $$[$0].value, start: $$[$0].start, end: $$[$0].end};
243
+ break;
244
+ case 63:
245
+ this.$ = {...s.identity, start: $$[$0-1].start, end: $$[$0].end};
246
+ break;
247
+ case 64:
248
+ this.$ = {...$$[$0-1], start: $$[$0-2].start, end: $$[$0].end };
249
+ break;
250
+ case 65:
251
+ this.$ = {op: "str", str: $$[$0].value, start: $$[$0].start, end: $$[$0].end };
252
+ break;
253
+ case 66:
254
+ this.$ = {op: "int", int: $$[$0].value, start: $$[$0].start, end: $$[$0].end };
255
+ break;
256
+ case 67: case 68: case 69:
257
+ this.$ = {op: "dot", dot: $$[$0].value, start: $$[$0-1].start, end: $$[$0].end };
258
+ break;
259
+ case 70:
260
+ this.$ = {op: "code", code: s.as_ref($$[$0]), start: $$[$0-1].start, end: $$[$0].end};
261
+ break;
262
+ case 71:
263
+ this.$ = {op: "filter", filter: $$[$0], start: $$[$0-1].start, end:$$[$0].end};
264
+ break;
265
+ case 72:
266
+ this.$ = {op: "pipe", start: $$[$0].start, end: $$[$0].end};
267
+ break;
268
+ case 73:
215
269
  this.$ = {op: "product", product: []};
216
270
  break;
217
- case 41:
271
+ case 75:
218
272
  this.$ = {op: "product", product: [$$[$0]]};
219
273
  break;
220
- case 42:
274
+ case 76:
221
275
  $$[$0-2].product = [].concat($$[$0-2].product,$$[$0]); this.$ = $$[$0-2];
222
276
  break;
223
- case 43: case 44: case 45:
224
- this.$ = {label: $$[$0], exp: $$[$0-1]};
277
+ case 77: case 78: case 79:
278
+ this.$ = {label: $$[$0].value, exp: $$[$0-1]};
225
279
  break;
226
- case 46: case 47: case 48:
227
- this.$ = {label: $$[$0-2], exp: $$[$0]};
280
+ case 80: case 81: case 82:
281
+ this.$ = {label: $$[$0-2].value, exp: $$[$0]};
228
282
  break;
229
- case 49:
283
+ case 83:
230
284
  this.$ = [];
231
285
  break;
232
286
  }
233
287
  },
234
- table: [o($V0,[2,5],{9:1,10:2}),{1:[3]},{3:4,4:$V1,5:12,6:$V2,7:13,8:$V3,11:3,15:[1,5],18:$V4,21:$V5,23:$V6,29:6,33:$V7,35:$V8,36:$V9},{3:21,4:$V1,5:12,6:$V2,7:13,8:$V3,12:[1,18],15:$Va,18:$V4,21:$V5,23:$V6,29:19,30:$Vb,33:$V7,35:$V8,36:$V9},o($Vc,$Vd,{13:[1,23]}),{3:24,4:$V1,16:26,17:25,18:$Ve,21:$Vf,23:$Vg},o($Vh,[2,23]),o([4,6,8,12,13,14,15,18,20,21,22,23,24,27,28,30,33,34,35,36],[2,1]),{3:34,4:$V1,5:35,6:$V2,7:36,8:$V3,11:33,15:$Va,18:$V4,20:[2,39],21:$V5,23:$V6,29:6,31:30,33:$V7,35:$V8,36:$V9,37:31,38:32},{3:21,4:$V1,5:12,6:$V2,7:13,8:$V3,11:39,15:$Va,18:$V4,21:$V5,22:$Vi,23:$V6,29:6,32:37,33:$V7,35:$V8,36:$V9,39:38},{3:21,4:$V1,5:12,6:$V2,7:13,8:$V3,11:39,15:$Va,18:$V4,21:$V5,23:$V6,24:$Vi,29:6,32:40,33:$V7,35:$V8,36:$V9,39:38},{3:21,4:$V1,5:12,6:$V2,7:13,8:$V3,11:42,15:$Va,18:$V4,21:$V5,23:$V6,29:6,33:$V7,34:[1,41],35:$V8,36:$V9},o($Vh,$Vj),o($Vh,$Vk),{3:45,4:$V1,5:44,6:$V2,7:43,8:$V3},o($Vh,[2,38]),o($Vl,[2,2]),o($Vl,[2,3]),{1:[2,4]},o($Vh,[2,24]),o($Vh,[2,25]),o($Vh,$Vd),{3:46,4:$V1,16:26,17:25,18:$Ve,21:$Vf,23:$Vg},{3:21,4:$V1,5:12,6:$V2,7:13,8:$V3,11:47,15:$Va,18:$V4,21:$V5,23:$V6,29:6,33:$V7,35:$V8,36:$V9},o($Vc,$Vm,{13:[1,48]}),o($Vh,[2,37]),o($Vh,[2,9]),{3:53,4:$V1,5:54,6:$V2,7:55,8:$V3,16:26,17:52,18:$Ve,19:49,20:$Vn,21:$Vf,23:$Vg,25:50,26:51},{3:46,4:$V1,16:26,17:56,18:$Ve,21:$Vf,23:$Vg},{3:53,4:$V1,5:54,6:$V2,7:55,8:$V3,16:26,17:52,18:$Ve,19:57,21:$Vf,23:$Vg,24:$Vn,25:50,26:51},{20:[1,58]},{20:[2,40],27:[1,59]},o($Vo,[2,41]),{3:60,4:$V1,5:61,6:$V2,7:62,8:$V3,15:$Va,18:$V4,21:$V5,23:$V6,29:19,30:$Vb,33:$V7,35:$V8,36:$V9},o($Vp,$Vd,{28:[1,63]}),o($Vp,$Vj,{28:[1,64]}),o($Vp,$Vk,{28:[1,65]}),{22:[1,66]},o([22,24],[2,50],{27:[1,67]}),o($Vq,[2,51],{5:12,7:13,29:19,3:21,4:$V1,6:$V2,8:$V3,15:$Va,18:$V4,21:$V5,23:$V6,30:$Vb,33:$V7,35:$V8,36:$V9}),{24:[1,68]},o($Vh,[2,30]),{3:21,4:$V1,5:12,6:$V2,7:13,8:$V3,15:$Va,18:$V4,21:$V5,23:$V6,29:19,30:$Vb,33:$V7,34:[1,69],35:$V8,36:$V9},o($Vh,[2,34]),o($Vh,[2,35]),o($Vh,[2,36]),o($Vh,$Vm),{3:21,4:$V1,5:12,6:$V2,7:13,8:$V3,14:[1,70],15:$Va,18:$V4,21:$V5,23:$V6,29:19,30:$Vb,33:$V7,35:$V8,36:$V9},{16:71,18:$Ve,21:$Vf,23:$Vg},{20:[1,72]},o([20,24],[2,14],{27:[1,73]}),o($Vr,[2,15]),{3:74,4:$V1,5:75,6:$V2,7:76,8:$V3},o([4,6,8],$Vm,{28:[1,77]}),{28:[1,78]},{28:[1,79]},{22:[1,80]},{24:[1,81]},o($Vh,[2,26]),{3:34,4:$V1,5:35,6:$V2,7:36,8:$V3,11:33,15:$Va,18:$V4,21:$V5,23:$V6,29:6,33:$V7,35:$V8,36:$V9,38:82},o($Vp,$Vd,{20:$Vs,27:$Vs}),o($Vp,$Vj,{20:$Vt,27:$Vt}),o($Vp,$Vk,{20:$Vu,27:$Vu}),{3:21,4:$V1,5:12,6:$V2,7:13,8:$V3,11:83,15:$Va,18:$V4,21:$V5,23:$V6,29:6,33:$V7,35:$V8,36:$V9},{3:21,4:$V1,5:12,6:$V2,7:13,8:$V3,11:84,15:$Va,18:$V4,21:$V5,23:$V6,29:6,33:$V7,35:$V8,36:$V9},{3:21,4:$V1,5:12,6:$V2,7:13,8:$V3,11:85,15:$Va,18:$V4,21:$V5,23:$V6,29:6,33:$V7,35:$V8,36:$V9},o($Vh,[2,27]),{3:21,4:$V1,5:12,6:$V2,7:13,8:$V3,11:86,15:$Va,18:$V4,21:$V5,23:$V6,29:6,33:$V7,35:$V8,36:$V9},o($Vh,[2,28]),o($Vh,[2,31]),o($V0,[2,6]),{14:[1,87]},o($Vh,[2,10]),{3:53,4:$V1,5:54,6:$V2,7:55,8:$V3,16:26,17:52,18:$Ve,21:$Vf,23:$Vg,26:88},o($Vr,[2,17]),o($Vr,[2,18]),o($Vr,[2,19]),{3:46,4:$V1,16:26,17:89,18:$Ve,21:$Vf,23:$Vg},{3:46,4:$V1,16:26,17:90,18:$Ve,21:$Vf,23:$Vg},{3:46,4:$V1,16:26,17:91,18:$Ve,21:$Vf,23:$Vg},o($Vh,[2,11]),o($Vh,[2,12]),o($Vo,[2,42]),o($Vo,[2,46],{5:12,7:13,29:19,3:21,4:$V1,6:$V2,8:$V3,15:$Va,18:$V4,21:$V5,23:$V6,30:$Vb,33:$V7,35:$V8,36:$V9}),o($Vo,[2,47],{5:12,7:13,29:19,3:21,4:$V1,6:$V2,8:$V3,15:$Va,18:$V4,21:$V5,23:$V6,30:$Vb,33:$V7,35:$V8,36:$V9}),o($Vo,[2,48],{5:12,7:13,29:19,3:21,4:$V1,6:$V2,8:$V3,15:$Va,18:$V4,21:$V5,23:$V6,30:$Vb,33:$V7,35:$V8,36:$V9}),o($Vq,[2,52],{5:12,7:13,29:19,3:21,4:$V1,6:$V2,8:$V3,15:$Va,18:$V4,21:$V5,23:$V6,30:$Vb,33:$V7,35:$V8,36:$V9}),o($V0,[2,7]),o($Vr,[2,16]),o($Vr,[2,20]),o($Vr,[2,21]),o($Vr,[2,22])],
235
- defaultActions: {18:[2,4]},
288
+ table: [o($V0,[2,21],{41:1,42:2}),{1:[3]},{3:4,4:$V1,5:13,6:$V2,7:14,8:$V3,9:11,10:$V4,11:9,12:$V5,13:10,14:$V6,15:12,16:$V7,29:15,30:$V8,37:5,38:$V9,39:16,40:$Va,43:3,54:6,58:$Vb},{3:29,4:$V1,5:13,6:$V2,7:14,8:$V3,9:11,10:$V4,11:9,12:$V5,13:10,14:$V6,15:12,16:$V7,29:15,30:$V8,37:30,38:$V9,39:16,40:$Va,44:[1,26],54:27,55:$Vc,58:$Vb},o($Vd,$Ve,{25:31,26:$Vf}),{3:33,4:$V1,9:38,10:$V4,11:36,12:$V5,13:37,14:$V6,45:35,46:34},o($Vg,[2,56]),o([4,6,8,10,12,14,16,18,20,22,24,26,30,32,34,36,38,40,44,55,58],[2,1]),o([4,10,12,14],[2,18]),{3:43,4:$V1,5:44,6:$V2,7:45,8:$V3,9:11,10:$V4,11:9,12:$V5,13:10,14:$V6,15:12,16:$V7,20:[2,73],29:15,30:$V8,37:30,38:$V9,39:16,40:$Va,43:42,54:6,56:39,58:$Vb,59:40,60:41},{3:29,4:$V1,5:13,6:$V2,7:14,8:$V3,9:11,10:$V4,11:9,12:$V5,13:10,14:$V6,15:12,16:$V7,22:$Vh,29:15,30:$V8,37:30,38:$V9,39:16,40:$Va,43:48,54:6,57:46,58:$Vb,61:47},{3:29,4:$V1,5:13,6:$V2,7:14,8:$V3,9:11,10:$V4,11:9,12:$V5,13:10,14:$V6,15:12,16:$V7,18:$Vh,29:15,30:$V8,37:30,38:$V9,39:16,40:$Va,43:48,54:6,57:49,58:$Vb,61:47},{3:29,4:$V1,5:13,6:$V2,7:14,8:$V3,9:11,10:$V4,11:9,12:$V5,13:10,14:$V6,15:12,16:$V7,23:50,24:$Vi,29:15,30:$V8,37:30,38:$V9,39:16,40:$Va,43:51,54:6,58:$Vb},o($Vg,$Vj),o($Vg,$Vk),{3:55,4:$V1,5:54,6:$V2,7:53,8:$V3},{3:57,4:$V1,9:60,10:$V4,11:61,12:$V5,13:62,14:$V6,15:59,16:$V7,37:58,38:$V9,50:56},o($Vg,[2,72]),o([4,6,8,10,12,14,16,20,28,30,38,40,58],[2,5]),o([4,6,8,10,12,14,16,22,30,38,40,58],[2,6]),o([4,6,8,10,12,14,16,18,28,30,38,40,58],[2,4]),o([4,6,8,10,12,14,16,24,28,30,38,40,58],[2,7]),o($Vl,[2,2]),o($Vl,[2,3]),o($Vm,[2,14]),o([4,10,12,14,16,38],[2,19]),{1:[2,20]},o($Vg,[2,57]),o($Vg,[2,58]),o($Vg,$Ve),{3:63,4:$V1,9:38,10:$V4,11:36,12:$V5,13:37,14:$V6,45:35,46:34},{3:29,4:$V1,5:13,6:$V2,7:14,8:$V3,9:11,10:$V4,11:9,12:$V5,13:10,14:$V6,15:12,16:$V7,29:15,30:$V8,37:30,38:$V9,39:16,40:$Va,43:64,54:6,58:$Vb},o($V0,[2,12]),o($Vd,$Vn,{25:65,26:$Vf}),o($Vg,[2,70]),o($Vg,[2,25]),{3:70,4:$V1,5:71,6:$V2,7:72,8:$V3,9:38,10:$V4,11:36,12:$V5,13:37,14:$V6,20:$Vo,45:35,46:69,47:66,48:67,49:68},{3:63,4:$V1,9:38,10:$V4,11:36,12:$V5,13:37,14:$V6,45:35,46:73},{3:70,4:$V1,5:71,6:$V2,7:72,8:$V3,9:38,10:$V4,11:36,12:$V5,13:37,14:$V6,18:$Vo,45:35,46:69,47:74,48:67,49:68},{19:75,20:$Vp},{20:[2,74],31:77,32:$Vq},o($Vr,[2,75]),{3:79,4:$V1,5:80,6:$V2,7:81,8:$V3,9:11,10:$V4,11:9,12:$V5,13:10,14:$V6,15:12,16:$V7,29:15,30:$V8,37:30,38:$V9,39:16,40:$Va,54:27,55:$Vc,58:$Vb},o($Vs,$Ve,{35:82,36:$Vt}),o($Vs,$Vj,{35:84,36:$Vt}),o($Vs,$Vk,{35:85,36:$Vt}),{21:86,22:$Vu},o([18,22],[2,84],{31:88,32:$Vq}),o($Vv,[2,85],{11:9,13:10,9:11,15:12,5:13,7:14,29:15,39:16,54:27,3:29,37:30,4:$V1,6:$V2,8:$V3,10:$V4,12:$V5,14:$V6,16:$V7,30:$V8,38:$V9,40:$Va,55:$Vc,58:$Vb}),{17:89,18:$Vw},o($Vg,[2,63]),{3:29,4:$V1,5:13,6:$V2,7:14,8:$V3,9:11,10:$V4,11:9,12:$V5,13:10,14:$V6,15:12,16:$V7,23:91,24:$Vi,29:15,30:$V8,37:30,38:$V9,39:16,40:$Va,54:27,55:$Vc,58:$Vb},o($Vg,[2,11]),o($Vg,[2,67]),o($Vg,[2,68]),o($Vg,[2,69]),o($Vg,[2,71]),o($Vg,$Vx),{3:63,4:$V1,9:38,10:$V4,11:36,12:$V5,13:37,14:$V6,45:35,46:92},{3:98,4:$V1,5:99,6:$V2,7:100,8:$V3,9:60,10:$V4,11:61,12:$V5,13:62,14:$V6,15:59,16:$V7,24:$Vy,27:96,28:$Vz,37:58,38:$V9,50:97,51:93,52:94,53:95},{3:98,4:$V1,5:99,6:$V2,7:100,8:$V3,9:60,10:$V4,11:61,12:$V5,13:62,14:$V6,15:59,16:$V7,18:$Vy,27:96,28:$Vz,37:58,38:$V9,50:97,51:102,52:94,53:95},{3:98,4:$V1,5:99,6:$V2,7:100,8:$V3,9:60,10:$V4,11:61,12:$V5,13:62,14:$V6,15:59,16:$V7,20:$Vy,27:96,28:$Vz,37:58,38:$V9,50:97,51:103,52:94,53:95},{3:57,4:$V1,9:60,10:$V4,11:61,12:$V5,13:62,14:$V6,15:59,16:$V7,37:58,38:$V9,50:104},o($Vg,$Vn),{3:29,4:$V1,5:13,6:$V2,7:14,8:$V3,9:11,10:$V4,11:9,12:$V5,13:10,14:$V6,15:12,16:$V7,29:15,30:$V8,33:105,34:[1,106],37:30,38:$V9,39:16,40:$Va,54:27,55:$Vc,58:$Vb},{9:38,10:$V4,11:36,12:$V5,13:37,14:$V6,45:107},{19:108,20:$Vp},o([18,20],[2,30],{31:109,32:$Vq}),o($VA,[2,31]),{3:110,4:$V1,5:111,6:$V2,7:112,8:$V3},o($Vm,$Vn,{35:113,36:$Vt}),{35:114,36:$Vt},{35:115,36:$Vt},{21:116,22:$Vu},{17:117,18:$Vw},o($Vg,[2,59]),o($Vg,[2,9]),{3:43,4:$V1,5:44,6:$V2,7:45,8:$V3,9:11,10:$V4,11:9,12:$V5,13:10,14:$V6,15:12,16:$V7,29:15,30:$V8,37:30,38:$V9,39:16,40:$Va,43:42,54:6,58:$Vb,60:118},o([4,6,8,10,12,14,16,28,30,38,40,58],[2,15]),o($Vs,$Ve,{20:$VB,32:$VB}),o($Vs,$Vj,{20:$VC,32:$VC}),o($Vs,$Vk,{20:$VD,32:$VD}),{3:29,4:$V1,5:13,6:$V2,7:14,8:$V3,9:11,10:$V4,11:9,12:$V5,13:10,14:$V6,15:12,16:$V7,29:15,30:$V8,37:30,38:$V9,39:16,40:$Va,43:119,54:6,58:$Vb},o($V0,[2,17]),{3:29,4:$V1,5:13,6:$V2,7:14,8:$V3,9:11,10:$V4,11:9,12:$V5,13:10,14:$V6,15:12,16:$V7,29:15,30:$V8,37:30,38:$V9,39:16,40:$Va,43:120,54:6,58:$Vb},{3:29,4:$V1,5:13,6:$V2,7:14,8:$V3,9:11,10:$V4,11:9,12:$V5,13:10,14:$V6,15:12,16:$V7,29:15,30:$V8,37:30,38:$V9,39:16,40:$Va,43:121,54:6,58:$Vb},o($Vg,[2,60]),o($Vg,[2,10]),{3:29,4:$V1,5:13,6:$V2,7:14,8:$V3,9:11,10:$V4,11:9,12:$V5,13:10,14:$V6,15:12,16:$V7,29:15,30:$V8,37:30,38:$V9,39:16,40:$Va,43:122,54:6,58:$Vb},o($Vg,[2,61]),o($Vg,[2,8]),o($Vg,[2,64]),o($Vg,[2,40]),{23:123,24:$Vi},o([18,20,24],[2,46],{31:124,32:$Vq}),o($VE,[2,47]),o($VE,[2,49]),{3:125,4:$V1,5:126,6:$V2,7:127,8:$V3},o($Vm,$Vx,{35:128,36:$Vt}),{35:129,36:$Vt},{35:130,36:$Vt},o($VE,[2,13]),{17:131,18:$Vw},{19:132,20:$Vp},{21:133,22:$Vu},o($V0,[2,22]),o($V0,[2,16]),{34:[1,134]},o($Vg,[2,26]),{3:70,4:$V1,5:71,6:$V2,7:72,8:$V3,9:38,10:$V4,11:36,12:$V5,13:37,14:$V6,45:35,46:69,49:135},o($VA,[2,33]),o($VA,[2,34]),o($VA,[2,35]),{3:63,4:$V1,9:38,10:$V4,11:36,12:$V5,13:37,14:$V6,45:35,46:136},{3:63,4:$V1,9:38,10:$V4,11:36,12:$V5,13:37,14:$V6,45:35,46:137},{3:63,4:$V1,9:38,10:$V4,11:36,12:$V5,13:37,14:$V6,45:35,46:138},o($Vg,[2,27]),o($Vg,[2,28]),o($Vr,[2,76]),o($Vr,[2,80],{11:9,13:10,9:11,15:12,5:13,7:14,29:15,39:16,54:27,3:29,37:30,4:$V1,6:$V2,8:$V3,10:$V4,12:$V5,14:$V6,16:$V7,30:$V8,38:$V9,40:$Va,55:$Vc,58:$Vb}),o($Vr,[2,81],{11:9,13:10,9:11,15:12,5:13,7:14,29:15,39:16,54:27,3:29,37:30,4:$V1,6:$V2,8:$V3,10:$V4,12:$V5,14:$V6,16:$V7,30:$V8,38:$V9,40:$Va,55:$Vc,58:$Vb}),o($Vr,[2,82],{11:9,13:10,9:11,15:12,5:13,7:14,29:15,39:16,54:27,3:29,37:30,4:$V1,6:$V2,8:$V3,10:$V4,12:$V5,14:$V6,16:$V7,30:$V8,38:$V9,40:$Va,55:$Vc,58:$Vb}),o($Vv,[2,86],{11:9,13:10,9:11,15:12,5:13,7:14,29:15,39:16,54:27,3:29,37:30,4:$V1,6:$V2,8:$V3,10:$V4,12:$V5,14:$V6,16:$V7,30:$V8,38:$V9,40:$Va,55:$Vc,58:$Vb}),o($Vg,[2,41]),{3:98,4:$V1,5:99,6:$V2,7:100,8:$V3,9:60,10:$V4,11:61,12:$V5,13:62,14:$V6,15:59,16:$V7,27:96,28:$Vz,37:58,38:$V9,50:97,53:139},o($VE,[2,50]),o($VE,[2,51]),o($VE,[2,52]),{3:57,4:$V1,9:60,10:$V4,11:61,12:$V5,13:62,14:$V6,15:59,16:$V7,37:58,38:$V9,50:140},{3:57,4:$V1,9:60,10:$V4,11:61,12:$V5,13:62,14:$V6,15:59,16:$V7,37:58,38:$V9,50:141},{3:57,4:$V1,9:60,10:$V4,11:61,12:$V5,13:62,14:$V6,15:59,16:$V7,37:58,38:$V9,50:142},o($Vg,[2,42]),o($Vg,[2,43]),o($Vg,[2,44]),o($V0,[2,23]),o($VA,[2,32]),o($VA,[2,36]),o($VA,[2,37]),o($VA,[2,38]),o($VE,[2,48]),o($VE,[2,53]),o($VE,[2,54]),o($VE,[2,55])],
289
+ defaultActions: {26:[2,20]},
236
290
  parseError: function parseError (str, hash) {
237
291
  if (hash.recoverable) {
238
292
  this.trace(str);
@@ -712,50 +766,54 @@ case 1:/* one line comment */
712
766
  break;
713
767
  case 2:/* blanks */
714
768
  break;
715
- case 3:return 23;
769
+ case 3:return 10;
716
770
  break;
717
- case 4:return 18;
771
+ case 4:return 12;
718
772
  break;
719
- case 5:return 21;
773
+ case 5:return 14;
720
774
  break;
721
- case 6:return 33;
775
+ case 6:return 16;
722
776
  break;
723
- case 7:return 24;
777
+ case 7:return 18;
724
778
  break;
725
779
  case 8:return 20;
726
780
  break;
727
781
  case 9:return 22;
728
782
  break;
729
- case 10:return 34;
783
+ case 10:return 24;
784
+ break;
785
+ case 11:return 26;
786
+ break;
787
+ case 12:return 28;
730
788
  break;
731
- case 11:return 13;
789
+ case 13:return 30;
732
790
  break;
733
- case 12:return 35;
791
+ case 14:return 32;
734
792
  break;
735
- case 13:return 27;
793
+ case 15:return 34;
736
794
  break;
737
- case 14:return 14;
795
+ case 16:return 36;
738
796
  break;
739
- case 15:return 28;
797
+ case 17:return 38;
740
798
  break;
741
- case 16:return 15;
799
+ case 18:return 40;
742
800
  break;
743
- case 17:return 36;
801
+ case 19:return 58;
744
802
  break;
745
- case 18:return 30;
803
+ case 20:return 55;
746
804
  break;
747
- case 19:return 6;
805
+ case 21:return 6;
748
806
  break;
749
- case 20:return 4;
807
+ case 22:return 4;
750
808
  break;
751
- case 21:return 8;
809
+ case 23:return 8;
752
810
  break;
753
- case 22:return 12;
811
+ case 24:return 44;
754
812
  break;
755
813
  }
756
814
  },
757
- rules: [/^(?:[/][*]([*][^/]|[^*])*[*][/])/,/^(?:(\/\/|#|%|--)[^\n]*)/,/^(?:\s+)/,/^(?:<)/,/^(?:\{)/,/^(?:\[)/,/^(?:\()/,/^(?:>)/,/^(?:\})/,/^(?:\])/,/^(?:\))/,/^(?:=)/,/^(?:\.)/,/^(?:,)/,/^(?:;)/,/^(?::)/,/^(?:\$)/,/^(?:\|)/,/^(?:\^)/,/^(?:"([^"\\]|\\(.|\n))*"|'([^'\\]|\\(.|\n))*')/,/^(?:[a-zA-Z_][a-zA-Z0-9_?!]*)/,/^(?:0|[-]?[1-9][0-9]*)/,/^(?:$)/],
758
- conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22],"inclusive":true}}
815
+ rules: [/^(?:[/][*]([*][^/]|[^*])*[*][/])/,/^(?:(\/\/|#|%|--)[^\n]*)/,/^(?:\s+)/,/^(?:<)/,/^(?:\{)/,/^(?:\[)/,/^(?:\()/,/^(?:>)/,/^(?:\})/,/^(?:\])/,/^(?:\))/,/^(?:=)/,/^(?:\.\.\.)/,/^(?:\.)/,/^(?:,)/,/^(?:;)/,/^(?::)/,/^(?:\$)/,/^(?:\?)/,/^(?:\|)/,/^(?:\^)/,/^(?:"([^"\\]|\\(.|\n))*"|'([^'\\]|\\(.|\n))*')/,/^(?:[a-zA-Z_][a-zA-Z0-9_?!]*)/,/^(?:0|[-]?[1-9][0-9]*)/,/^(?:$)/],
816
+ conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24],"inclusive":true}}
759
817
  });
760
818
  return lexer;
761
819
  })();