tscc-compiler
Version:
An LALR(1) compiler compiler written in Typescript
783 lines (780 loc) • 160 kB
text/typescript
/*
generated by jscc, an LALR(1) parser generator made by hadroncfy.
template for typescript, written by hadroncfy, aussi.
*/
import { GBuilder, createFileBuilder, TokenRefType } from './gbuilder';
import { Assoc } from '../grammar/token-entry';
import { CompilationError as E, JsccError } from '../util/E';
import { Context } from '../util/context';
import { LexAction } from '../lexer/action';
import { Position, JNode, newNode, markPosition, nodeBetween, nodeExtend } from './node';
import { File } from './file';
function nodeFromToken(t: Token): JNode{
return {
val: t.val,
ext: null,
startLine: t.startLine,
startColumn: t.startColumn,
endLine: t.endLine,
endColumn: t.endColumn
};
}
function nodeFromTrivalToken(t: Token): JNode{
return {
val: null,
ext: null,
startLine: t.startLine,
startColumn: t.startColumn,
endLine: t.endLine,
endColumn: t.endColumn
};
}
let escapes: {[s: string]: string} = {
'n': '\n',
'f': '\f',
'b': '\b',
'r': '\r',
't': '\t',
'\\': '\\',
'"': '"',
"'": "'"
};
function unescape(s: string): string{
let ret = '';
let i = 0;
while(i < s.length){
let c = s.charAt(i);
if(c === '\\'){
c = s.charAt(++i);
if(escapes[c]){
ret += escapes[c];
i++;
}
else if(c === 'u' || c === 'x' || c === 'U' || c === 'X'){
c = s.charAt(++i);
let hex = '';
while(/[0-9a-fA-F]/.test(c)){
hex += c;
c = s.charAt(++i);
}
ret += String.fromCharCode(parseInt(hex, 16));
}
}
else {
ret += c;
i++;
}
}
return ret;
}
/*
constants
*/
var jjlf = '\n'.charCodeAt(0);
var jjcr = '\r'.charCodeAt(0);
interface DFATable{
pnext: number[];
disnext: number[];
checknext: number[];
maxAsicii: number;
classTable: number[];
unicodeClassTable: number[];
isEnd: number[];
hasArc: number[];
};
/*
dfa table definations
*/
var jjlexpnext0: number[] = [
50, 50, 141, 50, 50, 50, 50, 50, 51, 50,
50, 50, 50, 50, 50, 50, 112, 50, 50, 50,
50, 50, 50, 112, 50, 50, 52, 50, 50, 50,
112, 112, 112, 112, 112, 112, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 30, 30, 140,
30, 31, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 95, 30, 30, 30, 30, 30, 30,
95, 30, 30, 32, 30, 30, 30, 95, 95, 95,
95, 95, 95, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 50, 50, 139, 50, 50, 50,
50, 50, 51, 50, 50, 50, 50, 50, 50, 50,
112, 50, 50, 50, 50, 50, 50, 112, 50, 50,
52, 50, 50, 50, 112, 112, 112, 112, 112, 112,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 30, 30, 138, 30, 31, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 95, 30, 30,
30, 30, 30, 30, 95, 30, 30, 32, 30, 30,
30, 95, 95, 95, 95, 95, 95, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 50, 50,
137, 50, 50, 50, 50, 50, 51, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 52, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 30, 30, 136, 30, 31,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 32, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 33, 33, 135, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 50,
50, 134, 50, 50, 50, 50, 50, 51, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 52, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 33, 33, 133, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 30, 30, 132, 30, 31, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 32,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
50, 50, 131, 50, 50, 50, 50, 50, 51, 50,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 52, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 33, 33, 130,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 30, 30, 129, 30, 31, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
32, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 128, 16, 17, 18,
19, 20, 21, 6, 6, 22, 127, 23, 24, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 25, 26, 27, 28, 34, 82, 90, 66,
70, 59, 83, 67, 62, 63, 35, 91, 71, 126,
60, 53, 125, 34, 34, 54, 124, 84, 123, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 122, 121, 36, 37, 120, 119, 118,
117, 116, 35, 115, 114, 113, 111, 110, 109, 34,
34, 108, 107, 106, 105, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 104,
103, 36, 37, 102, 101, 100, 99, 98, 35, 97,
96, 93, 92, 89, 88, 34, 34, 87, 86, 85,
81, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 80, 79, 36, 37, 78,
77, 76, 72, 69, 35, 68, 65, 64, 61, 58,
55, 34, 34, 29, 1, -1, -1, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, -1, -1, 36, 37, -1, -1, -1, -1, -1,
35, -1, -1, -1, -1, -1, -1, 34, 34, -1,
-1, -1, -1, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, -1, -1, 36,
37, -1, -1, -1, -1, -1, 35, -1, -1, -1,
-1, -1, -1, 34, 34, -1, -1, -1, -1, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 38, -1, -1, 36, 37, -1, -1, -1,
-1, -1, -1, -1, 73, -1, -1, -1, 73, -1,
-1, -1, -1, -1, -1, 39, -1, -1, -1, 40,
-1, -1, 41, 42, 74, 43, 73, 44, 45, 46,
47, 73, 48, 49, 56, 73, -1, -1, 56, -1,
-1, -1, 73, -1, -1, 73, -1, 73, 74, -1,
74, -1, 94, -1, 57, -1, 56, -1, -1, 94,
-1, 56, -1, -1, -1, 56, 94, 94, 94, 94,
94, 94, 56, -1, 75, 56, -1, 56, 57, -1,
57, 75, -1, -1, -1, -1, -1, -1, 75, 75,
75, 75, 75, 75,
];
var jjlexdisnext0: number[] = [
740, 953, -57, 951, 684, 627, 1020, 1065, 570, -57,
-57, -57, -57, -57, -57, 800, -57, -57, -57, 929,
-57, -57, -57, -57, -57, -57, -57, -57, 974, -57,
513, -57, 1110, 456, 928, 882, 836, 790, -57, 909,
760, 914, 763, 913, 903, 755, 900, 905, 757, 896,
399, -57, 1080, -57, 342, -57, 285, 1138, 892, 896,
892, 906, 891, 872, 767, 867, 861, 860, 870, 867,
759, 858, 867, 228, 1116, 171, 870, 852, 852, 863,
852, 847, 847, 843, -57, 859, 826, 819, 830, 824,
824, 825, 822, -57, 114, 57, 804, 803, 823, 817,
805, -57, 802, -57, 802, 804, 796, -57, 796, 776,
779, -57, 0, 766, -57, 780, 721, 709, -57, 640,
587, 525, -57, 486, -57, -57, 428, -57, -57, 358,
-57, -57, 307, 242, 198, 130, 80, -57, 16, -57,
-37, -57,
];
var jjlexchecknext0: number[] = [
112, 112, 140, 112, 112, 112, 112, 112, 112, 112,
112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
112, 112, 112, 112, 112, 112, 112, 95, 95, 138,
95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
95, 95, 95, 95, 94, 94, 136, 94, 94, 94,
94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
94, 75, 75, 135, 75, 75, 75, 75, 75, 75,
75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
75, 75, 75, 75, 75, 75, 75, 75, 73, 73,
134, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 56, 56, 133, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 54, 54, 132, 54, 54, 54, 54, 54,
54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
54, 54, 54, 54, 54, 54, 54, 54, 54, 50,
50, 129, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 33, 33, 126, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 30, 30, 123, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
8, 8, 121, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 5, 5, 120,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 4, 4, 119, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 117, 0, 0, 0,
0, 0, 0, 0, 0, 0, 116, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 37, 64, 70, 45,
48, 40, 64, 45, 42, 42, 37, 70, 48, 115,
40, 15, 113, 37, 37, 15, 110, 64, 109, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 36, 108, 106, 37, 37, 105, 104, 102,
100, 99, 36, 98, 97, 96, 92, 91, 90, 36,
36, 89, 88, 87, 86, 36, 36, 36, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36, 35, 85,
83, 36, 36, 82, 81, 80, 79, 78, 35, 77,
76, 72, 71, 69, 68, 35, 35, 67, 66, 65,
63, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 34, 62, 61, 35, 35, 60,
59, 58, 49, 47, 34, 46, 44, 43, 41, 39,
19, 34, 34, 3, 1, -1, -1, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
28, -1, -1, 34, 34, -1, -1, -1, -1, -1,
28, -1, -1, -1, -1, -1, -1, 28, 28, -1,
-1, -1, -1, 28, 28, 28, 28, 28, 28, 28,
28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
28, 28, 28, 28, 28, 28, 6, -1, -1, 28,
28, -1, -1, -1, -1, -1, 6, -1, -1, -1,
-1, -1, -1, 6, 6, -1, -1, -1, -1, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 7, -1, -1, 6, 6, -1, -1, -1,
-1, -1, -1, -1, 52, -1, -1, -1, 52, -1,
-1, -1, -1, -1, -1, 7, -1, -1, -1, 7,
-1, -1, 7, 7, 52, 7, 52, 7, 7, 7,
7, 52, 7, 7, 32, 52, -1, -1, 32, -1,
-1, -1, 52, -1, -1, 52, -1, 52, 52, -1,
52, -1, 74, -1, 32, -1, 32, -1, -1, 74,
-1, 32, -1, -1, -1, 32, 74, 74, 74, 74,
74, 74, 32, -1, 57, 32, -1, 32, 32, -1,
32, 57, -1, -1, -1, -1, -1, -1, 57, 57,
57, 57, 57, 57,
];
var jjlexclassTable0: number[] = [
0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
2, 0, 0, 3, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 4, 5, 6, 7, 0, 8,
9, 10, 11, 12, 13, 14, 0, 15, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 17, 18,
19, 20, 21, 22, 0, 23, 23, 23, 23, 23,
23, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 24, 6, 6, 24, 6,
6, 25, 26, 27, 28, 29, 0, 30, 31, 32,
33, 34, 35, 36, 37, 38, 6, 39, 40, 41,
42, 43, 44, 6, 45, 46, 47, 48, 6, 49,
50, 51, 6, 52, 53, 54, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
55, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 55, 0, 0, 0, 0, 55, 0, 0, 0,
0, 0, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 0, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 0, 55, 55,
55, 55, 55, 55, 55, 55,
];
var jjlexunicodeClassTable0: number[] = [
55, 256, 705, 0, 706, 709, 55, 710, 721, 0,
722, 735, 55, 736, 740, 0, 741, 747, 55, 748,
748, 0, 749, 749, 55, 750, 750, 0, 751, 767,
56, 768, 879, 55, 880, 884, 0, 885, 885, 55,
886, 887, 0, 888, 889, 55, 890, 893, 0, 894,
901, 55, 902, 902, 0, 903, 903, 55, 904, 906,
0, 907, 907, 55, 908, 908, 0, 909, 909, 55,
910, 929, 0, 930, 930, 55, 931, 1013, 0, 1014,
1014, 55, 1015, 1153, 0, 1154, 1154, 56, 1155, 1159,
0, 1160, 1161, 55, 1162, 1319, 0, 1320, 1328, 55,
1329, 1366, 0, 1367, 1368, 55, 1369, 1369, 0, 1370,
1376, 55, 1377, 1415, 0, 1416, 1424, 56, 1425, 1469,
0, 1470, 1470, 56, 1471, 1471, 0, 1472, 1472, 56,
1473, 1474, 0, 1475, 1475, 56, 1476, 1477, 0, 1478,
1478, 56, 1479, 1479, 0, 1480, 1487, 55, 1488, 1514,
0, 1515, 1519, 55, 1520, 1522, 0, 1523, 1551, 56,
1552, 1562, 0, 1563, 1567, 55, 1568, 1610, 56, 1611,
1641, 0, 1642, 1645, 55, 1646, 1647, 56, 1648, 1648,
55, 1649, 1747, 0, 1748, 1748, 55, 1749, 1749, 56,
1750, 1756, 0, 1757, 1758, 56, 1759, 1764, 55, 1765,
1766, 56, 1767, 1768, 0, 1769, 1769, 56, 1770, 1773,
55, 1774, 1775, 56, 1776, 1785, 55, 1786, 1788, 0,
1789, 1790, 55, 1791, 1791, 0, 1792, 1807, 55, 1808,
1808, 56, 1809, 1809, 55, 1810, 1839, 56, 1840, 1866,
0, 1867, 1868, 55, 1869, 1957, 56, 1958, 1968, 55,
1969, 1969, 0, 1970, 1983, 56, 1984, 1993, 55, 1994,
2026, 56, 2027, 2035, 55, 2036, 2037, 0, 2038, 2041,
55, 2042, 2042, 0, 2043, 2047, 55, 2048, 2069, 56,
2070, 2073, 55, 2074, 2074, 56, 2075, 2083, 55, 2084,
2084, 56, 2085, 2087, 55, 2088, 2088, 56, 2089, 2093,
0, 2094, 2111, 55, 2112, 2136, 56, 2137, 2139, 0,
2140, 2207, 55, 2208, 2208, 0, 2209, 2209, 55, 2210,
2220, 0, 2221, 2275, 56, 2276, 2302, 0, 2303, 2303,
56, 2304, 2307, 55, 2308, 2361, 56, 2362, 2364, 55,
2365, 2365, 56, 2366, 2383, 55, 2384, 2384, 56, 2385,
2391, 55, 2392, 2401, 56, 2402, 2403, 0, 2404, 2405,
56, 2406, 2415, 0, 2416, 2416, 55, 2417, 2423, 0,
2424, 2424, 55, 2425, 2431, 0, 2432, 2432, 56, 2433,
2435, 0, 2436, 2436, 55, 2437, 2444, 0, 2445, 2446,
55, 2447, 2448, 0, 2449, 2450, 55, 2451, 2472, 0,
2473, 2473, 55, 2474, 2480, 0, 2481, 2481, 55, 2482,
2482, 0, 2483, 2485, 55, 2486, 2489, 0, 2490, 2491,
56, 2492, 2492, 55, 2493, 2493, 56, 2494, 2500, 0,
2501, 2502, 56, 2503, 2504, 0, 2505, 2506, 56, 2507,
2509, 55, 2510, 2510, 0, 2511, 2518, 56, 2519, 2519,
0, 2520, 2523, 55, 2524, 2525, 0, 2526, 2526, 55,
2527, 2529, 56, 2530, 2531, 0, 2532, 2533, 56, 2534,
2543, 55, 2544, 2545, 0, 2546, 2560, 56, 2561, 2563,
0, 2564, 2564, 55, 2565, 2570, 0, 2571, 2574, 55,
2575, 2576, 0, 2577, 2578, 55, 2579, 2600, 0, 2601,
2601, 55, 2602, 2608, 0, 2609, 2609, 55, 2610, 2611,
0, 2612, 2612, 55, 2613, 2614, 0, 2615, 2615, 55,
2616, 2617, 0, 2618, 2619, 56, 2620, 2620, 0, 2621,
2621, 56, 2622, 2626, 0, 2627, 2630, 56, 2631, 2632,
0, 2633, 2634, 56, 2635, 2637, 0, 2638, 2640, 56,
2641, 2641, 0, 2642, 2648, 55, 2649, 2652, 0, 2653,
2653, 55, 2654, 2654, 0, 2655, 2661, 56, 2662, 2673,
55, 2674, 2676, 56, 2677, 2677, 0, 2678, 2688, 56,
2689, 2691, 0, 2692, 2692, 55, 2693, 2701, 0, 2702,
2702, 55, 2703, 2705, 0, 2706, 2706, 55, 2707, 2728,
0, 2729, 2729, 55, 2730, 2736, 0, 2737, 2737, 55,
2738, 2739, 0, 2740, 2740, 55, 2741, 2745, 0, 2746,
2747, 56, 2748, 2748, 55, 2749, 2749, 56, 2750, 2757,
0, 2758, 2758, 56, 2759, 2761, 0, 2762, 2762, 56,
2763, 2765, 0, 2766, 2767, 55, 2768, 2768, 0, 2769,
2783, 55, 2784, 2785, 56, 2786, 2787, 0, 2788, 2789,
56, 2790, 2799, 0, 2800, 2816, 56, 2817, 2819, 0,
2820, 2820, 55, 2821, 2828, 0, 2829, 2830, 55, 2831,
2832, 0, 2833, 2834, 55, 2835, 2856, 0, 2857, 2857,
55, 2858, 2864, 0, 2865, 2865, 55, 2866, 2867, 0,
2868, 2868, 55, 2869, 2873, 0, 2874, 2875, 56, 2876,
2876, 55, 2877, 2877, 56, 2878, 2884, 0, 2885, 2886,
56, 2887, 2888, 0, 2889, 2890, 56, 2891, 2893, 0,
2894, 2901, 56, 2902, 2903, 0, 2904, 2907, 55, 2908,
2909, 0, 2910, 2910, 55, 2911, 2913, 56, 2914, 2915,
0, 2916, 2917, 56, 2918, 2927, 0, 2928, 2928, 55,
2929, 2929, 0, 2930, 2945, 56, 2946, 2946, 55, 2947,
2947, 0, 2948, 2948, 55, 2949, 2954, 0, 2955, 2957,
55, 2958, 2960, 0, 2961, 2961, 55, 2962, 2965, 0,
2966, 2968, 55, 2969, 2970, 0, 2971, 2971, 55, 2972,
2972, 0, 2973, 2973, 55, 2974, 2975, 0, 2976, 2978,
55, 2979, 2980, 0, 2981, 2983, 55, 2984, 2986, 0,
2987, 2989, 55, 2990, 3001, 0, 3002, 3005, 56, 3006,
3010, 0, 3011, 3013, 56, 3014, 3016, 0, 3017, 3017,
56, 3018, 3021, 0, 3022, 3023, 55, 3024, 3024, 0,
3025, 3030, 56, 3031, 3031, 0, 3032, 3045, 56, 3046,
3055, 0, 3056, 3072, 56, 3073, 3075, 0, 3076, 3076,
55, 3077, 3084, 0, 3085, 3085, 55, 3086, 3088, 0,
3089, 3089, 55, 3090, 3112, 0, 3113, 3113, 55, 3114,
3123, 0, 3124, 3124, 55, 3125, 3129, 0, 3130, 3132,
55, 3133, 3133, 56, 3134, 3140, 0, 3141, 3141, 56,
3142, 3144, 0, 3145, 3145, 56, 3146, 3149, 0, 3150,
3156, 56, 3157, 3158, 0, 3159, 3159, 55, 3160, 3161,
0, 3162, 3167, 55, 3168, 3169, 56, 3170, 3171, 0,
3172, 3173, 56, 3174, 3183, 0, 3184, 3201, 56, 3202,
3203, 0, 3204, 3204, 55, 3205, 3212, 0, 3213, 3213,
55, 3214, 3216, 0, 3217, 3217, 55, 3218, 3240, 0,
3241, 3241, 55, 3242, 3251, 0, 3252, 3252, 55, 3253,
3257, 0, 3258, 3259, 56, 3260, 3260, 55, 3261, 3261,
56, 3262, 3268, 0, 3269, 3269, 56, 3270, 3272, 0,
3273, 3273, 56, 3274, 3277, 0, 3278, 3284, 56, 3285,
3286, 0, 3287, 3293, 55, 3294, 3294, 0, 3295, 3295,
55, 3296, 3297, 56, 3298, 3299, 0, 3300, 3301, 56,
3302, 3311, 0, 3312, 3312, 55, 3313, 3314, 0, 3315,
3329, 56, 3330, 3331, 0, 3332, 3332, 55, 3333, 3340,
0, 3341, 3341, 55, 3342, 3344, 0, 3345, 3345, 55,
3346, 3386, 0, 3387, 3388, 55, 3389, 3389, 56, 3390,
3396, 0, 3397, 3397, 56, 3398, 3400, 0, 3401, 3401,
56, 3402, 3405, 55, 3406, 3406, 0, 3407, 3414, 56,
3415, 3415, 0, 3416, 3423, 55, 3424, 3425, 56, 3426,
3427, 0, 3428, 3429, 56, 3430, 3439, 0, 3440, 3449,
55, 3450, 3455, 0, 3456, 3457, 56, 3458, 3459, 0,
3460, 3460, 55, 3461, 3478, 0, 3479, 3481, 55, 3482,
3505, 0, 3506, 3506, 55, 3507, 3515, 0, 3516, 3516,
55, 3517, 3517, 0, 3518, 3519, 55, 3520, 3526, 0,
3527, 3529, 56, 3530, 3530, 0, 3531, 3534, 56, 3535,
3540, 0, 3541, 3541, 56, 3542, 3542, 0, 3543, 3543,
56, 3544, 3551, 0, 3552, 3569, 56, 3570, 3571, 0,
3572, 3584, 55, 3585, 3632, 56, 3633, 3633, 55, 3634,
3635, 56, 3636, 3642, 0, 3643, 3647, 55, 3648, 3654,
56, 3655, 3662, 0, 3663, 3663, 56, 3664, 3673, 0,
3674, 3712, 55, 3713, 3714, 0, 3715, 3715, 55, 3716,
3716, 0, 3717, 3718, 55, 3719, 3720, 0, 3721, 3721,
55, 3722, 3722, 0, 3723, 3724, 55, 3725, 3725, 0,
3726, 3731, 55, 3732, 3735, 0, 3736, 3736, 55, 3737,
3743, 0, 3744, 3744, 55, 3745, 3747, 0, 3748, 3748,
55, 3749, 3749, 0, 3750, 3750, 55, 3751, 3751, 0,
3752, 3753, 55, 3754, 3755, 0, 3756, 3756, 55, 3757,
3760, 56, 3761, 3761, 55, 3762, 3763, 56, 3764, 3769,
0, 3770, 3770, 56, 3771, 3772, 55, 3773, 3773, 0,
3774, 3775, 55, 3776, 3780, 0, 3781, 3781, 55, 3782,
3782, 0, 3783, 3783, 56, 3784, 3789, 0, 3790, 3791,
56, 3792, 3801, 0, 3802, 3803, 55, 3804, 3807, 0,
3808, 3839, 55, 3840, 3840, 0, 3841, 3863, 56, 3864,
3865, 0, 3866, 3871, 56, 3872, 3881, 0, 3882, 3892,
56, 3893, 3893, 0, 3894, 3894, 56, 3895, 3895, 0,
3896, 3896, 56, 3897, 3897, 0, 3898, 3901, 56, 3902,
3903, 55, 3904, 3911, 0, 3912, 3912, 55, 3913, 3948,
0, 3949, 3952, 56, 3953, 3972, 0, 3973, 3973, 56,
3974, 3975, 55, 3976, 3980, 56, 3981, 3991, 0, 3992,
3992, 56, 3993, 4028, 0, 4029, 4037, 56, 4038, 4038,
0, 4039, 4095, 55, 4096, 4138, 56, 4139, 4158, 55,
4159, 4159, 56, 4160, 4169, 0, 4170, 4175, 55, 4176,
4181, 56, 4182, 4185, 55, 4186, 4189, 56, 4190, 4192,
55, 4193, 4193, 56, 4194, 4196, 55, 4197, 4198, 56,
4199, 4205, 55, 4206, 4208, 56, 4209, 4212, 55, 4213,
4225, 56, 4226, 4237, 55, 4238, 4238, 56, 4239, 4253,
0, 4254, 4255, 55, 4256, 4293, 0, 4294, 4294, 55,
4295, 4295, 0, 4296, 4300, 55, 4301, 4301, 0, 4302,
4303, 55, 4304, 4346, 0, 4347, 4347, 55, 4348, 4680,
0, 4681, 4681, 55, 4682, 4685, 0, 4686, 4687, 55,
4688, 4694, 0, 4695, 4695, 55, 4696, 4696, 0, 4697,
4697, 55, 4698, 4701, 0, 4702, 4703, 55, 4704, 4744,
0, 4745, 4745, 55, 4746, 4749, 0, 4750, 4751, 55,
4752, 4784, 0, 4785, 4785, 55, 4786, 4789, 0, 4790,
4791, 55, 4792, 4798, 0, 4799, 4799, 55, 4800, 4800,
0, 4801, 4801, 55, 4802, 4805, 0, 4806, 4807, 55,
4808, 4822, 0, 4823, 4823, 55, 4824, 4880, 0, 4881,
4881, 55, 4882, 4885, 0, 4886, 4887, 55, 4888, 4954,
0, 4955, 4956, 56, 4957, 4959, 0, 4960, 4991, 55,
4992, 5007, 0, 5008, 5023, 55, 5024, 5108, 0, 5109,
5120, 55, 5121, 5740, 0, 5741, 5742, 55, 5743, 5759,
0, 5760, 5760, 55, 5761, 5786, 0, 5787, 5791, 55,
5792, 5866, 0, 5867, 5869, 55, 5870, 5872, 0, 5873,
5887, 55, 5888, 5900, 0, 5901, 5901, 55, 5902, 5905,
56, 5906, 5908, 0, 5909, 5919, 55, 5920, 5937, 56,
5938, 5940, 0, 5941, 5951, 55, 5952, 5969, 56, 5970,
5971, 0, 5972, 5983, 55, 5984, 5996, 0, 5997, 5997,
55, 5998, 6000, 0, 6001, 6001, 56, 6002, 6003, 0,
6004, 6015, 55, 6016, 6067, 56, 6068, 6099, 0, 6100,
6102, 55, 6103, 6103, 0, 6104, 6107, 55, 6108, 6108,
56, 6109, 6109, 0, 6110, 6111, 56, 6112, 6121, 0,
6122, 6154, 56, 6155, 6157, 0, 6158, 6159, 56, 6160,
6169, 0, 6170, 6175, 55, 6176, 6263, 0, 6264, 6271,
55, 6272, 6312, 56, 6313, 6313, 55, 6314, 6314, 0,
6315, 6319, 55, 6320, 6389, 0, 6390, 6399, 55, 6400,
6428, 0, 6429, 6431, 56, 6432, 6443, 0, 6444, 6447,
56, 6448, 6459, 0, 6460, 6469, 56, 6470, 6479, 55,
6480, 6509, 0, 6510, 6511, 55, 6512, 6516, 0, 6517,
6527, 55, 6528, 6571, 0, 6572, 6575, 56, 6576, 6592,
55, 6593, 6599, 56, 6600, 6601, 0, 6602, 6607, 56,
6608, 6617, 0, 6618, 6655, 55, 6656, 6678, 56, 6679,
6683, 0, 6684, 6687, 55, 6688, 6740, 56, 6741, 6750,
0, 6751, 6751, 56, 6752, 6780, 0, 6781, 6782, 56,
6783, 6793, 0, 6794, 6799, 56, 6800, 6809, 0, 6810,
6822, 55, 6823, 6823, 0, 6824, 6911, 56, 6912, 6916,
55, 6917, 6963, 56, 6964, 6980, 55, 6981, 6987, 0,
6988, 6991, 56, 6992, 7001, 0, 7002, 7018, 56, 7019,
7027, 0, 7028, 7039, 56, 7040, 7042, 55, 7043, 7072,
56, 7073, 7085, 55, 7086, 7087, 56, 7088, 7097, 55,
7098, 7141, 56, 7142, 7155, 0, 7156, 7167, 55, 7168,
7203, 56, 7204, 7223, 0, 7224, 7231, 56, 7232, 7241,
0, 7242, 7244, 55, 7245, 7247, 56, 7248, 7257, 55,
7258, 7293, 0, 7294, 7375, 56, 7376, 7378, 0, 7379,
7379, 56, 7380, 7400, 55, 7401, 7404, 56, 7405, 7405,
55, 7406, 7409, 56, 7410, 7412, 55, 7413, 7414, 0,
7415, 7423, 55, 7424, 7615, 56, 7616, 7654, 0, 7655,
7675, 56, 7676, 7679, 55, 7680, 7957, 0, 7958, 7959,
55, 7960, 7965, 0, 7966, 7967, 55, 7968, 8005, 0,
8006, 8007, 55, 8008, 8013, 0, 8014, 8015, 55, 8016,
8023, 0, 8024, 8024, 55, 8025, 8025, 0, 8026, 8026,
55, 8027, 8027, 0, 8028, 8028, 55, 8029, 8029, 0,
8030, 8030, 55, 8031, 8061, 0, 8062, 8063, 55, 8064,
8116, 0, 8117, 8117, 55, 8118, 8124, 0, 8125, 8125,
55, 8126, 8126, 0, 8127, 8129, 55, 8130, 8132, 0,
8133, 8133, 55, 8134, 8140, 0, 8141, 8143, 55, 8144,
8147, 0, 8148, 8149, 55, 8150, 8155, 0, 8156, 8159,
55, 8160, 8172, 0, 8173, 8177, 55, 8178, 8180, 0,
8181, 8181, 55, 8182, 8188, 0, 8189, 8203, 56, 8204,
8205, 0, 8206, 8254, 56, 8255, 8256, 0, 8257, 8275,
56, 8276, 8276, 0, 8277, 8304, 55, 8305, 8305, 0,
8306, 8318, 55, 8319, 8319, 0, 8320, 8335, 55, 8336,
8348, 0, 8349, 8399, 56, 8400, 8412, 0, 8413, 8416,
56, 8417, 8417, 0, 8418, 8420, 56, 8421, 8432, 0,
8433, 8449, 55, 8450, 8450, 0, 8451, 8454, 55, 8455,
8455, 0, 8456, 8457, 55, 8458, 8467, 0, 8468, 8468,
55, 8469, 8469, 0, 8470, 8472, 55, 8473, 8477, 0,
8478, 8483, 55, 8484, 8484, 0, 8485, 8485, 55, 8486,
8486, 0, 8487, 8487, 55, 8488, 8488, 0, 8489, 8489,
55, 8490, 8493, 0, 8494, 8494, 55, 8495, 8505, 0,
8506, 8507, 55, 8508, 8511, 0, 8512, 8516, 55, 8517,
8521, 0, 8522, 8525, 55, 8526, 8526, 0, 8527, 8543,
55, 8544, 8584, 0, 8585, 11263, 55, 11264, 11310, 0,
11311, 11311, 55, 11312, 11358, 0, 11359, 11359, 55, 11360,
11492, 0, 11493, 11498, 55, 11499, 11502, 56, 11503, 11505,
55, 11506, 11507, 0, 11508, 11519, 55, 11520, 11557, 0,
11558, 11558, 55, 11559, 11559, 0, 11560, 11564, 55, 11565,
11565, 0, 11566, 11567, 55, 11568, 11623, 0, 11624, 11630,
55, 11631, 11631, 0, 11632, 11646, 56, 11647, 11647, 55,
11648, 11670, 0, 11671, 11679, 55, 11680, 11686, 0, 11687,
11687, 55, 11688, 11694, 0, 11695, 11695, 55, 11696, 11702,
0, 11703, 11703, 55, 11704, 11710, 0, 11711, 11711, 55,
11712, 11718, 0, 11719, 11719, 55, 11720, 11726, 0, 11727,
11727, 55, 11728, 11734, 0, 11735, 11735, 55, 11736, 11742,
0, 11743, 11743, 56, 11744, 11775, 0, 11776, 11822, 55,
11823, 11823, 0, 11824, 12292, 55, 12293, 12295, 0, 12296,
12320, 55, 12321, 12329, 56, 12330, 12335, 0, 12336, 12336,
55, 12337, 12341, 0, 12342, 12343, 55, 12344, 12348, 0,
12349, 12352, 55, 12353, 12438, 0, 12439, 12440, 56, 12441,
12442, 0, 12443, 12444, 55, 12445, 12447, 0, 12448, 12448,
55, 12449, 12538, 0, 12539, 12539, 55, 12540, 12543, 0,
12544, 12548, 55, 12549, 12589, 0, 12590, 12592, 55, 12593,
12686, 0, 12687, 12703, 55, 12704, 12730, 0, 12731, 12783,
55, 12784, 12799, 0, 12800, 13311, 55, 13312, 19893, 0,
19894, 19967, 55, 19968, 40908, 0, 40909, 40959, 55, 40960,
42124, 0, 42125, 42191, 55, 42192, 42237, 0, 42238, 42239,
55, 42240, 42508, 0, 42509, 42511, 55, 42512, 42527, 56,
42528, 42537, 55, 42538, 42539, 0, 42540, 42559, 55, 42560,
42606, 56, 42607, 42607, 0, 42608, 42611, 56, 42612, 42621,
0, 42622, 42622, 55, 42623, 42647, 0, 42648, 42654, 56,
42655, 42655, 55, 42656, 42735, 56, 42736, 42737, 0, 42738,
42774, 55, 42775, 42783, 0, 42784, 42785, 55, 42786, 42888,
0, 42889, 42890, 55, 42891, 42894, 0, 42895, 42895, 55,
42896, 42899, 0, 42900, 42911, 55, 42912, 42922, 0, 42923,
42999, 55, 43000, 43009, 56, 43010, 43010, 55, 43011, 43013,
56, 43014, 43014, 55, 43015, 43018, 56, 43019, 43019, 55,
43020, 43042, 56, 43043, 43047, 0, 43048, 43071, 55, 43072,
43123, 0, 43124, 43135, 56, 43136, 43137, 55, 43138, 43187,
56, 43188, 43204, 0, 43205, 43215, 56, 43216, 43225, 0,
43226, 43231, 56, 43232, 43249, 55, 43250, 43255, 0, 43256,
43258, 55, 43259, 43259, 0, 43260, 43263, 56, 43264, 43273,
55, 43274, 43301, 56, 43302, 43309, 0, 43310, 43311, 55,
43312, 43334, 56, 43335, 43347, 0, 43348, 43359, 55, 43360,
43388, 0, 43389, 43391, 56, 43392, 43395, 55, 43396, 43442,
56, 43443, 43456, 0, 43457, 43470, 55, 43471, 43471, 56,
43472, 43481, 0, 43482, 43519, 55, 43520, 43560, 56, 43561,
43574, 0, 43575, 43583, 55, 43584, 43586, 56, 43587, 43587,
55, 43588, 43595, 56, 43596, 43597, 0, 43598, 43599, 56,
43600, 43609, 0, 43610, 43615, 55, 43616, 43638, 0, 43639,
43641, 55, 43642, 43642, 56, 43643, 43643, 0, 43644, 43647,
55, 43648, 43695, 56, 43696, 43696, 55, 43697, 43697, 56,
43698, 43700, 55, 43701, 43702, 56, 43703, 43704, 55, 43705,
43709, 56, 43710, 43711, 55, 43712, 43712, 56, 43713, 43713,
55, 43714, 43714, 0, 43715, 43738, 55, 43739, 43741, 0,
43742, 43743, 55, 43744, 43754, 56, 43755, 43759, 0, 43760,
43761, 55, 43762, 43764, 56, 43765, 43766, 0, 43767, 43776,
55, 43777, 43782, 0, 43783, 43784, 55, 43785, 43790, 0,
43791, 43792, 55, 43793, 43798, 0, 43799, 43807, 55, 43808,
43814, 0, 43815, 43815, 55, 43816, 43822, 0, 43823, 43967,
55, 43968, 44002, 56, 44003, 44010, 0, 44011, 44011, 56,
44012, 44013, 0, 44014, 44015, 56, 44016, 44025, 0, 44026,
44031, 55, 44032, 55203, 0, 55204, 55215, 55, 55216, 55238,
0, 55239, 55242, 55, 55243, 55291, 0, 55292, 63743, 55,
63744, 64109, 0, 64110, 64111, 55, 64112, 64217, 0, 64218,
64255, 55, 64256, 64262, 0, 64263, 64274, 55, 64275, 64279,
0, 64280, 64284, 55, 64285, 64285, 56, 64286, 64286, 55,
64287, 64296, 0, 64297, 64297, 55, 64298, 64310, 0, 64311,
64311, 55, 64312, 64316, 0, 64317, 64317, 55, 64318, 64318,
0, 64319, 64319, 55, 64320, 64321, 0, 64322, 64322, 55,
64323, 64324, 0, 64325, 64325, 55, 64326, 64433, 0, 64434,
64466, 55, 64467, 64829, 0, 64830, 64847, 55, 64848, 64911,
0, 64912, 64913, 55, 64914, 64967, 0, 64968, 65007, 55,
65008, 65019, 0, 65020, 65023, 56, 65024, 65039, 0, 65040,
65055, 56, 65056, 65062, 0, 65063, 65074, 56, 65075, 65076,
0, 65077, 65100, 56, 65101, 65103, 0, 65104, 65135, 55,
65136, 65140, 0, 65141, 65141, 55, 65142, 65276, 0, 65277,
65295, 56, 65296, 65305, 0, 65306, 65312, 55, 65313, 65338,
0, 65339, 65342, 56, 65343, 65343, 0, 65344, 65344, 55,
65345, 65370, 0, 65371, 65381, 55, 65382, 65470, 0, 65471,
65473, 55, 65474, 65479, 0, 65480, 65481, 55, 65482, 65487,
0, 65488, 65489, 55, 65490, 65495, 0, 65496, 65497, 55,
65498, 65500, 0, 65501,Infinity,
];
var jjlexisEnd0: number[] = [
0,1,1,1,0,1,1,0,0,1,1,1,1,1,1,
0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,
0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,
0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,
0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,
0,0,1,1,1,1,0,1,1,0,1,1,0,0,0,
0,0,1,0,1,0,1,
];
var jjlexhasArc0: number[] = [
1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,
1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,
1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,
1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,
1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,
1,1,0,1,1,1,0,1,1,0,1,1,1,0,1,
1,1,0,1,0,0,1,0,0,1,0,0,1,1,1,
1,1,0,1,0,1,0,
];
var jjlextable0: DFATable = {
pnext: jjlexpnext0,
disnext: jjlexdisnext0,
checknext: jjlexchecknext0,
maxAsicii: 255,
classTable: jjlexclassTable0,
unicodeClassTable: jjlexunicodeClassTable0,
isEnd: jjlexisEnd0,
hasArc: jjlexhasArc0
};
var jjlexpnext1: number[] = [
1, 2, 3, 4, 1, 1, 6, 7, 5, 1,
7, 8, 1, -1, 7, 5, 1, 7,
];
var jjlexdisnext1: number[] = [
0, 12, -5, 5, 7, 14, -5, 5, -5,
];
var jjlexchecknext1: number[] = [
0, 0, 0, 0, 0, 7, 3, 4, 7, 7,
4, 4, 1, -1, 5, 1, 1, 5,
];
var jjlexclassTable1: number[] = [
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 2, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 3, 0, 0, 0, 0, 4, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
];
var jjlexunicodeClassTable1: number[] = [
0, 256,Infinity,
];
var jjlexisEnd1: number[] = [
0,1,1,1,0,0,1,1,1,
];
var jjlexhasArc1: number[] = [
1,1,0,1,1,1,0,1,0,
];
var jjlextable1: DFATable = {
pnext: jjlexpnext1,
disnext: jjlexdisnext1,
checknext: jjlexchecknext1,
maxAsicii: 255,
classTable: jjlexclassTable1,
unicodeClassTable: jjlexunicodeClassTable1,
isEnd: jjlexisEnd1,
hasArc: jjlexhasArc1
};
var jjlexpnext2: number[] = [
9, 9, 9, 9, 10, 10, 1, 2, 3, 4,
5, 6, 9, 9, 9, 9, 1, 1, 8, 7,
7,
];
var jjlexdisnext2: number[] = [
6, 17, -6, 17, 0, -6, -6, 12, -6, 16,
-6,
];
var jjlexchecknext2: number[] = [
4, 4, 4, 4, 4, 4, 0, 0, 0, 0,
0, 0, 7, 7, 7, 7, 9, 1,