@apistudio/apim-cli
Version:
CLI for API Management Products
2,258 lines (2,240 loc) • 65 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true,
});
/* Jison generated parser */
var _parser = (function () {
var parser = {
trace: function trace() {},
yy: {},
symbols_: {
error: 2,
expressions: 3,
e: 4,
EndOfExpression: 5,
"-": 6,
"+": 7,
"*": 8,
"/": 9,
"^": 10,
mod: 11,
and: 12,
or: 13,
not: 14,
if: 15,
then: 16,
else: 17,
in: 18,
notIn: 19,
"(": 20,
")": 21,
Arguments: 22,
",": 23,
Number: 24,
Symbol: 25,
String: 26,
of: 27,
Relation: 28,
"%": 29,
"?": 30,
":": 31,
RelationalOperator: 32,
"==": 33,
"!=": 34,
"~=": 35,
"<": 36,
"<=": 37,
">=": 38,
">": 39,
$accept: 0,
$end: 1,
},
terminals_: {
2: "error",
5: "EndOfExpression",
6: "-",
7: "+",
8: "*",
9: "/",
10: "^",
11: "mod",
12: "and",
13: "or",
14: "not",
15: "if",
16: "then",
17: "else",
18: "in",
19: "notIn",
20: "(",
21: ")",
23: ",",
24: "Number",
25: "Symbol",
26: "String",
27: "of",
29: "%",
30: "?",
31: ":",
33: "==",
34: "!=",
35: "~=",
36: "<",
37: "<=",
38: ">=",
39: ">",
},
productions_: [
0,
[3, 2],
[4, 2],
[4, 3],
[4, 3],
[4, 3],
[4, 3],
[4, 3],
[4, 3],
[4, 3],
[4, 3],
[4, 2],
[4, 6],
[4, 3],
[4, 3],
[4, 3],
[4, 5],
[4, 1],
[4, 1],
[4, 1],
[4, 3],
[4, 3],
[4, 4],
[4, 1],
[4, 3],
[4, 5],
[32, 1],
[32, 1],
[32, 1],
[32, 1],
[32, 1],
[32, 1],
[32, 1],
[28, 3],
[28, 3],
[22, 1],
[22, 3],
],
performAction: function anonymous(
yytext,
yyleng,
yylineno,
yy,
yystate,
$$,
_$,
) {
var $0 = $$.length - 1;
switch (yystate) {
case 1:
return $$[$0 - 1];
case 2:
this.$ = ["(", "ops['-'](", $$[$0], ")", ")"];
break;
case 3:
this.$ = [
"(",
"ops['",
$$[$0 - 1],
"'](",
$$[$0 - 2],
", ",
$$[$0],
")",
")",
];
break;
case 4:
this.$ = [
"(",
"ops['",
$$[$0 - 1],
"'](",
$$[$0 - 2],
", ",
$$[$0],
")",
")",
];
break;
case 5:
this.$ = [
"(",
"ops['",
$$[$0 - 1],
"'](",
$$[$0 - 2],
", ",
$$[$0],
")",
")",
];
break;
case 6:
this.$ = [
"(",
"ops['",
$$[$0 - 1],
"'](",
$$[$0 - 2],
", ",
$$[$0],
")",
")",
];
break;
case 7:
this.$ = [
"(",
"ops['",
$$[$0 - 1],
"'](",
$$[$0 - 2],
", ",
$$[$0],
")",
")",
];
break;
case 8:
this.$ = ["(", "ops.mod(", $$[$0 - 2], ", ", $$[$0], ")", ")"];
break;
case 9:
this.$ = [
"(",
"",
"std.coerceBoolean",
"(",
$$[$0 - 2],
") && ",
"std.coerceBoolean",
"(",
$$[$0],
")",
")",
];
break;
case 10:
this.$ = [
"(",
"",
"std.coerceBoolean",
"(",
$$[$0 - 2],
") || ",
"std.coerceBoolean",
"(",
$$[$0],
")",
")",
];
break;
case 11:
this.$ = ["(", "! ", "std.coerceBoolean", "(", $$[$0], ")", ")"];
break;
case 12:
this.$ = [
"(",
"",
"std.coerceBoolean",
"(",
$$[$0 - 4],
") ? ",
$$[$0 - 2],
" : ",
$$[$0],
"",
")",
];
break;
case 13:
this.$ = ["(", "std.isSubset(", $$[$0 - 2], ", ", $$[$0], ")", ")"];
break;
case 14:
this.$ = ["(", "!std.isSubset(", $$[$0 - 2], ", ", $$[$0], ")", ")"];
break;
case 15:
this.$ = ["(", "", $$[$0 - 1], "", ")"];
break;
case 16:
this.$ = ["(", "[ ", $$[$0 - 3], ", ", $$[$0 - 1], " ]", ")"];
break;
case 17:
this.$ = ["", $$[$0], ""];
break;
case 18:
this.$ = ["prop(", $$[$0], ", data)"];
break;
case 19:
this.$ = ["", $$[$0], ""];
break;
case 20:
this.$ = ["prop(", $$[$0 - 2], ", ", $$[$0], ")"];
break;
case 21:
this.$ = ["call(", $$[$0 - 2], ")"];
break;
case 22:
this.$ = ["call(", $$[$0 - 3], ", ", $$[$0 - 1], ")"];
break;
case 23:
this.$ = yy.reduceRelation($$[$0]);
break;
case 24:
this.$ = [
"std.warnDeprecated('modulo', ops['mod'](",
$$[$0 - 2],
", ",
$$[$0],
"))",
];
break;
case 25:
this.$ = [
"std.warnDeprecated('ternary', ",
"std.coerceBoolean",
"(",
$$[$0 - 4],
") ? ",
$$[$0 - 2],
" : ",
$$[$0],
")",
];
break;
case 26:
this.$ = ["=="];
break;
case 27:
this.$ = ["!="];
break;
case 28:
this.$ = ["~="];
break;
case 29:
this.$ = ["<"];
break;
case 30:
this.$ = ["<="];
break;
case 31:
this.$ = [">="];
break;
case 32:
this.$ = [">"];
break;
case 33:
this.$ = [$$[$0 - 2], $$[$0 - 1], ...$$[$0]];
break;
case 34:
this.$ = [$$[$0 - 2], $$[$0 - 1], $$[$0]];
break;
case 35:
this.$ = ["", $$[$0], ""];
break;
case 36:
this.$ = ["", $$[$0 - 2], ", ", $$[$0], ""];
break;
}
},
table: [
{
3: 1,
4: 2,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
1: [3],
},
{
5: [1, 11],
6: [1, 13],
7: [1, 12],
8: [1, 14],
9: [1, 15],
10: [1, 16],
11: [1, 17],
12: [1, 18],
13: [1, 19],
18: [1, 20],
19: [1, 21],
29: [1, 22],
30: [1, 23],
32: 24,
33: [1, 25],
34: [1, 26],
35: [1, 27],
36: [1, 28],
37: [1, 29],
38: [1, 30],
39: [1, 31],
},
{
4: 32,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
4: 33,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
4: 34,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
4: 35,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
22: 36,
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
5: [2, 17],
6: [2, 17],
7: [2, 17],
8: [2, 17],
9: [2, 17],
10: [2, 17],
11: [2, 17],
12: [2, 17],
13: [2, 17],
16: [2, 17],
17: [2, 17],
18: [2, 17],
19: [2, 17],
21: [2, 17],
23: [2, 17],
29: [2, 17],
30: [2, 17],
31: [2, 17],
33: [2, 17],
34: [2, 17],
35: [2, 17],
36: [2, 17],
37: [2, 17],
38: [2, 17],
39: [2, 17],
},
{
5: [2, 18],
6: [2, 18],
7: [2, 18],
8: [2, 18],
9: [2, 18],
10: [2, 18],
11: [2, 18],
12: [2, 18],
13: [2, 18],
16: [2, 18],
17: [2, 18],
18: [2, 18],
19: [2, 18],
20: [1, 38],
21: [2, 18],
23: [2, 18],
27: [1, 37],
29: [2, 18],
30: [2, 18],
31: [2, 18],
33: [2, 18],
34: [2, 18],
35: [2, 18],
36: [2, 18],
37: [2, 18],
38: [2, 18],
39: [2, 18],
},
{
5: [2, 19],
6: [2, 19],
7: [2, 19],
8: [2, 19],
9: [2, 19],
10: [2, 19],
11: [2, 19],
12: [2, 19],
13: [2, 19],
16: [2, 19],
17: [2, 19],
18: [2, 19],
19: [2, 19],
21: [2, 19],
23: [2, 19],
29: [2, 19],
30: [2, 19],
31: [2, 19],
33: [2, 19],
34: [2, 19],
35: [2, 19],
36: [2, 19],
37: [2, 19],
38: [2, 19],
39: [2, 19],
},
{
5: [2, 23],
6: [2, 23],
7: [2, 23],
8: [2, 23],
9: [2, 23],
10: [2, 23],
11: [2, 23],
12: [2, 23],
13: [2, 23],
16: [2, 23],
17: [2, 23],
18: [2, 23],
19: [2, 23],
21: [2, 23],
23: [2, 23],
29: [2, 23],
30: [2, 23],
31: [2, 23],
33: [2, 23],
34: [2, 23],
35: [2, 23],
36: [2, 23],
37: [2, 23],
38: [2, 23],
39: [2, 23],
},
{
1: [2, 1],
},
{
4: 39,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
4: 40,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
4: 41,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
4: 42,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
4: 43,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
4: 44,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
4: 45,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
4: 46,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
4: 47,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
4: 48,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
4: 49,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
4: 50,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
4: 52,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 51,
},
{
6: [2, 26],
14: [2, 26],
15: [2, 26],
20: [2, 26],
24: [2, 26],
25: [2, 26],
26: [2, 26],
},
{
6: [2, 27],
14: [2, 27],
15: [2, 27],
20: [2, 27],
24: [2, 27],
25: [2, 27],
26: [2, 27],
},
{
6: [2, 28],
14: [2, 28],
15: [2, 28],
20: [2, 28],
24: [2, 28],
25: [2, 28],
26: [2, 28],
},
{
6: [2, 29],
14: [2, 29],
15: [2, 29],
20: [2, 29],
24: [2, 29],
25: [2, 29],
26: [2, 29],
},
{
6: [2, 30],
14: [2, 30],
15: [2, 30],
20: [2, 30],
24: [2, 30],
25: [2, 30],
26: [2, 30],
},
{
6: [2, 31],
14: [2, 31],
15: [2, 31],
20: [2, 31],
24: [2, 31],
25: [2, 31],
26: [2, 31],
},
{
6: [2, 32],
14: [2, 32],
15: [2, 32],
20: [2, 32],
24: [2, 32],
25: [2, 32],
26: [2, 32],
},
{
5: [2, 2],
6: [2, 2],
7: [2, 2],
8: [2, 2],
9: [2, 2],
10: [1, 16],
11: [2, 2],
12: [2, 2],
13: [2, 2],
16: [2, 2],
17: [2, 2],
18: [2, 2],
19: [2, 2],
21: [2, 2],
23: [2, 2],
29: [2, 2],
30: [2, 2],
31: [2, 2],
32: 24,
33: [2, 2],
34: [2, 2],
35: [2, 2],
36: [2, 2],
37: [2, 2],
38: [2, 2],
39: [2, 2],
},
{
5: [2, 11],
6: [2, 11],
7: [2, 11],
8: [2, 11],
9: [2, 11],
10: [1, 16],
11: [2, 11],
12: [2, 11],
13: [2, 11],
16: [2, 11],
17: [2, 11],
18: [2, 11],
19: [2, 11],
21: [2, 11],
23: [2, 11],
29: [2, 11],
30: [2, 11],
31: [2, 11],
32: 24,
33: [2, 11],
34: [2, 11],
35: [2, 11],
36: [2, 11],
37: [2, 11],
38: [2, 11],
39: [2, 11],
},
{
6: [1, 13],
7: [1, 12],
8: [1, 14],
9: [1, 15],
10: [1, 16],
11: [1, 17],
12: [1, 18],
13: [1, 19],
16: [1, 53],
18: [1, 20],
19: [1, 21],
29: [1, 22],
30: [1, 23],
32: 24,
33: [1, 25],
34: [1, 26],
35: [1, 27],
36: [1, 28],
37: [1, 29],
38: [1, 30],
39: [1, 31],
},
{
6: [1, 13],
7: [1, 12],
8: [1, 14],
9: [1, 15],
10: [1, 16],
11: [1, 17],
12: [1, 18],
13: [1, 19],
18: [1, 20],
19: [1, 21],
21: [1, 54],
23: [2, 35],
29: [1, 22],
30: [1, 23],
32: 24,
33: [1, 25],
34: [1, 26],
35: [1, 27],
36: [1, 28],
37: [1, 29],
38: [1, 30],
39: [1, 31],
},
{
23: [1, 55],
},
{
4: 56,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
4: 59,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
21: [1, 57],
22: 58,
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
5: [2, 3],
6: [2, 3],
7: [2, 3],
8: [1, 14],
9: [1, 15],
10: [1, 16],
11: [1, 17],
12: [2, 3],
13: [2, 3],
16: [2, 3],
17: [2, 3],
18: [2, 3],
19: [2, 3],
21: [2, 3],
23: [2, 3],
29: [1, 22],
30: [2, 3],
31: [2, 3],
32: 24,
33: [2, 3],
34: [2, 3],
35: [2, 3],
36: [2, 3],
37: [2, 3],
38: [2, 3],
39: [2, 3],
},
{
5: [2, 4],
6: [2, 4],
7: [2, 4],
8: [1, 14],
9: [1, 15],
10: [1, 16],
11: [1, 17],
12: [2, 4],
13: [2, 4],
16: [2, 4],
17: [2, 4],
18: [2, 4],
19: [2, 4],
21: [2, 4],
23: [2, 4],
29: [1, 22],
30: [2, 4],
31: [2, 4],
32: 24,
33: [2, 4],
34: [2, 4],
35: [2, 4],
36: [2, 4],
37: [2, 4],
38: [2, 4],
39: [2, 4],
},
{
5: [2, 5],
6: [2, 5],
7: [2, 5],
8: [2, 5],
9: [2, 5],
10: [1, 16],
11: [2, 5],
12: [2, 5],
13: [2, 5],
16: [2, 5],
17: [2, 5],
18: [2, 5],
19: [2, 5],
21: [2, 5],
23: [2, 5],
29: [2, 5],
30: [2, 5],
31: [2, 5],
32: 24,
33: [2, 5],
34: [2, 5],
35: [2, 5],
36: [2, 5],
37: [2, 5],
38: [2, 5],
39: [2, 5],
},
{
5: [2, 6],
6: [2, 6],
7: [2, 6],
8: [2, 6],
9: [2, 6],
10: [1, 16],
11: [2, 6],
12: [2, 6],
13: [2, 6],
16: [2, 6],
17: [2, 6],
18: [2, 6],
19: [2, 6],
21: [2, 6],
23: [2, 6],
29: [2, 6],
30: [2, 6],
31: [2, 6],
32: 24,
33: [2, 6],
34: [2, 6],
35: [2, 6],
36: [2, 6],
37: [2, 6],
38: [2, 6],
39: [2, 6],
},
{
5: [2, 7],
6: [2, 7],
7: [2, 7],
8: [2, 7],
9: [2, 7],
10: [1, 16],
11: [2, 7],
12: [2, 7],
13: [2, 7],
16: [2, 7],
17: [2, 7],
18: [2, 7],
19: [2, 7],
21: [2, 7],
23: [2, 7],
29: [2, 7],
30: [2, 7],
31: [2, 7],
32: 24,
33: [2, 7],
34: [2, 7],
35: [2, 7],
36: [2, 7],
37: [2, 7],
38: [2, 7],
39: [2, 7],
},
{
5: [2, 8],
6: [2, 8],
7: [2, 8],
8: [2, 8],
9: [2, 8],
10: [1, 16],
11: [2, 8],
12: [2, 8],
13: [2, 8],
16: [2, 8],
17: [2, 8],
18: [2, 8],
19: [2, 8],
21: [2, 8],
23: [2, 8],
29: [2, 8],
30: [2, 8],
31: [2, 8],
32: 24,
33: [2, 8],
34: [2, 8],
35: [2, 8],
36: [2, 8],
37: [2, 8],
38: [2, 8],
39: [2, 8],
},
{
5: [2, 9],
6: [1, 13],
7: [1, 12],
8: [1, 14],
9: [1, 15],
10: [1, 16],
11: [1, 17],
12: [2, 9],
13: [2, 9],
16: [2, 9],
17: [2, 9],
18: [1, 20],
19: [1, 21],
21: [2, 9],
23: [2, 9],
29: [1, 22],
30: [2, 9],
31: [2, 9],
32: 24,
33: [1, 25],
34: [1, 26],
35: [1, 27],
36: [1, 28],
37: [1, 29],
38: [1, 30],
39: [1, 31],
},
{
5: [2, 10],
6: [1, 13],
7: [1, 12],
8: [1, 14],
9: [1, 15],
10: [1, 16],
11: [1, 17],
12: [1, 18],
13: [2, 10],
16: [2, 10],
17: [2, 10],
18: [1, 20],
19: [1, 21],
21: [2, 10],
23: [2, 10],
29: [1, 22],
30: [2, 10],
31: [2, 10],
32: 24,
33: [1, 25],
34: [1, 26],
35: [1, 27],
36: [1, 28],
37: [1, 29],
38: [1, 30],
39: [1, 31],
},
{
5: [2, 13],
6: [1, 13],
7: [1, 12],
8: [1, 14],
9: [1, 15],
10: [1, 16],
11: [1, 17],
12: [2, 13],
13: [2, 13],
16: [2, 13],
17: [2, 13],
18: [2, 13],
19: [2, 13],
21: [2, 13],
23: [2, 13],
29: [1, 22],
30: [2, 13],
31: [2, 13],
32: 24,
33: [1, 25],
34: [1, 26],
35: [1, 27],
36: [1, 28],
37: [1, 29],
38: [1, 30],
39: [1, 31],
},
{
5: [2, 14],
6: [1, 13],
7: [1, 12],
8: [1, 14],
9: [1, 15],
10: [1, 16],
11: [1, 17],
12: [2, 14],
13: [2, 14],
16: [2, 14],
17: [2, 14],
18: [2, 14],
19: [2, 14],
21: [2, 14],
23: [2, 14],
29: [1, 22],
30: [2, 14],
31: [2, 14],
32: 24,
33: [1, 25],
34: [1, 26],
35: [1, 27],
36: [1, 28],
37: [1, 29],
38: [1, 30],
39: [1, 31],
},
{
5: [2, 24],
6: [2, 24],
7: [2, 24],
8: [2, 24],
9: [2, 24],
10: [1, 16],
11: [2, 24],
12: [2, 24],
13: [2, 24],
16: [2, 24],
17: [2, 24],
18: [2, 24],
19: [2, 24],
21: [2, 24],
23: [2, 24],
29: [2, 24],
30: [2, 24],
31: [2, 24],
32: 24,
33: [2, 24],
34: [2, 24],
35: [2, 24],
36: [2, 24],
37: [2, 24],
38: [2, 24],
39: [2, 24],
},
{
6: [1, 13],
7: [1, 12],
8: [1, 14],
9: [1, 15],
10: [1, 16],
11: [1, 17],
12: [1, 18],
13: [1, 19],
18: [1, 20],
19: [1, 21],
29: [1, 22],
30: [1, 23],
31: [1, 60],
32: 24,
33: [1, 25],
34: [1, 26],
35: [1, 27],
36: [1, 28],
37: [1, 29],
38: [1, 30],
39: [1, 31],
},
{
5: [2, 33],
6: [2, 33],
7: [2, 33],
8: [2, 33],
9: [2, 33],
10: [2, 33],
11: [2, 33],
12: [2, 33],
13: [2, 33],
16: [2, 33],
17: [2, 33],
18: [2, 33],
19: [2, 33],
21: [2, 33],
23: [2, 33],
29: [2, 33],
30: [2, 33],
31: [2, 33],
33: [2, 33],
34: [2, 33],
35: [2, 33],
36: [2, 33],
37: [2, 33],
38: [2, 33],
39: [2, 33],
},
{
5: [2, 34],
6: [1, 13],
7: [1, 12],
8: [1, 14],
9: [1, 15],
10: [1, 16],
11: [1, 17],
12: [2, 34],
13: [2, 34],
16: [2, 34],
17: [2, 34],
18: [2, 34],
19: [2, 34],
21: [2, 34],
23: [2, 34],
29: [1, 22],
30: [2, 34],
31: [2, 34],
32: 24,
33: [1, 25],
34: [1, 26],
35: [1, 27],
36: [1, 28],
37: [1, 29],
38: [1, 30],
39: [1, 31],
},
{
4: 61,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
5: [2, 15],
6: [2, 15],
7: [2, 15],
8: [2, 15],
9: [2, 15],
10: [2, 15],
11: [2, 15],
12: [2, 15],
13: [2, 15],
16: [2, 15],
17: [2, 15],
18: [2, 15],
19: [2, 15],
21: [2, 15],
23: [2, 15],
29: [2, 15],
30: [2, 15],
31: [2, 15],
33: [2, 15],
34: [2, 15],
35: [2, 15],
36: [2, 15],
37: [2, 15],
38: [2, 15],
39: [2, 15],
},
{
4: 62,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
5: [2, 20],
6: [2, 20],
7: [2, 20],
8: [2, 20],
9: [2, 20],
10: [2, 20],
11: [2, 20],
12: [2, 20],
13: [2, 20],
16: [2, 20],
17: [2, 20],
18: [2, 20],
19: [2, 20],
21: [2, 20],
23: [2, 20],
29: [2, 20],
30: [2, 20],
31: [2, 20],
32: 24,
33: [2, 20],
34: [2, 20],
35: [2, 20],
36: [2, 20],
37: [2, 20],
38: [2, 20],
39: [2, 20],
},
{
5: [2, 21],
6: [2, 21],
7: [2, 21],
8: [2, 21],
9: [2, 21],
10: [2, 21],
11: [2, 21],
12: [2, 21],
13: [2, 21],
16: [2, 21],
17: [2, 21],
18: [2, 21],
19: [2, 21],
21: [2, 21],
23: [2, 21],
29: [2, 21],
30: [2, 21],
31: [2, 21],
33: [2, 21],
34: [2, 21],
35: [2, 21],
36: [2, 21],
37: [2, 21],
38: [2, 21],
39: [2, 21],
},
{
21: [1, 63],
23: [1, 64],
},
{
6: [1, 13],
7: [1, 12],
8: [1, 14],
9: [1, 15],
10: [1, 16],
11: [1, 17],
12: [1, 18],
13: [1, 19],
18: [1, 20],
19: [1, 21],
21: [2, 35],
23: [2, 35],
29: [1, 22],
30: [1, 23],
32: 24,
33: [1, 25],
34: [1, 26],
35: [1, 27],
36: [1, 28],
37: [1, 29],
38: [1, 30],
39: [1, 31],
},
{
4: 65,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
6: [1, 13],
7: [1, 12],
8: [1, 14],
9: [1, 15],
10: [1, 16],
11: [1, 17],
12: [1, 18],
13: [1, 19],
17: [1, 66],
18: [1, 20],
19: [1, 21],
29: [1, 22],
30: [1, 23],
32: 24,
33: [1, 25],
34: [1, 26],
35: [1, 27],
36: [1, 28],
37: [1, 29],
38: [1, 30],
39: [1, 31],
},
{
6: [1, 13],
7: [1, 12],
8: [1, 14],
9: [1, 15],
10: [1, 16],
11: [1, 17],
12: [1, 18],
13: [1, 19],
18: [1, 20],
19: [1, 21],
21: [1, 67],
23: [2, 36],
29: [1, 22],
30: [1, 23],
32: 24,
33: [1, 25],
34: [1, 26],
35: [1, 27],
36: [1, 28],
37: [1, 29],
38: [1, 30],
39: [1, 31],
},
{
5: [2, 22],
6: [2, 22],
7: [2, 22],
8: [2, 22],
9: [2, 22],
10: [2, 22],
11: [2, 22],
12: [2, 22],
13: [2, 22],
16: [2, 22],
17: [2, 22],
18: [2, 22],
19: [2, 22],
21: [2, 22],
23: [2, 22],
29: [2, 22],
30: [2, 22],
31: [2, 22],
33: [2, 22],
34: [2, 22],
35: [2, 22],
36: [2, 22],
37: [2, 22],
38: [2, 22],
39: [2, 22],
},
{
4: 68,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
5: [2, 25],
6: [1, 13],
7: [1, 12],
8: [1, 14],
9: [1, 15],
10: [1, 16],
11: [1, 17],
12: [1, 18],
13: [1, 19],
16: [2, 25],
17: [2, 25],
18: [1, 20],
19: [1, 21],
21: [2, 25],
23: [2, 25],
29: [1, 22],
30: [1, 23],
31: [2, 25],
32: 24,
33: [1, 25],
34: [1, 26],
35: [1, 27],
36: [1, 28],
37: [1, 29],
38: [1, 30],
39: [1, 31],
},
{
4: 69,
6: [1, 3],
14: [1, 4],
15: [1, 5],
20: [1, 6],
24: [1, 7],
25: [1, 8],
26: [1, 9],
28: 10,
},
{
5: [2, 16],
6: [2, 16],
7: [2, 16],
8: [2, 16],
9: [2, 16],
10: [2, 16],
11: [2, 16],
12: [2, 16],
13: [2, 16],
16: [2, 16],
17: [2, 16],
18: [2, 16],
19: [2, 16],
21: [2, 16],
23: [2, 16],
29: [2, 16],
30: [2, 16],
31: [2, 16],
33: [2, 16],
34: [2, 16],
35: [2, 16],
36: [2, 16],
37: [2, 16],
38: [2, 16],
39: [2, 16],
},
{
6: [1, 13],
7: [1, 12],
8: [1, 14],
9: [1, 15],
10: [1, 16],
11: [1, 17],
12: [1, 18],
13: [1, 19],
18: [1, 20],
19: [1, 21],
21: [2, 36],
23: [2, 36],
29: [1, 22],
30: [1, 23],
32: 24,
33: [1, 25],
34: [1, 26],
35: [1, 27],
36: [1, 28],
37: [1, 29],
38: [1, 30],
39: [1, 31],
},
{
5: [2, 12],
6: [1, 13],
7: [1, 12],
8: [1, 14],
9: [1, 15],
10: [1, 16],
11: [1, 17],
12: [1, 18],
13: [1, 19],
16: [2, 12],
17: [2, 12],
18: [1, 20],
19: [1, 21],
21: [2, 12],
23: [2, 12],
29: [1, 22],
30: [1, 23],
31: [2, 12],
32: 24,
33: [1, 25],
34: [1, 26],
35: [1, 27],
36: [1, 28],
37: [1, 29],
38: [1, 30],
39: [1, 31],
},
],
defaultActions: {
11: [2, 1],
},
parseError: function parseError(str, hash) {
throw new Error(str);
},
parse: function parse(input) {
var self = this,
stack = [0],
vstack = [null],
// semantic value stack
lstack = [],
// location stack
table = this.table,
yytext = "",
yylineno = 0,
yyleng = 0,
recovering = 0,
TERROR = 2,
EOF = 1;
//this.reductionCount = this.shiftCount = 0;
this.lexer.setInput(input);
this.lexer.yy = this.yy;
this.yy.lexer = this.lexer;
this.yy.parser = this;
if (typeof this.lexer.yylloc == "undefined") this.lexer.yylloc = {};
var yyloc = this.lexer.yylloc;
lstack.push(yyloc);
var ranges = this.lexer.options && this.lexer.options.ranges;
if (typeof this.yy.parseError === "function")
this.parseError = this.yy.parseError;
function popStack(n) {
stack.length = stack.length - 2 * n;
vstack.length = vstack.length - n;
lstack.length = lstack.length - n;
}
function lex() {
var token;
token = self.lexer.lex() || 1; // $end = 1
// if token isn't its numeric value, convert
if (typeof token !== "number") {
token = self.symbols_[token] || token;
}
return token;
}
var symbol,
preErrorSymbol,
state,
action,
r,
yyval = {},
p,
len,
newState,
expected;
while (true) {
// retreive state number from top of stack
state = stack[stack.length - 1];
// use default actions if available
if (this.defaultActions[state]) {
action = this.defaultActions[state];
} else {
if (symbol === null || typeof symbol == "undefined") {
symbol = lex();
}
// read action for current state and first input
action = table[state] && table[state][symbol];
}
// handle parse error
if (typeof action === "undefined" || !action.length || !action[0]) {
var errStr = "";
if (!recovering) {
// Report error
expected = [];
for (p in table[state])
if (this.terminals_[p] && p > 2) {
expected.push("'" + this.terminals_[p] + "'");
}
if (this.lexer.showPosition) {
errStr =
"Parse error on line " +
(yylineno + 1) +
":\n" +
this.lexer.showPosition() +
"\nExpecting " +
expected.join(", ") +
", got '" +
(this.terminals_[symbol] || symbol) +
"'";
} else {
errStr =
"Parse error on line " +
(yylineno + 1) +
": Unexpected " +
(symbol == 1 /*EOF*/
? "end of input"
: "'" + (this.terminals_[symbol] || symbol) + "'");
}
this.parseError(errStr, {
text: this.lexer.match,
token: this.terminals_[symbol] || symbol,
line: this.lexer.yylineno,
loc: yyloc,
expected: expected,
});
}
// just recovered from another error
if (recovering == 3) {
if (symbol == EOF) {
throw new Error(errStr || "Parsing halted.");
}
// discard current lookahead and grab another
yyleng = this.lexer.yyleng;
yytext = this.lexer.yytext;
yylineno = this.lexer.yylineno;
yyloc = this.lexer.yylloc;
symbol = lex();
}
// try to recover from error
while (1) {
// check for error recovery rule in this state
if (TERROR.toString() in table[state]) {
break;
}
if (state === 0) {
throw new Error(errStr || "Parsing halted.");
}
popStack(1);
state = stack[stack.length - 1];
}
preErrorSymbol = symbol == 2 ? null : symbol; // save the lookahead token
symbol = TERROR; // insert generic error symbol as new lookahead
state = stack[stack.length - 1];
action = table[state] && table[state][TERROR];
recovering = 3; // allow 3 real symbols to be shifted before reporting a new error
}
// this shouldn't happen, unless resolve defaults are off
if (action[0] instanceof Array && action.length > 1) {
throw new Error(
"Parse Error: multiple actions possible at state: " +
state +
", token: " +
symbol,
);
}
switch (action[0]) {
case 1:
// shift
//this.shiftCount++;
stack.push(symbol);
vstack.push(this.lexer.yytext);
lstack.push(this.lexer.yylloc);
stack.push(action[1]); // push state
symbol = null;
if (!preErrorSymbol) {
// normal execution/no error
yyleng = this.lexer.yyleng;
yytext = this.lexer.yytext;
yylineno = this.lexer.yylineno;
yyloc = this.lexer.yylloc;
if (recovering > 0) recovering--;
} else {
// error just occurred, resume old lookahead f/ before error
symbol = preErrorSymbol;
preErrorSymbol = null;
}
break;
case 2:
// reduce
//this.reductionCount++;
len = this.productions_[action[1]][1];
// perform semantic action
yyval.$ = vstack[vstack.length - len]; // default to $$ = $1
// default location, uses first token for firsts, last for lasts
yyval._$ = {
first_line: lstack[lstack.length - (len || 1)].first_line,
last_line: lstack[lstack.length - 1].last_line,
first_column: lstack[lstack.length - (len || 1)].first_column,
last_column: lstack[lstack.length - 1].last_column,
};
if (ranges) {
yyval._$.range = [
lstack[lstack.length - (len || 1)].range[0],
lstack[lstack.length - 1].range[1],
];
}
r = this.performAction.call(
yyval,
yytext,
yyleng,
yylineno,
this.yy,
action[1],
vstack,
lstack,
);
if (typeof r !== "undefined") {
return r;
}
// pop off stack
if (len) {
stack = stack.slice(0, -1 * len * 2);
vstack = vstack.slice(0, -1 * len);
lstack = lstack.slice(0, -1 * len);
}
stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)
vstack.push(yyval.$);
lstack.push(yyval._$);
// goto new state = table[STATE][NONTERMINAL]
newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
stack.push(newState);
break;
case 3:
// accept
return true;
}
}
return true;
},
};
var lexer = (function () {
var lexer = {
EOF: 1,
parseError: function parseError(str, hash) {
if (this.yy.parser) {
this.yy.parser.parseError(str, hash);
} else {
throw new Error(str);
}
},
setInput: function (input) {
this._input = input;
this._more = this._less = this.done = false;
this.yylineno = this.yyleng = 0;
this.yytext = this.matched = this.match = "";
this.conditionStack = ["INITIAL"];
this.yylloc = {
first_line: 1,
first_column: 0,
last_line: 1,
last_column: 0,
};
if (this.options.ranges) this.yylloc.range = [0, 0];
this.offset = 0;
return this;
},
input: function () {
var ch = this._input[0];
this.yytext += ch;
this.yyleng++;
this.offset++;
this.match += ch;
this.matched += ch;
var lines = ch.match(/(?:\r\n?|\n).*/g);
if (lines) {
this.yylineno++;
this.yylloc.last_line++;
} else {
this.yylloc.last_column++;
}
if (this.options.ranges) this.yylloc.range[1]++;
this._input = this._input.slice(1);
return ch;
},
unput: function (ch) {
var len = ch.length;
var lines = ch.split(/(?:\r\n?|\n)/g);
this._input = ch + this._input;
this.yytext = this.yytext.substr(0, this.yytext.length - len - 1);
//this.yyleng -= len;
this.offset -= len;
var oldLines = this.match.split(/(?:\r\n?|\n)/g);
this.match = this.match.substr(0, this.match.length - 1);
this.matched = this.matched.substr(0, this.matched.length - 1);
if (lines.length - 1) this.yylineno -= lines.length - 1;
var r = this.yylloc.range;
this.yylloc = {
first_line: this.yylloc.first_line,
last_line: this.yylineno + 1,
first_column: this.yylloc.first_column,
last_column: lines
? (lines.length === oldLines.length
? this.yylloc.first_column
: 0) +
oldLines[oldLines.length - lines.length].length -
lines[0].length
: this.yylloc.first_column - len,
};
if (this.options.ranges) {
this.yylloc.range = [r[0], r[0] + this.yyleng - len];
}
return this;
},
more: function () {
this._more = true;
return this;
},
less: function (n) {
this.unput(this.match.slice(n));
},
pastInput: function () {
var past = this.matched.substr(
0,
this.matched.length - this.match.length,
);
return (
(past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "")
);
},
upcomingInput: function () {
var next = this.match;
if (next.length < 20) {
next += this._input.substr(0, 20 - next.length);
}
return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(
/\n/g,
"",
);
},
showPosition: function () {
var pre = this.pastInput();
var c = new Array(pre.length + 1).join("-");
return pre + this.upcomingInput() + "\n" + c + "^";
},
next: function () {
if (this.done) {
return this.EOF;
}
if (!this._input) this.done = true;
var token, match, tempMatch, index, lines;
if (!this._more) {
this.yytext = "";
this.match = "";
}
var rules = this._currentRules();
for (var i = 0; i < rules.length; i++) {
tempMatch = this._input.match(this.rules[rules[i]]);
if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
match = tempMatch;
index = i;
if (!this.options.flex) break;
}
}
if (match) {
lines = match[0].match(/(?:\r\n?|\n).*/g);
if (lines) this.yylineno += lines.length;
this.yylloc = {
first_line: this.yylloc.last_line,
last_line: this.yylineno + 1,
first_column: this.yylloc.last_column,
last_column: lines
? lines[lines.length - 1].length -
lines[lines.length - 1].match(/\r?\n?/)[0].length
: this.yylloc.last_column + match[0].length,
};
this.yytext += match[0];
this.match += match[0];
this.matches = match;
this.yyleng = this.yytext.length;
if (this.options.ranges) {
this.yylloc.range = [this.offset, (this.offset += this.yyleng)];
}
this._more = false;
this._input = this._input.slice(match[0].length);
this.matched += match[0];
token = this.performAction.call(
this,
this.yy,
this,
rules[index],
this.conditionStack[this.conditionStack.length - 1],
);
if (this.done && this._input) this.done = false;
if (token) return token;
else return;
}
if (this._input === "") {
return this.EOF;
} else {
return this.parseError(
"Lexical error on line " +
(this.yylineno + 1) +
". Unrecognized text.\n" +
this.showPosition(),
{
text: "",
token: null,
line: this.yylineno,
},
);
}
},
lex: function lex() {
var r = this.next();
if (typeof r !== "undefined") {
return r;
} else {
return this.lex();
}
},
begin: function begin(condition) {
this.conditionStack.push(condition);
},
popState: function popState() {
return this.conditionStack.pop();
},
_currentRules: function _currentRules() {
return this.conditions[
this.conditionStack[this.conditionStack.length - 1]
].rules;
},
topState: function () {
return this.conditionStack[this.conditionStack.length - 2];
},
pushState: function begin(condition) {
this.begin(condition);
},
};
lexer.options = {};
lexer.performAction = function anonymous(
yy,
yy_,
$avoiding_name_collisions,
YY_START,
) {
switch ($avoiding_name_collisions) {
case 0:
return "*";
case 1:
return "/";
case 2:
return "-";
case 3:
return "+";
case 4:
return "^";
case 5:
return "(";
case 6:
return ")";
case 7:
return ",";
case 8:
return "==";
case 9:
return "!=";
case 10:
return "~=";
case 11:
return ">=";
case 12:
return "<=";
case 13:
return "<";
case 14:
return ">";
case 15:
return "notIn";
case 16:
return "and";
case 17:
return "or";
case 18:
return "not";
case 19:
return "in";
case 20:
return "of";
case 21:
return "if";
case 22:
return "then";
case 23:
return "else";
case 24:
return "mod";
case 25:
break;
case 26:
return "Number";
case 27:
yy_.yytext = JSON.stringify({
name: yy_.yytext,
type: "unescaped",
});
return "Symbol";
case 28:
yy_.yytext = JSON.stringify({
name: yy.buildString("'", yy_.yytext),
type: "single-quoted",
});
return "Symbol";
case 29:
yy_.yytext = JSON.stringify(yy.buildString('"', yy_.yytext));
return "String";
case 30:
return "%";
case 31:
return "?";
case 32:
return ":";
case 33:
return "EndOfExpression";
}
};
lexer.rules = [
/^(?:\*)/,
/^(?:\/)/,
/^(?:-)/,
/^(?:\+)/,
/^(?:\^)/,
/^(?:\()/,
/^(?:\))/,
/^(?:\,)/,
/^(?:==)/,
/^(?:\!=)/,
/^(?:\~=)/,
/^(?:>=)/,
/^(?:<=)/,
/^(?:<)/,
/^(?:>)/,
/^(?:not\s+in[^\w])/,
/^(?:and[^\w])/,
/^(?:or[^\w])/,
/^(?:not[^\w])/,
/^(?:in[^\w])/,
/^(?:of[^\w])/,
/^(?:if[^\w])/,
/^(?:then[^\w])/,
/^(?:else[^\w])/,
/^(?:mod[^\w])/,
/^(?:\s+)/,
/^(?:[0-9]+(?:\.[0-9]+)?(?![0-9\.]))/,
/^(?:[a-zA-Z$_][\.a-zA-Z0-9$_]*)/,
/^(?:'(?:\\'|\\\\|[^'\\])*')/,
/^(?:"(?:\\"|\\\\|[^"\\])*")/,
/^(?:\%)/,
/^(?:\?)/,
/^(?::)/,
/^(?:$)/,
];
lexer.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, 25, 26, 27, 28, 29, 30, 31, 32, 33,
],
inclusive: true,
},
};
return lexer;
})();
parser.lexer = lexer;
function Parser() {
this.yy = {};
}
Parser.prototype = parser;
parser.Parser = Parser;
return new Parser();
})();
const parser = _parser;
_parser.Parser;
/**
* Runtime error – user attempted to call a function
* which is not a predefined function, nor specified
* in `options.extraFunctions`.
*
* @prop {string} functionName
* @prop {string} I18N_STRING has the value `'UNKNOWN_FUNCTION'`
*/
class UnknownFunctionError extends ReferenceError {
I18N_STRING = "UNKNOWN_FUNCTION";
constructor(funcName) {
super(`Unknown function: ${funcName}()`);
this.functionName = funcName;
}
}
/**
* Runtime error – user attempted to access a property which
* is not present in the `data` object, nor in the `constants`.
* If the property is meant to be empty, use `undefined` or
* `null` as its value. If you need to use optional properties
* in your `data`, define a `customProp` function.
*
* @prop {string} propertyName
* @prop {string} I18N_STRING has the value `'UNKNOWN_PROPERTY'`
*/
class UnknownPropertyError extends ReferenceError {
I18N_STRING = "UNKNOWN_PROPERTY";
constructor(propName) {
super(`Property “${propName}” does not exist.`);
this.propertyName = propName;
}
}
/**
* Compile time error – you specified an option which
* was not recognized by Filtrex. Double-check your
* spelling and the version of Filtrex you are using.
*
* @prop {string} keyName
* @prop {string} I18N_STRING has the value `'UNKNOWN_OPTION'`
*/
class UnknownOptionError extends TypeError {
I18N_STRING = "UNKNOWN_OPTION";
constructor(key) {
super(`Unknown option: ${key}`);
this.keyName = key;
}
}
/**
* Runtime error – user passed a different type than the one
* accepted by the function or operator.
*
* The possible values of `expectedType` and `recievedType`
* are: `"undefined"`, `"null"`, `"true"`, `"false"`, `"number"`,
* `"text"`, `"unknown type"`, `"list"`, `"object"`, `"text or number"`
* and `"logical value (“true” or “false”)"`
*
* @prop {string} expectedType
* @prop {string} recievedType
* @prop {string} I18N_STRING has the value `'UNEXPECTED_TYPE'`
*/
class UnexpectedTypeError extends TypeError {
I18N_STRING = "UNEXPECTED_TYPE";
constructor(expected, got) {
super(`Expected a ${expected}, but got a ${got} instead.`);
this.expectedType =