UNPKG

tscc-compiler

Version:

An LALR(1) compiler compiler written in Typescript

783 lines (780 loc) 160 kB
/* 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,