Skip to content
Permalink
master
Switch branches/tags
Go to file
 
 
Cannot retrieve contributors at this time
/* parser generated by jison 0.4.13 */
/*
Returns a Parser object of the following structure:
Parser: {
yy: {}
}
Parser.prototype: {
yy: {},
trace: function(),
symbols_: {associative list: name ==> number},
terminals_: {associative list: number ==> name},
productions_: [...],
performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
table: [...],
defaultActions: {...},
parseError: function(str, hash),
parse: function(input),
lexer: {
EOF: 1,
parseError: function(str, hash),
setInput: function(input),
input: function(),
unput: function(str),
more: function(),
less: function(n),
pastInput: function(),
upcomingInput: function(),
showPosition: function(),
test_match: function(regex_match_array, rule_index),
next: function(),
lex: function(),
begin: function(condition),
popState: function(),
_currentRules: function(),
topState: function(),
pushState: function(condition),
options: {
ranges: boolean (optional: true ==> token location info will include a .range[] member)
flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
},
performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
rules: [...],
conditions: {associative list: name ==> set},
}
}
token location info (@$, _$, etc.): {
first_line: n,
last_line: n,
first_column: n,
last_column: n,
range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
}
the parseError function receives a 'hash' object with these members for lexer and parser errors: {
text: (matched text)
token: (the produced terminal token, if any)
line: (yylineno)
}
while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
loc: (yylloc)
expected: (string describing the set of expected tokens)
recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
}
*/
import ast from "./src/ast";
var parser = (function() {
var parser = {
trace: function trace() {},
yy: {},
symbols_: {
error: 2,
root: 3,
body: 4,
eol: 5,
NEWLINE: 6,
COMMA: 7,
EOF: 8,
arg_end: 9,
MKAY: 10,
arg_list: 11,
exp: 12,
SEP: 13,
function_call: 14,
IDENTIFIER: 15,
function_def_arg_list: 16,
YR: 17,
function_def: 18,
HOW_DUZ_I: 19,
IF_U_SAY_SO: 20,
loop_operation: 21,
UPPIN: 22,
NERFIN: 23,
loop_condition: 24,
TIL: 25,
WILE: 26,
loop_end: 27,
IM_OUTTA_YR: 28,
loop: 29,
IM_IN_YR: 30,
wtf_branch: 31,
OMG: 32,
OMGWTF: 33,
wtf: 34,
WTF: 35,
OIC: 36,
type: 37,
TYPE: 38,
NOOB: 39,
simple_exp: 40,
indexer: 41,
BIN_OP: 42,
P_BIN_OP: 43,
UN_OP: 44,
NUMBER: 45,
YARN: 46,
TROOF: 47,
"(": 48,
")": 49,
CAST_MAEK: 50,
A: 51,
index: 52,
"!": 53,
array_dec: 54,
NOTHING: 55,
var_dec: 56,
VAR_DEC: 57,
ITS: 58,
ITS_GOT: 59,
conditional_inner: 60,
O_RLY: 61,
YA_RLY: 62,
MEBBE: 63,
NO_WAI: 64,
conditional: 65,
line: 66,
assignment: 67,
R: 68,
R_GOT: 69,
O_NVM: 70,
GTFO: 71,
FOUND_YR: 72,
VISIBLE: 73,
GIMMEH: 74,
CAST_IS_NOW: 75,
HALP: 76,
$accept: 0,
$end: 1
},
terminals_: {
2: "error",
6: "NEWLINE",
7: "COMMA",
8: "EOF",
10: "MKAY",
13: "SEP",
15: "IDENTIFIER",
17: "YR",
19: "HOW_DUZ_I",
20: "IF_U_SAY_SO",
22: "UPPIN",
23: "NERFIN",
25: "TIL",
26: "WILE",
28: "IM_OUTTA_YR",
30: "IM_IN_YR",
32: "OMG",
33: "OMGWTF",
35: "WTF",
36: "OIC",
38: "TYPE",
39: "NOOB",
42: "BIN_OP",
43: "P_BIN_OP",
44: "UN_OP",
45: "NUMBER",
46: "YARN",
47: "TROOF",
48: "(",
49: ")",
50: "CAST_MAEK",
51: "A",
53: "!",
55: "NOTHING",
57: "VAR_DEC",
58: "ITS",
59: "ITS_GOT",
61: "O_RLY",
62: "YA_RLY",
63: "MEBBE",
64: "NO_WAI",
68: "R",
69: "R_GOT",
70: "O_NVM",
71: "GTFO",
72: "FOUND_YR",
73: "VISIBLE",
74: "GIMMEH",
75: "CAST_IS_NOW",
76: "HALP"
},
productions_: [
0,
[3, 1],
[5, 1],
[5, 1],
[5, 1],
[9, 1],
[9, 1],
[11, 1],
[11, 3],
[14, 3],
[16, 2],
[16, 4],
[16, 0],
[18, 6],
[21, 3],
[21, 3],
[24, 2],
[24, 2],
[27, 2],
[27, 1],
[29, 5],
[29, 7],
[31, 4],
[31, 3],
[31, 5],
[31, 4],
[34, 4],
[34, 3],
[37, 1],
[37, 1],
[40, 1],
[40, 3],
[40, 4],
[40, 2],
[40, 1],
[40, 1],
[40, 1],
[40, 1],
[40, 1],
[40, 1],
[40, 3],
[40, 4],
[52, 1],
[52, 1],
[52, 3],
[41, 3],
[41, 3],
[12, 1],
[54, 1],
[54, 1],
[54, 3],
[56, 4],
[56, 4],
[56, 2],
[60, 5],
[60, 5],
[60, 4],
[65, 2],
[4, 1],
[4, 2],
[4, 2],
[4, 3],
[67, 3],
[67, 3],
[67, 3],
[67, 3],
[66, 1],
[66, 1],
[66, 1],
[66, 1],
[66, 2],
[66, 1],
[66, 1],
[66, 2],
[66, 2],
[66, 3],
[66, 1],
[66, 1],
[66, 1],
[66, 1]
],
performAction: function anonymous(
yytext,
yyleng,
yylineno,
yy,
yystate /* action[1] */,
$$ /* vstack */,
_$ /* lstack */
) {
/* this == yyval */
var $0 = $$.length - 1;
switch (yystate) {
case 1:
return $$[$0];
break;
case 2:
this.$ = $$[$0];
break;
case 3:
this.$ = $$[$0];
break;
case 4:
this.$ = $$[$0];
break;
case 5:
this.$ = $$[$0];
break;
case 7:
this.$ = new ast.ArgList(this._$, [$$[$0]]);
break;
case 8:
$$[$0 - 2].push($$[$0]);
this.$ = $$[$0 - 2];
break;
case 9:
this.$ = new ast.FunctionCall(
this._$,
$$[$0 - 2],
$$[$0 - 1]
);
break;
case 10:
this.$ = [$$[$0]];
break;
case 11:
$$[$0 - 3].push($$[$0]);
this.$ = $$[$0 - 3];
break;
case 12:
this.$ = [];
break;
case 13:
this.$ = new ast.FunctionDefinition(
this._$,
$$[$0 - 4],
$$[$0 - 3],
$$[$0 - 1]
);
break;
case 14:
this.$ = new ast.LoopOperation(this._$, "inc", $$[$0]);
break;
case 15:
this.$ = new ast.LoopOperation(this._$, "dec", $$[$01]);
break;
case 16:
this.$ = new ast.LoopCondition(this._$, "until", $$[$0]);
break;
case 17:
this.$ = new ast.LoopCondition(this._$, "while", $$[$0]);
break;
case 18:
this.$ = $$[$0 - 1];
break;
case 19:
this.$ = $$[$0];
break;
case 20:
this.$ = new ast.Loop(this._$, $$[$0 - 1]);
break;
case 21:
this.$ = new ast.Loop(
this._$,
$$[$0 - 1],
$$[$0 - 4],
$$[$0 - 3]
);
break;
case 22:
this.$ = [];
this.$.push(new ast.Case(this._$, $$[$0 - 2], $$[$0]));
break;
case 23:
this.$ = [];
this.$.push(new ast.CaseDefault(this._$, $$[$0]));
break;
case 24:
$$[$0 - 4].push(new ast.Case(this._$, $$[$0 - 2], $$[$0]));
this.$ = $$[$0 - 4];
break;
case 25:
$$[$0 - 3].push(new ast.CaseDefault(this._$, $$[$0]));
this.$ = $$[$0 - 3];
break;
case 26:
this.$ = new ast.Switch(this._$, $$[$0 - 1]);
break;
case 27:
this.$ = new ast.Switch(this._$);
break;
case 28:
this.$ = $$[$0];
break;
case 29:
this.$ = $$[$0];
break;
case 30:
this.$ = $$[$0];
break;
case 31:
var args = new ast.ArgList(this._$, [$$[$0 - 2], $$[$0]]);
this.$ = new ast.FunctionCall(this._$, $$[$0 - 1], args);
break;
case 32:
var args = new ast.ArgList(this._$, [$$[$0 - 2], $$[$0]]);
this.$ = new ast.FunctionCall(this._$, $$[$0 - 3], args);
break;
case 33:
var args = new ast.ArgList(this._$, [$$[$0]]);
var fName = $$[$0 - 1].replace(/\s+/g, " ");
this.$ = new ast.FunctionCall(this._$, fName, args);
break;
case 34:
this.$ = $$[$0];
break;
case 35:
this.$ = new ast.Literal(this._$, Number($$[$0]));
break;
case 36:
this.$ = new ast.Literal(this._$, $$[$0]);
break;
case 37:
this.$ = new ast.Literal(
this._$,
$$[$0].toLowerCase() === "win"
);
break;
case 38:
this.$ = new ast.Literal(this._$, null);
break;
case 39:
this.$ = new ast.Identifier(this._$, $$[$0]);
break;
case 40:
this.$ = $$[$0 - 1];
break;
case 41:
this.$ = new ast.Cast(this._$, $$[$0 - 2], $$[$0]);
break;
case 42:
this.$ = new ast.Literal(this._$, Number($$[$0]));
break;
case 43:
this.$ = new ast.Identifier(this._$, $$[$0]);
break;
case 44:
this.$ = $$[$0 - 1];
break;
case 45:
this.$ = new ast.Indexer(this._$, $$[$0 - 2], $$[$0]);
break;
case 46:
this.$ = new ast.Indexer(this._$, $$[$0 - 2], $$[$0]);
break;
case 47:
this.$ = $$[$0];
break;
case 48:
this.$ = new ast.Literal(this._$, [$$[$0]]);
break;
case 49:
this.$ = new ast.Literal(this._$, []);
break;
case 50:
$$[$0 - 2].value.push($$[$0]);
this.$ = $$[$0 - 2];
break;
case 51:
this.$ = new ast.Declaration(this._$, $$[$0 - 2], $$[$0]);
break;
case 52:
this.$ = new ast.Declaration(this._$, $$[$0 - 2], $$[$0]);
break;
case 53:
this.$ = new ast.Declaration(this._$, $$[$0]);
break;
case 54:
this.$ = new ast.If(this._$, $$[$0]);
break;
case 55:
var elseIf = new ast.If(this._$, $$[$0]);
elseIf.condition = $$[$0 - 2];
$$[$0 - 4].elseIfs.push(elseIf);
this.$ = $$[$0 - 4];
break;
case 56:
$$[$0 - 3].elseBody = $$[$0];
this.$ = $$[$0 - 3];
break;
case 57:
this.$ = $$[$0 - 1];
break;
case 58:
this.$ = new ast.Body(this._$);
break;
case 59:
this.$ = new ast.Body(this._$);
this.$.push($$[$0 - 1]);
break;
case 60:
this.$ = $$[$0 - 1];
break;
case 61:
$$[$0 - 2].push($$[$0 - 1]);
this.$ = $$[$0 - 2];
break;
case 62:
this.$ = new ast.Assignment(this._$, $$[$0 - 2], $$[$0]);
break;
case 63:
this.$ = new ast.Assignment(this._$, $$[$0 - 2], $$[$0]);
break;
case 64:
this.$ = new ast.Assignment(this._$, $$[$0 - 2], $$[$0]);
break;
case 65:
this.$ = new ast.Assignment(this._$, $$[$0 - 2], $$[$0]);
break;
case 66:
this.$ = $$[$0];
break;
case 67:
this.$ = $$[$0];
break;
case 68:
this.$ = new ast.NoOp(this._$);
break;
case 69:
this.$ = new ast.Break(this._$);
break;
case 70:
this.$ = new ast.Return(this._$, $$[$0]);
break;
case 71:
this.$ = $$[$0];
break;
case 72:
this.$ = $$[$0];
break;
case 73:
this.$ = new ast.Visible(this._$, $$[$0]);
break;
case 74:
this.$ = new ast.Gimmeh(this._$, $$[$0]);
break;
case 75:
var ident = new ast.Identifier(this._$, $$[$0 - 2]);
var cast = (this.$ = new ast.Cast(this._$, ident, $$[$0]));
var assignment = new ast.Assignment(
this._$,
$$[$0 - 2],
cast
);
this.$ = assignment;
break;
case 76:
this.$ = $$[$0];
break;
case 77:
this.$ = $$[$0];
break;
case 78:
this.$ = new ast.Breakpoint(this._$);
break;
case 79:
this.$ = $$[$0];
break;
}
},
table: [
{
3: 1,
4: 2,
5: 3,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
29: 9,
30: [1, 23],
34: 21,
35: [1, 28],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
65: 18,
66: 4,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{ 1: [3] },
{
1: [2, 1],
5: 39,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
29: 9,
30: [1, 23],
34: 21,
35: [1, 28],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
65: 18,
66: 40,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{
1: [2, 58],
6: [2, 58],
7: [2, 58],
8: [2, 58],
15: [2, 58],
19: [2, 58],
20: [2, 58],
28: [2, 58],
30: [2, 58],
32: [2, 58],
33: [2, 58],
35: [2, 58],
36: [2, 58],
39: [2, 58],
43: [2, 58],
44: [2, 58],
45: [2, 58],
46: [2, 58],
47: [2, 58],
48: [2, 58],
50: [2, 58],
57: [2, 58],
61: [2, 58],
63: [2, 58],
64: [2, 58],
70: [2, 58],
71: [2, 58],
72: [2, 58],
73: [2, 58],
74: [2, 58],
76: [2, 58]
},
{ 5: 41, 6: [1, 5], 7: [1, 6], 8: [1, 7] },
{
1: [2, 2],
6: [2, 2],
7: [2, 2],
8: [2, 2],
10: [2, 2],
13: [2, 2],
15: [2, 2],
19: [2, 2],
20: [2, 2],
28: [2, 2],
30: [2, 2],
32: [2, 2],
33: [2, 2],
35: [2, 2],
36: [2, 2],
39: [2, 2],
42: [2, 2],
43: [2, 2],
44: [2, 2],
45: [2, 2],
46: [2, 2],
47: [2, 2],
48: [2, 2],
49: [2, 2],
50: [2, 2],
51: [2, 2],
53: [2, 2],
57: [2, 2],
61: [2, 2],
62: [2, 2],
63: [2, 2],
64: [2, 2],
70: [2, 2],
71: [2, 2],
72: [2, 2],
73: [2, 2],
74: [2, 2],
76: [2, 2]
},
{
1: [2, 3],
6: [2, 3],
7: [2, 3],
8: [2, 3],
10: [2, 3],
13: [2, 3],
15: [2, 3],
19: [2, 3],
20: [2, 3],
28: [2, 3],
30: [2, 3],
32: [2, 3],
33: [2, 3],
35: [2, 3],
36: [2, 3],
39: [2, 3],
42: [2, 3],
43: [2, 3],
44: [2, 3],
45: [2, 3],
46: [2, 3],
47: [2, 3],
48: [2, 3],
49: [2, 3],
50: [2, 3],
51: [2, 3],
53: [2, 3],
57: [2, 3],
61: [2, 3],
62: [2, 3],
63: [2, 3],
64: [2, 3],
70: [2, 3],
71: [2, 3],
72: [2, 3],
73: [2, 3],
74: [2, 3],
76: [2, 3]
},
{
1: [2, 4],
6: [2, 4],
7: [2, 4],
8: [2, 4],
10: [2, 4],
13: [2, 4],
15: [2, 4],
19: [2, 4],
20: [2, 4],
28: [2, 4],
30: [2, 4],
32: [2, 4],
33: [2, 4],
35: [2, 4],
36: [2, 4],
39: [2, 4],
42: [2, 4],
43: [2, 4],
44: [2, 4],
45: [2, 4],
46: [2, 4],
47: [2, 4],
48: [2, 4],
49: [2, 4],
50: [2, 4],
51: [2, 4],
53: [2, 4],
57: [2, 4],
61: [2, 4],
62: [2, 4],
63: [2, 4],
64: [2, 4],
70: [2, 4],
71: [2, 4],
72: [2, 4],
73: [2, 4],
74: [2, 4],
76: [2, 4]
},
{ 6: [2, 66], 7: [2, 66], 8: [2, 66] },
{ 6: [2, 67], 7: [2, 67], 8: [2, 67] },
{ 6: [2, 68], 7: [2, 68], 8: [2, 68] },
{ 6: [2, 69], 7: [2, 69], 8: [2, 69] },
{
12: 42,
14: 31,
15: [1, 44],
39: [1, 35],
40: 25,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37]
},
{ 6: [2, 71], 7: [2, 71], 8: [2, 71] },
{ 6: [2, 72], 7: [2, 72], 8: [2, 72] },
{
12: 45,
14: 31,
15: [1, 44],
39: [1, 35],
40: 25,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37]
},
{ 15: [1, 46] },
{
6: [2, 39],
7: [2, 39],
8: [2, 39],
11: 50,
12: 51,
14: 31,
15: [1, 44],
39: [1, 35],
40: 25,
41: 43,
42: [2, 39],
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
53: [2, 39],
68: [1, 48],
69: [1, 49],
75: [1, 47]
},
{ 6: [2, 76], 7: [2, 76], 8: [2, 76] },
{ 6: [2, 77], 7: [2, 77], 8: [2, 77] },
{ 6: [2, 78], 7: [2, 78], 8: [2, 78] },
{ 6: [2, 79], 7: [2, 79], 8: [2, 79] },
{ 15: [1, 52] },
{ 15: [1, 53] },
{
6: [2, 30],
7: [2, 30],
8: [2, 30],
42: [2, 30],
53: [1, 56],
68: [1, 54],
69: [1, 55]
},
{
6: [2, 47],
7: [2, 47],
8: [2, 47],
10: [2, 47],
13: [2, 47],
42: [1, 58],
53: [1, 57]
},
{ 36: [1, 59], 63: [1, 60], 64: [1, 61] },
{ 15: [1, 62] },
{ 5: 63, 6: [1, 5], 7: [1, 6], 8: [1, 7] },
{
14: 31,
15: [1, 44],
39: [1, 35],
40: 64,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37]
},
{
14: 31,
15: [1, 44],
39: [1, 35],
40: 65,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37]
},
{
6: [2, 34],
7: [2, 34],
8: [2, 34],
10: [2, 34],
13: [2, 34],
42: [2, 34],
49: [2, 34],
51: [2, 34],
53: [2, 34]
},
{
6: [2, 35],
7: [2, 35],
8: [2, 35],
10: [2, 35],
13: [2, 35],
42: [2, 35],
49: [2, 35],
51: [2, 35],
53: [2, 35]
},
{
6: [2, 36],
7: [2, 36],
8: [2, 36],
10: [2, 36],
13: [2, 36],
42: [2, 36],
49: [2, 36],
51: [2, 36],
53: [2, 36]
},
{
6: [2, 37],
7: [2, 37],
8: [2, 37],
10: [2, 37],
13: [2, 37],
42: [2, 37],
49: [2, 37],
51: [2, 37],
53: [2, 37]
},
{
6: [2, 38],
7: [2, 38],
8: [2, 38],
10: [2, 38],
13: [2, 38],
42: [2, 38],
49: [2, 38],
51: [2, 38],
53: [2, 38]
},
{
14: 31,
15: [1, 44],
39: [1, 35],
40: 66,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37]
},
{
14: 31,
15: [1, 44],
39: [1, 35],
40: 67,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37]
},
{ 5: 68, 6: [1, 5], 7: [1, 6], 8: [1, 7] },
{
1: [2, 60],
6: [2, 60],
7: [2, 60],
8: [2, 60],
15: [2, 60],
19: [2, 60],
20: [2, 60],
28: [2, 60],
30: [2, 60],
32: [2, 60],
33: [2, 60],
35: [2, 60],
36: [2, 60],
39: [2, 60],
43: [2, 60],
44: [2, 60],
45: [2, 60],
46: [2, 60],
47: [2, 60],
48: [2, 60],
50: [2, 60],
57: [2, 60],
61: [2, 60],
63: [2, 60],
64: [2, 60],
70: [2, 60],
71: [2, 60],
72: [2, 60],
73: [2, 60],
74: [2, 60],
76: [2, 60]
},
{ 5: 69, 6: [1, 5], 7: [1, 6], 8: [1, 7] },
{
1: [2, 59],
6: [2, 59],
7: [2, 59],
8: [2, 59],
15: [2, 59],
19: [2, 59],
20: [2, 59],
28: [2, 59],
30: [2, 59],
32: [2, 59],
33: [2, 59],
35: [2, 59],
36: [2, 59],
39: [2, 59],
43: [2, 59],
44: [2, 59],
45: [2, 59],
46: [2, 59],
47: [2, 59],
48: [2, 59],
50: [2, 59],
57: [2, 59],
61: [2, 59],
63: [2, 59],
64: [2, 59],
70: [2, 59],
71: [2, 59],
72: [2, 59],
73: [2, 59],
74: [2, 59],
76: [2, 59]
},
{ 6: [2, 70], 7: [2, 70], 8: [2, 70] },
{
6: [2, 30],
7: [2, 30],
8: [2, 30],
10: [2, 30],
13: [2, 30],
42: [2, 30],
49: [2, 30],
51: [2, 30],
53: [1, 56]
},
{
6: [2, 39],
7: [2, 39],
8: [2, 39],
10: [2, 39],
11: 50,
12: 51,
13: [2, 39],
14: 31,
15: [1, 44],
39: [1, 35],
40: 25,
41: 43,
42: [2, 39],
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
49: [2, 39],
50: [1, 37],
51: [2, 39],
53: [2, 39]
},
{ 6: [2, 73], 7: [2, 73], 8: [2, 73] },
{ 6: [2, 74], 7: [2, 74], 8: [2, 74] },
{ 37: 70, 38: [1, 71], 39: [1, 72] },
{
12: 73,
14: 31,
15: [1, 44],
39: [1, 35],
40: 25,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37]
},
{
12: 75,
14: 31,
15: [1, 44],
39: [1, 35],
40: 25,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
54: 74,
55: [1, 76]
},
{
5: 80,
6: [1, 5],
7: [1, 6],
8: [1, 7],
9: 77,
10: [1, 79],
13: [1, 78]
},
{ 6: [2, 7], 7: [2, 7], 8: [2, 7], 10: [2, 7], 13: [2, 7] },
{ 6: [2, 53], 7: [2, 53], 8: [2, 53], 58: [1, 81], 59: [1, 82] },
{
5: 83,
6: [1, 5],
7: [1, 6],
8: [1, 7],
21: 84,
22: [1, 85],
23: [1, 86]
},
{
12: 87,
14: 31,
15: [1, 44],
39: [1, 35],
40: 25,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37]
},
{
12: 75,
14: 31,
15: [1, 44],
39: [1, 35],
40: 25,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
54: 88,
55: [1, 76]
},
{ 15: [1, 91], 45: [1, 90], 48: [1, 92], 52: 89 },
{ 15: [1, 91], 45: [1, 90], 48: [1, 92], 52: 93 },
{
14: 31,
15: [1, 44],
39: [1, 35],
40: 94,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37]
},
{ 6: [2, 57], 7: [2, 57], 8: [2, 57] },
{
14: 31,
15: [1, 44],
39: [1, 35],
40: 95,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37]
},
{ 5: 96, 6: [1, 5], 7: [1, 6], 8: [1, 7] },
{
6: [2, 12],
7: [2, 12],
8: [2, 12],
13: [2, 12],
16: 97,
17: [1, 98]
},
{ 31: 99, 32: [1, 101], 33: [1, 102], 36: [1, 100] },
{ 13: [1, 103], 42: [1, 58], 53: [1, 57] },
{
6: [2, 33],
7: [2, 33],
8: [2, 33],
10: [2, 33],
13: [2, 33],
42: [1, 58],
49: [2, 33],
51: [2, 33],
53: [1, 57]
},
{ 42: [1, 58], 49: [1, 104], 53: [1, 57] },
{ 42: [1, 58], 51: [1, 105], 53: [1, 57] },
{ 62: [1, 106] },
{
1: [2, 61],
6: [2, 61],
7: [2, 61],
8: [2, 61],
15: [2, 61],
19: [2, 61],
20: [2, 61],
28: [2, 61],
30: [2, 61],
32: [2, 61],
33: [2, 61],
35: [2, 61],
36: [2, 61],
39: [2, 61],
43: [2, 61],
44: [2, 61],
45: [2, 61],
46: [2, 61],
47: [2, 61],
48: [2, 61],
50: [2, 61],
57: [2, 61],
61: [2, 61],
63: [2, 61],
64: [2, 61],
70: [2, 61],
71: [2, 61],
72: [2, 61],
73: [2, 61],
74: [2, 61],
76: [2, 61]
},
{ 6: [2, 75], 7: [2, 75], 8: [2, 75] },
{
6: [2, 28],
7: [2, 28],
8: [2, 28],
10: [2, 28],
13: [2, 28],
42: [2, 28],
49: [2, 28],
51: [2, 28],
53: [2, 28]
},
{
6: [2, 29],
7: [2, 29],
8: [2, 29],
10: [2, 29],
13: [2, 29],
42: [2, 29],
49: [2, 29],
51: [2, 29],
53: [2, 29]
},
{ 6: [2, 62], 7: [2, 62], 8: [2, 62] },
{ 6: [2, 63], 7: [2, 63], 8: [2, 63], 13: [1, 107] },
{ 6: [2, 48], 7: [2, 48], 8: [2, 48], 13: [2, 48] },
{ 6: [2, 49], 7: [2, 49], 8: [2, 49], 13: [2, 49] },
{
6: [2, 9],
7: [2, 9],
8: [2, 9],
10: [2, 9],
13: [2, 9],
42: [2, 9],
49: [2, 9],
51: [2, 9],
53: [2, 9]
},
{
12: 108,
14: 31,
15: [1, 44],
39: [1, 35],
40: 25,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37]
},
{
6: [2, 5],
7: [2, 5],
8: [2, 5],
10: [2, 5],
13: [2, 5],
42: [2, 5],
49: [2, 5],
51: [2, 5],
53: [2, 5]
},
{
6: [2, 6],
7: [2, 6],
8: [2, 6],
10: [2, 6],
13: [2, 6],
42: [2, 6],
49: [2, 6],
51: [2, 6],
53: [2, 6]
},
{
12: 109,
14: 31,
15: [1, 44],
39: [1, 35],
40: 25,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37]
},
{
12: 75,
14: 31,
15: [1, 44],
39: [1, 35],
40: 25,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
54: 110,
55: [1, 76]
},
{
4: 111,
5: 3,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
29: 9,
30: [1, 23],
34: 21,
35: [1, 28],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
65: 18,
66: 4,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{ 24: 112, 25: [1, 113], 26: [1, 114] },
{ 17: [1, 115] },
{ 17: [1, 116] },
{ 6: [2, 64], 7: [2, 64], 8: [2, 64] },
{ 6: [2, 65], 7: [2, 65], 8: [2, 65], 13: [1, 107] },
{
6: [2, 46],
7: [2, 46],
8: [2, 46],
10: [2, 46],
13: [2, 46],
42: [2, 46],
49: [2, 46],
51: [2, 46],
53: [2, 46],
68: [2, 46],
69: [2, 46]
},
{
6: [2, 42],
7: [2, 42],
8: [2, 42],
10: [2, 42],
13: [2, 42],
42: [2, 42],
49: [2, 42],
51: [2, 42],
53: [2, 42],
68: [2, 42],
69: [2, 42]
},
{
6: [2, 43],
7: [2, 43],
8: [2, 43],
10: [2, 43],
13: [2, 43],
42: [2, 43],
49: [2, 43],
51: [2, 43],
53: [2, 43],
68: [2, 43],
69: [2, 43]
},
{ 15: [1, 91], 45: [1, 90], 48: [1, 92], 52: 117 },
{
6: [2, 45],
7: [2, 45],
8: [2, 45],
10: [2, 45],
13: [2, 45],
42: [2, 45],
49: [2, 45],
51: [2, 45],
53: [2, 45],
68: [2, 45],
69: [2, 45]
},
{
6: [2, 31],
7: [2, 31],
8: [2, 31],
10: [2, 31],
13: [2, 31],
42: [2, 31],
49: [2, 31],
51: [2, 31],
53: [1, 57]
},
{
5: 118,
6: [1, 5],
7: [1, 6],
8: [1, 7],
42: [1, 58],
53: [1, 57]
},
{
4: 119,
5: 3,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
29: 9,
30: [1, 23],
34: 21,
35: [1, 28],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
65: 18,
66: 4,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{ 5: 120, 6: [1, 5], 7: [1, 6], 8: [1, 7], 13: [1, 121] },
{ 15: [1, 122] },
{ 32: [1, 124], 33: [1, 125], 36: [1, 123] },
{ 6: [2, 27], 7: [2, 27], 8: [2, 27] },
{
12: 126,
14: 31,
15: [1, 44],
39: [1, 35],
40: 25,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37]
},
{ 5: 127, 6: [1, 5], 7: [1, 6], 8: [1, 7] },
{
14: 31,
15: [1, 44],
39: [1, 35],
40: 128,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37]
},
{
6: [2, 40],
7: [2, 40],
8: [2, 40],
10: [2, 40],
13: [2, 40],
42: [2, 40],
49: [2, 40],
51: [2, 40],
53: [2, 40]
},
{ 37: 129, 38: [1, 71], 39: [1, 72] },
{ 5: 130, 6: [1, 5], 7: [1, 6], 8: [1, 7] },
{
12: 131,
14: 31,
15: [1, 44],
39: [1, 35],
40: 25,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37]
},
{ 6: [2, 8], 7: [2, 8], 8: [2, 8], 10: [2, 8], 13: [2, 8] },
{ 6: [2, 51], 7: [2, 51], 8: [2, 51] },
{ 6: [2, 52], 7: [2, 52], 8: [2, 52], 13: [1, 107] },
{
5: 39,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
27: 132,
28: [1, 133],
29: 9,
30: [1, 23],
34: 21,
35: [1, 28],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
65: 18,
66: 40,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{ 5: 134, 6: [1, 5], 7: [1, 6], 8: [1, 7] },
{
12: 135,
14: 31,
15: [1, 44],
39: [1, 35],
40: 25,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37]
},
{
12: 136,
14: 31,
15: [1, 44],
39: [1, 35],
40: 25,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37]
},
{ 15: [1, 137] },
{ 15: [1, 138] },
{ 49: [1, 139] },
{
4: 140,
5: 3,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
29: 9,
30: [1, 23],
34: 21,
35: [1, 28],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
65: 18,
66: 4,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{
5: 39,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
29: 9,
30: [1, 23],
34: 21,
35: [1, 28],
36: [2, 56],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
63: [2, 56],
64: [2, 56],
65: 18,
66: 40,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{
4: 141,
5: 3,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
29: 9,
30: [1, 23],
34: 21,
35: [1, 28],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
65: 18,
66: 4,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{ 17: [1, 142] },
{ 6: [2, 10], 7: [2, 10], 8: [2, 10], 13: [2, 10] },
{ 6: [2, 26], 7: [2, 26], 8: [2, 26] },
{
12: 143,
14: 31,
15: [1, 44],
39: [1, 35],
40: 25,
41: 43,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37]
},
{ 5: 144, 6: [1, 5], 7: [1, 6], 8: [1, 7] },
{ 5: 145, 6: [1, 5], 7: [1, 6], 8: [1, 7] },
{
4: 146,
5: 3,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
29: 9,
30: [1, 23],
34: 21,
35: [1, 28],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
65: 18,
66: 4,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{
6: [2, 32],
7: [2, 32],
8: [2, 32],
10: [2, 32],
13: [2, 32],
42: [2, 32],
49: [2, 32],
51: [2, 32],
53: [1, 57]
},
{
6: [2, 41],
7: [2, 41],
8: [2, 41],
10: [2, 41],
13: [2, 41],
42: [2, 41],
49: [2, 41],
51: [2, 41],
53: [2, 41]
},
{
4: 147,
5: 3,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
29: 9,
30: [1, 23],
34: 21,
35: [1, 28],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
65: 18,
66: 4,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{ 6: [2, 50], 7: [2, 50], 8: [2, 50], 13: [2, 50] },
{ 6: [2, 20], 7: [2, 20], 8: [2, 20] },
{ 6: [2, 19], 7: [2, 19], 8: [2, 19], 15: [1, 148] },
{
4: 149,
5: 3,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
29: 9,
30: [1, 23],
34: 21,
35: [1, 28],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
65: 18,
66: 4,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{ 6: [2, 16], 7: [2, 16], 8: [2, 16] },
{ 6: [2, 17], 7: [2, 17], 8: [2, 17] },
{ 25: [2, 14], 26: [2, 14] },
{ 25: [2, 15], 26: [2, 15] },
{
6: [2, 44],
7: [2, 44],
8: [2, 44],
10: [2, 44],
13: [2, 44],
42: [2, 44],
49: [2, 44],
51: [2, 44],
53: [2, 44],
68: [2, 44],
69: [2, 44]
},
{
5: 39,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
29: 9,
30: [1, 23],
34: 21,
35: [1, 28],
36: [2, 55],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
63: [2, 55],
64: [2, 55],
65: 18,
66: 40,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{
5: 39,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
20: [1, 150],
29: 9,
30: [1, 23],
34: 21,
35: [1, 28],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
65: 18,
66: 40,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{ 15: [1, 151] },
{ 5: 152, 6: [1, 5], 7: [1, 6], 8: [1, 7] },
{
4: 153,
5: 3,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
29: 9,
30: [1, 23],
34: 21,
35: [1, 28],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
65: 18,
66: 4,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{
4: 154,
5: 3,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
29: 9,
30: [1, 23],
34: 21,
35: [1, 28],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
65: 18,
66: 4,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{
5: 39,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
29: 9,
30: [1, 23],
32: [2, 23],
33: [2, 23],
34: 21,
35: [1, 28],
36: [2, 23],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
65: 18,
66: 40,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{
5: 39,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
29: 9,
30: [1, 23],
34: 21,
35: [1, 28],
36: [2, 54],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
63: [2, 54],
64: [2, 54],
65: 18,
66: 40,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{ 6: [2, 18], 7: [2, 18], 8: [2, 18] },
{
5: 39,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
27: 155,
28: [1, 133],
29: 9,
30: [1, 23],
34: 21,
35: [1, 28],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
65: 18,
66: 40,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{ 6: [2, 13], 7: [2, 13], 8: [2, 13] },
{ 6: [2, 11], 7: [2, 11], 8: [2, 11], 13: [2, 11] },
{
4: 156,
5: 3,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
29: 9,
30: [1, 23],
34: 21,
35: [1, 28],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
65: 18,
66: 4,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{
5: 39,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
29: 9,
30: [1, 23],
32: [2, 25],
33: [2, 25],
34: 21,
35: [1, 28],
36: [2, 25],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
65: 18,
66: 40,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{
5: 39,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
29: 9,
30: [1, 23],
32: [2, 22],
33: [2, 22],
34: 21,
35: [1, 28],
36: [2, 22],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
65: 18,
66: 40,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
},
{ 6: [2, 21], 7: [2, 21], 8: [2, 21] },
{
5: 39,
6: [1, 5],
7: [1, 6],
8: [1, 7],
12: 14,
14: 31,
15: [1, 17],
18: 19,
19: [1, 27],
29: 9,
30: [1, 23],
32: [2, 24],
33: [2, 24],
34: 21,
35: [1, 28],
36: [2, 24],
39: [1, 35],
40: 25,
41: 24,
43: [1, 29],
44: [1, 30],
45: [1, 32],
46: [1, 33],
47: [1, 34],
48: [1, 36],
50: [1, 37],
56: 8,
57: [1, 22],
60: 26,
61: [1, 38],
65: 18,
66: 40,
67: 13,
70: [1, 10],
71: [1, 11],
72: [1, 12],
73: [1, 15],
74: [1, 16],
76: [1, 20]
}
],
defaultActions: {},
parseError: function parseError(str, hash) {
if (hash.recoverable) {
this.trace(str);
} else {
throw new Error(str);
}
},
parse: function parse(input) {
var self = this,
stack = [0],
vstack = [null],
lstack = [],
table = this.table,
yytext = "",
yylineno = 0,
yyleng = 0,
recovering = 0,
TERROR = 2,
EOF = 1;
var args = lstack.slice.call(arguments, 1);
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;
} else {
this.parseError = Object.getPrototypeOf(this).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() || EOF;
if (typeof token !== "number") {
token = self.symbols_[token] || token;
}
return token;
}
var symbol,
preErrorSymbol,
state,
action,
a,
r,
yyval = {},
p,
len,
newState,
expected;
while (true) {
state = stack[stack.length - 1];
if (this.defaultActions[state]) {
action = this.defaultActions[state];
} else {
if (symbol === null || typeof symbol == "undefined") {
symbol = lex();
}
action = table[state] && table[state][symbol];
}
if (
typeof action === "undefined" ||
!action.length ||
!action[0]
) {
var errStr = "";
expected = [];
for (p in table[state]) {
if (this.terminals_[p] && p > TERROR) {
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 == 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
});
}
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:
stack.push(symbol);
vstack.push(this.lexer.yytext);
lstack.push(this.lexer.yylloc);
stack.push(action[1]);
symbol = null;
if (!preErrorSymbol) {
yyleng = this.lexer.yyleng;
yytext = this.lexer.yytext;
yylineno = this.lexer.yylineno;
yyloc = this.lexer.yylloc;
if (recovering > 0) {
recovering--;
}
} else {
symbol = preErrorSymbol;
preErrorSymbol = null;
}
break;
case 2:
len = this.productions_[action[1]][1];
yyval.$ = vstack[vstack.length - len];
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.apply(
yyval,
[
yytext,
yyleng,
yylineno,
this.yy,
action[1],
vstack,
lstack
].concat(args)
);
if (typeof r !== "undefined") {
return r;
}
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]);
vstack.push(yyval.$);
lstack.push(yyval._$);
newState =
table[stack[stack.length - 2]][
stack[stack.length - 1]
];
stack.push(newState);
break;
case 3:
return true;
}
}
return true;
}
};
/* generated by jison-lex 0.2.1 */
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);
}
},
// resets the lexer, sets new input
setInput: function(input) {
this._input = input;
this._more = this._backtrack = 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;
},
// consumes and returns one char from the input
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;
},
// unshifts one char (or a string) into the input
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];
}
this.yyleng = this.yytext.length;
return this;
},
// When called from action, caches matched text and appends it on next action
more: function() {
this._more = true;
return this;
},
// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
reject: function() {
if (this.options.backtrack_lexer) {
this._backtrack = true;
} else {
return this.parseError(
"Lexical error on line " +
(this.yylineno + 1) +
". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" +
this.showPosition(),
{
text: "",
token: null,
line: this.yylineno
}
);
}
return this;
},
// retain first n characters of the match
less: function(n) {
this.unput(this.match.slice(n));
},
// displays already matched input, i.e. for error messages
pastInput: function() {
var past = this.matched.substr(
0,
this.matched.length - this.match.length
);
return (
(past.length > 20 ? "..." : "") +
past.substr(-20).replace(/\n/g, "")
);
},
// displays upcoming input, i.e. for error messages
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, "");
},
// displays the character position where the lexing error occurred, i.e. for error messages
showPosition: function() {
var pre = this.pastInput();
var c = new Array(pre.length + 1).join("-");
return pre + this.upcomingInput() + "\n" + c + "^";
},
// test the lexed token: return FALSE when not a match, otherwise return token
test_match: function(match, indexed_rule) {
var token, lines, backup;
if (this.options.backtrack_lexer) {
// save context
backup = {
yylineno: this.yylineno,
yylloc: {
first_line: this.yylloc.first_line,
last_line: this.last_line,
first_column: this.yylloc.first_column,
last_column: this.yylloc.last_column
},
yytext: this.yytext,
match: this.match,
matches: this.matches,
matched: this.matched,
yyleng: this.yyleng,
offset: this.offset,
_more: this._more,
_input: this._input,
yy: this.yy,
conditionStack: this.conditionStack.slice(0),
done: this.done
};
if (this.options.ranges) {
backup.yylloc.range = this.yylloc.range.slice(0);
}
}
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._backtrack = false;
this._input = this._input.slice(match[0].length);
this.matched += match[0];
token = this.performAction.call(
this,
this.yy,
this,
indexed_rule,
this.conditionStack[this.conditionStack.length - 1]
);
if (this.done && this._input) {
this.done = false;
}
if (token) {
return token;
} else if (this._backtrack) {
// recover context
for (var k in backup) {
this[k] = backup[k];
}
return false; // rule action called reject() implying the next rule should be tested instead.
}
return false;
},
// return next match in input
next: function() {
if (this.done) {
return this.EOF;
}
if (!this._input) {
this.done = true;
}
var token, match, tempMatch, index;
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.backtrack_lexer) {
token = this.test_match(tempMatch, rules[i]);
if (token !== false) {
return token;
} else if (this._backtrack) {
match = false;
continue; // rule action called reject() implying a rule MISmatch.
} else {
// else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
return false;
}
} else if (!this.options.flex) {
break;
}
}
}
if (match) {
token = this.test_match(match, rules[index]);
if (token !== false) {
return token;
}
// else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
return false;
}
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
}
);
}
},
// return next match that has a token
lex: function lex() {
var r = this.next();
if (r) {
return r;
} else {
return this.lex();
}
},
// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
begin: function begin(condition) {
this.conditionStack.push(condition);
},
// pop the previously active lexer condition state off the condition stack
popState: function popState() {
var n = this.conditionStack.length - 1;
if (n > 0) {
return this.conditionStack.pop();
} else {
return this.conditionStack[0];
}
},
// produce the lexer rule set which is active for the currently active lexer condition state
_currentRules: function _currentRules() {
if (
this.conditionStack.length &&
this.conditionStack[this.conditionStack.length - 1]
) {
return this.conditions[
this.conditionStack[this.conditionStack.length - 1]
].rules;
} else {
return this.conditions["INITIAL"].rules;
}
},
// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
topState: function topState(n) {
n = this.conditionStack.length - 1 - Math.abs(n || 0);
if (n >= 0) {
return this.conditionStack[n];
} else {
return "INITIAL";
}
},
// alias for begin(condition)
pushState: function pushState(condition) {
this.begin(condition);
},
// return the number of states currently on the stack
stateStackSize: function stateStackSize() {
return this.conditionStack.length;
},
options: { "case-insensitive": true },
performAction: function anonymous(
yy,
yy_,
$avoiding_name_collisions,
YY_START
) {
var YYSTATE = YY_START;
switch ($avoiding_name_collisions) {
case 0 /* skip block comment */:
break;
case 1 /* skip comment */:
break;
case 2:
return "NEWLINE";
break;
case 3:
return "COMMA";
break;
case 4 /* skip whitespace */:
break;
case 5:
return "NUMBER";
break;
case 6:
return "YARN";
break;
case 7:
return "YARN";
break;
case 8:
return "TROOF";
break;
case 9:
return "TROOF";
break;
case 10:
return "NOOB";
break;
case 11:
return "NOTHING";
break;
case 12 /* skip */:
break;
case 13 /* skip */:
break;
case 14:
return "KTHX";
break;
case 15:
return "ITS_GOT";
break;
case 16:
return "ITS";
break;
case 17:
return "VAR_DEC";
break;
case 18:
return "BIN_OP";
break;
case 19:
return "BIN_OP";
break;
case 20:
return "P_BIN_OP";
break;
case 21:
return "P_BIN_OP";
break;
case 22:
return "P_BIN_OP";
break;
case 23:
return "P_BIN_OP";
break;
case 24:
return "P_BIN_OP";
break;
case 25:
return "P_BIN_OP";
break;
case 26:
return "P_BIN_OP";
break;
case 27:
return "P_BIN_OP";
break;
case 28:
return "P_BIN_OP";
break;
case 29:
return "P_BIN_OP";
break;
case 30:
return "P_BIN_OP";
break;
case 31:
return "P_BIN_OP";
break;
case 32:
return "UN_OP";
break;
case 33:
return "UN_OP";
break;
case 34:
return "UN_OP";
break;
case 35:
return "UN_OP";
break;
case 36:
return "IDENTIFIER";
break;
case 37:
return "IDENTIFIER";
break;
case 38:
return "SEP";
break;
case 39:
return "MKAY";
break;
case 40:
return "R_GOT";
break;
case 41:
return "R";
break;
case 42:
return "O_RLY";
break;
case 43:
return "YA_RLY";
break;
case 44:
return "MEBBE";
break;
case 45:
return "OIC";
break;
case 46:
return "NO_WAI";
break;
case 47:
return "HOW_DUZ_I";
break;
case 48:
return "FOUND_YR";
break;
case 49:
return "YR";
break;
case 50:
return "IF_U_SAY_SO";
break;
case 51:
return "IM_IN_YR";
break;
case 52:
return "IM_OUTTA_YR";
break;
case 53:
return "O_NVM";
break;
case 54:
return "UPPIN";
break;
case 55:
return "NERFIN";
break;
case 56:
return "VISIBLE";
break;
case 57:
return "GIMMEH";
break;
case 58:
return "TIL";
break;
case 59:
return "WILE";
break;
case 60:
return "GTFO";
break;
case 61:
return "TYPE";
break;
case 62:
return "TYPE";
break;
case 63:
return "TYPE";
break;
case 64:
return "TYPE";
break;
case 65:
return "TYPE";
break;
case 66:
return "TYPE";
break;
case 67:
return "CAST_MAEK";
break;
case 68:
return "CAST_IS_NOW";
break;
case 69:
return "A";
break;
case 70:
return "HALP";
break;
case 71:
return "WTF";
break;
case 72:
return "OMG";
break;
case 73:
return "OMGWTF";
break;
case 74:
return "IDENTIFIER";
break;
case 75:
return "(";
break;
case 76:
return ")";
break;
case 77 /* skip */:
break;
case 78:
return "!";
break;
case 79:
return "EOF";
break;
case 80:
return "INVALID";
break;
}
},
rules: [
/^(?:OBTW[\s\S]+TLDR\b)/i,
/^(?:BTW.*)/i,
/^(?:(\r?\n)+\s*)/i,
/^(?:,)/i,
/^(?:[^\S\r\n]+)/i,
/^(?:-?[0-9]+(\.[0-9]+)?\b)/i,
/^(?:"([^\":]+|:.)*")/i,
/^(?:'([^\']*)')/i,
/^(?:WIN\b)/i,
/^(?:FAIL\b)/i,
/^(?:NOOB\b)/i,
/^(?:NOTHING\b)/i,
/^(?:HAI\s*)/i,
/^(?:KTHXBYE\s*)/i,
/^(?:KTHX\b)/i,
/^(?:IT[SZ]\s+GOT\b)/i,
/^(?:IT[SZ])/i,
/^(?:I\s+HAS\s+A\b)/i,
/^(?:BIGG?R\s+THAN\b)/i,
/^(?:SMALL?R\s+THAN\b)/i,
/^(?:SUM\s+OF\b)/i,
/^(?:DIFF\s+OF\b)/i,
/^(?:PRODUKT\s+OF\b)/i,
/^(?:QUOSHUNT\s+OF\b)/i,
/^(?:MOD\s+OF\b)/i,
/^(?:BIGGR\s+OF\b)/i,
/^(?:SMALLR\s+OF\b)/i,
/^(?:BOTH\s+SAEM\b)/i,
/^(?:DIFFRINT\b)/i,
/^(?:BOTH\s+OF\b)/i,
/^(?:EITHER\s+OF\b)/i,
/^(?:WON\s+OF\b)/i,
/^(?:LEN\s+OF\b)/i,
/^(?:NOT\b)/i,
/^(?:ORD\s+OF\b)/i,
/^(?:CHR\s+OF\b)/i,
/^(?:ALL\s+OF\b)/i,
/^(?:ANY\s+OF\b)/i,
/^(?:AN\b)/i,
/^(?:MKAY\b)/i,
/^(?:R\s+GOT\b)/i,
/^(?:R\b)/i,
/^(?:O\s+RLY\s*\?)/i,
/^(?:YA\s+RLY\b)/i,
/^(?:MEBBE\b)/i,
/^(?:OIC\b)/i,
/^(?:NO\s+WAI\b)/i,
/^(?:HOW\s+DUZ\s+I\b)/i,
/^(?:FOUND\s+YR\b)/i,
/^(?:YR\b)/i,
/^(?:IF\s+U\s+SAY\s+SO\b)/i,
/^(?:IM\s+IN\s+YR\b)/i,
/^(?:IM\s+OUTTA\s+YR\b)/i,
/^(?:O\s+NVM\b)/i,
/^(?:UPPIN\b)/i,
/^(?:NERFIN\b)/i,
/^(?:VISIBLE\b)/i,
/^(?:G[IE]MMEH\b)/i,
/^(?:TIL\b)/i,
/^(?:WILE\b)/i,
/^(?:GTFO\b)/i,
/^(?:NUMBR\b)/i,
/^(?:NUMBAR\b)/i,
/^(?:TROOF\b)/i,
/^(?:YARN\b)/i,
/^(?:NOOB\b)/i,
/^(?:BUKKIT\b)/i,
/^(?:MAEK\b)/i,
/^(?:IS\s+NOW\s+A\b)/i,
/^(?:A\b)/i,
/^(?:PLZ HALP\b)/i,
/^(?:WTF\??)/i,
/^(?:OMG\b)/i,
/^(?:OMGWTF\b)/i,
/^(?:[a-zA-Z_]+[a-zA-Z_0-9]*)/i,
/^(?:\()/i,
/^(?:\))/i,
/^(?:\?)/i,
/^(?:!)/i,
/^(?:$)/i,
/^(?:.)/i
],
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,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80
],
inclusive: true
}
}
};
return lexer;
})();
parser.lexer = lexer;
function Parser() {
this.yy = {};
}
Parser.prototype = parser;
parser.Parser = Parser;
return new Parser();
})();
const Parser = parser.Parser;
export { parser, Parser };
export function parse() {
return parser.parse.apply(parser, arguments);
}