@fraczak/k 3.1.0 → 4.0.1
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/BIG_PICTURE.md +37 -28
- package/Code-derivation-tests/vector.mjs +0 -3
- package/Filters/bug.k +3 -0
- package/Filters/composing.k +15 -0
- package/Filters/filter.k +9 -0
- package/README.md +19 -16
- package/TYPING.md +8 -11
- package/codes.mjs +2 -2
- package/index.mjs +5 -4
- package/k.mjs +1 -2
- package/package.json +1 -1
- package/parser.jison +8 -4
- package/parser.mjs +44 -41
- package/patterns.mjs +73 -14
- package/pretty.mjs +100 -23
- package/repl.mjs +152 -109
- package/run.mjs +7 -12
- package/symbol-table.mjs +1 -1
- package/typing.mjs +173 -12
- package/INTRO.md +0 -88
- package/aaa.txt +0 -203033
- package/bug.json +0 -419
- package/chatGPT.md +0 -235
- package/chatGPT.md~ +0 -119
- package/code-resolution.md +0 -121
- package/code-resolution.mjs +0 -51
- package/filters.mjs +0 -59
package/BIG_PICTURE.md
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# Big Picture
|
|
1
2
|
|
|
2
3
|
`Kernel-code` is an experiment aiming to define a "perfect programming language".
|
|
3
4
|
|
|
@@ -22,7 +23,7 @@ Types are defined by two constructs:
|
|
|
22
23
|
1. Product
|
|
23
24
|
2. Union (also called tagged or disjoint union)
|
|
24
25
|
|
|
25
|
-
Given a
|
|
26
|
+
Given a finite (possibly empty) set of types `t1, t2, ..., tn` and a set of pairwise different tags (labels) `l1, l2, ..., ln`,
|
|
26
27
|
|
|
27
28
|
- by `{ t1 l1, t2 l2, ..., tn ln }`, we define a _product type_ with exactly `n` projection functions `.l1`, `.l2`, `...`, `.ln`,
|
|
28
29
|
mapping a value of type `{t1 l1, t2 l2, ..., tn ln}` into a value of type `t1`, `t2`, `...`, `tn`, respectively.
|
|
@@ -42,7 +43,6 @@ Some properties of these types:
|
|
|
42
43
|
as a union type value (a variant).
|
|
43
44
|
2. The empty product type `{}` has a single value, called the _unit_ and also denoted by `{}`, which has no fields.
|
|
44
45
|
3. The empty union type `<>` has no values.
|
|
45
|
-
4. The product and union types form dual categories.
|
|
46
46
|
|
|
47
47
|
### Partial functions
|
|
48
48
|
|
|
@@ -64,7 +64,7 @@ empty composition, `()`, defines the identity function.
|
|
|
64
64
|
|
|
65
65
|
### Program
|
|
66
66
|
|
|
67
|
-
A `kernel-core` program is a set of definitions of types and partial functions followed by an _expression_,
|
|
67
|
+
A `kernel-core` program is a set of definitions of types and partial functions, followed by an _expression_,
|
|
68
68
|
which is the partial function the program defines.
|
|
69
69
|
|
|
70
70
|
The language syntax is defined by:
|
|
@@ -97,7 +97,7 @@ The `typing` expression acts as a type annotation and can be seen as a 'filter',
|
|
|
97
97
|
function defined only for the values of the corresponding type.
|
|
98
98
|
|
|
99
99
|
That's it.
|
|
100
|
-
No `
|
|
100
|
+
No `builtin` types, no `if` statement, no `loop`, no `throw`, no _closure_, no _annotations_, and no macros.
|
|
101
101
|
Just types and partial functions.
|
|
102
102
|
|
|
103
103
|
### Normalization
|
|
@@ -170,50 +170,59 @@ Functions `bit0`, `bit1`, and `zero` are "constant polymorphic functions", meani
|
|
|
170
170
|
|
|
171
171
|
- constant: if defined, they always return exactly the same value;
|
|
172
172
|
- polymorphic: they are defined for more than one pair of input and output type: functions
|
|
173
|
-
`bit0` and `bit1` are of type
|
|
174
|
-
denotes an unconstrained type pattern
|
|
173
|
+
`bit0` and `bit1` are of type `?X -> $bit`, and `zero` is of type `?X -> $byte`, where `?X`
|
|
174
|
+
denotes an unconstrained type pattern, also denoted as `?(...)`.
|
|
175
175
|
|
|
176
176
|
Functions `inc` and `inc3` are (non-polymorphic) functions of types
|
|
177
|
-
|
|
178
|
-
|
|
177
|
+
`$byte -> ${ bit overflown, byte byte }` and
|
|
178
|
+
`${ bit overflown, byte byte } -> ${ bit overflown, byte byte }`, respectively.
|
|
179
179
|
|
|
180
|
-
Function `inc_o` is a polymorphic function of type patterns:
|
|
181
|
-
following constraints:
|
|
180
|
+
Function `inc_o` is a polymorphic function of type patterns: `?X -> ${ byte byte, bit overflown }`
|
|
181
|
+
with following constraints:
|
|
182
182
|
|
|
183
|
-
-
|
|
184
|
-
> `?
|
|
185
|
-
-
|
|
183
|
+
- `?X` is a product or union type with at least two fields: `byte` and `overflown`, denoted by:
|
|
184
|
+
> `?( $byte byte, Z overflown, ...)`;
|
|
185
|
+
- `?Z` is a type (union or product) with field `i` denoted by:
|
|
186
186
|
> `?( V i, ...)`;
|
|
187
|
-
- `V` is unconstrained
|
|
188
|
-
- `Y` is a product type with exactly two fields: `byte` and `overflown`, denoted by:
|
|
189
|
-
> `?{ byte byte, bit overflown }`;
|
|
187
|
+
- `V` is unconstrained, denoted by `(...)`;
|
|
190
188
|
|
|
191
|
-
|
|
192
|
-
whereas the other type patterns are not.
|
|
189
|
+
We could write it as: `?($byte byte, ((...) i, ...) overflown, ...)`.
|
|
193
190
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
This is work in progress.
|
|
191
|
+
The target type `${ byte byte, bit overflown }` was derived from pattern `?{ $byte byte, $bit overflown }`.
|
|
192
|
+
Such a pettern is called _singleton pattern_ as only one type fits the pattern.
|
|
197
193
|
|
|
198
194
|
## Universal Schema Registry
|
|
199
195
|
|
|
200
|
-
Since the normalization process for types is fast and deterministic, we can build a universal
|
|
201
|
-
|
|
196
|
+
Since the normalization process for types is fast and deterministic, we can build a universal
|
|
197
|
+
schema registry that will store all invented types.
|
|
198
|
+
The registry will be a key-value store, where the key is the hash of the normalized type,
|
|
199
|
+
and the value is the normalized type itself.
|
|
202
200
|
|
|
203
|
-
All functions (non-polymorphic and polymorphic) will be renamed by the hash of their normalized
|
|
201
|
+
All functions (non-polymorphic and polymorphic) will be renamed by the hash of their normalized
|
|
202
|
+
definition and stored in the similar key-value store.
|
|
204
203
|
|
|
205
|
-
Non-polymorphic functions can be easily indexed by the hashes of their input and output types
|
|
206
|
-
|
|
204
|
+
Non-polymorphic functions can be easily indexed by the hashes of their input and output types
|
|
205
|
+
so that we can quickly find the function we need.
|
|
206
|
+
Searching for polymorphic functions is more complicated, as we need to find the function
|
|
207
|
+
whose input and output type patterns fit given types.
|
|
207
208
|
|
|
208
209
|
## Serialization and Compilation
|
|
209
210
|
|
|
210
|
-
The language is designed to transform _codes_, i.e., serialized typed values, i.e., trees
|
|
211
|
+
The language is designed to transform _codes_, i.e., serialized typed values, i.e., trees
|
|
212
|
+
accepted by a tree automaton, into other _codes_.
|
|
211
213
|
The transformation is done by partial functions as defined in the language.
|
|
212
|
-
The non-recursive and tail-recursive (and even some non-tail recursive) functions can
|
|
214
|
+
The non-recursive and tail-recursive (and even some non-tail recursive) functions can
|
|
215
|
+
be compiled into deterministic finite (pushdown) transducers.
|
|
213
216
|
|
|
214
217
|
### AND-OR graphs for enconding and decoding codes
|
|
215
218
|
|
|
219
|
+
This could be generic and compact way to encode and decode typed values.
|
|
220
|
+
The idea is to use _prefix codes_ (a class of languages such that no word is a prefix of
|
|
221
|
+
another word) to encode the values.
|
|
216
222
|
|
|
223
|
+
### RUST data structures
|
|
224
|
+
|
|
225
|
+
A type can be translated into a Rust data structure, and a function can be translated into a Rust function.
|
|
217
226
|
|
|
218
227
|
## Linking with Other Languages
|
|
219
228
|
|
package/Filters/bug.k
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
remap = ?T {.x y} ?T ?<X z, ...>;
|
|
2
|
+
swap = ?T {.x y, .y x} ?T;
|
|
3
|
+
|
|
4
|
+
$t = <int x, int y>;
|
|
5
|
+
|
|
6
|
+
$t2 = <int x, int y, int z>;
|
|
7
|
+
|
|
8
|
+
-- {12 x} $t remap $t
|
|
9
|
+
-- {[1,2] x} remap
|
|
10
|
+
-- {"ala" x, 3 y} swap
|
|
11
|
+
|
|
12
|
+
{
|
|
13
|
+
{12 x} $t2 remap $t2 remap,
|
|
14
|
+
{"ala" x, "ola" y} swap
|
|
15
|
+
}
|
package/Filters/filter.k
ADDED
package/README.md
CHANGED
|
@@ -87,7 +87,7 @@ supported.
|
|
|
87
87
|
|
|
88
88
|
### Basic extensions
|
|
89
89
|
|
|
90
|
-
#### Constants, i.e., literals for `
|
|
90
|
+
#### Constants, i.e., literals for `string`, `int`, `bool`, and `null`
|
|
91
91
|
|
|
92
92
|
A constant defines a function which ignores its argument and produces
|
|
93
93
|
the constant value. E.g.:
|
|
@@ -95,7 +95,7 @@ the constant value. E.g.:
|
|
|
95
95
|
{123 int, "kScript" str, true bool, null null} :
|
|
96
96
|
"any" --> {"int":123,"str":"kScript","bool":true,"null":null}
|
|
97
97
|
|
|
98
|
-
Those values, i.e.,
|
|
98
|
+
Those values, i.e., _strings_, _integers_, _booleans_, and _null_, admit the
|
|
99
99
|
projection to the canonicat string representation of the value, e.g.:
|
|
100
100
|
|
|
101
101
|
.2 :
|
|
@@ -176,19 +176,19 @@ is not supported in _code derivation_ (explained below).
|
|
|
176
176
|
"2.12" --> 2.12
|
|
177
177
|
"[1,2.11,0.3e-32]" --> [1,2.11,3e-33]
|
|
178
178
|
|
|
179
|
-
|
|
180
179
|
- other predefined parial functions are: `DIV`, `FDIV`, `CONS`,
|
|
181
|
-
`SNOC`, `toDateMsec`, `toDateStr`, and `_log!`.
|
|
180
|
+
`SNOC`, `toVEC`, `toDateMsec`, `toDateStr`, and `_log!`.
|
|
182
181
|
|
|
183
182
|
---
|
|
184
183
|
|
|
185
184
|
### Function and code (i.e., _type_) definitions
|
|
186
185
|
|
|
187
186
|
dec = [(),-1] PLUS;
|
|
188
|
-
max = <SNOC [.
|
|
187
|
+
max = <SNOC [.car, .cdr max] <GT.0, .1>, .0> ;
|
|
189
188
|
factorial = < [(),0] GT .0 [dec factorial, ()] TIMES, 1 >;
|
|
190
189
|
|
|
191
|
-
### Codes (schemas, i.e.,
|
|
190
|
+
### Codes (schemas, i.e., _types_)
|
|
191
|
+
|
|
192
192
|
_Codes_ (prefixed by `$`) can be defined by tagged union and product. E.g.:
|
|
193
193
|
|
|
194
194
|
|
|
@@ -256,12 +256,15 @@ fail, indicating that the script is invalid. In some other cases the
|
|
|
256
256
|
code derivation can succeed even to the point of reducig every pattern
|
|
257
257
|
to a single code making the program fully annotated by codes.
|
|
258
258
|
|
|
259
|
-
|
|
260
|
-
|
|
259
|
+
The language `k` supports _type patterns_, which is used for type inference, however the patterns are not concidered in the evaluation of the program.
|
|
260
|
+
|
|
261
|
+
```k
|
|
262
|
+
tree_pattern = ?<(...) leaf, {T left, T right} tree> = T;
|
|
263
|
+
```
|
|
261
264
|
|
|
262
265
|
---
|
|
263
266
|
|
|
264
|
-
### List comprehension
|
|
267
|
+
### List comprehension
|
|
265
268
|
|
|
266
269
|
A vector can be "open" by PIPE (`|`) operator so the following partial function is applied to
|
|
267
270
|
each element of the vector one by one, yielding another open value. An open value can be "closed",
|
|
@@ -355,11 +358,11 @@ times value `x` appears in the list. (see `Examples/list-comprehension.k` for a
|
|
|
355
358
|
Another example could be finding the biggest (max) value in a vector:
|
|
356
359
|
|
|
357
360
|
max = <
|
|
358
|
-
SNOC
|
|
359
|
-
[.
|
|
360
|
-
<GT .0, .1>
|
|
361
|
-
,
|
|
362
|
-
.0
|
|
361
|
+
SNOC # [x0, x1, x2, ...] --> {x0 car, [x1, x2, ...] cdr}
|
|
362
|
+
[.car, .cdr max] # [x0, [x1, x2, ...]] --> [x0, max(x1,x2,...)], i.e., recursive call
|
|
363
|
+
<GT .0, .1> # if x0 > max(x1,x2,...) then x0 else max(x1,x2,...)
|
|
364
|
+
, # when SNOC is not defined, i.e., if the input vector has one element:
|
|
365
|
+
.0 # [x0] --> x0
|
|
363
366
|
>;
|
|
364
367
|
max
|
|
365
368
|
|
|
@@ -468,10 +471,10 @@ For example:
|
|
|
468
471
|
|
|
469
472
|
1.
|
|
470
473
|
curl 'https://api.github.com/repositories/5101141/commits?per_page=5' | jq '.'
|
|
471
|
-
curl 'https://api.github.com/repositories/5101141/commits?per_page=5' | k
|
|
474
|
+
curl 'https://api.github.com/repositories/5101141/commits?per_page=5' | k '()' -1
|
|
472
475
|
2.
|
|
473
476
|
curl 'https://api.github.com/repositories/5101141/commits?per_page=5' | jq '.[0]'
|
|
474
|
-
curl 'https://api.github.com/repositories/5101141/commits?per_page=5' | k
|
|
477
|
+
curl 'https://api.github.com/repositories/5101141/commits?per_page=5' | k '.0' -1
|
|
475
478
|
3.
|
|
476
479
|
jq '.[0] | {message: .commit.message, name: .commit.committer.name}'
|
|
477
480
|
k '.0 {.commit.message message, .commit.committer.name name}' -1
|
package/TYPING.md
CHANGED
|
@@ -334,9 +334,9 @@ The binary reduce function is defined as follows (it is commutative):
|
|
|
334
334
|
|
|
335
335
|
| f-unify | (...) | {...} | <...> | () | [] | {} | <> | type
|
|
336
336
|
|----------|-------|-------|-------|------|------|------|------|------
|
|
337
|
-
|**type** | type | type | type | type | type | type | type
|
|
338
|
-
|**<>** | <> | ERROR | <> |
|
|
339
|
-
|**{}** | {} | {} | ERROR | {} |
|
|
337
|
+
|**type** | type | type | type | type | type | type | type
|
|
338
|
+
|**<>** | <> | ERROR | <> | <> | ERROR| ERROR| <>
|
|
339
|
+
|**{}** | {} | {} | ERROR | {} | ERROR| {}
|
|
340
340
|
|**[]** | [] | [] | ERROR | [] | []
|
|
341
341
|
|**()** | () | {} | <> | ()
|
|
342
342
|
|**<...>** | <...> | ERROR | <...>
|
|
@@ -353,16 +353,13 @@ A comment explaining how the node was created is added as well.
|
|
|
353
353
|
|
|
354
354
|
As the name indicates, adds an edge which can lead to many nodes.
|
|
355
355
|
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
356
|
Repeat the procedure until the type pattern graph is not changing anymore.
|
|
360
357
|
|
|
361
|
-
|
|
358
|
+
## TODO:
|
|
362
359
|
|
|
363
360
|
- [X] Redefine built-in CONS and SNOC to allign with no support for non-homogeneous lists
|
|
364
|
-
- [
|
|
365
|
-
- [
|
|
361
|
+
- [X] Integrate filters into typePatters (execution is not affected)
|
|
362
|
+
- [/] better type error repporting - the info exists in the pattern parent tree ... in progress
|
|
363
|
+
- [ ] Introduce a space/time bounds for type derivation
|
|
364
|
+
- [ ] Check for loops, e.g., `$x = < x f, ...>`, `$x = [x]`, `$x = {x f, ...}` -- this
|
|
366
365
|
looks a little arbitrary, but maybe this is actually an important part
|
|
367
|
-
- [ ] Integrate filters into typePatters (executions?)
|
|
368
|
-
- [ ] better error repporting - the info exists in the pattern parent tree
|
package/codes.mjs
CHANGED
|
@@ -202,8 +202,8 @@ function register(newCodes) {
|
|
|
202
202
|
|
|
203
203
|
function find(codeName) {
|
|
204
204
|
if (isBuiltIn(codeName))
|
|
205
|
-
return {code: codeName, def: "
|
|
206
|
-
return JSON.parse(JSON.stringify(theRepository.codes[codeName]));
|
|
205
|
+
return {code: codeName, def: "builtin"};
|
|
206
|
+
return JSON.parse(JSON.stringify(theRepository.codes[codeName] || {code: "undefined"}));
|
|
207
207
|
};
|
|
208
208
|
|
|
209
209
|
export default { minimize, normalize, normalizeAll, encodeCodeToString, finalize, unitCode, register, find };
|
package/index.mjs
CHANGED
|
@@ -7,7 +7,7 @@ function compile(script) {
|
|
|
7
7
|
try {
|
|
8
8
|
run.defs = annotate(script);
|
|
9
9
|
} catch (e) {
|
|
10
|
-
console.error(e);
|
|
10
|
+
console.error(e.message);
|
|
11
11
|
console.error("WARN: Recompiling without type reconciliation due to the type error above.");
|
|
12
12
|
const { defs, exp } = parse(script);
|
|
13
13
|
const { codes, representatives } = t.finalize(defs.codes);
|
|
@@ -30,13 +30,14 @@ runScriptOnData.doc = "Run 'script' (string) on 'data': (script,data) -> data";
|
|
|
30
30
|
|
|
31
31
|
function annotate(script) {
|
|
32
32
|
const { defs, exp } = parse(script);
|
|
33
|
-
const { codes, representatives } = t.finalize(defs.codes);
|
|
33
|
+
//const { codes, representatives } = t.finalize(defs.codes);
|
|
34
34
|
|
|
35
|
+
const representatives = t.register(defs.codes);
|
|
35
36
|
const rels = {...defs.rels, "__main__": {def: exp}};
|
|
36
37
|
|
|
37
|
-
|
|
38
|
+
patterns(representatives, rels);
|
|
38
39
|
|
|
39
|
-
return {rels,
|
|
40
|
+
return {rels, representatives}
|
|
40
41
|
}
|
|
41
42
|
annotate.doc = "Annotate all the script expressions with patterns";
|
|
42
43
|
|
package/k.mjs
CHANGED
package/package.json
CHANGED
package/parser.jison
CHANGED
|
@@ -147,15 +147,19 @@ code_label
|
|
|
147
147
|
| int col code { $$ = {label: $1.value, code: $3}; }
|
|
148
148
|
;
|
|
149
149
|
|
|
150
|
-
|
|
151
|
-
:
|
|
152
|
-
|
|
|
153
|
-
| lp labelled_filters rp { $$ = { open: $2.open, fields: $2.fields, start: $1.start, end: $3.end}; }
|
|
150
|
+
filter_
|
|
151
|
+
: dollar code { $$ = { type: "code", code: s.as_ref($2), start: $1.start, end: $2.end}; }
|
|
152
|
+
| lp labelled_filters rp { $$ = { type: null, open: $2.open, fields: $2.fields, start: $1.start, end: $3.end}; }
|
|
154
153
|
| la labelled_filters ra { $$ = { type: "union", open: $2.open, fields: $2.fields, start: $1.start, end: $3.end}; }
|
|
155
154
|
| lc labelled_filters rc { $$ = { type: "product", open: $2.open, fields: $2.fields, start: $1.start, end: $3.end}; }
|
|
156
155
|
| lb filter rb { $$ = { type: "vector", vector: $2, start: $1.start, end: $3.end }; }
|
|
157
156
|
;
|
|
158
157
|
|
|
158
|
+
filter
|
|
159
|
+
: filter_ { $$ = $1; }
|
|
160
|
+
| filter_ EQ name { $$ = { name: $3.value, ...$1, start: $1.start, end: $3.end }; }
|
|
161
|
+
| name { $$ = { type: 'name', name: $1.value, open: true, start: $1.start, end: $1.end}; }
|
|
162
|
+
;
|
|
159
163
|
labelled_filters
|
|
160
164
|
: { $$ = { fields: {}}; }
|
|
161
165
|
| non_empty_labelled_filters { $$ = $1.reduce((r, lc) => {
|
package/parser.mjs
CHANGED
|
@@ -111,12 +111,12 @@ function fromEscString(escString) {
|
|
|
111
111
|
|
|
112
112
|
|
|
113
113
|
var parser = (function(){
|
|
114
|
-
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,
|
|
114
|
+
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,62],$V1=[1,10],$V2=[1,25],$V3=[1,26],$V4=[1,23],$V5=[1,21],$V6=[1,22],$V7=[1,24],$V8=[1,27],$V9=[1,11],$Va=[1,28],$Vb=[1,20],$Vc=[1,31],$Vd=[4,6,8,10,12,14,16,30,38,40,47,59,62],$Ve=[2,67],$Vf=[1,35],$Vg=[4,6,8,10,12,14,16,18,20,22,24,30,32,34,38,40,47,59,62],$Vh=[2,88],$Vi=[1,55],$Vj=[2,70],$Vk=[2,71],$Vl=[4,6,8,10,12,14,16,18,20,22,24,30,32,34,36,38,40,47,59,62],$Vm=[4,6,8],$Vn=[2,27],$Vo=[4,6,8,10,12,14,16,18,20,22,24,26,30,32,34,38,40,47,59,62],$Vp=[2,32],$Vq=[1,80],$Vr=[1,82],$Vs=[20,32],$Vt=[4,6,8,10,12,14,16,30,38,40,59,62],$Vu=[1,87],$Vv=[1,91],$Vw=[18,22,32],$Vx=[1,94],$Vy=[2,49],$Vz=[2,50],$VA=[1,106],$VB=[18,20,32],$VC=[2,82],$VD=[2,83],$VE=[2,84],$VF=[18,20,24,32];
|
|
115
115
|
var parser = {trace: function trace () { },
|
|
116
116
|
yy: {},
|
|
117
|
-
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,"incremental":41,"INCREMENTAL":42,"input_with_eof":43,"initialize_symbol_table":44,"defs":45,"comp":46,"EOF":47,"codeDef":48,"code":49,"labelled_codes":50,"non_empty_labelled_codes":51,"code_label":52,"
|
|
118
|
-
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",42:"INCREMENTAL",47:"EOF",
|
|
119
|
-
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,1],[43,4],[44,0],[44,1],[45,0],[45,5],[45,6],[49,1],[49,1],[48,3],[48,3],[48,3],[50,0],[50,1],[51,1],[51,3],[52,2],[52,2],[52,2],[52,3],[52,3],[52,3],[53,
|
|
117
|
+
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,"incremental":41,"INCREMENTAL":42,"input_with_eof":43,"initialize_symbol_table":44,"defs":45,"comp":46,"EOF":47,"codeDef":48,"code":49,"labelled_codes":50,"non_empty_labelled_codes":51,"code_label":52,"filter_":53,"labelled_filters":54,"filter":55,"non_empty_labelled_filters":56,"filter_label":57,"exp":58,"CARET":59,"labelled":60,"list":61,"PIPE":62,"non_empty_labelled":63,"comp_label":64,"non_empty_list":65,"$accept":0,"$end":1},
|
|
118
|
+
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",42:"INCREMENTAL",47:"EOF",59:"CARET",62:"PIPE"},
|
|
119
|
+
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,1],[43,4],[44,0],[44,1],[45,0],[45,5],[45,6],[49,1],[49,1],[48,3],[48,3],[48,3],[50,0],[50,1],[51,1],[51,3],[52,2],[52,2],[52,2],[52,3],[52,3],[52,3],[53,2],[53,3],[53,3],[53,3],[53,3],[55,1],[55,3],[55,1],[54,0],[54,1],[56,1],[56,3],[57,1],[57,2],[57,2],[57,2],[57,3],[57,3],[57,3],[46,1],[46,2],[46,2],[58,3],[58,3],[58,3],[58,1],[58,2],[58,3],[58,1],[58,1],[58,2],[58,2],[58,2],[58,2],[58,2],[58,1],[60,0],[60,1],[63,1],[63,3],[64,2],[64,2],[64,2],[64,3],[64,3],[64,3],[61,0],[61,1],[65,1],[65,3]],
|
|
120
120
|
performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
|
|
121
121
|
/* this == yyval */
|
|
122
122
|
|
|
@@ -154,7 +154,7 @@ break;
|
|
|
154
154
|
case 27:
|
|
155
155
|
this.$ = { code: "ref", ref: $$[$0].value, start: $$[$0].start, end: $$[$0].end};
|
|
156
156
|
break;
|
|
157
|
-
case 28: case
|
|
157
|
+
case 28: case 47: case 61: case 79: case 89:
|
|
158
158
|
this.$ = $$[$0];
|
|
159
159
|
break;
|
|
160
160
|
case 29:
|
|
@@ -175,10 +175,10 @@ case 33:
|
|
|
175
175
|
return r }
|
|
176
176
|
, {});
|
|
177
177
|
break;
|
|
178
|
-
case 34: case
|
|
178
|
+
case 34: case 52: case 90:
|
|
179
179
|
this.$ = [$$[$0]];
|
|
180
180
|
break;
|
|
181
|
-
case 35: case
|
|
181
|
+
case 35: case 53: case 91:
|
|
182
182
|
this.$ = [].concat($$[$0-2],$$[$0]);
|
|
183
183
|
break;
|
|
184
184
|
case 36: case 37: case 38:
|
|
@@ -188,27 +188,30 @@ case 39: case 40: case 41:
|
|
|
188
188
|
this.$ = {label: $$[$0-2].value, code: $$[$0]};
|
|
189
189
|
break;
|
|
190
190
|
case 42:
|
|
191
|
-
this.$ = { type: "
|
|
191
|
+
this.$ = { type: "code", code: s.as_ref($$[$0]), start: $$[$0-1].start, end: $$[$0].end};
|
|
192
192
|
break;
|
|
193
193
|
case 43:
|
|
194
|
-
this.$ = { type:
|
|
194
|
+
this.$ = { type: null, open: $$[$0-1].open, fields: $$[$0-1].fields, start: $$[$0-2].start, end: $$[$0].end};
|
|
195
195
|
break;
|
|
196
196
|
case 44:
|
|
197
|
-
this.$ = { open: $$[$0-1].open, fields: $$[$0-1].fields, start: $$[$0-2].start, end: $$[$0].end};
|
|
198
|
-
break;
|
|
199
|
-
case 45:
|
|
200
197
|
this.$ = { type: "union", open: $$[$0-1].open, fields: $$[$0-1].fields, start: $$[$0-2].start, end: $$[$0].end};
|
|
201
198
|
break;
|
|
202
|
-
case
|
|
199
|
+
case 45:
|
|
203
200
|
this.$ = { type: "product", open: $$[$0-1].open, fields: $$[$0-1].fields, start: $$[$0-2].start, end: $$[$0].end};
|
|
204
201
|
break;
|
|
205
|
-
case
|
|
202
|
+
case 46:
|
|
206
203
|
this.$ = { type: "vector", vector: $$[$0-1], start: $$[$0-2].start, end: $$[$0].end };
|
|
207
204
|
break;
|
|
208
205
|
case 48:
|
|
209
|
-
this.$ = {
|
|
206
|
+
this.$ = { name: $$[$0].value, ...$$[$0-2], start: $$[$0-2].start, end: $$[$0].end };
|
|
210
207
|
break;
|
|
211
208
|
case 49:
|
|
209
|
+
this.$ = { type: 'name', name: $$[$0].value, open: true, start: $$[$0].start, end: $$[$0].end};
|
|
210
|
+
break;
|
|
211
|
+
case 50:
|
|
212
|
+
this.$ = { fields: {}};
|
|
213
|
+
break;
|
|
214
|
+
case 51:
|
|
212
215
|
this.$ = $$[$0].reduce((r, lc) => {
|
|
213
216
|
if (lc.dots) {
|
|
214
217
|
r.open = true;
|
|
@@ -218,78 +221,78 @@ case 49:
|
|
|
218
221
|
return r }
|
|
219
222
|
, { fields: {} });
|
|
220
223
|
break;
|
|
221
|
-
case
|
|
224
|
+
case 54:
|
|
222
225
|
this.$ = {dots: true };
|
|
223
226
|
break;
|
|
224
|
-
case
|
|
227
|
+
case 55: case 56: case 57:
|
|
225
228
|
this.$ = {label: $$[$0].value, filter: $$[$0-1]};
|
|
226
229
|
break;
|
|
227
|
-
case
|
|
230
|
+
case 58: case 59: case 60:
|
|
228
231
|
this.$ = {label: $$[$0-2].value, filter: $$[$0]};
|
|
229
232
|
break;
|
|
230
|
-
case
|
|
233
|
+
case 62:
|
|
231
234
|
this.$ = {...comp($$[$0-1], $$[$0]), start: $$[$0-1].start, end:$$[$0].end};
|
|
232
235
|
break;
|
|
233
|
-
case
|
|
236
|
+
case 63:
|
|
234
237
|
this.$ = {op: 'caret', caret: $$[$0-1], start: $$[$0-1].start, end:$$[$0].end};
|
|
235
238
|
break;
|
|
236
|
-
case
|
|
239
|
+
case 64:
|
|
237
240
|
this.$ = {...$$[$0-1], start: $$[$0-2].start, end: $$[$0].end};
|
|
238
241
|
break;
|
|
239
|
-
case
|
|
242
|
+
case 65:
|
|
240
243
|
this.$ = {op: "vector", vector: $$[$0-1], start: $$[$0-2].start, end: $$[$0].end};
|
|
241
244
|
break;
|
|
242
|
-
case
|
|
245
|
+
case 66:
|
|
243
246
|
this.$ = {...union($$[$0-1]), start: $$[$0-2].start, end: $$[$0].end};
|
|
244
247
|
break;
|
|
245
|
-
case
|
|
248
|
+
case 67:
|
|
246
249
|
this.$ = {op: "ref", ref: $$[$0].value, start: $$[$0].start, end: $$[$0].end};
|
|
247
250
|
break;
|
|
248
|
-
case
|
|
251
|
+
case 68:
|
|
249
252
|
this.$ = {...identity, start: $$[$0-1].start, end: $$[$0].end};
|
|
250
253
|
break;
|
|
251
|
-
case
|
|
254
|
+
case 69:
|
|
252
255
|
this.$ = {...$$[$0-1], start: $$[$0-2].start, end: $$[$0].end };
|
|
253
256
|
break;
|
|
254
|
-
case
|
|
257
|
+
case 70:
|
|
255
258
|
this.$ = {op: "str", str: $$[$0].value, start: $$[$0].start, end: $$[$0].end };
|
|
256
259
|
break;
|
|
257
|
-
case
|
|
260
|
+
case 71:
|
|
258
261
|
this.$ = {op: "int", int: $$[$0].value, start: $$[$0].start, end: $$[$0].end };
|
|
259
262
|
break;
|
|
260
|
-
case
|
|
263
|
+
case 72: case 73: case 74:
|
|
261
264
|
this.$ = {op: "dot", dot: $$[$0].value, start: $$[$0-1].start, end: $$[$0].end };
|
|
262
265
|
break;
|
|
263
|
-
case
|
|
266
|
+
case 75:
|
|
264
267
|
this.$ = {op: "code", code: s.as_ref($$[$0]), start: $$[$0-1].start, end: $$[$0].end};
|
|
265
268
|
break;
|
|
266
|
-
case
|
|
269
|
+
case 76:
|
|
267
270
|
this.$ = {op: "filter", filter: $$[$0], start: $$[$0-1].start, end:$$[$0].end};
|
|
268
271
|
break;
|
|
269
|
-
case
|
|
272
|
+
case 77:
|
|
270
273
|
this.$ = {op: "pipe", start: $$[$0].start, end: $$[$0].end};
|
|
271
274
|
break;
|
|
272
|
-
case
|
|
275
|
+
case 78:
|
|
273
276
|
this.$ = {op: "product", product: []};
|
|
274
277
|
break;
|
|
275
|
-
case
|
|
278
|
+
case 80:
|
|
276
279
|
this.$ = {op: "product", product: [$$[$0]]};
|
|
277
280
|
break;
|
|
278
|
-
case
|
|
281
|
+
case 81:
|
|
279
282
|
$$[$0-2].product = [].concat($$[$0-2].product,$$[$0]); this.$ = $$[$0-2];
|
|
280
283
|
break;
|
|
281
|
-
case
|
|
284
|
+
case 82: case 83: case 84:
|
|
282
285
|
this.$ = {label: $$[$0].value, exp: $$[$0-1]};
|
|
283
286
|
break;
|
|
284
|
-
case
|
|
287
|
+
case 85: case 86: case 87:
|
|
285
288
|
this.$ = {label: $$[$0-2].value, exp: $$[$0]};
|
|
286
289
|
break;
|
|
287
|
-
case
|
|
290
|
+
case 88:
|
|
288
291
|
this.$ = [];
|
|
289
292
|
break;
|
|
290
293
|
}
|
|
291
294
|
},
|
|
292
|
-
table: [o($V0,[2,22],{43:1,44:2,41:3,42:[1,4]}),{1:[3]},o($V0,[2,24],{45:5}),o($V0,[2,23]),o($V0,[2,20]),{3:7,4:$V1,5:16,6:$V2,7:17,8:$V3,9:14,10:$V4,11:12,12:$V5,13:13,14:$V6,15:15,16:$V7,29:18,30:$V8,37:8,38:$V9,39:19,40:$Va,46:6,
|
|
295
|
+
table: [o($V0,[2,22],{43:1,44:2,41:3,42:[1,4]}),{1:[3]},o($V0,[2,24],{45:5}),o($V0,[2,23]),o($V0,[2,20]),{3:7,4:$V1,5:16,6:$V2,7:17,8:$V3,9:14,10:$V4,11:12,12:$V5,13:13,14:$V6,15:15,16:$V7,29:18,30:$V8,37:8,38:$V9,39:19,40:$Va,46:6,58:9,62:$Vb},{3:32,4:$V1,5:16,6:$V2,7:17,8:$V3,9:14,10:$V4,11:12,12:$V5,13:13,14:$V6,15:15,16:$V7,29:18,30:$V8,37:33,38:$V9,39:19,40:$Va,47:[1,29],58:30,59:$Vc,62:$Vb},o($Vd,$Ve,{25:34,26:$Vf}),{3:36,4:$V1,9:41,10:$V4,11:39,12:$V5,13:40,14:$V6,48:38,49:37},o($Vg,[2,61]),o([4,6,8,10,12,14,16,18,20,22,24,26,30,32,34,36,38,40,47,59,62],[2,1]),o([4,10,12,14],[2,18]),{3:46,4:$V1,5:47,6:$V2,7:48,8:$V3,9:14,10:$V4,11:12,12:$V5,13:13,14:$V6,15:15,16:$V7,20:[2,78],29:18,30:$V8,37:33,38:$V9,39:19,40:$Va,46:45,58:9,60:42,62:$Vb,63:43,64:44},{3:32,4:$V1,5:16,6:$V2,7:17,8:$V3,9:14,10:$V4,11:12,12:$V5,13:13,14:$V6,15:15,16:$V7,22:$Vh,29:18,30:$V8,37:33,38:$V9,39:19,40:$Va,46:51,58:9,61:49,62:$Vb,65:50},{3:32,4:$V1,5:16,6:$V2,7:17,8:$V3,9:14,10:$V4,11:12,12:$V5,13:13,14:$V6,15:15,16:$V7,18:$Vh,29:18,30:$V8,37:33,38:$V9,39:19,40:$Va,46:51,58:9,61:52,62:$Vb,65:50},{3:32,4:$V1,5:16,6:$V2,7:17,8:$V3,9:14,10:$V4,11:12,12:$V5,13:13,14:$V6,15:15,16:$V7,23:53,24:$Vi,29:18,30:$V8,37:33,38:$V9,39:19,40:$Va,46:54,58:9,62:$Vb},o($Vg,$Vj),o($Vg,$Vk),{3:58,4:$V1,5:57,6:$V2,7:56,8:$V3},{3:61,4:$V1,9:64,10:$V4,11:65,12:$V5,13:66,14:$V6,15:63,16:$V7,37:62,38:$V9,53:60,55:59},o($Vg,[2,77]),o([4,6,8,10,12,14,16,20,28,30,38,40,62],[2,5]),o([4,6,8,10,12,14,16,22,30,38,40,62],[2,6]),o([4,6,8,10,12,14,16,18,28,30,38,40,62],[2,4]),o([4,6,8,10,12,14,16,24,28,30,38,40,62],[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,21]},o($Vg,[2,62]),o($Vg,[2,63]),o($Vg,$Ve),{3:67,4:$V1,9:41,10:$V4,11:39,12:$V5,13:40,14:$V6,48:38,49:37},{3:32,4:$V1,5:16,6:$V2,7:17,8:$V3,9:14,10:$V4,11:12,12:$V5,13:13,14:$V6,15:15,16:$V7,29:18,30:$V8,37:33,38:$V9,39:19,40:$Va,46:68,58:9,62:$Vb},o($V0,[2,12]),o($Vd,$Vn,{25:69,26:$Vf}),o($Vg,[2,75]),o($Vo,[2,28]),{3:74,4:$V1,5:75,6:$V2,7:76,8:$V3,9:41,10:$V4,11:39,12:$V5,13:40,14:$V6,20:$Vp,48:38,49:73,50:70,51:71,52:72},{3:67,4:$V1,9:41,10:$V4,11:39,12:$V5,13:40,14:$V6,48:38,49:77},{3:74,4:$V1,5:75,6:$V2,7:76,8:$V3,9:41,10:$V4,11:39,12:$V5,13:40,14:$V6,18:$Vp,48:38,49:73,50:78,51:71,52:72},{19:79,20:$Vq},{20:[2,79],31:81,32:$Vr},o($Vs,[2,80]),{3:83,4:$V1,5:84,6:$V2,7:85,8:$V3,9:14,10:$V4,11:12,12:$V5,13:13,14:$V6,15:15,16:$V7,29:18,30:$V8,37:33,38:$V9,39:19,40:$Va,58:30,59:$Vc,62:$Vb},o($Vt,$Ve,{35:86,36:$Vu}),o($Vt,$Vj,{35:88,36:$Vu}),o($Vt,$Vk,{35:89,36:$Vu}),{21:90,22:$Vv},o([18,22],[2,89],{31:92,32:$Vr}),o($Vw,[2,90],{11:12,13:13,9:14,15:15,5:16,7:17,29:18,39:19,58:30,3:32,37:33,4:$V1,6:$V2,8:$V3,10:$V4,12:$V5,14:$V6,16:$V7,30:$V8,38:$V9,40:$Va,59:$Vc,62:$Vb}),{17:93,18:$Vx},o($Vg,[2,68]),{3:32,4:$V1,5:16,6:$V2,7:17,8:$V3,9:14,10:$V4,11:12,12:$V5,13:13,14:$V6,15:15,16:$V7,23:95,24:$Vi,29:18,30:$V8,37:33,38:$V9,39:19,40:$Va,58:30,59:$Vc,62:$Vb},o($Vo,[2,11]),o($Vg,[2,72]),o($Vg,[2,73]),o($Vg,[2,74]),o($Vg,[2,76]),o($Vg,[2,47],{26:[1,96]}),o($Vg,$Vy),{3:67,4:$V1,9:41,10:$V4,11:39,12:$V5,13:40,14:$V6,48:38,49:97},{3:103,4:$V1,5:104,6:$V2,7:105,8:$V3,9:64,10:$V4,11:65,12:$V5,13:66,14:$V6,15:63,16:$V7,24:$Vz,27:101,28:$VA,37:62,38:$V9,53:60,54:98,55:102,56:99,57:100},{3:103,4:$V1,5:104,6:$V2,7:105,8:$V3,9:64,10:$V4,11:65,12:$V5,13:66,14:$V6,15:63,16:$V7,18:$Vz,27:101,28:$VA,37:62,38:$V9,53:60,54:107,55:102,56:99,57:100},{3:103,4:$V1,5:104,6:$V2,7:105,8:$V3,9:64,10:$V4,11:65,12:$V5,13:66,14:$V6,15:63,16:$V7,20:$Vz,27:101,28:$VA,37:62,38:$V9,53:60,54:108,55:102,56:99,57:100},{3:61,4:$V1,9:64,10:$V4,11:65,12:$V5,13:66,14:$V6,15:63,16:$V7,37:62,38:$V9,53:60,55:109},o($Vo,$Vn),{3:32,4:$V1,5:16,6:$V2,7:17,8:$V3,9:14,10:$V4,11:12,12:$V5,13:13,14:$V6,15:15,16:$V7,29:18,30:$V8,33:110,34:[1,111],37:33,38:$V9,39:19,40:$Va,58:30,59:$Vc,62:$Vb},{9:41,10:$V4,11:39,12:$V5,13:40,14:$V6,48:112},{19:113,20:$Vq},o([18,20],[2,33],{31:114,32:$Vr}),o($VB,[2,34]),{3:115,4:$V1,5:116,6:$V2,7:117,8:$V3},o($Vm,$Vn,{35:118,36:$Vu}),{35:119,36:$Vu},{35:120,36:$Vu},{21:121,22:$Vv},{17:122,18:$Vx},o($Vg,[2,64]),o($Vo,[2,9]),{3:46,4:$V1,5:47,6:$V2,7:48,8:$V3,9:14,10:$V4,11:12,12:$V5,13:13,14:$V6,15:15,16:$V7,29:18,30:$V8,37:33,38:$V9,39:19,40:$Va,46:45,58:9,62:$Vb,64:123},o([4,6,8,10,12,14,16,28,30,38,40,62],[2,15]),o($Vt,$Ve,{20:$VC,32:$VC}),o($Vt,$Vj,{20:$VD,32:$VD}),o($Vt,$Vk,{20:$VE,32:$VE}),{3:32,4:$V1,5:16,6:$V2,7:17,8:$V3,9:14,10:$V4,11:12,12:$V5,13:13,14:$V6,15:15,16:$V7,29:18,30:$V8,37:33,38:$V9,39:19,40:$Va,46:124,58:9,62:$Vb},o($V0,[2,17]),{3:32,4:$V1,5:16,6:$V2,7:17,8:$V3,9:14,10:$V4,11:12,12:$V5,13:13,14:$V6,15:15,16:$V7,29:18,30:$V8,37:33,38:$V9,39:19,40:$Va,46:125,58:9,62:$Vb},{3:32,4:$V1,5:16,6:$V2,7:17,8:$V3,9:14,10:$V4,11:12,12:$V5,13:13,14:$V6,15:15,16:$V7,29:18,30:$V8,37:33,38:$V9,39:19,40:$Va,46:126,58:9,62:$Vb},o($Vg,[2,65]),o($Vo,[2,10]),{3:32,4:$V1,5:16,6:$V2,7:17,8:$V3,9:14,10:$V4,11:12,12:$V5,13:13,14:$V6,15:15,16:$V7,29:18,30:$V8,37:33,38:$V9,39:19,40:$Va,46:127,58:9,62:$Vb},o($Vg,[2,66]),o($Vo,[2,8]),o($Vg,[2,69]),{3:128,4:$V1},o($Vo,[2,42]),{23:129,24:$Vi},o([18,20,24],[2,51],{31:130,32:$Vr}),o($VF,[2,52]),o($VF,[2,54]),{3:131,4:$V1,5:132,6:$V2,7:133,8:$V3},o($Vm,$Vy,{35:134,36:$Vu}),{35:135,36:$Vu},{35:136,36:$Vu},o($VF,[2,13]),{17:137,18:$Vx},{19:138,20:$Vq},{21:139,22:$Vv},o($V0,[2,25]),o($V0,[2,16]),{34:[1,140]},o($Vo,[2,29]),{3:74,4:$V1,5:75,6:$V2,7:76,8:$V3,9:41,10:$V4,11:39,12:$V5,13:40,14:$V6,48:38,49:73,52:141},o($VB,[2,36]),o($VB,[2,37]),o($VB,[2,38]),{3:67,4:$V1,9:41,10:$V4,11:39,12:$V5,13:40,14:$V6,48:38,49:142},{3:67,4:$V1,9:41,10:$V4,11:39,12:$V5,13:40,14:$V6,48:38,49:143},{3:67,4:$V1,9:41,10:$V4,11:39,12:$V5,13:40,14:$V6,48:38,49:144},o($Vo,[2,30]),o($Vo,[2,31]),o($Vs,[2,81]),o($Vs,[2,85],{11:12,13:13,9:14,15:15,5:16,7:17,29:18,39:19,58:30,3:32,37:33,4:$V1,6:$V2,8:$V3,10:$V4,12:$V5,14:$V6,16:$V7,30:$V8,38:$V9,40:$Va,59:$Vc,62:$Vb}),o($Vs,[2,86],{11:12,13:13,9:14,15:15,5:16,7:17,29:18,39:19,58:30,3:32,37:33,4:$V1,6:$V2,8:$V3,10:$V4,12:$V5,14:$V6,16:$V7,30:$V8,38:$V9,40:$Va,59:$Vc,62:$Vb}),o($Vs,[2,87],{11:12,13:13,9:14,15:15,5:16,7:17,29:18,39:19,58:30,3:32,37:33,4:$V1,6:$V2,8:$V3,10:$V4,12:$V5,14:$V6,16:$V7,30:$V8,38:$V9,40:$Va,59:$Vc,62:$Vb}),o($Vw,[2,91],{11:12,13:13,9:14,15:15,5:16,7:17,29:18,39:19,58:30,3:32,37:33,4:$V1,6:$V2,8:$V3,10:$V4,12:$V5,14:$V6,16:$V7,30:$V8,38:$V9,40:$Va,59:$Vc,62:$Vb}),o($Vg,[2,48]),o($Vo,[2,43]),{3:103,4:$V1,5:104,6:$V2,7:105,8:$V3,9:64,10:$V4,11:65,12:$V5,13:66,14:$V6,15:63,16:$V7,27:101,28:$VA,37:62,38:$V9,53:60,55:102,57:145},o($VF,[2,55]),o($VF,[2,56]),o($VF,[2,57]),{3:61,4:$V1,9:64,10:$V4,11:65,12:$V5,13:66,14:$V6,15:63,16:$V7,37:62,38:$V9,53:60,55:146},{3:61,4:$V1,9:64,10:$V4,11:65,12:$V5,13:66,14:$V6,15:63,16:$V7,37:62,38:$V9,53:60,55:147},{3:61,4:$V1,9:64,10:$V4,11:65,12:$V5,13:66,14:$V6,15:63,16:$V7,37:62,38:$V9,53:60,55:148},o($Vo,[2,44]),o($Vo,[2,45]),o($Vo,[2,46]),o($V0,[2,26]),o($VB,[2,35]),o($VB,[2,39]),o($VB,[2,40]),o($VB,[2,41]),o($VF,[2,53]),o($VF,[2,58]),o($VF,[2,59]),o($VF,[2,60])],
|
|
293
296
|
defaultActions: {29:[2,21]},
|
|
294
297
|
parseError: function parseError (str, hash) {
|
|
295
298
|
if (hash.recoverable) {
|
|
@@ -802,9 +805,9 @@ case 17:return 38;
|
|
|
802
805
|
break;
|
|
803
806
|
case 18:return 40;
|
|
804
807
|
break;
|
|
805
|
-
case 19:return
|
|
808
|
+
case 19:return 62;
|
|
806
809
|
break;
|
|
807
|
-
case 20:return
|
|
810
|
+
case 20:return 59;
|
|
808
811
|
break;
|
|
809
812
|
case 21:return 6;
|
|
810
813
|
break;
|