diff --git a/Features b/Features new file mode 100644 index 0000000..f9ff433 --- /dev/null +++ b/Features @@ -0,0 +1,73 @@ +- [x] Comments + - [x] SingleLine with # + - [x] MultiLine with ### text ### +- [x] Types + - [x] Boolean + - [x] Numbers + - [x] decimal number + - [x] negative number + - [x] octal number + - [x] hexadecimal number + - [x] binary number + - [x] floating point numbers + - [x] Strings + - [x] Heredocs + - [x] Arrays + - [x] null + - [x] Type Juggling (Casting/Converting) +- [x] Variables and Identifiers +- [/] Better scoping and context +- [x] Constants +- [x] If as expression +- [/] Operators + - [x] Arithmetic Operators + - [x] Assignment Operators + - [x] Bitwise Operators + - [x] Comparison Operators + - [ ] Error Control Operators + - [x] Execution Operators + - [x] Incrementing/Decrementing Operators + - [x] Logical Operators + - [x] String Operators + - [x] Type Operators +- [x] Structures + - [x] if + - [x] else + - [x] else if + - [x] while + - [x] do-while + - [x] for + - [x] foreach + - [x] break + - [x] continue + - [x] switch + - [x] declare + - [x] return + - [x] require + - [x] include + - [x] require_once + - [x] include_once + - [x] goto + - [x] echo +- [/] Classes and Objects + - [x] new + - [x] this (and @) + - [x] The Basics + - [x] Properties + - [x] Class Constants + - [x] implements in Autoloading Classes + - [x] Constructors and Destructors + - [x] Visibility + - [x] Object Inheritance + - [x] Scope Resolution Operator (::) + - [x] Static Keyword + - [x] Class Abstraction + - [x] Object Interfaces + - [ ] Traits + - [x] Object Iteration + - [x] Final Keyword + - [x] Object Cloning +- [x] Namespace + - [x] Defining + - [x] Defining with a block + - [x] reference to namespace \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 12e61b9..0000000 --- a/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2013 - 2014 Wael Amine Boutglay - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. diff --git a/Make.cmd b/Make.cmd new file mode 100644 index 0000000..d5ff475 --- /dev/null +++ b/Make.cmd @@ -0,0 +1,2 @@ +coffee --compile --output lib/ src/ +node generate.js \ No newline at end of file diff --git a/Make.sh b/Make.sh new file mode 100644 index 0000000..db5ff03 --- /dev/null +++ b/Make.sh @@ -0,0 +1,3 @@ +#!/bin/bash +coffee --compile --output lib/ src/ +node generate.js \ No newline at end of file diff --git a/README.md b/README.md index 42b98b5..4338f9f 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,2 @@ -# Mammouth - Unfancy PHP # -Mammouth is a small language that compiles into PHP, inspired by CoffeeScript. It's compiled to PHP codes/files that you can run in your PHP server. - - For documentation, usage, and examples, see: - http://mammouth.wamalaka.com/ - - To suggest a feature, report a bug, or general discussion: - http://github.com/btwael/mammouth/issues/ \ No newline at end of file +DON'T USE THIS VERSION - UNDER-DEV +=================================== \ No newline at end of file diff --git a/bin/mammouth b/bin/mammouth index 19a6d09..dca230f 100644 --- a/bin/mammouth +++ b/bin/mammouth @@ -1,16 +1,16 @@ #!/usr/bin/env node var program = require('commander'), fs = require('fs'), - mammouth = require('../extras/mammouth-nodejs.js'), + mammouth = require('../lib/mammouth.js'), patch = require('path'); program - .version('0.2.3') - .usage('[options] ') - .option('-c, --compile', '') - .option('-o, --output [DIR]', 'Write out all compiled PHP files into the specified directory. Use in conjunction with --compile', './'); + .version(mammouth.VERSION) + .usage('[options] ') + .option('-c, --compile', '') + .option('-o, --output [DIR]', 'Write out all compiled PHP files into the specified directory. Use in conjunction with --compile', './'); program.parse(process.argv); -/////////////////////////////////////// -var copyFileSync = function(srcFile, destFile) { +// functions +function copyFileSync(srcFile, destFile) { var BUF_LENGTH, buff, bytesRead, fdr, fdw, pos; BUF_LENGTH = 64 * 1024; buff = new Buffer(BUF_LENGTH); @@ -25,8 +25,8 @@ var copyFileSync = function(srcFile, destFile) { } fs.closeSync(fdr); return fs.closeSync(fdw); -}; -var sharpr = function(path) { +} +function sharpr(path) { var arr = path.split("\\"); pathr = ""; for (var i = 0; i < arr.length; i++) { @@ -37,8 +37,7 @@ var sharpr = function(path) { } }; return pathr; -}; - +} function bld(path, to) { var stats = fs.lstatSync(path); if(stats.isFile()){ @@ -49,8 +48,7 @@ function bld(path, to) { fs.readFile(path, 'utf8', function (err, data) { try { r = mammouth.compile(data); - fs.writeFile(to + '/' + arr[arr.length-1].split(".")[0] + '.php', r, function () { - }); + fs.writeFile(to + '/' + arr[arr.length-1].split(".")[0] + '.php', r, function () {}); } catch(err) { console.log(err); } @@ -82,9 +80,8 @@ function buildFolder(path, output) { for (var i = 0; i < ctn.length; i++) { bld(path + "/" + ctn[i], output); } -}; - -///////////////////////////////// +} +// program if (program.compile) { for (var i = 0; i < program.args.length; i++) { path = sharpr(program.args[i]); diff --git a/build.js b/build.js deleted file mode 100644 index e8ceb86..0000000 --- a/build.js +++ /dev/null @@ -1,60 +0,0 @@ -var fs = require('fs'), - PEG = require('pegjs'); -var rmDir = function(dirPath) { - try { var files = fs.readdirSync(dirPath); } - catch(e) { return; } - if (files.length > 0) - for (var i = 0; i < files.length; i++) { - var filePath = dirPath + '/' + files[i]; - if (fs.statSync(filePath).isFile()) - fs.unlinkSync(filePath); - else - rmDir(filePath); - } - fs.rmdirSync(dirPath); -}; -try { - fs.unlinkSync('src/parser.js'); - fs.unlinkSync('src/LineTerminator.js'); - fs.unlinkSync('extras/mammouth.js'); - fs.unlinkSync('extras/mammouth-nodejs.js'); -} catch(err) { - console.log(err); - fs.writeFile('src/parser.js', '', function () { - }); - fs.writeFile('src/LineTerminator.js', '', function () { - }); - fs.writeFile('extras/mammouth.js', '', function () { - }); - fs.writeFile('extras/mammouth-nodejs.js', '', function () { - }); -} finally { - try { - var data = ''; - data += 'var mammouth = {};' + "\n"; - rf = fs.readFileSync('src/parser.pegjs', 'utf8') - r = PEG.buildParser(rf, {})._source; - fs.writeFile('src/parser.js', 'mammouth.parser' + " = " + r + ';', function () { - }); - data += 'mammouth.parser' + " = " + r + ';'; - rf = fs.readFileSync('src/LineTerminator.pegjs', 'utf8') - r = PEG.buildParser(rf, {})._source; - fs.writeFile('src/LineTerminator.js', 'mammouth.LineTerminatorParser' + " = " + r + ';', function () { - }); - data += 'mammouth.LineTerminatorParser' + " = " + r + ';'; - data += fs.readFileSync('src/tokens.js').toString() + '\n'; - data += fs.readFileSync('src/helpers.js').toString() + '\n'; - data += fs.readFileSync('src/compiler.js').toString() + '\n'; - fs.appendFileSync("extras/mammouth.js", data + "\n"); - } catch(err) { - console.log(err); - } - try { - var data = ''; - data += fs.readFileSync('extras/mammouth.js').toString() + '\n'; - data += 'module.exports = mammouth;' + "\n"; - fs.appendFileSync("extras/mammouth-nodejs.js", data); - } catch(err) { - console.log(err); - } -} \ No newline at end of file diff --git a/extras/mammouth-nodejs.js b/extras/mammouth-nodejs.js deleted file mode 100644 index c1c497c..0000000 --- a/extras/mammouth-nodejs.js +++ /dev/null @@ -1,16038 +0,0 @@ -var mammouth = {}; -mammouth.parser = (function(){ - /* - * Generated by PEG.js 0.7.0. - * - * http://pegjs.majda.cz/ - */ - - function quote(s) { - /* - * ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a - * string literal except for the closing quote character, backslash, - * carriage return, line separator, paragraph separator, and line feed. - * Any character may appear in the form of an escape sequence. - * - * For portability, we also escape escape all control and non-ASCII - * characters. Note that "\0" and "\v" escape sequences are not used - * because JSHint does not like the first and IE the second. - */ - return '"' + s - .replace(/\\/g, '\\\\') // backslash - .replace(/"/g, '\\"') // closing quote character - .replace(/\x08/g, '\\b') // backspace - .replace(/\t/g, '\\t') // horizontal tab - .replace(/\n/g, '\\n') // line feed - .replace(/\f/g, '\\f') // form feed - .replace(/\r/g, '\\r') // carriage return - .replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g, escape) - + '"'; - } - - var result = { - /* - * Parses the input with a generated parser. If the parsing is successfull, - * returns a value explicitly or implicitly specified by the grammar from - * which the parser was generated (see |PEG.buildParser|). If the parsing is - * unsuccessful, throws |PEG.parser.SyntaxError| describing the error. - */ - parse: function(input, startRule) { - var parseFunctions = { - "start": parse_start, - "embedding": parse_embedding, - "embedding_TEXT_INNER": parse_embedding_TEXT_INNER, - "code_block": parse_code_block, - "PrimaryExpression": parse_PrimaryExpression, - "PrimaryExpressionW": parse_PrimaryExpressionW, - "Expression": parse_Expression, - "AssignmentExpression": parse_AssignmentExpression, - "SliceExpression": parse_SliceExpression, - "SliceExpressionWP": parse_SliceExpressionWP, - "FunctionExpression": parse_FunctionExpression, - "FormalParameterList": parse_FormalParameterList, - "AssignmentExpressionOfFunction": parse_AssignmentExpressionOfFunction, - "LeftHandSideAssignmentExpressionOfFunction": parse_LeftHandSideAssignmentExpressionOfFunction, - "AssignmentOperator": parse_AssignmentOperator, - "LeftHandSideExpression": parse_LeftHandSideExpression, - "LeftHandSideExpressionWP": parse_LeftHandSideExpressionWP, - "NewExpression": parse_NewExpression, - "NewExpressionWP": parse_NewExpressionWP, - "MemberExpression": parse_MemberExpression, - "MemberExpressionWP": parse_MemberExpressionWP, - "CallExpression": parse_CallExpression, - "CallExpressionWP": parse_CallExpressionWP, - "Arguments": parse_Arguments, - "ArgumentList": parse_ArgumentList, - "ConditionalExpression": parse_ConditionalExpression, - "LogicalORExpression": parse_LogicalORExpression, - "LogicalOROperator": parse_LogicalOROperator, - "LogicalANDExpression": parse_LogicalANDExpression, - "LogicalANDOperator": parse_LogicalANDOperator, - "BitwiseORExpression": parse_BitwiseORExpression, - "BitwiseOROperator": parse_BitwiseOROperator, - "BitwiseXORExpression": parse_BitwiseXORExpression, - "BitwiseXOROperator": parse_BitwiseXOROperator, - "BitwiseANDExpression": parse_BitwiseANDExpression, - "BitwiseANDOperator": parse_BitwiseANDOperator, - "EqualityExpression": parse_EqualityExpression, - "EqualityOperator": parse_EqualityOperator, - "ShiftExpression": parse_ShiftExpression, - "ShiftOperator": parse_ShiftOperator, - "RelationalExpression": parse_RelationalExpression, - "RelationalOperator": parse_RelationalOperator, - "PostfixExpression": parse_PostfixExpression, - "PostfixOperator": parse_PostfixOperator, - "UnaryExpression": parse_UnaryExpression, - "UnaryOperator": parse_UnaryOperator, - "MultiplicativeExpression": parse_MultiplicativeExpression, - "MultiplicativeOperator": parse_MultiplicativeOperator, - "AdditiveExpression": parse_AdditiveExpression, - "DotAddExpression": parse_DotAddExpression, - "AdditiveOperator": parse_AdditiveOperator, - "statements": parse_statements, - "statement": parse_statement, - "statementNoSameDENT": parse_statementNoSameDENT, - "ExpressionStatement": parse_ExpressionStatement, - "FunctionInLineCall": parse_FunctionInLineCall, - "CallExpression": parse_CallExpression, - "ArgumentsForInline": parse_ArgumentsForInline, - "IfStatement": parse_IfStatement, - "ForStatement": parse_ForStatement, - "WhileStatement": parse_WhileStatement, - "SwitchStatement": parse_SwitchStatement, - "SwitchCase": parse_SwitchCase, - "SwitchElse": parse_SwitchElse, - "BreakStatement": parse_BreakStatement, - "TryStatement": parse_TryStatement, - "CatchErrVar": parse_CatchErrVar, - "FunctionDeclaration": parse_FunctionDeclaration, - "NamespaceDeclaration": parse_NamespaceDeclaration, - "NamespaceId": parse_NamespaceId, - "ClassDeclaration": parse_ClassDeclaration, - "ClassStatement": parse_ClassStatement, - "ClassPropertyDeclaration": parse_ClassPropertyDeclaration, - "ClassConstPropertyDeclaration": parse_ClassConstPropertyDeclaration, - "ClassFunctionDeclaration": parse_ClassFunctionDeclaration, - "PropertyVisibility": parse_PropertyVisibility, - "ContinueStatement": parse_ContinueStatement, - "BreakStatement": parse_BreakStatement, - "EchoStatement": parse_EchoStatement, - "ReturnStatement": parse_ReturnStatement, - "RequireStatement": parse_RequireStatement, - "Require_onceStatement": parse_Require_onceStatement, - "Include_onceStatement": parse_Include_onceStatement, - "IncludeStatement": parse_IncludeStatement, - "AndToken": parse_AndToken, - "BreakToken": parse_BreakToken, - "CaseToken": parse_CaseToken, - "CatchToken": parse_CatchToken, - "ClassToken": parse_ClassToken, - "ConstToken": parse_ConstToken, - "ContinueToken": parse_ContinueToken, - "EchoToken": parse_EchoToken, - "ElseToken": parse_ElseToken, - "ElseIfToken": parse_ElseIfToken, - "FalseToken": parse_FalseToken, - "finallyToken": parse_finallyToken, - "ForToken": parse_ForToken, - "IfToken": parse_IfToken, - "IncludeToken": parse_IncludeToken, - "Include_onceToken": parse_Include_onceToken, - "InToken": parse_InToken, - "NamespaceToken": parse_NamespaceToken, - "NewToken": parse_NewToken, - "NullToken": parse_NullToken, - "OfToken": parse_OfToken, - "OrToken": parse_OrToken, - "ReturnToken": parse_ReturnToken, - "RequireToken": parse_RequireToken, - "Require_onceToken": parse_Require_onceToken, - "PrivateToken": parse_PrivateToken, - "ProtectedToken": parse_ProtectedToken, - "PublicToken": parse_PublicToken, - "script_start": parse_script_start, - "script_end": parse_script_end, - "StaticToken": parse_StaticToken, - "SwitchToken": parse_SwitchToken, - "ThenToken": parse_ThenToken, - "ThisToken": parse_ThisToken, - "TrueToken": parse_TrueToken, - "TryToken": parse_TryToken, - "WhileToken": parse_WhileToken, - "ReservedWord": parse_ReservedWord, - "SourceCharacter": parse_SourceCharacter, - "WhiteSpace": parse_WhiteSpace, - "LineTerminator": parse_LineTerminator, - "LineTerminatorSequence": parse_LineTerminatorSequence, - "Comment": parse_Comment, - "MultiLineComment": parse_MultiLineComment, - "MultiLineCommentNoLineTerminator": parse_MultiLineCommentNoLineTerminator, - "SingleLineComment": parse_SingleLineComment, - "Identifier": parse_Identifier, - "IdentifierName": parse_IdentifierName, - "IdentifierStart": parse_IdentifierStart, - "IdentifierPart": parse_IdentifierPart, - "UnicodeLetter": parse_UnicodeLetter, - "UnicodeCombiningMark": parse_UnicodeCombiningMark, - "_": parse__, - "__": parse___, - "___": parse____, - "Literal": parse_Literal, - "NullLiteral": parse_NullLiteral, - "BooleanLiteral": parse_BooleanLiteral, - "NumericLiteral": parse_NumericLiteral, - "DecimalLiteral": parse_DecimalLiteral, - "DecimalIntegerLiteral": parse_DecimalIntegerLiteral, - "DecimalDigits": parse_DecimalDigits, - "DecimalDigit": parse_DecimalDigit, - "NonZeroDigit": parse_NonZeroDigit, - "ExponentPart": parse_ExponentPart, - "ExponentIndicator": parse_ExponentIndicator, - "SignedInteger": parse_SignedInteger, - "HexIntegerLiteral": parse_HexIntegerLiteral, - "HexDigit": parse_HexDigit, - "StringLiteral": parse_StringLiteral, - "DoubleStringCharacters": parse_DoubleStringCharacters, - "SingleStringCharacters": parse_SingleStringCharacters, - "DoubleStringCharacter": parse_DoubleStringCharacter, - "SingleStringCharacter": parse_SingleStringCharacter, - "EODLiteral": parse_EODLiteral, - "EOTLiteral": parse_EOTLiteral, - "EODString": parse_EODString, - "EOTString": parse_EOTString, - "ArrayLiteral": parse_ArrayLiteral, - "ElementList": parse_ElementList, - "Elision": parse_Elision, - "PropertyNameAndValueList": parse_PropertyNameAndValueList, - "PropertyAssignment": parse_PropertyAssignment, - "PropertyName": parse_PropertyName, - "PHPLiteral": parse_PHPLiteral, - "RAWString": parse_RAWString, - "Ll": parse_Ll, - "Lm": parse_Lm, - "Lo": parse_Lo, - "Lt": parse_Lt, - "Lu": parse_Lu, - "Mc": parse_Mc, - "Mn": parse_Mn, - "Nd": parse_Nd, - "Nl": parse_Nl, - "Pc": parse_Pc, - "Zs": parse_Zs, - "blank": parse_blank, - "EOL": parse_EOL, - "SAMEDENT": parse_SAMEDENT, - "INDENT": parse_INDENT, - "DEDENT": parse_DEDENT - }; - - if (startRule !== undefined) { - if (parseFunctions[startRule] === undefined) { - throw new Error("Invalid rule name: " + quote(startRule) + "."); - } - } else { - startRule = "start"; - } - - var pos = 0; - var reportFailures = 0; - var rightmostFailuresPos = 0; - var rightmostFailuresExpected = []; - - function padLeft(input, padding, length) { - var result = input; - - var padLength = length - input.length; - for (var i = 0; i < padLength; i++) { - result = padding + result; - } - - return result; - } - - function escape(ch) { - var charCode = ch.charCodeAt(0); - var escapeChar; - var length; - - if (charCode <= 0xFF) { - escapeChar = 'x'; - length = 2; - } else { - escapeChar = 'u'; - length = 4; - } - - return '\\' + escapeChar + padLeft(charCode.toString(16).toUpperCase(), '0', length); - } - - function matchFailed(failure) { - if (pos < rightmostFailuresPos) { - return; - } - - if (pos > rightmostFailuresPos) { - rightmostFailuresPos = pos; - rightmostFailuresExpected = []; - } - - rightmostFailuresExpected.push(failure); - } - - function parse_start() { - var result0, result1; - - result0 = []; - result1 = parse_code_block(); - if (result1 === null) { - result1 = parse_embedding(); - } - while (result1 !== null) { - result0.push(result1); - result1 = parse_code_block(); - if (result1 === null) { - result1 = parse_embedding(); - } - } - return result0; - } - - function parse_embedding() { - var result0, result1; - var pos0; - - pos0 = pos; - result1 = parse_embedding_TEXT_INNER(); - if (result1 !== null) { - result0 = []; - while (result1 !== null) { - result0.push(result1); - result1 = parse_embedding_TEXT_INNER(); - } - } else { - result0 = null; - } - if (result0 !== null) { - result0 = (function(offset, body) { return {type:'embed', content:body.join('')}})(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_embedding_TEXT_INNER() { - var result0, result1, result2; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - reportFailures++; - result0 = parse_script_start(); - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - result1 = parse_script_end(); - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - if (input.length > pos) { - result2 = input.charAt(pos); - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, c) {return c})(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_code_block() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_script_start(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_LineTerminator(); - if (result2 !== null) { - result3 = parse_statements(); - if (result3 !== null) { - result4 = parse_script_end(); - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, els) { return {type:'block', elements:els}})(pos0, result0[3]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_PrimaryExpression() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - result0 = parse_ThisToken(); - if (result0 !== null) { - result0 = (function(offset) { return { type: "This" }; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_NullLiteral(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_LeftHandSideExpressionWP(); - if (result0 !== null) { - if (input.charCodeAt(pos) === 63) { - result1 = "?"; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"?\""); - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name) { - return { - type: 'FunctionCall', - name: { - type: 'Variable', - name: 'isset' - }, - arguments: [ - name - ] - }; - })(pos0, result0[0]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_Identifier(); - if (result0 !== null) { - result0 = (function(offset, name) { return { type: "Variable", name: name }; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 64) { - result0 = "@"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"@\""); - } - } - if (result0 !== null) { - result1 = parse_Identifier(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name) { - return { - type: "PropertyAccess", - base: {type: "Variable", name: "this"}, - name: name - }; - })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_NamespaceId(); - if (result0 === null) { - result0 = parse_Literal(); - if (result0 === null) { - result0 = parse_ArrayLiteral(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 40) { - result0 = "("; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_Expression(); - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 41) { - result4 = ")"; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, expression) { return expression; })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - } - } - } - } - } - } - } - } - return result0; - } - - function parse_PrimaryExpressionW() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - result0 = parse_ThisToken(); - if (result0 !== null) { - result0 = (function(offset) { return { type: "This" }; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_NullLiteral(); - if (result0 === null) { - pos0 = pos; - result0 = parse_Identifier(); - if (result0 !== null) { - result0 = (function(offset, name) { return { type: "Variable", name: name }; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 64) { - result0 = "@"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"@\""); - } - } - if (result0 !== null) { - result1 = parse_Identifier(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name) { - return { - type: "PropertyAccess", - base: {type: "Variable", name: "this"}, - name: name - }; - })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_NamespaceId(); - if (result0 === null) { - result0 = parse_Literal(); - if (result0 === null) { - result0 = parse_ArrayLiteral(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 40) { - result0 = "("; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_Expression(); - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 41) { - result4 = ")"; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, expression) { return expression; })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - } - } - } - } - } - } - } - return result0; - } - - function parse_Expression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_AssignmentExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_AssignmentExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_AssignmentExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_AssignmentExpression() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_LeftHandSideExpression(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentOperator(); - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_FunctionExpression(); - if (result4 === null) { - result4 = parse_AssignmentExpression(); - } - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, left, operator, right) { - return { - type: "AssignmentExpression", - operator: operator, - left: left, - right: right - }; - })(pos0, result0[0], result0[2], result0[4]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_FunctionExpression(); - if (result0 === null) { - result0 = parse_ConditionalExpression(); - } - } - return result0; - } - - function parse_SliceExpression() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_MemberExpression(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - if (input.charCodeAt(pos) === 91) { - result2 = "["; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_Expression(); - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - if (input.charCodeAt(pos) === 58) { - result6 = ":"; - pos++; - } else { - result6 = null; - if (reportFailures === 0) { - matchFailed("\":\""); - } - } - if (result6 !== null) { - result7 = parse___(); - if (result7 !== null) { - result8 = parse_Expression(); - result8 = result8 !== null ? result8 : ""; - if (result8 !== null) { - result9 = parse___(); - if (result9 !== null) { - if (input.charCodeAt(pos) === 93) { - result10 = "]"; - pos++; - } else { - result10 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result10 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, slicer, start, end) { - return { - type: "SliceExpression", - slicer: slicer, - start: start !== '' ? start:0, - end: end !== '' ? end:null - }; - })(pos0, result0[0], result0[4], result0[8]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_SliceExpressionWP() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_MemberExpressionWP(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - if (input.charCodeAt(pos) === 91) { - result2 = "["; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_Expression(); - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - if (input.charCodeAt(pos) === 58) { - result6 = ":"; - pos++; - } else { - result6 = null; - if (reportFailures === 0) { - matchFailed("\":\""); - } - } - if (result6 !== null) { - result7 = parse___(); - if (result7 !== null) { - result8 = parse_Expression(); - result8 = result8 !== null ? result8 : ""; - if (result8 !== null) { - result9 = parse___(); - if (result9 !== null) { - if (input.charCodeAt(pos) === 93) { - result10 = "]"; - pos++; - } else { - result10 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result10 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, slicer, start, end) { - return { - type: "SliceExpression", - slicer: slicer, - start: start !== '' ? start:0, - end: end !== '' ? end:null - }; - })(pos0, result0[0], result0[4], result0[8]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_FunctionExpression() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - pos3 = pos; - if (input.charCodeAt(pos) === 40) { - result0 = "("; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_FormalParameterList(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 41) { - result4 = ")"; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result0 = (function(offset, prm) {return prm;})(pos2, result0[2]); - } - if (result0 === null) { - pos = pos2; - } - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - if (input.substr(pos, 2) === "->") { - result2 = "->"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"->\""); - } - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - pos2 = pos; - pos3 = pos; - result4 = []; - result5 = parse_blank(); - while (result5 !== null) { - result4.push(result5); - result5 = parse_blank(); - } - if (result4 !== null) { - result5 = parse_INDENT(); - if (result5 !== null) { - result6 = []; - result7 = parse_statement(); - while (result7 !== null) { - result6.push(result7); - result7 = parse_statement(); - } - if (result6 !== null) { - result7 = parse_DEDENT(); - if (result7 !== null) { - result4 = [result4, result5, result6, result7]; - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - if (result4 !== null) { - result4 = (function(offset, b, c) { return b.concat(c); })(pos2, result4[0], result4[2]); - } - if (result4 === null) { - pos = pos2; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, params, body) { - if(params == '') { - params = [] - } - return { - type: "Function", - params: params, - body: body !== '' ? body:null - } - })(pos0, result0[0], result0[4]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_FormalParameterList() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_AssignmentExpressionOfFunction(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_AssignmentExpressionOfFunction(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_AssignmentExpressionOfFunction(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = [head]; - for (var i = 0; i < tail.length; i++) { - result.push(tail[i][3]); - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_AssignmentExpressionOfFunction() { - var result0, result1, result2, result3, result4; - var pos0, pos1, pos2, pos3, pos4; - - pos0 = pos; - pos1 = pos; - result0 = parse_LeftHandSideAssignmentExpressionOfFunction(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - pos2 = pos; - pos3 = pos; - if (input.charCodeAt(pos) === 61) { - result2 = "="; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - if (result2 !== null) { - pos4 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 61) { - result3 = "="; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - reportFailures--; - if (result3 === null) { - result3 = ""; - } else { - result3 = null; - pos = pos4; - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset) { return "="; })(pos2); - } - if (result2 === null) { - pos = pos2; - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_AssignmentExpression(); - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, left, operator, right) { - return { - type: "AssignmentExpressionOfFunction", - operator: operator, - left: left, - right: right - }; - })(pos0, result0[0], result0[2], result0[4]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_LeftHandSideAssignmentExpressionOfFunction(); - } - return result0; - } - - function parse_LeftHandSideAssignmentExpressionOfFunction() { - var result0, result1; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 38) { - result0 = "&"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"&\""); - } - } - if (result0 !== null) { - result1 = parse_Identifier(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name) { return { type: "ReferenceVariable", name: name }; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_Identifier(); - if (result0 !== null) { - result0 = (function(offset, name) { return { type: "Variable", name: name }; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_AssignmentOperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 61) { - result0 = "="; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "="; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - if (input.substr(pos, 2) === "*=") { - result0 = "*="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"*=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "/=") { - result0 = "/="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"/=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "%=") { - result0 = "%="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"%=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "+=") { - result0 = "+="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"+=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === ".=") { - result0 = ".="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\".=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "-=") { - result0 = "-="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"-=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 3) === "<<=") { - result0 = "<<="; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"<<=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 3) === ">>=") { - result0 = ">>="; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\">>=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 4) === ">>>=") { - result0 = ">>>="; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\">>>=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "&=") { - result0 = "&="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"&=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "^=") { - result0 = "^="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"^=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "|=") { - result0 = "|="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"|=\""); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - return result0; - } - - function parse_LeftHandSideExpression() { - var result0; - - result0 = parse_CallExpression(); - if (result0 === null) { - result0 = parse_SliceExpression(); - if (result0 === null) { - result0 = parse_NewExpression(); - } - } - return result0; - } - - function parse_LeftHandSideExpressionWP() { - var result0; - - result0 = parse_CallExpressionWP(); - if (result0 === null) { - result0 = parse_SliceExpressionWP(); - if (result0 === null) { - result0 = parse_NewExpressionWP(); - } - } - return result0; - } - - function parse_NewExpression() { - var result0, result1, result2; - var pos0, pos1; - - result0 = parse_MemberExpression(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_NewToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_NamespaceId(); - if (result2 === null) { - result2 = parse_Identifier(); - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, constructor) { - return { - type: "NewOperator", - constructor: constructor, - arguments: [] - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_NewExpressionWP() { - var result0, result1, result2; - var pos0, pos1; - - result0 = parse_MemberExpressionWP(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_NewToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_NamespaceId(); - if (result2 === null) { - result2 = parse_Identifier(); - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, constructor) { - return { - type: "NewOperator", - constructor: constructor, - arguments: [] - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_MemberExpression() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_PrimaryExpression(); - if (result0 === null) { - pos2 = pos; - pos3 = pos; - result0 = parse_NewToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_NamespaceId(); - if (result2 === null) { - result2 = parse_Identifier(); - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_Arguments(); - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result0 = (function(offset, constructor, arguments) { - return { - type: "NewOperator", - constructor: constructor, - arguments: arguments - }; - })(pos2, result0[2], result0[4]); - } - if (result0 === null) { - pos = pos2; - } - } - if (result0 !== null) { - result1 = []; - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - if (input.charCodeAt(pos) === 93) { - result5 = "]"; - pos++; - } else { - result5 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset) { return ['PushArray']; })(pos2); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 123) { - result3 = "{"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"{\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 125) { - result7 = "}"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"}\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: 'PropertyFields', - name: name - } - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.substr(pos, 2) === "::") { - result3 = "::"; - pos += 2; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"::\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return [name, '::']; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - if (input.charCodeAt(pos) === 93) { - result5 = "]"; - pos++; - } else { - result5 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset) { return ['PushArray']; })(pos2); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 123) { - result3 = "{"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"{\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 125) { - result7 = "}"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"}\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: 'PropertyFields', - name: name - } - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.substr(pos, 2) === "::") { - result3 = "::"; - pos += 2; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"::\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return [name, '::']; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, base, accessors) { - var result = base; - for (var i = 0; i < accessors.length; i++) { - result = { - type: "PropertyAccess", - base: result, - name: accessors[i] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_MemberExpressionWP() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_PrimaryExpressionW(); - if (result0 === null) { - pos2 = pos; - pos3 = pos; - result0 = parse_NewToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_NamespaceId(); - if (result2 === null) { - result2 = parse_Identifier(); - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_Arguments(); - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result0 = (function(offset, constructor, arguments) { - return { - type: "NewOperator", - constructor: constructor, - arguments: arguments - }; - })(pos2, result0[2], result0[4]); - } - if (result0 === null) { - pos = pos2; - } - } - if (result0 !== null) { - result1 = []; - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 123) { - result3 = "{"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"{\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 125) { - result7 = "}"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"}\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: 'PropertyFields', - name: name - } - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.substr(pos, 2) === "::") { - result3 = "::"; - pos += 2; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"::\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return [name, '::']; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 123) { - result3 = "{"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"{\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 125) { - result7 = "}"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"}\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: 'PropertyFields', - name: name - } - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.substr(pos, 2) === "::") { - result3 = "::"; - pos += 2; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"::\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return [name, '::']; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, base, accessors) { - var result = base; - for (var i = 0; i < accessors.length; i++) { - result = { - type: "PropertyAccess", - base: result, - name: accessors[i] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_CallExpression() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - pos3 = pos; - result0 = parse_MemberExpression(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_Arguments(); - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result0 = (function(offset, name, arguments) { - return { - type: "FunctionCall", - name: name, - arguments: arguments - }; - })(pos2, result0[0], result0[2]); - } - if (result0 === null) { - pos = pos2; - } - if (result0 !== null) { - result1 = []; - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Arguments(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, arguments) { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - })(pos2, result2[1]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Arguments(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, arguments) { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - })(pos2, result2[1]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, base, argumentsOrAccessors) { - var result = base; - for (var i = 0; i < argumentsOrAccessors.length; i++) { - switch (argumentsOrAccessors[i].type) { - case "FunctionCallArguments": - result = { - type: "FunctionCall", - name: result, - arguments: argumentsOrAccessors[i].arguments - }; - break; - case "PropertyAccessProperty": - result = { - type: "PropertyAccess", - base: result, - name: argumentsOrAccessors[i].name - }; - break; - default: - throw new Error( - "Invalid expression type: " + argumentsOrAccessors[i].type - ); - } - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_CallExpressionWP() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - pos3 = pos; - result0 = parse_MemberExpressionWP(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_Arguments(); - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result0 = (function(offset, name, arguments) { - return { - type: "FunctionCall", - name: name, - arguments: arguments - }; - })(pos2, result0[0], result0[2]); - } - if (result0 === null) { - pos = pos2; - } - if (result0 !== null) { - result1 = []; - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Arguments(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, arguments) { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - })(pos2, result2[1]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Arguments(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, arguments) { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - })(pos2, result2[1]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, base, argumentsOrAccessors) { - var result = base; - for (var i = 0; i < argumentsOrAccessors.length; i++) { - switch (argumentsOrAccessors[i].type) { - case "FunctionCallArguments": - result = { - type: "FunctionCall", - name: result, - arguments: argumentsOrAccessors[i].arguments - }; - break; - case "PropertyAccessProperty": - result = { - type: "PropertyAccess", - base: result, - name: argumentsOrAccessors[i].name - }; - break; - default: - throw new Error( - "Invalid expression type: " + argumentsOrAccessors[i].type - ); - } - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_Arguments() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 40) { - result0 = "("; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_ArgumentList(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 41) { - result4 = ")"; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, arguments) { - return arguments !== "" ? arguments : []; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ArgumentList() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_AssignmentExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_AssignmentExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_AssignmentExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = [head]; - for (var i = 0; i < tail.length; i++) { - result.push(tail[i][3]); - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ConditionalExpression() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_LogicalORExpression(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - if (input.charCodeAt(pos) === 63) { - result2 = "?"; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"?\""); - } - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_AssignmentExpression(); - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - if (input.charCodeAt(pos) === 58) { - result6 = ":"; - pos++; - } else { - result6 = null; - if (reportFailures === 0) { - matchFailed("\":\""); - } - } - if (result6 !== null) { - result7 = parse___(); - if (result7 !== null) { - result8 = parse_AssignmentExpression(); - if (result8 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, condition, trueExpression, falseExpression) { - return { - type: "ConditionalExpression", - condition: condition, - trueExpression: trueExpression, - falseExpression: falseExpression - }; - })(pos0, result0[0], result0[4], result0[8]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_LogicalORExpression(); - } - return result0; - } - - function parse_LogicalORExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_LogicalANDExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_LogicalOROperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_LogicalANDExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_LogicalOROperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_LogicalANDExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_LogicalOROperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.substr(pos, 2) === "||") { - result0 = "||"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"||\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "or") { - result0 = "or"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"or\""); - } - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "||"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_LogicalANDExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_BitwiseORExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_LogicalANDOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_BitwiseORExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_LogicalANDOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_BitwiseORExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_LogicalANDOperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.substr(pos, 2) === "&&") { - result0 = "&&"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"&&\""); - } - } - if (result0 === null) { - if (input.substr(pos, 3) === "and") { - result0 = "and"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"and\""); - } - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "&&"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BitwiseORExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_BitwiseXORExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_BitwiseOROperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_BitwiseXORExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_BitwiseOROperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_BitwiseXORExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BitwiseOROperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 124) { - result0 = "|"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"|\""); - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 124) { - result1 = "|"; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"|\""); - } - } - if (result1 === null) { - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "|"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BitwiseXORExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_BitwiseANDExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_BitwiseXOROperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_BitwiseANDExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_BitwiseXOROperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_BitwiseANDExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BitwiseXOROperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 94) { - result0 = "^"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"^\""); - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 94) { - result1 = "^"; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"^\""); - } - } - if (result1 === null) { - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "^"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BitwiseANDExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_EqualityExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_BitwiseANDOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_EqualityExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_BitwiseANDOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_EqualityExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BitwiseANDOperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 38) { - result0 = "&"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"&\""); - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 38) { - result1 = "&"; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"&\""); - } - } - if (result1 === null) { - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "&"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EqualityExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_RelationalExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_EqualityOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_RelationalExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_EqualityOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_RelationalExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EqualityOperator() { - var result0; - - if (input.substr(pos, 3) === "===") { - result0 = "==="; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"===\""); - } - } - if (result0 === null) { - if (input.substr(pos, 3) === "!==") { - result0 = "!=="; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"!==\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "==") { - result0 = "=="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"==\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "!=") { - result0 = "!="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"!=\""); - } - } - } - } - } - return result0; - } - - function parse_ShiftExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_DotAddExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_ShiftOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_DotAddExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_ShiftOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_DotAddExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ShiftOperator() { - var result0; - - if (input.substr(pos, 2) === "<<") { - result0 = "<<"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"<<\""); - } - } - if (result0 === null) { - if (input.substr(pos, 3) === ">>>") { - result0 = ">>>"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\">>>\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === ">>") { - result0 = ">>"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\">>\""); - } - } - } - } - return result0; - } - - function parse_RelationalExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_ShiftExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_RelationalOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_ShiftExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_RelationalOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_ShiftExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_RelationalOperator() { - var result0; - - if (input.substr(pos, 2) === "<=") { - result0 = "<="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"<=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === ">=") { - result0 = ">="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\">=\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 60) { - result0 = "<"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"<\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 62) { - result0 = ">"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\">\""); - } - } - if (result0 === null) { - result0 = parse_OfToken(); - } - } - } - } - return result0; - } - - function parse_PostfixExpression() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_LeftHandSideExpression(); - if (result0 !== null) { - result1 = parse__(); - if (result1 !== null) { - result2 = parse_PostfixOperator(); - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, expression, operator) { - return { - type: "PostfixExpression", - operator: operator, - expression: expression - }; - })(pos0, result0[0], result0[2]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_LeftHandSideExpression(); - } - return result0; - } - - function parse_PostfixOperator() { - var result0; - - if (input.substr(pos, 2) === "++") { - result0 = "++"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"++\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "--") { - result0 = "--"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"--\""); - } - } - } - return result0; - } - - function parse_UnaryExpression() { - var result0, result1, result2; - var pos0, pos1; - - result0 = parse_PostfixExpression(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_UnaryOperator(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_UnaryExpression(); - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, operator, expression) { - return { - type: "UnaryExpression", - operator: operator, - expression: expression - }; - })(pos0, result0[0], result0[2]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_UnaryOperator() { - var result0; - - if (input.substr(pos, 2) === "++") { - result0 = "++"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"++\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "--") { - result0 = "--"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"--\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 43) { - result0 = "+"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"+\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 45) { - result0 = "-"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"-\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 126) { - result0 = "~"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"~\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 33) { - result0 = "!"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"!\""); - } - } - } - } - } - } - } - return result0; - } - - function parse_MultiplicativeExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_UnaryExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_MultiplicativeOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_UnaryExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_MultiplicativeOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_UnaryExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_MultiplicativeOperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 42) { - result0 = "*"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"*\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 47) { - result0 = "/"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"/\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 37) { - result0 = "%"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"%\""); - } - } - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, operator) { return operator; })(pos0, result0[0]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_AdditiveExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_MultiplicativeExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_AdditiveOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_MultiplicativeExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_AdditiveOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_MultiplicativeExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_DotAddExpression() { - var result0, result1, result2, result3; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_AdditiveExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result3 = parse_WhiteSpace(); - if (result3 !== null) { - result2 = []; - while (result3 !== null) { - result2.push(result3); - result3 = parse_WhiteSpace(); - } - } else { - result2 = null; - } - if (result2 !== null) { - result3 = parse_AdditiveExpression(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result3 = parse_WhiteSpace(); - if (result3 !== null) { - result2 = []; - while (result3 !== null) { - result2.push(result3); - result3 = parse_WhiteSpace(); - } - } else { - result2 = null; - } - if (result2 !== null) { - result3 = parse_AdditiveExpression(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: '.', - left: result, - right: tail[i][1] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_AdditiveOperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 43) { - result0 = "+"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"+\""); - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 43) { - result1 = "+"; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"+\""); - } - } - if (result1 === null) { - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "+"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 45) { - result0 = "-"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"-\""); - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 45) { - result1 = "-"; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"-\""); - } - } - if (result1 === null) { - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "-"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_statements() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_INDENT(); - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = []; - result2 = parse_statement(); - while (result2 !== null) { - result1.push(result2); - result2 = parse_statement(); - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) {return m;})(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_statement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_SwitchStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_IfStatement(); - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_ForStatement(); - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_WhileStatement(); - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_TryStatement(); - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_FunctionInLineCall(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_FunctionDeclaration(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_NamespaceDeclaration(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ClassDeclaration(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ContinueStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_BreakStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_EchoStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ReturnStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_Include_onceStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_Require_onceStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_RequireStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_IncludeStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_ExpressionStatement(); - if (result0 === null) { - result0 = parse_blank(); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - return result0; - } - - function parse_statementNoSameDENT() { - var result0; - - result0 = parse_CallExpression(); - if (result0 === null) { - result0 = parse_Expression(); - } - return result0; - } - - function parse_ExpressionStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_Expression(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_FunctionInLineCall() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_CallExpression(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_CallExpression() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3, pos4; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - pos3 = pos; - pos4 = pos; - result0 = parse_Literal(); - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse_MemberExpression(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos4; - } - } else { - result0 = null; - pos = pos4; - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_ArgumentsForInline(); - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result0 = (function(offset, name, arguments) { - return { - type: "FunctionCall", - name: name, - arguments: arguments - }; - })(pos2, result0[0], result0[2]); - } - if (result0 === null) { - pos = pos2; - } - if (result0 !== null) { - result1 = []; - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Arguments(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, arguments) { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - })(pos2, result2[1]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Arguments(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, arguments) { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - })(pos2, result2[1]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, base, argumentsOrAccessors) { - var result = base; - for (var i = 0; i < argumentsOrAccessors.length; i++) { - switch (argumentsOrAccessors[i].type) { - case "FunctionCallArguments": - result = { - type: "FunctionCall", - name: result, - arguments: argumentsOrAccessors[i].arguments - }; - break; - case "PropertyAccessProperty": - result = { - type: "PropertyAccess", - base: result, - name: argumentsOrAccessors[i].name - }; - break; - default: - throw new Error( - "Invalid expression type: " + argumentsOrAccessors[i].type - ); - } - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ArgumentsForInline() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 40) { - result0 = "("; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_ArgumentList(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 41) { - result4 = ")"; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, arguments) { - return arguments !== "" ? arguments : []; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_IfStatement() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12, result13, result14, result15, result16, result17, result18, result19, result20, result21, result22, result23, result24, result25; - var pos0, pos1, pos2, pos3, pos4, pos5; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_IfToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 40) { - result3 = "("; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 41) { - result7 = ")"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result7 = result7 !== null ? result7 : ""; - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_EOL(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - pos2 = pos; - pos3 = pos; - result10 = []; - result11 = parse_blank(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_blank(); - } - if (result10 !== null) { - result11 = parse_INDENT(); - if (result11 !== null) { - result12 = []; - result13 = parse_statement(); - while (result13 !== null) { - result12.push(result13); - result13 = parse_statement(); - } - if (result12 !== null) { - result13 = parse_DEDENT(); - if (result13 !== null) { - result10 = [result10, result11, result12, result13]; - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - if (result10 !== null) { - result10 = (function(offset, b, c) { return b.concat(c); })(pos2, result10[0], result10[2]); - } - if (result10 === null) { - pos = pos2; - } - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - pos2 = pos; - pos3 = pos; - result12 = parse_SAMEDENT(); - if (result12 !== null) { - result13 = parse_ElseIfToken(); - if (result13 !== null) { - result14 = parse___(); - if (result14 !== null) { - if (input.charCodeAt(pos) === 40) { - result15 = "("; - pos++; - } else { - result15 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result15 = result15 !== null ? result15 : ""; - if (result15 !== null) { - result16 = parse___(); - if (result16 !== null) { - result17 = parse_Expression(); - if (result17 !== null) { - result18 = parse___(); - if (result18 !== null) { - if (input.charCodeAt(pos) === 41) { - result19 = ")"; - pos++; - } else { - result19 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result19 = result19 !== null ? result19 : ""; - if (result19 !== null) { - result20 = parse___(); - if (result20 !== null) { - result21 = parse_EOL(); - result21 = result21 !== null ? result21 : ""; - if (result21 !== null) { - pos4 = pos; - pos5 = pos; - result22 = []; - result23 = parse_blank(); - while (result23 !== null) { - result22.push(result23); - result23 = parse_blank(); - } - if (result22 !== null) { - result23 = parse_INDENT(); - if (result23 !== null) { - result24 = []; - result25 = parse_statement(); - while (result25 !== null) { - result24.push(result25); - result25 = parse_statement(); - } - if (result24 !== null) { - result25 = parse_DEDENT(); - if (result25 !== null) { - result22 = [result22, result23, result24, result25]; - } else { - result22 = null; - pos = pos5; - } - } else { - result22 = null; - pos = pos5; - } - } else { - result22 = null; - pos = pos5; - } - } else { - result22 = null; - pos = pos5; - } - if (result22 !== null) { - result22 = (function(offset, b, c) { return b.concat(c); })(pos4, result22[0], result22[2]); - } - if (result22 === null) { - pos = pos4; - } - result22 = result22 !== null ? result22 : ""; - if (result22 !== null) { - result12 = [result12, result13, result14, result15, result16, result17, result18, result19, result20, result21, result22]; - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - if (result12 !== null) { - result12 = (function(offset, condition, statement) {return { - condition: condition, - statement: statement, - } - })(pos2, result12[5], result12[10]); - } - if (result12 === null) { - pos = pos2; - } - if (result12 !== null) { - result11 = []; - while (result12 !== null) { - result11.push(result12); - pos2 = pos; - pos3 = pos; - result12 = parse_SAMEDENT(); - if (result12 !== null) { - result13 = parse_ElseIfToken(); - if (result13 !== null) { - result14 = parse___(); - if (result14 !== null) { - if (input.charCodeAt(pos) === 40) { - result15 = "("; - pos++; - } else { - result15 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result15 = result15 !== null ? result15 : ""; - if (result15 !== null) { - result16 = parse___(); - if (result16 !== null) { - result17 = parse_Expression(); - if (result17 !== null) { - result18 = parse___(); - if (result18 !== null) { - if (input.charCodeAt(pos) === 41) { - result19 = ")"; - pos++; - } else { - result19 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result19 = result19 !== null ? result19 : ""; - if (result19 !== null) { - result20 = parse___(); - if (result20 !== null) { - result21 = parse_EOL(); - result21 = result21 !== null ? result21 : ""; - if (result21 !== null) { - pos4 = pos; - pos5 = pos; - result22 = []; - result23 = parse_blank(); - while (result23 !== null) { - result22.push(result23); - result23 = parse_blank(); - } - if (result22 !== null) { - result23 = parse_INDENT(); - if (result23 !== null) { - result24 = []; - result25 = parse_statement(); - while (result25 !== null) { - result24.push(result25); - result25 = parse_statement(); - } - if (result24 !== null) { - result25 = parse_DEDENT(); - if (result25 !== null) { - result22 = [result22, result23, result24, result25]; - } else { - result22 = null; - pos = pos5; - } - } else { - result22 = null; - pos = pos5; - } - } else { - result22 = null; - pos = pos5; - } - } else { - result22 = null; - pos = pos5; - } - if (result22 !== null) { - result22 = (function(offset, b, c) { return b.concat(c); })(pos4, result22[0], result22[2]); - } - if (result22 === null) { - pos = pos4; - } - result22 = result22 !== null ? result22 : ""; - if (result22 !== null) { - result12 = [result12, result13, result14, result15, result16, result17, result18, result19, result20, result21, result22]; - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - if (result12 !== null) { - result12 = (function(offset, condition, statement) {return { - condition: condition, - statement: statement, - } - })(pos2, result12[5], result12[10]); - } - if (result12 === null) { - pos = pos2; - } - } - } else { - result11 = null; - } - result11 = result11 !== null ? result11 : ""; - if (result11 !== null) { - pos2 = pos; - result12 = parse_SAMEDENT(); - if (result12 !== null) { - result13 = parse_ElseToken(); - if (result13 !== null) { - result14 = parse___(); - if (result14 !== null) { - result15 = parse_EOL(); - result15 = result15 !== null ? result15 : ""; - if (result15 !== null) { - pos3 = pos; - pos4 = pos; - result16 = []; - result17 = parse_blank(); - while (result17 !== null) { - result16.push(result17); - result17 = parse_blank(); - } - if (result16 !== null) { - result17 = parse_INDENT(); - if (result17 !== null) { - result18 = []; - result19 = parse_statement(); - while (result19 !== null) { - result18.push(result19); - result19 = parse_statement(); - } - if (result18 !== null) { - result19 = parse_DEDENT(); - if (result19 !== null) { - result16 = [result16, result17, result18, result19]; - } else { - result16 = null; - pos = pos4; - } - } else { - result16 = null; - pos = pos4; - } - } else { - result16 = null; - pos = pos4; - } - } else { - result16 = null; - pos = pos4; - } - if (result16 !== null) { - result16 = (function(offset, b, c) { return b.concat(c); })(pos3, result16[0], result16[2]); - } - if (result16 === null) { - pos = pos3; - } - result16 = result16 !== null ? result16 : ""; - if (result16 !== null) { - result12 = [result12, result13, result14, result15, result16]; - } else { - result12 = null; - pos = pos2; - } - } else { - result12 = null; - pos = pos2; - } - } else { - result12 = null; - pos = pos2; - } - } else { - result12 = null; - pos = pos2; - } - } else { - result12 = null; - pos = pos2; - } - result12 = result12 !== null ? result12 : ""; - if (result12 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, condition, ifStatement, elseifStatement, elseStatement) { - return { - type: "IfStatement", - condition: condition, - ifStatement: ifStatement !== "" ? ifStatement : null, - elseStatement: elseStatement !== "" ? elseStatement[4] : null, - elseifStatement: elseifStatement !== "" ? elseifStatement : null - }; - })(pos0, result0[5], result0[10], result0[11], result0[12]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ForStatement() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12, result13, result14, result15; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ForToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 40) { - result3 = "("; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - result5 = result5 !== null ? result5 : ""; - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - pos2 = pos; - if (input.charCodeAt(pos) === 59) { - result7 = ";"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\";\""); - } - } - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_Expression(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - result10 = parse___(); - if (result10 !== null) { - if (input.charCodeAt(pos) === 59) { - result11 = ";"; - pos++; - } else { - result11 = null; - if (reportFailures === 0) { - matchFailed("\";\""); - } - } - if (result11 !== null) { - result12 = parse___(); - if (result12 !== null) { - result13 = parse_Expression(); - result13 = result13 !== null ? result13 : ""; - if (result13 !== null) { - result14 = parse___(); - if (result14 !== null) { - if (input.charCodeAt(pos) === 41) { - result15 = ")"; - pos++; - } else { - result15 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result15 = result15 !== null ? result15 : ""; - if (result15 !== null) { - result7 = [result7, result8, result9, result10, result11, result12, result13, result14, result15]; - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_EOL(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - pos2 = pos; - pos3 = pos; - result10 = []; - result11 = parse_blank(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_blank(); - } - if (result10 !== null) { - result11 = parse_INDENT(); - if (result11 !== null) { - result12 = []; - result13 = parse_statement(); - while (result13 !== null) { - result12.push(result13); - result13 = parse_statement(); - } - if (result12 !== null) { - result13 = parse_DEDENT(); - if (result13 !== null) { - result10 = [result10, result11, result12, result13]; - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - if (result10 !== null) { - result10 = (function(offset, b, c) { return b.concat(c); })(pos2, result10[0], result10[2]); - } - if (result10 === null) { - pos = pos2; - } - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, initializer, test, counter, statement) { - return { - type: "ForStatement", - initializer: initializer !== "" ? initializer : null, - test: test !== "" ? test : null, - counter: counter !== "" ? counter : null, - statement: statement - }; - })(pos0, result0[5], result0[7][2], result0[7][6], result0[10]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ForToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 40) { - result3 = "("; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - result5 = result5 !== null ? result5 : ""; - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - pos2 = pos; - if (input.charCodeAt(pos) === 59) { - result7 = ";"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\";\""); - } - } - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_Expression(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - result10 = parse___(); - if (result10 !== null) { - if (input.charCodeAt(pos) === 59) { - result11 = ";"; - pos++; - } else { - result11 = null; - if (reportFailures === 0) { - matchFailed("\";\""); - } - } - if (result11 !== null) { - result12 = parse___(); - if (result12 !== null) { - result13 = parse_Expression(); - result13 = result13 !== null ? result13 : ""; - if (result13 !== null) { - result14 = parse___(); - if (result14 !== null) { - if (input.charCodeAt(pos) === 41) { - result15 = ")"; - pos++; - } else { - result15 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result15 = result15 !== null ? result15 : ""; - if (result15 !== null) { - result7 = [result7, result8, result9, result10, result11, result12, result13, result14, result15]; - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - result7 = result7 !== null ? result7 : ""; - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_EOL(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - pos2 = pos; - pos3 = pos; - result10 = []; - result11 = parse_blank(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_blank(); - } - if (result10 !== null) { - result11 = parse_INDENT(); - if (result11 !== null) { - result12 = []; - result13 = parse_statement(); - while (result13 !== null) { - result12.push(result13); - result13 = parse_statement(); - } - if (result12 !== null) { - result13 = parse_DEDENT(); - if (result13 !== null) { - result10 = [result10, result11, result12, result13]; - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - if (result10 !== null) { - result10 = (function(offset, b, c) { return b.concat(c); })(pos2, result10[0], result10[2]); - } - if (result10 === null) { - pos = pos2; - } - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, initializer, statement) { - if(typeof test == 'undefined') { - test = ''; - } - if(typeof counter == 'undefined') { - counter = ''; - } - return { - type: "ForStatement", - initializer: initializer !== "" ? initializer : null, - test: test !== "" ? test : null, - counter: counter !== "" ? counter : null, - statement: statement !== "" ? statement: null - }; - })(pos0, result0[5], result0[10]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_WhileStatement() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12, result13; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_WhileToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 40) { - result3 = "("; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 41) { - result7 = ")"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result7 = result7 !== null ? result7 : ""; - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_EOL(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - pos2 = pos; - pos3 = pos; - result10 = []; - result11 = parse_blank(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_blank(); - } - if (result10 !== null) { - result11 = parse_INDENT(); - if (result11 !== null) { - result12 = []; - result13 = parse_statement(); - while (result13 !== null) { - result12.push(result13); - result13 = parse_statement(); - } - if (result12 !== null) { - result13 = parse_DEDENT(); - if (result13 !== null) { - result10 = [result10, result11, result12, result13]; - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - if (result10 !== null) { - result10 = (function(offset, b, c) { return b.concat(c); })(pos2, result10[0], result10[2]); - } - if (result10 === null) { - pos = pos2; - } - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, condition, statement) { - return { - type: 'WhileStatement', - condition: condition, - statement: statement - }; - })(pos0, result0[5], result0[10]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_SwitchStatement() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_SwitchToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - if (input.charCodeAt(pos) === 40) { - result2 = "("; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_Expression(); - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - if (input.charCodeAt(pos) === 41) { - result6 = ")"; - pos++; - } else { - result6 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result7 = parse___(); - if (result7 !== null) { - pos2 = pos; - pos3 = pos; - result8 = []; - result9 = parse_blank(); - while (result9 !== null) { - result8.push(result9); - result9 = parse_blank(); - } - if (result8 !== null) { - result9 = parse_INDENT(); - if (result9 !== null) { - result10 = []; - result11 = parse_SwitchCase(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_SwitchCase(); - } - if (result10 !== null) { - result11 = parse_DEDENT(); - if (result11 !== null) { - result8 = [result8, result9, result10, result11]; - } else { - result8 = null; - pos = pos3; - } - } else { - result8 = null; - pos = pos3; - } - } else { - result8 = null; - pos = pos3; - } - } else { - result8 = null; - pos = pos3; - } - if (result8 !== null) { - result8 = (function(offset, b, c) { return b.concat(c); })(pos2, result8[0], result8[2]); - } - if (result8 === null) { - pos = pos2; - } - if (result8 !== null) { - pos2 = pos; - pos3 = pos; - result9 = []; - result10 = parse_blank(); - while (result10 !== null) { - result9.push(result10); - result10 = parse_blank(); - } - if (result9 !== null) { - result10 = parse_INDENT(); - if (result10 !== null) { - result11 = parse_SwitchElse(); - if (result11 !== null) { - result12 = parse_DEDENT(); - if (result12 !== null) { - result9 = [result9, result10, result11, result12]; - } else { - result9 = null; - pos = pos3; - } - } else { - result9 = null; - pos = pos3; - } - } else { - result9 = null; - pos = pos3; - } - } else { - result9 = null; - pos = pos3; - } - if (result9 !== null) { - result9 = (function(offset, b, c) { return c; })(pos2, result9[0], result9[2]); - } - if (result9 === null) { - pos = pos2; - } - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, variable, cases, elsed) { - if(typeof elsed == 'undefined') { - elsed = ''; - } - return { - type: 'SwitchStatement', - variable: variable, - cases: cases, - elsed: elsed - }; - })(pos0, result0[4], result0[8], result0[9]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_SwitchCase() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_CaseToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Expression(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_ThenToken(); - result5 = result5 !== null ? result5 : ""; - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - result7 = parse_EOL(); - result7 = result7 !== null ? result7 : ""; - if (result7 !== null) { - pos2 = pos; - pos3 = pos; - result8 = []; - result9 = parse_blank(); - while (result9 !== null) { - result8.push(result9); - result9 = parse_blank(); - } - if (result8 !== null) { - result9 = parse_INDENT(); - if (result9 !== null) { - result10 = []; - result11 = parse_statement(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_statement(); - } - if (result10 !== null) { - result11 = parse_DEDENT(); - if (result11 !== null) { - result8 = [result8, result9, result10, result11]; - } else { - result8 = null; - pos = pos3; - } - } else { - result8 = null; - pos = pos3; - } - } else { - result8 = null; - pos = pos3; - } - } else { - result8 = null; - pos = pos3; - } - if (result8 !== null) { - result8 = (function(offset, b, c) { return b.concat(c); })(pos2, result8[0], result8[2]); - } - if (result8 === null) { - pos = pos2; - } - result8 = result8 !== null ? result8 : ""; - if (result8 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, value, statement) { - return { - type: 'case', - value: value, - statement: statement - }; - })(pos0, result0[3], result0[8]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_SwitchElse() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ElseToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - result3 = parse_EOL(); - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - pos2 = pos; - pos3 = pos; - result4 = []; - result5 = parse_blank(); - while (result5 !== null) { - result4.push(result5); - result5 = parse_blank(); - } - if (result4 !== null) { - result5 = parse_INDENT(); - if (result5 !== null) { - result6 = []; - result7 = parse_statement(); - while (result7 !== null) { - result6.push(result7); - result7 = parse_statement(); - } - if (result6 !== null) { - result7 = parse_DEDENT(); - if (result7 !== null) { - result4 = [result4, result5, result6, result7]; - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - if (result4 !== null) { - result4 = (function(offset, b, c) { return b.concat(c); })(pos2, result4[0], result4[2]); - } - if (result4 === null) { - pos = pos2; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, statement) { - return statement; - })(pos0, result0[4]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BreakStatement() { - var result0; - var pos0; - - pos0 = pos; - result0 = parse_BreakToken(); - if (result0 !== null) { - result0 = (function(offset) { - return { - type: 'break' - }; - })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_TryStatement() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12, result13, result14; - var pos0, pos1, pos2, pos3, pos4; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_TryToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - result3 = parse_EOL(); - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - pos2 = pos; - pos3 = pos; - result4 = []; - result5 = parse_blank(); - while (result5 !== null) { - result4.push(result5); - result5 = parse_blank(); - } - if (result4 !== null) { - result5 = parse_INDENT(); - if (result5 !== null) { - result6 = []; - result7 = parse_statement(); - while (result7 !== null) { - result6.push(result7); - result7 = parse_statement(); - } - if (result6 !== null) { - result7 = parse_DEDENT(); - if (result7 !== null) { - result4 = [result4, result5, result6, result7]; - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - if (result4 !== null) { - result4 = (function(offset, b, c) { return b.concat(c); })(pos2, result4[0], result4[2]); - } - if (result4 === null) { - pos = pos2; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - pos2 = pos; - result5 = parse_SAMEDENT(); - if (result5 !== null) { - result6 = parse_CatchToken(); - if (result6 !== null) { - result7 = parse___(); - if (result7 !== null) { - result8 = parse_CatchErrVar(); - if (result8 !== null) { - result9 = parse___(); - if (result9 !== null) { - result10 = parse_EOL(); - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - pos3 = pos; - pos4 = pos; - result11 = []; - result12 = parse_blank(); - while (result12 !== null) { - result11.push(result12); - result12 = parse_blank(); - } - if (result11 !== null) { - result12 = parse_INDENT(); - if (result12 !== null) { - result13 = []; - result14 = parse_statement(); - while (result14 !== null) { - result13.push(result14); - result14 = parse_statement(); - } - if (result13 !== null) { - result14 = parse_DEDENT(); - if (result14 !== null) { - result11 = [result11, result12, result13, result14]; - } else { - result11 = null; - pos = pos4; - } - } else { - result11 = null; - pos = pos4; - } - } else { - result11 = null; - pos = pos4; - } - } else { - result11 = null; - pos = pos4; - } - if (result11 !== null) { - result11 = (function(offset, b, c) { return b.concat(c); })(pos3, result11[0], result11[2]); - } - if (result11 === null) { - pos = pos3; - } - result11 = result11 !== null ? result11 : ""; - if (result11 !== null) { - result5 = [result5, result6, result7, result8, result9, result10, result11]; - } else { - result5 = null; - pos = pos2; - } - } else { - result5 = null; - pos = pos2; - } - } else { - result5 = null; - pos = pos2; - } - } else { - result5 = null; - pos = pos2; - } - } else { - result5 = null; - pos = pos2; - } - } else { - result5 = null; - pos = pos2; - } - } else { - result5 = null; - pos = pos2; - } - if (result5 !== null) { - pos2 = pos; - result6 = parse_SAMEDENT(); - if (result6 !== null) { - result7 = parse_finallyToken(); - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_EOL(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - pos3 = pos; - pos4 = pos; - result10 = []; - result11 = parse_blank(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_blank(); - } - if (result10 !== null) { - result11 = parse_INDENT(); - if (result11 !== null) { - result12 = []; - result13 = parse_statement(); - while (result13 !== null) { - result12.push(result13); - result13 = parse_statement(); - } - if (result12 !== null) { - result13 = parse_DEDENT(); - if (result13 !== null) { - result10 = [result10, result11, result12, result13]; - } else { - result10 = null; - pos = pos4; - } - } else { - result10 = null; - pos = pos4; - } - } else { - result10 = null; - pos = pos4; - } - } else { - result10 = null; - pos = pos4; - } - if (result10 !== null) { - result10 = (function(offset, b, c) { return b.concat(c); })(pos3, result10[0], result10[2]); - } - if (result10 === null) { - pos = pos3; - } - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - result6 = [result6, result7, result8, result9, result10]; - } else { - result6 = null; - pos = pos2; - } - } else { - result6 = null; - pos = pos2; - } - } else { - result6 = null; - pos = pos2; - } - } else { - result6 = null; - pos = pos2; - } - } else { - result6 = null; - pos = pos2; - } - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, TryStatement, CatchStatemnt, FinallyStatemnt) { - return { - type: "TryStatement", - TryStatement: TryStatement !== "" ? TryStatement : null, - CatchStatement: CatchStatemnt[6] !== "" ? CatchStatemnt[6] : null, - CatchErrVar: CatchStatemnt[3], - FinallyStatemnt: FinallyStatemnt[4] !== "" ? FinallyStatemnt[4] : null - }; - })(pos0, result0[4], result0[5], result0[6]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_CatchErrVar() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_Identifier(); - if (result0 !== null) { - result2 = parse_WhiteSpace(); - if (result2 !== null) { - result1 = []; - while (result2 !== null) { - result1.push(result2); - result2 = parse_WhiteSpace(); - } - } else { - result1 = null; - } - if (result1 !== null) { - result2 = parse_Identifier(); - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, Type, name) { - return { - type: "VariableWithType", - name: { - type:"Variable", - name:name - }, - vtype: Type - }; - })(pos0, result0[0], result0[2]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_Identifier(); - if (result0 !== null) { - result0 = (function(offset, name) { - return { - type: "VariableWithType", - name: { - type:"Variable", - name:name - }, - vtype: "Exception" - }; - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_FunctionDeclaration() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - pos3 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 36) { - result0 = "$"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"$\""); - } - } - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result1 = parse_Identifier(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos2; - } - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - pos2 = pos; - pos3 = pos; - if (input.charCodeAt(pos) === 40) { - result2 = "("; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_FormalParameterList(); - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - if (input.charCodeAt(pos) === 41) { - result6 = ")"; - pos++; - } else { - result6 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result6 !== null) { - result2 = [result2, result3, result4, result5, result6]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, prm) {return prm;})(pos2, result2[2]); - } - if (result2 === null) { - pos = pos2; - } - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.substr(pos, 2) === "->") { - result4 = "->"; - pos += 2; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\"->\""); - } - } - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - pos2 = pos; - pos3 = pos; - result6 = []; - result7 = parse_blank(); - while (result7 !== null) { - result6.push(result7); - result7 = parse_blank(); - } - if (result6 !== null) { - result7 = parse_INDENT(); - if (result7 !== null) { - result8 = []; - result9 = parse_statement(); - while (result9 !== null) { - result8.push(result9); - result9 = parse_statement(); - } - if (result8 !== null) { - result9 = parse_DEDENT(); - if (result9 !== null) { - result6 = [result6, result7, result8, result9]; - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - if (result6 !== null) { - result6 = (function(offset, b, c) { return b.concat(c); })(pos2, result6[0], result6[2]); - } - if (result6 === null) { - pos = pos2; - } - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name, params, body) { - if(params == '') { - params = [] - } - return { - type: "FunctionDeclaration", - name: name[1], - params: params, - body: body !== '' ? body: null - } - })(pos0, result0[0], result0[2], result0[6]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_NamespaceDeclaration() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_NamespaceToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_NamespaceId(); - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.substr(pos, 2) === "->") { - result4 = "->"; - pos += 2; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\"->\""); - } - } - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - pos2 = pos; - pos3 = pos; - result6 = []; - result7 = parse_blank(); - while (result7 !== null) { - result6.push(result7); - result7 = parse_blank(); - } - if (result6 !== null) { - result7 = parse_INDENT(); - if (result7 !== null) { - result8 = []; - result9 = parse_statement(); - while (result9 !== null) { - result8.push(result9); - result9 = parse_statement(); - } - if (result8 !== null) { - result9 = parse_DEDENT(); - if (result9 !== null) { - result6 = [result6, result7, result8, result9]; - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - if (result6 !== null) { - result6 = (function(offset, b, c) { return b.concat(c); })(pos2, result6[0], result6[2]); - } - if (result6 === null) { - pos = pos2; - } - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name, body) { - return { - type:"NamespaceDeclaration", - name: name, - body: body !== '' ? body: null - } - })(pos0, result0[2], result0[6]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_NamespaceToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_NamespaceId(); - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result0 = [result0, result1, result2, result3]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name) { - return { - type:"NamespaceDeclaration", - name: name, - body: null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_NamespaceId() { - var result0, result1, result2, result3, result4; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 92) { - result0 = "\\"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 47) { - result0 = "/"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"/\""); - } - } - } - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse_Identifier(); - if (result1 !== null) { - result2 = []; - pos2 = pos; - if (input.charCodeAt(pos) === 92) { - result3 = "\\"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result3 === null) { - if (input.charCodeAt(pos) === 47) { - result3 = "/"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"/\""); - } - } - } - if (result3 !== null) { - result4 = parse_Identifier(); - if (result4 !== null) { - result3 = [result3, result4]; - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - while (result3 !== null) { - result2.push(result3); - pos2 = pos; - if (input.charCodeAt(pos) === 92) { - result3 = "\\"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result3 === null) { - if (input.charCodeAt(pos) === 47) { - result3 = "/"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"/\""); - } - } - } - if (result3 !== null) { - result4 = parse_Identifier(); - if (result4 !== null) { - result3 = [result3, result4]; - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, start, head, tail) { - if(head != '') { - var array = [head]; - } else { - return ''; - } - for (var i = 0; i < tail.length; i++) { - array.push(tail[i][1]) - } - return { - type: "NamespaceIdentifier", - name: array, - start: start !== '' ? true : false - }; - })(pos0, result0[0], result0[1], result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ClassDeclaration() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_ClassToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_Identifier(); - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.substr(pos, 2) === "->") { - result4 = "->"; - pos += 2; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\"->\""); - } - } - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - pos2 = pos; - pos3 = pos; - result6 = []; - result7 = parse_blank(); - while (result7 !== null) { - result6.push(result7); - result7 = parse_blank(); - } - if (result6 !== null) { - result7 = parse_INDENT(); - if (result7 !== null) { - result8 = []; - result9 = parse_ClassStatement(); - while (result9 !== null) { - result8.push(result9); - result9 = parse_ClassStatement(); - } - if (result8 !== null) { - result9 = parse_DEDENT(); - if (result9 !== null) { - result6 = [result6, result7, result8, result9]; - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - if (result6 !== null) { - result6 = (function(offset, b, c) { return b.concat(c); })(pos2, result6[0], result6[2]); - } - if (result6 === null) { - pos = pos2; - } - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name, body) { - return { - type:"ClassDeclaration", - name: name, - body: body !== '' ? body: null - } - })(pos0, result0[2], result0[6]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ClassStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - result0 = parse_ClassFunctionDeclaration(); - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ClassConstPropertyDeclaration(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ClassPropertyDeclaration(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_blank(); - } - } - } - return result0; - } - - function parse_ClassPropertyDeclaration() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3, pos4; - - pos0 = pos; - pos1 = pos; - result0 = parse_PropertyVisibility(); - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - pos2 = pos; - result2 = parse_Identifier(); - if (result2 !== null) { - result2 = (function(offset, name) { return { type: "Variable", name: name }; })(pos2, result2); - } - if (result2 === null) { - pos = pos2; - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - pos2 = pos; - result4 = parse_AssignmentOperator(); - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - pos3 = pos; - pos4 = pos; - reportFailures++; - result6 = parse_EOTLiteral(); - if (result6 === null) { - result6 = parse_EODLiteral(); - } - reportFailures--; - if (result6 === null) { - result6 = ""; - } else { - result6 = null; - pos = pos4; - } - if (result6 !== null) { - result7 = parse_AssignmentExpression(); - if (result7 === null) { - result7 = parse_FunctionExpression(); - } - if (result7 !== null) { - result6 = [result6, result7]; - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - if (result6 !== null) { - result4 = [result4, result5, result6]; - } else { - result4 = null; - pos = pos2; - } - } else { - result4 = null; - pos = pos2; - } - } else { - result4 = null; - pos = pos2; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, Visibility, left, m) { - return { - type: "ClassPropertyDeclaration", - operator: m !== "" ? m[0]: false, - left: left, - right: m !== "" ? m[2][1]: false, - Visibility: Visibility !== "" ? Visibility : false, - }; - })(pos0, result0[0], result0[2], result0[4]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ClassConstPropertyDeclaration() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3, pos4; - - pos0 = pos; - pos1 = pos; - result0 = parse_ConstToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - pos2 = pos; - result2 = parse_Identifier(); - if (result2 !== null) { - result2 = (function(offset, name) { return { type: "Variable", name: name }; })(pos2, result2); - } - if (result2 === null) { - pos = pos2; - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - pos2 = pos; - result4 = parse_AssignmentOperator(); - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - pos3 = pos; - pos4 = pos; - reportFailures++; - result6 = parse_EOTLiteral(); - if (result6 === null) { - result6 = parse_EODLiteral(); - } - reportFailures--; - if (result6 === null) { - result6 = ""; - } else { - result6 = null; - pos = pos4; - } - if (result6 !== null) { - result7 = parse_AssignmentExpression(); - if (result7 === null) { - result7 = parse_FunctionExpression(); - } - if (result7 !== null) { - result6 = [result6, result7]; - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - if (result6 !== null) { - result4 = [result4, result5, result6]; - } else { - result4 = null; - pos = pos2; - } - } else { - result4 = null; - pos = pos2; - } - } else { - result4 = null; - pos = pos2; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, left, m) { - return { - type: "ClassConstPropertyDeclaration", - operator: m !== "" ? m[0]: false, - left: left, - right: m !== "" ? m[2][1]: false - }; - })(pos0, result0[2], result0[4]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ClassFunctionDeclaration() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12, result13; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_PropertyVisibility(); - result1 = result1 !== null ? result1 : ""; - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - pos2 = pos; - pos3 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 36) { - result3 = "$"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"$\""); - } - } - reportFailures--; - if (result3 === null) { - result3 = ""; - } else { - result3 = null; - pos = pos3; - } - if (result3 !== null) { - result4 = parse_Identifier(); - if (result4 !== null) { - result3 = [result3, result4]; - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - pos2 = pos; - pos3 = pos; - if (input.charCodeAt(pos) === 40) { - result5 = "("; - pos++; - } else { - result5 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - result7 = parse_FormalParameterList(); - result7 = result7 !== null ? result7 : ""; - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - if (input.charCodeAt(pos) === 41) { - result9 = ")"; - pos++; - } else { - result9 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result9 !== null) { - result5 = [result5, result6, result7, result8, result9]; - } else { - result5 = null; - pos = pos3; - } - } else { - result5 = null; - pos = pos3; - } - } else { - result5 = null; - pos = pos3; - } - } else { - result5 = null; - pos = pos3; - } - } else { - result5 = null; - pos = pos3; - } - if (result5 !== null) { - result5 = (function(offset, prm) {return prm;})(pos2, result5[2]); - } - if (result5 === null) { - pos = pos2; - } - result5 = result5 !== null ? result5 : ""; - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.substr(pos, 2) === "->") { - result7 = "->"; - pos += 2; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"->\""); - } - } - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_EOL(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - pos2 = pos; - pos3 = pos; - result10 = []; - result11 = parse_blank(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_blank(); - } - if (result10 !== null) { - result11 = parse_INDENT(); - if (result11 !== null) { - result12 = []; - result13 = parse_statement(); - while (result13 !== null) { - result12.push(result13); - result13 = parse_statement(); - } - if (result12 !== null) { - result13 = parse_DEDENT(); - if (result13 !== null) { - result10 = [result10, result11, result12, result13]; - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - if (result10 !== null) { - result10 = (function(offset, b, c) { return b.concat(c); })(pos2, result10[0], result10[2]); - } - if (result10 === null) { - pos = pos2; - } - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, Visibility, name, params, body) { - if(params == '') { - params = [] - } - return { - type: "ClassFunctionDeclaration", - name: name[1], - params: params, - body: body !== '' ? body: null, - Visibility: Visibility !== "" ? Visibility : false, - } - })(pos0, result0[1], result0[3], result0[5], result0[10]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_PropertyVisibility() { - var result0; - - result0 = parse_PrivateToken(); - if (result0 === null) { - result0 = parse_ProtectedToken(); - if (result0 === null) { - result0 = parse_PublicToken(); - } - } - return result0; - } - - function parse_ContinueStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_ContinueToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "ContinueStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BreakStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_BreakToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "BreakStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EchoStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_EchoToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "EchoStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ReturnStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_ReturnToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "ReturnStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_RequireStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_RequireToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "RequireStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_Require_onceStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_Require_onceToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "Require_onceStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_Include_onceStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_Include_onceToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "Include_onceStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_IncludeStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_IncludeToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "IncludeStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_AndToken() { - var result0; - - if (input.substr(pos, 3) === "and") { - result0 = "and"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"and\""); - } - } - return result0; - } - - function parse_BreakToken() { - var result0; - - if (input.substr(pos, 5) === "break") { - result0 = "break"; - pos += 5; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"break\""); - } - } - return result0; - } - - function parse_CaseToken() { - var result0; - - if (input.substr(pos, 4) === "case") { - result0 = "case"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"case\""); - } - } - return result0; - } - - function parse_CatchToken() { - var result0; - - if (input.substr(pos, 5) === "catch") { - result0 = "catch"; - pos += 5; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"catch\""); - } - } - return result0; - } - - function parse_ClassToken() { - var result0; - - if (input.substr(pos, 5) === "class") { - result0 = "class"; - pos += 5; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"class\""); - } - } - return result0; - } - - function parse_ConstToken() { - var result0; - - if (input.substr(pos, 5) === "const") { - result0 = "const"; - pos += 5; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"const\""); - } - } - return result0; - } - - function parse_ContinueToken() { - var result0; - - if (input.substr(pos, 8) === "continue") { - result0 = "continue"; - pos += 8; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"continue\""); - } - } - return result0; - } - - function parse_EchoToken() { - var result0; - - if (input.substr(pos, 4) === "echo") { - result0 = "echo"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"echo\""); - } - } - return result0; - } - - function parse_ElseToken() { - var result0; - - if (input.substr(pos, 4) === "else") { - result0 = "else"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"else\""); - } - } - return result0; - } - - function parse_ElseIfToken() { - var result0, result1, result2; - var pos0; - - pos0 = pos; - if (input.substr(pos, 4) === "else") { - result0 = "else"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"else\""); - } - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - if (input.substr(pos, 2) === "if") { - result2 = "if"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"if\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - return result0; - } - - function parse_FalseToken() { - var result0; - - if (input.substr(pos, 5) === "false") { - result0 = "false"; - pos += 5; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"false\""); - } - } - return result0; - } - - function parse_finallyToken() { - var result0; - - if (input.substr(pos, 7) === "finally") { - result0 = "finally"; - pos += 7; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"finally\""); - } - } - return result0; - } - - function parse_ForToken() { - var result0; - - if (input.substr(pos, 3) === "for") { - result0 = "for"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"for\""); - } - } - return result0; - } - - function parse_IfToken() { - var result0; - - if (input.substr(pos, 2) === "if") { - result0 = "if"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"if\""); - } - } - return result0; - } - - function parse_IncludeToken() { - var result0; - - if (input.substr(pos, 7) === "include") { - result0 = "include"; - pos += 7; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"include\""); - } - } - return result0; - } - - function parse_Include_onceToken() { - var result0; - - if (input.substr(pos, 12) === "include_once") { - result0 = "include_once"; - pos += 12; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"include_once\""); - } - } - return result0; - } - - function parse_InToken() { - var result0; - - if (input.substr(pos, 2) === "in") { - result0 = "in"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"in\""); - } - } - return result0; - } - - function parse_NamespaceToken() { - var result0; - - if (input.substr(pos, 9) === "namespace") { - result0 = "namespace"; - pos += 9; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"namespace\""); - } - } - return result0; - } - - function parse_NewToken() { - var result0; - - if (input.substr(pos, 3) === "new") { - result0 = "new"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"new\""); - } - } - return result0; - } - - function parse_NullToken() { - var result0; - - if (input.substr(pos, 4) === "NULL") { - result0 = "NULL"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"NULL\""); - } - } - if (result0 === null) { - if (input.substr(pos, 4) === "None") { - result0 = "None"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"None\""); - } - } - } - return result0; - } - - function parse_OfToken() { - var result0; - - if (input.substr(pos, 2) === "of") { - result0 = "of"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"of\""); - } - } - return result0; - } - - function parse_OrToken() { - var result0; - - if (input.substr(pos, 2) === "or") { - result0 = "or"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"or\""); - } - } - return result0; - } - - function parse_ReturnToken() { - var result0; - - if (input.substr(pos, 6) === "return") { - result0 = "return"; - pos += 6; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"return\""); - } - } - return result0; - } - - function parse_RequireToken() { - var result0; - - if (input.substr(pos, 7) === "require") { - result0 = "require"; - pos += 7; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"require\""); - } - } - return result0; - } - - function parse_Require_onceToken() { - var result0; - - if (input.substr(pos, 12) === "require_once") { - result0 = "require_once"; - pos += 12; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"require_once\""); - } - } - return result0; - } - - function parse_PrivateToken() { - var result0; - - if (input.substr(pos, 7) === "private") { - result0 = "private"; - pos += 7; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"private\""); - } - } - return result0; - } - - function parse_ProtectedToken() { - var result0; - - if (input.substr(pos, 9) === "protected") { - result0 = "protected"; - pos += 9; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"protected\""); - } - } - return result0; - } - - function parse_PublicToken() { - var result0; - - if (input.substr(pos, 6) === "public") { - result0 = "public"; - pos += 6; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"public\""); - } - } - return result0; - } - - function parse_script_start() { - var result0; - - if (input.substr(pos, 2) === "{{") { - result0 = "{{"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"{{\""); - } - } - return result0; - } - - function parse_script_end() { - var result0; - - if (input.substr(pos, 2) === "}}") { - result0 = "}}"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"}}\""); - } - } - return result0; - } - - function parse_StaticToken() { - var result0; - - if (input.substr(pos, 6) === "static") { - result0 = "static"; - pos += 6; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"static\""); - } - } - return result0; - } - - function parse_SwitchToken() { - var result0; - - if (input.substr(pos, 6) === "switch") { - result0 = "switch"; - pos += 6; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"switch\""); - } - } - return result0; - } - - function parse_ThenToken() { - var result0; - - if (input.substr(pos, 4) === "then") { - result0 = "then"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"then\""); - } - } - return result0; - } - - function parse_ThisToken() { - var result0; - - if (input.substr(pos, 4) === "this") { - result0 = "this"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"this\""); - } - } - return result0; - } - - function parse_TrueToken() { - var result0; - - if (input.substr(pos, 4) === "true") { - result0 = "true"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"true\""); - } - } - return result0; - } - - function parse_TryToken() { - var result0; - - if (input.substr(pos, 3) === "try") { - result0 = "try"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"try\""); - } - } - return result0; - } - - function parse_WhileToken() { - var result0; - - if (input.substr(pos, 5) === "while") { - result0 = "while"; - pos += 5; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"while\""); - } - } - return result0; - } - - function parse_ReservedWord() { - var result0; - - result0 = parse_AndToken(); - if (result0 === null) { - result0 = parse_BreakToken(); - if (result0 === null) { - result0 = parse_CaseToken(); - if (result0 === null) { - result0 = parse_CatchToken(); - if (result0 === null) { - result0 = parse_ClassToken(); - if (result0 === null) { - result0 = parse_ConstToken(); - if (result0 === null) { - result0 = parse_ContinueToken(); - if (result0 === null) { - result0 = parse_ElseToken(); - if (result0 === null) { - result0 = parse_ElseToken(); - if (result0 === null) { - result0 = parse_FalseToken(); - if (result0 === null) { - result0 = parse_finallyToken(); - if (result0 === null) { - result0 = parse_ForToken(); - if (result0 === null) { - result0 = parse_IfToken(); - if (result0 === null) { - result0 = parse_Include_onceToken(); - if (result0 === null) { - result0 = parse_IncludeToken(); - if (result0 === null) { - result0 = parse_InToken(); - if (result0 === null) { - result0 = parse_NamespaceToken(); - if (result0 === null) { - result0 = parse_NewToken(); - if (result0 === null) { - result0 = parse_NullToken(); - if (result0 === null) { - result0 = parse_OfToken(); - if (result0 === null) { - result0 = parse_OrToken(); - if (result0 === null) { - result0 = parse_ReturnToken(); - if (result0 === null) { - result0 = parse_RequireToken(); - if (result0 === null) { - result0 = parse_Require_onceToken(); - if (result0 === null) { - result0 = parse_PrivateToken(); - if (result0 === null) { - result0 = parse_ProtectedToken(); - if (result0 === null) { - result0 = parse_PublicToken(); - if (result0 === null) { - result0 = parse_script_end(); - if (result0 === null) { - result0 = parse_script_start(); - if (result0 === null) { - result0 = parse_SwitchToken(); - if (result0 === null) { - result0 = parse_StaticToken(); - if (result0 === null) { - result0 = parse_ThenToken(); - if (result0 === null) { - result0 = parse_ThisToken(); - if (result0 === null) { - result0 = parse_TrueToken(); - if (result0 === null) { - result0 = parse_TryToken(); - if (result0 === null) { - if (input.substr(pos, 8) === "function") { - result0 = "function"; - pos += 8; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"function\""); - } - } - if (result0 === null) { - result0 = parse_WhileToken(); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - return result0; - } - - function parse_SourceCharacter() { - var result0; - - if (input.length > pos) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - return result0; - } - - function parse_WhiteSpace() { - var result0; - - reportFailures++; - if (/^[\t\x0B\f \xA0\uFEFF]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\t\\x0B\\f \\xA0\\uFEFF]"); - } - } - if (result0 === null) { - result0 = parse_Zs(); - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("whitespace"); - } - return result0; - } - - function parse_LineTerminator() { - var result0; - - if (/^[\n\r\u2028\u2029]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\n\\r\\u2028\\u2029]"); - } - } - if (result0 === null) { - result0 = parse_LineTerminatorSequence(); - } - return result0; - } - - function parse_LineTerminatorSequence() { - var result0; - - reportFailures++; - if (input.charCodeAt(pos) === 10) { - result0 = "\n"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\n\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "\r\n") { - result0 = "\r\n"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\r\\n\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 13) { - result0 = "\r"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\r\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 8232) { - result0 = "\u2028"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\u2028\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 8233) { - result0 = "\u2029"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\u2029\""); - } - } - } - } - } - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("end of line"); - } - return result0; - } - - function parse_Comment() { - var result0; - - reportFailures++; - result0 = parse_MultiLineComment(); - if (result0 === null) { - result0 = parse_SingleLineComment(); - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("comment"); - } - return result0; - } - - function parse_MultiLineComment() { - var result0, result1, result2, result3; - var pos0, pos1, pos2; - - pos0 = pos; - if (input.substr(pos, 2) === "/*") { - result0 = "/*"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"/*\""); - } - } - if (result0 !== null) { - result1 = []; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 2) === "*/") { - result2 = "*/"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"*/\""); - } - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - while (result2 !== null) { - result1.push(result2); - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 2) === "*/") { - result2 = "*/"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"*/\""); - } - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - } - if (result1 !== null) { - if (input.substr(pos, 2) === "*/") { - result2 = "*/"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"*/\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - if (input.substr(pos, 3) === "###") { - result0 = "###"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - if (result0 !== null) { - result1 = []; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 3) === "###") { - result2 = "###"; - pos += 3; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - while (result2 !== null) { - result1.push(result2); - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 3) === "###") { - result2 = "###"; - pos += 3; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - } - if (result1 !== null) { - if (input.substr(pos, 3) === "###") { - result2 = "###"; - pos += 3; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } - return result0; - } - - function parse_MultiLineCommentNoLineTerminator() { - var result0, result1, result2, result3; - var pos0, pos1, pos2; - - pos0 = pos; - if (input.substr(pos, 2) === "/*") { - result0 = "/*"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"/*\""); - } - } - if (result0 !== null) { - result1 = []; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 2) === "*/") { - result2 = "*/"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"*/\""); - } - } - if (result2 === null) { - result2 = parse_LineTerminator(); - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - while (result2 !== null) { - result1.push(result2); - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 2) === "*/") { - result2 = "*/"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"*/\""); - } - } - if (result2 === null) { - result2 = parse_LineTerminator(); - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - } - if (result1 !== null) { - if (input.substr(pos, 2) === "*/") { - result2 = "*/"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"*/\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - if (input.substr(pos, 3) === "###") { - result0 = "###"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - if (result0 !== null) { - result1 = []; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 3) === "###") { - result2 = "###"; - pos += 3; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - if (result2 === null) { - result2 = parse_LineTerminator(); - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - while (result2 !== null) { - result1.push(result2); - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 3) === "###") { - result2 = "###"; - pos += 3; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - if (result2 === null) { - result2 = parse_LineTerminator(); - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - } - if (result1 !== null) { - if (input.substr(pos, 3) === "###") { - result2 = "###"; - pos += 3; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } - return result0; - } - - function parse_SingleLineComment() { - var result0, result1, result2, result3; - var pos0, pos1, pos2; - - pos0 = pos; - if (input.substr(pos, 2) === "//") { - result0 = "//"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"//\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 35) { - result0 = "#"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"#\""); - } - } - } - if (result0 !== null) { - result1 = []; - pos1 = pos; - pos2 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - while (result2 !== null) { - result1.push(result2); - pos1 = pos; - pos2 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - return result0; - } - - function parse_Identifier() { - var result0, result1; - var pos0, pos1; - - reportFailures++; - pos0 = pos; - pos1 = pos; - result0 = parse_ReservedWord(); - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse_IdentifierName(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, f, name) { return f+name; })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("identifier"); - } - return result0; - } - - function parse_IdentifierName() { - var result0, result1, result2; - var pos0, pos1; - - reportFailures++; - pos0 = pos; - pos1 = pos; - result0 = parse_IdentifierStart(); - if (result0 !== null) { - result1 = []; - result2 = parse_IdentifierPart(); - while (result2 !== null) { - result1.push(result2); - result2 = parse_IdentifierPart(); - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, start, parts) { - return start + parts.join(""); - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("identifier"); - } - return result0; - } - - function parse_IdentifierStart() { - var result0; - - result0 = parse_UnicodeLetter(); - if (result0 === null) { - if (input.charCodeAt(pos) === 95) { - result0 = "_"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"_\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 36) { - result0 = "$"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"$\""); - } - } - } - } - return result0; - } - - function parse_IdentifierPart() { - var result0; - var pos0; - - result0 = parse_IdentifierStart(); - if (result0 === null) { - result0 = parse_UnicodeCombiningMark(); - if (result0 === null) { - result0 = parse_Nd(); - if (result0 === null) { - result0 = parse_Pc(); - if (result0 === null) { - pos0 = pos; - if (input.charCodeAt(pos) === 8204) { - result0 = "\u200C"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\u200C\""); - } - } - if (result0 !== null) { - result0 = (function(offset) { return "\u200C"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - if (input.charCodeAt(pos) === 8205) { - result0 = "\u200D"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\u200D\""); - } - } - if (result0 !== null) { - result0 = (function(offset) { return "\u200D"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - } - } - } - } - } - return result0; - } - - function parse_UnicodeLetter() { - var result0; - - result0 = parse_Lu(); - if (result0 === null) { - result0 = parse_Ll(); - if (result0 === null) { - result0 = parse_Lt(); - if (result0 === null) { - result0 = parse_Lm(); - if (result0 === null) { - result0 = parse_Lo(); - if (result0 === null) { - result0 = parse_Nl(); - } - } - } - } - } - return result0; - } - - function parse_UnicodeCombiningMark() { - var result0; - - result0 = parse_Mn(); - if (result0 === null) { - result0 = parse_Mc(); - } - return result0; - } - - function parse__() { - var result0, result1; - - result0 = []; - result1 = parse_WhiteSpace(); - if (result1 === null) { - result1 = parse_MultiLineCommentNoLineTerminator(); - if (result1 === null) { - result1 = parse_SingleLineComment(); - } - } - while (result1 !== null) { - result0.push(result1); - result1 = parse_WhiteSpace(); - if (result1 === null) { - result1 = parse_MultiLineCommentNoLineTerminator(); - if (result1 === null) { - result1 = parse_SingleLineComment(); - } - } - } - return result0; - } - - function parse___() { - var result0, result1; - - result0 = []; - result1 = parse_WhiteSpace(); - if (result1 === null) { - result1 = parse_Comment(); - } - while (result1 !== null) { - result0.push(result1); - result1 = parse_WhiteSpace(); - if (result1 === null) { - result1 = parse_Comment(); - } - } - return result0; - } - - function parse____() { - var result0, result1; - - result0 = []; - result1 = parse_WhiteSpace(); - if (result1 === null) { - result1 = parse_LineTerminator(); - if (result1 === null) { - result1 = parse_Comment(); - } - } - while (result1 !== null) { - result0.push(result1); - result1 = parse_WhiteSpace(); - if (result1 === null) { - result1 = parse_LineTerminator(); - if (result1 === null) { - result1 = parse_Comment(); - } - } - } - return result0; - } - - function parse_Literal() { - var result0; - var pos0; - - result0 = parse_BooleanLiteral(); - if (result0 === null) { - pos0 = pos; - result0 = parse_NumericLiteral(); - if (result0 !== null) { - result0 = (function(offset, value) { - return { - type: "NumericLiteral", - value: value - }; - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_StringLiteral(); - if (result0 !== null) { - result0 = (function(offset, value) { - return { - type: "StringLiteral", - value: value - }; - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_PHPLiteral(); - if (result0 !== null) { - result0 = (function(offset, value) { - return { - type: "PHPLiteral", - value: value - } - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_EODLiteral(); - if (result0 !== null) { - result0 = (function(offset, value) { - return { - type: "EODLiteral", - value: value - } - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_EOTLiteral(); - if (result0 !== null) { - result0 = (function(offset, value) { - return { - type: "EOTLiteral", - value: value - } - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - } - } - } - } - } - return result0; - } - - function parse_NullLiteral() { - var result0; - var pos0; - - pos0 = pos; - result0 = parse_NullToken(); - if (result0 !== null) { - result0 = (function(offset) { return { type: "NullLiteral" }; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BooleanLiteral() { - var result0; - var pos0; - - pos0 = pos; - result0 = parse_TrueToken(); - if (result0 !== null) { - result0 = (function(offset) { return { type: "BooleanLiteral", value: true }; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_FalseToken(); - if (result0 !== null) { - result0 = (function(offset) { return { type: "BooleanLiteral", value: false }; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_NumericLiteral() { - var result0; - var pos0; - - reportFailures++; - pos0 = pos; - result0 = parse_HexIntegerLiteral(); - if (result0 === null) { - result0 = parse_DecimalLiteral(); - } - if (result0 !== null) { - result0 = (function(offset, literal) { - return literal; - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("number"); - } - return result0; - } - - function parse_DecimalLiteral() { - var result0, result1, result2, result3; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_DecimalIntegerLiteral(); - if (result0 !== null) { - if (input.charCodeAt(pos) === 46) { - result1 = "."; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result1 !== null) { - result2 = parse_DecimalDigits(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse_ExponentPart(); - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - result0 = [result0, result1, result2, result3]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, before, after, exponent) { - return parseFloat(before + "." + after + exponent); - })(pos0, result0[0], result0[2], result0[3]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 46) { - result0 = "."; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result0 !== null) { - result1 = parse_DecimalDigits(); - if (result1 !== null) { - result2 = parse_ExponentPart(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, after, exponent) { - return parseFloat("." + after + exponent); - })(pos0, result0[1], result0[2]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_DecimalIntegerLiteral(); - if (result0 !== null) { - result1 = parse_ExponentPart(); - result1 = result1 !== null ? result1 : ""; - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, before, exponent) { - return parseFloat(before + exponent); - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - } - } - return result0; - } - - function parse_DecimalIntegerLiteral() { - var result0, result1; - var pos0, pos1; - - if (input.charCodeAt(pos) === 48) { - result0 = "0"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"0\""); - } - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_NonZeroDigit(); - if (result0 !== null) { - result1 = parse_DecimalDigits(); - result1 = result1 !== null ? result1 : ""; - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, digit, digits) { return digit + digits; })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_DecimalDigits() { - var result0, result1; - var pos0; - - pos0 = pos; - result1 = parse_DecimalDigit(); - if (result1 !== null) { - result0 = []; - while (result1 !== null) { - result0.push(result1); - result1 = parse_DecimalDigit(); - } - } else { - result0 = null; - } - if (result0 !== null) { - result0 = (function(offset, digits) { return digits.join(""); })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_DecimalDigit() { - var result0; - - if (/^[0-9]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[0-9]"); - } - } - return result0; - } - - function parse_NonZeroDigit() { - var result0; - - if (/^[1-9]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[1-9]"); - } - } - return result0; - } - - function parse_ExponentPart() { - var result0, result1; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_ExponentIndicator(); - if (result0 !== null) { - result1 = parse_SignedInteger(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, indicator, integer) { - return indicator + integer; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ExponentIndicator() { - var result0; - - if (/^[eE]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[eE]"); - } - } - return result0; - } - - function parse_SignedInteger() { - var result0, result1; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (/^[\-+]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\-+]"); - } - } - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse_DecimalDigits(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, sign, digits) { return sign + digits; })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_HexIntegerLiteral() { - var result0, result1, result2, result3; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 48) { - result0 = "0"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"0\""); - } - } - if (result0 !== null) { - if (/^[xX]/.test(input.charAt(pos))) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("[xX]"); - } - } - if (result1 !== null) { - result3 = parse_HexDigit(); - if (result3 !== null) { - result2 = []; - while (result3 !== null) { - result2.push(result3); - result3 = parse_HexDigit(); - } - } else { - result2 = null; - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, digits) { return parseInt("0x" + digits.join("")); })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_HexDigit() { - var result0; - - if (/^[0-9a-fA-F]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[0-9a-fA-F]"); - } - } - return result0; - } - - function parse_StringLiteral() { - var result0, result1, result2; - var pos0, pos1; - - reportFailures++; - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 34) { - result0 = "\""; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\"\""); - } - } - if (result0 !== null) { - result1 = parse_DoubleStringCharacters(); - result1 = result1 !== null ? result1 : ""; - if (result1 !== null) { - if (input.charCodeAt(pos) === 34) { - result2 = "\""; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"\\\"\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 === null) { - pos1 = pos; - if (input.charCodeAt(pos) === 39) { - result0 = "'"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"'\""); - } - } - if (result0 !== null) { - result1 = parse_SingleStringCharacters(); - result1 = result1 !== null ? result1 : ""; - if (result1 !== null) { - if (input.charCodeAt(pos) === 39) { - result2 = "'"; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"'\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } - if (result0 !== null) { - result0 = (function(offset, parts) { - return parts[1]; - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("string"); - } - return result0; - } - - function parse_DoubleStringCharacters() { - var result0, result1; - var pos0; - - pos0 = pos; - result1 = parse_DoubleStringCharacter(); - if (result1 !== null) { - result0 = []; - while (result1 !== null) { - result0.push(result1); - result1 = parse_DoubleStringCharacter(); - } - } else { - result0 = null; - } - if (result0 !== null) { - result0 = (function(offset, chars) { return chars.join(""); })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_SingleStringCharacters() { - var result0, result1; - var pos0; - - pos0 = pos; - result1 = parse_SingleStringCharacter(); - if (result1 !== null) { - result0 = []; - while (result1 !== null) { - result0.push(result1); - result1 = parse_SingleStringCharacter(); - } - } else { - result0 = null; - } - if (result0 !== null) { - result0 = (function(offset, chars) { return chars.join(""); })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_DoubleStringCharacter() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 34) { - result0 = "\""; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\"\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 92) { - result0 = "\\"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result0 === null) { - result0 = parse_LineTerminator(); - } - } - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - result1 = parse_SourceCharacter(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, char_) { return char_; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 92) { - result0 = "\\"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result0 !== null) { - if (input.length > pos) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return "'.\"\\"+m[1]+"\".'"; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_SingleStringCharacter() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 39) { - result0 = "'"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"'\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 92) { - result0 = "\\"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result0 === null) { - result0 = parse_LineTerminator(); - } - } - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - result1 = parse_SourceCharacter(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, char_) { return char_; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 92) { - result0 = "\\"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result0 !== null) { - if (input.length > pos) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return "'.\"\\"+m[1]+"\".'"; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_EODLiteral() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 96) { - result0 = "`"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"`\""); - } - } - if (result0 !== null) { - result2 = parse_EODString(); - if (result2 !== null) { - result1 = []; - while (result2 !== null) { - result1.push(result2); - result2 = parse_EODString(); - } - } else { - result1 = null; - } - if (result1 !== null) { - if (input.charCodeAt(pos) === 96) { - result2 = "`"; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"`\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, EODv) { - return EODv.join(""); - })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EOTLiteral() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 96) { - result0 = "`"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"`\""); - } - } - if (result0 !== null) { - result2 = parse_EOTString(); - if (result2 !== null) { - result1 = []; - while (result2 !== null) { - result1.push(result2); - result2 = parse_EOTString(); - } - } else { - result1 = null; - } - if (result1 !== null) { - if (input.charCodeAt(pos) === 96) { - result2 = "`"; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"`\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, EOTv) { - return EOTv.join(""); - })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EODString() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 96) { - result0 = "`"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"`\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 36) { - result0 = "$"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"$\""); - } - } - } - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - result1 = parse_SourceCharacter(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, char_) { return char_; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EOTString() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 96) { - result0 = "`"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"`\""); - } - } - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - result1 = parse_SourceCharacter(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, char_) { return char_; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ArrayLiteral() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 91) { - result0 = "["; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result0 !== null) { - result1 = parse____(); - if (result1 !== null) { - pos2 = pos; - result2 = parse_PropertyNameAndValueList(); - if (result2 !== null) { - result3 = parse____(); - if (result3 !== null) { - pos3 = pos; - if (input.charCodeAt(pos) === 44) { - result4 = ","; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result4 !== null) { - result5 = parse____(); - if (result5 !== null) { - result4 = [result4, result5]; - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result2 = [result2, result3, result4]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - if (input.charCodeAt(pos) === 93) { - result3 = "]"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result3 !== null) { - result0 = [result0, result1, result2, result3]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, properties) { - return { - type: "keyBasedArrayLiteral", - properties: properties !== "" ? properties[0] : [] - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 91) { - result0 = "["; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result0 !== null) { - result1 = parse____(); - if (result1 !== null) { - result2 = parse_ElementList(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse____(); - if (result3 !== null) { - pos2 = pos; - result4 = parse_Elision(); - if (result4 !== null) { - result5 = parse____(); - if (result5 !== null) { - result4 = [result4, result5]; - } else { - result4 = null; - pos = pos2; - } - } else { - result4 = null; - pos = pos2; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - if (input.charCodeAt(pos) === 93) { - result5 = "]"; - pos++; - } else { - result5 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result5 !== null) { - result0 = [result0, result1, result2, result3, result4, result5]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, elements) { - return { - type: "ArrayLiteral", - elements: elements !== "" ? elements : [] - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_ElementList() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - result0 = parse_Elision(); - if (result0 !== null) { - result1 = parse____(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos2; - } - } else { - result0 = null; - pos = pos2; - } - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse_AssignmentExpression(); - if (result1 !== null) { - result2 = []; - pos2 = pos; - result3 = parse____(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 44) { - result4 = ","; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - result6 = parse_Elision(); - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result7 = parse____(); - if (result7 !== null) { - result8 = parse_AssignmentExpression(); - if (result8 !== null) { - result3 = [result3, result4, result5, result6, result7, result8]; - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - while (result3 !== null) { - result2.push(result3); - pos2 = pos; - result3 = parse____(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 44) { - result4 = ","; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - result6 = parse_Elision(); - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result7 = parse____(); - if (result7 !== null) { - result8 = parse_AssignmentExpression(); - if (result8 !== null) { - result3 = [result3, result4, result5, result6, result7, result8]; - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = [head]; - for (var i = 0; i < tail.length; i++) { - result.push(tail[i][5]); - } - return result; - })(pos0, result0[1], result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_Elision() { - var result0, result1, result2, result3; - var pos0, pos1; - - pos0 = pos; - if (input.charCodeAt(pos) === 44) { - result0 = ","; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result0 !== null) { - result1 = []; - pos1 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - while (result2 !== null) { - result1.push(result2); - pos1 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - return result0; - } - - function parse_PropertyNameAndValueList() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_PropertyAssignment(); - if (result0 === null) { - result0 = parse_AssignmentExpression(); - } - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse____(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse____(); - if (result4 !== null) { - result5 = parse_PropertyAssignment(); - if (result5 === null) { - result5 = parse_AssignmentExpression(); - } - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse____(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse____(); - if (result4 !== null) { - result5 = parse_PropertyAssignment(); - if (result5 === null) { - result5 = parse_AssignmentExpression(); - } - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = [head]; - for (var i = 0; i < tail.length; i++) { - result.push(tail[i][3]); - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_PropertyAssignment() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_PropertyName(); - if (result0 !== null) { - result1 = parse____(); - if (result1 !== null) { - if (input.charCodeAt(pos) === 58) { - result2 = ":"; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\":\""); - } - } - if (result2 !== null) { - result3 = parse____(); - if (result3 !== null) { - result4 = parse_AssignmentExpression(); - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name, value) { - return { - type: "PropertyAssignment", - name: name, - value: value - }; - })(pos0, result0[0], result0[4]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_PropertyName() { - var result0; - - result0 = parse_IdentifierName(); - if (result0 === null) { - result0 = parse_StringLiteral(); - if (result0 === null) { - result0 = parse_NumericLiteral(); - } - } - return result0; - } - - function parse_PHPLiteral() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.substr(pos, 2) === "``") { - result0 = "``"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"``\""); - } - } - if (result0 !== null) { - result2 = parse_RAWString(); - if (result2 !== null) { - result1 = []; - while (result2 !== null) { - result1.push(result2); - result2 = parse_RAWString(); - } - } else { - result1 = null; - } - if (result1 !== null) { - if (input.substr(pos, 2) === "``") { - result2 = "``"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"``\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, RAW) { - return RAW.join(""); - })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_RAWString() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 2) === "``") { - result0 = "``"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"``\""); - } - } - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - result1 = parse_SourceCharacter(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, char_) { return char_; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_Ll() { - var result0; - - if (/^[abcdefghijklmnopqrstuvwxyz\xAA\xB5\xBA\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E\u017F\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199\u019A\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD\u01BE\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233\u0234\u0235\u0236\u0237\u0238\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F\u0250\u0251\u0252\u0253\u0254\u0255\u0256\u0257\u0258\u0259\u025A\u025B\u025C\u025D\u025E\u025F\u0260\u0261\u0262\u0263\u0264\u0265\u0266\u0267\u0268\u0269\u026A\u026B\u026C\u026D\u026E\u026F\u0270\u0271\u0272\u0273\u0274\u0275\u0276\u0277\u0278\u0279\u027A\u027B\u027C\u027D\u027E\u027F\u0280\u0281\u0282\u0283\u0284\u0285\u0286\u0287\u0288\u0289\u028A\u028B\u028C\u028D\u028E\u028F\u0290\u0291\u0292\u0293\u0295\u0296\u0297\u0298\u0299\u029A\u029B\u029C\u029D\u029E\u029F\u02A0\u02A1\u02A2\u02A3\u02A4\u02A5\u02A6\u02A7\u02A8\u02A9\u02AA\u02AB\u02AC\u02AD\u02AE\u02AF\u0371\u0373\u0377\u037B\u037C\u037D\u0390\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\u03D0\u03D1\u03D5\u03D6\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF\u03F0\u03F1\u03F2\u03F3\u03F5\u03F8\u03FB\u03FC\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0450\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\u045D\u045E\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0561\u0562\u0563\u0564\u0565\u0566\u0567\u0568\u0569\u056A\u056B\u056C\u056D\u056E\u056F\u0570\u0571\u0572\u0573\u0574\u0575\u0576\u0577\u0578\u0579\u057A\u057B\u057C\u057D\u057E\u057F\u0580\u0581\u0582\u0583\u0584\u0585\u0586\u0587\u1D00\u1D01\u1D02\u1D03\u1D04\u1D05\u1D06\u1D07\u1D08\u1D09\u1D0A\u1D0B\u1D0C\u1D0D\u1D0E\u1D0F\u1D10\u1D11\u1D12\u1D13\u1D14\u1D15\u1D16\u1D17\u1D18\u1D19\u1D1A\u1D1B\u1D1C\u1D1D\u1D1E\u1D1F\u1D20\u1D21\u1D22\u1D23\u1D24\u1D25\u1D26\u1D27\u1D28\u1D29\u1D2A\u1D2B\u1D62\u1D63\u1D64\u1D65\u1D66\u1D67\u1D68\u1D69\u1D6A\u1D6B\u1D6C\u1D6D\u1D6E\u1D6F\u1D70\u1D71\u1D72\u1D73\u1D74\u1D75\u1D76\u1D77\u1D79\u1D7A\u1D7B\u1D7C\u1D7D\u1D7E\u1D7F\u1D80\u1D81\u1D82\u1D83\u1D84\u1D85\u1D86\u1D87\u1D88\u1D89\u1D8A\u1D8B\u1D8C\u1D8D\u1D8E\u1D8F\u1D90\u1D91\u1D92\u1D93\u1D94\u1D95\u1D96\u1D97\u1D98\u1D99\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95\u1E96\u1E97\u1E98\u1E99\u1E9A\u1E9B\u1E9C\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF\u1F00\u1F01\u1F02\u1F03\u1F04\u1F05\u1F06\u1F07\u1F10\u1F11\u1F12\u1F13\u1F14\u1F15\u1F20\u1F21\u1F22\u1F23\u1F24\u1F25\u1F26\u1F27\u1F30\u1F31\u1F32\u1F33\u1F34\u1F35\u1F36\u1F37\u1F40\u1F41\u1F42\u1F43\u1F44\u1F45\u1F50\u1F51\u1F52\u1F53\u1F54\u1F55\u1F56\u1F57\u1F60\u1F61\u1F62\u1F63\u1F64\u1F65\u1F66\u1F67\u1F70\u1F71\u1F72\u1F73\u1F74\u1F75\u1F76\u1F77\u1F78\u1F79\u1F7A\u1F7B\u1F7C\u1F7D\u1F80\u1F81\u1F82\u1F83\u1F84\u1F85\u1F86\u1F87\u1F90\u1F91\u1F92\u1F93\u1F94\u1F95\u1F96\u1F97\u1FA0\u1FA1\u1FA2\u1FA3\u1FA4\u1FA5\u1FA6\u1FA7\u1FB0\u1FB1\u1FB2\u1FB3\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2\u1FC3\u1FC4\u1FC6\u1FC7\u1FD0\u1FD1\u1FD2\u1FD3\u1FD6\u1FD7\u1FE0\u1FE1\u1FE2\u1FE3\u1FE4\u1FE5\u1FE6\u1FE7\u1FF2\u1FF3\u1FF4\u1FF6\u1FF7\u2071\u207F\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146\u2147\u2148\u2149\u214E\u2184\u2C30\u2C31\u2C32\u2C33\u2C34\u2C35\u2C36\u2C37\u2C38\u2C39\u2C3A\u2C3B\u2C3C\u2C3D\u2C3E\u2C3F\u2C40\u2C41\u2C42\u2C43\u2C44\u2C45\u2C46\u2C47\u2C48\u2C49\u2C4A\u2C4B\u2C4C\u2C4D\u2C4E\u2C4F\u2C50\u2C51\u2C52\u2C53\u2C54\u2C55\u2C56\u2C57\u2C58\u2C59\u2C5A\u2C5B\u2C5C\u2C5D\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76\u2C77\u2C78\u2C79\u2C7A\u2C7B\u2C7C\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2D00\u2D01\u2D02\u2D03\u2D04\u2D05\u2D06\u2D07\u2D08\u2D09\u2D0A\u2D0B\u2D0C\u2D0D\u2D0E\u2D0F\u2D10\u2D11\u2D12\u2D13\u2D14\u2D15\u2D16\u2D17\u2D18\u2D19\u2D1A\u2D1B\u2D1C\u2D1D\u2D1E\u2D1F\u2D20\u2D21\u2D22\u2D23\u2D24\u2D25\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F\uA730\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771\uA772\uA773\uA774\uA775\uA776\uA777\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uFB00\uFB01\uFB02\uFB03\uFB04\uFB05\uFB06\uFB13\uFB14\uFB15\uFB16\uFB17\uFF41\uFF42\uFF43\uFF44\uFF45\uFF46\uFF47\uFF48\uFF49\uFF4A\uFF4B\uFF4C\uFF4D\uFF4E\uFF4F\uFF50\uFF51\uFF52\uFF53\uFF54\uFF55\uFF56\uFF57\uFF58\uFF59\uFF5A]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[abcdefghijklmnopqrstuvwxyz\\xAA\\xB5\\xBA\\xDF\\xE0\\xE1\\xE2\\xE3\\xE4\\xE5\\xE6\\xE7\\xE8\\xE9\\xEA\\xEB\\xEC\\xED\\xEE\\xEF\\xF0\\xF1\\xF2\\xF3\\xF4\\xF5\\xF6\\xF8\\xF9\\xFA\\xFB\\xFC\\xFD\\xFE\\xFF\\u0101\\u0103\\u0105\\u0107\\u0109\\u010B\\u010D\\u010F\\u0111\\u0113\\u0115\\u0117\\u0119\\u011B\\u011D\\u011F\\u0121\\u0123\\u0125\\u0127\\u0129\\u012B\\u012D\\u012F\\u0131\\u0133\\u0135\\u0137\\u0138\\u013A\\u013C\\u013E\\u0140\\u0142\\u0144\\u0146\\u0148\\u0149\\u014B\\u014D\\u014F\\u0151\\u0153\\u0155\\u0157\\u0159\\u015B\\u015D\\u015F\\u0161\\u0163\\u0165\\u0167\\u0169\\u016B\\u016D\\u016F\\u0171\\u0173\\u0175\\u0177\\u017A\\u017C\\u017E\\u017F\\u0180\\u0183\\u0185\\u0188\\u018C\\u018D\\u0192\\u0195\\u0199\\u019A\\u019B\\u019E\\u01A1\\u01A3\\u01A5\\u01A8\\u01AA\\u01AB\\u01AD\\u01B0\\u01B4\\u01B6\\u01B9\\u01BA\\u01BD\\u01BE\\u01BF\\u01C6\\u01C9\\u01CC\\u01CE\\u01D0\\u01D2\\u01D4\\u01D6\\u01D8\\u01DA\\u01DC\\u01DD\\u01DF\\u01E1\\u01E3\\u01E5\\u01E7\\u01E9\\u01EB\\u01ED\\u01EF\\u01F0\\u01F3\\u01F5\\u01F9\\u01FB\\u01FD\\u01FF\\u0201\\u0203\\u0205\\u0207\\u0209\\u020B\\u020D\\u020F\\u0211\\u0213\\u0215\\u0217\\u0219\\u021B\\u021D\\u021F\\u0221\\u0223\\u0225\\u0227\\u0229\\u022B\\u022D\\u022F\\u0231\\u0233\\u0234\\u0235\\u0236\\u0237\\u0238\\u0239\\u023C\\u023F\\u0240\\u0242\\u0247\\u0249\\u024B\\u024D\\u024F\\u0250\\u0251\\u0252\\u0253\\u0254\\u0255\\u0256\\u0257\\u0258\\u0259\\u025A\\u025B\\u025C\\u025D\\u025E\\u025F\\u0260\\u0261\\u0262\\u0263\\u0264\\u0265\\u0266\\u0267\\u0268\\u0269\\u026A\\u026B\\u026C\\u026D\\u026E\\u026F\\u0270\\u0271\\u0272\\u0273\\u0274\\u0275\\u0276\\u0277\\u0278\\u0279\\u027A\\u027B\\u027C\\u027D\\u027E\\u027F\\u0280\\u0281\\u0282\\u0283\\u0284\\u0285\\u0286\\u0287\\u0288\\u0289\\u028A\\u028B\\u028C\\u028D\\u028E\\u028F\\u0290\\u0291\\u0292\\u0293\\u0295\\u0296\\u0297\\u0298\\u0299\\u029A\\u029B\\u029C\\u029D\\u029E\\u029F\\u02A0\\u02A1\\u02A2\\u02A3\\u02A4\\u02A5\\u02A6\\u02A7\\u02A8\\u02A9\\u02AA\\u02AB\\u02AC\\u02AD\\u02AE\\u02AF\\u0371\\u0373\\u0377\\u037B\\u037C\\u037D\\u0390\\u03AC\\u03AD\\u03AE\\u03AF\\u03B0\\u03B1\\u03B2\\u03B3\\u03B4\\u03B5\\u03B6\\u03B7\\u03B8\\u03B9\\u03BA\\u03BB\\u03BC\\u03BD\\u03BE\\u03BF\\u03C0\\u03C1\\u03C2\\u03C3\\u03C4\\u03C5\\u03C6\\u03C7\\u03C8\\u03C9\\u03CA\\u03CB\\u03CC\\u03CD\\u03CE\\u03D0\\u03D1\\u03D5\\u03D6\\u03D7\\u03D9\\u03DB\\u03DD\\u03DF\\u03E1\\u03E3\\u03E5\\u03E7\\u03E9\\u03EB\\u03ED\\u03EF\\u03F0\\u03F1\\u03F2\\u03F3\\u03F5\\u03F8\\u03FB\\u03FC\\u0430\\u0431\\u0432\\u0433\\u0434\\u0435\\u0436\\u0437\\u0438\\u0439\\u043A\\u043B\\u043C\\u043D\\u043E\\u043F\\u0440\\u0441\\u0442\\u0443\\u0444\\u0445\\u0446\\u0447\\u0448\\u0449\\u044A\\u044B\\u044C\\u044D\\u044E\\u044F\\u0450\\u0451\\u0452\\u0453\\u0454\\u0455\\u0456\\u0457\\u0458\\u0459\\u045A\\u045B\\u045C\\u045D\\u045E\\u045F\\u0461\\u0463\\u0465\\u0467\\u0469\\u046B\\u046D\\u046F\\u0471\\u0473\\u0475\\u0477\\u0479\\u047B\\u047D\\u047F\\u0481\\u048B\\u048D\\u048F\\u0491\\u0493\\u0495\\u0497\\u0499\\u049B\\u049D\\u049F\\u04A1\\u04A3\\u04A5\\u04A7\\u04A9\\u04AB\\u04AD\\u04AF\\u04B1\\u04B3\\u04B5\\u04B7\\u04B9\\u04BB\\u04BD\\u04BF\\u04C2\\u04C4\\u04C6\\u04C8\\u04CA\\u04CC\\u04CE\\u04CF\\u04D1\\u04D3\\u04D5\\u04D7\\u04D9\\u04DB\\u04DD\\u04DF\\u04E1\\u04E3\\u04E5\\u04E7\\u04E9\\u04EB\\u04ED\\u04EF\\u04F1\\u04F3\\u04F5\\u04F7\\u04F9\\u04FB\\u04FD\\u04FF\\u0501\\u0503\\u0505\\u0507\\u0509\\u050B\\u050D\\u050F\\u0511\\u0513\\u0515\\u0517\\u0519\\u051B\\u051D\\u051F\\u0521\\u0523\\u0561\\u0562\\u0563\\u0564\\u0565\\u0566\\u0567\\u0568\\u0569\\u056A\\u056B\\u056C\\u056D\\u056E\\u056F\\u0570\\u0571\\u0572\\u0573\\u0574\\u0575\\u0576\\u0577\\u0578\\u0579\\u057A\\u057B\\u057C\\u057D\\u057E\\u057F\\u0580\\u0581\\u0582\\u0583\\u0584\\u0585\\u0586\\u0587\\u1D00\\u1D01\\u1D02\\u1D03\\u1D04\\u1D05\\u1D06\\u1D07\\u1D08\\u1D09\\u1D0A\\u1D0B\\u1D0C\\u1D0D\\u1D0E\\u1D0F\\u1D10\\u1D11\\u1D12\\u1D13\\u1D14\\u1D15\\u1D16\\u1D17\\u1D18\\u1D19\\u1D1A\\u1D1B\\u1D1C\\u1D1D\\u1D1E\\u1D1F\\u1D20\\u1D21\\u1D22\\u1D23\\u1D24\\u1D25\\u1D26\\u1D27\\u1D28\\u1D29\\u1D2A\\u1D2B\\u1D62\\u1D63\\u1D64\\u1D65\\u1D66\\u1D67\\u1D68\\u1D69\\u1D6A\\u1D6B\\u1D6C\\u1D6D\\u1D6E\\u1D6F\\u1D70\\u1D71\\u1D72\\u1D73\\u1D74\\u1D75\\u1D76\\u1D77\\u1D79\\u1D7A\\u1D7B\\u1D7C\\u1D7D\\u1D7E\\u1D7F\\u1D80\\u1D81\\u1D82\\u1D83\\u1D84\\u1D85\\u1D86\\u1D87\\u1D88\\u1D89\\u1D8A\\u1D8B\\u1D8C\\u1D8D\\u1D8E\\u1D8F\\u1D90\\u1D91\\u1D92\\u1D93\\u1D94\\u1D95\\u1D96\\u1D97\\u1D98\\u1D99\\u1D9A\\u1E01\\u1E03\\u1E05\\u1E07\\u1E09\\u1E0B\\u1E0D\\u1E0F\\u1E11\\u1E13\\u1E15\\u1E17\\u1E19\\u1E1B\\u1E1D\\u1E1F\\u1E21\\u1E23\\u1E25\\u1E27\\u1E29\\u1E2B\\u1E2D\\u1E2F\\u1E31\\u1E33\\u1E35\\u1E37\\u1E39\\u1E3B\\u1E3D\\u1E3F\\u1E41\\u1E43\\u1E45\\u1E47\\u1E49\\u1E4B\\u1E4D\\u1E4F\\u1E51\\u1E53\\u1E55\\u1E57\\u1E59\\u1E5B\\u1E5D\\u1E5F\\u1E61\\u1E63\\u1E65\\u1E67\\u1E69\\u1E6B\\u1E6D\\u1E6F\\u1E71\\u1E73\\u1E75\\u1E77\\u1E79\\u1E7B\\u1E7D\\u1E7F\\u1E81\\u1E83\\u1E85\\u1E87\\u1E89\\u1E8B\\u1E8D\\u1E8F\\u1E91\\u1E93\\u1E95\\u1E96\\u1E97\\u1E98\\u1E99\\u1E9A\\u1E9B\\u1E9C\\u1E9D\\u1E9F\\u1EA1\\u1EA3\\u1EA5\\u1EA7\\u1EA9\\u1EAB\\u1EAD\\u1EAF\\u1EB1\\u1EB3\\u1EB5\\u1EB7\\u1EB9\\u1EBB\\u1EBD\\u1EBF\\u1EC1\\u1EC3\\u1EC5\\u1EC7\\u1EC9\\u1ECB\\u1ECD\\u1ECF\\u1ED1\\u1ED3\\u1ED5\\u1ED7\\u1ED9\\u1EDB\\u1EDD\\u1EDF\\u1EE1\\u1EE3\\u1EE5\\u1EE7\\u1EE9\\u1EEB\\u1EED\\u1EEF\\u1EF1\\u1EF3\\u1EF5\\u1EF7\\u1EF9\\u1EFB\\u1EFD\\u1EFF\\u1F00\\u1F01\\u1F02\\u1F03\\u1F04\\u1F05\\u1F06\\u1F07\\u1F10\\u1F11\\u1F12\\u1F13\\u1F14\\u1F15\\u1F20\\u1F21\\u1F22\\u1F23\\u1F24\\u1F25\\u1F26\\u1F27\\u1F30\\u1F31\\u1F32\\u1F33\\u1F34\\u1F35\\u1F36\\u1F37\\u1F40\\u1F41\\u1F42\\u1F43\\u1F44\\u1F45\\u1F50\\u1F51\\u1F52\\u1F53\\u1F54\\u1F55\\u1F56\\u1F57\\u1F60\\u1F61\\u1F62\\u1F63\\u1F64\\u1F65\\u1F66\\u1F67\\u1F70\\u1F71\\u1F72\\u1F73\\u1F74\\u1F75\\u1F76\\u1F77\\u1F78\\u1F79\\u1F7A\\u1F7B\\u1F7C\\u1F7D\\u1F80\\u1F81\\u1F82\\u1F83\\u1F84\\u1F85\\u1F86\\u1F87\\u1F90\\u1F91\\u1F92\\u1F93\\u1F94\\u1F95\\u1F96\\u1F97\\u1FA0\\u1FA1\\u1FA2\\u1FA3\\u1FA4\\u1FA5\\u1FA6\\u1FA7\\u1FB0\\u1FB1\\u1FB2\\u1FB3\\u1FB4\\u1FB6\\u1FB7\\u1FBE\\u1FC2\\u1FC3\\u1FC4\\u1FC6\\u1FC7\\u1FD0\\u1FD1\\u1FD2\\u1FD3\\u1FD6\\u1FD7\\u1FE0\\u1FE1\\u1FE2\\u1FE3\\u1FE4\\u1FE5\\u1FE6\\u1FE7\\u1FF2\\u1FF3\\u1FF4\\u1FF6\\u1FF7\\u2071\\u207F\\u210A\\u210E\\u210F\\u2113\\u212F\\u2134\\u2139\\u213C\\u213D\\u2146\\u2147\\u2148\\u2149\\u214E\\u2184\\u2C30\\u2C31\\u2C32\\u2C33\\u2C34\\u2C35\\u2C36\\u2C37\\u2C38\\u2C39\\u2C3A\\u2C3B\\u2C3C\\u2C3D\\u2C3E\\u2C3F\\u2C40\\u2C41\\u2C42\\u2C43\\u2C44\\u2C45\\u2C46\\u2C47\\u2C48\\u2C49\\u2C4A\\u2C4B\\u2C4C\\u2C4D\\u2C4E\\u2C4F\\u2C50\\u2C51\\u2C52\\u2C53\\u2C54\\u2C55\\u2C56\\u2C57\\u2C58\\u2C59\\u2C5A\\u2C5B\\u2C5C\\u2C5D\\u2C5E\\u2C61\\u2C65\\u2C66\\u2C68\\u2C6A\\u2C6C\\u2C71\\u2C73\\u2C74\\u2C76\\u2C77\\u2C78\\u2C79\\u2C7A\\u2C7B\\u2C7C\\u2C81\\u2C83\\u2C85\\u2C87\\u2C89\\u2C8B\\u2C8D\\u2C8F\\u2C91\\u2C93\\u2C95\\u2C97\\u2C99\\u2C9B\\u2C9D\\u2C9F\\u2CA1\\u2CA3\\u2CA5\\u2CA7\\u2CA9\\u2CAB\\u2CAD\\u2CAF\\u2CB1\\u2CB3\\u2CB5\\u2CB7\\u2CB9\\u2CBB\\u2CBD\\u2CBF\\u2CC1\\u2CC3\\u2CC5\\u2CC7\\u2CC9\\u2CCB\\u2CCD\\u2CCF\\u2CD1\\u2CD3\\u2CD5\\u2CD7\\u2CD9\\u2CDB\\u2CDD\\u2CDF\\u2CE1\\u2CE3\\u2CE4\\u2D00\\u2D01\\u2D02\\u2D03\\u2D04\\u2D05\\u2D06\\u2D07\\u2D08\\u2D09\\u2D0A\\u2D0B\\u2D0C\\u2D0D\\u2D0E\\u2D0F\\u2D10\\u2D11\\u2D12\\u2D13\\u2D14\\u2D15\\u2D16\\u2D17\\u2D18\\u2D19\\u2D1A\\u2D1B\\u2D1C\\u2D1D\\u2D1E\\u2D1F\\u2D20\\u2D21\\u2D22\\u2D23\\u2D24\\u2D25\\uA641\\uA643\\uA645\\uA647\\uA649\\uA64B\\uA64D\\uA64F\\uA651\\uA653\\uA655\\uA657\\uA659\\uA65B\\uA65D\\uA65F\\uA663\\uA665\\uA667\\uA669\\uA66B\\uA66D\\uA681\\uA683\\uA685\\uA687\\uA689\\uA68B\\uA68D\\uA68F\\uA691\\uA693\\uA695\\uA697\\uA723\\uA725\\uA727\\uA729\\uA72B\\uA72D\\uA72F\\uA730\\uA731\\uA733\\uA735\\uA737\\uA739\\uA73B\\uA73D\\uA73F\\uA741\\uA743\\uA745\\uA747\\uA749\\uA74B\\uA74D\\uA74F\\uA751\\uA753\\uA755\\uA757\\uA759\\uA75B\\uA75D\\uA75F\\uA761\\uA763\\uA765\\uA767\\uA769\\uA76B\\uA76D\\uA76F\\uA771\\uA772\\uA773\\uA774\\uA775\\uA776\\uA777\\uA778\\uA77A\\uA77C\\uA77F\\uA781\\uA783\\uA785\\uA787\\uA78C\\uFB00\\uFB01\\uFB02\\uFB03\\uFB04\\uFB05\\uFB06\\uFB13\\uFB14\\uFB15\\uFB16\\uFB17\\uFF41\\uFF42\\uFF43\\uFF44\\uFF45\\uFF46\\uFF47\\uFF48\\uFF49\\uFF4A\\uFF4B\\uFF4C\\uFF4D\\uFF4E\\uFF4F\\uFF50\\uFF51\\uFF52\\uFF53\\uFF54\\uFF55\\uFF56\\uFF57\\uFF58\\uFF59\\uFF5A]"); - } - } - return result0; - } - - function parse_Lm() { - var result0; - - if (/^[\u02B0\u02B1\u02B2\u02B3\u02B4\u02B5\u02B6\u02B7\u02B8\u02B9\u02BA\u02BB\u02BC\u02BD\u02BE\u02BF\u02C0\u02C1\u02C6\u02C7\u02C8\u02C9\u02CA\u02CB\u02CC\u02CD\u02CE\u02CF\u02D0\u02D1\u02E0\u02E1\u02E2\u02E3\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5\u06E6\u07F4\u07F5\u07FA\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1C78\u1C79\u1C7A\u1C7B\u1C7C\u1C7D\u1D2C\u1D2D\u1D2E\u1D2F\u1D30\u1D31\u1D32\u1D33\u1D34\u1D35\u1D36\u1D37\u1D38\u1D39\u1D3A\u1D3B\u1D3C\u1D3D\u1D3E\u1D3F\u1D40\u1D41\u1D42\u1D43\u1D44\u1D45\u1D46\u1D47\u1D48\u1D49\u1D4A\u1D4B\u1D4C\u1D4D\u1D4E\u1D4F\u1D50\u1D51\u1D52\u1D53\u1D54\u1D55\u1D56\u1D57\u1D58\u1D59\u1D5A\u1D5B\u1D5C\u1D5D\u1D5E\u1D5F\u1D60\u1D61\u1D78\u1D9B\u1D9C\u1D9D\u1D9E\u1D9F\u1DA0\u1DA1\u1DA2\u1DA3\u1DA4\u1DA5\u1DA6\u1DA7\u1DA8\u1DA9\u1DAA\u1DAB\u1DAC\u1DAD\u1DAE\u1DAF\u1DB0\u1DB1\u1DB2\u1DB3\u1DB4\u1DB5\u1DB6\u1DB7\u1DB8\u1DB9\u1DBA\u1DBB\u1DBC\u1DBD\u1DBE\u1DBF\u2090\u2091\u2092\u2093\u2094\u2C7D\u2D6F\u2E2F\u3005\u3031\u3032\u3033\u3034\u3035\u303B\u309D\u309E\u30FC\u30FD\u30FE\uA015\uA60C\uA67F\uA717\uA718\uA719\uA71A\uA71B\uA71C\uA71D\uA71E\uA71F\uA770\uA788\uFF70\uFF9E\uFF9F]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\u02B0\\u02B1\\u02B2\\u02B3\\u02B4\\u02B5\\u02B6\\u02B7\\u02B8\\u02B9\\u02BA\\u02BB\\u02BC\\u02BD\\u02BE\\u02BF\\u02C0\\u02C1\\u02C6\\u02C7\\u02C8\\u02C9\\u02CA\\u02CB\\u02CC\\u02CD\\u02CE\\u02CF\\u02D0\\u02D1\\u02E0\\u02E1\\u02E2\\u02E3\\u02E4\\u02EC\\u02EE\\u0374\\u037A\\u0559\\u0640\\u06E5\\u06E6\\u07F4\\u07F5\\u07FA\\u0971\\u0E46\\u0EC6\\u10FC\\u17D7\\u1843\\u1C78\\u1C79\\u1C7A\\u1C7B\\u1C7C\\u1C7D\\u1D2C\\u1D2D\\u1D2E\\u1D2F\\u1D30\\u1D31\\u1D32\\u1D33\\u1D34\\u1D35\\u1D36\\u1D37\\u1D38\\u1D39\\u1D3A\\u1D3B\\u1D3C\\u1D3D\\u1D3E\\u1D3F\\u1D40\\u1D41\\u1D42\\u1D43\\u1D44\\u1D45\\u1D46\\u1D47\\u1D48\\u1D49\\u1D4A\\u1D4B\\u1D4C\\u1D4D\\u1D4E\\u1D4F\\u1D50\\u1D51\\u1D52\\u1D53\\u1D54\\u1D55\\u1D56\\u1D57\\u1D58\\u1D59\\u1D5A\\u1D5B\\u1D5C\\u1D5D\\u1D5E\\u1D5F\\u1D60\\u1D61\\u1D78\\u1D9B\\u1D9C\\u1D9D\\u1D9E\\u1D9F\\u1DA0\\u1DA1\\u1DA2\\u1DA3\\u1DA4\\u1DA5\\u1DA6\\u1DA7\\u1DA8\\u1DA9\\u1DAA\\u1DAB\\u1DAC\\u1DAD\\u1DAE\\u1DAF\\u1DB0\\u1DB1\\u1DB2\\u1DB3\\u1DB4\\u1DB5\\u1DB6\\u1DB7\\u1DB8\\u1DB9\\u1DBA\\u1DBB\\u1DBC\\u1DBD\\u1DBE\\u1DBF\\u2090\\u2091\\u2092\\u2093\\u2094\\u2C7D\\u2D6F\\u2E2F\\u3005\\u3031\\u3032\\u3033\\u3034\\u3035\\u303B\\u309D\\u309E\\u30FC\\u30FD\\u30FE\\uA015\\uA60C\\uA67F\\uA717\\uA718\\uA719\\uA71A\\uA71B\\uA71C\\uA71D\\uA71E\\uA71F\\uA770\\uA788\\uFF70\\uFF9E\\uFF9F]"); - } - } - return result0; - } - - function parse_Lo() { - var result0; - - if (/^[\u01BB\u01C0\u01C1\u01C2\u01C3\u0294\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\u05F0\u05F1\u05F2\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\u063B\u063C\u063D\u063E\u063F\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u066E\u066F\u0671\u0672\u0673\u0674\u0675\u0676\u0677\u0678\u0679\u067A\u067B\u067C\u067D\u067E\u067F\u0680\u0681\u0682\u0683\u0684\u0685\u0686\u0687\u0688\u0689\u068A\u068B\u068C\u068D\u068E\u068F\u0690\u0691\u0692\u0693\u0694\u0695\u0696\u0697\u0698\u0699\u069A\u069B\u069C\u069D\u069E\u069F\u06A0\u06A1\u06A2\u06A3\u06A4\u06A5\u06A6\u06A7\u06A8\u06A9\u06AA\u06AB\u06AC\u06AD\u06AE\u06AF\u06B0\u06B1\u06B2\u06B3\u06B4\u06B5\u06B6\u06B7\u06B8\u06B9\u06BA\u06BB\u06BC\u06BD\u06BE\u06BF\u06C0\u06C1\u06C2\u06C3\u06C4\u06C5\u06C6\u06C7\u06C8\u06C9\u06CA\u06CB\u06CC\u06CD\u06CE\u06CF\u06D0\u06D1\u06D2\u06D3\u06D5\u06EE\u06EF\u06FA\u06FB\u06FC\u06FF\u0710\u0712\u0713\u0714\u0715\u0716\u0717\u0718\u0719\u071A\u071B\u071C\u071D\u071E\u071F\u0720\u0721\u0722\u0723\u0724\u0725\u0726\u0727\u0728\u0729\u072A\u072B\u072C\u072D\u072E\u072F\u074D\u074E\u074F\u0750\u0751\u0752\u0753\u0754\u0755\u0756\u0757\u0758\u0759\u075A\u075B\u075C\u075D\u075E\u075F\u0760\u0761\u0762\u0763\u0764\u0765\u0766\u0767\u0768\u0769\u076A\u076B\u076C\u076D\u076E\u076F\u0770\u0771\u0772\u0773\u0774\u0775\u0776\u0777\u0778\u0779\u077A\u077B\u077C\u077D\u077E\u077F\u0780\u0781\u0782\u0783\u0784\u0785\u0786\u0787\u0788\u0789\u078A\u078B\u078C\u078D\u078E\u078F\u0790\u0791\u0792\u0793\u0794\u0795\u0796\u0797\u0798\u0799\u079A\u079B\u079C\u079D\u079E\u079F\u07A0\u07A1\u07A2\u07A3\u07A4\u07A5\u07B1\u07CA\u07CB\u07CC\u07CD\u07CE\u07CF\u07D0\u07D1\u07D2\u07D3\u07D4\u07D5\u07D6\u07D7\u07D8\u07D9\u07DA\u07DB\u07DC\u07DD\u07DE\u07DF\u07E0\u07E1\u07E2\u07E3\u07E4\u07E5\u07E6\u07E7\u07E8\u07E9\u07EA\u0904\u0905\u0906\u0907\u0908\u0909\u090A\u090B\u090C\u090D\u090E\u090F\u0910\u0911\u0912\u0913\u0914\u0915\u0916\u0917\u0918\u0919\u091A\u091B\u091C\u091D\u091E\u091F\u0920\u0921\u0922\u0923\u0924\u0925\u0926\u0927\u0928\u0929\u092A\u092B\u092C\u092D\u092E\u092F\u0930\u0931\u0932\u0933\u0934\u0935\u0936\u0937\u0938\u0939\u093D\u0950\u0958\u0959\u095A\u095B\u095C\u095D\u095E\u095F\u0960\u0961\u0972\u097B\u097C\u097D\u097E\u097F\u0985\u0986\u0987\u0988\u0989\u098A\u098B\u098C\u098F\u0990\u0993\u0994\u0995\u0996\u0997\u0998\u0999\u099A\u099B\u099C\u099D\u099E\u099F\u09A0\u09A1\u09A2\u09A3\u09A4\u09A5\u09A6\u09A7\u09A8\u09AA\u09AB\u09AC\u09AD\u09AE\u09AF\u09B0\u09B2\u09B6\u09B7\u09B8\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF\u09E0\u09E1\u09F0\u09F1\u0A05\u0A06\u0A07\u0A08\u0A09\u0A0A\u0A0F\u0A10\u0A13\u0A14\u0A15\u0A16\u0A17\u0A18\u0A19\u0A1A\u0A1B\u0A1C\u0A1D\u0A1E\u0A1F\u0A20\u0A21\u0A22\u0A23\u0A24\u0A25\u0A26\u0A27\u0A28\u0A2A\u0A2B\u0A2C\u0A2D\u0A2E\u0A2F\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5A\u0A5B\u0A5C\u0A5E\u0A72\u0A73\u0A74\u0A85\u0A86\u0A87\u0A88\u0A89\u0A8A\u0A8B\u0A8C\u0A8D\u0A8F\u0A90\u0A91\u0A93\u0A94\u0A95\u0A96\u0A97\u0A98\u0A99\u0A9A\u0A9B\u0A9C\u0A9D\u0A9E\u0A9F\u0AA0\u0AA1\u0AA2\u0AA3\u0AA4\u0AA5\u0AA6\u0AA7\u0AA8\u0AAA\u0AAB\u0AAC\u0AAD\u0AAE\u0AAF\u0AB0\u0AB2\u0AB3\u0AB5\u0AB6\u0AB7\u0AB8\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05\u0B06\u0B07\u0B08\u0B09\u0B0A\u0B0B\u0B0C\u0B0F\u0B10\u0B13\u0B14\u0B15\u0B16\u0B17\u0B18\u0B19\u0B1A\u0B1B\u0B1C\u0B1D\u0B1E\u0B1F\u0B20\u0B21\u0B22\u0B23\u0B24\u0B25\u0B26\u0B27\u0B28\u0B2A\u0B2B\u0B2C\u0B2D\u0B2E\u0B2F\u0B30\u0B32\u0B33\u0B35\u0B36\u0B37\u0B38\u0B39\u0B3D\u0B5C\u0B5D\u0B5F\u0B60\u0B61\u0B71\u0B83\u0B85\u0B86\u0B87\u0B88\u0B89\u0B8A\u0B8E\u0B8F\u0B90\u0B92\u0B93\u0B94\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BA9\u0BAA\u0BAE\u0BAF\u0BB0\u0BB1\u0BB2\u0BB3\u0BB4\u0BB5\u0BB6\u0BB7\u0BB8\u0BB9\u0BD0\u0C05\u0C06\u0C07\u0C08\u0C09\u0C0A\u0C0B\u0C0C\u0C0E\u0C0F\u0C10\u0C12\u0C13\u0C14\u0C15\u0C16\u0C17\u0C18\u0C19\u0C1A\u0C1B\u0C1C\u0C1D\u0C1E\u0C1F\u0C20\u0C21\u0C22\u0C23\u0C24\u0C25\u0C26\u0C27\u0C28\u0C2A\u0C2B\u0C2C\u0C2D\u0C2E\u0C2F\u0C30\u0C31\u0C32\u0C33\u0C35\u0C36\u0C37\u0C38\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85\u0C86\u0C87\u0C88\u0C89\u0C8A\u0C8B\u0C8C\u0C8E\u0C8F\u0C90\u0C92\u0C93\u0C94\u0C95\u0C96\u0C97\u0C98\u0C99\u0C9A\u0C9B\u0C9C\u0C9D\u0C9E\u0C9F\u0CA0\u0CA1\u0CA2\u0CA3\u0CA4\u0CA5\u0CA6\u0CA7\u0CA8\u0CAA\u0CAB\u0CAC\u0CAD\u0CAE\u0CAF\u0CB0\u0CB1\u0CB2\u0CB3\u0CB5\u0CB6\u0CB7\u0CB8\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0D05\u0D06\u0D07\u0D08\u0D09\u0D0A\u0D0B\u0D0C\u0D0E\u0D0F\u0D10\u0D12\u0D13\u0D14\u0D15\u0D16\u0D17\u0D18\u0D19\u0D1A\u0D1B\u0D1C\u0D1D\u0D1E\u0D1F\u0D20\u0D21\u0D22\u0D23\u0D24\u0D25\u0D26\u0D27\u0D28\u0D2A\u0D2B\u0D2C\u0D2D\u0D2E\u0D2F\u0D30\u0D31\u0D32\u0D33\u0D34\u0D35\u0D36\u0D37\u0D38\u0D39\u0D3D\u0D60\u0D61\u0D7A\u0D7B\u0D7C\u0D7D\u0D7E\u0D7F\u0D85\u0D86\u0D87\u0D88\u0D89\u0D8A\u0D8B\u0D8C\u0D8D\u0D8E\u0D8F\u0D90\u0D91\u0D92\u0D93\u0D94\u0D95\u0D96\u0D9A\u0D9B\u0D9C\u0D9D\u0D9E\u0D9F\u0DA0\u0DA1\u0DA2\u0DA3\u0DA4\u0DA5\u0DA6\u0DA7\u0DA8\u0DA9\u0DAA\u0DAB\u0DAC\u0DAD\u0DAE\u0DAF\u0DB0\u0DB1\u0DB3\u0DB4\u0DB5\u0DB6\u0DB7\u0DB8\u0DB9\u0DBA\u0DBB\u0DBD\u0DC0\u0DC1\u0DC2\u0DC3\u0DC4\u0DC5\u0DC6\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E32\u0E33\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EAF\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EDC\u0EDD\u0F00\u0F40\u0F41\u0F42\u0F43\u0F44\u0F45\u0F46\u0F47\u0F49\u0F4A\u0F4B\u0F4C\u0F4D\u0F4E\u0F4F\u0F50\u0F51\u0F52\u0F53\u0F54\u0F55\u0F56\u0F57\u0F58\u0F59\u0F5A\u0F5B\u0F5C\u0F5D\u0F5E\u0F5F\u0F60\u0F61\u0F62\u0F63\u0F64\u0F65\u0F66\u0F67\u0F68\u0F69\u0F6A\u0F6B\u0F6C\u0F88\u0F89\u0F8A\u0F8B\u1000\u1001\u1002\u1003\u1004\u1005\u1006\u1007\u1008\u1009\u100A\u100B\u100C\u100D\u100E\u100F\u1010\u1011\u1012\u1013\u1014\u1015\u1016\u1017\u1018\u1019\u101A\u101B\u101C\u101D\u101E\u101F\u1020\u1021\u1022\u1023\u1024\u1025\u1026\u1027\u1028\u1029\u102A\u103F\u1050\u1051\u1052\u1053\u1054\u1055\u105A\u105B\u105C\u105D\u1061\u1065\u1066\u106E\u106F\u1070\u1075\u1076\u1077\u1078\u1079\u107A\u107B\u107C\u107D\u107E\u107F\u1080\u1081\u108E\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\u10F7\u10F8\u10F9\u10FA\u1100\u1101\u1102\u1103\u1104\u1105\u1106\u1107\u1108\u1109\u110A\u110B\u110C\u110D\u110E\u110F\u1110\u1111\u1112\u1113\u1114\u1115\u1116\u1117\u1118\u1119\u111A\u111B\u111C\u111D\u111E\u111F\u1120\u1121\u1122\u1123\u1124\u1125\u1126\u1127\u1128\u1129\u112A\u112B\u112C\u112D\u112E\u112F\u1130\u1131\u1132\u1133\u1134\u1135\u1136\u1137\u1138\u1139\u113A\u113B\u113C\u113D\u113E\u113F\u1140\u1141\u1142\u1143\u1144\u1145\u1146\u1147\u1148\u1149\u114A\u114B\u114C\u114D\u114E\u114F\u1150\u1151\u1152\u1153\u1154\u1155\u1156\u1157\u1158\u1159\u115F\u1160\u1161\u1162\u1163\u1164\u1165\u1166\u1167\u1168\u1169\u116A\u116B\u116C\u116D\u116E\u116F\u1170\u1171\u1172\u1173\u1174\u1175\u1176\u1177\u1178\u1179\u117A\u117B\u117C\u117D\u117E\u117F\u1180\u1181\u1182\u1183\u1184\u1185\u1186\u1187\u1188\u1189\u118A\u118B\u118C\u118D\u118E\u118F\u1190\u1191\u1192\u1193\u1194\u1195\u1196\u1197\u1198\u1199\u119A\u119B\u119C\u119D\u119E\u119F\u11A0\u11A1\u11A2\u11A8\u11A9\u11AA\u11AB\u11AC\u11AD\u11AE\u11AF\u11B0\u11B1\u11B2\u11B3\u11B4\u11B5\u11B6\u11B7\u11B8\u11B9\u11BA\u11BB\u11BC\u11BD\u11BE\u11BF\u11C0\u11C1\u11C2\u11C3\u11C4\u11C5\u11C6\u11C7\u11C8\u11C9\u11CA\u11CB\u11CC\u11CD\u11CE\u11CF\u11D0\u11D1\u11D2\u11D3\u11D4\u11D5\u11D6\u11D7\u11D8\u11D9\u11DA\u11DB\u11DC\u11DD\u11DE\u11DF\u11E0\u11E1\u11E2\u11E3\u11E4\u11E5\u11E6\u11E7\u11E8\u11E9\u11EA\u11EB\u11EC\u11ED\u11EE\u11EF\u11F0\u11F1\u11F2\u11F3\u11F4\u11F5\u11F6\u11F7\u11F8\u11F9\u1200\u1201\u1202\u1203\u1204\u1205\u1206\u1207\u1208\u1209\u120A\u120B\u120C\u120D\u120E\u120F\u1210\u1211\u1212\u1213\u1214\u1215\u1216\u1217\u1218\u1219\u121A\u121B\u121C\u121D\u121E\u121F\u1220\u1221\u1222\u1223\u1224\u1225\u1226\u1227\u1228\u1229\u122A\u122B\u122C\u122D\u122E\u122F\u1230\u1231\u1232\u1233\u1234\u1235\u1236\u1237\u1238\u1239\u123A\u123B\u123C\u123D\u123E\u123F\u1240\u1241\u1242\u1243\u1244\u1245\u1246\u1247\u1248\u124A\u124B\u124C\u124D\u1250\u1251\u1252\u1253\u1254\u1255\u1256\u1258\u125A\u125B\u125C\u125D\u1260\u1261\u1262\u1263\u1264\u1265\u1266\u1267\u1268\u1269\u126A\u126B\u126C\u126D\u126E\u126F\u1270\u1271\u1272\u1273\u1274\u1275\u1276\u1277\u1278\u1279\u127A\u127B\u127C\u127D\u127E\u127F\u1280\u1281\u1282\u1283\u1284\u1285\u1286\u1287\u1288\u128A\u128B\u128C\u128D\u1290\u1291\u1292\u1293\u1294\u1295\u1296\u1297\u1298\u1299\u129A\u129B\u129C\u129D\u129E\u129F\u12A0\u12A1\u12A2\u12A3\u12A4\u12A5\u12A6\u12A7\u12A8\u12A9\u12AA\u12AB\u12AC\u12AD\u12AE\u12AF\u12B0\u12B2\u12B3\u12B4\u12B5\u12B8\u12B9\u12BA\u12BB\u12BC\u12BD\u12BE\u12C0\u12C2\u12C3\u12C4\u12C5\u12C8\u12C9\u12CA\u12CB\u12CC\u12CD\u12CE\u12CF\u12D0\u12D1\u12D2\u12D3\u12D4\u12D5\u12D6\u12D8\u12D9\u12DA\u12DB\u12DC\u12DD\u12DE\u12DF\u12E0\u12E1\u12E2\u12E3\u12E4\u12E5\u12E6\u12E7\u12E8\u12E9\u12EA\u12EB\u12EC\u12ED\u12EE\u12EF\u12F0\u12F1\u12F2\u12F3\u12F4\u12F5\u12F6\u12F7\u12F8\u12F9\u12FA\u12FB\u12FC\u12FD\u12FE\u12FF\u1300\u1301\u1302\u1303\u1304\u1305\u1306\u1307\u1308\u1309\u130A\u130B\u130C\u130D\u130E\u130F\u1310\u1312\u1313\u1314\u1315\u1318\u1319\u131A\u131B\u131C\u131D\u131E\u131F\u1320\u1321\u1322\u1323\u1324\u1325\u1326\u1327\u1328\u1329\u132A\u132B\u132C\u132D\u132E\u132F\u1330\u1331\u1332\u1333\u1334\u1335\u1336\u1337\u1338\u1339\u133A\u133B\u133C\u133D\u133E\u133F\u1340\u1341\u1342\u1343\u1344\u1345\u1346\u1347\u1348\u1349\u134A\u134B\u134C\u134D\u134E\u134F\u1350\u1351\u1352\u1353\u1354\u1355\u1356\u1357\u1358\u1359\u135A\u1380\u1381\u1382\u1383\u1384\u1385\u1386\u1387\u1388\u1389\u138A\u138B\u138C\u138D\u138E\u138F\u13A0\u13A1\u13A2\u13A3\u13A4\u13A5\u13A6\u13A7\u13A8\u13A9\u13AA\u13AB\u13AC\u13AD\u13AE\u13AF\u13B0\u13B1\u13B2\u13B3\u13B4\u13B5\u13B6\u13B7\u13B8\u13B9\u13BA\u13BB\u13BC\u13BD\u13BE\u13BF\u13C0\u13C1\u13C2\u13C3\u13C4\u13C5\u13C6\u13C7\u13C8\u13C9\u13CA\u13CB\u13CC\u13CD\u13CE\u13CF\u13D0\u13D1\u13D2\u13D3\u13D4\u13D5\u13D6\u13D7\u13D8\u13D9\u13DA\u13DB\u13DC\u13DD\u13DE\u13DF\u13E0\u13E1\u13E2\u13E3\u13E4\u13E5\u13E6\u13E7\u13E8\u13E9\u13EA\u13EB\u13EC\u13ED\u13EE\u13EF\u13F0\u13F1\u13F2\u13F3\u13F4\u1401\u1402\u1403\u1404\u1405\u1406\u1407\u1408\u1409\u140A\u140B\u140C\u140D\u140E\u140F\u1410\u1411\u1412\u1413\u1414\u1415\u1416\u1417\u1418\u1419\u141A\u141B\u141C\u141D\u141E\u141F\u1420\u1421\u1422\u1423\u1424\u1425\u1426\u1427\u1428\u1429\u142A\u142B\u142C\u142D\u142E\u142F\u1430\u1431\u1432\u1433\u1434\u1435\u1436\u1437\u1438\u1439\u143A\u143B\u143C\u143D\u143E\u143F\u1440\u1441\u1442\u1443\u1444\u1445\u1446\u1447\u1448\u1449\u144A\u144B\u144C\u144D\u144E\u144F\u1450\u1451\u1452\u1453\u1454\u1455\u1456\u1457\u1458\u1459\u145A\u145B\u145C\u145D\u145E\u145F\u1460\u1461\u1462\u1463\u1464\u1465\u1466\u1467\u1468\u1469\u146A\u146B\u146C\u146D\u146E\u146F\u1470\u1471\u1472\u1473\u1474\u1475\u1476\u1477\u1478\u1479\u147A\u147B\u147C\u147D\u147E\u147F\u1480\u1481\u1482\u1483\u1484\u1485\u1486\u1487\u1488\u1489\u148A\u148B\u148C\u148D\u148E\u148F\u1490\u1491\u1492\u1493\u1494\u1495\u1496\u1497\u1498\u1499\u149A\u149B\u149C\u149D\u149E\u149F\u14A0\u14A1\u14A2\u14A3\u14A4\u14A5\u14A6\u14A7\u14A8\u14A9\u14AA\u14AB\u14AC\u14AD\u14AE\u14AF\u14B0\u14B1\u14B2\u14B3\u14B4\u14B5\u14B6\u14B7\u14B8\u14B9\u14BA\u14BB\u14BC\u14BD\u14BE\u14BF\u14C0\u14C1\u14C2\u14C3\u14C4\u14C5\u14C6\u14C7\u14C8\u14C9\u14CA\u14CB\u14CC\u14CD\u14CE\u14CF\u14D0\u14D1\u14D2\u14D3\u14D4\u14D5\u14D6\u14D7\u14D8\u14D9\u14DA\u14DB\u14DC\u14DD\u14DE\u14DF\u14E0\u14E1\u14E2\u14E3\u14E4\u14E5\u14E6\u14E7\u14E8\u14E9\u14EA\u14EB\u14EC\u14ED\u14EE\u14EF\u14F0\u14F1\u14F2\u14F3\u14F4\u14F5\u14F6\u14F7\u14F8\u14F9\u14FA\u14FB\u14FC\u14FD\u14FE\u14FF\u1500\u1501\u1502\u1503\u1504\u1505\u1506\u1507\u1508\u1509\u150A\u150B\u150C\u150D\u150E\u150F\u1510\u1511\u1512\u1513\u1514\u1515\u1516\u1517\u1518\u1519\u151A\u151B\u151C\u151D\u151E\u151F\u1520\u1521\u1522\u1523\u1524\u1525\u1526\u1527\u1528\u1529\u152A\u152B\u152C\u152D\u152E\u152F\u1530\u1531\u1532\u1533\u1534\u1535\u1536\u1537\u1538\u1539\u153A\u153B\u153C\u153D\u153E\u153F\u1540\u1541\u1542\u1543\u1544\u1545\u1546\u1547\u1548\u1549\u154A\u154B\u154C\u154D\u154E\u154F\u1550\u1551\u1552\u1553\u1554\u1555\u1556\u1557\u1558\u1559\u155A\u155B\u155C\u155D\u155E\u155F\u1560\u1561\u1562\u1563\u1564\u1565\u1566\u1567\u1568\u1569\u156A\u156B\u156C\u156D\u156E\u156F\u1570\u1571\u1572\u1573\u1574\u1575\u1576\u1577\u1578\u1579\u157A\u157B\u157C\u157D\u157E\u157F\u1580\u1581\u1582\u1583\u1584\u1585\u1586\u1587\u1588\u1589\u158A\u158B\u158C\u158D\u158E\u158F\u1590\u1591\u1592\u1593\u1594\u1595\u1596\u1597\u1598\u1599\u159A\u159B\u159C\u159D\u159E\u159F\u15A0\u15A1\u15A2\u15A3\u15A4\u15A5\u15A6\u15A7\u15A8\u15A9\u15AA\u15AB\u15AC\u15AD\u15AE\u15AF\u15B0\u15B1\u15B2\u15B3\u15B4\u15B5\u15B6\u15B7\u15B8\u15B9\u15BA\u15BB\u15BC\u15BD\u15BE\u15BF\u15C0\u15C1\u15C2\u15C3\u15C4\u15C5\u15C6\u15C7\u15C8\u15C9\u15CA\u15CB\u15CC\u15CD\u15CE\u15CF\u15D0\u15D1\u15D2\u15D3\u15D4\u15D5\u15D6\u15D7\u15D8\u15D9\u15DA\u15DB\u15DC\u15DD\u15DE\u15DF\u15E0\u15E1\u15E2\u15E3\u15E4\u15E5\u15E6\u15E7\u15E8\u15E9\u15EA\u15EB\u15EC\u15ED\u15EE\u15EF\u15F0\u15F1\u15F2\u15F3\u15F4\u15F5\u15F6\u15F7\u15F8\u15F9\u15FA\u15FB\u15FC\u15FD\u15FE\u15FF\u1600\u1601\u1602\u1603\u1604\u1605\u1606\u1607\u1608\u1609\u160A\u160B\u160C\u160D\u160E\u160F\u1610\u1611\u1612\u1613\u1614\u1615\u1616\u1617\u1618\u1619\u161A\u161B\u161C\u161D\u161E\u161F\u1620\u1621\u1622\u1623\u1624\u1625\u1626\u1627\u1628\u1629\u162A\u162B\u162C\u162D\u162E\u162F\u1630\u1631\u1632\u1633\u1634\u1635\u1636\u1637\u1638\u1639\u163A\u163B\u163C\u163D\u163E\u163F\u1640\u1641\u1642\u1643\u1644\u1645\u1646\u1647\u1648\u1649\u164A\u164B\u164C\u164D\u164E\u164F\u1650\u1651\u1652\u1653\u1654\u1655\u1656\u1657\u1658\u1659\u165A\u165B\u165C\u165D\u165E\u165F\u1660\u1661\u1662\u1663\u1664\u1665\u1666\u1667\u1668\u1669\u166A\u166B\u166C\u166F\u1670\u1671\u1672\u1673\u1674\u1675\u1676\u1681\u1682\u1683\u1684\u1685\u1686\u1687\u1688\u1689\u168A\u168B\u168C\u168D\u168E\u168F\u1690\u1691\u1692\u1693\u1694\u1695\u1696\u1697\u1698\u1699\u169A\u16A0\u16A1\u16A2\u16A3\u16A4\u16A5\u16A6\u16A7\u16A8\u16A9\u16AA\u16AB\u16AC\u16AD\u16AE\u16AF\u16B0\u16B1\u16B2\u16B3\u16B4\u16B5\u16B6\u16B7\u16B8\u16B9\u16BA\u16BB\u16BC\u16BD\u16BE\u16BF\u16C0\u16C1\u16C2\u16C3\u16C4\u16C5\u16C6\u16C7\u16C8\u16C9\u16CA\u16CB\u16CC\u16CD\u16CE\u16CF\u16D0\u16D1\u16D2\u16D3\u16D4\u16D5\u16D6\u16D7\u16D8\u16D9\u16DA\u16DB\u16DC\u16DD\u16DE\u16DF\u16E0\u16E1\u16E2\u16E3\u16E4\u16E5\u16E6\u16E7\u16E8\u16E9\u16EA\u1700\u1701\u1702\u1703\u1704\u1705\u1706\u1707\u1708\u1709\u170A\u170B\u170C\u170E\u170F\u1710\u1711\u1720\u1721\u1722\u1723\u1724\u1725\u1726\u1727\u1728\u1729\u172A\u172B\u172C\u172D\u172E\u172F\u1730\u1731\u1740\u1741\u1742\u1743\u1744\u1745\u1746\u1747\u1748\u1749\u174A\u174B\u174C\u174D\u174E\u174F\u1750\u1751\u1760\u1761\u1762\u1763\u1764\u1765\u1766\u1767\u1768\u1769\u176A\u176B\u176C\u176E\u176F\u1770\u1780\u1781\u1782\u1783\u1784\u1785\u1786\u1787\u1788\u1789\u178A\u178B\u178C\u178D\u178E\u178F\u1790\u1791\u1792\u1793\u1794\u1795\u1796\u1797\u1798\u1799\u179A\u179B\u179C\u179D\u179E\u179F\u17A0\u17A1\u17A2\u17A3\u17A4\u17A5\u17A6\u17A7\u17A8\u17A9\u17AA\u17AB\u17AC\u17AD\u17AE\u17AF\u17B0\u17B1\u17B2\u17B3\u17DC\u1820\u1821\u1822\u1823\u1824\u1825\u1826\u1827\u1828\u1829\u182A\u182B\u182C\u182D\u182E\u182F\u1830\u1831\u1832\u1833\u1834\u1835\u1836\u1837\u1838\u1839\u183A\u183B\u183C\u183D\u183E\u183F\u1840\u1841\u1842\u1844\u1845\u1846\u1847\u1848\u1849\u184A\u184B\u184C\u184D\u184E\u184F\u1850\u1851\u1852\u1853\u1854\u1855\u1856\u1857\u1858\u1859\u185A\u185B\u185C\u185D\u185E\u185F\u1860\u1861\u1862\u1863\u1864\u1865\u1866\u1867\u1868\u1869\u186A\u186B\u186C\u186D\u186E\u186F\u1870\u1871\u1872\u1873\u1874\u1875\u1876\u1877\u1880\u1881\u1882\u1883\u1884\u1885\u1886\u1887\u1888\u1889\u188A\u188B\u188C\u188D\u188E\u188F\u1890\u1891\u1892\u1893\u1894\u1895\u1896\u1897\u1898\u1899\u189A\u189B\u189C\u189D\u189E\u189F\u18A0\u18A1\u18A2\u18A3\u18A4\u18A5\u18A6\u18A7\u18A8\u18AA\u1900\u1901\u1902\u1903\u1904\u1905\u1906\u1907\u1908\u1909\u190A\u190B\u190C\u190D\u190E\u190F\u1910\u1911\u1912\u1913\u1914\u1915\u1916\u1917\u1918\u1919\u191A\u191B\u191C\u1950\u1951\u1952\u1953\u1954\u1955\u1956\u1957\u1958\u1959\u195A\u195B\u195C\u195D\u195E\u195F\u1960\u1961\u1962\u1963\u1964\u1965\u1966\u1967\u1968\u1969\u196A\u196B\u196C\u196D\u1970\u1971\u1972\u1973\u1974\u1980\u1981\u1982\u1983\u1984\u1985\u1986\u1987\u1988\u1989\u198A\u198B\u198C\u198D\u198E\u198F\u1990\u1991\u1992\u1993\u1994\u1995\u1996\u1997\u1998\u1999\u199A\u199B\u199C\u199D\u199E\u199F\u19A0\u19A1\u19A2\u19A3\u19A4\u19A5\u19A6\u19A7\u19A8\u19A9\u19C1\u19C2\u19C3\u19C4\u19C5\u19C6\u19C7\u1A00\u1A01\u1A02\u1A03\u1A04\u1A05\u1A06\u1A07\u1A08\u1A09\u1A0A\u1A0B\u1A0C\u1A0D\u1A0E\u1A0F\u1A10\u1A11\u1A12\u1A13\u1A14\u1A15\u1A16\u1B05\u1B06\u1B07\u1B08\u1B09\u1B0A\u1B0B\u1B0C\u1B0D\u1B0E\u1B0F\u1B10\u1B11\u1B12\u1B13\u1B14\u1B15\u1B16\u1B17\u1B18\u1B19\u1B1A\u1B1B\u1B1C\u1B1D\u1B1E\u1B1F\u1B20\u1B21\u1B22\u1B23\u1B24\u1B25\u1B26\u1B27\u1B28\u1B29\u1B2A\u1B2B\u1B2C\u1B2D\u1B2E\u1B2F\u1B30\u1B31\u1B32\u1B33\u1B45\u1B46\u1B47\u1B48\u1B49\u1B4A\u1B4B\u1B83\u1B84\u1B85\u1B86\u1B87\u1B88\u1B89\u1B8A\u1B8B\u1B8C\u1B8D\u1B8E\u1B8F\u1B90\u1B91\u1B92\u1B93\u1B94\u1B95\u1B96\u1B97\u1B98\u1B99\u1B9A\u1B9B\u1B9C\u1B9D\u1B9E\u1B9F\u1BA0\u1BAE\u1BAF\u1C00\u1C01\u1C02\u1C03\u1C04\u1C05\u1C06\u1C07\u1C08\u1C09\u1C0A\u1C0B\u1C0C\u1C0D\u1C0E\u1C0F\u1C10\u1C11\u1C12\u1C13\u1C14\u1C15\u1C16\u1C17\u1C18\u1C19\u1C1A\u1C1B\u1C1C\u1C1D\u1C1E\u1C1F\u1C20\u1C21\u1C22\u1C23\u1C4D\u1C4E\u1C4F\u1C5A\u1C5B\u1C5C\u1C5D\u1C5E\u1C5F\u1C60\u1C61\u1C62\u1C63\u1C64\u1C65\u1C66\u1C67\u1C68\u1C69\u1C6A\u1C6B\u1C6C\u1C6D\u1C6E\u1C6F\u1C70\u1C71\u1C72\u1C73\u1C74\u1C75\u1C76\u1C77\u2135\u2136\u2137\u2138\u2D30\u2D31\u2D32\u2D33\u2D34\u2D35\u2D36\u2D37\u2D38\u2D39\u2D3A\u2D3B\u2D3C\u2D3D\u2D3E\u2D3F\u2D40\u2D41\u2D42\u2D43\u2D44\u2D45\u2D46\u2D47\u2D48\u2D49\u2D4A\u2D4B\u2D4C\u2D4D\u2D4E\u2D4F\u2D50\u2D51\u2D52\u2D53\u2D54\u2D55\u2D56\u2D57\u2D58\u2D59\u2D5A\u2D5B\u2D5C\u2D5D\u2D5E\u2D5F\u2D60\u2D61\u2D62\u2D63\u2D64\u2D65\u2D80\u2D81\u2D82\u2D83\u2D84\u2D85\u2D86\u2D87\u2D88\u2D89\u2D8A\u2D8B\u2D8C\u2D8D\u2D8E\u2D8F\u2D90\u2D91\u2D92\u2D93\u2D94\u2D95\u2D96\u2DA0\u2DA1\u2DA2\u2DA3\u2DA4\u2DA5\u2DA6\u2DA8\u2DA9\u2DAA\u2DAB\u2DAC\u2DAD\u2DAE\u2DB0\u2DB1\u2DB2\u2DB3\u2DB4\u2DB5\u2DB6\u2DB8\u2DB9\u2DBA\u2DBB\u2DBC\u2DBD\u2DBE\u2DC0\u2DC1\u2DC2\u2DC3\u2DC4\u2DC5\u2DC6\u2DC8\u2DC9\u2DCA\u2DCB\u2DCC\u2DCD\u2DCE\u2DD0\u2DD1\u2DD2\u2DD3\u2DD4\u2DD5\u2DD6\u2DD8\u2DD9\u2DDA\u2DDB\u2DDC\u2DDD\u2DDE\u3006\u303C\u3041\u3042\u3043\u3044\u3045\u3046\u3047\u3048\u3049\u304A\u304B\u304C\u304D\u304E\u304F\u3050\u3051\u3052\u3053\u3054\u3055\u3056\u3057\u3058\u3059\u305A\u305B\u305C\u305D\u305E\u305F\u3060\u3061\u3062\u3063\u3064\u3065\u3066\u3067\u3068\u3069\u306A\u306B\u306C\u306D\u306E\u306F\u3070\u3071\u3072\u3073\u3074\u3075\u3076\u3077\u3078\u3079\u307A\u307B\u307C\u307D\u307E\u307F\u3080\u3081\u3082\u3083\u3084\u3085\u3086\u3087\u3088\u3089\u308A\u308B\u308C\u308D\u308E\u308F\u3090\u3091\u3092\u3093\u3094\u3095\u3096\u309F\u30A1\u30A2\u30A3\u30A4\u30A5\u30A6\u30A7\u30A8\u30A9\u30AA\u30AB\u30AC\u30AD\u30AE\u30AF\u30B0\u30B1\u30B2\u30B3\u30B4\u30B5\u30B6\u30B7\u30B8\u30B9\u30BA\u30BB\u30BC\u30BD\u30BE\u30BF\u30C0\u30C1\u30C2\u30C3\u30C4\u30C5\u30C6\u30C7\u30C8\u30C9\u30CA\u30CB\u30CC\u30CD\u30CE\u30CF\u30D0\u30D1\u30D2\u30D3\u30D4\u30D5\u30D6\u30D7\u30D8\u30D9\u30DA\u30DB\u30DC\u30DD\u30DE\u30DF\u30E0\u30E1\u30E2\u30E3\u30E4\u30E5\u30E6\u30E7\u30E8\u30E9\u30EA\u30EB\u30EC\u30ED\u30EE\u30EF\u30F0\u30F1\u30F2\u30F3\u30F4\u30F5\u30F6\u30F7\u30F8\u30F9\u30FA\u30FF\u3105\u3106\u3107\u3108\u3109\u310A\u310B\u310C\u310D\u310E\u310F\u3110\u3111\u3112\u3113\u3114\u3115\u3116\u3117\u3118\u3119\u311A\u311B\u311C\u311D\u311E\u311F\u3120\u3121\u3122\u3123\u3124\u3125\u3126\u3127\u3128\u3129\u312A\u312B\u312C\u312D\u3131\u3132\u3133\u3134\u3135\u3136\u3137\u3138\u3139\u313A\u313B\u313C\u313D\u313E\u313F\u3140\u3141\u3142\u3143\u3144\u3145\u3146\u3147\u3148\u3149\u314A\u314B\u314C\u314D\u314E\u314F\u3150\u3151\u3152\u3153\u3154\u3155\u3156\u3157\u3158\u3159\u315A\u315B\u315C\u315D\u315E\u315F\u3160\u3161\u3162\u3163\u3164\u3165\u3166\u3167\u3168\u3169\u316A\u316B\u316C\u316D\u316E\u316F\u3170\u3171\u3172\u3173\u3174\u3175\u3176\u3177\u3178\u3179\u317A\u317B\u317C\u317D\u317E\u317F\u3180\u3181\u3182\u3183\u3184\u3185\u3186\u3187\u3188\u3189\u318A\u318B\u318C\u318D\u318E\u31A0\u31A1\u31A2\u31A3\u31A4\u31A5\u31A6\u31A7\u31A8\u31A9\u31AA\u31AB\u31AC\u31AD\u31AE\u31AF\u31B0\u31B1\u31B2\u31B3\u31B4\u31B5\u31B6\u31B7\u31F0\u31F1\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3400\u4DB5\u4E00\u9FC3\uA000\uA001\uA002\uA003\uA004\uA005\uA006\uA007\uA008\uA009\uA00A\uA00B\uA00C\uA00D\uA00E\uA00F\uA010\uA011\uA012\uA013\uA014\uA016\uA017\uA018\uA019\uA01A\uA01B\uA01C\uA01D\uA01E\uA01F\uA020\uA021\uA022\uA023\uA024\uA025\uA026\uA027\uA028\uA029\uA02A\uA02B\uA02C\uA02D\uA02E\uA02F\uA030\uA031\uA032\uA033\uA034\uA035\uA036\uA037\uA038\uA039\uA03A\uA03B\uA03C\uA03D\uA03E\uA03F\uA040\uA041\uA042\uA043\uA044\uA045\uA046\uA047\uA048\uA049\uA04A\uA04B\uA04C\uA04D\uA04E\uA04F\uA050\uA051\uA052\uA053\uA054\uA055\uA056\uA057\uA058\uA059\uA05A\uA05B\uA05C\uA05D\uA05E\uA05F\uA060\uA061\uA062\uA063\uA064\uA065\uA066\uA067\uA068\uA069\uA06A\uA06B\uA06C\uA06D\uA06E\uA06F\uA070\uA071\uA072\uA073\uA074\uA075\uA076\uA077\uA078\uA079\uA07A\uA07B\uA07C\uA07D\uA07E\uA07F\uA080\uA081\uA082\uA083\uA084\uA085\uA086\uA087\uA088\uA089\uA08A\uA08B\uA08C\uA08D\uA08E\uA08F\uA090\uA091\uA092\uA093\uA094\uA095\uA096\uA097\uA098\uA099\uA09A\uA09B\uA09C\uA09D\uA09E\uA09F\uA0A0\uA0A1\uA0A2\uA0A3\uA0A4\uA0A5\uA0A6\uA0A7\uA0A8\uA0A9\uA0AA\uA0AB\uA0AC\uA0AD\uA0AE\uA0AF\uA0B0\uA0B1\uA0B2\uA0B3\uA0B4\uA0B5\uA0B6\uA0B7\uA0B8\uA0B9\uA0BA\uA0BB\uA0BC\uA0BD\uA0BE\uA0BF\uA0C0\uA0C1\uA0C2\uA0C3\uA0C4\uA0C5\uA0C6\uA0C7\uA0C8\uA0C9\uA0CA\uA0CB\uA0CC\uA0CD\uA0CE\uA0CF\uA0D0\uA0D1\uA0D2\uA0D3\uA0D4\uA0D5\uA0D6\uA0D7\uA0D8\uA0D9\uA0DA\uA0DB\uA0DC\uA0DD\uA0DE\uA0DF\uA0E0\uA0E1\uA0E2\uA0E3\uA0E4\uA0E5\uA0E6\uA0E7\uA0E8\uA0E9\uA0EA\uA0EB\uA0EC\uA0ED\uA0EE\uA0EF\uA0F0\uA0F1\uA0F2\uA0F3\uA0F4\uA0F5\uA0F6\uA0F7\uA0F8\uA0F9\uA0FA\uA0FB\uA0FC\uA0FD\uA0FE\uA0FF\uA100\uA101\uA102\uA103\uA104\uA105\uA106\uA107\uA108\uA109\uA10A\uA10B\uA10C\uA10D\uA10E\uA10F\uA110\uA111\uA112\uA113\uA114\uA115\uA116\uA117\uA118\uA119\uA11A\uA11B\uA11C\uA11D\uA11E\uA11F\uA120\uA121\uA122\uA123\uA124\uA125\uA126\uA127\uA128\uA129\uA12A\uA12B\uA12C\uA12D\uA12E\uA12F\uA130\uA131\uA132\uA133\uA134\uA135\uA136\uA137\uA138\uA139\uA13A\uA13B\uA13C\uA13D\uA13E\uA13F\uA140\uA141\uA142\uA143\uA144\uA145\uA146\uA147\uA148\uA149\uA14A\uA14B\uA14C\uA14D\uA14E\uA14F\uA150\uA151\uA152\uA153\uA154\uA155\uA156\uA157\uA158\uA159\uA15A\uA15B\uA15C\uA15D\uA15E\uA15F\uA160\uA161\uA162\uA163\uA164\uA165\uA166\uA167\uA168\uA169\uA16A\uA16B\uA16C\uA16D\uA16E\uA16F\uA170\uA171\uA172\uA173\uA174\uA175\uA176\uA177\uA178\uA179\uA17A\uA17B\uA17C\uA17D\uA17E\uA17F\uA180\uA181\uA182\uA183\uA184\uA185\uA186\uA187\uA188\uA189\uA18A\uA18B\uA18C\uA18D\uA18E\uA18F\uA190\uA191\uA192\uA193\uA194\uA195\uA196\uA197\uA198\uA199\uA19A\uA19B\uA19C\uA19D\uA19E\uA19F\uA1A0\uA1A1\uA1A2\uA1A3\uA1A4\uA1A5\uA1A6\uA1A7\uA1A8\uA1A9\uA1AA\uA1AB\uA1AC\uA1AD\uA1AE\uA1AF\uA1B0\uA1B1\uA1B2\uA1B3\uA1B4\uA1B5\uA1B6\uA1B7\uA1B8\uA1B9\uA1BA\uA1BB\uA1BC\uA1BD\uA1BE\uA1BF\uA1C0\uA1C1\uA1C2\uA1C3\uA1C4\uA1C5\uA1C6\uA1C7\uA1C8\uA1C9\uA1CA\uA1CB\uA1CC\uA1CD\uA1CE\uA1CF\uA1D0\uA1D1\uA1D2\uA1D3\uA1D4\uA1D5\uA1D6\uA1D7\uA1D8\uA1D9\uA1DA\uA1DB\uA1DC\uA1DD\uA1DE\uA1DF\uA1E0\uA1E1\uA1E2\uA1E3\uA1E4\uA1E5\uA1E6\uA1E7\uA1E8\uA1E9\uA1EA\uA1EB\uA1EC\uA1ED\uA1EE\uA1EF\uA1F0\uA1F1\uA1F2\uA1F3\uA1F4\uA1F5\uA1F6\uA1F7\uA1F8\uA1F9\uA1FA\uA1FB\uA1FC\uA1FD\uA1FE\uA1FF\uA200\uA201\uA202\uA203\uA204\uA205\uA206\uA207\uA208\uA209\uA20A\uA20B\uA20C\uA20D\uA20E\uA20F\uA210\uA211\uA212\uA213\uA214\uA215\uA216\uA217\uA218\uA219\uA21A\uA21B\uA21C\uA21D\uA21E\uA21F\uA220\uA221\uA222\uA223\uA224\uA225\uA226\uA227\uA228\uA229\uA22A\uA22B\uA22C\uA22D\uA22E\uA22F\uA230\uA231\uA232\uA233\uA234\uA235\uA236\uA237\uA238\uA239\uA23A\uA23B\uA23C\uA23D\uA23E\uA23F\uA240\uA241\uA242\uA243\uA244\uA245\uA246\uA247\uA248\uA249\uA24A\uA24B\uA24C\uA24D\uA24E\uA24F\uA250\uA251\uA252\uA253\uA254\uA255\uA256\uA257\uA258\uA259\uA25A\uA25B\uA25C\uA25D\uA25E\uA25F\uA260\uA261\uA262\uA263\uA264\uA265\uA266\uA267\uA268\uA269\uA26A\uA26B\uA26C\uA26D\uA26E\uA26F\uA270\uA271\uA272\uA273\uA274\uA275\uA276\uA277\uA278\uA279\uA27A\uA27B\uA27C\uA27D\uA27E\uA27F\uA280\uA281\uA282\uA283\uA284\uA285\uA286\uA287\uA288\uA289\uA28A\uA28B\uA28C\uA28D\uA28E\uA28F\uA290\uA291\uA292\uA293\uA294\uA295\uA296\uA297\uA298\uA299\uA29A\uA29B\uA29C\uA29D\uA29E\uA29F\uA2A0\uA2A1\uA2A2\uA2A3\uA2A4\uA2A5\uA2A6\uA2A7\uA2A8\uA2A9\uA2AA\uA2AB\uA2AC\uA2AD\uA2AE\uA2AF\uA2B0\uA2B1\uA2B2\uA2B3\uA2B4\uA2B5\uA2B6\uA2B7\uA2B8\uA2B9\uA2BA\uA2BB\uA2BC\uA2BD\uA2BE\uA2BF\uA2C0\uA2C1\uA2C2\uA2C3\uA2C4\uA2C5\uA2C6\uA2C7\uA2C8\uA2C9\uA2CA\uA2CB\uA2CC\uA2CD\uA2CE\uA2CF\uA2D0\uA2D1\uA2D2\uA2D3\uA2D4\uA2D5\uA2D6\uA2D7\uA2D8\uA2D9\uA2DA\uA2DB\uA2DC\uA2DD\uA2DE\uA2DF\uA2E0\uA2E1\uA2E2\uA2E3\uA2E4\uA2E5\uA2E6\uA2E7\uA2E8\uA2E9\uA2EA\uA2EB\uA2EC\uA2ED\uA2EE\uA2EF\uA2F0\uA2F1\uA2F2\uA2F3\uA2F4\uA2F5\uA2F6\uA2F7\uA2F8\uA2F9\uA2FA\uA2FB\uA2FC\uA2FD\uA2FE\uA2FF\uA300\uA301\uA302\uA303\uA304\uA305\uA306\uA307\uA308\uA309\uA30A\uA30B\uA30C\uA30D\uA30E\uA30F\uA310\uA311\uA312\uA313\uA314\uA315\uA316\uA317\uA318\uA319\uA31A\uA31B\uA31C\uA31D\uA31E\uA31F\uA320\uA321\uA322\uA323\uA324\uA325\uA326\uA327\uA328\uA329\uA32A\uA32B\uA32C\uA32D\uA32E\uA32F\uA330\uA331\uA332\uA333\uA334\uA335\uA336\uA337\uA338\uA339\uA33A\uA33B\uA33C\uA33D\uA33E\uA33F\uA340\uA341\uA342\uA343\uA344\uA345\uA346\uA347\uA348\uA349\uA34A\uA34B\uA34C\uA34D\uA34E\uA34F\uA350\uA351\uA352\uA353\uA354\uA355\uA356\uA357\uA358\uA359\uA35A\uA35B\uA35C\uA35D\uA35E\uA35F\uA360\uA361\uA362\uA363\uA364\uA365\uA366\uA367\uA368\uA369\uA36A\uA36B\uA36C\uA36D\uA36E\uA36F\uA370\uA371\uA372\uA373\uA374\uA375\uA376\uA377\uA378\uA379\uA37A\uA37B\uA37C\uA37D\uA37E\uA37F\uA380\uA381\uA382\uA383\uA384\uA385\uA386\uA387\uA388\uA389\uA38A\uA38B\uA38C\uA38D\uA38E\uA38F\uA390\uA391\uA392\uA393\uA394\uA395\uA396\uA397\uA398\uA399\uA39A\uA39B\uA39C\uA39D\uA39E\uA39F\uA3A0\uA3A1\uA3A2\uA3A3\uA3A4\uA3A5\uA3A6\uA3A7\uA3A8\uA3A9\uA3AA\uA3AB\uA3AC\uA3AD\uA3AE\uA3AF\uA3B0\uA3B1\uA3B2\uA3B3\uA3B4\uA3B5\uA3B6\uA3B7\uA3B8\uA3B9\uA3BA\uA3BB\uA3BC\uA3BD\uA3BE\uA3BF\uA3C0\uA3C1\uA3C2\uA3C3\uA3C4\uA3C5\uA3C6\uA3C7\uA3C8\uA3C9\uA3CA\uA3CB\uA3CC\uA3CD\uA3CE\uA3CF\uA3D0\uA3D1\uA3D2\uA3D3\uA3D4\uA3D5\uA3D6\uA3D7\uA3D8\uA3D9\uA3DA\uA3DB\uA3DC\uA3DD\uA3DE\uA3DF\uA3E0\uA3E1\uA3E2\uA3E3\uA3E4\uA3E5\uA3E6\uA3E7\uA3E8\uA3E9\uA3EA\uA3EB\uA3EC\uA3ED\uA3EE\uA3EF\uA3F0\uA3F1\uA3F2\uA3F3\uA3F4\uA3F5\uA3F6\uA3F7\uA3F8\uA3F9\uA3FA\uA3FB\uA3FC\uA3FD\uA3FE\uA3FF\uA400\uA401\uA402\uA403\uA404\uA405\uA406\uA407\uA408\uA409\uA40A\uA40B\uA40C\uA40D\uA40E\uA40F\uA410\uA411\uA412\uA413\uA414\uA415\uA416\uA417\uA418\uA419\uA41A\uA41B\uA41C\uA41D\uA41E\uA41F\uA420\uA421\uA422\uA423\uA424\uA425\uA426\uA427\uA428\uA429\uA42A\uA42B\uA42C\uA42D\uA42E\uA42F\uA430\uA431\uA432\uA433\uA434\uA435\uA436\uA437\uA438\uA439\uA43A\uA43B\uA43C\uA43D\uA43E\uA43F\uA440\uA441\uA442\uA443\uA444\uA445\uA446\uA447\uA448\uA449\uA44A\uA44B\uA44C\uA44D\uA44E\uA44F\uA450\uA451\uA452\uA453\uA454\uA455\uA456\uA457\uA458\uA459\uA45A\uA45B\uA45C\uA45D\uA45E\uA45F\uA460\uA461\uA462\uA463\uA464\uA465\uA466\uA467\uA468\uA469\uA46A\uA46B\uA46C\uA46D\uA46E\uA46F\uA470\uA471\uA472\uA473\uA474\uA475\uA476\uA477\uA478\uA479\uA47A\uA47B\uA47C\uA47D\uA47E\uA47F\uA480\uA481\uA482\uA483\uA484\uA485\uA486\uA487\uA488\uA489\uA48A\uA48B\uA48C\uA500\uA501\uA502\uA503\uA504\uA505\uA506\uA507\uA508\uA509\uA50A\uA50B\uA50C\uA50D\uA50E\uA50F\uA510\uA511\uA512\uA513\uA514\uA515\uA516\uA517\uA518\uA519\uA51A\uA51B\uA51C\uA51D\uA51E\uA51F\uA520\uA521\uA522\uA523\uA524\uA525\uA526\uA527\uA528\uA529\uA52A\uA52B\uA52C\uA52D\uA52E\uA52F\uA530\uA531\uA532\uA533\uA534\uA535\uA536\uA537\uA538\uA539\uA53A\uA53B\uA53C\uA53D\uA53E\uA53F\uA540\uA541\uA542\uA543\uA544\uA545\uA546\uA547\uA548\uA549\uA54A\uA54B\uA54C\uA54D\uA54E\uA54F\uA550\uA551\uA552\uA553\uA554\uA555\uA556\uA557\uA558\uA559\uA55A\uA55B\uA55C\uA55D\uA55E\uA55F\uA560\uA561\uA562\uA563\uA564\uA565\uA566\uA567\uA568\uA569\uA56A\uA56B\uA56C\uA56D\uA56E\uA56F\uA570\uA571\uA572\uA573\uA574\uA575\uA576\uA577\uA578\uA579\uA57A\uA57B\uA57C\uA57D\uA57E\uA57F\uA580\uA581\uA582\uA583\uA584\uA585\uA586\uA587\uA588\uA589\uA58A\uA58B\uA58C\uA58D\uA58E\uA58F\uA590\uA591\uA592\uA593\uA594\uA595\uA596\uA597\uA598\uA599\uA59A\uA59B\uA59C\uA59D\uA59E\uA59F\uA5A0\uA5A1\uA5A2\uA5A3\uA5A4\uA5A5\uA5A6\uA5A7\uA5A8\uA5A9\uA5AA\uA5AB\uA5AC\uA5AD\uA5AE\uA5AF\uA5B0\uA5B1\uA5B2\uA5B3\uA5B4\uA5B5\uA5B6\uA5B7\uA5B8\uA5B9\uA5BA\uA5BB\uA5BC\uA5BD\uA5BE\uA5BF\uA5C0\uA5C1\uA5C2\uA5C3\uA5C4\uA5C5\uA5C6\uA5C7\uA5C8\uA5C9\uA5CA\uA5CB\uA5CC\uA5CD\uA5CE\uA5CF\uA5D0\uA5D1\uA5D2\uA5D3\uA5D4\uA5D5\uA5D6\uA5D7\uA5D8\uA5D9\uA5DA\uA5DB\uA5DC\uA5DD\uA5DE\uA5DF\uA5E0\uA5E1\uA5E2\uA5E3\uA5E4\uA5E5\uA5E6\uA5E7\uA5E8\uA5E9\uA5EA\uA5EB\uA5EC\uA5ED\uA5EE\uA5EF\uA5F0\uA5F1\uA5F2\uA5F3\uA5F4\uA5F5\uA5F6\uA5F7\uA5F8\uA5F9\uA5FA\uA5FB\uA5FC\uA5FD\uA5FE\uA5FF\uA600\uA601\uA602\uA603\uA604\uA605\uA606\uA607\uA608\uA609\uA60A\uA60B\uA610\uA611\uA612\uA613\uA614\uA615\uA616\uA617\uA618\uA619\uA61A\uA61B\uA61C\uA61D\uA61E\uA61F\uA62A\uA62B\uA66E\uA7FB\uA7FC\uA7FD\uA7FE\uA7FF\uA800\uA801\uA803\uA804\uA805\uA807\uA808\uA809\uA80A\uA80C\uA80D\uA80E\uA80F\uA810\uA811\uA812\uA813\uA814\uA815\uA816\uA817\uA818\uA819\uA81A\uA81B\uA81C\uA81D\uA81E\uA81F\uA820\uA821\uA822\uA840\uA841\uA842\uA843\uA844\uA845\uA846\uA847\uA848\uA849\uA84A\uA84B\uA84C\uA84D\uA84E\uA84F\uA850\uA851\uA852\uA853\uA854\uA855\uA856\uA857\uA858\uA859\uA85A\uA85B\uA85C\uA85D\uA85E\uA85F\uA860\uA861\uA862\uA863\uA864\uA865\uA866\uA867\uA868\uA869\uA86A\uA86B\uA86C\uA86D\uA86E\uA86F\uA870\uA871\uA872\uA873\uA882\uA883\uA884\uA885\uA886\uA887\uA888\uA889\uA88A\uA88B\uA88C\uA88D\uA88E\uA88F\uA890\uA891\uA892\uA893\uA894\uA895\uA896\uA897\uA898\uA899\uA89A\uA89B\uA89C\uA89D\uA89E\uA89F\uA8A0\uA8A1\uA8A2\uA8A3\uA8A4\uA8A5\uA8A6\uA8A7\uA8A8\uA8A9\uA8AA\uA8AB\uA8AC\uA8AD\uA8AE\uA8AF\uA8B0\uA8B1\uA8B2\uA8B3\uA90A\uA90B\uA90C\uA90D\uA90E\uA90F\uA910\uA911\uA912\uA913\uA914\uA915\uA916\uA917\uA918\uA919\uA91A\uA91B\uA91C\uA91D\uA91E\uA91F\uA920\uA921\uA922\uA923\uA924\uA925\uA930\uA931\uA932\uA933\uA934\uA935\uA936\uA937\uA938\uA939\uA93A\uA93B\uA93C\uA93D\uA93E\uA93F\uA940\uA941\uA942\uA943\uA944\uA945\uA946\uAA00\uAA01\uAA02\uAA03\uAA04\uAA05\uAA06\uAA07\uAA08\uAA09\uAA0A\uAA0B\uAA0C\uAA0D\uAA0E\uAA0F\uAA10\uAA11\uAA12\uAA13\uAA14\uAA15\uAA16\uAA17\uAA18\uAA19\uAA1A\uAA1B\uAA1C\uAA1D\uAA1E\uAA1F\uAA20\uAA21\uAA22\uAA23\uAA24\uAA25\uAA26\uAA27\uAA28\uAA40\uAA41\uAA42\uAA44\uAA45\uAA46\uAA47\uAA48\uAA49\uAA4A\uAA4B\uAC00\uD7A3\uF900\uF901\uF902\uF903\uF904\uF905\uF906\uF907\uF908\uF909\uF90A\uF90B\uF90C\uF90D\uF90E\uF90F\uF910\uF911\uF912\uF913\uF914\uF915\uF916\uF917\uF918\uF919\uF91A\uF91B\uF91C\uF91D\uF91E\uF91F\uF920\uF921\uF922\uF923\uF924\uF925\uF926\uF927\uF928\uF929\uF92A\uF92B\uF92C\uF92D\uF92E\uF92F\uF930\uF931\uF932\uF933\uF934\uF935\uF936\uF937\uF938\uF939\uF93A\uF93B\uF93C\uF93D\uF93E\uF93F\uF940\uF941\uF942\uF943\uF944\uF945\uF946\uF947\uF948\uF949\uF94A\uF94B\uF94C\uF94D\uF94E\uF94F\uF950\uF951\uF952\uF953\uF954\uF955\uF956\uF957\uF958\uF959\uF95A\uF95B\uF95C\uF95D\uF95E\uF95F\uF960\uF961\uF962\uF963\uF964\uF965\uF966\uF967\uF968\uF969\uF96A\uF96B\uF96C\uF96D\uF96E\uF96F\uF970\uF971\uF972\uF973\uF974\uF975\uF976\uF977\uF978\uF979\uF97A\uF97B\uF97C\uF97D\uF97E\uF97F\uF980\uF981\uF982\uF983\uF984\uF985\uF986\uF987\uF988\uF989\uF98A\uF98B\uF98C\uF98D\uF98E\uF98F\uF990\uF991\uF992\uF993\uF994\uF995\uF996\uF997\uF998\uF999\uF99A\uF99B\uF99C\uF99D\uF99E\uF99F\uF9A0\uF9A1\uF9A2\uF9A3\uF9A4\uF9A5\uF9A6\uF9A7\uF9A8\uF9A9\uF9AA\uF9AB\uF9AC\uF9AD\uF9AE\uF9AF\uF9B0\uF9B1\uF9B2\uF9B3\uF9B4\uF9B5\uF9B6\uF9B7\uF9B8\uF9B9\uF9BA\uF9BB\uF9BC\uF9BD\uF9BE\uF9BF\uF9C0\uF9C1\uF9C2\uF9C3\uF9C4\uF9C5\uF9C6\uF9C7\uF9C8\uF9C9\uF9CA\uF9CB\uF9CC\uF9CD\uF9CE\uF9CF\uF9D0\uF9D1\uF9D2\uF9D3\uF9D4\uF9D5\uF9D6\uF9D7\uF9D8\uF9D9\uF9DA\uF9DB\uF9DC\uF9DD\uF9DE\uF9DF\uF9E0\uF9E1\uF9E2\uF9E3\uF9E4\uF9E5\uF9E6\uF9E7\uF9E8\uF9E9\uF9EA\uF9EB\uF9EC\uF9ED\uF9EE\uF9EF\uF9F0\uF9F1\uF9F2\uF9F3\uF9F4\uF9F5\uF9F6\uF9F7\uF9F8\uF9F9\uF9FA\uF9FB\uF9FC\uF9FD\uF9FE\uF9FF\uFA00\uFA01\uFA02\uFA03\uFA04\uFA05\uFA06\uFA07\uFA08\uFA09\uFA0A\uFA0B\uFA0C\uFA0D\uFA0E\uFA0F\uFA10\uFA11\uFA12\uFA13\uFA14\uFA15\uFA16\uFA17\uFA18\uFA19\uFA1A\uFA1B\uFA1C\uFA1D\uFA1E\uFA1F\uFA20\uFA21\uFA22\uFA23\uFA24\uFA25\uFA26\uFA27\uFA28\uFA29\uFA2A\uFA2B\uFA2C\uFA2D\uFA30\uFA31\uFA32\uFA33\uFA34\uFA35\uFA36\uFA37\uFA38\uFA39\uFA3A\uFA3B\uFA3C\uFA3D\uFA3E\uFA3F\uFA40\uFA41\uFA42\uFA43\uFA44\uFA45\uFA46\uFA47\uFA48\uFA49\uFA4A\uFA4B\uFA4C\uFA4D\uFA4E\uFA4F\uFA50\uFA51\uFA52\uFA53\uFA54\uFA55\uFA56\uFA57\uFA58\uFA59\uFA5A\uFA5B\uFA5C\uFA5D\uFA5E\uFA5F\uFA60\uFA61\uFA62\uFA63\uFA64\uFA65\uFA66\uFA67\uFA68\uFA69\uFA6A\uFA70\uFA71\uFA72\uFA73\uFA74\uFA75\uFA76\uFA77\uFA78\uFA79\uFA7A\uFA7B\uFA7C\uFA7D\uFA7E\uFA7F\uFA80\uFA81\uFA82\uFA83\uFA84\uFA85\uFA86\uFA87\uFA88\uFA89\uFA8A\uFA8B\uFA8C\uFA8D\uFA8E\uFA8F\uFA90\uFA91\uFA92\uFA93\uFA94\uFA95\uFA96\uFA97\uFA98\uFA99\uFA9A\uFA9B\uFA9C\uFA9D\uFA9E\uFA9F\uFAA0\uFAA1\uFAA2\uFAA3\uFAA4\uFAA5\uFAA6\uFAA7\uFAA8\uFAA9\uFAAA\uFAAB\uFAAC\uFAAD\uFAAE\uFAAF\uFAB0\uFAB1\uFAB2\uFAB3\uFAB4\uFAB5\uFAB6\uFAB7\uFAB8\uFAB9\uFABA\uFABB\uFABC\uFABD\uFABE\uFABF\uFAC0\uFAC1\uFAC2\uFAC3\uFAC4\uFAC5\uFAC6\uFAC7\uFAC8\uFAC9\uFACA\uFACB\uFACC\uFACD\uFACE\uFACF\uFAD0\uFAD1\uFAD2\uFAD3\uFAD4\uFAD5\uFAD6\uFAD7\uFAD8\uFAD9\uFB1D\uFB1F\uFB20\uFB21\uFB22\uFB23\uFB24\uFB25\uFB26\uFB27\uFB28\uFB2A\uFB2B\uFB2C\uFB2D\uFB2E\uFB2F\uFB30\uFB31\uFB32\uFB33\uFB34\uFB35\uFB36\uFB38\uFB39\uFB3A\uFB3B\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46\uFB47\uFB48\uFB49\uFB4A\uFB4B\uFB4C\uFB4D\uFB4E\uFB4F\uFB50\uFB51\uFB52\uFB53\uFB54\uFB55\uFB56\uFB57\uFB58\uFB59\uFB5A\uFB5B\uFB5C\uFB5D\uFB5E\uFB5F\uFB60\uFB61\uFB62\uFB63\uFB64\uFB65\uFB66\uFB67\uFB68\uFB69\uFB6A\uFB6B\uFB6C\uFB6D\uFB6E\uFB6F\uFB70\uFB71\uFB72\uFB73\uFB74\uFB75\uFB76\uFB77\uFB78\uFB79\uFB7A\uFB7B\uFB7C\uFB7D\uFB7E\uFB7F\uFB80\uFB81\uFB82\uFB83\uFB84\uFB85\uFB86\uFB87\uFB88\uFB89\uFB8A\uFB8B\uFB8C\uFB8D\uFB8E\uFB8F\uFB90\uFB91\uFB92\uFB93\uFB94\uFB95\uFB96\uFB97\uFB98\uFB99\uFB9A\uFB9B\uFB9C\uFB9D\uFB9E\uFB9F\uFBA0\uFBA1\uFBA2\uFBA3\uFBA4\uFBA5\uFBA6\uFBA7\uFBA8\uFBA9\uFBAA\uFBAB\uFBAC\uFBAD\uFBAE\uFBAF\uFBB0\uFBB1\uFBD3\uFBD4\uFBD5\uFBD6\uFBD7\uFBD8\uFBD9\uFBDA\uFBDB\uFBDC\uFBDD\uFBDE\uFBDF\uFBE0\uFBE1\uFBE2\uFBE3\uFBE4\uFBE5\uFBE6\uFBE7\uFBE8\uFBE9\uFBEA\uFBEB\uFBEC\uFBED\uFBEE\uFBEF\uFBF0\uFBF1\uFBF2\uFBF3\uFBF4\uFBF5\uFBF6\uFBF7\uFBF8\uFBF9\uFBFA\uFBFB\uFBFC\uFBFD\uFBFE\uFBFF\uFC00\uFC01\uFC02\uFC03\uFC04\uFC05\uFC06\uFC07\uFC08\uFC09\uFC0A\uFC0B\uFC0C\uFC0D\uFC0E\uFC0F\uFC10\uFC11\uFC12\uFC13\uFC14\uFC15\uFC16\uFC17\uFC18\uFC19\uFC1A\uFC1B\uFC1C\uFC1D\uFC1E\uFC1F\uFC20\uFC21\uFC22\uFC23\uFC24\uFC25\uFC26\uFC27\uFC28\uFC29\uFC2A\uFC2B\uFC2C\uFC2D\uFC2E\uFC2F\uFC30\uFC31\uFC32\uFC33\uFC34\uFC35\uFC36\uFC37\uFC38\uFC39\uFC3A\uFC3B\uFC3C\uFC3D\uFC3E\uFC3F\uFC40\uFC41\uFC42\uFC43\uFC44\uFC45\uFC46\uFC47\uFC48\uFC49\uFC4A\uFC4B\uFC4C\uFC4D\uFC4E\uFC4F\uFC50\uFC51\uFC52\uFC53\uFC54\uFC55\uFC56\uFC57\uFC58\uFC59\uFC5A\uFC5B\uFC5C\uFC5D\uFC5E\uFC5F\uFC60\uFC61\uFC62\uFC63\uFC64\uFC65\uFC66\uFC67\uFC68\uFC69\uFC6A\uFC6B\uFC6C\uFC6D\uFC6E\uFC6F\uFC70\uFC71\uFC72\uFC73\uFC74\uFC75\uFC76\uFC77\uFC78\uFC79\uFC7A\uFC7B\uFC7C\uFC7D\uFC7E\uFC7F\uFC80\uFC81\uFC82\uFC83\uFC84\uFC85\uFC86\uFC87\uFC88\uFC89\uFC8A\uFC8B\uFC8C\uFC8D\uFC8E\uFC8F\uFC90\uFC91\uFC92\uFC93\uFC94\uFC95\uFC96\uFC97\uFC98\uFC99\uFC9A\uFC9B\uFC9C\uFC9D\uFC9E\uFC9F\uFCA0\uFCA1\uFCA2\uFCA3\uFCA4\uFCA5\uFCA6\uFCA7\uFCA8\uFCA9\uFCAA\uFCAB\uFCAC\uFCAD\uFCAE\uFCAF\uFCB0\uFCB1\uFCB2\uFCB3\uFCB4\uFCB5\uFCB6\uFCB7\uFCB8\uFCB9\uFCBA\uFCBB\uFCBC\uFCBD\uFCBE\uFCBF\uFCC0\uFCC1\uFCC2\uFCC3\uFCC4\uFCC5\uFCC6\uFCC7\uFCC8\uFCC9\uFCCA\uFCCB\uFCCC\uFCCD\uFCCE\uFCCF\uFCD0\uFCD1\uFCD2\uFCD3\uFCD4\uFCD5\uFCD6\uFCD7\uFCD8\uFCD9\uFCDA\uFCDB\uFCDC\uFCDD\uFCDE\uFCDF\uFCE0\uFCE1\uFCE2\uFCE3\uFCE4\uFCE5\uFCE6\uFCE7\uFCE8\uFCE9\uFCEA\uFCEB\uFCEC\uFCED\uFCEE\uFCEF\uFCF0\uFCF1\uFCF2\uFCF3\uFCF4\uFCF5\uFCF6\uFCF7\uFCF8\uFCF9\uFCFA\uFCFB\uFCFC\uFCFD\uFCFE\uFCFF\uFD00\uFD01\uFD02\uFD03\uFD04\uFD05\uFD06\uFD07\uFD08\uFD09\uFD0A\uFD0B\uFD0C\uFD0D\uFD0E\uFD0F\uFD10\uFD11\uFD12\uFD13\uFD14\uFD15\uFD16\uFD17\uFD18\uFD19\uFD1A\uFD1B\uFD1C\uFD1D\uFD1E\uFD1F\uFD20\uFD21\uFD22\uFD23\uFD24\uFD25\uFD26\uFD27\uFD28\uFD29\uFD2A\uFD2B\uFD2C\uFD2D\uFD2E\uFD2F\uFD30\uFD31\uFD32\uFD33\uFD34\uFD35\uFD36\uFD37\uFD38\uFD39\uFD3A\uFD3B\uFD3C\uFD3D\uFD50\uFD51\uFD52\uFD53\uFD54\uFD55\uFD56\uFD57\uFD58\uFD59\uFD5A\uFD5B\uFD5C\uFD5D\uFD5E\uFD5F\uFD60\uFD61\uFD62\uFD63\uFD64\uFD65\uFD66\uFD67\uFD68\uFD69\uFD6A\uFD6B\uFD6C\uFD6D\uFD6E\uFD6F\uFD70\uFD71\uFD72\uFD73\uFD74\uFD75\uFD76\uFD77\uFD78\uFD79\uFD7A\uFD7B\uFD7C\uFD7D\uFD7E\uFD7F\uFD80\uFD81\uFD82\uFD83\uFD84\uFD85\uFD86\uFD87\uFD88\uFD89\uFD8A\uFD8B\uFD8C\uFD8D\uFD8E\uFD8F\uFD92\uFD93\uFD94\uFD95\uFD96\uFD97\uFD98\uFD99\uFD9A\uFD9B\uFD9C\uFD9D\uFD9E\uFD9F\uFDA0\uFDA1\uFDA2\uFDA3\uFDA4\uFDA5\uFDA6\uFDA7\uFDA8\uFDA9\uFDAA\uFDAB\uFDAC\uFDAD\uFDAE\uFDAF\uFDB0\uFDB1\uFDB2\uFDB3\uFDB4\uFDB5\uFDB6\uFDB7\uFDB8\uFDB9\uFDBA\uFDBB\uFDBC\uFDBD\uFDBE\uFDBF\uFDC0\uFDC1\uFDC2\uFDC3\uFDC4\uFDC5\uFDC6\uFDC7\uFDF0\uFDF1\uFDF2\uFDF3\uFDF4\uFDF5\uFDF6\uFDF7\uFDF8\uFDF9\uFDFA\uFDFB\uFE70\uFE71\uFE72\uFE73\uFE74\uFE76\uFE77\uFE78\uFE79\uFE7A\uFE7B\uFE7C\uFE7D\uFE7E\uFE7F\uFE80\uFE81\uFE82\uFE83\uFE84\uFE85\uFE86\uFE87\uFE88\uFE89\uFE8A\uFE8B\uFE8C\uFE8D\uFE8E\uFE8F\uFE90\uFE91\uFE92\uFE93\uFE94\uFE95\uFE96\uFE97\uFE98\uFE99\uFE9A\uFE9B\uFE9C\uFE9D\uFE9E\uFE9F\uFEA0\uFEA1\uFEA2\uFEA3\uFEA4\uFEA5\uFEA6\uFEA7\uFEA8\uFEA9\uFEAA\uFEAB\uFEAC\uFEAD\uFEAE\uFEAF\uFEB0\uFEB1\uFEB2\uFEB3\uFEB4\uFEB5\uFEB6\uFEB7\uFEB8\uFEB9\uFEBA\uFEBB\uFEBC\uFEBD\uFEBE\uFEBF\uFEC0\uFEC1\uFEC2\uFEC3\uFEC4\uFEC5\uFEC6\uFEC7\uFEC8\uFEC9\uFECA\uFECB\uFECC\uFECD\uFECE\uFECF\uFED0\uFED1\uFED2\uFED3\uFED4\uFED5\uFED6\uFED7\uFED8\uFED9\uFEDA\uFEDB\uFEDC\uFEDD\uFEDE\uFEDF\uFEE0\uFEE1\uFEE2\uFEE3\uFEE4\uFEE5\uFEE6\uFEE7\uFEE8\uFEE9\uFEEA\uFEEB\uFEEC\uFEED\uFEEE\uFEEF\uFEF0\uFEF1\uFEF2\uFEF3\uFEF4\uFEF5\uFEF6\uFEF7\uFEF8\uFEF9\uFEFA\uFEFB\uFEFC\uFF66\uFF67\uFF68\uFF69\uFF6A\uFF6B\uFF6C\uFF6D\uFF6E\uFF6F\uFF71\uFF72\uFF73\uFF74\uFF75\uFF76\uFF77\uFF78\uFF79\uFF7A\uFF7B\uFF7C\uFF7D\uFF7E\uFF7F\uFF80\uFF81\uFF82\uFF83\uFF84\uFF85\uFF86\uFF87\uFF88\uFF89\uFF8A\uFF8B\uFF8C\uFF8D\uFF8E\uFF8F\uFF90\uFF91\uFF92\uFF93\uFF94\uFF95\uFF96\uFF97\uFF98\uFF99\uFF9A\uFF9B\uFF9C\uFF9D\uFFA0\uFFA1\uFFA2\uFFA3\uFFA4\uFFA5\uFFA6\uFFA7\uFFA8\uFFA9\uFFAA\uFFAB\uFFAC\uFFAD\uFFAE\uFFAF\uFFB0\uFFB1\uFFB2\uFFB3\uFFB4\uFFB5\uFFB6\uFFB7\uFFB8\uFFB9\uFFBA\uFFBB\uFFBC\uFFBD\uFFBE\uFFC2\uFFC3\uFFC4\uFFC5\uFFC6\uFFC7\uFFCA\uFFCB\uFFCC\uFFCD\uFFCE\uFFCF\uFFD2\uFFD3\uFFD4\uFFD5\uFFD6\uFFD7\uFFDA\uFFDB\uFFDC]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\u01BB\\u01C0\\u01C1\\u01C2\\u01C3\\u0294\\u05D0\\u05D1\\u05D2\\u05D3\\u05D4\\u05D5\\u05D6\\u05D7\\u05D8\\u05D9\\u05DA\\u05DB\\u05DC\\u05DD\\u05DE\\u05DF\\u05E0\\u05E1\\u05E2\\u05E3\\u05E4\\u05E5\\u05E6\\u05E7\\u05E8\\u05E9\\u05EA\\u05F0\\u05F1\\u05F2\\u0621\\u0622\\u0623\\u0624\\u0625\\u0626\\u0627\\u0628\\u0629\\u062A\\u062B\\u062C\\u062D\\u062E\\u062F\\u0630\\u0631\\u0632\\u0633\\u0634\\u0635\\u0636\\u0637\\u0638\\u0639\\u063A\\u063B\\u063C\\u063D\\u063E\\u063F\\u0641\\u0642\\u0643\\u0644\\u0645\\u0646\\u0647\\u0648\\u0649\\u064A\\u066E\\u066F\\u0671\\u0672\\u0673\\u0674\\u0675\\u0676\\u0677\\u0678\\u0679\\u067A\\u067B\\u067C\\u067D\\u067E\\u067F\\u0680\\u0681\\u0682\\u0683\\u0684\\u0685\\u0686\\u0687\\u0688\\u0689\\u068A\\u068B\\u068C\\u068D\\u068E\\u068F\\u0690\\u0691\\u0692\\u0693\\u0694\\u0695\\u0696\\u0697\\u0698\\u0699\\u069A\\u069B\\u069C\\u069D\\u069E\\u069F\\u06A0\\u06A1\\u06A2\\u06A3\\u06A4\\u06A5\\u06A6\\u06A7\\u06A8\\u06A9\\u06AA\\u06AB\\u06AC\\u06AD\\u06AE\\u06AF\\u06B0\\u06B1\\u06B2\\u06B3\\u06B4\\u06B5\\u06B6\\u06B7\\u06B8\\u06B9\\u06BA\\u06BB\\u06BC\\u06BD\\u06BE\\u06BF\\u06C0\\u06C1\\u06C2\\u06C3\\u06C4\\u06C5\\u06C6\\u06C7\\u06C8\\u06C9\\u06CA\\u06CB\\u06CC\\u06CD\\u06CE\\u06CF\\u06D0\\u06D1\\u06D2\\u06D3\\u06D5\\u06EE\\u06EF\\u06FA\\u06FB\\u06FC\\u06FF\\u0710\\u0712\\u0713\\u0714\\u0715\\u0716\\u0717\\u0718\\u0719\\u071A\\u071B\\u071C\\u071D\\u071E\\u071F\\u0720\\u0721\\u0722\\u0723\\u0724\\u0725\\u0726\\u0727\\u0728\\u0729\\u072A\\u072B\\u072C\\u072D\\u072E\\u072F\\u074D\\u074E\\u074F\\u0750\\u0751\\u0752\\u0753\\u0754\\u0755\\u0756\\u0757\\u0758\\u0759\\u075A\\u075B\\u075C\\u075D\\u075E\\u075F\\u0760\\u0761\\u0762\\u0763\\u0764\\u0765\\u0766\\u0767\\u0768\\u0769\\u076A\\u076B\\u076C\\u076D\\u076E\\u076F\\u0770\\u0771\\u0772\\u0773\\u0774\\u0775\\u0776\\u0777\\u0778\\u0779\\u077A\\u077B\\u077C\\u077D\\u077E\\u077F\\u0780\\u0781\\u0782\\u0783\\u0784\\u0785\\u0786\\u0787\\u0788\\u0789\\u078A\\u078B\\u078C\\u078D\\u078E\\u078F\\u0790\\u0791\\u0792\\u0793\\u0794\\u0795\\u0796\\u0797\\u0798\\u0799\\u079A\\u079B\\u079C\\u079D\\u079E\\u079F\\u07A0\\u07A1\\u07A2\\u07A3\\u07A4\\u07A5\\u07B1\\u07CA\\u07CB\\u07CC\\u07CD\\u07CE\\u07CF\\u07D0\\u07D1\\u07D2\\u07D3\\u07D4\\u07D5\\u07D6\\u07D7\\u07D8\\u07D9\\u07DA\\u07DB\\u07DC\\u07DD\\u07DE\\u07DF\\u07E0\\u07E1\\u07E2\\u07E3\\u07E4\\u07E5\\u07E6\\u07E7\\u07E8\\u07E9\\u07EA\\u0904\\u0905\\u0906\\u0907\\u0908\\u0909\\u090A\\u090B\\u090C\\u090D\\u090E\\u090F\\u0910\\u0911\\u0912\\u0913\\u0914\\u0915\\u0916\\u0917\\u0918\\u0919\\u091A\\u091B\\u091C\\u091D\\u091E\\u091F\\u0920\\u0921\\u0922\\u0923\\u0924\\u0925\\u0926\\u0927\\u0928\\u0929\\u092A\\u092B\\u092C\\u092D\\u092E\\u092F\\u0930\\u0931\\u0932\\u0933\\u0934\\u0935\\u0936\\u0937\\u0938\\u0939\\u093D\\u0950\\u0958\\u0959\\u095A\\u095B\\u095C\\u095D\\u095E\\u095F\\u0960\\u0961\\u0972\\u097B\\u097C\\u097D\\u097E\\u097F\\u0985\\u0986\\u0987\\u0988\\u0989\\u098A\\u098B\\u098C\\u098F\\u0990\\u0993\\u0994\\u0995\\u0996\\u0997\\u0998\\u0999\\u099A\\u099B\\u099C\\u099D\\u099E\\u099F\\u09A0\\u09A1\\u09A2\\u09A3\\u09A4\\u09A5\\u09A6\\u09A7\\u09A8\\u09AA\\u09AB\\u09AC\\u09AD\\u09AE\\u09AF\\u09B0\\u09B2\\u09B6\\u09B7\\u09B8\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF\\u09E0\\u09E1\\u09F0\\u09F1\\u0A05\\u0A06\\u0A07\\u0A08\\u0A09\\u0A0A\\u0A0F\\u0A10\\u0A13\\u0A14\\u0A15\\u0A16\\u0A17\\u0A18\\u0A19\\u0A1A\\u0A1B\\u0A1C\\u0A1D\\u0A1E\\u0A1F\\u0A20\\u0A21\\u0A22\\u0A23\\u0A24\\u0A25\\u0A26\\u0A27\\u0A28\\u0A2A\\u0A2B\\u0A2C\\u0A2D\\u0A2E\\u0A2F\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59\\u0A5A\\u0A5B\\u0A5C\\u0A5E\\u0A72\\u0A73\\u0A74\\u0A85\\u0A86\\u0A87\\u0A88\\u0A89\\u0A8A\\u0A8B\\u0A8C\\u0A8D\\u0A8F\\u0A90\\u0A91\\u0A93\\u0A94\\u0A95\\u0A96\\u0A97\\u0A98\\u0A99\\u0A9A\\u0A9B\\u0A9C\\u0A9D\\u0A9E\\u0A9F\\u0AA0\\u0AA1\\u0AA2\\u0AA3\\u0AA4\\u0AA5\\u0AA6\\u0AA7\\u0AA8\\u0AAA\\u0AAB\\u0AAC\\u0AAD\\u0AAE\\u0AAF\\u0AB0\\u0AB2\\u0AB3\\u0AB5\\u0AB6\\u0AB7\\u0AB8\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05\\u0B06\\u0B07\\u0B08\\u0B09\\u0B0A\\u0B0B\\u0B0C\\u0B0F\\u0B10\\u0B13\\u0B14\\u0B15\\u0B16\\u0B17\\u0B18\\u0B19\\u0B1A\\u0B1B\\u0B1C\\u0B1D\\u0B1E\\u0B1F\\u0B20\\u0B21\\u0B22\\u0B23\\u0B24\\u0B25\\u0B26\\u0B27\\u0B28\\u0B2A\\u0B2B\\u0B2C\\u0B2D\\u0B2E\\u0B2F\\u0B30\\u0B32\\u0B33\\u0B35\\u0B36\\u0B37\\u0B38\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F\\u0B60\\u0B61\\u0B71\\u0B83\\u0B85\\u0B86\\u0B87\\u0B88\\u0B89\\u0B8A\\u0B8E\\u0B8F\\u0B90\\u0B92\\u0B93\\u0B94\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8\\u0BA9\\u0BAA\\u0BAE\\u0BAF\\u0BB0\\u0BB1\\u0BB2\\u0BB3\\u0BB4\\u0BB5\\u0BB6\\u0BB7\\u0BB8\\u0BB9\\u0BD0\\u0C05\\u0C06\\u0C07\\u0C08\\u0C09\\u0C0A\\u0C0B\\u0C0C\\u0C0E\\u0C0F\\u0C10\\u0C12\\u0C13\\u0C14\\u0C15\\u0C16\\u0C17\\u0C18\\u0C19\\u0C1A\\u0C1B\\u0C1C\\u0C1D\\u0C1E\\u0C1F\\u0C20\\u0C21\\u0C22\\u0C23\\u0C24\\u0C25\\u0C26\\u0C27\\u0C28\\u0C2A\\u0C2B\\u0C2C\\u0C2D\\u0C2E\\u0C2F\\u0C30\\u0C31\\u0C32\\u0C33\\u0C35\\u0C36\\u0C37\\u0C38\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85\\u0C86\\u0C87\\u0C88\\u0C89\\u0C8A\\u0C8B\\u0C8C\\u0C8E\\u0C8F\\u0C90\\u0C92\\u0C93\\u0C94\\u0C95\\u0C96\\u0C97\\u0C98\\u0C99\\u0C9A\\u0C9B\\u0C9C\\u0C9D\\u0C9E\\u0C9F\\u0CA0\\u0CA1\\u0CA2\\u0CA3\\u0CA4\\u0CA5\\u0CA6\\u0CA7\\u0CA8\\u0CAA\\u0CAB\\u0CAC\\u0CAD\\u0CAE\\u0CAF\\u0CB0\\u0CB1\\u0CB2\\u0CB3\\u0CB5\\u0CB6\\u0CB7\\u0CB8\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0D05\\u0D06\\u0D07\\u0D08\\u0D09\\u0D0A\\u0D0B\\u0D0C\\u0D0E\\u0D0F\\u0D10\\u0D12\\u0D13\\u0D14\\u0D15\\u0D16\\u0D17\\u0D18\\u0D19\\u0D1A\\u0D1B\\u0D1C\\u0D1D\\u0D1E\\u0D1F\\u0D20\\u0D21\\u0D22\\u0D23\\u0D24\\u0D25\\u0D26\\u0D27\\u0D28\\u0D2A\\u0D2B\\u0D2C\\u0D2D\\u0D2E\\u0D2F\\u0D30\\u0D31\\u0D32\\u0D33\\u0D34\\u0D35\\u0D36\\u0D37\\u0D38\\u0D39\\u0D3D\\u0D60\\u0D61\\u0D7A\\u0D7B\\u0D7C\\u0D7D\\u0D7E\\u0D7F\\u0D85\\u0D86\\u0D87\\u0D88\\u0D89\\u0D8A\\u0D8B\\u0D8C\\u0D8D\\u0D8E\\u0D8F\\u0D90\\u0D91\\u0D92\\u0D93\\u0D94\\u0D95\\u0D96\\u0D9A\\u0D9B\\u0D9C\\u0D9D\\u0D9E\\u0D9F\\u0DA0\\u0DA1\\u0DA2\\u0DA3\\u0DA4\\u0DA5\\u0DA6\\u0DA7\\u0DA8\\u0DA9\\u0DAA\\u0DAB\\u0DAC\\u0DAD\\u0DAE\\u0DAF\\u0DB0\\u0DB1\\u0DB3\\u0DB4\\u0DB5\\u0DB6\\u0DB7\\u0DB8\\u0DB9\\u0DBA\\u0DBB\\u0DBD\\u0DC0\\u0DC1\\u0DC2\\u0DC3\\u0DC4\\u0DC5\\u0DC6\\u0E01\\u0E02\\u0E03\\u0E04\\u0E05\\u0E06\\u0E07\\u0E08\\u0E09\\u0E0A\\u0E0B\\u0E0C\\u0E0D\\u0E0E\\u0E0F\\u0E10\\u0E11\\u0E12\\u0E13\\u0E14\\u0E15\\u0E16\\u0E17\\u0E18\\u0E19\\u0E1A\\u0E1B\\u0E1C\\u0E1D\\u0E1E\\u0E1F\\u0E20\\u0E21\\u0E22\\u0E23\\u0E24\\u0E25\\u0E26\\u0E27\\u0E28\\u0E29\\u0E2A\\u0E2B\\u0E2C\\u0E2D\\u0E2E\\u0E2F\\u0E30\\u0E32\\u0E33\\u0E40\\u0E41\\u0E42\\u0E43\\u0E44\\u0E45\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94\\u0E95\\u0E96\\u0E97\\u0E99\\u0E9A\\u0E9B\\u0E9C\\u0E9D\\u0E9E\\u0E9F\\u0EA1\\u0EA2\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD\\u0EAE\\u0EAF\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0\\u0EC1\\u0EC2\\u0EC3\\u0EC4\\u0EDC\\u0EDD\\u0F00\\u0F40\\u0F41\\u0F42\\u0F43\\u0F44\\u0F45\\u0F46\\u0F47\\u0F49\\u0F4A\\u0F4B\\u0F4C\\u0F4D\\u0F4E\\u0F4F\\u0F50\\u0F51\\u0F52\\u0F53\\u0F54\\u0F55\\u0F56\\u0F57\\u0F58\\u0F59\\u0F5A\\u0F5B\\u0F5C\\u0F5D\\u0F5E\\u0F5F\\u0F60\\u0F61\\u0F62\\u0F63\\u0F64\\u0F65\\u0F66\\u0F67\\u0F68\\u0F69\\u0F6A\\u0F6B\\u0F6C\\u0F88\\u0F89\\u0F8A\\u0F8B\\u1000\\u1001\\u1002\\u1003\\u1004\\u1005\\u1006\\u1007\\u1008\\u1009\\u100A\\u100B\\u100C\\u100D\\u100E\\u100F\\u1010\\u1011\\u1012\\u1013\\u1014\\u1015\\u1016\\u1017\\u1018\\u1019\\u101A\\u101B\\u101C\\u101D\\u101E\\u101F\\u1020\\u1021\\u1022\\u1023\\u1024\\u1025\\u1026\\u1027\\u1028\\u1029\\u102A\\u103F\\u1050\\u1051\\u1052\\u1053\\u1054\\u1055\\u105A\\u105B\\u105C\\u105D\\u1061\\u1065\\u1066\\u106E\\u106F\\u1070\\u1075\\u1076\\u1077\\u1078\\u1079\\u107A\\u107B\\u107C\\u107D\\u107E\\u107F\\u1080\\u1081\\u108E\\u10D0\\u10D1\\u10D2\\u10D3\\u10D4\\u10D5\\u10D6\\u10D7\\u10D8\\u10D9\\u10DA\\u10DB\\u10DC\\u10DD\\u10DE\\u10DF\\u10E0\\u10E1\\u10E2\\u10E3\\u10E4\\u10E5\\u10E6\\u10E7\\u10E8\\u10E9\\u10EA\\u10EB\\u10EC\\u10ED\\u10EE\\u10EF\\u10F0\\u10F1\\u10F2\\u10F3\\u10F4\\u10F5\\u10F6\\u10F7\\u10F8\\u10F9\\u10FA\\u1100\\u1101\\u1102\\u1103\\u1104\\u1105\\u1106\\u1107\\u1108\\u1109\\u110A\\u110B\\u110C\\u110D\\u110E\\u110F\\u1110\\u1111\\u1112\\u1113\\u1114\\u1115\\u1116\\u1117\\u1118\\u1119\\u111A\\u111B\\u111C\\u111D\\u111E\\u111F\\u1120\\u1121\\u1122\\u1123\\u1124\\u1125\\u1126\\u1127\\u1128\\u1129\\u112A\\u112B\\u112C\\u112D\\u112E\\u112F\\u1130\\u1131\\u1132\\u1133\\u1134\\u1135\\u1136\\u1137\\u1138\\u1139\\u113A\\u113B\\u113C\\u113D\\u113E\\u113F\\u1140\\u1141\\u1142\\u1143\\u1144\\u1145\\u1146\\u1147\\u1148\\u1149\\u114A\\u114B\\u114C\\u114D\\u114E\\u114F\\u1150\\u1151\\u1152\\u1153\\u1154\\u1155\\u1156\\u1157\\u1158\\u1159\\u115F\\u1160\\u1161\\u1162\\u1163\\u1164\\u1165\\u1166\\u1167\\u1168\\u1169\\u116A\\u116B\\u116C\\u116D\\u116E\\u116F\\u1170\\u1171\\u1172\\u1173\\u1174\\u1175\\u1176\\u1177\\u1178\\u1179\\u117A\\u117B\\u117C\\u117D\\u117E\\u117F\\u1180\\u1181\\u1182\\u1183\\u1184\\u1185\\u1186\\u1187\\u1188\\u1189\\u118A\\u118B\\u118C\\u118D\\u118E\\u118F\\u1190\\u1191\\u1192\\u1193\\u1194\\u1195\\u1196\\u1197\\u1198\\u1199\\u119A\\u119B\\u119C\\u119D\\u119E\\u119F\\u11A0\\u11A1\\u11A2\\u11A8\\u11A9\\u11AA\\u11AB\\u11AC\\u11AD\\u11AE\\u11AF\\u11B0\\u11B1\\u11B2\\u11B3\\u11B4\\u11B5\\u11B6\\u11B7\\u11B8\\u11B9\\u11BA\\u11BB\\u11BC\\u11BD\\u11BE\\u11BF\\u11C0\\u11C1\\u11C2\\u11C3\\u11C4\\u11C5\\u11C6\\u11C7\\u11C8\\u11C9\\u11CA\\u11CB\\u11CC\\u11CD\\u11CE\\u11CF\\u11D0\\u11D1\\u11D2\\u11D3\\u11D4\\u11D5\\u11D6\\u11D7\\u11D8\\u11D9\\u11DA\\u11DB\\u11DC\\u11DD\\u11DE\\u11DF\\u11E0\\u11E1\\u11E2\\u11E3\\u11E4\\u11E5\\u11E6\\u11E7\\u11E8\\u11E9\\u11EA\\u11EB\\u11EC\\u11ED\\u11EE\\u11EF\\u11F0\\u11F1\\u11F2\\u11F3\\u11F4\\u11F5\\u11F6\\u11F7\\u11F8\\u11F9\\u1200\\u1201\\u1202\\u1203\\u1204\\u1205\\u1206\\u1207\\u1208\\u1209\\u120A\\u120B\\u120C\\u120D\\u120E\\u120F\\u1210\\u1211\\u1212\\u1213\\u1214\\u1215\\u1216\\u1217\\u1218\\u1219\\u121A\\u121B\\u121C\\u121D\\u121E\\u121F\\u1220\\u1221\\u1222\\u1223\\u1224\\u1225\\u1226\\u1227\\u1228\\u1229\\u122A\\u122B\\u122C\\u122D\\u122E\\u122F\\u1230\\u1231\\u1232\\u1233\\u1234\\u1235\\u1236\\u1237\\u1238\\u1239\\u123A\\u123B\\u123C\\u123D\\u123E\\u123F\\u1240\\u1241\\u1242\\u1243\\u1244\\u1245\\u1246\\u1247\\u1248\\u124A\\u124B\\u124C\\u124D\\u1250\\u1251\\u1252\\u1253\\u1254\\u1255\\u1256\\u1258\\u125A\\u125B\\u125C\\u125D\\u1260\\u1261\\u1262\\u1263\\u1264\\u1265\\u1266\\u1267\\u1268\\u1269\\u126A\\u126B\\u126C\\u126D\\u126E\\u126F\\u1270\\u1271\\u1272\\u1273\\u1274\\u1275\\u1276\\u1277\\u1278\\u1279\\u127A\\u127B\\u127C\\u127D\\u127E\\u127F\\u1280\\u1281\\u1282\\u1283\\u1284\\u1285\\u1286\\u1287\\u1288\\u128A\\u128B\\u128C\\u128D\\u1290\\u1291\\u1292\\u1293\\u1294\\u1295\\u1296\\u1297\\u1298\\u1299\\u129A\\u129B\\u129C\\u129D\\u129E\\u129F\\u12A0\\u12A1\\u12A2\\u12A3\\u12A4\\u12A5\\u12A6\\u12A7\\u12A8\\u12A9\\u12AA\\u12AB\\u12AC\\u12AD\\u12AE\\u12AF\\u12B0\\u12B2\\u12B3\\u12B4\\u12B5\\u12B8\\u12B9\\u12BA\\u12BB\\u12BC\\u12BD\\u12BE\\u12C0\\u12C2\\u12C3\\u12C4\\u12C5\\u12C8\\u12C9\\u12CA\\u12CB\\u12CC\\u12CD\\u12CE\\u12CF\\u12D0\\u12D1\\u12D2\\u12D3\\u12D4\\u12D5\\u12D6\\u12D8\\u12D9\\u12DA\\u12DB\\u12DC\\u12DD\\u12DE\\u12DF\\u12E0\\u12E1\\u12E2\\u12E3\\u12E4\\u12E5\\u12E6\\u12E7\\u12E8\\u12E9\\u12EA\\u12EB\\u12EC\\u12ED\\u12EE\\u12EF\\u12F0\\u12F1\\u12F2\\u12F3\\u12F4\\u12F5\\u12F6\\u12F7\\u12F8\\u12F9\\u12FA\\u12FB\\u12FC\\u12FD\\u12FE\\u12FF\\u1300\\u1301\\u1302\\u1303\\u1304\\u1305\\u1306\\u1307\\u1308\\u1309\\u130A\\u130B\\u130C\\u130D\\u130E\\u130F\\u1310\\u1312\\u1313\\u1314\\u1315\\u1318\\u1319\\u131A\\u131B\\u131C\\u131D\\u131E\\u131F\\u1320\\u1321\\u1322\\u1323\\u1324\\u1325\\u1326\\u1327\\u1328\\u1329\\u132A\\u132B\\u132C\\u132D\\u132E\\u132F\\u1330\\u1331\\u1332\\u1333\\u1334\\u1335\\u1336\\u1337\\u1338\\u1339\\u133A\\u133B\\u133C\\u133D\\u133E\\u133F\\u1340\\u1341\\u1342\\u1343\\u1344\\u1345\\u1346\\u1347\\u1348\\u1349\\u134A\\u134B\\u134C\\u134D\\u134E\\u134F\\u1350\\u1351\\u1352\\u1353\\u1354\\u1355\\u1356\\u1357\\u1358\\u1359\\u135A\\u1380\\u1381\\u1382\\u1383\\u1384\\u1385\\u1386\\u1387\\u1388\\u1389\\u138A\\u138B\\u138C\\u138D\\u138E\\u138F\\u13A0\\u13A1\\u13A2\\u13A3\\u13A4\\u13A5\\u13A6\\u13A7\\u13A8\\u13A9\\u13AA\\u13AB\\u13AC\\u13AD\\u13AE\\u13AF\\u13B0\\u13B1\\u13B2\\u13B3\\u13B4\\u13B5\\u13B6\\u13B7\\u13B8\\u13B9\\u13BA\\u13BB\\u13BC\\u13BD\\u13BE\\u13BF\\u13C0\\u13C1\\u13C2\\u13C3\\u13C4\\u13C5\\u13C6\\u13C7\\u13C8\\u13C9\\u13CA\\u13CB\\u13CC\\u13CD\\u13CE\\u13CF\\u13D0\\u13D1\\u13D2\\u13D3\\u13D4\\u13D5\\u13D6\\u13D7\\u13D8\\u13D9\\u13DA\\u13DB\\u13DC\\u13DD\\u13DE\\u13DF\\u13E0\\u13E1\\u13E2\\u13E3\\u13E4\\u13E5\\u13E6\\u13E7\\u13E8\\u13E9\\u13EA\\u13EB\\u13EC\\u13ED\\u13EE\\u13EF\\u13F0\\u13F1\\u13F2\\u13F3\\u13F4\\u1401\\u1402\\u1403\\u1404\\u1405\\u1406\\u1407\\u1408\\u1409\\u140A\\u140B\\u140C\\u140D\\u140E\\u140F\\u1410\\u1411\\u1412\\u1413\\u1414\\u1415\\u1416\\u1417\\u1418\\u1419\\u141A\\u141B\\u141C\\u141D\\u141E\\u141F\\u1420\\u1421\\u1422\\u1423\\u1424\\u1425\\u1426\\u1427\\u1428\\u1429\\u142A\\u142B\\u142C\\u142D\\u142E\\u142F\\u1430\\u1431\\u1432\\u1433\\u1434\\u1435\\u1436\\u1437\\u1438\\u1439\\u143A\\u143B\\u143C\\u143D\\u143E\\u143F\\u1440\\u1441\\u1442\\u1443\\u1444\\u1445\\u1446\\u1447\\u1448\\u1449\\u144A\\u144B\\u144C\\u144D\\u144E\\u144F\\u1450\\u1451\\u1452\\u1453\\u1454\\u1455\\u1456\\u1457\\u1458\\u1459\\u145A\\u145B\\u145C\\u145D\\u145E\\u145F\\u1460\\u1461\\u1462\\u1463\\u1464\\u1465\\u1466\\u1467\\u1468\\u1469\\u146A\\u146B\\u146C\\u146D\\u146E\\u146F\\u1470\\u1471\\u1472\\u1473\\u1474\\u1475\\u1476\\u1477\\u1478\\u1479\\u147A\\u147B\\u147C\\u147D\\u147E\\u147F\\u1480\\u1481\\u1482\\u1483\\u1484\\u1485\\u1486\\u1487\\u1488\\u1489\\u148A\\u148B\\u148C\\u148D\\u148E\\u148F\\u1490\\u1491\\u1492\\u1493\\u1494\\u1495\\u1496\\u1497\\u1498\\u1499\\u149A\\u149B\\u149C\\u149D\\u149E\\u149F\\u14A0\\u14A1\\u14A2\\u14A3\\u14A4\\u14A5\\u14A6\\u14A7\\u14A8\\u14A9\\u14AA\\u14AB\\u14AC\\u14AD\\u14AE\\u14AF\\u14B0\\u14B1\\u14B2\\u14B3\\u14B4\\u14B5\\u14B6\\u14B7\\u14B8\\u14B9\\u14BA\\u14BB\\u14BC\\u14BD\\u14BE\\u14BF\\u14C0\\u14C1\\u14C2\\u14C3\\u14C4\\u14C5\\u14C6\\u14C7\\u14C8\\u14C9\\u14CA\\u14CB\\u14CC\\u14CD\\u14CE\\u14CF\\u14D0\\u14D1\\u14D2\\u14D3\\u14D4\\u14D5\\u14D6\\u14D7\\u14D8\\u14D9\\u14DA\\u14DB\\u14DC\\u14DD\\u14DE\\u14DF\\u14E0\\u14E1\\u14E2\\u14E3\\u14E4\\u14E5\\u14E6\\u14E7\\u14E8\\u14E9\\u14EA\\u14EB\\u14EC\\u14ED\\u14EE\\u14EF\\u14F0\\u14F1\\u14F2\\u14F3\\u14F4\\u14F5\\u14F6\\u14F7\\u14F8\\u14F9\\u14FA\\u14FB\\u14FC\\u14FD\\u14FE\\u14FF\\u1500\\u1501\\u1502\\u1503\\u1504\\u1505\\u1506\\u1507\\u1508\\u1509\\u150A\\u150B\\u150C\\u150D\\u150E\\u150F\\u1510\\u1511\\u1512\\u1513\\u1514\\u1515\\u1516\\u1517\\u1518\\u1519\\u151A\\u151B\\u151C\\u151D\\u151E\\u151F\\u1520\\u1521\\u1522\\u1523\\u1524\\u1525\\u1526\\u1527\\u1528\\u1529\\u152A\\u152B\\u152C\\u152D\\u152E\\u152F\\u1530\\u1531\\u1532\\u1533\\u1534\\u1535\\u1536\\u1537\\u1538\\u1539\\u153A\\u153B\\u153C\\u153D\\u153E\\u153F\\u1540\\u1541\\u1542\\u1543\\u1544\\u1545\\u1546\\u1547\\u1548\\u1549\\u154A\\u154B\\u154C\\u154D\\u154E\\u154F\\u1550\\u1551\\u1552\\u1553\\u1554\\u1555\\u1556\\u1557\\u1558\\u1559\\u155A\\u155B\\u155C\\u155D\\u155E\\u155F\\u1560\\u1561\\u1562\\u1563\\u1564\\u1565\\u1566\\u1567\\u1568\\u1569\\u156A\\u156B\\u156C\\u156D\\u156E\\u156F\\u1570\\u1571\\u1572\\u1573\\u1574\\u1575\\u1576\\u1577\\u1578\\u1579\\u157A\\u157B\\u157C\\u157D\\u157E\\u157F\\u1580\\u1581\\u1582\\u1583\\u1584\\u1585\\u1586\\u1587\\u1588\\u1589\\u158A\\u158B\\u158C\\u158D\\u158E\\u158F\\u1590\\u1591\\u1592\\u1593\\u1594\\u1595\\u1596\\u1597\\u1598\\u1599\\u159A\\u159B\\u159C\\u159D\\u159E\\u159F\\u15A0\\u15A1\\u15A2\\u15A3\\u15A4\\u15A5\\u15A6\\u15A7\\u15A8\\u15A9\\u15AA\\u15AB\\u15AC\\u15AD\\u15AE\\u15AF\\u15B0\\u15B1\\u15B2\\u15B3\\u15B4\\u15B5\\u15B6\\u15B7\\u15B8\\u15B9\\u15BA\\u15BB\\u15BC\\u15BD\\u15BE\\u15BF\\u15C0\\u15C1\\u15C2\\u15C3\\u15C4\\u15C5\\u15C6\\u15C7\\u15C8\\u15C9\\u15CA\\u15CB\\u15CC\\u15CD\\u15CE\\u15CF\\u15D0\\u15D1\\u15D2\\u15D3\\u15D4\\u15D5\\u15D6\\u15D7\\u15D8\\u15D9\\u15DA\\u15DB\\u15DC\\u15DD\\u15DE\\u15DF\\u15E0\\u15E1\\u15E2\\u15E3\\u15E4\\u15E5\\u15E6\\u15E7\\u15E8\\u15E9\\u15EA\\u15EB\\u15EC\\u15ED\\u15EE\\u15EF\\u15F0\\u15F1\\u15F2\\u15F3\\u15F4\\u15F5\\u15F6\\u15F7\\u15F8\\u15F9\\u15FA\\u15FB\\u15FC\\u15FD\\u15FE\\u15FF\\u1600\\u1601\\u1602\\u1603\\u1604\\u1605\\u1606\\u1607\\u1608\\u1609\\u160A\\u160B\\u160C\\u160D\\u160E\\u160F\\u1610\\u1611\\u1612\\u1613\\u1614\\u1615\\u1616\\u1617\\u1618\\u1619\\u161A\\u161B\\u161C\\u161D\\u161E\\u161F\\u1620\\u1621\\u1622\\u1623\\u1624\\u1625\\u1626\\u1627\\u1628\\u1629\\u162A\\u162B\\u162C\\u162D\\u162E\\u162F\\u1630\\u1631\\u1632\\u1633\\u1634\\u1635\\u1636\\u1637\\u1638\\u1639\\u163A\\u163B\\u163C\\u163D\\u163E\\u163F\\u1640\\u1641\\u1642\\u1643\\u1644\\u1645\\u1646\\u1647\\u1648\\u1649\\u164A\\u164B\\u164C\\u164D\\u164E\\u164F\\u1650\\u1651\\u1652\\u1653\\u1654\\u1655\\u1656\\u1657\\u1658\\u1659\\u165A\\u165B\\u165C\\u165D\\u165E\\u165F\\u1660\\u1661\\u1662\\u1663\\u1664\\u1665\\u1666\\u1667\\u1668\\u1669\\u166A\\u166B\\u166C\\u166F\\u1670\\u1671\\u1672\\u1673\\u1674\\u1675\\u1676\\u1681\\u1682\\u1683\\u1684\\u1685\\u1686\\u1687\\u1688\\u1689\\u168A\\u168B\\u168C\\u168D\\u168E\\u168F\\u1690\\u1691\\u1692\\u1693\\u1694\\u1695\\u1696\\u1697\\u1698\\u1699\\u169A\\u16A0\\u16A1\\u16A2\\u16A3\\u16A4\\u16A5\\u16A6\\u16A7\\u16A8\\u16A9\\u16AA\\u16AB\\u16AC\\u16AD\\u16AE\\u16AF\\u16B0\\u16B1\\u16B2\\u16B3\\u16B4\\u16B5\\u16B6\\u16B7\\u16B8\\u16B9\\u16BA\\u16BB\\u16BC\\u16BD\\u16BE\\u16BF\\u16C0\\u16C1\\u16C2\\u16C3\\u16C4\\u16C5\\u16C6\\u16C7\\u16C8\\u16C9\\u16CA\\u16CB\\u16CC\\u16CD\\u16CE\\u16CF\\u16D0\\u16D1\\u16D2\\u16D3\\u16D4\\u16D5\\u16D6\\u16D7\\u16D8\\u16D9\\u16DA\\u16DB\\u16DC\\u16DD\\u16DE\\u16DF\\u16E0\\u16E1\\u16E2\\u16E3\\u16E4\\u16E5\\u16E6\\u16E7\\u16E8\\u16E9\\u16EA\\u1700\\u1701\\u1702\\u1703\\u1704\\u1705\\u1706\\u1707\\u1708\\u1709\\u170A\\u170B\\u170C\\u170E\\u170F\\u1710\\u1711\\u1720\\u1721\\u1722\\u1723\\u1724\\u1725\\u1726\\u1727\\u1728\\u1729\\u172A\\u172B\\u172C\\u172D\\u172E\\u172F\\u1730\\u1731\\u1740\\u1741\\u1742\\u1743\\u1744\\u1745\\u1746\\u1747\\u1748\\u1749\\u174A\\u174B\\u174C\\u174D\\u174E\\u174F\\u1750\\u1751\\u1760\\u1761\\u1762\\u1763\\u1764\\u1765\\u1766\\u1767\\u1768\\u1769\\u176A\\u176B\\u176C\\u176E\\u176F\\u1770\\u1780\\u1781\\u1782\\u1783\\u1784\\u1785\\u1786\\u1787\\u1788\\u1789\\u178A\\u178B\\u178C\\u178D\\u178E\\u178F\\u1790\\u1791\\u1792\\u1793\\u1794\\u1795\\u1796\\u1797\\u1798\\u1799\\u179A\\u179B\\u179C\\u179D\\u179E\\u179F\\u17A0\\u17A1\\u17A2\\u17A3\\u17A4\\u17A5\\u17A6\\u17A7\\u17A8\\u17A9\\u17AA\\u17AB\\u17AC\\u17AD\\u17AE\\u17AF\\u17B0\\u17B1\\u17B2\\u17B3\\u17DC\\u1820\\u1821\\u1822\\u1823\\u1824\\u1825\\u1826\\u1827\\u1828\\u1829\\u182A\\u182B\\u182C\\u182D\\u182E\\u182F\\u1830\\u1831\\u1832\\u1833\\u1834\\u1835\\u1836\\u1837\\u1838\\u1839\\u183A\\u183B\\u183C\\u183D\\u183E\\u183F\\u1840\\u1841\\u1842\\u1844\\u1845\\u1846\\u1847\\u1848\\u1849\\u184A\\u184B\\u184C\\u184D\\u184E\\u184F\\u1850\\u1851\\u1852\\u1853\\u1854\\u1855\\u1856\\u1857\\u1858\\u1859\\u185A\\u185B\\u185C\\u185D\\u185E\\u185F\\u1860\\u1861\\u1862\\u1863\\u1864\\u1865\\u1866\\u1867\\u1868\\u1869\\u186A\\u186B\\u186C\\u186D\\u186E\\u186F\\u1870\\u1871\\u1872\\u1873\\u1874\\u1875\\u1876\\u1877\\u1880\\u1881\\u1882\\u1883\\u1884\\u1885\\u1886\\u1887\\u1888\\u1889\\u188A\\u188B\\u188C\\u188D\\u188E\\u188F\\u1890\\u1891\\u1892\\u1893\\u1894\\u1895\\u1896\\u1897\\u1898\\u1899\\u189A\\u189B\\u189C\\u189D\\u189E\\u189F\\u18A0\\u18A1\\u18A2\\u18A3\\u18A4\\u18A5\\u18A6\\u18A7\\u18A8\\u18AA\\u1900\\u1901\\u1902\\u1903\\u1904\\u1905\\u1906\\u1907\\u1908\\u1909\\u190A\\u190B\\u190C\\u190D\\u190E\\u190F\\u1910\\u1911\\u1912\\u1913\\u1914\\u1915\\u1916\\u1917\\u1918\\u1919\\u191A\\u191B\\u191C\\u1950\\u1951\\u1952\\u1953\\u1954\\u1955\\u1956\\u1957\\u1958\\u1959\\u195A\\u195B\\u195C\\u195D\\u195E\\u195F\\u1960\\u1961\\u1962\\u1963\\u1964\\u1965\\u1966\\u1967\\u1968\\u1969\\u196A\\u196B\\u196C\\u196D\\u1970\\u1971\\u1972\\u1973\\u1974\\u1980\\u1981\\u1982\\u1983\\u1984\\u1985\\u1986\\u1987\\u1988\\u1989\\u198A\\u198B\\u198C\\u198D\\u198E\\u198F\\u1990\\u1991\\u1992\\u1993\\u1994\\u1995\\u1996\\u1997\\u1998\\u1999\\u199A\\u199B\\u199C\\u199D\\u199E\\u199F\\u19A0\\u19A1\\u19A2\\u19A3\\u19A4\\u19A5\\u19A6\\u19A7\\u19A8\\u19A9\\u19C1\\u19C2\\u19C3\\u19C4\\u19C5\\u19C6\\u19C7\\u1A00\\u1A01\\u1A02\\u1A03\\u1A04\\u1A05\\u1A06\\u1A07\\u1A08\\u1A09\\u1A0A\\u1A0B\\u1A0C\\u1A0D\\u1A0E\\u1A0F\\u1A10\\u1A11\\u1A12\\u1A13\\u1A14\\u1A15\\u1A16\\u1B05\\u1B06\\u1B07\\u1B08\\u1B09\\u1B0A\\u1B0B\\u1B0C\\u1B0D\\u1B0E\\u1B0F\\u1B10\\u1B11\\u1B12\\u1B13\\u1B14\\u1B15\\u1B16\\u1B17\\u1B18\\u1B19\\u1B1A\\u1B1B\\u1B1C\\u1B1D\\u1B1E\\u1B1F\\u1B20\\u1B21\\u1B22\\u1B23\\u1B24\\u1B25\\u1B26\\u1B27\\u1B28\\u1B29\\u1B2A\\u1B2B\\u1B2C\\u1B2D\\u1B2E\\u1B2F\\u1B30\\u1B31\\u1B32\\u1B33\\u1B45\\u1B46\\u1B47\\u1B48\\u1B49\\u1B4A\\u1B4B\\u1B83\\u1B84\\u1B85\\u1B86\\u1B87\\u1B88\\u1B89\\u1B8A\\u1B8B\\u1B8C\\u1B8D\\u1B8E\\u1B8F\\u1B90\\u1B91\\u1B92\\u1B93\\u1B94\\u1B95\\u1B96\\u1B97\\u1B98\\u1B99\\u1B9A\\u1B9B\\u1B9C\\u1B9D\\u1B9E\\u1B9F\\u1BA0\\u1BAE\\u1BAF\\u1C00\\u1C01\\u1C02\\u1C03\\u1C04\\u1C05\\u1C06\\u1C07\\u1C08\\u1C09\\u1C0A\\u1C0B\\u1C0C\\u1C0D\\u1C0E\\u1C0F\\u1C10\\u1C11\\u1C12\\u1C13\\u1C14\\u1C15\\u1C16\\u1C17\\u1C18\\u1C19\\u1C1A\\u1C1B\\u1C1C\\u1C1D\\u1C1E\\u1C1F\\u1C20\\u1C21\\u1C22\\u1C23\\u1C4D\\u1C4E\\u1C4F\\u1C5A\\u1C5B\\u1C5C\\u1C5D\\u1C5E\\u1C5F\\u1C60\\u1C61\\u1C62\\u1C63\\u1C64\\u1C65\\u1C66\\u1C67\\u1C68\\u1C69\\u1C6A\\u1C6B\\u1C6C\\u1C6D\\u1C6E\\u1C6F\\u1C70\\u1C71\\u1C72\\u1C73\\u1C74\\u1C75\\u1C76\\u1C77\\u2135\\u2136\\u2137\\u2138\\u2D30\\u2D31\\u2D32\\u2D33\\u2D34\\u2D35\\u2D36\\u2D37\\u2D38\\u2D39\\u2D3A\\u2D3B\\u2D3C\\u2D3D\\u2D3E\\u2D3F\\u2D40\\u2D41\\u2D42\\u2D43\\u2D44\\u2D45\\u2D46\\u2D47\\u2D48\\u2D49\\u2D4A\\u2D4B\\u2D4C\\u2D4D\\u2D4E\\u2D4F\\u2D50\\u2D51\\u2D52\\u2D53\\u2D54\\u2D55\\u2D56\\u2D57\\u2D58\\u2D59\\u2D5A\\u2D5B\\u2D5C\\u2D5D\\u2D5E\\u2D5F\\u2D60\\u2D61\\u2D62\\u2D63\\u2D64\\u2D65\\u2D80\\u2D81\\u2D82\\u2D83\\u2D84\\u2D85\\u2D86\\u2D87\\u2D88\\u2D89\\u2D8A\\u2D8B\\u2D8C\\u2D8D\\u2D8E\\u2D8F\\u2D90\\u2D91\\u2D92\\u2D93\\u2D94\\u2D95\\u2D96\\u2DA0\\u2DA1\\u2DA2\\u2DA3\\u2DA4\\u2DA5\\u2DA6\\u2DA8\\u2DA9\\u2DAA\\u2DAB\\u2DAC\\u2DAD\\u2DAE\\u2DB0\\u2DB1\\u2DB2\\u2DB3\\u2DB4\\u2DB5\\u2DB6\\u2DB8\\u2DB9\\u2DBA\\u2DBB\\u2DBC\\u2DBD\\u2DBE\\u2DC0\\u2DC1\\u2DC2\\u2DC3\\u2DC4\\u2DC5\\u2DC6\\u2DC8\\u2DC9\\u2DCA\\u2DCB\\u2DCC\\u2DCD\\u2DCE\\u2DD0\\u2DD1\\u2DD2\\u2DD3\\u2DD4\\u2DD5\\u2DD6\\u2DD8\\u2DD9\\u2DDA\\u2DDB\\u2DDC\\u2DDD\\u2DDE\\u3006\\u303C\\u3041\\u3042\\u3043\\u3044\\u3045\\u3046\\u3047\\u3048\\u3049\\u304A\\u304B\\u304C\\u304D\\u304E\\u304F\\u3050\\u3051\\u3052\\u3053\\u3054\\u3055\\u3056\\u3057\\u3058\\u3059\\u305A\\u305B\\u305C\\u305D\\u305E\\u305F\\u3060\\u3061\\u3062\\u3063\\u3064\\u3065\\u3066\\u3067\\u3068\\u3069\\u306A\\u306B\\u306C\\u306D\\u306E\\u306F\\u3070\\u3071\\u3072\\u3073\\u3074\\u3075\\u3076\\u3077\\u3078\\u3079\\u307A\\u307B\\u307C\\u307D\\u307E\\u307F\\u3080\\u3081\\u3082\\u3083\\u3084\\u3085\\u3086\\u3087\\u3088\\u3089\\u308A\\u308B\\u308C\\u308D\\u308E\\u308F\\u3090\\u3091\\u3092\\u3093\\u3094\\u3095\\u3096\\u309F\\u30A1\\u30A2\\u30A3\\u30A4\\u30A5\\u30A6\\u30A7\\u30A8\\u30A9\\u30AA\\u30AB\\u30AC\\u30AD\\u30AE\\u30AF\\u30B0\\u30B1\\u30B2\\u30B3\\u30B4\\u30B5\\u30B6\\u30B7\\u30B8\\u30B9\\u30BA\\u30BB\\u30BC\\u30BD\\u30BE\\u30BF\\u30C0\\u30C1\\u30C2\\u30C3\\u30C4\\u30C5\\u30C6\\u30C7\\u30C8\\u30C9\\u30CA\\u30CB\\u30CC\\u30CD\\u30CE\\u30CF\\u30D0\\u30D1\\u30D2\\u30D3\\u30D4\\u30D5\\u30D6\\u30D7\\u30D8\\u30D9\\u30DA\\u30DB\\u30DC\\u30DD\\u30DE\\u30DF\\u30E0\\u30E1\\u30E2\\u30E3\\u30E4\\u30E5\\u30E6\\u30E7\\u30E8\\u30E9\\u30EA\\u30EB\\u30EC\\u30ED\\u30EE\\u30EF\\u30F0\\u30F1\\u30F2\\u30F3\\u30F4\\u30F5\\u30F6\\u30F7\\u30F8\\u30F9\\u30FA\\u30FF\\u3105\\u3106\\u3107\\u3108\\u3109\\u310A\\u310B\\u310C\\u310D\\u310E\\u310F\\u3110\\u3111\\u3112\\u3113\\u3114\\u3115\\u3116\\u3117\\u3118\\u3119\\u311A\\u311B\\u311C\\u311D\\u311E\\u311F\\u3120\\u3121\\u3122\\u3123\\u3124\\u3125\\u3126\\u3127\\u3128\\u3129\\u312A\\u312B\\u312C\\u312D\\u3131\\u3132\\u3133\\u3134\\u3135\\u3136\\u3137\\u3138\\u3139\\u313A\\u313B\\u313C\\u313D\\u313E\\u313F\\u3140\\u3141\\u3142\\u3143\\u3144\\u3145\\u3146\\u3147\\u3148\\u3149\\u314A\\u314B\\u314C\\u314D\\u314E\\u314F\\u3150\\u3151\\u3152\\u3153\\u3154\\u3155\\u3156\\u3157\\u3158\\u3159\\u315A\\u315B\\u315C\\u315D\\u315E\\u315F\\u3160\\u3161\\u3162\\u3163\\u3164\\u3165\\u3166\\u3167\\u3168\\u3169\\u316A\\u316B\\u316C\\u316D\\u316E\\u316F\\u3170\\u3171\\u3172\\u3173\\u3174\\u3175\\u3176\\u3177\\u3178\\u3179\\u317A\\u317B\\u317C\\u317D\\u317E\\u317F\\u3180\\u3181\\u3182\\u3183\\u3184\\u3185\\u3186\\u3187\\u3188\\u3189\\u318A\\u318B\\u318C\\u318D\\u318E\\u31A0\\u31A1\\u31A2\\u31A3\\u31A4\\u31A5\\u31A6\\u31A7\\u31A8\\u31A9\\u31AA\\u31AB\\u31AC\\u31AD\\u31AE\\u31AF\\u31B0\\u31B1\\u31B2\\u31B3\\u31B4\\u31B5\\u31B6\\u31B7\\u31F0\\u31F1\\u31F2\\u31F3\\u31F4\\u31F5\\u31F6\\u31F7\\u31F8\\u31F9\\u31FA\\u31FB\\u31FC\\u31FD\\u31FE\\u31FF\\u3400\\u4DB5\\u4E00\\u9FC3\\uA000\\uA001\\uA002\\uA003\\uA004\\uA005\\uA006\\uA007\\uA008\\uA009\\uA00A\\uA00B\\uA00C\\uA00D\\uA00E\\uA00F\\uA010\\uA011\\uA012\\uA013\\uA014\\uA016\\uA017\\uA018\\uA019\\uA01A\\uA01B\\uA01C\\uA01D\\uA01E\\uA01F\\uA020\\uA021\\uA022\\uA023\\uA024\\uA025\\uA026\\uA027\\uA028\\uA029\\uA02A\\uA02B\\uA02C\\uA02D\\uA02E\\uA02F\\uA030\\uA031\\uA032\\uA033\\uA034\\uA035\\uA036\\uA037\\uA038\\uA039\\uA03A\\uA03B\\uA03C\\uA03D\\uA03E\\uA03F\\uA040\\uA041\\uA042\\uA043\\uA044\\uA045\\uA046\\uA047\\uA048\\uA049\\uA04A\\uA04B\\uA04C\\uA04D\\uA04E\\uA04F\\uA050\\uA051\\uA052\\uA053\\uA054\\uA055\\uA056\\uA057\\uA058\\uA059\\uA05A\\uA05B\\uA05C\\uA05D\\uA05E\\uA05F\\uA060\\uA061\\uA062\\uA063\\uA064\\uA065\\uA066\\uA067\\uA068\\uA069\\uA06A\\uA06B\\uA06C\\uA06D\\uA06E\\uA06F\\uA070\\uA071\\uA072\\uA073\\uA074\\uA075\\uA076\\uA077\\uA078\\uA079\\uA07A\\uA07B\\uA07C\\uA07D\\uA07E\\uA07F\\uA080\\uA081\\uA082\\uA083\\uA084\\uA085\\uA086\\uA087\\uA088\\uA089\\uA08A\\uA08B\\uA08C\\uA08D\\uA08E\\uA08F\\uA090\\uA091\\uA092\\uA093\\uA094\\uA095\\uA096\\uA097\\uA098\\uA099\\uA09A\\uA09B\\uA09C\\uA09D\\uA09E\\uA09F\\uA0A0\\uA0A1\\uA0A2\\uA0A3\\uA0A4\\uA0A5\\uA0A6\\uA0A7\\uA0A8\\uA0A9\\uA0AA\\uA0AB\\uA0AC\\uA0AD\\uA0AE\\uA0AF\\uA0B0\\uA0B1\\uA0B2\\uA0B3\\uA0B4\\uA0B5\\uA0B6\\uA0B7\\uA0B8\\uA0B9\\uA0BA\\uA0BB\\uA0BC\\uA0BD\\uA0BE\\uA0BF\\uA0C0\\uA0C1\\uA0C2\\uA0C3\\uA0C4\\uA0C5\\uA0C6\\uA0C7\\uA0C8\\uA0C9\\uA0CA\\uA0CB\\uA0CC\\uA0CD\\uA0CE\\uA0CF\\uA0D0\\uA0D1\\uA0D2\\uA0D3\\uA0D4\\uA0D5\\uA0D6\\uA0D7\\uA0D8\\uA0D9\\uA0DA\\uA0DB\\uA0DC\\uA0DD\\uA0DE\\uA0DF\\uA0E0\\uA0E1\\uA0E2\\uA0E3\\uA0E4\\uA0E5\\uA0E6\\uA0E7\\uA0E8\\uA0E9\\uA0EA\\uA0EB\\uA0EC\\uA0ED\\uA0EE\\uA0EF\\uA0F0\\uA0F1\\uA0F2\\uA0F3\\uA0F4\\uA0F5\\uA0F6\\uA0F7\\uA0F8\\uA0F9\\uA0FA\\uA0FB\\uA0FC\\uA0FD\\uA0FE\\uA0FF\\uA100\\uA101\\uA102\\uA103\\uA104\\uA105\\uA106\\uA107\\uA108\\uA109\\uA10A\\uA10B\\uA10C\\uA10D\\uA10E\\uA10F\\uA110\\uA111\\uA112\\uA113\\uA114\\uA115\\uA116\\uA117\\uA118\\uA119\\uA11A\\uA11B\\uA11C\\uA11D\\uA11E\\uA11F\\uA120\\uA121\\uA122\\uA123\\uA124\\uA125\\uA126\\uA127\\uA128\\uA129\\uA12A\\uA12B\\uA12C\\uA12D\\uA12E\\uA12F\\uA130\\uA131\\uA132\\uA133\\uA134\\uA135\\uA136\\uA137\\uA138\\uA139\\uA13A\\uA13B\\uA13C\\uA13D\\uA13E\\uA13F\\uA140\\uA141\\uA142\\uA143\\uA144\\uA145\\uA146\\uA147\\uA148\\uA149\\uA14A\\uA14B\\uA14C\\uA14D\\uA14E\\uA14F\\uA150\\uA151\\uA152\\uA153\\uA154\\uA155\\uA156\\uA157\\uA158\\uA159\\uA15A\\uA15B\\uA15C\\uA15D\\uA15E\\uA15F\\uA160\\uA161\\uA162\\uA163\\uA164\\uA165\\uA166\\uA167\\uA168\\uA169\\uA16A\\uA16B\\uA16C\\uA16D\\uA16E\\uA16F\\uA170\\uA171\\uA172\\uA173\\uA174\\uA175\\uA176\\uA177\\uA178\\uA179\\uA17A\\uA17B\\uA17C\\uA17D\\uA17E\\uA17F\\uA180\\uA181\\uA182\\uA183\\uA184\\uA185\\uA186\\uA187\\uA188\\uA189\\uA18A\\uA18B\\uA18C\\uA18D\\uA18E\\uA18F\\uA190\\uA191\\uA192\\uA193\\uA194\\uA195\\uA196\\uA197\\uA198\\uA199\\uA19A\\uA19B\\uA19C\\uA19D\\uA19E\\uA19F\\uA1A0\\uA1A1\\uA1A2\\uA1A3\\uA1A4\\uA1A5\\uA1A6\\uA1A7\\uA1A8\\uA1A9\\uA1AA\\uA1AB\\uA1AC\\uA1AD\\uA1AE\\uA1AF\\uA1B0\\uA1B1\\uA1B2\\uA1B3\\uA1B4\\uA1B5\\uA1B6\\uA1B7\\uA1B8\\uA1B9\\uA1BA\\uA1BB\\uA1BC\\uA1BD\\uA1BE\\uA1BF\\uA1C0\\uA1C1\\uA1C2\\uA1C3\\uA1C4\\uA1C5\\uA1C6\\uA1C7\\uA1C8\\uA1C9\\uA1CA\\uA1CB\\uA1CC\\uA1CD\\uA1CE\\uA1CF\\uA1D0\\uA1D1\\uA1D2\\uA1D3\\uA1D4\\uA1D5\\uA1D6\\uA1D7\\uA1D8\\uA1D9\\uA1DA\\uA1DB\\uA1DC\\uA1DD\\uA1DE\\uA1DF\\uA1E0\\uA1E1\\uA1E2\\uA1E3\\uA1E4\\uA1E5\\uA1E6\\uA1E7\\uA1E8\\uA1E9\\uA1EA\\uA1EB\\uA1EC\\uA1ED\\uA1EE\\uA1EF\\uA1F0\\uA1F1\\uA1F2\\uA1F3\\uA1F4\\uA1F5\\uA1F6\\uA1F7\\uA1F8\\uA1F9\\uA1FA\\uA1FB\\uA1FC\\uA1FD\\uA1FE\\uA1FF\\uA200\\uA201\\uA202\\uA203\\uA204\\uA205\\uA206\\uA207\\uA208\\uA209\\uA20A\\uA20B\\uA20C\\uA20D\\uA20E\\uA20F\\uA210\\uA211\\uA212\\uA213\\uA214\\uA215\\uA216\\uA217\\uA218\\uA219\\uA21A\\uA21B\\uA21C\\uA21D\\uA21E\\uA21F\\uA220\\uA221\\uA222\\uA223\\uA224\\uA225\\uA226\\uA227\\uA228\\uA229\\uA22A\\uA22B\\uA22C\\uA22D\\uA22E\\uA22F\\uA230\\uA231\\uA232\\uA233\\uA234\\uA235\\uA236\\uA237\\uA238\\uA239\\uA23A\\uA23B\\uA23C\\uA23D\\uA23E\\uA23F\\uA240\\uA241\\uA242\\uA243\\uA244\\uA245\\uA246\\uA247\\uA248\\uA249\\uA24A\\uA24B\\uA24C\\uA24D\\uA24E\\uA24F\\uA250\\uA251\\uA252\\uA253\\uA254\\uA255\\uA256\\uA257\\uA258\\uA259\\uA25A\\uA25B\\uA25C\\uA25D\\uA25E\\uA25F\\uA260\\uA261\\uA262\\uA263\\uA264\\uA265\\uA266\\uA267\\uA268\\uA269\\uA26A\\uA26B\\uA26C\\uA26D\\uA26E\\uA26F\\uA270\\uA271\\uA272\\uA273\\uA274\\uA275\\uA276\\uA277\\uA278\\uA279\\uA27A\\uA27B\\uA27C\\uA27D\\uA27E\\uA27F\\uA280\\uA281\\uA282\\uA283\\uA284\\uA285\\uA286\\uA287\\uA288\\uA289\\uA28A\\uA28B\\uA28C\\uA28D\\uA28E\\uA28F\\uA290\\uA291\\uA292\\uA293\\uA294\\uA295\\uA296\\uA297\\uA298\\uA299\\uA29A\\uA29B\\uA29C\\uA29D\\uA29E\\uA29F\\uA2A0\\uA2A1\\uA2A2\\uA2A3\\uA2A4\\uA2A5\\uA2A6\\uA2A7\\uA2A8\\uA2A9\\uA2AA\\uA2AB\\uA2AC\\uA2AD\\uA2AE\\uA2AF\\uA2B0\\uA2B1\\uA2B2\\uA2B3\\uA2B4\\uA2B5\\uA2B6\\uA2B7\\uA2B8\\uA2B9\\uA2BA\\uA2BB\\uA2BC\\uA2BD\\uA2BE\\uA2BF\\uA2C0\\uA2C1\\uA2C2\\uA2C3\\uA2C4\\uA2C5\\uA2C6\\uA2C7\\uA2C8\\uA2C9\\uA2CA\\uA2CB\\uA2CC\\uA2CD\\uA2CE\\uA2CF\\uA2D0\\uA2D1\\uA2D2\\uA2D3\\uA2D4\\uA2D5\\uA2D6\\uA2D7\\uA2D8\\uA2D9\\uA2DA\\uA2DB\\uA2DC\\uA2DD\\uA2DE\\uA2DF\\uA2E0\\uA2E1\\uA2E2\\uA2E3\\uA2E4\\uA2E5\\uA2E6\\uA2E7\\uA2E8\\uA2E9\\uA2EA\\uA2EB\\uA2EC\\uA2ED\\uA2EE\\uA2EF\\uA2F0\\uA2F1\\uA2F2\\uA2F3\\uA2F4\\uA2F5\\uA2F6\\uA2F7\\uA2F8\\uA2F9\\uA2FA\\uA2FB\\uA2FC\\uA2FD\\uA2FE\\uA2FF\\uA300\\uA301\\uA302\\uA303\\uA304\\uA305\\uA306\\uA307\\uA308\\uA309\\uA30A\\uA30B\\uA30C\\uA30D\\uA30E\\uA30F\\uA310\\uA311\\uA312\\uA313\\uA314\\uA315\\uA316\\uA317\\uA318\\uA319\\uA31A\\uA31B\\uA31C\\uA31D\\uA31E\\uA31F\\uA320\\uA321\\uA322\\uA323\\uA324\\uA325\\uA326\\uA327\\uA328\\uA329\\uA32A\\uA32B\\uA32C\\uA32D\\uA32E\\uA32F\\uA330\\uA331\\uA332\\uA333\\uA334\\uA335\\uA336\\uA337\\uA338\\uA339\\uA33A\\uA33B\\uA33C\\uA33D\\uA33E\\uA33F\\uA340\\uA341\\uA342\\uA343\\uA344\\uA345\\uA346\\uA347\\uA348\\uA349\\uA34A\\uA34B\\uA34C\\uA34D\\uA34E\\uA34F\\uA350\\uA351\\uA352\\uA353\\uA354\\uA355\\uA356\\uA357\\uA358\\uA359\\uA35A\\uA35B\\uA35C\\uA35D\\uA35E\\uA35F\\uA360\\uA361\\uA362\\uA363\\uA364\\uA365\\uA366\\uA367\\uA368\\uA369\\uA36A\\uA36B\\uA36C\\uA36D\\uA36E\\uA36F\\uA370\\uA371\\uA372\\uA373\\uA374\\uA375\\uA376\\uA377\\uA378\\uA379\\uA37A\\uA37B\\uA37C\\uA37D\\uA37E\\uA37F\\uA380\\uA381\\uA382\\uA383\\uA384\\uA385\\uA386\\uA387\\uA388\\uA389\\uA38A\\uA38B\\uA38C\\uA38D\\uA38E\\uA38F\\uA390\\uA391\\uA392\\uA393\\uA394\\uA395\\uA396\\uA397\\uA398\\uA399\\uA39A\\uA39B\\uA39C\\uA39D\\uA39E\\uA39F\\uA3A0\\uA3A1\\uA3A2\\uA3A3\\uA3A4\\uA3A5\\uA3A6\\uA3A7\\uA3A8\\uA3A9\\uA3AA\\uA3AB\\uA3AC\\uA3AD\\uA3AE\\uA3AF\\uA3B0\\uA3B1\\uA3B2\\uA3B3\\uA3B4\\uA3B5\\uA3B6\\uA3B7\\uA3B8\\uA3B9\\uA3BA\\uA3BB\\uA3BC\\uA3BD\\uA3BE\\uA3BF\\uA3C0\\uA3C1\\uA3C2\\uA3C3\\uA3C4\\uA3C5\\uA3C6\\uA3C7\\uA3C8\\uA3C9\\uA3CA\\uA3CB\\uA3CC\\uA3CD\\uA3CE\\uA3CF\\uA3D0\\uA3D1\\uA3D2\\uA3D3\\uA3D4\\uA3D5\\uA3D6\\uA3D7\\uA3D8\\uA3D9\\uA3DA\\uA3DB\\uA3DC\\uA3DD\\uA3DE\\uA3DF\\uA3E0\\uA3E1\\uA3E2\\uA3E3\\uA3E4\\uA3E5\\uA3E6\\uA3E7\\uA3E8\\uA3E9\\uA3EA\\uA3EB\\uA3EC\\uA3ED\\uA3EE\\uA3EF\\uA3F0\\uA3F1\\uA3F2\\uA3F3\\uA3F4\\uA3F5\\uA3F6\\uA3F7\\uA3F8\\uA3F9\\uA3FA\\uA3FB\\uA3FC\\uA3FD\\uA3FE\\uA3FF\\uA400\\uA401\\uA402\\uA403\\uA404\\uA405\\uA406\\uA407\\uA408\\uA409\\uA40A\\uA40B\\uA40C\\uA40D\\uA40E\\uA40F\\uA410\\uA411\\uA412\\uA413\\uA414\\uA415\\uA416\\uA417\\uA418\\uA419\\uA41A\\uA41B\\uA41C\\uA41D\\uA41E\\uA41F\\uA420\\uA421\\uA422\\uA423\\uA424\\uA425\\uA426\\uA427\\uA428\\uA429\\uA42A\\uA42B\\uA42C\\uA42D\\uA42E\\uA42F\\uA430\\uA431\\uA432\\uA433\\uA434\\uA435\\uA436\\uA437\\uA438\\uA439\\uA43A\\uA43B\\uA43C\\uA43D\\uA43E\\uA43F\\uA440\\uA441\\uA442\\uA443\\uA444\\uA445\\uA446\\uA447\\uA448\\uA449\\uA44A\\uA44B\\uA44C\\uA44D\\uA44E\\uA44F\\uA450\\uA451\\uA452\\uA453\\uA454\\uA455\\uA456\\uA457\\uA458\\uA459\\uA45A\\uA45B\\uA45C\\uA45D\\uA45E\\uA45F\\uA460\\uA461\\uA462\\uA463\\uA464\\uA465\\uA466\\uA467\\uA468\\uA469\\uA46A\\uA46B\\uA46C\\uA46D\\uA46E\\uA46F\\uA470\\uA471\\uA472\\uA473\\uA474\\uA475\\uA476\\uA477\\uA478\\uA479\\uA47A\\uA47B\\uA47C\\uA47D\\uA47E\\uA47F\\uA480\\uA481\\uA482\\uA483\\uA484\\uA485\\uA486\\uA487\\uA488\\uA489\\uA48A\\uA48B\\uA48C\\uA500\\uA501\\uA502\\uA503\\uA504\\uA505\\uA506\\uA507\\uA508\\uA509\\uA50A\\uA50B\\uA50C\\uA50D\\uA50E\\uA50F\\uA510\\uA511\\uA512\\uA513\\uA514\\uA515\\uA516\\uA517\\uA518\\uA519\\uA51A\\uA51B\\uA51C\\uA51D\\uA51E\\uA51F\\uA520\\uA521\\uA522\\uA523\\uA524\\uA525\\uA526\\uA527\\uA528\\uA529\\uA52A\\uA52B\\uA52C\\uA52D\\uA52E\\uA52F\\uA530\\uA531\\uA532\\uA533\\uA534\\uA535\\uA536\\uA537\\uA538\\uA539\\uA53A\\uA53B\\uA53C\\uA53D\\uA53E\\uA53F\\uA540\\uA541\\uA542\\uA543\\uA544\\uA545\\uA546\\uA547\\uA548\\uA549\\uA54A\\uA54B\\uA54C\\uA54D\\uA54E\\uA54F\\uA550\\uA551\\uA552\\uA553\\uA554\\uA555\\uA556\\uA557\\uA558\\uA559\\uA55A\\uA55B\\uA55C\\uA55D\\uA55E\\uA55F\\uA560\\uA561\\uA562\\uA563\\uA564\\uA565\\uA566\\uA567\\uA568\\uA569\\uA56A\\uA56B\\uA56C\\uA56D\\uA56E\\uA56F\\uA570\\uA571\\uA572\\uA573\\uA574\\uA575\\uA576\\uA577\\uA578\\uA579\\uA57A\\uA57B\\uA57C\\uA57D\\uA57E\\uA57F\\uA580\\uA581\\uA582\\uA583\\uA584\\uA585\\uA586\\uA587\\uA588\\uA589\\uA58A\\uA58B\\uA58C\\uA58D\\uA58E\\uA58F\\uA590\\uA591\\uA592\\uA593\\uA594\\uA595\\uA596\\uA597\\uA598\\uA599\\uA59A\\uA59B\\uA59C\\uA59D\\uA59E\\uA59F\\uA5A0\\uA5A1\\uA5A2\\uA5A3\\uA5A4\\uA5A5\\uA5A6\\uA5A7\\uA5A8\\uA5A9\\uA5AA\\uA5AB\\uA5AC\\uA5AD\\uA5AE\\uA5AF\\uA5B0\\uA5B1\\uA5B2\\uA5B3\\uA5B4\\uA5B5\\uA5B6\\uA5B7\\uA5B8\\uA5B9\\uA5BA\\uA5BB\\uA5BC\\uA5BD\\uA5BE\\uA5BF\\uA5C0\\uA5C1\\uA5C2\\uA5C3\\uA5C4\\uA5C5\\uA5C6\\uA5C7\\uA5C8\\uA5C9\\uA5CA\\uA5CB\\uA5CC\\uA5CD\\uA5CE\\uA5CF\\uA5D0\\uA5D1\\uA5D2\\uA5D3\\uA5D4\\uA5D5\\uA5D6\\uA5D7\\uA5D8\\uA5D9\\uA5DA\\uA5DB\\uA5DC\\uA5DD\\uA5DE\\uA5DF\\uA5E0\\uA5E1\\uA5E2\\uA5E3\\uA5E4\\uA5E5\\uA5E6\\uA5E7\\uA5E8\\uA5E9\\uA5EA\\uA5EB\\uA5EC\\uA5ED\\uA5EE\\uA5EF\\uA5F0\\uA5F1\\uA5F2\\uA5F3\\uA5F4\\uA5F5\\uA5F6\\uA5F7\\uA5F8\\uA5F9\\uA5FA\\uA5FB\\uA5FC\\uA5FD\\uA5FE\\uA5FF\\uA600\\uA601\\uA602\\uA603\\uA604\\uA605\\uA606\\uA607\\uA608\\uA609\\uA60A\\uA60B\\uA610\\uA611\\uA612\\uA613\\uA614\\uA615\\uA616\\uA617\\uA618\\uA619\\uA61A\\uA61B\\uA61C\\uA61D\\uA61E\\uA61F\\uA62A\\uA62B\\uA66E\\uA7FB\\uA7FC\\uA7FD\\uA7FE\\uA7FF\\uA800\\uA801\\uA803\\uA804\\uA805\\uA807\\uA808\\uA809\\uA80A\\uA80C\\uA80D\\uA80E\\uA80F\\uA810\\uA811\\uA812\\uA813\\uA814\\uA815\\uA816\\uA817\\uA818\\uA819\\uA81A\\uA81B\\uA81C\\uA81D\\uA81E\\uA81F\\uA820\\uA821\\uA822\\uA840\\uA841\\uA842\\uA843\\uA844\\uA845\\uA846\\uA847\\uA848\\uA849\\uA84A\\uA84B\\uA84C\\uA84D\\uA84E\\uA84F\\uA850\\uA851\\uA852\\uA853\\uA854\\uA855\\uA856\\uA857\\uA858\\uA859\\uA85A\\uA85B\\uA85C\\uA85D\\uA85E\\uA85F\\uA860\\uA861\\uA862\\uA863\\uA864\\uA865\\uA866\\uA867\\uA868\\uA869\\uA86A\\uA86B\\uA86C\\uA86D\\uA86E\\uA86F\\uA870\\uA871\\uA872\\uA873\\uA882\\uA883\\uA884\\uA885\\uA886\\uA887\\uA888\\uA889\\uA88A\\uA88B\\uA88C\\uA88D\\uA88E\\uA88F\\uA890\\uA891\\uA892\\uA893\\uA894\\uA895\\uA896\\uA897\\uA898\\uA899\\uA89A\\uA89B\\uA89C\\uA89D\\uA89E\\uA89F\\uA8A0\\uA8A1\\uA8A2\\uA8A3\\uA8A4\\uA8A5\\uA8A6\\uA8A7\\uA8A8\\uA8A9\\uA8AA\\uA8AB\\uA8AC\\uA8AD\\uA8AE\\uA8AF\\uA8B0\\uA8B1\\uA8B2\\uA8B3\\uA90A\\uA90B\\uA90C\\uA90D\\uA90E\\uA90F\\uA910\\uA911\\uA912\\uA913\\uA914\\uA915\\uA916\\uA917\\uA918\\uA919\\uA91A\\uA91B\\uA91C\\uA91D\\uA91E\\uA91F\\uA920\\uA921\\uA922\\uA923\\uA924\\uA925\\uA930\\uA931\\uA932\\uA933\\uA934\\uA935\\uA936\\uA937\\uA938\\uA939\\uA93A\\uA93B\\uA93C\\uA93D\\uA93E\\uA93F\\uA940\\uA941\\uA942\\uA943\\uA944\\uA945\\uA946\\uAA00\\uAA01\\uAA02\\uAA03\\uAA04\\uAA05\\uAA06\\uAA07\\uAA08\\uAA09\\uAA0A\\uAA0B\\uAA0C\\uAA0D\\uAA0E\\uAA0F\\uAA10\\uAA11\\uAA12\\uAA13\\uAA14\\uAA15\\uAA16\\uAA17\\uAA18\\uAA19\\uAA1A\\uAA1B\\uAA1C\\uAA1D\\uAA1E\\uAA1F\\uAA20\\uAA21\\uAA22\\uAA23\\uAA24\\uAA25\\uAA26\\uAA27\\uAA28\\uAA40\\uAA41\\uAA42\\uAA44\\uAA45\\uAA46\\uAA47\\uAA48\\uAA49\\uAA4A\\uAA4B\\uAC00\\uD7A3\\uF900\\uF901\\uF902\\uF903\\uF904\\uF905\\uF906\\uF907\\uF908\\uF909\\uF90A\\uF90B\\uF90C\\uF90D\\uF90E\\uF90F\\uF910\\uF911\\uF912\\uF913\\uF914\\uF915\\uF916\\uF917\\uF918\\uF919\\uF91A\\uF91B\\uF91C\\uF91D\\uF91E\\uF91F\\uF920\\uF921\\uF922\\uF923\\uF924\\uF925\\uF926\\uF927\\uF928\\uF929\\uF92A\\uF92B\\uF92C\\uF92D\\uF92E\\uF92F\\uF930\\uF931\\uF932\\uF933\\uF934\\uF935\\uF936\\uF937\\uF938\\uF939\\uF93A\\uF93B\\uF93C\\uF93D\\uF93E\\uF93F\\uF940\\uF941\\uF942\\uF943\\uF944\\uF945\\uF946\\uF947\\uF948\\uF949\\uF94A\\uF94B\\uF94C\\uF94D\\uF94E\\uF94F\\uF950\\uF951\\uF952\\uF953\\uF954\\uF955\\uF956\\uF957\\uF958\\uF959\\uF95A\\uF95B\\uF95C\\uF95D\\uF95E\\uF95F\\uF960\\uF961\\uF962\\uF963\\uF964\\uF965\\uF966\\uF967\\uF968\\uF969\\uF96A\\uF96B\\uF96C\\uF96D\\uF96E\\uF96F\\uF970\\uF971\\uF972\\uF973\\uF974\\uF975\\uF976\\uF977\\uF978\\uF979\\uF97A\\uF97B\\uF97C\\uF97D\\uF97E\\uF97F\\uF980\\uF981\\uF982\\uF983\\uF984\\uF985\\uF986\\uF987\\uF988\\uF989\\uF98A\\uF98B\\uF98C\\uF98D\\uF98E\\uF98F\\uF990\\uF991\\uF992\\uF993\\uF994\\uF995\\uF996\\uF997\\uF998\\uF999\\uF99A\\uF99B\\uF99C\\uF99D\\uF99E\\uF99F\\uF9A0\\uF9A1\\uF9A2\\uF9A3\\uF9A4\\uF9A5\\uF9A6\\uF9A7\\uF9A8\\uF9A9\\uF9AA\\uF9AB\\uF9AC\\uF9AD\\uF9AE\\uF9AF\\uF9B0\\uF9B1\\uF9B2\\uF9B3\\uF9B4\\uF9B5\\uF9B6\\uF9B7\\uF9B8\\uF9B9\\uF9BA\\uF9BB\\uF9BC\\uF9BD\\uF9BE\\uF9BF\\uF9C0\\uF9C1\\uF9C2\\uF9C3\\uF9C4\\uF9C5\\uF9C6\\uF9C7\\uF9C8\\uF9C9\\uF9CA\\uF9CB\\uF9CC\\uF9CD\\uF9CE\\uF9CF\\uF9D0\\uF9D1\\uF9D2\\uF9D3\\uF9D4\\uF9D5\\uF9D6\\uF9D7\\uF9D8\\uF9D9\\uF9DA\\uF9DB\\uF9DC\\uF9DD\\uF9DE\\uF9DF\\uF9E0\\uF9E1\\uF9E2\\uF9E3\\uF9E4\\uF9E5\\uF9E6\\uF9E7\\uF9E8\\uF9E9\\uF9EA\\uF9EB\\uF9EC\\uF9ED\\uF9EE\\uF9EF\\uF9F0\\uF9F1\\uF9F2\\uF9F3\\uF9F4\\uF9F5\\uF9F6\\uF9F7\\uF9F8\\uF9F9\\uF9FA\\uF9FB\\uF9FC\\uF9FD\\uF9FE\\uF9FF\\uFA00\\uFA01\\uFA02\\uFA03\\uFA04\\uFA05\\uFA06\\uFA07\\uFA08\\uFA09\\uFA0A\\uFA0B\\uFA0C\\uFA0D\\uFA0E\\uFA0F\\uFA10\\uFA11\\uFA12\\uFA13\\uFA14\\uFA15\\uFA16\\uFA17\\uFA18\\uFA19\\uFA1A\\uFA1B\\uFA1C\\uFA1D\\uFA1E\\uFA1F\\uFA20\\uFA21\\uFA22\\uFA23\\uFA24\\uFA25\\uFA26\\uFA27\\uFA28\\uFA29\\uFA2A\\uFA2B\\uFA2C\\uFA2D\\uFA30\\uFA31\\uFA32\\uFA33\\uFA34\\uFA35\\uFA36\\uFA37\\uFA38\\uFA39\\uFA3A\\uFA3B\\uFA3C\\uFA3D\\uFA3E\\uFA3F\\uFA40\\uFA41\\uFA42\\uFA43\\uFA44\\uFA45\\uFA46\\uFA47\\uFA48\\uFA49\\uFA4A\\uFA4B\\uFA4C\\uFA4D\\uFA4E\\uFA4F\\uFA50\\uFA51\\uFA52\\uFA53\\uFA54\\uFA55\\uFA56\\uFA57\\uFA58\\uFA59\\uFA5A\\uFA5B\\uFA5C\\uFA5D\\uFA5E\\uFA5F\\uFA60\\uFA61\\uFA62\\uFA63\\uFA64\\uFA65\\uFA66\\uFA67\\uFA68\\uFA69\\uFA6A\\uFA70\\uFA71\\uFA72\\uFA73\\uFA74\\uFA75\\uFA76\\uFA77\\uFA78\\uFA79\\uFA7A\\uFA7B\\uFA7C\\uFA7D\\uFA7E\\uFA7F\\uFA80\\uFA81\\uFA82\\uFA83\\uFA84\\uFA85\\uFA86\\uFA87\\uFA88\\uFA89\\uFA8A\\uFA8B\\uFA8C\\uFA8D\\uFA8E\\uFA8F\\uFA90\\uFA91\\uFA92\\uFA93\\uFA94\\uFA95\\uFA96\\uFA97\\uFA98\\uFA99\\uFA9A\\uFA9B\\uFA9C\\uFA9D\\uFA9E\\uFA9F\\uFAA0\\uFAA1\\uFAA2\\uFAA3\\uFAA4\\uFAA5\\uFAA6\\uFAA7\\uFAA8\\uFAA9\\uFAAA\\uFAAB\\uFAAC\\uFAAD\\uFAAE\\uFAAF\\uFAB0\\uFAB1\\uFAB2\\uFAB3\\uFAB4\\uFAB5\\uFAB6\\uFAB7\\uFAB8\\uFAB9\\uFABA\\uFABB\\uFABC\\uFABD\\uFABE\\uFABF\\uFAC0\\uFAC1\\uFAC2\\uFAC3\\uFAC4\\uFAC5\\uFAC6\\uFAC7\\uFAC8\\uFAC9\\uFACA\\uFACB\\uFACC\\uFACD\\uFACE\\uFACF\\uFAD0\\uFAD1\\uFAD2\\uFAD3\\uFAD4\\uFAD5\\uFAD6\\uFAD7\\uFAD8\\uFAD9\\uFB1D\\uFB1F\\uFB20\\uFB21\\uFB22\\uFB23\\uFB24\\uFB25\\uFB26\\uFB27\\uFB28\\uFB2A\\uFB2B\\uFB2C\\uFB2D\\uFB2E\\uFB2F\\uFB30\\uFB31\\uFB32\\uFB33\\uFB34\\uFB35\\uFB36\\uFB38\\uFB39\\uFB3A\\uFB3B\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46\\uFB47\\uFB48\\uFB49\\uFB4A\\uFB4B\\uFB4C\\uFB4D\\uFB4E\\uFB4F\\uFB50\\uFB51\\uFB52\\uFB53\\uFB54\\uFB55\\uFB56\\uFB57\\uFB58\\uFB59\\uFB5A\\uFB5B\\uFB5C\\uFB5D\\uFB5E\\uFB5F\\uFB60\\uFB61\\uFB62\\uFB63\\uFB64\\uFB65\\uFB66\\uFB67\\uFB68\\uFB69\\uFB6A\\uFB6B\\uFB6C\\uFB6D\\uFB6E\\uFB6F\\uFB70\\uFB71\\uFB72\\uFB73\\uFB74\\uFB75\\uFB76\\uFB77\\uFB78\\uFB79\\uFB7A\\uFB7B\\uFB7C\\uFB7D\\uFB7E\\uFB7F\\uFB80\\uFB81\\uFB82\\uFB83\\uFB84\\uFB85\\uFB86\\uFB87\\uFB88\\uFB89\\uFB8A\\uFB8B\\uFB8C\\uFB8D\\uFB8E\\uFB8F\\uFB90\\uFB91\\uFB92\\uFB93\\uFB94\\uFB95\\uFB96\\uFB97\\uFB98\\uFB99\\uFB9A\\uFB9B\\uFB9C\\uFB9D\\uFB9E\\uFB9F\\uFBA0\\uFBA1\\uFBA2\\uFBA3\\uFBA4\\uFBA5\\uFBA6\\uFBA7\\uFBA8\\uFBA9\\uFBAA\\uFBAB\\uFBAC\\uFBAD\\uFBAE\\uFBAF\\uFBB0\\uFBB1\\uFBD3\\uFBD4\\uFBD5\\uFBD6\\uFBD7\\uFBD8\\uFBD9\\uFBDA\\uFBDB\\uFBDC\\uFBDD\\uFBDE\\uFBDF\\uFBE0\\uFBE1\\uFBE2\\uFBE3\\uFBE4\\uFBE5\\uFBE6\\uFBE7\\uFBE8\\uFBE9\\uFBEA\\uFBEB\\uFBEC\\uFBED\\uFBEE\\uFBEF\\uFBF0\\uFBF1\\uFBF2\\uFBF3\\uFBF4\\uFBF5\\uFBF6\\uFBF7\\uFBF8\\uFBF9\\uFBFA\\uFBFB\\uFBFC\\uFBFD\\uFBFE\\uFBFF\\uFC00\\uFC01\\uFC02\\uFC03\\uFC04\\uFC05\\uFC06\\uFC07\\uFC08\\uFC09\\uFC0A\\uFC0B\\uFC0C\\uFC0D\\uFC0E\\uFC0F\\uFC10\\uFC11\\uFC12\\uFC13\\uFC14\\uFC15\\uFC16\\uFC17\\uFC18\\uFC19\\uFC1A\\uFC1B\\uFC1C\\uFC1D\\uFC1E\\uFC1F\\uFC20\\uFC21\\uFC22\\uFC23\\uFC24\\uFC25\\uFC26\\uFC27\\uFC28\\uFC29\\uFC2A\\uFC2B\\uFC2C\\uFC2D\\uFC2E\\uFC2F\\uFC30\\uFC31\\uFC32\\uFC33\\uFC34\\uFC35\\uFC36\\uFC37\\uFC38\\uFC39\\uFC3A\\uFC3B\\uFC3C\\uFC3D\\uFC3E\\uFC3F\\uFC40\\uFC41\\uFC42\\uFC43\\uFC44\\uFC45\\uFC46\\uFC47\\uFC48\\uFC49\\uFC4A\\uFC4B\\uFC4C\\uFC4D\\uFC4E\\uFC4F\\uFC50\\uFC51\\uFC52\\uFC53\\uFC54\\uFC55\\uFC56\\uFC57\\uFC58\\uFC59\\uFC5A\\uFC5B\\uFC5C\\uFC5D\\uFC5E\\uFC5F\\uFC60\\uFC61\\uFC62\\uFC63\\uFC64\\uFC65\\uFC66\\uFC67\\uFC68\\uFC69\\uFC6A\\uFC6B\\uFC6C\\uFC6D\\uFC6E\\uFC6F\\uFC70\\uFC71\\uFC72\\uFC73\\uFC74\\uFC75\\uFC76\\uFC77\\uFC78\\uFC79\\uFC7A\\uFC7B\\uFC7C\\uFC7D\\uFC7E\\uFC7F\\uFC80\\uFC81\\uFC82\\uFC83\\uFC84\\uFC85\\uFC86\\uFC87\\uFC88\\uFC89\\uFC8A\\uFC8B\\uFC8C\\uFC8D\\uFC8E\\uFC8F\\uFC90\\uFC91\\uFC92\\uFC93\\uFC94\\uFC95\\uFC96\\uFC97\\uFC98\\uFC99\\uFC9A\\uFC9B\\uFC9C\\uFC9D\\uFC9E\\uFC9F\\uFCA0\\uFCA1\\uFCA2\\uFCA3\\uFCA4\\uFCA5\\uFCA6\\uFCA7\\uFCA8\\uFCA9\\uFCAA\\uFCAB\\uFCAC\\uFCAD\\uFCAE\\uFCAF\\uFCB0\\uFCB1\\uFCB2\\uFCB3\\uFCB4\\uFCB5\\uFCB6\\uFCB7\\uFCB8\\uFCB9\\uFCBA\\uFCBB\\uFCBC\\uFCBD\\uFCBE\\uFCBF\\uFCC0\\uFCC1\\uFCC2\\uFCC3\\uFCC4\\uFCC5\\uFCC6\\uFCC7\\uFCC8\\uFCC9\\uFCCA\\uFCCB\\uFCCC\\uFCCD\\uFCCE\\uFCCF\\uFCD0\\uFCD1\\uFCD2\\uFCD3\\uFCD4\\uFCD5\\uFCD6\\uFCD7\\uFCD8\\uFCD9\\uFCDA\\uFCDB\\uFCDC\\uFCDD\\uFCDE\\uFCDF\\uFCE0\\uFCE1\\uFCE2\\uFCE3\\uFCE4\\uFCE5\\uFCE6\\uFCE7\\uFCE8\\uFCE9\\uFCEA\\uFCEB\\uFCEC\\uFCED\\uFCEE\\uFCEF\\uFCF0\\uFCF1\\uFCF2\\uFCF3\\uFCF4\\uFCF5\\uFCF6\\uFCF7\\uFCF8\\uFCF9\\uFCFA\\uFCFB\\uFCFC\\uFCFD\\uFCFE\\uFCFF\\uFD00\\uFD01\\uFD02\\uFD03\\uFD04\\uFD05\\uFD06\\uFD07\\uFD08\\uFD09\\uFD0A\\uFD0B\\uFD0C\\uFD0D\\uFD0E\\uFD0F\\uFD10\\uFD11\\uFD12\\uFD13\\uFD14\\uFD15\\uFD16\\uFD17\\uFD18\\uFD19\\uFD1A\\uFD1B\\uFD1C\\uFD1D\\uFD1E\\uFD1F\\uFD20\\uFD21\\uFD22\\uFD23\\uFD24\\uFD25\\uFD26\\uFD27\\uFD28\\uFD29\\uFD2A\\uFD2B\\uFD2C\\uFD2D\\uFD2E\\uFD2F\\uFD30\\uFD31\\uFD32\\uFD33\\uFD34\\uFD35\\uFD36\\uFD37\\uFD38\\uFD39\\uFD3A\\uFD3B\\uFD3C\\uFD3D\\uFD50\\uFD51\\uFD52\\uFD53\\uFD54\\uFD55\\uFD56\\uFD57\\uFD58\\uFD59\\uFD5A\\uFD5B\\uFD5C\\uFD5D\\uFD5E\\uFD5F\\uFD60\\uFD61\\uFD62\\uFD63\\uFD64\\uFD65\\uFD66\\uFD67\\uFD68\\uFD69\\uFD6A\\uFD6B\\uFD6C\\uFD6D\\uFD6E\\uFD6F\\uFD70\\uFD71\\uFD72\\uFD73\\uFD74\\uFD75\\uFD76\\uFD77\\uFD78\\uFD79\\uFD7A\\uFD7B\\uFD7C\\uFD7D\\uFD7E\\uFD7F\\uFD80\\uFD81\\uFD82\\uFD83\\uFD84\\uFD85\\uFD86\\uFD87\\uFD88\\uFD89\\uFD8A\\uFD8B\\uFD8C\\uFD8D\\uFD8E\\uFD8F\\uFD92\\uFD93\\uFD94\\uFD95\\uFD96\\uFD97\\uFD98\\uFD99\\uFD9A\\uFD9B\\uFD9C\\uFD9D\\uFD9E\\uFD9F\\uFDA0\\uFDA1\\uFDA2\\uFDA3\\uFDA4\\uFDA5\\uFDA6\\uFDA7\\uFDA8\\uFDA9\\uFDAA\\uFDAB\\uFDAC\\uFDAD\\uFDAE\\uFDAF\\uFDB0\\uFDB1\\uFDB2\\uFDB3\\uFDB4\\uFDB5\\uFDB6\\uFDB7\\uFDB8\\uFDB9\\uFDBA\\uFDBB\\uFDBC\\uFDBD\\uFDBE\\uFDBF\\uFDC0\\uFDC1\\uFDC2\\uFDC3\\uFDC4\\uFDC5\\uFDC6\\uFDC7\\uFDF0\\uFDF1\\uFDF2\\uFDF3\\uFDF4\\uFDF5\\uFDF6\\uFDF7\\uFDF8\\uFDF9\\uFDFA\\uFDFB\\uFE70\\uFE71\\uFE72\\uFE73\\uFE74\\uFE76\\uFE77\\uFE78\\uFE79\\uFE7A\\uFE7B\\uFE7C\\uFE7D\\uFE7E\\uFE7F\\uFE80\\uFE81\\uFE82\\uFE83\\uFE84\\uFE85\\uFE86\\uFE87\\uFE88\\uFE89\\uFE8A\\uFE8B\\uFE8C\\uFE8D\\uFE8E\\uFE8F\\uFE90\\uFE91\\uFE92\\uFE93\\uFE94\\uFE95\\uFE96\\uFE97\\uFE98\\uFE99\\uFE9A\\uFE9B\\uFE9C\\uFE9D\\uFE9E\\uFE9F\\uFEA0\\uFEA1\\uFEA2\\uFEA3\\uFEA4\\uFEA5\\uFEA6\\uFEA7\\uFEA8\\uFEA9\\uFEAA\\uFEAB\\uFEAC\\uFEAD\\uFEAE\\uFEAF\\uFEB0\\uFEB1\\uFEB2\\uFEB3\\uFEB4\\uFEB5\\uFEB6\\uFEB7\\uFEB8\\uFEB9\\uFEBA\\uFEBB\\uFEBC\\uFEBD\\uFEBE\\uFEBF\\uFEC0\\uFEC1\\uFEC2\\uFEC3\\uFEC4\\uFEC5\\uFEC6\\uFEC7\\uFEC8\\uFEC9\\uFECA\\uFECB\\uFECC\\uFECD\\uFECE\\uFECF\\uFED0\\uFED1\\uFED2\\uFED3\\uFED4\\uFED5\\uFED6\\uFED7\\uFED8\\uFED9\\uFEDA\\uFEDB\\uFEDC\\uFEDD\\uFEDE\\uFEDF\\uFEE0\\uFEE1\\uFEE2\\uFEE3\\uFEE4\\uFEE5\\uFEE6\\uFEE7\\uFEE8\\uFEE9\\uFEEA\\uFEEB\\uFEEC\\uFEED\\uFEEE\\uFEEF\\uFEF0\\uFEF1\\uFEF2\\uFEF3\\uFEF4\\uFEF5\\uFEF6\\uFEF7\\uFEF8\\uFEF9\\uFEFA\\uFEFB\\uFEFC\\uFF66\\uFF67\\uFF68\\uFF69\\uFF6A\\uFF6B\\uFF6C\\uFF6D\\uFF6E\\uFF6F\\uFF71\\uFF72\\uFF73\\uFF74\\uFF75\\uFF76\\uFF77\\uFF78\\uFF79\\uFF7A\\uFF7B\\uFF7C\\uFF7D\\uFF7E\\uFF7F\\uFF80\\uFF81\\uFF82\\uFF83\\uFF84\\uFF85\\uFF86\\uFF87\\uFF88\\uFF89\\uFF8A\\uFF8B\\uFF8C\\uFF8D\\uFF8E\\uFF8F\\uFF90\\uFF91\\uFF92\\uFF93\\uFF94\\uFF95\\uFF96\\uFF97\\uFF98\\uFF99\\uFF9A\\uFF9B\\uFF9C\\uFF9D\\uFFA0\\uFFA1\\uFFA2\\uFFA3\\uFFA4\\uFFA5\\uFFA6\\uFFA7\\uFFA8\\uFFA9\\uFFAA\\uFFAB\\uFFAC\\uFFAD\\uFFAE\\uFFAF\\uFFB0\\uFFB1\\uFFB2\\uFFB3\\uFFB4\\uFFB5\\uFFB6\\uFFB7\\uFFB8\\uFFB9\\uFFBA\\uFFBB\\uFFBC\\uFFBD\\uFFBE\\uFFC2\\uFFC3\\uFFC4\\uFFC5\\uFFC6\\uFFC7\\uFFCA\\uFFCB\\uFFCC\\uFFCD\\uFFCE\\uFFCF\\uFFD2\\uFFD3\\uFFD4\\uFFD5\\uFFD6\\uFFD7\\uFFDA\\uFFDB\\uFFDC]"); - } - } - return result0; - } - - function parse_Lt() { - var result0; - - if (/^[\u01C5\u01C8\u01CB\u01F2\u1F88\u1F89\u1F8A\u1F8B\u1F8C\u1F8D\u1F8E\u1F8F\u1F98\u1F99\u1F9A\u1F9B\u1F9C\u1F9D\u1F9E\u1F9F\u1FA8\u1FA9\u1FAA\u1FAB\u1FAC\u1FAD\u1FAE\u1FAF\u1FBC\u1FCC\u1FFC]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\u01C5\\u01C8\\u01CB\\u01F2\\u1F88\\u1F89\\u1F8A\\u1F8B\\u1F8C\\u1F8D\\u1F8E\\u1F8F\\u1F98\\u1F99\\u1F9A\\u1F9B\\u1F9C\\u1F9D\\u1F9E\\u1F9F\\u1FA8\\u1FA9\\u1FAA\\u1FAB\\u1FAC\\u1FAD\\u1FAE\\u1FAF\\u1FBC\\u1FCC\\u1FFC]"); - } - } - return result0; - } - - function parse_Lu() { - var result0; - - if (/^[ABCDEFGHIJKLMNOPQRSTUVWXYZ\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD8\xD9\xDA\xDB\xDC\xDD\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189\u018A\u018B\u018E\u018F\u0190\u0191\u0193\u0194\u0196\u0197\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1\u01B2\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6\u01F7\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243\u0244\u0245\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u0386\u0388\u0389\u038A\u038C\u038E\u038F\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03CF\u03D2\u03D3\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD\u03FE\u03FF\u0400\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\u040D\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0531\u0532\u0533\u0534\u0535\u0536\u0537\u0538\u0539\u053A\u053B\u053C\u053D\u053E\u053F\u0540\u0541\u0542\u0543\u0544\u0545\u0546\u0547\u0548\u0549\u054A\u054B\u054C\u054D\u054E\u054F\u0550\u0551\u0552\u0553\u0554\u0555\u0556\u10A0\u10A1\u10A2\u10A3\u10A4\u10A5\u10A6\u10A7\u10A8\u10A9\u10AA\u10AB\u10AC\u10AD\u10AE\u10AF\u10B0\u10B1\u10B2\u10B3\u10B4\u10B5\u10B6\u10B7\u10B8\u10B9\u10BA\u10BB\u10BC\u10BD\u10BE\u10BF\u10C0\u10C1\u10C2\u10C3\u10C4\u10C5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08\u1F09\u1F0A\u1F0B\u1F0C\u1F0D\u1F0E\u1F0F\u1F18\u1F19\u1F1A\u1F1B\u1F1C\u1F1D\u1F28\u1F29\u1F2A\u1F2B\u1F2C\u1F2D\u1F2E\u1F2F\u1F38\u1F39\u1F3A\u1F3B\u1F3C\u1F3D\u1F3E\u1F3F\u1F48\u1F49\u1F4A\u1F4B\u1F4C\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68\u1F69\u1F6A\u1F6B\u1F6C\u1F6D\u1F6E\u1F6F\u1FB8\u1FB9\u1FBA\u1FBB\u1FC8\u1FC9\u1FCA\u1FCB\u1FD8\u1FD9\u1FDA\u1FDB\u1FE8\u1FE9\u1FEA\u1FEB\u1FEC\u1FF8\u1FF9\u1FFA\u1FFB\u2102\u2107\u210B\u210C\u210D\u2110\u2111\u2112\u2115\u2119\u211A\u211B\u211C\u211D\u2124\u2126\u2128\u212A\u212B\u212C\u212D\u2130\u2131\u2132\u2133\u213E\u213F\u2145\u2183\u2C00\u2C01\u2C02\u2C03\u2C04\u2C05\u2C06\u2C07\u2C08\u2C09\u2C0A\u2C0B\u2C0C\u2C0D\u2C0E\u2C0F\u2C10\u2C11\u2C12\u2C13\u2C14\u2C15\u2C16\u2C17\u2C18\u2C19\u2C1A\u2C1B\u2C1C\u2C1D\u2C1E\u2C1F\u2C20\u2C21\u2C22\u2C23\u2C24\u2C25\u2C26\u2C27\u2C28\u2C29\u2C2A\u2C2B\u2C2C\u2C2D\u2C2E\u2C60\u2C62\u2C63\u2C64\u2C67\u2C69\u2C6B\u2C6D\u2C6E\u2C6F\u2C72\u2C75\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uFF21\uFF22\uFF23\uFF24\uFF25\uFF26\uFF27\uFF28\uFF29\uFF2A\uFF2B\uFF2C\uFF2D\uFF2E\uFF2F\uFF30\uFF31\uFF32\uFF33\uFF34\uFF35\uFF36\uFF37\uFF38\uFF39\uFF3A]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[ABCDEFGHIJKLMNOPQRSTUVWXYZ\\xC0\\xC1\\xC2\\xC3\\xC4\\xC5\\xC6\\xC7\\xC8\\xC9\\xCA\\xCB\\xCC\\xCD\\xCE\\xCF\\xD0\\xD1\\xD2\\xD3\\xD4\\xD5\\xD6\\xD8\\xD9\\xDA\\xDB\\xDC\\xDD\\xDE\\u0100\\u0102\\u0104\\u0106\\u0108\\u010A\\u010C\\u010E\\u0110\\u0112\\u0114\\u0116\\u0118\\u011A\\u011C\\u011E\\u0120\\u0122\\u0124\\u0126\\u0128\\u012A\\u012C\\u012E\\u0130\\u0132\\u0134\\u0136\\u0139\\u013B\\u013D\\u013F\\u0141\\u0143\\u0145\\u0147\\u014A\\u014C\\u014E\\u0150\\u0152\\u0154\\u0156\\u0158\\u015A\\u015C\\u015E\\u0160\\u0162\\u0164\\u0166\\u0168\\u016A\\u016C\\u016E\\u0170\\u0172\\u0174\\u0176\\u0178\\u0179\\u017B\\u017D\\u0181\\u0182\\u0184\\u0186\\u0187\\u0189\\u018A\\u018B\\u018E\\u018F\\u0190\\u0191\\u0193\\u0194\\u0196\\u0197\\u0198\\u019C\\u019D\\u019F\\u01A0\\u01A2\\u01A4\\u01A6\\u01A7\\u01A9\\u01AC\\u01AE\\u01AF\\u01B1\\u01B2\\u01B3\\u01B5\\u01B7\\u01B8\\u01BC\\u01C4\\u01C7\\u01CA\\u01CD\\u01CF\\u01D1\\u01D3\\u01D5\\u01D7\\u01D9\\u01DB\\u01DE\\u01E0\\u01E2\\u01E4\\u01E6\\u01E8\\u01EA\\u01EC\\u01EE\\u01F1\\u01F4\\u01F6\\u01F7\\u01F8\\u01FA\\u01FC\\u01FE\\u0200\\u0202\\u0204\\u0206\\u0208\\u020A\\u020C\\u020E\\u0210\\u0212\\u0214\\u0216\\u0218\\u021A\\u021C\\u021E\\u0220\\u0222\\u0224\\u0226\\u0228\\u022A\\u022C\\u022E\\u0230\\u0232\\u023A\\u023B\\u023D\\u023E\\u0241\\u0243\\u0244\\u0245\\u0246\\u0248\\u024A\\u024C\\u024E\\u0370\\u0372\\u0376\\u0386\\u0388\\u0389\\u038A\\u038C\\u038E\\u038F\\u0391\\u0392\\u0393\\u0394\\u0395\\u0396\\u0397\\u0398\\u0399\\u039A\\u039B\\u039C\\u039D\\u039E\\u039F\\u03A0\\u03A1\\u03A3\\u03A4\\u03A5\\u03A6\\u03A7\\u03A8\\u03A9\\u03AA\\u03AB\\u03CF\\u03D2\\u03D3\\u03D4\\u03D8\\u03DA\\u03DC\\u03DE\\u03E0\\u03E2\\u03E4\\u03E6\\u03E8\\u03EA\\u03EC\\u03EE\\u03F4\\u03F7\\u03F9\\u03FA\\u03FD\\u03FE\\u03FF\\u0400\\u0401\\u0402\\u0403\\u0404\\u0405\\u0406\\u0407\\u0408\\u0409\\u040A\\u040B\\u040C\\u040D\\u040E\\u040F\\u0410\\u0411\\u0412\\u0413\\u0414\\u0415\\u0416\\u0417\\u0418\\u0419\\u041A\\u041B\\u041C\\u041D\\u041E\\u041F\\u0420\\u0421\\u0422\\u0423\\u0424\\u0425\\u0426\\u0427\\u0428\\u0429\\u042A\\u042B\\u042C\\u042D\\u042E\\u042F\\u0460\\u0462\\u0464\\u0466\\u0468\\u046A\\u046C\\u046E\\u0470\\u0472\\u0474\\u0476\\u0478\\u047A\\u047C\\u047E\\u0480\\u048A\\u048C\\u048E\\u0490\\u0492\\u0494\\u0496\\u0498\\u049A\\u049C\\u049E\\u04A0\\u04A2\\u04A4\\u04A6\\u04A8\\u04AA\\u04AC\\u04AE\\u04B0\\u04B2\\u04B4\\u04B6\\u04B8\\u04BA\\u04BC\\u04BE\\u04C0\\u04C1\\u04C3\\u04C5\\u04C7\\u04C9\\u04CB\\u04CD\\u04D0\\u04D2\\u04D4\\u04D6\\u04D8\\u04DA\\u04DC\\u04DE\\u04E0\\u04E2\\u04E4\\u04E6\\u04E8\\u04EA\\u04EC\\u04EE\\u04F0\\u04F2\\u04F4\\u04F6\\u04F8\\u04FA\\u04FC\\u04FE\\u0500\\u0502\\u0504\\u0506\\u0508\\u050A\\u050C\\u050E\\u0510\\u0512\\u0514\\u0516\\u0518\\u051A\\u051C\\u051E\\u0520\\u0522\\u0531\\u0532\\u0533\\u0534\\u0535\\u0536\\u0537\\u0538\\u0539\\u053A\\u053B\\u053C\\u053D\\u053E\\u053F\\u0540\\u0541\\u0542\\u0543\\u0544\\u0545\\u0546\\u0547\\u0548\\u0549\\u054A\\u054B\\u054C\\u054D\\u054E\\u054F\\u0550\\u0551\\u0552\\u0553\\u0554\\u0555\\u0556\\u10A0\\u10A1\\u10A2\\u10A3\\u10A4\\u10A5\\u10A6\\u10A7\\u10A8\\u10A9\\u10AA\\u10AB\\u10AC\\u10AD\\u10AE\\u10AF\\u10B0\\u10B1\\u10B2\\u10B3\\u10B4\\u10B5\\u10B6\\u10B7\\u10B8\\u10B9\\u10BA\\u10BB\\u10BC\\u10BD\\u10BE\\u10BF\\u10C0\\u10C1\\u10C2\\u10C3\\u10C4\\u10C5\\u1E00\\u1E02\\u1E04\\u1E06\\u1E08\\u1E0A\\u1E0C\\u1E0E\\u1E10\\u1E12\\u1E14\\u1E16\\u1E18\\u1E1A\\u1E1C\\u1E1E\\u1E20\\u1E22\\u1E24\\u1E26\\u1E28\\u1E2A\\u1E2C\\u1E2E\\u1E30\\u1E32\\u1E34\\u1E36\\u1E38\\u1E3A\\u1E3C\\u1E3E\\u1E40\\u1E42\\u1E44\\u1E46\\u1E48\\u1E4A\\u1E4C\\u1E4E\\u1E50\\u1E52\\u1E54\\u1E56\\u1E58\\u1E5A\\u1E5C\\u1E5E\\u1E60\\u1E62\\u1E64\\u1E66\\u1E68\\u1E6A\\u1E6C\\u1E6E\\u1E70\\u1E72\\u1E74\\u1E76\\u1E78\\u1E7A\\u1E7C\\u1E7E\\u1E80\\u1E82\\u1E84\\u1E86\\u1E88\\u1E8A\\u1E8C\\u1E8E\\u1E90\\u1E92\\u1E94\\u1E9E\\u1EA0\\u1EA2\\u1EA4\\u1EA6\\u1EA8\\u1EAA\\u1EAC\\u1EAE\\u1EB0\\u1EB2\\u1EB4\\u1EB6\\u1EB8\\u1EBA\\u1EBC\\u1EBE\\u1EC0\\u1EC2\\u1EC4\\u1EC6\\u1EC8\\u1ECA\\u1ECC\\u1ECE\\u1ED0\\u1ED2\\u1ED4\\u1ED6\\u1ED8\\u1EDA\\u1EDC\\u1EDE\\u1EE0\\u1EE2\\u1EE4\\u1EE6\\u1EE8\\u1EEA\\u1EEC\\u1EEE\\u1EF0\\u1EF2\\u1EF4\\u1EF6\\u1EF8\\u1EFA\\u1EFC\\u1EFE\\u1F08\\u1F09\\u1F0A\\u1F0B\\u1F0C\\u1F0D\\u1F0E\\u1F0F\\u1F18\\u1F19\\u1F1A\\u1F1B\\u1F1C\\u1F1D\\u1F28\\u1F29\\u1F2A\\u1F2B\\u1F2C\\u1F2D\\u1F2E\\u1F2F\\u1F38\\u1F39\\u1F3A\\u1F3B\\u1F3C\\u1F3D\\u1F3E\\u1F3F\\u1F48\\u1F49\\u1F4A\\u1F4B\\u1F4C\\u1F4D\\u1F59\\u1F5B\\u1F5D\\u1F5F\\u1F68\\u1F69\\u1F6A\\u1F6B\\u1F6C\\u1F6D\\u1F6E\\u1F6F\\u1FB8\\u1FB9\\u1FBA\\u1FBB\\u1FC8\\u1FC9\\u1FCA\\u1FCB\\u1FD8\\u1FD9\\u1FDA\\u1FDB\\u1FE8\\u1FE9\\u1FEA\\u1FEB\\u1FEC\\u1FF8\\u1FF9\\u1FFA\\u1FFB\\u2102\\u2107\\u210B\\u210C\\u210D\\u2110\\u2111\\u2112\\u2115\\u2119\\u211A\\u211B\\u211C\\u211D\\u2124\\u2126\\u2128\\u212A\\u212B\\u212C\\u212D\\u2130\\u2131\\u2132\\u2133\\u213E\\u213F\\u2145\\u2183\\u2C00\\u2C01\\u2C02\\u2C03\\u2C04\\u2C05\\u2C06\\u2C07\\u2C08\\u2C09\\u2C0A\\u2C0B\\u2C0C\\u2C0D\\u2C0E\\u2C0F\\u2C10\\u2C11\\u2C12\\u2C13\\u2C14\\u2C15\\u2C16\\u2C17\\u2C18\\u2C19\\u2C1A\\u2C1B\\u2C1C\\u2C1D\\u2C1E\\u2C1F\\u2C20\\u2C21\\u2C22\\u2C23\\u2C24\\u2C25\\u2C26\\u2C27\\u2C28\\u2C29\\u2C2A\\u2C2B\\u2C2C\\u2C2D\\u2C2E\\u2C60\\u2C62\\u2C63\\u2C64\\u2C67\\u2C69\\u2C6B\\u2C6D\\u2C6E\\u2C6F\\u2C72\\u2C75\\u2C80\\u2C82\\u2C84\\u2C86\\u2C88\\u2C8A\\u2C8C\\u2C8E\\u2C90\\u2C92\\u2C94\\u2C96\\u2C98\\u2C9A\\u2C9C\\u2C9E\\u2CA0\\u2CA2\\u2CA4\\u2CA6\\u2CA8\\u2CAA\\u2CAC\\u2CAE\\u2CB0\\u2CB2\\u2CB4\\u2CB6\\u2CB8\\u2CBA\\u2CBC\\u2CBE\\u2CC0\\u2CC2\\u2CC4\\u2CC6\\u2CC8\\u2CCA\\u2CCC\\u2CCE\\u2CD0\\u2CD2\\u2CD4\\u2CD6\\u2CD8\\u2CDA\\u2CDC\\u2CDE\\u2CE0\\u2CE2\\uA640\\uA642\\uA644\\uA646\\uA648\\uA64A\\uA64C\\uA64E\\uA650\\uA652\\uA654\\uA656\\uA658\\uA65A\\uA65C\\uA65E\\uA662\\uA664\\uA666\\uA668\\uA66A\\uA66C\\uA680\\uA682\\uA684\\uA686\\uA688\\uA68A\\uA68C\\uA68E\\uA690\\uA692\\uA694\\uA696\\uA722\\uA724\\uA726\\uA728\\uA72A\\uA72C\\uA72E\\uA732\\uA734\\uA736\\uA738\\uA73A\\uA73C\\uA73E\\uA740\\uA742\\uA744\\uA746\\uA748\\uA74A\\uA74C\\uA74E\\uA750\\uA752\\uA754\\uA756\\uA758\\uA75A\\uA75C\\uA75E\\uA760\\uA762\\uA764\\uA766\\uA768\\uA76A\\uA76C\\uA76E\\uA779\\uA77B\\uA77D\\uA77E\\uA780\\uA782\\uA784\\uA786\\uA78B\\uFF21\\uFF22\\uFF23\\uFF24\\uFF25\\uFF26\\uFF27\\uFF28\\uFF29\\uFF2A\\uFF2B\\uFF2C\\uFF2D\\uFF2E\\uFF2F\\uFF30\\uFF31\\uFF32\\uFF33\\uFF34\\uFF35\\uFF36\\uFF37\\uFF38\\uFF39\\uFF3A]"); - } - } - return result0; - } - - function parse_Mc() { - var result0; - - if (/^[\u0903\u093E\u093F\u0940\u0949\u094A\u094B\u094C\u0982\u0983\u09BE\u09BF\u09C0\u09C7\u09C8\u09CB\u09CC\u09D7\u0A03\u0A3E\u0A3F\u0A40\u0A83\u0ABE\u0ABF\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6\u0BC7\u0BC8\u0BCA\u0BCB\u0BCC\u0BD7\u0C01\u0C02\u0C03\u0C41\u0C42\u0C43\u0C44\u0C82\u0C83\u0CBE\u0CC0\u0CC1\u0CC2\u0CC3\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0D02\u0D03\u0D3E\u0D3F\u0D40\u0D46\u0D47\u0D48\u0D4A\u0D4B\u0D4C\u0D57\u0D82\u0D83\u0DCF\u0DD0\u0DD1\u0DD8\u0DD9\u0DDA\u0DDB\u0DDC\u0DDD\u0DDE\u0DDF\u0DF2\u0DF3\u0F3E\u0F3F\u0F7F\u102B\u102C\u1031\u1038\u103B\u103C\u1056\u1057\u1062\u1063\u1064\u1067\u1068\u1069\u106A\u106B\u106C\u106D\u1083\u1084\u1087\u1088\u1089\u108A\u108B\u108C\u108F\u17B6\u17BE\u17BF\u17C0\u17C1\u17C2\u17C3\u17C4\u17C5\u17C7\u17C8\u1923\u1924\u1925\u1926\u1929\u192A\u192B\u1930\u1931\u1933\u1934\u1935\u1936\u1937\u1938\u19B0\u19B1\u19B2\u19B3\u19B4\u19B5\u19B6\u19B7\u19B8\u19B9\u19BA\u19BB\u19BC\u19BD\u19BE\u19BF\u19C0\u19C8\u19C9\u1A19\u1A1A\u1A1B\u1B04\u1B35\u1B3B\u1B3D\u1B3E\u1B3F\u1B40\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1C24\u1C25\u1C26\u1C27\u1C28\u1C29\u1C2A\u1C2B\u1C34\u1C35\uA823\uA824\uA827\uA880\uA881\uA8B4\uA8B5\uA8B6\uA8B7\uA8B8\uA8B9\uA8BA\uA8BB\uA8BC\uA8BD\uA8BE\uA8BF\uA8C0\uA8C1\uA8C2\uA8C3\uA952\uA953\uAA2F\uAA30\uAA33\uAA34\uAA4D]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\u0903\\u093E\\u093F\\u0940\\u0949\\u094A\\u094B\\u094C\\u0982\\u0983\\u09BE\\u09BF\\u09C0\\u09C7\\u09C8\\u09CB\\u09CC\\u09D7\\u0A03\\u0A3E\\u0A3F\\u0A40\\u0A83\\u0ABE\\u0ABF\\u0AC0\\u0AC9\\u0ACB\\u0ACC\\u0B02\\u0B03\\u0B3E\\u0B40\\u0B47\\u0B48\\u0B4B\\u0B4C\\u0B57\\u0BBE\\u0BBF\\u0BC1\\u0BC2\\u0BC6\\u0BC7\\u0BC8\\u0BCA\\u0BCB\\u0BCC\\u0BD7\\u0C01\\u0C02\\u0C03\\u0C41\\u0C42\\u0C43\\u0C44\\u0C82\\u0C83\\u0CBE\\u0CC0\\u0CC1\\u0CC2\\u0CC3\\u0CC4\\u0CC7\\u0CC8\\u0CCA\\u0CCB\\u0CD5\\u0CD6\\u0D02\\u0D03\\u0D3E\\u0D3F\\u0D40\\u0D46\\u0D47\\u0D48\\u0D4A\\u0D4B\\u0D4C\\u0D57\\u0D82\\u0D83\\u0DCF\\u0DD0\\u0DD1\\u0DD8\\u0DD9\\u0DDA\\u0DDB\\u0DDC\\u0DDD\\u0DDE\\u0DDF\\u0DF2\\u0DF3\\u0F3E\\u0F3F\\u0F7F\\u102B\\u102C\\u1031\\u1038\\u103B\\u103C\\u1056\\u1057\\u1062\\u1063\\u1064\\u1067\\u1068\\u1069\\u106A\\u106B\\u106C\\u106D\\u1083\\u1084\\u1087\\u1088\\u1089\\u108A\\u108B\\u108C\\u108F\\u17B6\\u17BE\\u17BF\\u17C0\\u17C1\\u17C2\\u17C3\\u17C4\\u17C5\\u17C7\\u17C8\\u1923\\u1924\\u1925\\u1926\\u1929\\u192A\\u192B\\u1930\\u1931\\u1933\\u1934\\u1935\\u1936\\u1937\\u1938\\u19B0\\u19B1\\u19B2\\u19B3\\u19B4\\u19B5\\u19B6\\u19B7\\u19B8\\u19B9\\u19BA\\u19BB\\u19BC\\u19BD\\u19BE\\u19BF\\u19C0\\u19C8\\u19C9\\u1A19\\u1A1A\\u1A1B\\u1B04\\u1B35\\u1B3B\\u1B3D\\u1B3E\\u1B3F\\u1B40\\u1B41\\u1B43\\u1B44\\u1B82\\u1BA1\\u1BA6\\u1BA7\\u1BAA\\u1C24\\u1C25\\u1C26\\u1C27\\u1C28\\u1C29\\u1C2A\\u1C2B\\u1C34\\u1C35\\uA823\\uA824\\uA827\\uA880\\uA881\\uA8B4\\uA8B5\\uA8B6\\uA8B7\\uA8B8\\uA8B9\\uA8BA\\uA8BB\\uA8BC\\uA8BD\\uA8BE\\uA8BF\\uA8C0\\uA8C1\\uA8C2\\uA8C3\\uA952\\uA953\\uAA2F\\uAA30\\uAA33\\uAA34\\uAA4D]"); - } - } - return result0; - } - - function parse_Mn() { - var result0; - - if (/^[\u0300\u0301\u0302\u0303\u0304\u0305\u0306\u0307\u0308\u0309\u030A\u030B\u030C\u030D\u030E\u030F\u0310\u0311\u0312\u0313\u0314\u0315\u0316\u0317\u0318\u0319\u031A\u031B\u031C\u031D\u031E\u031F\u0320\u0321\u0322\u0323\u0324\u0325\u0326\u0327\u0328\u0329\u032A\u032B\u032C\u032D\u032E\u032F\u0330\u0331\u0332\u0333\u0334\u0335\u0336\u0337\u0338\u0339\u033A\u033B\u033C\u033D\u033E\u033F\u0340\u0341\u0342\u0343\u0344\u0345\u0346\u0347\u0348\u0349\u034A\u034B\u034C\u034D\u034E\u034F\u0350\u0351\u0352\u0353\u0354\u0355\u0356\u0357\u0358\u0359\u035A\u035B\u035C\u035D\u035E\u035F\u0360\u0361\u0362\u0363\u0364\u0365\u0366\u0367\u0368\u0369\u036A\u036B\u036C\u036D\u036E\u036F\u0483\u0484\u0485\u0486\u0487\u0591\u0592\u0593\u0594\u0595\u0596\u0597\u0598\u0599\u059A\u059B\u059C\u059D\u059E\u059F\u05A0\u05A1\u05A2\u05A3\u05A4\u05A5\u05A6\u05A7\u05A8\u05A9\u05AA\u05AB\u05AC\u05AD\u05AE\u05AF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610\u0611\u0612\u0613\u0614\u0615\u0616\u0617\u0618\u0619\u061A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\u0653\u0654\u0655\u0656\u0657\u0658\u0659\u065A\u065B\u065C\u065D\u065E\u0670\u06D6\u06D7\u06D8\u06D9\u06DA\u06DB\u06DC\u06DF\u06E0\u06E1\u06E2\u06E3\u06E4\u06E7\u06E8\u06EA\u06EB\u06EC\u06ED\u0711\u0730\u0731\u0732\u0733\u0734\u0735\u0736\u0737\u0738\u0739\u073A\u073B\u073C\u073D\u073E\u073F\u0740\u0741\u0742\u0743\u0744\u0745\u0746\u0747\u0748\u0749\u074A\u07A6\u07A7\u07A8\u07A9\u07AA\u07AB\u07AC\u07AD\u07AE\u07AF\u07B0\u07EB\u07EC\u07ED\u07EE\u07EF\u07F0\u07F1\u07F2\u07F3\u0901\u0902\u093C\u0941\u0942\u0943\u0944\u0945\u0946\u0947\u0948\u094D\u0951\u0952\u0953\u0954\u0962\u0963\u0981\u09BC\u09C1\u09C2\u09C3\u09C4\u09CD\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B\u0A4C\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1\u0AC2\u0AC3\u0AC4\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0B01\u0B3C\u0B3F\u0B41\u0B42\u0B43\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C3E\u0C3F\u0C40\u0C46\u0C47\u0C48\u0C4A\u0C4B\u0C4C\u0C4D\u0C55\u0C56\u0C62\u0C63\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D41\u0D42\u0D43\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2\u0DD3\u0DD4\u0DD6\u0E31\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0EB1\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBB\u0EBC\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71\u0F72\u0F73\u0F74\u0F75\u0F76\u0F77\u0F78\u0F79\u0F7A\u0F7B\u0F7C\u0F7D\u0F7E\u0F80\u0F81\u0F82\u0F83\u0F84\u0F86\u0F87\u0F90\u0F91\u0F92\u0F93\u0F94\u0F95\u0F96\u0F97\u0F99\u0F9A\u0F9B\u0F9C\u0F9D\u0F9E\u0F9F\u0FA0\u0FA1\u0FA2\u0FA3\u0FA4\u0FA5\u0FA6\u0FA7\u0FA8\u0FA9\u0FAA\u0FAB\u0FAC\u0FAD\u0FAE\u0FAF\u0FB0\u0FB1\u0FB2\u0FB3\u0FB4\u0FB5\u0FB6\u0FB7\u0FB8\u0FB9\u0FBA\u0FBB\u0FBC\u0FC6\u102D\u102E\u102F\u1030\u1032\u1033\u1034\u1035\u1036\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E\u105F\u1060\u1071\u1072\u1073\u1074\u1082\u1085\u1086\u108D\u135F\u1712\u1713\u1714\u1732\u1733\u1734\u1752\u1753\u1772\u1773\u17B7\u17B8\u17B9\u17BA\u17BB\u17BC\u17BD\u17C6\u17C9\u17CA\u17CB\u17CC\u17CD\u17CE\u17CF\u17D0\u17D1\u17D2\u17D3\u17DD\u180B\u180C\u180D\u18A9\u1920\u1921\u1922\u1927\u1928\u1932\u1939\u193A\u193B\u1A17\u1A18\u1B00\u1B01\u1B02\u1B03\u1B34\u1B36\u1B37\u1B38\u1B39\u1B3A\u1B3C\u1B42\u1B6B\u1B6C\u1B6D\u1B6E\u1B6F\u1B70\u1B71\u1B72\u1B73\u1B80\u1B81\u1BA2\u1BA3\u1BA4\u1BA5\u1BA8\u1BA9\u1C2C\u1C2D\u1C2E\u1C2F\u1C30\u1C31\u1C32\u1C33\u1C36\u1C37\u1DC0\u1DC1\u1DC2\u1DC3\u1DC4\u1DC5\u1DC6\u1DC7\u1DC8\u1DC9\u1DCA\u1DCB\u1DCC\u1DCD\u1DCE\u1DCF\u1DD0\u1DD1\u1DD2\u1DD3\u1DD4\u1DD5\u1DD6\u1DD7\u1DD8\u1DD9\u1DDA\u1DDB\u1DDC\u1DDD\u1DDE\u1DDF\u1DE0\u1DE1\u1DE2\u1DE3\u1DE4\u1DE5\u1DE6\u1DFE\u1DFF\u20D0\u20D1\u20D2\u20D3\u20D4\u20D5\u20D6\u20D7\u20D8\u20D9\u20DA\u20DB\u20DC\u20E1\u20E5\u20E6\u20E7\u20E8\u20E9\u20EA\u20EB\u20EC\u20ED\u20EE\u20EF\u20F0\u2DE0\u2DE1\u2DE2\u2DE3\u2DE4\u2DE5\u2DE6\u2DE7\u2DE8\u2DE9\u2DEA\u2DEB\u2DEC\u2DED\u2DEE\u2DEF\u2DF0\u2DF1\u2DF2\u2DF3\u2DF4\u2DF5\u2DF6\u2DF7\u2DF8\u2DF9\u2DFA\u2DFB\u2DFC\u2DFD\u2DFE\u2DFF\u302A\u302B\u302C\u302D\u302E\u302F\u3099\u309A\uA66F\uA67C\uA67D\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA926\uA927\uA928\uA929\uA92A\uA92B\uA92C\uA92D\uA947\uA948\uA949\uA94A\uA94B\uA94C\uA94D\uA94E\uA94F\uA950\uA951\uAA29\uAA2A\uAA2B\uAA2C\uAA2D\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uFB1E\uFE00\uFE01\uFE02\uFE03\uFE04\uFE05\uFE06\uFE07\uFE08\uFE09\uFE0A\uFE0B\uFE0C\uFE0D\uFE0E\uFE0F\uFE20\uFE21\uFE22\uFE23\uFE24\uFE25\uFE26]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\u0300\\u0301\\u0302\\u0303\\u0304\\u0305\\u0306\\u0307\\u0308\\u0309\\u030A\\u030B\\u030C\\u030D\\u030E\\u030F\\u0310\\u0311\\u0312\\u0313\\u0314\\u0315\\u0316\\u0317\\u0318\\u0319\\u031A\\u031B\\u031C\\u031D\\u031E\\u031F\\u0320\\u0321\\u0322\\u0323\\u0324\\u0325\\u0326\\u0327\\u0328\\u0329\\u032A\\u032B\\u032C\\u032D\\u032E\\u032F\\u0330\\u0331\\u0332\\u0333\\u0334\\u0335\\u0336\\u0337\\u0338\\u0339\\u033A\\u033B\\u033C\\u033D\\u033E\\u033F\\u0340\\u0341\\u0342\\u0343\\u0344\\u0345\\u0346\\u0347\\u0348\\u0349\\u034A\\u034B\\u034C\\u034D\\u034E\\u034F\\u0350\\u0351\\u0352\\u0353\\u0354\\u0355\\u0356\\u0357\\u0358\\u0359\\u035A\\u035B\\u035C\\u035D\\u035E\\u035F\\u0360\\u0361\\u0362\\u0363\\u0364\\u0365\\u0366\\u0367\\u0368\\u0369\\u036A\\u036B\\u036C\\u036D\\u036E\\u036F\\u0483\\u0484\\u0485\\u0486\\u0487\\u0591\\u0592\\u0593\\u0594\\u0595\\u0596\\u0597\\u0598\\u0599\\u059A\\u059B\\u059C\\u059D\\u059E\\u059F\\u05A0\\u05A1\\u05A2\\u05A3\\u05A4\\u05A5\\u05A6\\u05A7\\u05A8\\u05A9\\u05AA\\u05AB\\u05AC\\u05AD\\u05AE\\u05AF\\u05B0\\u05B1\\u05B2\\u05B3\\u05B4\\u05B5\\u05B6\\u05B7\\u05B8\\u05B9\\u05BA\\u05BB\\u05BC\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610\\u0611\\u0612\\u0613\\u0614\\u0615\\u0616\\u0617\\u0618\\u0619\\u061A\\u064B\\u064C\\u064D\\u064E\\u064F\\u0650\\u0651\\u0652\\u0653\\u0654\\u0655\\u0656\\u0657\\u0658\\u0659\\u065A\\u065B\\u065C\\u065D\\u065E\\u0670\\u06D6\\u06D7\\u06D8\\u06D9\\u06DA\\u06DB\\u06DC\\u06DF\\u06E0\\u06E1\\u06E2\\u06E3\\u06E4\\u06E7\\u06E8\\u06EA\\u06EB\\u06EC\\u06ED\\u0711\\u0730\\u0731\\u0732\\u0733\\u0734\\u0735\\u0736\\u0737\\u0738\\u0739\\u073A\\u073B\\u073C\\u073D\\u073E\\u073F\\u0740\\u0741\\u0742\\u0743\\u0744\\u0745\\u0746\\u0747\\u0748\\u0749\\u074A\\u07A6\\u07A7\\u07A8\\u07A9\\u07AA\\u07AB\\u07AC\\u07AD\\u07AE\\u07AF\\u07B0\\u07EB\\u07EC\\u07ED\\u07EE\\u07EF\\u07F0\\u07F1\\u07F2\\u07F3\\u0901\\u0902\\u093C\\u0941\\u0942\\u0943\\u0944\\u0945\\u0946\\u0947\\u0948\\u094D\\u0951\\u0952\\u0953\\u0954\\u0962\\u0963\\u0981\\u09BC\\u09C1\\u09C2\\u09C3\\u09C4\\u09CD\\u09E2\\u09E3\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B\\u0A4C\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1\\u0AC2\\u0AC3\\u0AC4\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0B01\\u0B3C\\u0B3F\\u0B41\\u0B42\\u0B43\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C3E\\u0C3F\\u0C40\\u0C46\\u0C47\\u0C48\\u0C4A\\u0C4B\\u0C4C\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0CBC\\u0CBF\\u0CC6\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D41\\u0D42\\u0D43\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2\\u0DD3\\u0DD4\\u0DD6\\u0E31\\u0E34\\u0E35\\u0E36\\u0E37\\u0E38\\u0E39\\u0E3A\\u0E47\\u0E48\\u0E49\\u0E4A\\u0E4B\\u0E4C\\u0E4D\\u0E4E\\u0EB1\\u0EB4\\u0EB5\\u0EB6\\u0EB7\\u0EB8\\u0EB9\\u0EBB\\u0EBC\\u0EC8\\u0EC9\\u0ECA\\u0ECB\\u0ECC\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71\\u0F72\\u0F73\\u0F74\\u0F75\\u0F76\\u0F77\\u0F78\\u0F79\\u0F7A\\u0F7B\\u0F7C\\u0F7D\\u0F7E\\u0F80\\u0F81\\u0F82\\u0F83\\u0F84\\u0F86\\u0F87\\u0F90\\u0F91\\u0F92\\u0F93\\u0F94\\u0F95\\u0F96\\u0F97\\u0F99\\u0F9A\\u0F9B\\u0F9C\\u0F9D\\u0F9E\\u0F9F\\u0FA0\\u0FA1\\u0FA2\\u0FA3\\u0FA4\\u0FA5\\u0FA6\\u0FA7\\u0FA8\\u0FA9\\u0FAA\\u0FAB\\u0FAC\\u0FAD\\u0FAE\\u0FAF\\u0FB0\\u0FB1\\u0FB2\\u0FB3\\u0FB4\\u0FB5\\u0FB6\\u0FB7\\u0FB8\\u0FB9\\u0FBA\\u0FBB\\u0FBC\\u0FC6\\u102D\\u102E\\u102F\\u1030\\u1032\\u1033\\u1034\\u1035\\u1036\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E\\u105F\\u1060\\u1071\\u1072\\u1073\\u1074\\u1082\\u1085\\u1086\\u108D\\u135F\\u1712\\u1713\\u1714\\u1732\\u1733\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B7\\u17B8\\u17B9\\u17BA\\u17BB\\u17BC\\u17BD\\u17C6\\u17C9\\u17CA\\u17CB\\u17CC\\u17CD\\u17CE\\u17CF\\u17D0\\u17D1\\u17D2\\u17D3\\u17DD\\u180B\\u180C\\u180D\\u18A9\\u1920\\u1921\\u1922\\u1927\\u1928\\u1932\\u1939\\u193A\\u193B\\u1A17\\u1A18\\u1B00\\u1B01\\u1B02\\u1B03\\u1B34\\u1B36\\u1B37\\u1B38\\u1B39\\u1B3A\\u1B3C\\u1B42\\u1B6B\\u1B6C\\u1B6D\\u1B6E\\u1B6F\\u1B70\\u1B71\\u1B72\\u1B73\\u1B80\\u1B81\\u1BA2\\u1BA3\\u1BA4\\u1BA5\\u1BA8\\u1BA9\\u1C2C\\u1C2D\\u1C2E\\u1C2F\\u1C30\\u1C31\\u1C32\\u1C33\\u1C36\\u1C37\\u1DC0\\u1DC1\\u1DC2\\u1DC3\\u1DC4\\u1DC5\\u1DC6\\u1DC7\\u1DC8\\u1DC9\\u1DCA\\u1DCB\\u1DCC\\u1DCD\\u1DCE\\u1DCF\\u1DD0\\u1DD1\\u1DD2\\u1DD3\\u1DD4\\u1DD5\\u1DD6\\u1DD7\\u1DD8\\u1DD9\\u1DDA\\u1DDB\\u1DDC\\u1DDD\\u1DDE\\u1DDF\\u1DE0\\u1DE1\\u1DE2\\u1DE3\\u1DE4\\u1DE5\\u1DE6\\u1DFE\\u1DFF\\u20D0\\u20D1\\u20D2\\u20D3\\u20D4\\u20D5\\u20D6\\u20D7\\u20D8\\u20D9\\u20DA\\u20DB\\u20DC\\u20E1\\u20E5\\u20E6\\u20E7\\u20E8\\u20E9\\u20EA\\u20EB\\u20EC\\u20ED\\u20EE\\u20EF\\u20F0\\u2DE0\\u2DE1\\u2DE2\\u2DE3\\u2DE4\\u2DE5\\u2DE6\\u2DE7\\u2DE8\\u2DE9\\u2DEA\\u2DEB\\u2DEC\\u2DED\\u2DEE\\u2DEF\\u2DF0\\u2DF1\\u2DF2\\u2DF3\\u2DF4\\u2DF5\\u2DF6\\u2DF7\\u2DF8\\u2DF9\\u2DFA\\u2DFB\\u2DFC\\u2DFD\\u2DFE\\u2DFF\\u302A\\u302B\\u302C\\u302D\\u302E\\u302F\\u3099\\u309A\\uA66F\\uA67C\\uA67D\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA8C4\\uA926\\uA927\\uA928\\uA929\\uA92A\\uA92B\\uA92C\\uA92D\\uA947\\uA948\\uA949\\uA94A\\uA94B\\uA94C\\uA94D\\uA94E\\uA94F\\uA950\\uA951\\uAA29\\uAA2A\\uAA2B\\uAA2C\\uAA2D\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uFB1E\\uFE00\\uFE01\\uFE02\\uFE03\\uFE04\\uFE05\\uFE06\\uFE07\\uFE08\\uFE09\\uFE0A\\uFE0B\\uFE0C\\uFE0D\\uFE0E\\uFE0F\\uFE20\\uFE21\\uFE22\\uFE23\\uFE24\\uFE25\\uFE26]"); - } - } - return result0; - } - - function parse_Nd() { - var result0; - - if (/^[0123456789\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6\u06F7\u06F8\u06F9\u07C0\u07C1\u07C2\u07C3\u07C4\u07C5\u07C6\u07C7\u07C8\u07C9\u0966\u0967\u0968\u0969\u096A\u096B\u096C\u096D\u096E\u096F\u09E6\u09E7\u09E8\u09E9\u09EA\u09EB\u09EC\u09ED\u09EE\u09EF\u0A66\u0A67\u0A68\u0A69\u0A6A\u0A6B\u0A6C\u0A6D\u0A6E\u0A6F\u0AE6\u0AE7\u0AE8\u0AE9\u0AEA\u0AEB\u0AEC\u0AED\u0AEE\u0AEF\u0B66\u0B67\u0B68\u0B69\u0B6A\u0B6B\u0B6C\u0B6D\u0B6E\u0B6F\u0BE6\u0BE7\u0BE8\u0BE9\u0BEA\u0BEB\u0BEC\u0BED\u0BEE\u0BEF\u0C66\u0C67\u0C68\u0C69\u0C6A\u0C6B\u0C6C\u0C6D\u0C6E\u0C6F\u0CE6\u0CE7\u0CE8\u0CE9\u0CEA\u0CEB\u0CEC\u0CED\u0CEE\u0CEF\u0D66\u0D67\u0D68\u0D69\u0D6A\u0D6B\u0D6C\u0D6D\u0D6E\u0D6F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\u0F20\u0F21\u0F22\u0F23\u0F24\u0F25\u0F26\u0F27\u0F28\u0F29\u1040\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1090\u1091\u1092\u1093\u1094\u1095\u1096\u1097\u1098\u1099\u17E0\u17E1\u17E2\u17E3\u17E4\u17E5\u17E6\u17E7\u17E8\u17E9\u1810\u1811\u1812\u1813\u1814\u1815\u1816\u1817\u1818\u1819\u1946\u1947\u1948\u1949\u194A\u194B\u194C\u194D\u194E\u194F\u19D0\u19D1\u19D2\u19D3\u19D4\u19D5\u19D6\u19D7\u19D8\u19D9\u1B50\u1B51\u1B52\u1B53\u1B54\u1B55\u1B56\u1B57\u1B58\u1B59\u1BB0\u1BB1\u1BB2\u1BB3\u1BB4\u1BB5\u1BB6\u1BB7\u1BB8\u1BB9\u1C40\u1C41\u1C42\u1C43\u1C44\u1C45\u1C46\u1C47\u1C48\u1C49\u1C50\u1C51\u1C52\u1C53\u1C54\u1C55\u1C56\u1C57\u1C58\u1C59\uA620\uA621\uA622\uA623\uA624\uA625\uA626\uA627\uA628\uA629\uA8D0\uA8D1\uA8D2\uA8D3\uA8D4\uA8D5\uA8D6\uA8D7\uA8D8\uA8D9\uA900\uA901\uA902\uA903\uA904\uA905\uA906\uA907\uA908\uA909\uAA50\uAA51\uAA52\uAA53\uAA54\uAA55\uAA56\uAA57\uAA58\uAA59\uFF10\uFF11\uFF12\uFF13\uFF14\uFF15\uFF16\uFF17\uFF18\uFF19]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[0123456789\\u0660\\u0661\\u0662\\u0663\\u0664\\u0665\\u0666\\u0667\\u0668\\u0669\\u06F0\\u06F1\\u06F2\\u06F3\\u06F4\\u06F5\\u06F6\\u06F7\\u06F8\\u06F9\\u07C0\\u07C1\\u07C2\\u07C3\\u07C4\\u07C5\\u07C6\\u07C7\\u07C8\\u07C9\\u0966\\u0967\\u0968\\u0969\\u096A\\u096B\\u096C\\u096D\\u096E\\u096F\\u09E6\\u09E7\\u09E8\\u09E9\\u09EA\\u09EB\\u09EC\\u09ED\\u09EE\\u09EF\\u0A66\\u0A67\\u0A68\\u0A69\\u0A6A\\u0A6B\\u0A6C\\u0A6D\\u0A6E\\u0A6F\\u0AE6\\u0AE7\\u0AE8\\u0AE9\\u0AEA\\u0AEB\\u0AEC\\u0AED\\u0AEE\\u0AEF\\u0B66\\u0B67\\u0B68\\u0B69\\u0B6A\\u0B6B\\u0B6C\\u0B6D\\u0B6E\\u0B6F\\u0BE6\\u0BE7\\u0BE8\\u0BE9\\u0BEA\\u0BEB\\u0BEC\\u0BED\\u0BEE\\u0BEF\\u0C66\\u0C67\\u0C68\\u0C69\\u0C6A\\u0C6B\\u0C6C\\u0C6D\\u0C6E\\u0C6F\\u0CE6\\u0CE7\\u0CE8\\u0CE9\\u0CEA\\u0CEB\\u0CEC\\u0CED\\u0CEE\\u0CEF\\u0D66\\u0D67\\u0D68\\u0D69\\u0D6A\\u0D6B\\u0D6C\\u0D6D\\u0D6E\\u0D6F\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\\u0ED0\\u0ED1\\u0ED2\\u0ED3\\u0ED4\\u0ED5\\u0ED6\\u0ED7\\u0ED8\\u0ED9\\u0F20\\u0F21\\u0F22\\u0F23\\u0F24\\u0F25\\u0F26\\u0F27\\u0F28\\u0F29\\u1040\\u1041\\u1042\\u1043\\u1044\\u1045\\u1046\\u1047\\u1048\\u1049\\u1090\\u1091\\u1092\\u1093\\u1094\\u1095\\u1096\\u1097\\u1098\\u1099\\u17E0\\u17E1\\u17E2\\u17E3\\u17E4\\u17E5\\u17E6\\u17E7\\u17E8\\u17E9\\u1810\\u1811\\u1812\\u1813\\u1814\\u1815\\u1816\\u1817\\u1818\\u1819\\u1946\\u1947\\u1948\\u1949\\u194A\\u194B\\u194C\\u194D\\u194E\\u194F\\u19D0\\u19D1\\u19D2\\u19D3\\u19D4\\u19D5\\u19D6\\u19D7\\u19D8\\u19D9\\u1B50\\u1B51\\u1B52\\u1B53\\u1B54\\u1B55\\u1B56\\u1B57\\u1B58\\u1B59\\u1BB0\\u1BB1\\u1BB2\\u1BB3\\u1BB4\\u1BB5\\u1BB6\\u1BB7\\u1BB8\\u1BB9\\u1C40\\u1C41\\u1C42\\u1C43\\u1C44\\u1C45\\u1C46\\u1C47\\u1C48\\u1C49\\u1C50\\u1C51\\u1C52\\u1C53\\u1C54\\u1C55\\u1C56\\u1C57\\u1C58\\u1C59\\uA620\\uA621\\uA622\\uA623\\uA624\\uA625\\uA626\\uA627\\uA628\\uA629\\uA8D0\\uA8D1\\uA8D2\\uA8D3\\uA8D4\\uA8D5\\uA8D6\\uA8D7\\uA8D8\\uA8D9\\uA900\\uA901\\uA902\\uA903\\uA904\\uA905\\uA906\\uA907\\uA908\\uA909\\uAA50\\uAA51\\uAA52\\uAA53\\uAA54\\uAA55\\uAA56\\uAA57\\uAA58\\uAA59\\uFF10\\uFF11\\uFF12\\uFF13\\uFF14\\uFF15\\uFF16\\uFF17\\uFF18\\uFF19]"); - } - } - return result0; - } - - function parse_Nl() { - var result0; - - if (/^[\u16EE\u16EF\u16F0\u2160\u2161\u2162\u2163\u2164\u2165\u2166\u2167\u2168\u2169\u216A\u216B\u216C\u216D\u216E\u216F\u2170\u2171\u2172\u2173\u2174\u2175\u2176\u2177\u2178\u2179\u217A\u217B\u217C\u217D\u217E\u217F\u2180\u2181\u2182\u2185\u2186\u2187\u2188\u3007\u3021\u3022\u3023\u3024\u3025\u3026\u3027\u3028\u3029\u3038\u3039\u303A]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\u16EE\\u16EF\\u16F0\\u2160\\u2161\\u2162\\u2163\\u2164\\u2165\\u2166\\u2167\\u2168\\u2169\\u216A\\u216B\\u216C\\u216D\\u216E\\u216F\\u2170\\u2171\\u2172\\u2173\\u2174\\u2175\\u2176\\u2177\\u2178\\u2179\\u217A\\u217B\\u217C\\u217D\\u217E\\u217F\\u2180\\u2181\\u2182\\u2185\\u2186\\u2187\\u2188\\u3007\\u3021\\u3022\\u3023\\u3024\\u3025\\u3026\\u3027\\u3028\\u3029\\u3038\\u3039\\u303A]"); - } - } - return result0; - } - - function parse_Pc() { - var result0; - - if (/^[_\u203F\u2040\u2054\uFE33\uFE34\uFE4D\uFE4E\uFE4F\uFF3F]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[_\\u203F\\u2040\\u2054\\uFE33\\uFE34\\uFE4D\\uFE4E\\uFE4F\\uFF3F]"); - } - } - return result0; - } - - function parse_Zs() { - var result0; - - if (/^[ \xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[ \\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000]"); - } - } - return result0; - } - - function parse_blank() { - var result0, result1; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = []; - result1 = parse_Comment(); - if (result1 === null) { - if (/^[ \t]/.test(input.charAt(pos))) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("[ \\t]"); - } - } - } - while (result1 !== null) { - result0.push(result1); - result1 = parse_Comment(); - if (result1 === null) { - if (/^[ \t]/.test(input.charAt(pos))) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("[ \\t]"); - } - } - } - } - if (result0 !== null) { - result1 = parse_EOL(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return undefined; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EOL() { - var result0; - - if (input.substr(pos, 2) === "\r\n") { - result0 = "\r\n"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\r\\n\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 10) { - result0 = "\n"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\n\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 13) { - result0 = "\r"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\r\""); - } - } - } - } - return result0; - } - - function parse_SAMEDENT() { - var result0, result1; - var pos0, pos1; - - pos0 = pos; - result0 = []; - if (/^[ \t]/.test(input.charAt(pos))) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("[ \\t]"); - } - } - if (result1 === null) { - pos1 = pos; - result1 = parse_Comment(); - if (result1 !== null) { - result1 = (function(offset) { return ""})(pos1); - } - if (result1 === null) { - pos = pos1; - } - } - while (result1 !== null) { - result0.push(result1); - if (/^[ \t]/.test(input.charAt(pos))) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("[ \\t]"); - } - } - if (result1 === null) { - pos1 = pos; - result1 = parse_Comment(); - if (result1 !== null) { - result1 = (function(offset) { return ""})(pos1); - } - if (result1 === null) { - pos = pos1; - } - } - } - if (result0 !== null) { - result1 = (function(offset, i) { return i.join("") === indent; })(pos, result0) ? "" : null; - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - return result0; - } - - function parse_INDENT() { - var result0, result1, result2, result3, result4; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - pos3 = pos; - result1 = []; - result2 = parse_Comment(); - while (result2 !== null) { - result1.push(result2); - result2 = parse_Comment(); - } - if (result1 !== null) { - if (/^[ \t]/.test(input.charAt(pos))) { - result2 = input.charAt(pos); - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("[ \\t]"); - } - } - if (result2 !== null) { - result3 = []; - result4 = parse_Comment(); - while (result4 !== null) { - result3.push(result4); - result4 = parse_Comment(); - } - if (result3 !== null) { - result1 = [result1, result2, result3]; - } else { - result1 = null; - pos = pos3; - } - } else { - result1 = null; - pos = pos3; - } - } else { - result1 = null; - pos = pos3; - } - if (result1 !== null) { - result1 = (function(offset, m) {return m[1]})(pos2, result1); - } - if (result1 === null) { - pos = pos2; - } - if (result1 !== null) { - result0 = []; - while (result1 !== null) { - result0.push(result1); - pos2 = pos; - pos3 = pos; - result1 = []; - result2 = parse_Comment(); - while (result2 !== null) { - result1.push(result2); - result2 = parse_Comment(); - } - if (result1 !== null) { - if (/^[ \t]/.test(input.charAt(pos))) { - result2 = input.charAt(pos); - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("[ \\t]"); - } - } - if (result2 !== null) { - result3 = []; - result4 = parse_Comment(); - while (result4 !== null) { - result3.push(result4); - result4 = parse_Comment(); - } - if (result3 !== null) { - result1 = [result1, result2, result3]; - } else { - result1 = null; - pos = pos3; - } - } else { - result1 = null; - pos = pos3; - } - } else { - result1 = null; - pos = pos3; - } - if (result1 !== null) { - result1 = (function(offset, m) {return m[1]})(pos2, result1); - } - if (result1 === null) { - pos = pos2; - } - } - } else { - result0 = null; - } - if (result0 !== null) { - result1 = (function(offset, i) { return i.length > indent.length; })(pos, result0) ? "" : null; - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, i) { indentStack.push(indent); indent = i.join(""); pos = offset; })(pos0, result0[0]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_DEDENT() { - var result0; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = []; - if (result0 !== null) { - result0 = (function(offset) { indent = indentStack.pop(); })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - - function cleanupExpected(expected) { - expected.sort(); - - var lastExpected = null; - var cleanExpected = []; - for (var i = 0; i < expected.length; i++) { - if (expected[i] !== lastExpected) { - cleanExpected.push(expected[i]); - lastExpected = expected[i]; - } - } - return cleanExpected; - } - - function computeErrorPosition() { - /* - * The first idea was to use |String.split| to break the input up to the - * error position along newlines and derive the line and column from - * there. However IE's |split| implementation is so broken that it was - * enough to prevent it. - */ - - var line = 1; - var column = 1; - var seenCR = false; - - for (var i = 0; i < Math.max(pos, rightmostFailuresPos); i++) { - var ch = input.charAt(i); - if (ch === "\n") { - if (!seenCR) { line++; } - column = 1; - seenCR = false; - } else if (ch === "\r" || ch === "\u2028" || ch === "\u2029") { - line++; - column = 1; - seenCR = true; - } else { - column++; - seenCR = false; - } - } - - return { line: line, column: column }; - } - - var indentStack = [], indent = ""; - - var result = parseFunctions[startRule](); - - /* - * The parser is now in one of the following three states: - * - * 1. The parser successfully parsed the whole input. - * - * - |result !== null| - * - |pos === input.length| - * - |rightmostFailuresExpected| may or may not contain something - * - * 2. The parser successfully parsed only a part of the input. - * - * - |result !== null| - * - |pos < input.length| - * - |rightmostFailuresExpected| may or may not contain something - * - * 3. The parser did not successfully parse any part of the input. - * - * - |result === null| - * - |pos === 0| - * - |rightmostFailuresExpected| contains at least one failure - * - * All code following this comment (including called functions) must - * handle these states. - */ - if (result === null || pos !== input.length) { - var offset = Math.max(pos, rightmostFailuresPos); - var found = offset < input.length ? input.charAt(offset) : null; - var errorPosition = computeErrorPosition(); - - throw new this.SyntaxError( - cleanupExpected(rightmostFailuresExpected), - found, - offset, - errorPosition.line, - errorPosition.column - ); - } - - return result; - }, - - /* Returns the parser source code. */ - toSource: function() { return this._source; } - }; - - /* Thrown when a parser encounters a syntax error. */ - - result.SyntaxError = function(expected, found, offset, line, column) { - function buildMessage(expected, found) { - var expectedHumanized, foundHumanized; - - switch (expected.length) { - case 0: - expectedHumanized = "end of input"; - break; - case 1: - expectedHumanized = expected[0]; - break; - default: - expectedHumanized = expected.slice(0, expected.length - 1).join(", ") - + " or " - + expected[expected.length - 1]; - } - - foundHumanized = found ? quote(found) : "end of input"; - - return "Expected " + expectedHumanized + " but " + foundHumanized + " found."; - } - - this.name = "SyntaxError"; - this.expected = expected; - this.found = found; - this.message = buildMessage(expected, found); - this.offset = offset; - this.line = line; - this.column = column; - }; - - result.SyntaxError.prototype = Error.prototype; - - return result; -})();mammouth.LineTerminatorParser = (function(){ - /* - * Generated by PEG.js 0.7.0. - * - * http://pegjs.majda.cz/ - */ - - function quote(s) { - /* - * ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a - * string literal except for the closing quote character, backslash, - * carriage return, line separator, paragraph separator, and line feed. - * Any character may appear in the form of an escape sequence. - * - * For portability, we also escape escape all control and non-ASCII - * characters. Note that "\0" and "\v" escape sequences are not used - * because JSHint does not like the first and IE the second. - */ - return '"' + s - .replace(/\\/g, '\\\\') // backslash - .replace(/"/g, '\\"') // closing quote character - .replace(/\x08/g, '\\b') // backspace - .replace(/\t/g, '\\t') // horizontal tab - .replace(/\n/g, '\\n') // line feed - .replace(/\f/g, '\\f') // form feed - .replace(/\r/g, '\\r') // carriage return - .replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g, escape) - + '"'; - } - - var result = { - /* - * Parses the input with a generated parser. If the parsing is successfull, - * returns a value explicitly or implicitly specified by the grammar from - * which the parser was generated (see |PEG.buildParser|). If the parsing is - * unsuccessful, throws |PEG.parser.SyntaxError| describing the error. - */ - parse: function(input, startRule) { - var parseFunctions = { - "start": parse_start, - "LineTerminator": parse_LineTerminator, - "LineTerminatorSequence": parse_LineTerminatorSequence - }; - - if (startRule !== undefined) { - if (parseFunctions[startRule] === undefined) { - throw new Error("Invalid rule name: " + quote(startRule) + "."); - } - } else { - startRule = "start"; - } - - var pos = 0; - var reportFailures = 0; - var rightmostFailuresPos = 0; - var rightmostFailuresExpected = []; - - function padLeft(input, padding, length) { - var result = input; - - var padLength = length - input.length; - for (var i = 0; i < padLength; i++) { - result = padding + result; - } - - return result; - } - - function escape(ch) { - var charCode = ch.charCodeAt(0); - var escapeChar; - var length; - - if (charCode <= 0xFF) { - escapeChar = 'x'; - length = 2; - } else { - escapeChar = 'u'; - length = 4; - } - - return '\\' + escapeChar + padLeft(charCode.toString(16).toUpperCase(), '0', length); - } - - function matchFailed(failure) { - if (pos < rightmostFailuresPos) { - return; - } - - if (pos > rightmostFailuresPos) { - rightmostFailuresPos = pos; - rightmostFailuresExpected = []; - } - - rightmostFailuresExpected.push(failure); - } - - function parse_start() { - var result0, result1, result2, result3; - var pos0, pos1, pos2, pos3, pos4; - - pos0 = pos; - pos1 = pos; - result0 = []; - pos2 = pos; - result1 = []; - pos3 = pos; - pos4 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos4; - } - if (result2 !== null) { - if (input.length > pos) { - result3 = input.charAt(pos); - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - while (result2 !== null) { - result1.push(result2); - pos3 = pos; - pos4 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos4; - } - if (result2 !== null) { - if (input.length > pos) { - result3 = input.charAt(pos); - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } - if (result1 !== null) { - result2 = parse_LineTerminator(); - if (result2 !== null) { - result1 = [result1, result2]; - } else { - result1 = null; - pos = pos2; - } - } else { - result1 = null; - pos = pos2; - } - while (result1 !== null) { - result0.push(result1); - pos2 = pos; - result1 = []; - pos3 = pos; - pos4 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos4; - } - if (result2 !== null) { - if (input.length > pos) { - result3 = input.charAt(pos); - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - while (result2 !== null) { - result1.push(result2); - pos3 = pos; - pos4 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos4; - } - if (result2 !== null) { - if (input.length > pos) { - result3 = input.charAt(pos); - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } - if (result1 !== null) { - result2 = parse_LineTerminator(); - if (result2 !== null) { - result1 = [result1, result2]; - } else { - result1 = null; - pos = pos2; - } - } else { - result1 = null; - pos = pos2; - } - } - if (result0 !== null) { - pos2 = pos; - result1 = []; - pos3 = pos; - pos4 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos4; - } - if (result2 !== null) { - if (input.length > pos) { - result3 = input.charAt(pos); - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - while (result2 !== null) { - result1.push(result2); - pos3 = pos; - pos4 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos4; - } - if (result2 !== null) { - if (input.length > pos) { - result3 = input.charAt(pos); - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } - if (result1 !== null) { - result2 = parse_LineTerminator(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result1 = [result1, result2]; - } else { - result1 = null; - pos = pos2; - } - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, b, n) { - var line = []; - for(var i = 0; i < b.length;i++) { - var m =[]; - for(var o = 0; o < b[i][0].length; o++) { - m.push(b[i][0][o][1]); - } - line.push(m.join('')) - } - var m =[]; - for(var o = 0; o < n[0].length; o++) { - m.push(n[0][o][1]); - } - line.push(m.join('')) - return line; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_LineTerminator() { - var result0; - - if (/^[\n\x0B\r\u2028\u2029]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\n\\x0B\\r\\u2028\\u2029]"); - } - } - if (result0 === null) { - result0 = parse_LineTerminatorSequence(); - } - return result0; - } - - function parse_LineTerminatorSequence() { - var result0; - - reportFailures++; - if (input.charCodeAt(pos) === 10) { - result0 = "\n"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\n\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "\r\n") { - result0 = "\r\n"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\r\\n\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 13) { - result0 = "\r"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\r\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 8232) { - result0 = "\u2028"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\u2028\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 8233) { - result0 = "\u2029"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\u2029\""); - } - } - } - } - } - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("end of line"); - } - return result0; - } - - - function cleanupExpected(expected) { - expected.sort(); - - var lastExpected = null; - var cleanExpected = []; - for (var i = 0; i < expected.length; i++) { - if (expected[i] !== lastExpected) { - cleanExpected.push(expected[i]); - lastExpected = expected[i]; - } - } - return cleanExpected; - } - - function computeErrorPosition() { - /* - * The first idea was to use |String.split| to break the input up to the - * error position along newlines and derive the line and column from - * there. However IE's |split| implementation is so broken that it was - * enough to prevent it. - */ - - var line = 1; - var column = 1; - var seenCR = false; - - for (var i = 0; i < Math.max(pos, rightmostFailuresPos); i++) { - var ch = input.charAt(i); - if (ch === "\n") { - if (!seenCR) { line++; } - column = 1; - seenCR = false; - } else if (ch === "\r" || ch === "\u2028" || ch === "\u2029") { - line++; - column = 1; - seenCR = true; - } else { - column++; - seenCR = false; - } - } - - return { line: line, column: column }; - } - - - var result = parseFunctions[startRule](); - - /* - * The parser is now in one of the following three states: - * - * 1. The parser successfully parsed the whole input. - * - * - |result !== null| - * - |pos === input.length| - * - |rightmostFailuresExpected| may or may not contain something - * - * 2. The parser successfully parsed only a part of the input. - * - * - |result !== null| - * - |pos < input.length| - * - |rightmostFailuresExpected| may or may not contain something - * - * 3. The parser did not successfully parse any part of the input. - * - * - |result === null| - * - |pos === 0| - * - |rightmostFailuresExpected| contains at least one failure - * - * All code following this comment (including called functions) must - * handle these states. - */ - if (result === null || pos !== input.length) { - var offset = Math.max(pos, rightmostFailuresPos); - var found = offset < input.length ? input.charAt(offset) : null; - var errorPosition = computeErrorPosition(); - - throw new this.SyntaxError( - cleanupExpected(rightmostFailuresExpected), - found, - offset, - errorPosition.line, - errorPosition.column - ); - } - - return result; - }, - - /* Returns the parser source code. */ - toSource: function() { return this._source; } - }; - - /* Thrown when a parser encounters a syntax error. */ - - result.SyntaxError = function(expected, found, offset, line, column) { - function buildMessage(expected, found) { - var expectedHumanized, foundHumanized; - - switch (expected.length) { - case 0: - expectedHumanized = "end of input"; - break; - case 1: - expectedHumanized = expected[0]; - break; - default: - expectedHumanized = expected.slice(0, expected.length - 1).join(", ") - + " or " - + expected[expected.length - 1]; - } - - foundHumanized = found ? quote(found) : "end of input"; - - return "Expected " + expectedHumanized + " but " + foundHumanized + " found."; - } - - this.name = "SyntaxError"; - this.expected = expected; - this.found = found; - this.message = buildMessage(expected, found); - this.offset = offset; - this.line = line; - this.column = column; - }; - - result.SyntaxError.prototype = Error.prototype; - - return result; -})();mammouth.Tokens = { - NewToken: 'new', - FunctionToken: 'function', - IfToken: 'if', - ElseToken: 'else', - ForToken: 'for', - WhileToken: 'while', - SwitchToken: 'switch', - CaseToken: 'case', - DefaultToken: 'default', - TryToken: 'try', - CatchToken: 'catch', - FinallyToken: 'finally', - NamespaceToken: 'namespace', - ClassToken: 'class', - ContinueToken: 'continue', - BreakToken: 'break', - EchoToken: 'echo', - ReturnToken: 'return', - IncludeToken: 'include', - Include_onceToken: 'include_once', - RequireToken: 'require', - Require_onceToken: 'require_once' -}; -mammouth.helpers = { - slice_php_function: "function _m_slice($var, $start, $end) {if(gettype($var)=='string') {return substr($var, $start, $end);} elseif(gettype($var)=='array') {return array_slice($var, $start, $end);}}", - len_php_function: "function _m_len($var) {if(gettype($var)=='string') {return strlen($var);} elseif(gettype($var)=='array') {return count($var);}}" -}; -mammouth.VERSION = '0.2.3'; -mammouth.compile = function(code) { - Tokens = mammouth.Tokens; - var Use_Slice_Function = false; - var Added_Slice_Function = false; - var Use_Len_Function = false; - var Added_Len_Function = false; - FunctionInAssignment = function(seq) { - var r = Tokens.FunctionToken; - var arguments = '('; - for (var i = 0; i < seq.right.params.length; i++) { - if( i != 0 ) { - arguments += ', ' - } - arguments += evalStatement(seq.right.params[i]); - }; - arguments += ')'; - r += arguments; - r += ' {'; - if(seq.right.body != null) { - var body = ''; - for(var j = 0; j < seq.right.body.length; j++) { - if(typeof seq.right.body[j] == 'undefined') { - body += '\n'; - } else { - seq.right.body[j].only = true; - if(typeof seq.right.body[j] == 'string') { - body += evalStatement(seq.right.body[j]); - } else { - body += evalStatement(seq.right.body[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.right.body.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - } - r += '}'; - return r; - }; - evalStatement = function(seq) { - if(typeof seq == 'string') { - return seq; - } - if(seq == null) { - return ''; - } - switch(seq.type) { - case 'embed': - return seq.content; - case 'block': - var r = ''; - for(var i = 0; i < seq.elements.length; i++) { - if(typeof seq.elements[i] == 'undefined') { - - } else { - seq.elements[i].only = true; - if(typeof seq.elements[i] == 'string') { - r += evalStatement(seq.elements[i]); - } else { - r += evalStatement(seq.elements[i]) + '\n'; - } - } - } - if(Use_Slice_Function == true && Added_Slice_Function == false) { - r = mammouth.helpers.slice_php_function + '\n' + r; - Added_Slice_Function = true; - } - if(Use_Len_Function == true && Added_Len_Function == false) { - r = mammouth.helpers.len_php_function + '\n' + r; - Added_Len_Function = true; - } - r = ''; - case 'blockwithoutbra': - var r = ''; - for(var i = 0; i < seq.elements.length; i++) { - if(typeof seq.elements[i] == 'undefined') { - r += '\n'; - } else { - seq.elements[i].only = true; - if(typeof seq.elements[i] == 'string') { - r += evalStatement(seq.elements[i]); - } else { - r += evalStatement(seq.elements[i]) + '\n'; - } - } - } - return r; - case 'NumericLiteral': - var r = seq.value; - if(seq.only==true) { - r += ';'; - } - return r; - case 'BooleanLiteral': - var r = seq.value; - if(seq.only==true) { - r += ';'; - } - return r; - case 'StringLiteral': - var r = "'" + seq.value + "'"; - if(seq.only==true) { - r += ';'; - } - return r; - case 'ArrayLiteral': - var r = 'array('; - var elements = ''; - if(seq.elements != '') { - for (var i = 0; i < seq.elements.length; i++) { - if( i != 0 ) { - elements += ', ' - } - elements += evalStatement(seq.elements[i]); - }; - } - r += elements + ')'; - if(seq.only==true) { - r += ';'; - } - return r; - case 'keyBasedArrayLiteral': - var r = 'array('; - var elements = ''; - if(seq.properties != '') { - for (var i = 0; i < seq.properties.length; i++) { - if( i != 0 ) { - elements += ', ' - } - elements += evalStatement(seq.properties[i]); - }; - } - r += elements + ')'; - if(seq.only==true) { - r += ';'; - } - return r; - case 'PropertyAssignment': - var n = ''; - if( typeof seq.name == 'string') { - n = "'" + seq.name + "'"; - } else { - n = seq.name; - } - return n + ' => ' + evalStatement(seq.value); - case 'EODLiteral': - r = '<<' + n; - } else if(seq.name.type == 'PropertyFields') { - n = '->{' + evalStatement(seq.name.name) +'}' - r = b + n; - } else { - n = '[' + evalStatement(seq.name) + ']' - r = b + n; - } - if(seq.only==true) { - r += ';'; - } - return r; - case 'NewOperator': - var r = Tokens.NewToken; - var constructor = evalStatement(seq.constructor); - var arguments = '('; - for (var i = 0; i < seq.arguments.length; i++) { - if( i != 0 ) { - arguments += ', ' - } - arguments += evalStatement(seq.arguments[i]); - }; - arguments += ')'; - r += ' ' + constructor + arguments; - if(seq.only == true) { - r += ';'; - } - return r; - case 'BinaryExpression': - if(seq.left.type == 'BinaryExpression') { - if(seq.left.operator != '.') { - seq.left.Parentheses = true; - } - } - var left = evalStatement(seq.left); - if(seq.right.type == 'BinaryExpression') { - if(seq.right.operator != '.') { - seq.right.Parentheses = true; - } - } - var right = evalStatement(seq.right); - if(seq.operator != '.') { - var operator = ' ' + seq.operator + ' '; - } else { - var operator = seq.operator; - } - var r = left + operator + right; - if(seq.Parentheses == true) { - r = '(' + r; - r += ')'; - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'PostfixExpression': - if(seq.expression.type == 'BinaryExpression') { - seq.expression.Parentheses = true; - } - var expression = evalStatement(seq.expression); - var operator = seq.operator; - var r = expression + operator; - if(seq.only == true) { - r += ';'; - } - return r; - case 'UnaryExpression': - if(seq.expression.type == 'BinaryExpression') { - seq.expression.Parentheses = true; - } - var expression = evalStatement(seq.expression); - var operator = seq.operator; - var r = operator + expression; - if(seq.only == true) { - r += ';'; - } - return r; - case 'AssignmentExpression': - var left = evalStatement(seq.left); - var right; - if(seq.right.type == 'Function') { - right = FunctionInAssignment(seq); - } else { - right = evalStatement(seq.right); - } - var operator = ' ' + seq.operator + ' '; - var r = left + operator + right; - if(seq.Parentheses == true) { - r = '(' + r; - r += ')'; - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'Function': - console.log('wael'); - var r = {right: seq} - return FunctionInAssignment(r); - case 'AssignmentExpressionOfFunction': - var left = evalStatement(seq.left); - var right = evalStatement(seq.right); - var operator = ' ' + seq.operator + ' '; - var r = left + operator + right; - if(seq.Parentheses == true) { - r = '(' + r; - r += ')'; - } - return r; - case 'ConditionalExpression': - if(seq.condition.type == 'BinaryExpression') { - seq.condition.Parentheses = true; - } - var condition = evalStatement(seq.condition); - var trueExpression = evalStatement(seq.trueExpression); - var falseExpression = evalStatement(seq.falseExpression); - var r = condition + ' ? ' + trueExpression + ' : ' + falseExpression; - if(seq.only == true) { - r += ';'; - } - return r; - case 'break': - var r = 'break' - if(seq.only == true) { - r += ';'; - } - return r; - case 'FunctionCall': - var name; - if(seq.name.type == 'PropertyAccess') { - name = evalStatement(seq.name); - } else { - name = evalStatement(seq.name.name); - } - var arguments = '('; - for (var i = 0; i < seq.arguments.length; i++) { - if( i != 0 ) { - arguments += ', ' - } - arguments += evalStatement(seq.arguments[i]); - }; - arguments += ')'; - r = name + arguments; - if(seq.only == true) { - r += ';'; - } - return r; - case 'SliceExpression': - var r = ''; - Use_Slice_Function = true; - var end = evalStatement(seq.end); - var start = evalStatement(seq.start); - if(seq.end == null) { - Use_Len_Function = true; - end = '_m_len(' + evalStatement(seq.slicer) + ')'; - } - if(seq.start == 0) { - start = 0; - } - r += '_m_slice(' + evalStatement(seq.slicer) + ', ' + start + ', ' + end + ')'; - if(seq.only == true) { - r += ';'; - } - return r; - case 'IfStatement': - var r = Tokens.IfToken; - var condition = '('; - condition += evalStatement(seq.condition); - condition += ')'; - r += condition; - r += ' {'; - var body = ''; - if(seq.ifStatement != null) { - for(var j = 0; j < seq.ifStatement.length; j++) { - if(typeof seq.ifStatement[j] == 'undefined') { - body += '\n'; - } else { - seq.ifStatement[j].only = true; - if(typeof seq.ifStatement[j] == 'string') { - body += evalStatement(seq.ifStatement[j]); - } else { - body += evalStatement(seq.ifStatement[j]) + '\n'; - } - } - } - r += '\n'; - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '') { - if(seq.ifStatement.length == 1) { - r += '\t' + pars[x] + '\n'; - } else { - r += '\t' + pars[x] + '\n'; - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - } else { - r += '\n' - } - r += '}'; - if(seq.elseifStatement != null) { - for (var i = 0; i < seq.elseifStatement.length; i++) { - r += ' ' + Tokens.ElseToken + Tokens.IfToken; - condition = '('; - condition += evalStatement(seq.elseifStatement[i].condition); - condition += ')'; - r += condition; - r += ' {'; - body = ''; - for(var j = 0; j < seq.elseifStatement[i].statement.length; j++) { - if(typeof seq.elseifStatement[i].statement[j] == 'undefined') { - body += '\n'; - } else { - seq.elseifStatement[i].statement[j].only = true; - if(typeof seq.elseifStatement[i][j] == 'string') { - body += evalStatement(seq.elseifStatement[i].statement[j]); - } else { - body += evalStatement(seq.elseifStatement[i].statement[j]) + '\n'; - } - } - } - r += '\n'; - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '') { - if(seq.elseifStatement[i].length == 1) { - r += '\t' + pars[x] + '\n'; - } else { - r += '\t' + pars[x] + '\n'; - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - r += '}'; - }; - } - if(seq.elseStatement != null) { - body = ''; - for(var j = 0; j < seq.elseStatement.length; j++) { - if(typeof seq.elseStatement[j] == 'undefined') { - body += '\n'; - } else { - seq.elseStatement[j].only = true; - if(typeof seq.elseStatement[j] == 'string') { - body += evalStatement(seq.elseStatement[j]); - } else { - body += evalStatement(seq.elseStatement[j]) + '\n'; - } - } - } - r += ' ' + Tokens.ElseToken; - r += ' {'; - r += '\n'; - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '') { - if(seq.elseStatement.length == 1) { - r += '\t' + pars[x] + '\n'; - } else { - r += '\t' + pars[x] + '\n'; - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - r += '}'; - } - return r; - case 'ForStatement': - var r = Tokens.ForToken + '('; - if(seq.initializer.type == 'BinaryExpression') { - if(seq.initializer.operator == 'of') { - seq.test = { - "type": "BinaryExpression", - "operator": "<", - "left": seq.initializer.left, - "right": { - "type": "FunctionCall", - "name": { - "type": "Variable", - "name": "count" - }, - "arguments": [ - seq.initializer.right - ] - } - }; - seq.counter = { - "type": "PostfixExpression", - "operator": "++", - "expression": { - "type": "Variable", - "name": "i" - } - }; - if(seq.statement !== null) { - seq.statement.splice(0, 0, { - "type": "AssignmentExpression", - "operator": "=", - "left": seq.initializer.left, - "right": { - "type": "PropertyAccess", - "base": seq.initializer.right, - "name": { - "type": "Variable", - "name": "i" - } - } - }); - } - seq.initializer = { - "type": "AssignmentExpression", - "operator": "=", - "left": { - "type": "Variable", - "name": "i" - }, - "right": { - "type": "NumericLiteral", - "value": 0 - } - }; - } - } - r += evalStatement(seq.initializer) + '; '; - r += evalStatement(seq.test) + '; '; - r += evalStatement(seq.counter); - r += ')'; - r += ' {'; - var body = ''; - if(seq.statement !== null) { - for(var j = 0; j < seq.statement.length; j++) { - if(typeof seq.statement[j] == 'undefined') { - body += '\n'; - } else { - seq.statement[j].only = true; - if(typeof seq.statement[j] == 'string') { - body += evalStatement(seq.statement[j]); - } else { - body += evalStatement(seq.statement[j]) + '\n'; - } - } - } - r += '\n'; - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '') { - if(seq.statement.length == 1) { - r += '\t' + pars[x] + '\n'; - } else { - r += '\t' + pars[x] + '\n'; - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - } else { - r += '\n'; - } - r += '}'; - return r; - case 'WhileStatement': - var r = Tokens.WhileToken + '('; - r += evalStatement(seq.condition); - r += ')'; - r += ' {'; - var body = ''; - for(var j = 0; j < seq.statement.length; j++) { - if(typeof seq.statement[j] == 'undefined') { - body += '\n'; - } else { - seq.statement[j].only = true; - if(typeof seq.statement[j] == 'string') { - body += evalStatement(seq.statement[j]); - } else { - body += evalStatement(seq.statement[j]) + '\n'; - } - } - } - if(seq.statement != "") { - body = ''; - for(var j = 0; j < seq.statement.length; j++) { - if(typeof seq.statement[j] == 'undefined') { - body += '\n'; - } else { - seq.statement[j].only = true; - if(typeof seq.statement[j] == 'string') { - body += evalStatement(seq.statement[j]); - } else { - body += evalStatement(seq.statement[j]) + '\n'; - } - } - } - r += '\n'; - pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.statement.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - if(x == 1) { - r += pars[x]; - } - } - } - } - r += '\n}'; - return r; - case 'SwitchStatement': - var r = Tokens.SwitchToken + '('; - r += evalStatement(seq.variable); - r += ')'; - r += ' {\n'; - var CasesBlock = ''; - for(var i = 0; i < seq.cases.length; i++) { - if(typeof seq.cases[i] != 'undefined') { - if(seq.cases[i].type == 'case') { - CasesBlock += Tokens.CaseToken + ' ' + evalStatement(seq.cases[i].value) + ':\n'; - if(seq.cases[i].statement != '') { - seq.cases[i].statement.push({ - type: 'break' - }) - var body = ''; - for(var j = 0; j < seq.cases[i].statement.length; j++) { - if(typeof seq.cases[i].statement[j] == 'undefined') { - body += '\n'; - } else { - seq.cases[i].statement[j].only = true; - if(typeof seq.cases[i].statement[j] == 'string') { - body += evalStatement(seq.cases[i].statement[j]); - } else { - body += evalStatement(seq.cases[i].statement[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - CasesBlock += '\t' + pars[x]; - } else { - if(seq.cases[i].statement.length == 1) { - CasesBlock += '\t' + pars[x]; - } else { - CasesBlock += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - CasesBlock += '\n'; - } else { - CasesBlock += pars[x]; - } - } - } - } - } - } - if(seq.elsed != '') { - CasesBlock += Tokens.DefaultToken + ':'; - seq.elsed.unshift(undefined); - var body = ''; - for(var j = 0; j < seq.elsed.length; j++) { - if(typeof seq.elsed[j] == 'undefined') { - body += '\n'; - } else { - seq.elsed[j].only = true; - if(typeof seq.elsed[j] == 'string') { - body += evalStatement(seq.elsed[j]); - } else { - body += evalStatement(seq.elsed[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - CasesBlock += '\t' + pars[x]; - } else { - if(seq.elsed.length == 1) { - CasesBlock += '\t' + pars[x]; - } else { - CasesBlock += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - CasesBlock += '\n'; - } else { - CasesBlock += pars[x]; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(CasesBlock); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.cases.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - r += '}'; - return r; - case 'TryStatement': - var r = Tokens.TryToken; - r += ' {\n'; - if(seq.TryStatement != null) { - var body = ''; - for(var j = 0; j < seq.TryStatement.length; j++) { - if(typeof seq.TryStatement[j] == 'undefined') { - body += '\n'; - } else { - seq.TryStatement[j].only = true; - if(typeof seq.TryStatement[j] == 'string') { - body += evalStatement(seq.TryStatement[j]); - } else { - body += evalStatement(seq.TryStatement[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.TryStatement.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - if(x == 1) { - r += '\n'; - } - } - } - } - r += '}' - r += ' ' + Tokens.CatchToken + '('; - r += seq.CatchErrVar.vtype + ' ' + evalStatement(seq.CatchErrVar.name); - r += ')'; - r += ' {\n'; - if(seq.CatchStatement != null) { - body = ''; - for(var j = 0; j < seq.CatchStatement.length; j++) { - if(typeof seq.CatchStatement[j] == 'undefined') { - body += '\n'; - } else { - seq.CatchStatement[j].only = true; - if(typeof seq.CatchStatement[j] == 'string') { - body += evalStatement(seq.CatchStatement[j]); - } else { - body += evalStatement(seq.CatchStatement[j]) + '\n'; - } - } - } - pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.CatchStatement.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - if(x == 1) { - r += '\n'; - } - } - } - } - r += '}' - if(seq.FinallyStatemnt != null) { - r += ' ' + Tokens.FinallyToken; - r += ' {\n'; - body = ''; - for(var j = 0; j < seq.FinallyStatemnt.length; j++) { - if(typeof seq.FinallyStatemnt[j] == 'undefined') { - body += '\n'; - } else { - seq.FinallyStatemnt[j].only = true; - if(typeof seq.FinallyStatemnt[j] == 'string') { - body += evalStatement(seq.FinallyStatemnt[j]); - } else { - body += evalStatement(seq.FinallyStatemnt[j]) + '\n'; - } - } - } - pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.FinallyStatemnt.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - if(x == 1) { - r += '\n'; - } - } - } - r += '}' - } - return r; - case 'FunctionDeclaration': - var r = Tokens.FunctionToken; - r += ' ' + evalStatement(seq.name); - var arguments = '('; - for (var i = 0; i < seq.params.length; i++) { - if( i != 0 ) { - arguments += ', ' - } - arguments += evalStatement(seq.params[i]); - }; - arguments += ')'; - r += arguments; - r += ' {'; - if(seq.body != null) { - var body = ''; - for(var j = 0; j < seq.body.length; j++) { - if(typeof seq.body[j] == 'undefined') { - body += '\n'; - } else { - seq.body[j].only = true; - if(typeof seq.body[j] == 'string') { - body += evalStatement(seq.body[j]); - } else { - body += evalStatement(seq.body[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.body.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - } - r += '}'; - return r; - case 'NamespaceDeclaration': - var r = Tokens.NamespaceToken + ' ' + evalStatement(seq.name); - if(seq.body != null) { - r += ' {'; - var body = ''; - for(var j = 0; j < seq.body.length; j++) { - if(typeof seq.body[j] == 'undefined') { - body += '\n'; - } else { - seq.body[j].only = true; - if(typeof seq.body[j] == 'string') { - body += evalStatement(seq.body[j]); - } else { - body += evalStatement(seq.body[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.body.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - r += '}'; - } else { - r += ';' - } - return r; - case 'NamespaceIdentifier': - var r = ''; - if(seq.start == true) { - r += '\\'; - } - for (var i = 0; i < seq.name.length; i++) { - if(i!=0) { - r += '\\' - } - r += seq.name[i]; - }; - return r; - case 'ClassDeclaration': - var r = Tokens.ClassToken + ' ' + evalStatement(seq.name); - r += ' {'; - if(seq.body != null) { - var body = ''; - for(var j = 0; j < seq.body.length; j++) { - if(typeof seq.body[j] == 'undefined') { - body += '\n'; - } else { - seq.body[j].only = true; - if(typeof seq.body[j] == 'string') { - body += evalStatement(seq.body[j]); - } else { - body += evalStatement(seq.body[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - if(pars[x] == 'EOD;' || pars[x] == 'EOT;') { - r += pars[x]; - } else { - r += '\t' + pars[x]; - } - } else { - if(seq.body.length == 1) { - if(pars[x] == 'EOD;' || pars[x] == 'EOT;') { - r += pars[x]; - } else { - r += '\t' + pars[x]; - } - } else { - if(pars[x] == 'EOD;' || pars[x] == 'EOT;') { - r += pars[x] + '\n'; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - } - r += '}'; - return r; - case 'ClassPropertyDeclaration': - var r; - if(seq.Visibility == false) { - r = 'var ' - } else { - r = seq.Visibility + ' '; - } - var left = evalStatement(seq.left); - if(seq.operator !== false) { - right = ' ' + seq.operator + ' ' + evalStatement(seq.right); - } else { - right = ''; - } - r += left + right + ';'; - return r; - case 'ClassConstPropertyDeclaration': - var r = 'const '; - var left = evalStatement(seq.left); - if(seq.operator !== false) { - right = ' ' + seq.operator + ' ' + evalStatement(seq.right); - } else { - right = ''; - } - r += left + right + ';'; - return r; - case 'ClassFunctionDeclaration': - var r; - if(seq.Visibility == false) { - r = '' - } else { - r = seq.Visibility + ' '; - } - r += Tokens.FunctionToken; - r += ' ' + evalStatement(seq.name); - var arguments = '('; - for (var i = 0; i < seq.params.length; i++) { - if( i != 0 ) { - arguments += ', ' - } - arguments += evalStatement(seq.params[i]); - }; - arguments += ')'; - r += arguments; - r += ' {\n'; - if(seq.body != null) { - var body = ''; - for(var j = 0; j < seq.body.length; j++) { - if(typeof seq.body[j] == 'undefined') { - body += '\n'; - } else { - seq.body[j].only = true; - if(typeof seq.body[j] == 'string') { - body += evalStatement(seq.body[j]); - } else { - body += evalStatement(seq.body[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.body.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - } - r += '}'; - return r; - case 'ContinueStatement': - var r = Tokens.ContinueToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'BreakStatement': - var r = Tokens.BreakToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'EchoStatement': - var r = Tokens.EchoToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'ReturnStatement': - var r = Tokens.ReturnToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'RequireStatement': - var r = Tokens.RequireToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'Require_onceStatement': - var r = Tokens.Require_onceToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'IncludeStatement': - var r = Tokens.IncludeToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'Include_onceStatement': - var r = Tokens.Include_onceToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - } - }; - var interprete = function(code){ - var r = ''; - var seq = mammouth.parser.parse(code); - console.log(seq); - for(var i = 0; i < seq.length; i++) { - r += evalStatement(seq[i]); - } - return r; - }; - var codeout = interprete(code); - return codeout; -} - - -module.exports = mammouth; diff --git a/extras/mammouth.js b/extras/mammouth.js index e5766ae..fed7150 100644 --- a/extras/mammouth.js +++ b/extras/mammouth.js @@ -1,16036 +1,4401 @@ -var mammouth = {}; -mammouth.parser = (function(){ - /* - * Generated by PEG.js 0.7.0. - * - * http://pegjs.majda.cz/ - */ - - function quote(s) { - /* - * ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a - * string literal except for the closing quote character, backslash, - * carriage return, line separator, paragraph separator, and line feed. - * Any character may appear in the form of an escape sequence. - * - * For portability, we also escape escape all control and non-ASCII - * characters. Note that "\0" and "\v" escape sequences are not used - * because JSHint does not like the first and IE the second. - */ - return '"' + s - .replace(/\\/g, '\\\\') // backslash - .replace(/"/g, '\\"') // closing quote character - .replace(/\x08/g, '\\b') // backspace - .replace(/\t/g, '\\t') // horizontal tab - .replace(/\n/g, '\\n') // line feed - .replace(/\f/g, '\\f') // form feed - .replace(/\r/g, '\\r') // carriage return - .replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g, escape) - + '"'; - } - - var result = { - /* - * Parses the input with a generated parser. If the parsing is successfull, - * returns a value explicitly or implicitly specified by the grammar from - * which the parser was generated (see |PEG.buildParser|). If the parsing is - * unsuccessful, throws |PEG.parser.SyntaxError| describing the error. - */ - parse: function(input, startRule) { - var parseFunctions = { - "start": parse_start, - "embedding": parse_embedding, - "embedding_TEXT_INNER": parse_embedding_TEXT_INNER, - "code_block": parse_code_block, - "PrimaryExpression": parse_PrimaryExpression, - "PrimaryExpressionW": parse_PrimaryExpressionW, - "Expression": parse_Expression, - "AssignmentExpression": parse_AssignmentExpression, - "SliceExpression": parse_SliceExpression, - "SliceExpressionWP": parse_SliceExpressionWP, - "FunctionExpression": parse_FunctionExpression, - "FormalParameterList": parse_FormalParameterList, - "AssignmentExpressionOfFunction": parse_AssignmentExpressionOfFunction, - "LeftHandSideAssignmentExpressionOfFunction": parse_LeftHandSideAssignmentExpressionOfFunction, - "AssignmentOperator": parse_AssignmentOperator, - "LeftHandSideExpression": parse_LeftHandSideExpression, - "LeftHandSideExpressionWP": parse_LeftHandSideExpressionWP, - "NewExpression": parse_NewExpression, - "NewExpressionWP": parse_NewExpressionWP, - "MemberExpression": parse_MemberExpression, - "MemberExpressionWP": parse_MemberExpressionWP, - "CallExpression": parse_CallExpression, - "CallExpressionWP": parse_CallExpressionWP, - "Arguments": parse_Arguments, - "ArgumentList": parse_ArgumentList, - "ConditionalExpression": parse_ConditionalExpression, - "LogicalORExpression": parse_LogicalORExpression, - "LogicalOROperator": parse_LogicalOROperator, - "LogicalANDExpression": parse_LogicalANDExpression, - "LogicalANDOperator": parse_LogicalANDOperator, - "BitwiseORExpression": parse_BitwiseORExpression, - "BitwiseOROperator": parse_BitwiseOROperator, - "BitwiseXORExpression": parse_BitwiseXORExpression, - "BitwiseXOROperator": parse_BitwiseXOROperator, - "BitwiseANDExpression": parse_BitwiseANDExpression, - "BitwiseANDOperator": parse_BitwiseANDOperator, - "EqualityExpression": parse_EqualityExpression, - "EqualityOperator": parse_EqualityOperator, - "ShiftExpression": parse_ShiftExpression, - "ShiftOperator": parse_ShiftOperator, - "RelationalExpression": parse_RelationalExpression, - "RelationalOperator": parse_RelationalOperator, - "PostfixExpression": parse_PostfixExpression, - "PostfixOperator": parse_PostfixOperator, - "UnaryExpression": parse_UnaryExpression, - "UnaryOperator": parse_UnaryOperator, - "MultiplicativeExpression": parse_MultiplicativeExpression, - "MultiplicativeOperator": parse_MultiplicativeOperator, - "AdditiveExpression": parse_AdditiveExpression, - "DotAddExpression": parse_DotAddExpression, - "AdditiveOperator": parse_AdditiveOperator, - "statements": parse_statements, - "statement": parse_statement, - "statementNoSameDENT": parse_statementNoSameDENT, - "ExpressionStatement": parse_ExpressionStatement, - "FunctionInLineCall": parse_FunctionInLineCall, - "CallExpression": parse_CallExpression, - "ArgumentsForInline": parse_ArgumentsForInline, - "IfStatement": parse_IfStatement, - "ForStatement": parse_ForStatement, - "WhileStatement": parse_WhileStatement, - "SwitchStatement": parse_SwitchStatement, - "SwitchCase": parse_SwitchCase, - "SwitchElse": parse_SwitchElse, - "BreakStatement": parse_BreakStatement, - "TryStatement": parse_TryStatement, - "CatchErrVar": parse_CatchErrVar, - "FunctionDeclaration": parse_FunctionDeclaration, - "NamespaceDeclaration": parse_NamespaceDeclaration, - "NamespaceId": parse_NamespaceId, - "ClassDeclaration": parse_ClassDeclaration, - "ClassStatement": parse_ClassStatement, - "ClassPropertyDeclaration": parse_ClassPropertyDeclaration, - "ClassConstPropertyDeclaration": parse_ClassConstPropertyDeclaration, - "ClassFunctionDeclaration": parse_ClassFunctionDeclaration, - "PropertyVisibility": parse_PropertyVisibility, - "ContinueStatement": parse_ContinueStatement, - "BreakStatement": parse_BreakStatement, - "EchoStatement": parse_EchoStatement, - "ReturnStatement": parse_ReturnStatement, - "RequireStatement": parse_RequireStatement, - "Require_onceStatement": parse_Require_onceStatement, - "Include_onceStatement": parse_Include_onceStatement, - "IncludeStatement": parse_IncludeStatement, - "AndToken": parse_AndToken, - "BreakToken": parse_BreakToken, - "CaseToken": parse_CaseToken, - "CatchToken": parse_CatchToken, - "ClassToken": parse_ClassToken, - "ConstToken": parse_ConstToken, - "ContinueToken": parse_ContinueToken, - "EchoToken": parse_EchoToken, - "ElseToken": parse_ElseToken, - "ElseIfToken": parse_ElseIfToken, - "FalseToken": parse_FalseToken, - "finallyToken": parse_finallyToken, - "ForToken": parse_ForToken, - "IfToken": parse_IfToken, - "IncludeToken": parse_IncludeToken, - "Include_onceToken": parse_Include_onceToken, - "InToken": parse_InToken, - "NamespaceToken": parse_NamespaceToken, - "NewToken": parse_NewToken, - "NullToken": parse_NullToken, - "OfToken": parse_OfToken, - "OrToken": parse_OrToken, - "ReturnToken": parse_ReturnToken, - "RequireToken": parse_RequireToken, - "Require_onceToken": parse_Require_onceToken, - "PrivateToken": parse_PrivateToken, - "ProtectedToken": parse_ProtectedToken, - "PublicToken": parse_PublicToken, - "script_start": parse_script_start, - "script_end": parse_script_end, - "StaticToken": parse_StaticToken, - "SwitchToken": parse_SwitchToken, - "ThenToken": parse_ThenToken, - "ThisToken": parse_ThisToken, - "TrueToken": parse_TrueToken, - "TryToken": parse_TryToken, - "WhileToken": parse_WhileToken, - "ReservedWord": parse_ReservedWord, - "SourceCharacter": parse_SourceCharacter, - "WhiteSpace": parse_WhiteSpace, - "LineTerminator": parse_LineTerminator, - "LineTerminatorSequence": parse_LineTerminatorSequence, - "Comment": parse_Comment, - "MultiLineComment": parse_MultiLineComment, - "MultiLineCommentNoLineTerminator": parse_MultiLineCommentNoLineTerminator, - "SingleLineComment": parse_SingleLineComment, - "Identifier": parse_Identifier, - "IdentifierName": parse_IdentifierName, - "IdentifierStart": parse_IdentifierStart, - "IdentifierPart": parse_IdentifierPart, - "UnicodeLetter": parse_UnicodeLetter, - "UnicodeCombiningMark": parse_UnicodeCombiningMark, - "_": parse__, - "__": parse___, - "___": parse____, - "Literal": parse_Literal, - "NullLiteral": parse_NullLiteral, - "BooleanLiteral": parse_BooleanLiteral, - "NumericLiteral": parse_NumericLiteral, - "DecimalLiteral": parse_DecimalLiteral, - "DecimalIntegerLiteral": parse_DecimalIntegerLiteral, - "DecimalDigits": parse_DecimalDigits, - "DecimalDigit": parse_DecimalDigit, - "NonZeroDigit": parse_NonZeroDigit, - "ExponentPart": parse_ExponentPart, - "ExponentIndicator": parse_ExponentIndicator, - "SignedInteger": parse_SignedInteger, - "HexIntegerLiteral": parse_HexIntegerLiteral, - "HexDigit": parse_HexDigit, - "StringLiteral": parse_StringLiteral, - "DoubleStringCharacters": parse_DoubleStringCharacters, - "SingleStringCharacters": parse_SingleStringCharacters, - "DoubleStringCharacter": parse_DoubleStringCharacter, - "SingleStringCharacter": parse_SingleStringCharacter, - "EODLiteral": parse_EODLiteral, - "EOTLiteral": parse_EOTLiteral, - "EODString": parse_EODString, - "EOTString": parse_EOTString, - "ArrayLiteral": parse_ArrayLiteral, - "ElementList": parse_ElementList, - "Elision": parse_Elision, - "PropertyNameAndValueList": parse_PropertyNameAndValueList, - "PropertyAssignment": parse_PropertyAssignment, - "PropertyName": parse_PropertyName, - "PHPLiteral": parse_PHPLiteral, - "RAWString": parse_RAWString, - "Ll": parse_Ll, - "Lm": parse_Lm, - "Lo": parse_Lo, - "Lt": parse_Lt, - "Lu": parse_Lu, - "Mc": parse_Mc, - "Mn": parse_Mn, - "Nd": parse_Nd, - "Nl": parse_Nl, - "Pc": parse_Pc, - "Zs": parse_Zs, - "blank": parse_blank, - "EOL": parse_EOL, - "SAMEDENT": parse_SAMEDENT, - "INDENT": parse_INDENT, - "DEDENT": parse_DEDENT - }; - - if (startRule !== undefined) { - if (parseFunctions[startRule] === undefined) { - throw new Error("Invalid rule name: " + quote(startRule) + "."); - } - } else { - startRule = "start"; - } - - var pos = 0; - var reportFailures = 0; - var rightmostFailuresPos = 0; - var rightmostFailuresExpected = []; - - function padLeft(input, padding, length) { - var result = input; - - var padLength = length - input.length; - for (var i = 0; i < padLength; i++) { - result = padding + result; - } - - return result; - } - - function escape(ch) { - var charCode = ch.charCodeAt(0); - var escapeChar; - var length; - - if (charCode <= 0xFF) { - escapeChar = 'x'; - length = 2; - } else { - escapeChar = 'u'; - length = 4; - } - - return '\\' + escapeChar + padLeft(charCode.toString(16).toUpperCase(), '0', length); - } - - function matchFailed(failure) { - if (pos < rightmostFailuresPos) { - return; - } - - if (pos > rightmostFailuresPos) { - rightmostFailuresPos = pos; - rightmostFailuresExpected = []; - } - - rightmostFailuresExpected.push(failure); - } - - function parse_start() { - var result0, result1; - - result0 = []; - result1 = parse_code_block(); - if (result1 === null) { - result1 = parse_embedding(); - } - while (result1 !== null) { - result0.push(result1); - result1 = parse_code_block(); - if (result1 === null) { - result1 = parse_embedding(); - } - } - return result0; - } - - function parse_embedding() { - var result0, result1; - var pos0; - - pos0 = pos; - result1 = parse_embedding_TEXT_INNER(); - if (result1 !== null) { - result0 = []; - while (result1 !== null) { - result0.push(result1); - result1 = parse_embedding_TEXT_INNER(); - } - } else { - result0 = null; - } - if (result0 !== null) { - result0 = (function(offset, body) { return {type:'embed', content:body.join('')}})(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_embedding_TEXT_INNER() { - var result0, result1, result2; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - reportFailures++; - result0 = parse_script_start(); - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - result1 = parse_script_end(); - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - if (input.length > pos) { - result2 = input.charAt(pos); - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, c) {return c})(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_code_block() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_script_start(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_LineTerminator(); - if (result2 !== null) { - result3 = parse_statements(); - if (result3 !== null) { - result4 = parse_script_end(); - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, els) { return {type:'block', elements:els}})(pos0, result0[3]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_PrimaryExpression() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - result0 = parse_ThisToken(); - if (result0 !== null) { - result0 = (function(offset) { return { type: "This" }; })(pos0); - } - if (result0 === null) { - pos = pos0; +/** + * Mammouth Compiler v2.0.0 + * http://mammouth.wamalaka.com + * + * Copyright 2014, Wael Amine Boutglay + * Released under the MIT License + */ +(function(root) { +function require(path){ return require[path]; } +require["lex"] = (function() {var exports = {}, module = {exports: exports};if (typeof module === "object" && typeof module.exports === "object") module.exports = Lexer; + +Lexer.defunct = function (char) { + throw new Error("Unexpected character at index " + (this.index - 1) + ": " + char); +}; + +function Lexer(defunct) { + if (typeof defunct !== "function") defunct = Lexer.defunct; + + var tokens = []; + var rules = []; + var remove = 0; + this.state = 0; + this.index = 0; + this.input = ""; + + this.addRule = function (pattern, action, start) { + var global = pattern.global; + + if (!global) { + var flags = "g"; + if (pattern.multiline) flags += "m"; + if (pattern.ignoreCase) flags += "i"; + pattern = new RegExp(pattern.source, flags); } - if (result0 === null) { - result0 = parse_NullLiteral(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_LeftHandSideExpressionWP(); - if (result0 !== null) { - if (input.charCodeAt(pos) === 63) { - result1 = "?"; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"?\""); - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name) { - return { - type: 'FunctionCall', - name: { - type: 'Variable', - name: 'isset' - }, - arguments: [ - name - ] - }; - })(pos0, result0[0]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_Identifier(); - if (result0 !== null) { - result0 = (function(offset, name) { return { type: "Variable", name: name }; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 64) { - result0 = "@"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"@\""); - } - } - if (result0 !== null) { - result1 = parse_Identifier(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name) { - return { - type: "PropertyAccess", - base: {type: "Variable", name: "this"}, - name: name - }; - })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_NamespaceId(); - if (result0 === null) { - result0 = parse_Literal(); - if (result0 === null) { - result0 = parse_ArrayLiteral(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 40) { - result0 = "("; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_Expression(); - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 41) { - result4 = ")"; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, expression) { return expression; })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; + + if (Object.prototype.toString.call(start) !== "[object Array]") start = [0]; + + rules.push({ + pattern: pattern, + global: global, + action: action, + start: start + }); + + return this; + }; + + this.setInput = function (input) { + remove = 0; + this.state = 0; + this.index = 0; + this.input = input; + return this; + }; + + this.lex = function () { + if (tokens.length) return tokens.shift(); + + this.reject = true; + + while (this.index <= this.input.length) { + var matches = scan.call(this).splice(remove); + var index = this.index; + + while (matches.length) { + if (this.reject) { + var match = matches.shift(); + var result = match.result; + var length = match.length; + this.index += length; + this.reject = false; + remove++; + + var token = match.action.apply(this, result); + if (this.reject) this.index = result.index; + else if (typeof token !== "undefined") { + switch (Object.prototype.toString.call(token)) { + case "[object Array]": + tokens = token.slice(1); + token = token[0]; + default: + if (length) remove = 0; + return token; } - } } - } - } - } + } else break; } - } - } - return result0; - } - - function parse_PrimaryExpressionW() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - result0 = parse_ThisToken(); - if (result0 !== null) { - result0 = (function(offset) { return { type: "This" }; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_NullLiteral(); - if (result0 === null) { - pos0 = pos; - result0 = parse_Identifier(); - if (result0 !== null) { - result0 = (function(offset, name) { return { type: "Variable", name: name }; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 64) { - result0 = "@"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"@\""); - } - } - if (result0 !== null) { - result1 = parse_Identifier(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name) { - return { - type: "PropertyAccess", - base: {type: "Variable", name: "this"}, - name: name - }; - })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_NamespaceId(); - if (result0 === null) { - result0 = parse_Literal(); - if (result0 === null) { - result0 = parse_ArrayLiteral(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 40) { - result0 = "("; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_Expression(); - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 41) { - result4 = ")"; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, expression) { return expression; })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } + + var input = this.input; + + if (index < input.length) { + if (this.reject) { + remove = 0; + var token = defunct.call(this, input.charAt(this.index++)); + if (typeof token !== "undefined") { + if (Object.prototype.toString.call(token) === "[object Array]") { + tokens = token.slice(1); + return token[0]; + } else return token; } - } - } - } - } - } - } - return result0; - } - - function parse_Expression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_AssignmentExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_AssignmentExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_AssignmentExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_AssignmentExpression() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_LeftHandSideExpression(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentOperator(); - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_FunctionExpression(); - if (result4 === null) { - result4 = parse_AssignmentExpression(); - } - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; } else { - result0 = null; - pos = pos1; + if (this.index !== index) remove = 0; + this.reject = true; } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; + } else if (matches.length) + this.reject = true; + else break; } - if (result0 !== null) { - result0 = (function(offset, left, operator, right) { - return { - type: "AssignmentExpression", - operator: operator, - left: left, - right: right - }; - })(pos0, result0[0], result0[2], result0[4]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_FunctionExpression(); - if (result0 === null) { - result0 = parse_ConditionalExpression(); - } - } - return result0; - } - - function parse_SliceExpression() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_MemberExpression(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - if (input.charCodeAt(pos) === 91) { - result2 = "["; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_Expression(); - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - if (input.charCodeAt(pos) === 58) { - result6 = ":"; - pos++; - } else { - result6 = null; - if (reportFailures === 0) { - matchFailed("\":\""); - } - } - if (result6 !== null) { - result7 = parse___(); - if (result7 !== null) { - result8 = parse_Expression(); - result8 = result8 !== null ? result8 : ""; - if (result8 !== null) { - result9 = parse___(); - if (result9 !== null) { - if (input.charCodeAt(pos) === 93) { - result10 = "]"; - pos++; - } else { - result10 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result10 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; + }; + + function scan() { + var matches = []; + var index = 0; + + var state = this.state; + var lastIndex = this.index; + var input = this.input; + + for (var i = 0, length = rules.length; i < length; i++) { + var rule = rules[i]; + var start = rule.start; + var states = start.length; + + if ((!states || start.indexOf(state) >= 0) || + (state % 2 && states === 1 && !start[0])) { + var pattern = rule.pattern; + pattern.lastIndex = lastIndex; + var result = pattern.exec(input); + + if (result && result.index === lastIndex) { + var j = matches.push({ + result: result, + action: rule.action, + length: result[0].length + }); + + if (rule.global) index = j; + + while (--j > index) { + var k = j - 1; + + if (matches[j].length > matches[k].length) { + var temple = matches[j]; + matches[j] = matches[k]; + matches[k] = temple; } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, slicer, start, end) { - return { - type: "SliceExpression", - slicer: slicer, - start: start !== '' ? start:0, - end: end !== '' ? end:null - }; - })(pos0, result0[0], result0[4], result0[8]); } - if (result0 === null) { - pos = pos0; + + return matches; + } +} +return module.exports;})(); +require["./parser"] = (function() {var exports = {}, module = {exports: exports};/* parser generated by jison 0.4.15 */ +/* + 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) + } +*/ +var parser = (function(){ +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,6],$V1=[1,7],$V2=[1,8,9],$V3=[1,12],$V4=[1,13],$V5=[1,47],$V6=[1,61],$V7=[1,62],$V8=[1,71],$V9=[1,64],$Va=[1,66],$Vb=[1,72],$Vc=[1,67],$Vd=[1,69],$Ve=[1,59],$Vf=[1,60],$Vg=[1,70],$Vh=[1,36],$Vi=[1,37],$Vj=[1,44],$Vk=[1,45],$Vl=[1,48],$Vm=[1,49],$Vn=[1,50],$Vo=[1,51],$Vp=[1,52],$Vq=[1,53],$Vr=[1,54],$Vs=[1,68],$Vt=[1,55],$Vu=[1,56],$Vv=[1,73],$Vw=[1,38],$Vx=[1,39],$Vy=[1,41],$Vz=[1,42],$VA=[1,43],$VB=[11,14,16,17,47,49,50,54,55,56,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161],$VC=[1,85],$VD=[1,89],$VE=[1,78],$VF=[1,76],$VG=[1,75],$VH=[1,77],$VI=[1,79],$VJ=[1,80],$VK=[1,81],$VL=[1,82],$VM=[1,83],$VN=[1,84],$VO=[1,86],$VP=[1,87],$VQ=[1,88],$VR=[11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$VS=[1,115],$VT=[1,107],$VU=[1,120],$VV=[1,109],$VW=[1,110],$VX=[1,121],$VY=[1,113],$VZ=[1,111],$V_=[1,114],$V$=[1,116],$V01=[1,117],$V11=[1,118],$V21=[1,119],$V31=[11,14,16,17,47,49,50,54,55,56,59,60,62,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$V41=[1,126],$V51=[1,127],$V61=[1,128],$V71=[1,129],$V81=[1,125],$V91=[11,14,16,17,47,49,50,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$Va1=[2,39],$Vb1=[1,134],$Vc1=[1,136],$Vd1=[2,52],$Ve1=[1,142],$Vf1=[1,148],$Vg1=[1,154],$Vh1=[11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$Vi1=[47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,113,157,159,160,161,162,163],$Vj1=[2,121],$Vk1=[1,159],$Vl1=[11,14,16,17,47,49,50,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,88,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$Vm1=[11,14,16,17,47,49,50,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$Vn1=[1,167],$Vo1=[11,14,16,17,47,49,50,52,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,88,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],$Vp1=[2,54],$Vq1=[1,175],$Vr1=[1,176],$Vs1=[2,62],$Vt1=[1,178],$Vu1=[47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,151,155,157,159,160,161,162,163],$Vv1=[2,15],$Vw1=[1,197],$Vx1=[16,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,151,155,157,159,160,161,162,163],$Vy1=[1,198],$Vz1=[50,75],$VA1=[2,92],$VB1=[1,229],$VC1=[1,230],$VD1=[1,228],$VE1=[11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,165,170,171,172,174,175],$VF1=[2,199],$VG1=[2,200],$VH1=[75,91],$VI1=[2,55],$VJ1=[1,245],$VK1=[2,78],$VL1=[1,247],$VM1=[16,17,67,75,80],$VN1=[2,202],$VO1=[2,204],$VP1=[11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,165,166,168,169,170,171,172,174,175],$VQ1=[11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,171],$VR1=[2,133],$VS1=[1,260],$VT1=[1,261],$VU1=[1,259],$VV1=[1,258],$VW1=[14,17,47,49,54,55,56,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,133,135,136,157,159,160,161],$VX1=[16,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,84,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,151,155,157,159,160,161,162,163],$VY1=[1,284],$VZ1=[50,75,88],$V_1=[1,295],$V$1=[16,17],$V02=[16,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,112,113,116,117,120,123,129,134,135,136,137,141,151,155,157,159,160,161,162,163],$V12=[16,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,116,117,119,120,123,129,134,135,136,137,141,151,155,157,159,160,161,162,163],$V22=[16,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163],$V32=[14,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,115,135,136,157,159,160,161,162,163,165,170,171,172,174,175],$V42=[1,337],$V52=[1,338],$V62=[49,54,55,56,59,60,62,66,69,70,71,81,89,92,150,157],$V72=[2,171],$V82=[1,343],$V92=[1,342],$Va2=[1,344],$Vb2=[1,345],$Vc2=[1,346],$Vd2=[1,352],$Ve2=[17,75],$Vf2=[16,17,112,127,128],$Vg2=[49,54,55,56,59,60,62,66,69,70,71,81,89,92,141,145,147,148,149,150,157],$Vh2=[1,370],$Vi2=[16,17,49,54,55,56,59,60,62,66,69,70,71,81,89,92,141,145,147,148,149,150,157],$Vj2=[49,54,55,56,59,60,62,66,69,70,71,81,89,92,157],$Vk2=[2,175],$Vl2=[1,372],$Vm2=[49,54,55,56,59,60,62,66,69,70,71,89,92,147,157],$Vn2=[1,380],$Vo2=[16,17,49,54,55,56,59,60,62,66,69,70,71,89,92,147,157],$Vp2=[1,382]; +var parser = {trace: function trace() { }, +yy: {}, +symbols_: {"error":2,"Root":3,"Contents":4,"Content":5,"PlainBlock":6,"MammouthBlock":7,"PlainText":8,"{{":9,"Block":10,"}}":11,"Expression":12,"SimpleStatement":13,"INDENT":14,"Lines":15,"OUTDENT":16,"LineTerminator":17,"Line":18,"OptLineTerminator":19,"Statement":20,"Function":21,"If":22,"While":23,"DoWhile":24,"For":25,"Try":26,"Switch":27,"Declare":28,"Section":29,"Class":30,"Interface":31,"Namespace":32,"Value":33,"Invocation":34,"Code":35,"Operation":36,"Assign":37,"IfExpression":38,"HereDoc":39,"Assignable":40,"Literal":41,"Parenthetical":42,"Casting":43,"Execution":44,"NamespaceRef":45,"Clone":46,"`":47,"HEREDOCTEXT":48,"(":49,")":50,"SimpleAssignable":51,"=>":52,"cType":53,"EXEC":54,"STRING":55,"CLONE":56,"Array":57,"Identifier":58,"&":59,"IDENTIFIER":60,"Accessor":61,"@":62,".":63,"..":64,"::":65,"[":66,"]":67,"AlphaNumeric":68,"BOOL":69,"NULL":70,"NUMBER":71,"ArgList":72,"OptComma":73,"Arg":74,",":75,":":76,"Arguments":77,"NEW":78,"CALL_START":79,"CALL_END":80,"FUNC":81,"FuncGlyph":82,"ParametersList":83,"->":84,"Param":85,"ParamVar":86,"USE":87,"=":88,"{":89,"KeysList":90,"}":91,"CTE":92,"Echo":93,"Break":94,"Continue":95,"Delete":96,"Include":97,"Require":98,"Return":99,"Goto":100,"ECHO":101,"SimpleArg":102,"BREAK":103,"CONTINUE":104,"DELETE":105,"INCLUDE":106,"isOnce":107,"REQUIRE":108,"ONCE":109,"RETURN":110,"IfBlock":111,"ELSE":112,"IF":113,"IfBlockExpression":114,"THEN":115,"WHILE":116,"DO":117,"TryBlock":118,"FINALLY":119,"TRY":120,"CatchBlock":121,"CATCH":122,"SWITCH":123,"Whens":124,"When":125,"WhenTok":126,"CASE":127,"WHEN":128,"FOR":129,"ForExpressions":130,"EACH":131,"AS":132,";":133,"DECLARE":134,"==>":135,"GOTO":136,"CLASS":137,"ClassBody":138,"EXTENDS":139,"IMPLEMENTS":140,"ABSTRACT":141,"ClassLine":142,"Visibility":143,"Statically":144,"FINAL":145,"Finaly":146,"PUBLIC":147,"PRIVATE":148,"PROTECTED":149,"STATIC":150,"INTERFACE":151,"InterfaceBody":152,"ExtendedList":153,"InterfaceLine":154,"NAMESPACE":155,"NamespaceName":156,"\\":157,"NamespaceRefname":158,"--":159,"++":160,"NOT":161,"-":162,"+":163,"?":164,"<->":165,"*":166,"**":167,"/":168,"%":169,"SHIFT":170,"LOGIC":171,"COMPARE":172,"ASSIGN":173,"INSTANCEOF":174,"IN":175,"$accept":0,"$end":1}, +terminals_: {2:"error",8:"PlainText",9:"{{",11:"}}",14:"INDENT",16:"OUTDENT",17:"LineTerminator",47:"`",48:"HEREDOCTEXT",49:"(",50:")",52:"=>",53:"cType",54:"EXEC",55:"STRING",56:"CLONE",59:"&",60:"IDENTIFIER",62:"@",63:".",64:"..",65:"::",66:"[",67:"]",69:"BOOL",70:"NULL",71:"NUMBER",75:",",76:":",78:"NEW",79:"CALL_START",80:"CALL_END",81:"FUNC",84:"->",87:"USE",88:"=",89:"{",91:"}",92:"CTE",101:"ECHO",103:"BREAK",104:"CONTINUE",105:"DELETE",106:"INCLUDE",108:"REQUIRE",109:"ONCE",110:"RETURN",112:"ELSE",113:"IF",115:"THEN",116:"WHILE",117:"DO",119:"FINALLY",120:"TRY",122:"CATCH",123:"SWITCH",127:"CASE",128:"WHEN",129:"FOR",131:"EACH",132:"AS",133:";",134:"DECLARE",135:"==>",136:"GOTO",137:"CLASS",139:"EXTENDS",140:"IMPLEMENTS",141:"ABSTRACT",145:"FINAL",147:"PUBLIC",148:"PRIVATE",149:"PROTECTED",150:"STATIC",151:"INTERFACE",155:"NAMESPACE",157:"\\",159:"--",160:"++",161:"NOT",162:"-",163:"+",164:"?",165:"<->",166:"*",167:"**",168:"/",169:"%",170:"SHIFT",171:"LOGIC",172:"COMPARE",173:"ASSIGN",174:"INSTANCEOF",175:"IN"}, +productions_: [0,[3,1],[4,1],[4,2],[5,1],[5,1],[6,1],[7,3],[10,1],[10,1],[10,3],[10,4],[15,1],[15,3],[15,2],[19,0],[19,1],[18,1],[18,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[33,1],[33,1],[33,1],[33,1],[33,1],[33,1],[33,1],[39,3],[42,3],[43,3],[44,2],[44,4],[46,2],[40,1],[40,1],[51,1],[51,2],[51,2],[51,2],[61,2],[61,2],[61,2],[61,3],[58,1],[41,1],[41,1],[41,1],[68,1],[68,1],[57,2],[57,4],[72,1],[72,3],[72,4],[72,4],[72,7],[72,5],[74,1],[74,3],[73,0],[73,1],[34,2],[34,2],[34,3],[77,2],[77,4],[21,2],[21,4],[21,5],[21,7],[35,6],[35,3],[82,1],[83,0],[83,1],[83,3],[85,1],[85,2],[85,3],[86,2],[86,1],[37,3],[37,5],[37,4],[90,1],[90,3],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[93,2],[94,1],[94,2],[95,1],[95,2],[96,2],[97,3],[98,3],[107,0],[107,1],[99,2],[102,1],[102,3],[22,1],[22,3],[111,3],[111,5],[38,1],[38,3],[114,4],[114,3],[23,3],[24,4],[26,1],[26,3],[118,3],[121,3],[27,6],[27,8],[124,1],[124,3],[124,2],[125,3],[126,1],[126,1],[25,3],[25,6],[130,1],[130,3],[28,2],[28,4],[29,2],[100,2],[100,2],[30,6],[30,8],[30,8],[30,7],[138,1],[138,3],[138,2],[142,3],[142,3],[142,3],[142,4],[142,2],[146,0],[146,1],[143,0],[143,1],[143,1],[143,1],[144,0],[144,1],[31,6],[31,8],[152,1],[152,3],[152,2],[154,2],[154,1],[153,1],[153,3],[32,2],[32,4],[156,1],[156,3],[45,1],[158,3],[158,3],[158,2],[36,2],[36,2],[36,2],[36,2],[36,2],[36,2],[36,2],[36,2],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3]], +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: case 12: case 70: case 93: case 103: case 142: case 150: case 161: case 179: case 184: +this.$ = [$$[$0]] +break; +case 3: +this.$ = $$[$0-1].concat($$[$0]) +break; +case 4: case 5: case 18: case 20: case 21: case 22: case 23: case 24: case 25: case 26: case 27: case 28: case 29: case 30: case 31: case 32: case 33: case 34: case 35: case 36: case 37: case 38: case 39: case 40: case 42: case 43: case 45: case 52: case 63: case 76: case 78: case 79: case 95: case 105: case 106: case 107: case 108: case 109: case 110: case 111: case 112: case 124: case 126: case 130: case 136: case 182: case 188: +this.$ = $$[$0]; +break; +case 6: +this.$ = new yy.PlainBlock(yytext) +break; +case 7: +this.$ = new yy.MammouthBlock($$[$0-1]) +break; +case 8: case 9: +this.$ = new yy.Block([new yy.Expression($$[$0])]) +break; +case 10: case 11: +this.$ = new yy.Block($$[$0-1]) +break; +case 13: case 71: case 94: +this.$ = $$[$0-2].concat($$[$0]); +break; +case 14: case 125: case 144: case 163: case 181: +this.$ = $$[$0-1]; +break; +case 15: case 91: case 146: case 147: + +break; +case 16: +false +break; +case 17: case 19: case 183: +this.$ = new yy.Expression($$[$0]) +break; +case 41: case 44: case 53: case 54: +this.$ = new yy.Value($$[$0]) +break; +case 46: +this.$ = new yy.HereDoc($$[$0-1]) +break; +case 47: +this.$ = new yy.Parens($$[$0-1]) +break; +case 48: +this.$ = new yy.Casting($$[$0-2], $$[$0]) +break; +case 49: +this.$ = new yy.Exec($$[$0]) +break; +case 50: +this.$ = new yy.Exec($$[$0-1]) +break; +case 51: +this.$ = new yy.Clone($$[$0]) +break; +case 55: case 98: +this.$ = new yy.Identifier(yytext, true, true) +break; +case 56: +$$[$0-1].add($$[$0]); this.$ = $$[$0-1] +break; +case 57: +th = new yy.Value(new yy.Identifier("this")); th.add(new yy.Access($$[$0])); this.$ = th +break; +case 58: +this.$ = new yy.Access($$[$0]) +break; +case 59: +this.$ = new yy.Access($$[$0], "..") +break; +case 60: +this.$ = new yy.Access($$[$0], "::") +break; +case 61: +this.$ = new yy.Access($$[$0-1], "[]") +break; +case 62: +this.$ = new yy.Identifier(yytext) +break; +case 64: +this.$ = new yy.Bool(yytext) +break; +case 65: +this.$ = new yy.Null() +break; +case 66: case 67: +this.$ = new yy.Literal(yytext) +break; +case 68: +this.$ = new yy.Array() +break; +case 69: +this.$ = new yy.Array($$[$0-2]) +break; +case 72: +this.$ = $$[$0-3].concat($$[$0]) +break; +case 73: case 75: case 84: +this.$ = $$[$0-2]; +break; +case 74: +this.$ = $$[$0-6].concat($$[$0-2]) +break; +case 77: +this.$ = new yy.ArrayKey($$[$0-2], $$[$0]) +break; +case 80: +this.$ = new yy.Call($$[$0-1], $$[$0]) +break; +case 81: +this.$ = new yy.NewCall($$[$0]) +break; +case 82: +this.$ = new yy.NewCall($$[$0-1], $$[$0]) +break; +case 83: case 92: +this.$ = [] +break; +case 85: +this.$ = new yy.Code([], false, true, $$[$0]) +break; +case 86: +this.$ = new yy.Code([], $$[$0], true, $$[$0-2]) +break; +case 87: +this.$ = new yy.Code($$[$0-1], false, true, $$[$0-3]) +break; +case 88: +this.$ = new yy.Code($$[$0-3], $$[$0], true, $$[$0-5]) +break; +case 89: +this.$ = new yy.Code($$[$0-3], $$[$0]) +break; +case 90: +this.$ = new yy.Code([], $$[$0]) +break; +case 96: +$$[$0].passing = true, this.$ = $$[$0] +break; +case 97: case 100: +this.$ = new yy.Assign("=", $$[$0-2], $$[$0]) +break; +case 99: +this.$ = new yy.Identifier(yytext, true) +break; +case 101: +this.$ = new yy.GetKeyAssign($$[$0-3], $$[$0]) +break; +case 102: +this.$ = new yy.Constant($$[$0-2], $$[$0]) +break; +case 104: case 143: case 151: case 162: case 180: case 185: +this.$ = $$[$0-2].concat($$[$0]) +break; +case 113: +this.$ = new yy.Echo($$[$0]) +break; +case 114: +this.$ = new yy.Break() +break; +case 115: +this.$ = new yy.Break(new yy.Literal($$[$0])) +break; +case 116: +this.$ = new yy.Continue() +break; +case 117: +this.$ = new yy.Continue(new yy.Literal($$[$0])) +break; +case 118: +this.$ = new yy.Delete($$[$0]) +break; +case 119: +this.$ = new yy.Include($$[$0], $$[$0-1]) +break; +case 120: +this.$ = new yy.Require($$[$0], $$[$0-1]) +break; +case 121: case 169: case 171: case 175: +this.$ = false +break; +case 122: case 170: +this.$ = true +break; +case 123: +this.$ = new yy.Return($$[$0]) +break; +case 127: +$$[$0-2].addElse(new yy.Else($$[$0])); this.$ = $$[$0-2] +break; +case 128: +this.$ = new yy.If($$[$0-1], $$[$0]) +break; +case 129: +$$[$0-4].addElse(new yy.ElseIf($$[$0-1], $$[$0])); this.$ = $$[$0-4] +break; +case 131: +$$[$0-2].Elses = $$[$0]; this.$ = $$[$0-2] +break; +case 132: +this.$ = new yy.If($$[$0-2], $$[$0], true) +break; +case 133: +this.$ = new yy.If($$[$0], $$[$0-2], true) +break; +case 134: +this.$ = new yy.While($$[$0-1], $$[$0]) +break; +case 135: +this.$ = new yy.DoWhile($$[$0-1], $$[$0]) +break; +case 137: +$$[$0-2].addFinally($$[$0]); this.$ = $$[$0-2] +break; +case 138: +this.$ = new yy.Try($$[$0-1], $$[$0][0], $$[$0][1]) +break; +case 139: +this.$ = [$$[$0-1], $$[$0]] +break; +case 140: +this.$ = new yy.Switch($$[$0-4], $$[$0-1]) +break; +case 141: +$$[$0-3].push(new yy.SwitchElse($$[$0-1])); this.$ = new yy.Switch($$[$0-6], $$[$0-3]) +break; +case 145: +this.$ = new yy.When($$[$0-1], $$[$0]) +break; +case 148: +this.$ = new yy.For("normal", $$[$0-1], $$[$0]) +break; +case 149: +$$[$0-1].foreach = true; this.$ = new yy.For("foreach", $$[$0-3], $$[$0-1], $$[$0]) +break; +case 152: +this.$ = new yy.Expression(new yy.Declare($$[$0])) +break; +case 153: +this.$ = new yy.Declare($$[$0-2], $$[$0]) +break; +case 154: +this.$ = new yy.Section($$[$0-1]) +break; +case 155: case 156: +this.$ = new yy.Goto($$[$0]) +break; +case 157: +this.$ = new yy.Class($$[$0-4], $$[$0-1]) +break; +case 158: +this.$ = new yy.Class($$[$0-6], $$[$0-1], $$[$0-4]) +break; +case 159: +this.$ = new yy.Class($$[$0-6], $$[$0-1], false, $$[$0-4]) +break; +case 160: +this.$ = new yy.Class($$[$0-4], $$[$0-1], false, false, true) +break; +case 164: case 165: +this.$ = new yy.ClassLine($$[$0-2], $$[$0-1], this.$ = new yy.Expression($$[$0])) +break; +case 166: +this.$ = new yy.ClassLine($$[$0-2], $$[$0-1], $$[$0]); +break; +case 167: +n = new yy.ClassLine($$[$0-2], $$[$0-1], $$[$0]); n.finaly = true; this.$ = n +break; +case 168: +$$[$0].abstract = true; this.$ = $$[$0] +break; +case 172: +this.$ = "public" +break; +case 173: +this.$ = "private" +break; +case 174: +this.$ = "protected" +break; +case 176: +this.$ = "static" +break; +case 177: +this.$ = new yy.Interface($$[$0-4], $$[$0-1]) +break; +case 178: +this.$ = new yy.Interface($$[$0-6], $$[$0-1], $$[$0-4]) +break; +case 186: +this.$ = new yy.Expression(new yy.Namespace($$[$0])) +break; +case 187: +this.$ = new yy.Namespace($$[$0-2], $$[$0]) +break; +case 189: + this.$ = $$[$0-2] + "\\" + $$[$0] +break; +case 190: +this.$ = new yy.NamespaceRef($$[$0]) +break; +case 191: case 192: +this.$ = $$[$0-2] + "\\" + $$[$0] +break; +case 193: +this.$ = "\\" + $$[$0] +break; +case 194: +this.$ = new yy.Update("--", $$[$0]) +break; +case 195: +this.$ = new yy.Update("++", $$[$0]) +break; +case 196: +this.$ = new yy.Update("--", $$[$0-1], false) +break; +case 197: +this.$ = new yy.Update("++", $$[$0-1], false) +break; +case 198: +this.$ = new yy.Unary("!", $$[$0]) +break; +case 199: +this.$ = new yy.Unary("-", $$[$0]) +break; +case 200: +this.$ = new yy.Unary("+", $$[$0]) +break; +case 201: +this.$ = new yy.Existence($$[$0-1]) +break; +case 202: +this.$ = new yy.Operation("+", $$[$0-2], $$[$0]) +break; +case 203: +this.$ = new yy.Operation("<->", $$[$0-2], $$[$0]) +break; +case 204: +this.$ = new yy.Operation("-", $$[$0-2], $$[$0]) +break; +case 205: +this.$ = new yy.Operation("*", $$[$0-2], $$[$0]) +break; +case 206: +this.$ = new yy.Operation("**", $$[$0-2], $$[$0]) +break; +case 207: +this.$ = new yy.Operation("/", $$[$0-2], $$[$0]) +break; +case 208: +this.$ = new yy.Operation("%", $$[$0-2], $$[$0]) +break; +case 209: case 210: case 212: +this.$ = new yy.Operation($$[$0-1], $$[$0-2], $$[$0]) +break; +case 211: +this.$ = new yy.Operation("&", $$[$0-2], $$[$0]) +break; +case 213: +this.$ = new yy.Assign($$[$0-1], $$[$0-2], $$[$0]) +break; +case 214: +this.$ = new yy.Operation("instanceof", $$[$0-2], $$[$0]) +break; +case 215: +this.$ = new yy.In($$[$0-2], $$[$0]) +break; +} +}, +table: [{3:1,4:2,5:3,6:4,7:5,8:$V0,9:$V1},{1:[3]},{1:[2,1],5:8,6:4,7:5,8:$V0,9:$V1},o($V2,[2,2]),o($V2,[2,4]),o($V2,[2,5]),o($V2,[2,6]),{10:9,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($V2,[2,3]),{11:[1,74]},o($VB,[2,8],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($VR,[2,9]),{12:92,13:94,15:90,18:91,20:93,21:95,22:96,23:97,24:98,25:99,26:100,27:101,28:102,29:103,30:104,31:105,32:106,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$VS,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$VT,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,111:108,113:$VU,114:46,116:$VV,117:$VW,118:112,120:$VX,123:$VY,129:$VZ,134:$V_,135:$Vt,136:$Vu,137:$V$,141:$V01,151:$V11,155:$V21,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{14:[1,122]},o($V31,[2,32],{77:123,61:124,63:$V41,64:$V51,65:$V61,66:$V71,79:$V81}),o($VR,[2,33]),o($VR,[2,34]),o($VR,[2,35]),o($VR,[2,36]),o($VR,[2,37]),o($VR,[2,38]),o($VR,[2,105]),o($VR,[2,106]),o($VR,[2,107]),o($VR,[2,108]),o($VR,[2,109]),o($VR,[2,110]),o($VR,[2,111]),o($VR,[2,112]),o($V91,$Va1,{88:[1,130]}),o($V91,[2,40]),o($V91,[2,41]),o($V91,[2,42]),o($V91,[2,43]),o($V91,[2,44]),o($V91,[2,45]),{33:131,40:132,41:30,42:31,43:32,44:33,45:34,46:35,49:$V6,51:133,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,157:$Vv,158:63},{49:$Vb1,82:135,84:$Vc1},{12:137,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:138,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o([11,14,16,17,47,49,50,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,88,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$Vd1,{52:$Ve1,159:[1,139],160:[1,140],173:[1,141]}),{12:143,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:144,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:145,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{58:147,60:$Vf1,90:146},{58:149,60:$Vf1},o([11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],[2,130],{112:[1,150]}),{48:[1,151]},{12:153,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$Vg1,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,102:152,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vh1,[2,114],{71:[1,155]}),o($Vh1,[2,116],{71:[1,156]}),{12:153,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$Vg1,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,102:157,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vi1,$Vj1,{107:158,109:$Vk1}),o($Vi1,$Vj1,{107:160,109:$Vk1}),{12:153,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$Vg1,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,102:161,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{60:[1,162]},{60:[1,163]},o($Vl1,[2,53]),o($V91,[2,63]),o($V91,[2,64]),o($V91,[2,65]),{12:164,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{49:[1,166],55:[1,165]},o($Vm1,[2,190],{157:$Vn1}),{33:168,40:132,41:30,42:31,43:32,44:33,45:34,46:35,49:$V6,51:133,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,157:$Vv,158:63},o($Vo1,$Vp1),{60:[1,169]},{58:170,60:$Vf1},{12:171,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:177,14:$Vq1,17:$Vr1,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,67:[1,172],68:58,69:$Ve,70:$Vf,71:$Vg,72:173,74:174,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($V91,[2,66]),o($V91,[2,67]),o([11,14,16,17,47,49,50,52,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,88,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],$Vs1,{157:$Vt1}),{60:[1,180],157:$Vv,158:179},o($V2,[2,7]),o($VR,[2,201]),{12:181,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:182,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:183,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:184,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:185,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:186,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:187,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:188,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:189,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:190,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:191,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:192,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:193,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:194,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vu1,$Vv1,{19:196,16:[1,195],17:$Vw1}),o($Vx1,[2,12]),o([16,17,47,49,54,55,56,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,116,117,120,123,129,134,135,136,137,141,151,155,157,159,160,161],[2,17],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($Vx1,[2,18]),o($Vx1,[2,19]),o($Vx1,[2,20]),o($Vx1,[2,21]),o($Vx1,[2,22]),o($Vx1,[2,23]),o($Vx1,[2,24]),o($Vx1,[2,25]),o($Vx1,[2,26]),o($Vx1,[2,27]),o($Vx1,[2,28]),o($Vx1,[2,29]),o($Vx1,[2,30]),o($Vx1,[2,31]),{49:$Vb1,60:$Vy1,82:135,84:$Vc1},o($Vx1,[2,126],{112:[1,199]}),{12:200,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{116:[1,201]},{12:204,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,130:202,131:[1,203],157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vx1,[2,136],{119:[1,205]}),{12:206,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:153,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$Vg1,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,102:207,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o([16,17,47,49,52,54,55,56,59,60,62,63,64,65,66,69,70,71,78,79,81,88,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,151,155,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],$Vs1,{76:[1,208],157:$Vt1}),{60:[1,209]},{137:[1,210]},{60:[1,211]},{60:[1,213],156:212},{12:214,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{10:215,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:92,13:94,15:216,18:91,20:93,21:95,22:96,23:97,24:98,25:99,26:100,27:101,28:102,29:103,30:104,31:105,32:106,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$VS,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$VT,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,111:108,113:$VU,114:46,116:$VV,117:$VW,118:112,120:$VX,123:$VY,129:$VZ,134:$V_,135:$Vt,136:$Vu,137:$V$,141:$V01,151:$V11,155:$V21,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VR,[2,80]),o($Vo1,[2,56]),{12:177,14:$Vq1,17:$Vr1,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,72:218,74:174,78:$Vh,80:[1,217],81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{58:219,60:$Vf1},{58:220,60:$Vf1},{58:221,60:$Vf1},{12:222,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:223,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($V31,[2,81],{61:124,77:224,63:$V41,64:$V51,65:$V61,66:$V71,79:$V81}),o($V91,$Va1),o($Vl1,$Vd1,{52:$Ve1}),o($Vz1,$VA1,{83:225,85:226,86:227,59:$VB1,60:$VC1,87:$VD1}),{10:231,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o([14,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,135,136,157,159,160,161,162,163],[2,91]),o($VR,[2,194]),o($VR,[2,195]),o($VR,[2,196]),o($VR,[2,197]),{12:232,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{53:[1,233]},o($VE1,[2,198],{164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o($VE1,$VF1,{164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o($VE1,$VG1,{164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),{75:[1,235],91:[1,234]},o($VH1,[2,103]),o([11,14,16,17,47,49,50,52,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,88,89,91,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],$Vs1),{88:[1,236]},{12:237,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{47:[1,238]},o($VR,[2,113]),o($VB,[2,124],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),{12:239,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VR,[2,115]),o($VR,[2,117]),o($VR,[2,118]),{12:153,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$Vg1,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,102:240,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vi1,[2,122]),{12:153,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$Vg1,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,102:241,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VR,[2,123]),o($VR,[2,155]),o($VR,[2,156]),{50:[1,242],59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($V91,[2,49]),{55:[1,243]},{60:[1,244]},o([11,14,16,17,47,49,50,54,55,56,59,60,62,67,69,70,71,75,76,78,79,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],[2,51],{61:124,63:$V41,64:$V51,65:$V61,66:$V71}),o($Vo1,$VI1),o($Vo1,[2,57]),{59:$VC,113:$VD,115:$VJ1,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($Vl1,[2,68]),o([17,67],$VK1,{73:246,75:$VL1}),o($VM1,[2,70]),{12:177,14:$Vq1,17:$Vr1,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,72:248,74:174,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{14:[1,249]},o($VM1,[2,76],{59:$VC,76:[1,250],113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),{60:[1,251]},o($Vm1,[2,193],{157:$Vn1}),{157:$Vt1},o($VE1,$VN1,{164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o($VE1,[2,203],{164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o($VE1,$VO1,{164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o($VP1,[2,205],{164:$VG,167:$VJ}),o($VP1,[2,206],{164:$VG,167:$VJ}),o($VP1,[2,207],{164:$VG,167:$VJ}),o($VP1,[2,208],{164:$VG,167:$VJ}),o([11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,170,171,172,174,175],[2,209],{162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL}),o($VQ1,[2,210],{162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,172:$VO,174:$VP,175:$VQ}),o($VQ1,[2,211],{162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,172:$VO,174:$VP,175:$VQ}),o([11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,171,172],[2,212],{162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,174:$VP,175:$VQ}),o([11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,171,172,174,175],[2,214],{162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM}),o([11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,171,172,175],[2,215],{162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,174:$VP}),o($VB,$VR1,{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($VR,[2,10]),{12:92,13:94,18:252,20:93,21:95,22:96,23:97,24:98,25:99,26:100,27:101,28:102,29:103,30:104,31:105,32:106,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$VS,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$VT,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,111:108,113:$VU,114:46,116:$VV,117:$VW,118:112,120:$VX,123:$VY,129:$VZ,134:$V_,135:$Vt,136:$Vu,137:$V$,141:$V01,151:$V11,155:$V21,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vx1,[2,14]),o([16,17,47,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163],[2,85],{82:253,49:[1,254],84:$Vc1}),{10:255,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:[1,256],114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{10:257,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$VS1,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$VT1,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$VU1,163:$VV1,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},{12:262,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{10:263,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,133:[1,264],135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:265,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VW1,[2,150],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),{10:266,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{17:[1,267],59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($Vx1,[2,152],{84:[1,268]}),o($Vx1,[2,154]),{17:[1,269],139:[1,270],140:[1,271]},{60:[1,272]},{17:[1,273],139:[1,274]},o([16,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,151,155,159,160,161,162,163],[2,186],{84:[1,275],157:[1,276]}),o($VX1,[2,188]),{10:277,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$VS1,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$VT1,114:46,115:$VJ1,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$VU1,163:$VV1,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},{121:278,122:[1,279]},o($Vu1,$Vv1,{19:196,16:[1,280],17:$Vw1}),o($VR,[2,83]),o([17,80],$VK1,{73:281,75:$VL1}),o($Vo1,[2,58]),o($Vo1,[2,59]),o($Vo1,[2,60]),{59:$VC,67:[1,282],113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($VB,[2,100],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($VR,[2,82]),{50:[1,283],75:$VY1},o($Vz1,[2,93]),o($Vz1,[2,95],{88:[1,285]}),{59:$VB1,60:$VC1,86:286},{60:[1,287]},o($VZ1,[2,99]),o($VR,[2,90]),o($VB,[2,213],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($V91,[2,48]),{88:[1,288]},{58:289,60:$Vf1},{12:290,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VB,[2,131],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($VR,[2,46]),{50:[1,291],59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($VR,[2,119]),o($VR,[2,120]),o($V91,[2,47]),{50:[1,292]},o($V91,[2,192]),{12:293,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{17:$V_1,67:[1,294]},o([16,17,67,80],[2,79],{33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,51:40,114:46,57:57,68:58,158:63,58:65,12:177,74:296,47:$V5,49:$V6,54:$V7,55:$V8,56:$V9,59:$Va,60:$Vb,62:$Vc,66:$Vd,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,157:$Vv,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA}),o($V$1,$VK1,{73:297,75:$VL1}),{12:177,14:$Vq1,17:$Vr1,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,72:298,74:174,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:299,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($V91,[2,191]),o($Vx1,[2,13]),{10:300,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vz1,$VA1,{85:226,86:227,83:301,59:$VB1,60:$VC1,87:$VD1}),o($Vx1,[2,127]),{12:302,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vx1,[2,134]),{12:303,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:304,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:190,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:[1,305],62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:306,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{10:307,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$VS1,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$VT1,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$VU1,163:$VV1,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($Vx1,[2,148]),{12:308,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{59:$VC,113:$VD,132:[1,309],162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($Vx1,[2,137]),{14:[1,310]},{10:311,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{14:[1,312]},{60:[1,313]},{60:[1,314]},{17:[1,315]},{14:[1,316]},{60:[1,318],153:317},{10:319,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{60:[1,320]},o($V02,[2,128]),o($V12,[2,138]),{58:321,60:$Vf1},o($VR,[2,11]),{17:$V_1,80:[1,322]},o($Vo1,[2,61]),{82:323,84:$Vc1},{59:$VB1,60:$VC1,85:324,86:227,87:$VD1},{12:325,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vz1,[2,96]),o($VZ1,[2,98]),{12:326,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VH1,[2,104]),o($VB,[2,102],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($V91,[2,125]),o($V91,[2,50]),o($VB,[2,132],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($Vl1,[2,69]),{12:177,14:[1,328],33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,74:327,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VM1,[2,71]),{16:[1,329],17:$V_1},o($V$1,$VK1,{73:330,75:$VL1}),o($VM1,[2,77],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($V22,[2,86]),{50:[1,331],75:$VY1},{10:332,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$VS1,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$VT1,114:46,115:$VJ1,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$VU1,163:$VV1,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($V32,$VN1,{16:$VG1,112:$VG1,116:$VG1,117:$VG1,120:$VG1,123:$VG1,127:$VG1,128:$VG1,129:$VG1,134:$VG1,137:$VG1,141:$VG1,151:$VG1,155:$VG1,164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o($V32,$VO1,{16:$VF1,112:$VF1,116:$VF1,117:$VF1,120:$VF1,123:$VF1,127:$VF1,128:$VF1,129:$VF1,134:$VF1,137:$VF1,141:$VF1,151:$VF1,155:$VF1,164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o([16,17,47,49,52,54,55,56,59,60,62,63,64,65,66,69,70,71,78,79,81,88,89,92,101,103,104,105,106,108,110,112,113,116,117,120,123,127,128,129,134,135,136,137,141,151,155,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],$VI1,{14:$Vs1,115:$Vs1,157:$Vt1}),o([14,17,47,49,54,55,56,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,112,135,136,157,159,160,161],$VR1,{59:$VC,113:$VD,115:$VJ1,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($Vx1,[2,135]),o($VW1,[2,151],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),{12:333,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{124:334,125:335,126:336,127:$V42,128:$V52},o($Vx1,[2,153]),o($V62,$V72,{138:339,142:340,143:341,141:$V82,145:$V92,147:$Va2,148:$Vb2,149:$Vc2}),{17:[1,347]},{17:[1,348]},{14:[1,349]},{33:354,37:353,40:29,41:30,42:31,43:32,44:33,45:34,46:35,49:$V6,51:133,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,89:$Vj,92:$Vk,147:$Vd2,152:350,154:351,157:$Vv,158:63},{17:[1,355],75:[1,356]},o($Ve2,[2,184]),o($Vx1,[2,187]),o($VX1,[2,189]),{10:357,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VR,[2,84]),{10:358,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vz1,[2,94]),o($Vz1,[2,97],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($VB,[2,101],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($VM1,[2,72]),{12:177,14:$Vq1,17:$Vr1,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,72:359,74:174,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VM1,[2,73]),{16:[1,360],17:$V_1},o($V22,[2,87],{82:361,84:$Vc1}),o($V02,[2,129]),{10:362,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$VS1,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$VT1,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$VU1,163:$VV1,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o([127,128],$Vv1,{19:365,16:[1,363],17:[1,366],112:[1,364]}),o($Vf2,[2,142]),{12:367,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vi1,[2,146]),o($Vi1,[2,147]),o($Vg2,$Vv1,{19:369,16:[1,368],17:$Vh2}),o($Vi2,[2,161]),o($Vj2,$Vk2,{144:371,150:$Vl2}),o([81,150],$V72,{143:373,147:$Va2,148:$Vb2,149:$Vc2}),o($V62,$V72,{143:341,142:374,141:$V82,145:$V92,147:$Va2,148:$Vb2,149:$Vc2}),o($V62,[2,172]),o($V62,[2,173]),o($V62,[2,174]),{14:[1,375]},{14:[1,376]},o($V62,$V72,{142:340,143:341,138:377,141:$V82,145:$V92,147:$Va2,148:$Vb2,149:$Vc2}),o($Vm2,$Vv1,{19:379,16:[1,378],17:$Vn2}),o($Vo2,[2,179]),{21:381,81:$Vp2},o($Vo2,[2,183]),{61:124,63:$V41,64:$V51,65:$V61,66:$V71},{14:[1,383]},{60:[1,384]},o($V12,[2,139]),o($VR,[2,89]),o($V$1,$VK1,{73:385,75:$VL1}),o($VM1,[2,75]),{10:386,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vx1,[2,149]),o($Vx1,[2,140]),{10:387,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{125:388,126:336,127:$V42,128:$V52},o($Vf2,[2,144]),{10:389,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$VS1,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$VT1,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$VU1,163:$VV1,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($Vx1,[2,157]),o($V62,$V72,{143:341,142:390,141:$V82,145:$V92,147:$Va2,148:$Vb2,149:$Vc2}),o($Vi2,[2,163]),{21:393,33:354,37:392,40:29,41:30,42:31,43:32,44:33,45:34,46:35,49:$V6,51:133,54:$V7,55:$V8,56:$V9,57:57,58:391,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,81:$Vp2,89:$Vj,92:$Vk,157:$Vv,158:63},o($Vj2,[2,176]),{81:$Vk2,144:394,150:$Vl2},o($Vi2,[2,168]),o($V62,$V72,{142:340,143:341,138:395,141:$V82,145:$V92,147:$Va2,148:$Vb2,149:$Vc2}),o($V62,$V72,{142:340,143:341,138:396,141:$V82,145:$V92,147:$Va2,148:$Vb2,149:$Vc2}),o($Vg2,$Vv1,{19:369,16:[1,397],17:$Vh2}),o($Vx1,[2,177]),{33:354,37:353,40:29,41:30,42:31,43:32,44:33,45:34,46:35,49:$V6,51:133,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,89:$Vj,92:$Vk,147:$Vd2,154:398,157:$Vv,158:63},o($Vo2,[2,181]),o($Vo2,[2,182]),{60:$Vy1},{33:354,37:353,40:29,41:30,42:31,43:32,44:33,45:34,46:35,49:$V6,51:133,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,89:$Vj,92:$Vk,147:$Vd2,152:399,154:351,157:$Vv,158:63},o($Ve2,[2,185]),{16:[1,400],17:$V_1},o($V22,[2,88]),{16:[1,401]},o($Vf2,[2,143]),o($Vf2,[2,145]),o($Vi2,[2,162]),o($Vi2,[2,164],{52:$Vp1,63:$Vp1,64:$Vp1,65:$Vp1,88:$Vp1}),o($Vi2,[2,165]),o($Vi2,[2,166]),{21:402,81:$Vp2},o($Vg2,$Vv1,{19:369,16:[1,403],17:$Vh2}),o($Vg2,$Vv1,{19:369,16:[1,404],17:$Vh2}),o($Vx1,[2,160]),o($Vo2,[2,180]),o($Vm2,$Vv1,{19:379,16:[1,405],17:$Vn2}),o($VM1,[2,74]),o($Vx1,[2,141]),o($Vi2,[2,167]),o($Vx1,[2,158]),o($Vx1,[2,159]),o($Vx1,[2,178])], +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], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; } - return result0; - } - - function parse_SliceExpressionWP() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_MemberExpressionWP(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - if (input.charCodeAt(pos) === 91) { - result2 = "["; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_Expression(); - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - if (input.charCodeAt(pos) === 58) { - result6 = ":"; - pos++; - } else { - result6 = null; - if (reportFailures === 0) { - matchFailed("\":\""); - } - } - if (result6 !== null) { - result7 = parse___(); - if (result7 !== null) { - result8 = parse_Expression(); - result8 = result8 !== null ? result8 : ""; - if (result8 !== null) { - result9 = parse___(); - if (result9 !== null) { - if (input.charCodeAt(pos) === 93) { - result10 = "]"; - pos++; - } else { - result10 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result10 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; + } + lexer.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer; + sharedState.yy.parser = this; + if (typeof lexer.yylloc == 'undefined') { + lexer.yylloc = {}; + } + var yyloc = lexer.yylloc; + lstack.push(yyloc); + var ranges = lexer.options && lexer.options.ranges; + if (typeof sharedState.yy.parseError === 'function') { + this.parseError = sharedState.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; + } + _token_stack: + function lex() { + var token; + token = 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] + '\''); } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, slicer, start, end) { - return { - type: "SliceExpression", - slicer: slicer, - start: start !== '' ? start:0, - end: end !== '' ? end:null - }; - })(pos0, result0[0], result0[4], result0[8]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_FunctionExpression() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - pos3 = pos; - if (input.charCodeAt(pos) === 40) { - result0 = "("; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_FormalParameterList(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 41) { - result4 = ")"; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } } - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; + if (lexer.showPosition) { + errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; } else { - result0 = null; - pos = pos3; + errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; + this.parseError(errStr, { + text: lexer.match, + token: this.terminals_[symbol] || symbol, + line: lexer.yylineno, + loc: yyloc, + expected: expected + }); } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result0 = (function(offset, prm) {return prm;})(pos2, result0[2]); + if (action[0] instanceof Array && action.length > 1) { + throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); } - if (result0 === null) { - pos = pos2; + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer.yytext); + lstack.push(lexer.yylloc); + stack.push(action[1]); + symbol = null; + if (!preErrorSymbol) { + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = 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, + sharedState.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; } - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - if (input.substr(pos, 2) === "->") { - result2 = "->"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"->\""); - } - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - pos2 = pos; - pos3 = pos; - result4 = []; - result5 = parse_blank(); - while (result5 !== null) { - result4.push(result5); - result5 = parse_blank(); - } - if (result4 !== null) { - result5 = parse_INDENT(); - if (result5 !== null) { - result6 = []; - result7 = parse_statement(); - while (result7 !== null) { - result6.push(result7); - result7 = parse_statement(); - } - if (result6 !== null) { - result7 = parse_DEDENT(); - if (result7 !== null) { - result4 = [result4, result5, result6, result7]; - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - if (result4 !== null) { - result4 = (function(offset, b, c) { return b.concat(c); })(pos2, result4[0], result4[2]); - } - if (result4 === null) { - pos = pos2; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } + } + return true; +}}; + +function Parser () { + this.yy = {}; +} +Parser.prototype = parser;parser.Parser = Parser; +return new Parser; +})(); + + +if (typeof require !== 'undefined' && typeof exports !== 'undefined') { +exports.parser = parser; +exports.Parser = parser.Parser; +exports.parse = function () { return parser.parse.apply(parser, arguments); }; +exports.main = function commonjsMain(args) { + if (!args[1]) { + console.log('Usage: '+args[0]+' FILE'); + process.exit(1); + } + var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8"); + return exports.parser.parse(source); +}; +if (typeof module !== 'undefined' && require.main === module) { + exports.main(process.argv.slice(1)); +} +}return exports;})(); +require["./context"] = (function() {var exports = {}, module = {exports: exports};// Generated by CoffeeScript 1.7.1 +(function() { + var Context, PreContext; + + exports.Context = Context = (function() { + function Context(element) { + this.scopes = []; + this.scopes.unshift(element); + } + + Context.prototype.push = function(iden) { + this.scopes[0][iden.name] = {}; + this.scopes[0][iden.name].name = iden.name; + return this.scopes[0][iden.name].type = iden.type; + }; + + Context.prototype.scopein = function() { + return this.scopes.unshift({}); + }; + + Context.prototype.scopeout = function() { + return this.scopes.shift(); + }; + + Context.prototype.Identify = function(name) { + var scope, _i, _len, _ref, _ref1; + _ref = this.scopes; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + scope = _ref[_i]; + if (scope[name] !== void 0) { + if ((_ref1 = scope[name].type) === 'function' || _ref1 === 'cte' || _ref1 === 'class' || _ref1 === 'interface') { + return name; } else { - result0 = null; - pos = pos1; + return '$' + name; } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, params, body) { - if(params == '') { - params = [] - } - return { - type: "Function", - params: params, - body: body !== '' ? body:null - } - })(pos0, result0[0], result0[4]); } - if (result0 === null) { - pos = pos0; - } - return result0; } - - function parse_FormalParameterList() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_AssignmentExpressionOfFunction(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_AssignmentExpressionOfFunction(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_AssignmentExpressionOfFunction(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = [head]; - for (var i = 0; i < tail.length; i++) { - result.push(tail[i][3]); - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_AssignmentExpressionOfFunction() { - var result0, result1, result2, result3, result4; - var pos0, pos1, pos2, pos3, pos4; - - pos0 = pos; - pos1 = pos; - result0 = parse_LeftHandSideAssignmentExpressionOfFunction(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - pos2 = pos; - pos3 = pos; - if (input.charCodeAt(pos) === 61) { - result2 = "="; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - if (result2 !== null) { - pos4 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 61) { - result3 = "="; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - reportFailures--; - if (result3 === null) { - result3 = ""; - } else { - result3 = null; - pos = pos4; - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset) { return "="; })(pos2); - } - if (result2 === null) { - pos = pos2; - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_AssignmentExpression(); - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, left, operator, right) { - return { - type: "AssignmentExpressionOfFunction", - operator: operator, - left: left, - right: right - }; - })(pos0, result0[0], result0[2], result0[4]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_LeftHandSideAssignmentExpressionOfFunction(); - } - return result0; - } - - function parse_LeftHandSideAssignmentExpressionOfFunction() { - var result0, result1; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 38) { - result0 = "&"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"&\""); - } - } - if (result0 !== null) { - result1 = parse_Identifier(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name) { return { type: "ReferenceVariable", name: name }; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_Identifier(); - if (result0 !== null) { - result0 = (function(offset, name) { return { type: "Variable", name: name }; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_AssignmentOperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 61) { - result0 = "="; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "="; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - if (input.substr(pos, 2) === "*=") { - result0 = "*="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"*=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "/=") { - result0 = "/="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"/=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "%=") { - result0 = "%="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"%=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "+=") { - result0 = "+="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"+=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === ".=") { - result0 = ".="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\".=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "-=") { - result0 = "-="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"-=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 3) === "<<=") { - result0 = "<<="; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"<<=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 3) === ">>=") { - result0 = ">>="; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\">>=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 4) === ">>>=") { - result0 = ">>>="; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\">>>=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "&=") { - result0 = "&="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"&=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "^=") { - result0 = "^="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"^=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "|=") { - result0 = "|="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"|=\""); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - return result0; - } - - function parse_LeftHandSideExpression() { - var result0; - - result0 = parse_CallExpression(); - if (result0 === null) { - result0 = parse_SliceExpression(); - if (result0 === null) { - result0 = parse_NewExpression(); - } - } - return result0; - } - - function parse_LeftHandSideExpressionWP() { - var result0; - - result0 = parse_CallExpressionWP(); - if (result0 === null) { - result0 = parse_SliceExpressionWP(); - if (result0 === null) { - result0 = parse_NewExpressionWP(); - } - } - return result0; - } - - function parse_NewExpression() { - var result0, result1, result2; - var pos0, pos1; - - result0 = parse_MemberExpression(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_NewToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_NamespaceId(); - if (result2 === null) { - result2 = parse_Identifier(); - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, constructor) { - return { - type: "NewOperator", - constructor: constructor, - arguments: [] - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_NewExpressionWP() { - var result0, result1, result2; - var pos0, pos1; - - result0 = parse_MemberExpressionWP(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_NewToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_NamespaceId(); - if (result2 === null) { - result2 = parse_Identifier(); - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, constructor) { - return { - type: "NewOperator", - constructor: constructor, - arguments: [] - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_MemberExpression() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_PrimaryExpression(); - if (result0 === null) { - pos2 = pos; - pos3 = pos; - result0 = parse_NewToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_NamespaceId(); - if (result2 === null) { - result2 = parse_Identifier(); - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_Arguments(); - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result0 = (function(offset, constructor, arguments) { - return { - type: "NewOperator", - constructor: constructor, - arguments: arguments - }; - })(pos2, result0[2], result0[4]); - } - if (result0 === null) { - pos = pos2; - } - } - if (result0 !== null) { - result1 = []; - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - if (input.charCodeAt(pos) === 93) { - result5 = "]"; - pos++; - } else { - result5 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset) { return ['PushArray']; })(pos2); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 123) { - result3 = "{"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"{\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 125) { - result7 = "}"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"}\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: 'PropertyFields', - name: name - } - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.substr(pos, 2) === "::") { - result3 = "::"; - pos += 2; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"::\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return [name, '::']; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - if (input.charCodeAt(pos) === 93) { - result5 = "]"; - pos++; - } else { - result5 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset) { return ['PushArray']; })(pos2); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 123) { - result3 = "{"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"{\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 125) { - result7 = "}"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"}\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: 'PropertyFields', - name: name - } - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.substr(pos, 2) === "::") { - result3 = "::"; - pos += 2; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"::\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return [name, '::']; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, base, accessors) { - var result = base; - for (var i = 0; i < accessors.length; i++) { - result = { - type: "PropertyAccess", - base: result, - name: accessors[i] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_MemberExpressionWP() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_PrimaryExpressionW(); - if (result0 === null) { - pos2 = pos; - pos3 = pos; - result0 = parse_NewToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_NamespaceId(); - if (result2 === null) { - result2 = parse_Identifier(); - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_Arguments(); - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result0 = (function(offset, constructor, arguments) { - return { - type: "NewOperator", - constructor: constructor, - arguments: arguments - }; - })(pos2, result0[2], result0[4]); - } - if (result0 === null) { - pos = pos2; - } - } - if (result0 !== null) { - result1 = []; - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 123) { - result3 = "{"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"{\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 125) { - result7 = "}"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"}\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: 'PropertyFields', - name: name - } - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.substr(pos, 2) === "::") { - result3 = "::"; - pos += 2; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"::\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return [name, '::']; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 123) { - result3 = "{"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"{\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 125) { - result7 = "}"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"}\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: 'PropertyFields', - name: name - } - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.substr(pos, 2) === "::") { - result3 = "::"; - pos += 2; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"::\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return [name, '::']; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, base, accessors) { - var result = base; - for (var i = 0; i < accessors.length; i++) { - result = { - type: "PropertyAccess", - base: result, - name: accessors[i] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_CallExpression() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - pos3 = pos; - result0 = parse_MemberExpression(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_Arguments(); - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result0 = (function(offset, name, arguments) { - return { - type: "FunctionCall", - name: name, - arguments: arguments - }; - })(pos2, result0[0], result0[2]); - } - if (result0 === null) { - pos = pos2; - } - if (result0 !== null) { - result1 = []; - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Arguments(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, arguments) { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - })(pos2, result2[1]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Arguments(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, arguments) { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - })(pos2, result2[1]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, base, argumentsOrAccessors) { - var result = base; - for (var i = 0; i < argumentsOrAccessors.length; i++) { - switch (argumentsOrAccessors[i].type) { - case "FunctionCallArguments": - result = { - type: "FunctionCall", - name: result, - arguments: argumentsOrAccessors[i].arguments - }; - break; - case "PropertyAccessProperty": - result = { - type: "PropertyAccess", - base: result, - name: argumentsOrAccessors[i].name - }; - break; - default: - throw new Error( - "Invalid expression type: " + argumentsOrAccessors[i].type - ); - } - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_CallExpressionWP() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - pos3 = pos; - result0 = parse_MemberExpressionWP(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_Arguments(); - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result0 = (function(offset, name, arguments) { - return { - type: "FunctionCall", - name: name, - arguments: arguments - }; - })(pos2, result0[0], result0[2]); - } - if (result0 === null) { - pos = pos2; - } - if (result0 !== null) { - result1 = []; - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Arguments(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, arguments) { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - })(pos2, result2[1]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Arguments(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, arguments) { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - })(pos2, result2[1]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, base, argumentsOrAccessors) { - var result = base; - for (var i = 0; i < argumentsOrAccessors.length; i++) { - switch (argumentsOrAccessors[i].type) { - case "FunctionCallArguments": - result = { - type: "FunctionCall", - name: result, - arguments: argumentsOrAccessors[i].arguments - }; - break; - case "PropertyAccessProperty": - result = { - type: "PropertyAccess", - base: result, - name: argumentsOrAccessors[i].name - }; - break; - default: - throw new Error( - "Invalid expression type: " + argumentsOrAccessors[i].type - ); - } - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_Arguments() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 40) { - result0 = "("; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_ArgumentList(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 41) { - result4 = ")"; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, arguments) { - return arguments !== "" ? arguments : []; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ArgumentList() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_AssignmentExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_AssignmentExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_AssignmentExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = [head]; - for (var i = 0; i < tail.length; i++) { - result.push(tail[i][3]); - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ConditionalExpression() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_LogicalORExpression(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - if (input.charCodeAt(pos) === 63) { - result2 = "?"; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"?\""); - } - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_AssignmentExpression(); - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - if (input.charCodeAt(pos) === 58) { - result6 = ":"; - pos++; - } else { - result6 = null; - if (reportFailures === 0) { - matchFailed("\":\""); - } - } - if (result6 !== null) { - result7 = parse___(); - if (result7 !== null) { - result8 = parse_AssignmentExpression(); - if (result8 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, condition, trueExpression, falseExpression) { - return { - type: "ConditionalExpression", - condition: condition, - trueExpression: trueExpression, - falseExpression: falseExpression - }; - })(pos0, result0[0], result0[4], result0[8]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_LogicalORExpression(); - } - return result0; - } - - function parse_LogicalORExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_LogicalANDExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_LogicalOROperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_LogicalANDExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_LogicalOROperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_LogicalANDExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_LogicalOROperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.substr(pos, 2) === "||") { - result0 = "||"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"||\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "or") { - result0 = "or"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"or\""); - } - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "||"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_LogicalANDExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_BitwiseORExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_LogicalANDOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_BitwiseORExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_LogicalANDOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_BitwiseORExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_LogicalANDOperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.substr(pos, 2) === "&&") { - result0 = "&&"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"&&\""); - } - } - if (result0 === null) { - if (input.substr(pos, 3) === "and") { - result0 = "and"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"and\""); - } - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "&&"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BitwiseORExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_BitwiseXORExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_BitwiseOROperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_BitwiseXORExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_BitwiseOROperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_BitwiseXORExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BitwiseOROperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 124) { - result0 = "|"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"|\""); - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 124) { - result1 = "|"; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"|\""); - } - } - if (result1 === null) { - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "|"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BitwiseXORExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_BitwiseANDExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_BitwiseXOROperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_BitwiseANDExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_BitwiseXOROperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_BitwiseANDExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BitwiseXOROperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 94) { - result0 = "^"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"^\""); - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 94) { - result1 = "^"; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"^\""); - } - } - if (result1 === null) { - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "^"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BitwiseANDExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_EqualityExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_BitwiseANDOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_EqualityExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_BitwiseANDOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_EqualityExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BitwiseANDOperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 38) { - result0 = "&"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"&\""); - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 38) { - result1 = "&"; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"&\""); - } - } - if (result1 === null) { - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "&"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EqualityExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_RelationalExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_EqualityOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_RelationalExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_EqualityOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_RelationalExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EqualityOperator() { - var result0; - - if (input.substr(pos, 3) === "===") { - result0 = "==="; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"===\""); - } - } - if (result0 === null) { - if (input.substr(pos, 3) === "!==") { - result0 = "!=="; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"!==\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "==") { - result0 = "=="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"==\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "!=") { - result0 = "!="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"!=\""); - } - } - } - } - } - return result0; - } - - function parse_ShiftExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_DotAddExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_ShiftOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_DotAddExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_ShiftOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_DotAddExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ShiftOperator() { - var result0; - - if (input.substr(pos, 2) === "<<") { - result0 = "<<"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"<<\""); - } - } - if (result0 === null) { - if (input.substr(pos, 3) === ">>>") { - result0 = ">>>"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\">>>\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === ">>") { - result0 = ">>"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\">>\""); - } - } - } - } - return result0; - } - - function parse_RelationalExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_ShiftExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_RelationalOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_ShiftExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_RelationalOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_ShiftExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_RelationalOperator() { - var result0; - - if (input.substr(pos, 2) === "<=") { - result0 = "<="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"<=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === ">=") { - result0 = ">="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\">=\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 60) { - result0 = "<"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"<\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 62) { - result0 = ">"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\">\""); - } - } - if (result0 === null) { - result0 = parse_OfToken(); - } - } - } - } - return result0; - } - - function parse_PostfixExpression() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_LeftHandSideExpression(); - if (result0 !== null) { - result1 = parse__(); - if (result1 !== null) { - result2 = parse_PostfixOperator(); - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, expression, operator) { - return { - type: "PostfixExpression", - operator: operator, - expression: expression - }; - })(pos0, result0[0], result0[2]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_LeftHandSideExpression(); - } - return result0; - } - - function parse_PostfixOperator() { - var result0; - - if (input.substr(pos, 2) === "++") { - result0 = "++"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"++\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "--") { - result0 = "--"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"--\""); - } - } - } - return result0; - } - - function parse_UnaryExpression() { - var result0, result1, result2; - var pos0, pos1; - - result0 = parse_PostfixExpression(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_UnaryOperator(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_UnaryExpression(); - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, operator, expression) { - return { - type: "UnaryExpression", - operator: operator, - expression: expression - }; - })(pos0, result0[0], result0[2]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_UnaryOperator() { - var result0; - - if (input.substr(pos, 2) === "++") { - result0 = "++"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"++\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "--") { - result0 = "--"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"--\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 43) { - result0 = "+"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"+\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 45) { - result0 = "-"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"-\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 126) { - result0 = "~"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"~\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 33) { - result0 = "!"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"!\""); - } - } - } - } - } - } - } - return result0; - } - - function parse_MultiplicativeExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_UnaryExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_MultiplicativeOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_UnaryExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_MultiplicativeOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_UnaryExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_MultiplicativeOperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 42) { - result0 = "*"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"*\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 47) { - result0 = "/"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"/\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 37) { - result0 = "%"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"%\""); - } - } - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, operator) { return operator; })(pos0, result0[0]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_AdditiveExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_MultiplicativeExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_AdditiveOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_MultiplicativeExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_AdditiveOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_MultiplicativeExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_DotAddExpression() { - var result0, result1, result2, result3; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_AdditiveExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result3 = parse_WhiteSpace(); - if (result3 !== null) { - result2 = []; - while (result3 !== null) { - result2.push(result3); - result3 = parse_WhiteSpace(); - } - } else { - result2 = null; - } - if (result2 !== null) { - result3 = parse_AdditiveExpression(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result3 = parse_WhiteSpace(); - if (result3 !== null) { - result2 = []; - while (result3 !== null) { - result2.push(result3); - result3 = parse_WhiteSpace(); - } - } else { - result2 = null; - } - if (result2 !== null) { - result3 = parse_AdditiveExpression(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: '.', - left: result, - right: tail[i][1] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_AdditiveOperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 43) { - result0 = "+"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"+\""); - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 43) { - result1 = "+"; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"+\""); - } - } - if (result1 === null) { - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "+"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 45) { - result0 = "-"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"-\""); - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 45) { - result1 = "-"; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"-\""); - } - } - if (result1 === null) { - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "-"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_statements() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_INDENT(); - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = []; - result2 = parse_statement(); - while (result2 !== null) { - result1.push(result2); - result2 = parse_statement(); - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) {return m;})(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_statement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_SwitchStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_IfStatement(); - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_ForStatement(); - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_WhileStatement(); - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_TryStatement(); - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_FunctionInLineCall(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_FunctionDeclaration(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_NamespaceDeclaration(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ClassDeclaration(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ContinueStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_BreakStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_EchoStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ReturnStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_Include_onceStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_Require_onceStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_RequireStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_IncludeStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_ExpressionStatement(); - if (result0 === null) { - result0 = parse_blank(); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - return result0; - } - - function parse_statementNoSameDENT() { - var result0; - - result0 = parse_CallExpression(); - if (result0 === null) { - result0 = parse_Expression(); - } - return result0; - } - - function parse_ExpressionStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_Expression(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_FunctionInLineCall() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_CallExpression(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_CallExpression() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3, pos4; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - pos3 = pos; - pos4 = pos; - result0 = parse_Literal(); - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse_MemberExpression(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos4; - } - } else { - result0 = null; - pos = pos4; - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_ArgumentsForInline(); - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result0 = (function(offset, name, arguments) { - return { - type: "FunctionCall", - name: name, - arguments: arguments - }; - })(pos2, result0[0], result0[2]); - } - if (result0 === null) { - pos = pos2; - } - if (result0 !== null) { - result1 = []; - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Arguments(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, arguments) { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - })(pos2, result2[1]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Arguments(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, arguments) { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - })(pos2, result2[1]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, base, argumentsOrAccessors) { - var result = base; - for (var i = 0; i < argumentsOrAccessors.length; i++) { - switch (argumentsOrAccessors[i].type) { - case "FunctionCallArguments": - result = { - type: "FunctionCall", - name: result, - arguments: argumentsOrAccessors[i].arguments - }; - break; - case "PropertyAccessProperty": - result = { - type: "PropertyAccess", - base: result, - name: argumentsOrAccessors[i].name - }; - break; - default: - throw new Error( - "Invalid expression type: " + argumentsOrAccessors[i].type - ); - } - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ArgumentsForInline() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 40) { - result0 = "("; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_ArgumentList(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 41) { - result4 = ")"; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, arguments) { - return arguments !== "" ? arguments : []; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_IfStatement() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12, result13, result14, result15, result16, result17, result18, result19, result20, result21, result22, result23, result24, result25; - var pos0, pos1, pos2, pos3, pos4, pos5; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_IfToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 40) { - result3 = "("; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 41) { - result7 = ")"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result7 = result7 !== null ? result7 : ""; - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_EOL(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - pos2 = pos; - pos3 = pos; - result10 = []; - result11 = parse_blank(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_blank(); - } - if (result10 !== null) { - result11 = parse_INDENT(); - if (result11 !== null) { - result12 = []; - result13 = parse_statement(); - while (result13 !== null) { - result12.push(result13); - result13 = parse_statement(); - } - if (result12 !== null) { - result13 = parse_DEDENT(); - if (result13 !== null) { - result10 = [result10, result11, result12, result13]; - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - if (result10 !== null) { - result10 = (function(offset, b, c) { return b.concat(c); })(pos2, result10[0], result10[2]); - } - if (result10 === null) { - pos = pos2; - } - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - pos2 = pos; - pos3 = pos; - result12 = parse_SAMEDENT(); - if (result12 !== null) { - result13 = parse_ElseIfToken(); - if (result13 !== null) { - result14 = parse___(); - if (result14 !== null) { - if (input.charCodeAt(pos) === 40) { - result15 = "("; - pos++; - } else { - result15 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result15 = result15 !== null ? result15 : ""; - if (result15 !== null) { - result16 = parse___(); - if (result16 !== null) { - result17 = parse_Expression(); - if (result17 !== null) { - result18 = parse___(); - if (result18 !== null) { - if (input.charCodeAt(pos) === 41) { - result19 = ")"; - pos++; - } else { - result19 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result19 = result19 !== null ? result19 : ""; - if (result19 !== null) { - result20 = parse___(); - if (result20 !== null) { - result21 = parse_EOL(); - result21 = result21 !== null ? result21 : ""; - if (result21 !== null) { - pos4 = pos; - pos5 = pos; - result22 = []; - result23 = parse_blank(); - while (result23 !== null) { - result22.push(result23); - result23 = parse_blank(); - } - if (result22 !== null) { - result23 = parse_INDENT(); - if (result23 !== null) { - result24 = []; - result25 = parse_statement(); - while (result25 !== null) { - result24.push(result25); - result25 = parse_statement(); - } - if (result24 !== null) { - result25 = parse_DEDENT(); - if (result25 !== null) { - result22 = [result22, result23, result24, result25]; - } else { - result22 = null; - pos = pos5; - } - } else { - result22 = null; - pos = pos5; - } - } else { - result22 = null; - pos = pos5; - } - } else { - result22 = null; - pos = pos5; - } - if (result22 !== null) { - result22 = (function(offset, b, c) { return b.concat(c); })(pos4, result22[0], result22[2]); - } - if (result22 === null) { - pos = pos4; - } - result22 = result22 !== null ? result22 : ""; - if (result22 !== null) { - result12 = [result12, result13, result14, result15, result16, result17, result18, result19, result20, result21, result22]; - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - if (result12 !== null) { - result12 = (function(offset, condition, statement) {return { - condition: condition, - statement: statement, - } - })(pos2, result12[5], result12[10]); - } - if (result12 === null) { - pos = pos2; - } - if (result12 !== null) { - result11 = []; - while (result12 !== null) { - result11.push(result12); - pos2 = pos; - pos3 = pos; - result12 = parse_SAMEDENT(); - if (result12 !== null) { - result13 = parse_ElseIfToken(); - if (result13 !== null) { - result14 = parse___(); - if (result14 !== null) { - if (input.charCodeAt(pos) === 40) { - result15 = "("; - pos++; - } else { - result15 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result15 = result15 !== null ? result15 : ""; - if (result15 !== null) { - result16 = parse___(); - if (result16 !== null) { - result17 = parse_Expression(); - if (result17 !== null) { - result18 = parse___(); - if (result18 !== null) { - if (input.charCodeAt(pos) === 41) { - result19 = ")"; - pos++; - } else { - result19 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result19 = result19 !== null ? result19 : ""; - if (result19 !== null) { - result20 = parse___(); - if (result20 !== null) { - result21 = parse_EOL(); - result21 = result21 !== null ? result21 : ""; - if (result21 !== null) { - pos4 = pos; - pos5 = pos; - result22 = []; - result23 = parse_blank(); - while (result23 !== null) { - result22.push(result23); - result23 = parse_blank(); - } - if (result22 !== null) { - result23 = parse_INDENT(); - if (result23 !== null) { - result24 = []; - result25 = parse_statement(); - while (result25 !== null) { - result24.push(result25); - result25 = parse_statement(); - } - if (result24 !== null) { - result25 = parse_DEDENT(); - if (result25 !== null) { - result22 = [result22, result23, result24, result25]; - } else { - result22 = null; - pos = pos5; - } - } else { - result22 = null; - pos = pos5; - } - } else { - result22 = null; - pos = pos5; - } - } else { - result22 = null; - pos = pos5; - } - if (result22 !== null) { - result22 = (function(offset, b, c) { return b.concat(c); })(pos4, result22[0], result22[2]); - } - if (result22 === null) { - pos = pos4; - } - result22 = result22 !== null ? result22 : ""; - if (result22 !== null) { - result12 = [result12, result13, result14, result15, result16, result17, result18, result19, result20, result21, result22]; - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - if (result12 !== null) { - result12 = (function(offset, condition, statement) {return { - condition: condition, - statement: statement, - } - })(pos2, result12[5], result12[10]); - } - if (result12 === null) { - pos = pos2; - } - } - } else { - result11 = null; - } - result11 = result11 !== null ? result11 : ""; - if (result11 !== null) { - pos2 = pos; - result12 = parse_SAMEDENT(); - if (result12 !== null) { - result13 = parse_ElseToken(); - if (result13 !== null) { - result14 = parse___(); - if (result14 !== null) { - result15 = parse_EOL(); - result15 = result15 !== null ? result15 : ""; - if (result15 !== null) { - pos3 = pos; - pos4 = pos; - result16 = []; - result17 = parse_blank(); - while (result17 !== null) { - result16.push(result17); - result17 = parse_blank(); - } - if (result16 !== null) { - result17 = parse_INDENT(); - if (result17 !== null) { - result18 = []; - result19 = parse_statement(); - while (result19 !== null) { - result18.push(result19); - result19 = parse_statement(); - } - if (result18 !== null) { - result19 = parse_DEDENT(); - if (result19 !== null) { - result16 = [result16, result17, result18, result19]; - } else { - result16 = null; - pos = pos4; - } - } else { - result16 = null; - pos = pos4; - } - } else { - result16 = null; - pos = pos4; - } - } else { - result16 = null; - pos = pos4; - } - if (result16 !== null) { - result16 = (function(offset, b, c) { return b.concat(c); })(pos3, result16[0], result16[2]); - } - if (result16 === null) { - pos = pos3; - } - result16 = result16 !== null ? result16 : ""; - if (result16 !== null) { - result12 = [result12, result13, result14, result15, result16]; - } else { - result12 = null; - pos = pos2; - } - } else { - result12 = null; - pos = pos2; - } - } else { - result12 = null; - pos = pos2; - } - } else { - result12 = null; - pos = pos2; - } - } else { - result12 = null; - pos = pos2; - } - result12 = result12 !== null ? result12 : ""; - if (result12 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, condition, ifStatement, elseifStatement, elseStatement) { - return { - type: "IfStatement", - condition: condition, - ifStatement: ifStatement !== "" ? ifStatement : null, - elseStatement: elseStatement !== "" ? elseStatement[4] : null, - elseifStatement: elseifStatement !== "" ? elseifStatement : null - }; - })(pos0, result0[5], result0[10], result0[11], result0[12]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ForStatement() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12, result13, result14, result15; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ForToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 40) { - result3 = "("; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - result5 = result5 !== null ? result5 : ""; - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - pos2 = pos; - if (input.charCodeAt(pos) === 59) { - result7 = ";"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\";\""); - } - } - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_Expression(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - result10 = parse___(); - if (result10 !== null) { - if (input.charCodeAt(pos) === 59) { - result11 = ";"; - pos++; - } else { - result11 = null; - if (reportFailures === 0) { - matchFailed("\";\""); - } - } - if (result11 !== null) { - result12 = parse___(); - if (result12 !== null) { - result13 = parse_Expression(); - result13 = result13 !== null ? result13 : ""; - if (result13 !== null) { - result14 = parse___(); - if (result14 !== null) { - if (input.charCodeAt(pos) === 41) { - result15 = ")"; - pos++; - } else { - result15 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result15 = result15 !== null ? result15 : ""; - if (result15 !== null) { - result7 = [result7, result8, result9, result10, result11, result12, result13, result14, result15]; - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_EOL(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - pos2 = pos; - pos3 = pos; - result10 = []; - result11 = parse_blank(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_blank(); - } - if (result10 !== null) { - result11 = parse_INDENT(); - if (result11 !== null) { - result12 = []; - result13 = parse_statement(); - while (result13 !== null) { - result12.push(result13); - result13 = parse_statement(); - } - if (result12 !== null) { - result13 = parse_DEDENT(); - if (result13 !== null) { - result10 = [result10, result11, result12, result13]; - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - if (result10 !== null) { - result10 = (function(offset, b, c) { return b.concat(c); })(pos2, result10[0], result10[2]); - } - if (result10 === null) { - pos = pos2; - } - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, initializer, test, counter, statement) { - return { - type: "ForStatement", - initializer: initializer !== "" ? initializer : null, - test: test !== "" ? test : null, - counter: counter !== "" ? counter : null, - statement: statement - }; - })(pos0, result0[5], result0[7][2], result0[7][6], result0[10]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ForToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 40) { - result3 = "("; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - result5 = result5 !== null ? result5 : ""; - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - pos2 = pos; - if (input.charCodeAt(pos) === 59) { - result7 = ";"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\";\""); - } - } - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_Expression(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - result10 = parse___(); - if (result10 !== null) { - if (input.charCodeAt(pos) === 59) { - result11 = ";"; - pos++; - } else { - result11 = null; - if (reportFailures === 0) { - matchFailed("\";\""); - } - } - if (result11 !== null) { - result12 = parse___(); - if (result12 !== null) { - result13 = parse_Expression(); - result13 = result13 !== null ? result13 : ""; - if (result13 !== null) { - result14 = parse___(); - if (result14 !== null) { - if (input.charCodeAt(pos) === 41) { - result15 = ")"; - pos++; - } else { - result15 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result15 = result15 !== null ? result15 : ""; - if (result15 !== null) { - result7 = [result7, result8, result9, result10, result11, result12, result13, result14, result15]; - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - result7 = result7 !== null ? result7 : ""; - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_EOL(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - pos2 = pos; - pos3 = pos; - result10 = []; - result11 = parse_blank(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_blank(); - } - if (result10 !== null) { - result11 = parse_INDENT(); - if (result11 !== null) { - result12 = []; - result13 = parse_statement(); - while (result13 !== null) { - result12.push(result13); - result13 = parse_statement(); - } - if (result12 !== null) { - result13 = parse_DEDENT(); - if (result13 !== null) { - result10 = [result10, result11, result12, result13]; - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - if (result10 !== null) { - result10 = (function(offset, b, c) { return b.concat(c); })(pos2, result10[0], result10[2]); - } - if (result10 === null) { - pos = pos2; - } - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, initializer, statement) { - if(typeof test == 'undefined') { - test = ''; - } - if(typeof counter == 'undefined') { - counter = ''; - } - return { - type: "ForStatement", - initializer: initializer !== "" ? initializer : null, - test: test !== "" ? test : null, - counter: counter !== "" ? counter : null, - statement: statement !== "" ? statement: null - }; - })(pos0, result0[5], result0[10]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_WhileStatement() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12, result13; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_WhileToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 40) { - result3 = "("; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 41) { - result7 = ")"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result7 = result7 !== null ? result7 : ""; - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_EOL(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - pos2 = pos; - pos3 = pos; - result10 = []; - result11 = parse_blank(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_blank(); - } - if (result10 !== null) { - result11 = parse_INDENT(); - if (result11 !== null) { - result12 = []; - result13 = parse_statement(); - while (result13 !== null) { - result12.push(result13); - result13 = parse_statement(); - } - if (result12 !== null) { - result13 = parse_DEDENT(); - if (result13 !== null) { - result10 = [result10, result11, result12, result13]; - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - if (result10 !== null) { - result10 = (function(offset, b, c) { return b.concat(c); })(pos2, result10[0], result10[2]); - } - if (result10 === null) { - pos = pos2; - } - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, condition, statement) { - return { - type: 'WhileStatement', - condition: condition, - statement: statement - }; - })(pos0, result0[5], result0[10]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_SwitchStatement() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_SwitchToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - if (input.charCodeAt(pos) === 40) { - result2 = "("; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_Expression(); - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - if (input.charCodeAt(pos) === 41) { - result6 = ")"; - pos++; - } else { - result6 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result7 = parse___(); - if (result7 !== null) { - pos2 = pos; - pos3 = pos; - result8 = []; - result9 = parse_blank(); - while (result9 !== null) { - result8.push(result9); - result9 = parse_blank(); - } - if (result8 !== null) { - result9 = parse_INDENT(); - if (result9 !== null) { - result10 = []; - result11 = parse_SwitchCase(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_SwitchCase(); - } - if (result10 !== null) { - result11 = parse_DEDENT(); - if (result11 !== null) { - result8 = [result8, result9, result10, result11]; - } else { - result8 = null; - pos = pos3; - } - } else { - result8 = null; - pos = pos3; - } - } else { - result8 = null; - pos = pos3; - } - } else { - result8 = null; - pos = pos3; - } - if (result8 !== null) { - result8 = (function(offset, b, c) { return b.concat(c); })(pos2, result8[0], result8[2]); - } - if (result8 === null) { - pos = pos2; - } - if (result8 !== null) { - pos2 = pos; - pos3 = pos; - result9 = []; - result10 = parse_blank(); - while (result10 !== null) { - result9.push(result10); - result10 = parse_blank(); - } - if (result9 !== null) { - result10 = parse_INDENT(); - if (result10 !== null) { - result11 = parse_SwitchElse(); - if (result11 !== null) { - result12 = parse_DEDENT(); - if (result12 !== null) { - result9 = [result9, result10, result11, result12]; - } else { - result9 = null; - pos = pos3; - } - } else { - result9 = null; - pos = pos3; - } - } else { - result9 = null; - pos = pos3; - } - } else { - result9 = null; - pos = pos3; - } - if (result9 !== null) { - result9 = (function(offset, b, c) { return c; })(pos2, result9[0], result9[2]); - } - if (result9 === null) { - pos = pos2; - } - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, variable, cases, elsed) { - if(typeof elsed == 'undefined') { - elsed = ''; - } - return { - type: 'SwitchStatement', - variable: variable, - cases: cases, - elsed: elsed - }; - })(pos0, result0[4], result0[8], result0[9]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_SwitchCase() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_CaseToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Expression(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_ThenToken(); - result5 = result5 !== null ? result5 : ""; - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - result7 = parse_EOL(); - result7 = result7 !== null ? result7 : ""; - if (result7 !== null) { - pos2 = pos; - pos3 = pos; - result8 = []; - result9 = parse_blank(); - while (result9 !== null) { - result8.push(result9); - result9 = parse_blank(); - } - if (result8 !== null) { - result9 = parse_INDENT(); - if (result9 !== null) { - result10 = []; - result11 = parse_statement(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_statement(); - } - if (result10 !== null) { - result11 = parse_DEDENT(); - if (result11 !== null) { - result8 = [result8, result9, result10, result11]; - } else { - result8 = null; - pos = pos3; - } - } else { - result8 = null; - pos = pos3; - } - } else { - result8 = null; - pos = pos3; - } - } else { - result8 = null; - pos = pos3; - } - if (result8 !== null) { - result8 = (function(offset, b, c) { return b.concat(c); })(pos2, result8[0], result8[2]); - } - if (result8 === null) { - pos = pos2; - } - result8 = result8 !== null ? result8 : ""; - if (result8 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, value, statement) { - return { - type: 'case', - value: value, - statement: statement - }; - })(pos0, result0[3], result0[8]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_SwitchElse() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ElseToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - result3 = parse_EOL(); - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - pos2 = pos; - pos3 = pos; - result4 = []; - result5 = parse_blank(); - while (result5 !== null) { - result4.push(result5); - result5 = parse_blank(); - } - if (result4 !== null) { - result5 = parse_INDENT(); - if (result5 !== null) { - result6 = []; - result7 = parse_statement(); - while (result7 !== null) { - result6.push(result7); - result7 = parse_statement(); - } - if (result6 !== null) { - result7 = parse_DEDENT(); - if (result7 !== null) { - result4 = [result4, result5, result6, result7]; - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - if (result4 !== null) { - result4 = (function(offset, b, c) { return b.concat(c); })(pos2, result4[0], result4[2]); - } - if (result4 === null) { - pos = pos2; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, statement) { - return statement; - })(pos0, result0[4]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BreakStatement() { - var result0; - var pos0; - - pos0 = pos; - result0 = parse_BreakToken(); - if (result0 !== null) { - result0 = (function(offset) { - return { - type: 'break' - }; - })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_TryStatement() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12, result13, result14; - var pos0, pos1, pos2, pos3, pos4; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_TryToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - result3 = parse_EOL(); - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - pos2 = pos; - pos3 = pos; - result4 = []; - result5 = parse_blank(); - while (result5 !== null) { - result4.push(result5); - result5 = parse_blank(); - } - if (result4 !== null) { - result5 = parse_INDENT(); - if (result5 !== null) { - result6 = []; - result7 = parse_statement(); - while (result7 !== null) { - result6.push(result7); - result7 = parse_statement(); - } - if (result6 !== null) { - result7 = parse_DEDENT(); - if (result7 !== null) { - result4 = [result4, result5, result6, result7]; - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - if (result4 !== null) { - result4 = (function(offset, b, c) { return b.concat(c); })(pos2, result4[0], result4[2]); - } - if (result4 === null) { - pos = pos2; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - pos2 = pos; - result5 = parse_SAMEDENT(); - if (result5 !== null) { - result6 = parse_CatchToken(); - if (result6 !== null) { - result7 = parse___(); - if (result7 !== null) { - result8 = parse_CatchErrVar(); - if (result8 !== null) { - result9 = parse___(); - if (result9 !== null) { - result10 = parse_EOL(); - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - pos3 = pos; - pos4 = pos; - result11 = []; - result12 = parse_blank(); - while (result12 !== null) { - result11.push(result12); - result12 = parse_blank(); - } - if (result11 !== null) { - result12 = parse_INDENT(); - if (result12 !== null) { - result13 = []; - result14 = parse_statement(); - while (result14 !== null) { - result13.push(result14); - result14 = parse_statement(); - } - if (result13 !== null) { - result14 = parse_DEDENT(); - if (result14 !== null) { - result11 = [result11, result12, result13, result14]; - } else { - result11 = null; - pos = pos4; - } - } else { - result11 = null; - pos = pos4; - } - } else { - result11 = null; - pos = pos4; - } - } else { - result11 = null; - pos = pos4; - } - if (result11 !== null) { - result11 = (function(offset, b, c) { return b.concat(c); })(pos3, result11[0], result11[2]); - } - if (result11 === null) { - pos = pos3; - } - result11 = result11 !== null ? result11 : ""; - if (result11 !== null) { - result5 = [result5, result6, result7, result8, result9, result10, result11]; - } else { - result5 = null; - pos = pos2; - } - } else { - result5 = null; - pos = pos2; - } - } else { - result5 = null; - pos = pos2; - } - } else { - result5 = null; - pos = pos2; - } - } else { - result5 = null; - pos = pos2; - } - } else { - result5 = null; - pos = pos2; - } - } else { - result5 = null; - pos = pos2; - } - if (result5 !== null) { - pos2 = pos; - result6 = parse_SAMEDENT(); - if (result6 !== null) { - result7 = parse_finallyToken(); - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_EOL(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - pos3 = pos; - pos4 = pos; - result10 = []; - result11 = parse_blank(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_blank(); - } - if (result10 !== null) { - result11 = parse_INDENT(); - if (result11 !== null) { - result12 = []; - result13 = parse_statement(); - while (result13 !== null) { - result12.push(result13); - result13 = parse_statement(); - } - if (result12 !== null) { - result13 = parse_DEDENT(); - if (result13 !== null) { - result10 = [result10, result11, result12, result13]; - } else { - result10 = null; - pos = pos4; - } - } else { - result10 = null; - pos = pos4; - } - } else { - result10 = null; - pos = pos4; - } - } else { - result10 = null; - pos = pos4; - } - if (result10 !== null) { - result10 = (function(offset, b, c) { return b.concat(c); })(pos3, result10[0], result10[2]); - } - if (result10 === null) { - pos = pos3; - } - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - result6 = [result6, result7, result8, result9, result10]; - } else { - result6 = null; - pos = pos2; - } - } else { - result6 = null; - pos = pos2; - } - } else { - result6 = null; - pos = pos2; - } - } else { - result6 = null; - pos = pos2; - } - } else { - result6 = null; - pos = pos2; - } - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, TryStatement, CatchStatemnt, FinallyStatemnt) { - return { - type: "TryStatement", - TryStatement: TryStatement !== "" ? TryStatement : null, - CatchStatement: CatchStatemnt[6] !== "" ? CatchStatemnt[6] : null, - CatchErrVar: CatchStatemnt[3], - FinallyStatemnt: FinallyStatemnt[4] !== "" ? FinallyStatemnt[4] : null - }; - })(pos0, result0[4], result0[5], result0[6]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_CatchErrVar() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_Identifier(); - if (result0 !== null) { - result2 = parse_WhiteSpace(); - if (result2 !== null) { - result1 = []; - while (result2 !== null) { - result1.push(result2); - result2 = parse_WhiteSpace(); - } - } else { - result1 = null; - } - if (result1 !== null) { - result2 = parse_Identifier(); - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, Type, name) { - return { - type: "VariableWithType", - name: { - type:"Variable", - name:name - }, - vtype: Type - }; - })(pos0, result0[0], result0[2]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_Identifier(); - if (result0 !== null) { - result0 = (function(offset, name) { - return { - type: "VariableWithType", - name: { - type:"Variable", - name:name - }, - vtype: "Exception" - }; - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_FunctionDeclaration() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - pos3 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 36) { - result0 = "$"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"$\""); - } - } - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result1 = parse_Identifier(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos2; - } - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - pos2 = pos; - pos3 = pos; - if (input.charCodeAt(pos) === 40) { - result2 = "("; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_FormalParameterList(); - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - if (input.charCodeAt(pos) === 41) { - result6 = ")"; - pos++; - } else { - result6 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result6 !== null) { - result2 = [result2, result3, result4, result5, result6]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, prm) {return prm;})(pos2, result2[2]); - } - if (result2 === null) { - pos = pos2; - } - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.substr(pos, 2) === "->") { - result4 = "->"; - pos += 2; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\"->\""); - } - } - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - pos2 = pos; - pos3 = pos; - result6 = []; - result7 = parse_blank(); - while (result7 !== null) { - result6.push(result7); - result7 = parse_blank(); - } - if (result6 !== null) { - result7 = parse_INDENT(); - if (result7 !== null) { - result8 = []; - result9 = parse_statement(); - while (result9 !== null) { - result8.push(result9); - result9 = parse_statement(); - } - if (result8 !== null) { - result9 = parse_DEDENT(); - if (result9 !== null) { - result6 = [result6, result7, result8, result9]; - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - if (result6 !== null) { - result6 = (function(offset, b, c) { return b.concat(c); })(pos2, result6[0], result6[2]); - } - if (result6 === null) { - pos = pos2; - } - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name, params, body) { - if(params == '') { - params = [] - } - return { - type: "FunctionDeclaration", - name: name[1], - params: params, - body: body !== '' ? body: null - } - })(pos0, result0[0], result0[2], result0[6]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_NamespaceDeclaration() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_NamespaceToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_NamespaceId(); - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.substr(pos, 2) === "->") { - result4 = "->"; - pos += 2; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\"->\""); - } - } - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - pos2 = pos; - pos3 = pos; - result6 = []; - result7 = parse_blank(); - while (result7 !== null) { - result6.push(result7); - result7 = parse_blank(); - } - if (result6 !== null) { - result7 = parse_INDENT(); - if (result7 !== null) { - result8 = []; - result9 = parse_statement(); - while (result9 !== null) { - result8.push(result9); - result9 = parse_statement(); - } - if (result8 !== null) { - result9 = parse_DEDENT(); - if (result9 !== null) { - result6 = [result6, result7, result8, result9]; - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - if (result6 !== null) { - result6 = (function(offset, b, c) { return b.concat(c); })(pos2, result6[0], result6[2]); - } - if (result6 === null) { - pos = pos2; - } - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name, body) { - return { - type:"NamespaceDeclaration", - name: name, - body: body !== '' ? body: null - } - })(pos0, result0[2], result0[6]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_NamespaceToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_NamespaceId(); - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result0 = [result0, result1, result2, result3]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name) { - return { - type:"NamespaceDeclaration", - name: name, - body: null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_NamespaceId() { - var result0, result1, result2, result3, result4; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 92) { - result0 = "\\"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 47) { - result0 = "/"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"/\""); - } - } - } - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse_Identifier(); - if (result1 !== null) { - result2 = []; - pos2 = pos; - if (input.charCodeAt(pos) === 92) { - result3 = "\\"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result3 === null) { - if (input.charCodeAt(pos) === 47) { - result3 = "/"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"/\""); - } - } - } - if (result3 !== null) { - result4 = parse_Identifier(); - if (result4 !== null) { - result3 = [result3, result4]; - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - while (result3 !== null) { - result2.push(result3); - pos2 = pos; - if (input.charCodeAt(pos) === 92) { - result3 = "\\"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result3 === null) { - if (input.charCodeAt(pos) === 47) { - result3 = "/"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"/\""); - } - } - } - if (result3 !== null) { - result4 = parse_Identifier(); - if (result4 !== null) { - result3 = [result3, result4]; - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, start, head, tail) { - if(head != '') { - var array = [head]; - } else { - return ''; - } - for (var i = 0; i < tail.length; i++) { - array.push(tail[i][1]) - } - return { - type: "NamespaceIdentifier", - name: array, - start: start !== '' ? true : false - }; - })(pos0, result0[0], result0[1], result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ClassDeclaration() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_ClassToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_Identifier(); - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.substr(pos, 2) === "->") { - result4 = "->"; - pos += 2; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\"->\""); - } - } - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - pos2 = pos; - pos3 = pos; - result6 = []; - result7 = parse_blank(); - while (result7 !== null) { - result6.push(result7); - result7 = parse_blank(); - } - if (result6 !== null) { - result7 = parse_INDENT(); - if (result7 !== null) { - result8 = []; - result9 = parse_ClassStatement(); - while (result9 !== null) { - result8.push(result9); - result9 = parse_ClassStatement(); - } - if (result8 !== null) { - result9 = parse_DEDENT(); - if (result9 !== null) { - result6 = [result6, result7, result8, result9]; - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - if (result6 !== null) { - result6 = (function(offset, b, c) { return b.concat(c); })(pos2, result6[0], result6[2]); - } - if (result6 === null) { - pos = pos2; - } - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name, body) { - return { - type:"ClassDeclaration", - name: name, - body: body !== '' ? body: null - } - })(pos0, result0[2], result0[6]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ClassStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - result0 = parse_ClassFunctionDeclaration(); - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ClassConstPropertyDeclaration(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ClassPropertyDeclaration(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_blank(); - } - } - } - return result0; - } - - function parse_ClassPropertyDeclaration() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3, pos4; - - pos0 = pos; - pos1 = pos; - result0 = parse_PropertyVisibility(); - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - pos2 = pos; - result2 = parse_Identifier(); - if (result2 !== null) { - result2 = (function(offset, name) { return { type: "Variable", name: name }; })(pos2, result2); - } - if (result2 === null) { - pos = pos2; - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - pos2 = pos; - result4 = parse_AssignmentOperator(); - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - pos3 = pos; - pos4 = pos; - reportFailures++; - result6 = parse_EOTLiteral(); - if (result6 === null) { - result6 = parse_EODLiteral(); - } - reportFailures--; - if (result6 === null) { - result6 = ""; - } else { - result6 = null; - pos = pos4; - } - if (result6 !== null) { - result7 = parse_AssignmentExpression(); - if (result7 === null) { - result7 = parse_FunctionExpression(); - } - if (result7 !== null) { - result6 = [result6, result7]; - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - if (result6 !== null) { - result4 = [result4, result5, result6]; - } else { - result4 = null; - pos = pos2; - } - } else { - result4 = null; - pos = pos2; - } - } else { - result4 = null; - pos = pos2; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, Visibility, left, m) { - return { - type: "ClassPropertyDeclaration", - operator: m !== "" ? m[0]: false, - left: left, - right: m !== "" ? m[2][1]: false, - Visibility: Visibility !== "" ? Visibility : false, - }; - })(pos0, result0[0], result0[2], result0[4]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ClassConstPropertyDeclaration() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3, pos4; - - pos0 = pos; - pos1 = pos; - result0 = parse_ConstToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - pos2 = pos; - result2 = parse_Identifier(); - if (result2 !== null) { - result2 = (function(offset, name) { return { type: "Variable", name: name }; })(pos2, result2); - } - if (result2 === null) { - pos = pos2; - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - pos2 = pos; - result4 = parse_AssignmentOperator(); - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - pos3 = pos; - pos4 = pos; - reportFailures++; - result6 = parse_EOTLiteral(); - if (result6 === null) { - result6 = parse_EODLiteral(); - } - reportFailures--; - if (result6 === null) { - result6 = ""; - } else { - result6 = null; - pos = pos4; - } - if (result6 !== null) { - result7 = parse_AssignmentExpression(); - if (result7 === null) { - result7 = parse_FunctionExpression(); - } - if (result7 !== null) { - result6 = [result6, result7]; - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - if (result6 !== null) { - result4 = [result4, result5, result6]; - } else { - result4 = null; - pos = pos2; - } - } else { - result4 = null; - pos = pos2; - } - } else { - result4 = null; - pos = pos2; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, left, m) { - return { - type: "ClassConstPropertyDeclaration", - operator: m !== "" ? m[0]: false, - left: left, - right: m !== "" ? m[2][1]: false - }; - })(pos0, result0[2], result0[4]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ClassFunctionDeclaration() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12, result13; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_PropertyVisibility(); - result1 = result1 !== null ? result1 : ""; - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - pos2 = pos; - pos3 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 36) { - result3 = "$"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"$\""); - } - } - reportFailures--; - if (result3 === null) { - result3 = ""; - } else { - result3 = null; - pos = pos3; - } - if (result3 !== null) { - result4 = parse_Identifier(); - if (result4 !== null) { - result3 = [result3, result4]; - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - pos2 = pos; - pos3 = pos; - if (input.charCodeAt(pos) === 40) { - result5 = "("; - pos++; - } else { - result5 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - result7 = parse_FormalParameterList(); - result7 = result7 !== null ? result7 : ""; - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - if (input.charCodeAt(pos) === 41) { - result9 = ")"; - pos++; - } else { - result9 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result9 !== null) { - result5 = [result5, result6, result7, result8, result9]; - } else { - result5 = null; - pos = pos3; - } - } else { - result5 = null; - pos = pos3; - } - } else { - result5 = null; - pos = pos3; - } - } else { - result5 = null; - pos = pos3; - } - } else { - result5 = null; - pos = pos3; - } - if (result5 !== null) { - result5 = (function(offset, prm) {return prm;})(pos2, result5[2]); - } - if (result5 === null) { - pos = pos2; - } - result5 = result5 !== null ? result5 : ""; - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.substr(pos, 2) === "->") { - result7 = "->"; - pos += 2; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"->\""); - } - } - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_EOL(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - pos2 = pos; - pos3 = pos; - result10 = []; - result11 = parse_blank(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_blank(); - } - if (result10 !== null) { - result11 = parse_INDENT(); - if (result11 !== null) { - result12 = []; - result13 = parse_statement(); - while (result13 !== null) { - result12.push(result13); - result13 = parse_statement(); - } - if (result12 !== null) { - result13 = parse_DEDENT(); - if (result13 !== null) { - result10 = [result10, result11, result12, result13]; - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - if (result10 !== null) { - result10 = (function(offset, b, c) { return b.concat(c); })(pos2, result10[0], result10[2]); - } - if (result10 === null) { - pos = pos2; - } - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, Visibility, name, params, body) { - if(params == '') { - params = [] - } - return { - type: "ClassFunctionDeclaration", - name: name[1], - params: params, - body: body !== '' ? body: null, - Visibility: Visibility !== "" ? Visibility : false, - } - })(pos0, result0[1], result0[3], result0[5], result0[10]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_PropertyVisibility() { - var result0; - - result0 = parse_PrivateToken(); - if (result0 === null) { - result0 = parse_ProtectedToken(); - if (result0 === null) { - result0 = parse_PublicToken(); - } - } - return result0; - } - - function parse_ContinueStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_ContinueToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "ContinueStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BreakStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_BreakToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "BreakStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EchoStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_EchoToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "EchoStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ReturnStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_ReturnToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "ReturnStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_RequireStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_RequireToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "RequireStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_Require_onceStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_Require_onceToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "Require_onceStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_Include_onceStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_Include_onceToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "Include_onceStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_IncludeStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_IncludeToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "IncludeStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_AndToken() { - var result0; - - if (input.substr(pos, 3) === "and") { - result0 = "and"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"and\""); - } - } - return result0; - } - - function parse_BreakToken() { - var result0; - - if (input.substr(pos, 5) === "break") { - result0 = "break"; - pos += 5; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"break\""); - } - } - return result0; - } - - function parse_CaseToken() { - var result0; - - if (input.substr(pos, 4) === "case") { - result0 = "case"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"case\""); - } - } - return result0; - } - - function parse_CatchToken() { - var result0; - - if (input.substr(pos, 5) === "catch") { - result0 = "catch"; - pos += 5; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"catch\""); - } - } - return result0; - } - - function parse_ClassToken() { - var result0; - - if (input.substr(pos, 5) === "class") { - result0 = "class"; - pos += 5; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"class\""); - } - } - return result0; - } - - function parse_ConstToken() { - var result0; - - if (input.substr(pos, 5) === "const") { - result0 = "const"; - pos += 5; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"const\""); - } - } - return result0; - } - - function parse_ContinueToken() { - var result0; - - if (input.substr(pos, 8) === "continue") { - result0 = "continue"; - pos += 8; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"continue\""); - } - } - return result0; - } - - function parse_EchoToken() { - var result0; - - if (input.substr(pos, 4) === "echo") { - result0 = "echo"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"echo\""); - } - } - return result0; - } - - function parse_ElseToken() { - var result0; - - if (input.substr(pos, 4) === "else") { - result0 = "else"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"else\""); - } - } - return result0; - } - - function parse_ElseIfToken() { - var result0, result1, result2; - var pos0; - - pos0 = pos; - if (input.substr(pos, 4) === "else") { - result0 = "else"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"else\""); - } - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - if (input.substr(pos, 2) === "if") { - result2 = "if"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"if\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - return result0; - } - - function parse_FalseToken() { - var result0; - - if (input.substr(pos, 5) === "false") { - result0 = "false"; - pos += 5; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"false\""); - } - } - return result0; - } - - function parse_finallyToken() { - var result0; - - if (input.substr(pos, 7) === "finally") { - result0 = "finally"; - pos += 7; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"finally\""); - } - } - return result0; - } - - function parse_ForToken() { - var result0; - - if (input.substr(pos, 3) === "for") { - result0 = "for"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"for\""); - } - } - return result0; - } - - function parse_IfToken() { - var result0; - - if (input.substr(pos, 2) === "if") { - result0 = "if"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"if\""); - } - } - return result0; - } - - function parse_IncludeToken() { - var result0; - - if (input.substr(pos, 7) === "include") { - result0 = "include"; - pos += 7; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"include\""); - } - } - return result0; - } - - function parse_Include_onceToken() { - var result0; - - if (input.substr(pos, 12) === "include_once") { - result0 = "include_once"; - pos += 12; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"include_once\""); - } - } - return result0; - } - - function parse_InToken() { - var result0; - - if (input.substr(pos, 2) === "in") { - result0 = "in"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"in\""); - } - } - return result0; - } - - function parse_NamespaceToken() { - var result0; - - if (input.substr(pos, 9) === "namespace") { - result0 = "namespace"; - pos += 9; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"namespace\""); - } - } - return result0; - } - - function parse_NewToken() { - var result0; - - if (input.substr(pos, 3) === "new") { - result0 = "new"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"new\""); - } - } - return result0; - } - - function parse_NullToken() { - var result0; - - if (input.substr(pos, 4) === "NULL") { - result0 = "NULL"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"NULL\""); - } - } - if (result0 === null) { - if (input.substr(pos, 4) === "None") { - result0 = "None"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"None\""); - } - } - } - return result0; - } - - function parse_OfToken() { - var result0; - - if (input.substr(pos, 2) === "of") { - result0 = "of"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"of\""); - } - } - return result0; - } - - function parse_OrToken() { - var result0; - - if (input.substr(pos, 2) === "or") { - result0 = "or"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"or\""); - } - } - return result0; - } - - function parse_ReturnToken() { - var result0; - - if (input.substr(pos, 6) === "return") { - result0 = "return"; - pos += 6; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"return\""); - } - } - return result0; - } - - function parse_RequireToken() { - var result0; - - if (input.substr(pos, 7) === "require") { - result0 = "require"; - pos += 7; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"require\""); - } - } - return result0; - } - - function parse_Require_onceToken() { - var result0; - - if (input.substr(pos, 12) === "require_once") { - result0 = "require_once"; - pos += 12; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"require_once\""); - } - } - return result0; - } - - function parse_PrivateToken() { - var result0; - - if (input.substr(pos, 7) === "private") { - result0 = "private"; - pos += 7; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"private\""); - } - } - return result0; - } - - function parse_ProtectedToken() { - var result0; - - if (input.substr(pos, 9) === "protected") { - result0 = "protected"; - pos += 9; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"protected\""); - } - } - return result0; - } - - function parse_PublicToken() { - var result0; - - if (input.substr(pos, 6) === "public") { - result0 = "public"; - pos += 6; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"public\""); - } - } - return result0; - } - - function parse_script_start() { - var result0; - - if (input.substr(pos, 2) === "{{") { - result0 = "{{"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"{{\""); - } - } - return result0; - } - - function parse_script_end() { - var result0; - - if (input.substr(pos, 2) === "}}") { - result0 = "}}"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"}}\""); - } - } - return result0; - } - - function parse_StaticToken() { - var result0; - - if (input.substr(pos, 6) === "static") { - result0 = "static"; - pos += 6; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"static\""); - } - } - return result0; - } - - function parse_SwitchToken() { - var result0; - - if (input.substr(pos, 6) === "switch") { - result0 = "switch"; - pos += 6; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"switch\""); - } - } - return result0; - } - - function parse_ThenToken() { - var result0; - - if (input.substr(pos, 4) === "then") { - result0 = "then"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"then\""); - } - } - return result0; - } - - function parse_ThisToken() { - var result0; - - if (input.substr(pos, 4) === "this") { - result0 = "this"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"this\""); - } - } - return result0; - } - - function parse_TrueToken() { - var result0; - - if (input.substr(pos, 4) === "true") { - result0 = "true"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"true\""); - } - } - return result0; - } - - function parse_TryToken() { - var result0; - - if (input.substr(pos, 3) === "try") { - result0 = "try"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"try\""); - } - } - return result0; - } - - function parse_WhileToken() { - var result0; - - if (input.substr(pos, 5) === "while") { - result0 = "while"; - pos += 5; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"while\""); - } - } - return result0; - } - - function parse_ReservedWord() { - var result0; - - result0 = parse_AndToken(); - if (result0 === null) { - result0 = parse_BreakToken(); - if (result0 === null) { - result0 = parse_CaseToken(); - if (result0 === null) { - result0 = parse_CatchToken(); - if (result0 === null) { - result0 = parse_ClassToken(); - if (result0 === null) { - result0 = parse_ConstToken(); - if (result0 === null) { - result0 = parse_ContinueToken(); - if (result0 === null) { - result0 = parse_ElseToken(); - if (result0 === null) { - result0 = parse_ElseToken(); - if (result0 === null) { - result0 = parse_FalseToken(); - if (result0 === null) { - result0 = parse_finallyToken(); - if (result0 === null) { - result0 = parse_ForToken(); - if (result0 === null) { - result0 = parse_IfToken(); - if (result0 === null) { - result0 = parse_Include_onceToken(); - if (result0 === null) { - result0 = parse_IncludeToken(); - if (result0 === null) { - result0 = parse_InToken(); - if (result0 === null) { - result0 = parse_NamespaceToken(); - if (result0 === null) { - result0 = parse_NewToken(); - if (result0 === null) { - result0 = parse_NullToken(); - if (result0 === null) { - result0 = parse_OfToken(); - if (result0 === null) { - result0 = parse_OrToken(); - if (result0 === null) { - result0 = parse_ReturnToken(); - if (result0 === null) { - result0 = parse_RequireToken(); - if (result0 === null) { - result0 = parse_Require_onceToken(); - if (result0 === null) { - result0 = parse_PrivateToken(); - if (result0 === null) { - result0 = parse_ProtectedToken(); - if (result0 === null) { - result0 = parse_PublicToken(); - if (result0 === null) { - result0 = parse_script_end(); - if (result0 === null) { - result0 = parse_script_start(); - if (result0 === null) { - result0 = parse_SwitchToken(); - if (result0 === null) { - result0 = parse_StaticToken(); - if (result0 === null) { - result0 = parse_ThenToken(); - if (result0 === null) { - result0 = parse_ThisToken(); - if (result0 === null) { - result0 = parse_TrueToken(); - if (result0 === null) { - result0 = parse_TryToken(); - if (result0 === null) { - if (input.substr(pos, 8) === "function") { - result0 = "function"; - pos += 8; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"function\""); - } - } - if (result0 === null) { - result0 = parse_WhileToken(); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - return result0; - } - - function parse_SourceCharacter() { - var result0; - - if (input.length > pos) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - return result0; - } - - function parse_WhiteSpace() { - var result0; - - reportFailures++; - if (/^[\t\x0B\f \xA0\uFEFF]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\t\\x0B\\f \\xA0\\uFEFF]"); - } - } - if (result0 === null) { - result0 = parse_Zs(); - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("whitespace"); - } - return result0; - } - - function parse_LineTerminator() { - var result0; - - if (/^[\n\r\u2028\u2029]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\n\\r\\u2028\\u2029]"); - } - } - if (result0 === null) { - result0 = parse_LineTerminatorSequence(); - } - return result0; - } - - function parse_LineTerminatorSequence() { - var result0; - - reportFailures++; - if (input.charCodeAt(pos) === 10) { - result0 = "\n"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\n\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "\r\n") { - result0 = "\r\n"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\r\\n\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 13) { - result0 = "\r"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\r\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 8232) { - result0 = "\u2028"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\u2028\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 8233) { - result0 = "\u2029"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\u2029\""); - } - } - } - } - } - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("end of line"); - } - return result0; - } - - function parse_Comment() { - var result0; - - reportFailures++; - result0 = parse_MultiLineComment(); - if (result0 === null) { - result0 = parse_SingleLineComment(); - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("comment"); - } - return result0; - } - - function parse_MultiLineComment() { - var result0, result1, result2, result3; - var pos0, pos1, pos2; - - pos0 = pos; - if (input.substr(pos, 2) === "/*") { - result0 = "/*"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"/*\""); - } - } - if (result0 !== null) { - result1 = []; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 2) === "*/") { - result2 = "*/"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"*/\""); - } - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - while (result2 !== null) { - result1.push(result2); - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 2) === "*/") { - result2 = "*/"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"*/\""); - } - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - } - if (result1 !== null) { - if (input.substr(pos, 2) === "*/") { - result2 = "*/"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"*/\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - if (input.substr(pos, 3) === "###") { - result0 = "###"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - if (result0 !== null) { - result1 = []; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 3) === "###") { - result2 = "###"; - pos += 3; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - while (result2 !== null) { - result1.push(result2); - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 3) === "###") { - result2 = "###"; - pos += 3; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - } - if (result1 !== null) { - if (input.substr(pos, 3) === "###") { - result2 = "###"; - pos += 3; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } - return result0; - } - - function parse_MultiLineCommentNoLineTerminator() { - var result0, result1, result2, result3; - var pos0, pos1, pos2; - - pos0 = pos; - if (input.substr(pos, 2) === "/*") { - result0 = "/*"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"/*\""); - } - } - if (result0 !== null) { - result1 = []; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 2) === "*/") { - result2 = "*/"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"*/\""); - } - } - if (result2 === null) { - result2 = parse_LineTerminator(); - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - while (result2 !== null) { - result1.push(result2); - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 2) === "*/") { - result2 = "*/"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"*/\""); - } - } - if (result2 === null) { - result2 = parse_LineTerminator(); - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - } - if (result1 !== null) { - if (input.substr(pos, 2) === "*/") { - result2 = "*/"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"*/\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - if (input.substr(pos, 3) === "###") { - result0 = "###"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - if (result0 !== null) { - result1 = []; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 3) === "###") { - result2 = "###"; - pos += 3; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - if (result2 === null) { - result2 = parse_LineTerminator(); - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - while (result2 !== null) { - result1.push(result2); - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 3) === "###") { - result2 = "###"; - pos += 3; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - if (result2 === null) { - result2 = parse_LineTerminator(); - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - } - if (result1 !== null) { - if (input.substr(pos, 3) === "###") { - result2 = "###"; - pos += 3; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } - return result0; - } - - function parse_SingleLineComment() { - var result0, result1, result2, result3; - var pos0, pos1, pos2; - - pos0 = pos; - if (input.substr(pos, 2) === "//") { - result0 = "//"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"//\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 35) { - result0 = "#"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"#\""); - } - } - } - if (result0 !== null) { - result1 = []; - pos1 = pos; - pos2 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - while (result2 !== null) { - result1.push(result2); - pos1 = pos; - pos2 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - return result0; - } - - function parse_Identifier() { - var result0, result1; - var pos0, pos1; - - reportFailures++; - pos0 = pos; - pos1 = pos; - result0 = parse_ReservedWord(); - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse_IdentifierName(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, f, name) { return f+name; })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("identifier"); - } - return result0; - } - - function parse_IdentifierName() { - var result0, result1, result2; - var pos0, pos1; - - reportFailures++; - pos0 = pos; - pos1 = pos; - result0 = parse_IdentifierStart(); - if (result0 !== null) { - result1 = []; - result2 = parse_IdentifierPart(); - while (result2 !== null) { - result1.push(result2); - result2 = parse_IdentifierPart(); - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, start, parts) { - return start + parts.join(""); - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("identifier"); - } - return result0; - } - - function parse_IdentifierStart() { - var result0; - - result0 = parse_UnicodeLetter(); - if (result0 === null) { - if (input.charCodeAt(pos) === 95) { - result0 = "_"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"_\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 36) { - result0 = "$"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"$\""); - } - } - } - } - return result0; - } - - function parse_IdentifierPart() { - var result0; - var pos0; - - result0 = parse_IdentifierStart(); - if (result0 === null) { - result0 = parse_UnicodeCombiningMark(); - if (result0 === null) { - result0 = parse_Nd(); - if (result0 === null) { - result0 = parse_Pc(); - if (result0 === null) { - pos0 = pos; - if (input.charCodeAt(pos) === 8204) { - result0 = "\u200C"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\u200C\""); - } - } - if (result0 !== null) { - result0 = (function(offset) { return "\u200C"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - if (input.charCodeAt(pos) === 8205) { - result0 = "\u200D"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\u200D\""); - } - } - if (result0 !== null) { - result0 = (function(offset) { return "\u200D"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - } - } - } - } - } - return result0; - } - - function parse_UnicodeLetter() { - var result0; - - result0 = parse_Lu(); - if (result0 === null) { - result0 = parse_Ll(); - if (result0 === null) { - result0 = parse_Lt(); - if (result0 === null) { - result0 = parse_Lm(); - if (result0 === null) { - result0 = parse_Lo(); - if (result0 === null) { - result0 = parse_Nl(); - } - } - } - } - } - return result0; - } - - function parse_UnicodeCombiningMark() { - var result0; - - result0 = parse_Mn(); - if (result0 === null) { - result0 = parse_Mc(); - } - return result0; - } - - function parse__() { - var result0, result1; - - result0 = []; - result1 = parse_WhiteSpace(); - if (result1 === null) { - result1 = parse_MultiLineCommentNoLineTerminator(); - if (result1 === null) { - result1 = parse_SingleLineComment(); - } - } - while (result1 !== null) { - result0.push(result1); - result1 = parse_WhiteSpace(); - if (result1 === null) { - result1 = parse_MultiLineCommentNoLineTerminator(); - if (result1 === null) { - result1 = parse_SingleLineComment(); - } - } - } - return result0; - } - - function parse___() { - var result0, result1; - - result0 = []; - result1 = parse_WhiteSpace(); - if (result1 === null) { - result1 = parse_Comment(); - } - while (result1 !== null) { - result0.push(result1); - result1 = parse_WhiteSpace(); - if (result1 === null) { - result1 = parse_Comment(); - } - } - return result0; - } - - function parse____() { - var result0, result1; - - result0 = []; - result1 = parse_WhiteSpace(); - if (result1 === null) { - result1 = parse_LineTerminator(); - if (result1 === null) { - result1 = parse_Comment(); - } - } - while (result1 !== null) { - result0.push(result1); - result1 = parse_WhiteSpace(); - if (result1 === null) { - result1 = parse_LineTerminator(); - if (result1 === null) { - result1 = parse_Comment(); - } - } - } - return result0; - } - - function parse_Literal() { - var result0; - var pos0; - - result0 = parse_BooleanLiteral(); - if (result0 === null) { - pos0 = pos; - result0 = parse_NumericLiteral(); - if (result0 !== null) { - result0 = (function(offset, value) { - return { - type: "NumericLiteral", - value: value - }; - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_StringLiteral(); - if (result0 !== null) { - result0 = (function(offset, value) { - return { - type: "StringLiteral", - value: value - }; - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_PHPLiteral(); - if (result0 !== null) { - result0 = (function(offset, value) { - return { - type: "PHPLiteral", - value: value - } - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_EODLiteral(); - if (result0 !== null) { - result0 = (function(offset, value) { - return { - type: "EODLiteral", - value: value - } - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_EOTLiteral(); - if (result0 !== null) { - result0 = (function(offset, value) { - return { - type: "EOTLiteral", - value: value - } - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - } - } - } - } - } - return result0; - } - - function parse_NullLiteral() { - var result0; - var pos0; - - pos0 = pos; - result0 = parse_NullToken(); - if (result0 !== null) { - result0 = (function(offset) { return { type: "NullLiteral" }; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BooleanLiteral() { - var result0; - var pos0; - - pos0 = pos; - result0 = parse_TrueToken(); - if (result0 !== null) { - result0 = (function(offset) { return { type: "BooleanLiteral", value: true }; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_FalseToken(); - if (result0 !== null) { - result0 = (function(offset) { return { type: "BooleanLiteral", value: false }; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_NumericLiteral() { - var result0; - var pos0; - - reportFailures++; - pos0 = pos; - result0 = parse_HexIntegerLiteral(); - if (result0 === null) { - result0 = parse_DecimalLiteral(); - } - if (result0 !== null) { - result0 = (function(offset, literal) { - return literal; - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("number"); - } - return result0; - } - - function parse_DecimalLiteral() { - var result0, result1, result2, result3; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_DecimalIntegerLiteral(); - if (result0 !== null) { - if (input.charCodeAt(pos) === 46) { - result1 = "."; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result1 !== null) { - result2 = parse_DecimalDigits(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse_ExponentPart(); - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - result0 = [result0, result1, result2, result3]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, before, after, exponent) { - return parseFloat(before + "." + after + exponent); - })(pos0, result0[0], result0[2], result0[3]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 46) { - result0 = "."; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result0 !== null) { - result1 = parse_DecimalDigits(); - if (result1 !== null) { - result2 = parse_ExponentPart(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, after, exponent) { - return parseFloat("." + after + exponent); - })(pos0, result0[1], result0[2]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_DecimalIntegerLiteral(); - if (result0 !== null) { - result1 = parse_ExponentPart(); - result1 = result1 !== null ? result1 : ""; - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, before, exponent) { - return parseFloat(before + exponent); - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - } - } - return result0; - } - - function parse_DecimalIntegerLiteral() { - var result0, result1; - var pos0, pos1; - - if (input.charCodeAt(pos) === 48) { - result0 = "0"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"0\""); - } - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_NonZeroDigit(); - if (result0 !== null) { - result1 = parse_DecimalDigits(); - result1 = result1 !== null ? result1 : ""; - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, digit, digits) { return digit + digits; })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_DecimalDigits() { - var result0, result1; - var pos0; - - pos0 = pos; - result1 = parse_DecimalDigit(); - if (result1 !== null) { - result0 = []; - while (result1 !== null) { - result0.push(result1); - result1 = parse_DecimalDigit(); - } - } else { - result0 = null; - } - if (result0 !== null) { - result0 = (function(offset, digits) { return digits.join(""); })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_DecimalDigit() { - var result0; - - if (/^[0-9]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[0-9]"); - } - } - return result0; - } - - function parse_NonZeroDigit() { - var result0; - - if (/^[1-9]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[1-9]"); - } - } - return result0; - } - - function parse_ExponentPart() { - var result0, result1; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_ExponentIndicator(); - if (result0 !== null) { - result1 = parse_SignedInteger(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, indicator, integer) { - return indicator + integer; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ExponentIndicator() { - var result0; - - if (/^[eE]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[eE]"); - } - } - return result0; - } - - function parse_SignedInteger() { - var result0, result1; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (/^[\-+]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\-+]"); - } - } - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse_DecimalDigits(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, sign, digits) { return sign + digits; })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_HexIntegerLiteral() { - var result0, result1, result2, result3; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 48) { - result0 = "0"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"0\""); - } - } - if (result0 !== null) { - if (/^[xX]/.test(input.charAt(pos))) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("[xX]"); - } - } - if (result1 !== null) { - result3 = parse_HexDigit(); - if (result3 !== null) { - result2 = []; - while (result3 !== null) { - result2.push(result3); - result3 = parse_HexDigit(); - } - } else { - result2 = null; - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, digits) { return parseInt("0x" + digits.join("")); })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_HexDigit() { - var result0; - - if (/^[0-9a-fA-F]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[0-9a-fA-F]"); - } - } - return result0; - } - - function parse_StringLiteral() { - var result0, result1, result2; - var pos0, pos1; - - reportFailures++; - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 34) { - result0 = "\""; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\"\""); - } - } - if (result0 !== null) { - result1 = parse_DoubleStringCharacters(); - result1 = result1 !== null ? result1 : ""; - if (result1 !== null) { - if (input.charCodeAt(pos) === 34) { - result2 = "\""; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"\\\"\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 === null) { - pos1 = pos; - if (input.charCodeAt(pos) === 39) { - result0 = "'"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"'\""); - } - } - if (result0 !== null) { - result1 = parse_SingleStringCharacters(); - result1 = result1 !== null ? result1 : ""; - if (result1 !== null) { - if (input.charCodeAt(pos) === 39) { - result2 = "'"; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"'\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } - if (result0 !== null) { - result0 = (function(offset, parts) { - return parts[1]; - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("string"); - } - return result0; - } - - function parse_DoubleStringCharacters() { - var result0, result1; - var pos0; - - pos0 = pos; - result1 = parse_DoubleStringCharacter(); - if (result1 !== null) { - result0 = []; - while (result1 !== null) { - result0.push(result1); - result1 = parse_DoubleStringCharacter(); - } - } else { - result0 = null; - } - if (result0 !== null) { - result0 = (function(offset, chars) { return chars.join(""); })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_SingleStringCharacters() { - var result0, result1; - var pos0; - - pos0 = pos; - result1 = parse_SingleStringCharacter(); - if (result1 !== null) { - result0 = []; - while (result1 !== null) { - result0.push(result1); - result1 = parse_SingleStringCharacter(); - } - } else { - result0 = null; - } - if (result0 !== null) { - result0 = (function(offset, chars) { return chars.join(""); })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_DoubleStringCharacter() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 34) { - result0 = "\""; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\"\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 92) { - result0 = "\\"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result0 === null) { - result0 = parse_LineTerminator(); - } - } - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - result1 = parse_SourceCharacter(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, char_) { return char_; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 92) { - result0 = "\\"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result0 !== null) { - if (input.length > pos) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return "'.\"\\"+m[1]+"\".'"; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_SingleStringCharacter() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 39) { - result0 = "'"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"'\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 92) { - result0 = "\\"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result0 === null) { - result0 = parse_LineTerminator(); - } - } - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - result1 = parse_SourceCharacter(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, char_) { return char_; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 92) { - result0 = "\\"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result0 !== null) { - if (input.length > pos) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return "'.\"\\"+m[1]+"\".'"; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_EODLiteral() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 96) { - result0 = "`"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"`\""); - } - } - if (result0 !== null) { - result2 = parse_EODString(); - if (result2 !== null) { - result1 = []; - while (result2 !== null) { - result1.push(result2); - result2 = parse_EODString(); - } - } else { - result1 = null; - } - if (result1 !== null) { - if (input.charCodeAt(pos) === 96) { - result2 = "`"; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"`\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, EODv) { - return EODv.join(""); - })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EOTLiteral() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 96) { - result0 = "`"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"`\""); - } - } - if (result0 !== null) { - result2 = parse_EOTString(); - if (result2 !== null) { - result1 = []; - while (result2 !== null) { - result1.push(result2); - result2 = parse_EOTString(); - } - } else { - result1 = null; - } - if (result1 !== null) { - if (input.charCodeAt(pos) === 96) { - result2 = "`"; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"`\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, EOTv) { - return EOTv.join(""); - })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EODString() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 96) { - result0 = "`"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"`\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 36) { - result0 = "$"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"$\""); - } - } - } - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - result1 = parse_SourceCharacter(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, char_) { return char_; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EOTString() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 96) { - result0 = "`"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"`\""); - } - } - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - result1 = parse_SourceCharacter(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, char_) { return char_; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ArrayLiteral() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 91) { - result0 = "["; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result0 !== null) { - result1 = parse____(); - if (result1 !== null) { - pos2 = pos; - result2 = parse_PropertyNameAndValueList(); - if (result2 !== null) { - result3 = parse____(); - if (result3 !== null) { - pos3 = pos; - if (input.charCodeAt(pos) === 44) { - result4 = ","; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result4 !== null) { - result5 = parse____(); - if (result5 !== null) { - result4 = [result4, result5]; - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result2 = [result2, result3, result4]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - if (input.charCodeAt(pos) === 93) { - result3 = "]"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result3 !== null) { - result0 = [result0, result1, result2, result3]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, properties) { - return { - type: "keyBasedArrayLiteral", - properties: properties !== "" ? properties[0] : [] - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 91) { - result0 = "["; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result0 !== null) { - result1 = parse____(); - if (result1 !== null) { - result2 = parse_ElementList(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse____(); - if (result3 !== null) { - pos2 = pos; - result4 = parse_Elision(); - if (result4 !== null) { - result5 = parse____(); - if (result5 !== null) { - result4 = [result4, result5]; - } else { - result4 = null; - pos = pos2; - } - } else { - result4 = null; - pos = pos2; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - if (input.charCodeAt(pos) === 93) { - result5 = "]"; - pos++; - } else { - result5 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result5 !== null) { - result0 = [result0, result1, result2, result3, result4, result5]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, elements) { - return { - type: "ArrayLiteral", - elements: elements !== "" ? elements : [] - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_ElementList() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - result0 = parse_Elision(); - if (result0 !== null) { - result1 = parse____(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos2; - } - } else { - result0 = null; - pos = pos2; - } - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse_AssignmentExpression(); - if (result1 !== null) { - result2 = []; - pos2 = pos; - result3 = parse____(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 44) { - result4 = ","; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - result6 = parse_Elision(); - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result7 = parse____(); - if (result7 !== null) { - result8 = parse_AssignmentExpression(); - if (result8 !== null) { - result3 = [result3, result4, result5, result6, result7, result8]; - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - while (result3 !== null) { - result2.push(result3); - pos2 = pos; - result3 = parse____(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 44) { - result4 = ","; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - result6 = parse_Elision(); - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result7 = parse____(); - if (result7 !== null) { - result8 = parse_AssignmentExpression(); - if (result8 !== null) { - result3 = [result3, result4, result5, result6, result7, result8]; - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = [head]; - for (var i = 0; i < tail.length; i++) { - result.push(tail[i][5]); - } - return result; - })(pos0, result0[1], result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_Elision() { - var result0, result1, result2, result3; - var pos0, pos1; - - pos0 = pos; - if (input.charCodeAt(pos) === 44) { - result0 = ","; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result0 !== null) { - result1 = []; - pos1 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - while (result2 !== null) { - result1.push(result2); - pos1 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - return result0; - } - - function parse_PropertyNameAndValueList() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_PropertyAssignment(); - if (result0 === null) { - result0 = parse_AssignmentExpression(); - } - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse____(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse____(); - if (result4 !== null) { - result5 = parse_PropertyAssignment(); - if (result5 === null) { - result5 = parse_AssignmentExpression(); - } - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse____(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse____(); - if (result4 !== null) { - result5 = parse_PropertyAssignment(); - if (result5 === null) { - result5 = parse_AssignmentExpression(); - } - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = [head]; - for (var i = 0; i < tail.length; i++) { - result.push(tail[i][3]); - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_PropertyAssignment() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_PropertyName(); - if (result0 !== null) { - result1 = parse____(); - if (result1 !== null) { - if (input.charCodeAt(pos) === 58) { - result2 = ":"; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\":\""); - } - } - if (result2 !== null) { - result3 = parse____(); - if (result3 !== null) { - result4 = parse_AssignmentExpression(); - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name, value) { - return { - type: "PropertyAssignment", - name: name, - value: value - }; - })(pos0, result0[0], result0[4]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_PropertyName() { - var result0; - - result0 = parse_IdentifierName(); - if (result0 === null) { - result0 = parse_StringLiteral(); - if (result0 === null) { - result0 = parse_NumericLiteral(); - } - } - return result0; - } - - function parse_PHPLiteral() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.substr(pos, 2) === "``") { - result0 = "``"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"``\""); - } - } - if (result0 !== null) { - result2 = parse_RAWString(); - if (result2 !== null) { - result1 = []; - while (result2 !== null) { - result1.push(result2); - result2 = parse_RAWString(); - } - } else { - result1 = null; - } - if (result1 !== null) { - if (input.substr(pos, 2) === "``") { - result2 = "``"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"``\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, RAW) { - return RAW.join(""); - })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_RAWString() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 2) === "``") { - result0 = "``"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"``\""); - } - } - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - result1 = parse_SourceCharacter(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, char_) { return char_; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_Ll() { - var result0; - - if (/^[abcdefghijklmnopqrstuvwxyz\xAA\xB5\xBA\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E\u017F\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199\u019A\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD\u01BE\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233\u0234\u0235\u0236\u0237\u0238\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F\u0250\u0251\u0252\u0253\u0254\u0255\u0256\u0257\u0258\u0259\u025A\u025B\u025C\u025D\u025E\u025F\u0260\u0261\u0262\u0263\u0264\u0265\u0266\u0267\u0268\u0269\u026A\u026B\u026C\u026D\u026E\u026F\u0270\u0271\u0272\u0273\u0274\u0275\u0276\u0277\u0278\u0279\u027A\u027B\u027C\u027D\u027E\u027F\u0280\u0281\u0282\u0283\u0284\u0285\u0286\u0287\u0288\u0289\u028A\u028B\u028C\u028D\u028E\u028F\u0290\u0291\u0292\u0293\u0295\u0296\u0297\u0298\u0299\u029A\u029B\u029C\u029D\u029E\u029F\u02A0\u02A1\u02A2\u02A3\u02A4\u02A5\u02A6\u02A7\u02A8\u02A9\u02AA\u02AB\u02AC\u02AD\u02AE\u02AF\u0371\u0373\u0377\u037B\u037C\u037D\u0390\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\u03D0\u03D1\u03D5\u03D6\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF\u03F0\u03F1\u03F2\u03F3\u03F5\u03F8\u03FB\u03FC\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0450\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\u045D\u045E\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0561\u0562\u0563\u0564\u0565\u0566\u0567\u0568\u0569\u056A\u056B\u056C\u056D\u056E\u056F\u0570\u0571\u0572\u0573\u0574\u0575\u0576\u0577\u0578\u0579\u057A\u057B\u057C\u057D\u057E\u057F\u0580\u0581\u0582\u0583\u0584\u0585\u0586\u0587\u1D00\u1D01\u1D02\u1D03\u1D04\u1D05\u1D06\u1D07\u1D08\u1D09\u1D0A\u1D0B\u1D0C\u1D0D\u1D0E\u1D0F\u1D10\u1D11\u1D12\u1D13\u1D14\u1D15\u1D16\u1D17\u1D18\u1D19\u1D1A\u1D1B\u1D1C\u1D1D\u1D1E\u1D1F\u1D20\u1D21\u1D22\u1D23\u1D24\u1D25\u1D26\u1D27\u1D28\u1D29\u1D2A\u1D2B\u1D62\u1D63\u1D64\u1D65\u1D66\u1D67\u1D68\u1D69\u1D6A\u1D6B\u1D6C\u1D6D\u1D6E\u1D6F\u1D70\u1D71\u1D72\u1D73\u1D74\u1D75\u1D76\u1D77\u1D79\u1D7A\u1D7B\u1D7C\u1D7D\u1D7E\u1D7F\u1D80\u1D81\u1D82\u1D83\u1D84\u1D85\u1D86\u1D87\u1D88\u1D89\u1D8A\u1D8B\u1D8C\u1D8D\u1D8E\u1D8F\u1D90\u1D91\u1D92\u1D93\u1D94\u1D95\u1D96\u1D97\u1D98\u1D99\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95\u1E96\u1E97\u1E98\u1E99\u1E9A\u1E9B\u1E9C\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF\u1F00\u1F01\u1F02\u1F03\u1F04\u1F05\u1F06\u1F07\u1F10\u1F11\u1F12\u1F13\u1F14\u1F15\u1F20\u1F21\u1F22\u1F23\u1F24\u1F25\u1F26\u1F27\u1F30\u1F31\u1F32\u1F33\u1F34\u1F35\u1F36\u1F37\u1F40\u1F41\u1F42\u1F43\u1F44\u1F45\u1F50\u1F51\u1F52\u1F53\u1F54\u1F55\u1F56\u1F57\u1F60\u1F61\u1F62\u1F63\u1F64\u1F65\u1F66\u1F67\u1F70\u1F71\u1F72\u1F73\u1F74\u1F75\u1F76\u1F77\u1F78\u1F79\u1F7A\u1F7B\u1F7C\u1F7D\u1F80\u1F81\u1F82\u1F83\u1F84\u1F85\u1F86\u1F87\u1F90\u1F91\u1F92\u1F93\u1F94\u1F95\u1F96\u1F97\u1FA0\u1FA1\u1FA2\u1FA3\u1FA4\u1FA5\u1FA6\u1FA7\u1FB0\u1FB1\u1FB2\u1FB3\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2\u1FC3\u1FC4\u1FC6\u1FC7\u1FD0\u1FD1\u1FD2\u1FD3\u1FD6\u1FD7\u1FE0\u1FE1\u1FE2\u1FE3\u1FE4\u1FE5\u1FE6\u1FE7\u1FF2\u1FF3\u1FF4\u1FF6\u1FF7\u2071\u207F\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146\u2147\u2148\u2149\u214E\u2184\u2C30\u2C31\u2C32\u2C33\u2C34\u2C35\u2C36\u2C37\u2C38\u2C39\u2C3A\u2C3B\u2C3C\u2C3D\u2C3E\u2C3F\u2C40\u2C41\u2C42\u2C43\u2C44\u2C45\u2C46\u2C47\u2C48\u2C49\u2C4A\u2C4B\u2C4C\u2C4D\u2C4E\u2C4F\u2C50\u2C51\u2C52\u2C53\u2C54\u2C55\u2C56\u2C57\u2C58\u2C59\u2C5A\u2C5B\u2C5C\u2C5D\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76\u2C77\u2C78\u2C79\u2C7A\u2C7B\u2C7C\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2D00\u2D01\u2D02\u2D03\u2D04\u2D05\u2D06\u2D07\u2D08\u2D09\u2D0A\u2D0B\u2D0C\u2D0D\u2D0E\u2D0F\u2D10\u2D11\u2D12\u2D13\u2D14\u2D15\u2D16\u2D17\u2D18\u2D19\u2D1A\u2D1B\u2D1C\u2D1D\u2D1E\u2D1F\u2D20\u2D21\u2D22\u2D23\u2D24\u2D25\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F\uA730\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771\uA772\uA773\uA774\uA775\uA776\uA777\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uFB00\uFB01\uFB02\uFB03\uFB04\uFB05\uFB06\uFB13\uFB14\uFB15\uFB16\uFB17\uFF41\uFF42\uFF43\uFF44\uFF45\uFF46\uFF47\uFF48\uFF49\uFF4A\uFF4B\uFF4C\uFF4D\uFF4E\uFF4F\uFF50\uFF51\uFF52\uFF53\uFF54\uFF55\uFF56\uFF57\uFF58\uFF59\uFF5A]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[abcdefghijklmnopqrstuvwxyz\\xAA\\xB5\\xBA\\xDF\\xE0\\xE1\\xE2\\xE3\\xE4\\xE5\\xE6\\xE7\\xE8\\xE9\\xEA\\xEB\\xEC\\xED\\xEE\\xEF\\xF0\\xF1\\xF2\\xF3\\xF4\\xF5\\xF6\\xF8\\xF9\\xFA\\xFB\\xFC\\xFD\\xFE\\xFF\\u0101\\u0103\\u0105\\u0107\\u0109\\u010B\\u010D\\u010F\\u0111\\u0113\\u0115\\u0117\\u0119\\u011B\\u011D\\u011F\\u0121\\u0123\\u0125\\u0127\\u0129\\u012B\\u012D\\u012F\\u0131\\u0133\\u0135\\u0137\\u0138\\u013A\\u013C\\u013E\\u0140\\u0142\\u0144\\u0146\\u0148\\u0149\\u014B\\u014D\\u014F\\u0151\\u0153\\u0155\\u0157\\u0159\\u015B\\u015D\\u015F\\u0161\\u0163\\u0165\\u0167\\u0169\\u016B\\u016D\\u016F\\u0171\\u0173\\u0175\\u0177\\u017A\\u017C\\u017E\\u017F\\u0180\\u0183\\u0185\\u0188\\u018C\\u018D\\u0192\\u0195\\u0199\\u019A\\u019B\\u019E\\u01A1\\u01A3\\u01A5\\u01A8\\u01AA\\u01AB\\u01AD\\u01B0\\u01B4\\u01B6\\u01B9\\u01BA\\u01BD\\u01BE\\u01BF\\u01C6\\u01C9\\u01CC\\u01CE\\u01D0\\u01D2\\u01D4\\u01D6\\u01D8\\u01DA\\u01DC\\u01DD\\u01DF\\u01E1\\u01E3\\u01E5\\u01E7\\u01E9\\u01EB\\u01ED\\u01EF\\u01F0\\u01F3\\u01F5\\u01F9\\u01FB\\u01FD\\u01FF\\u0201\\u0203\\u0205\\u0207\\u0209\\u020B\\u020D\\u020F\\u0211\\u0213\\u0215\\u0217\\u0219\\u021B\\u021D\\u021F\\u0221\\u0223\\u0225\\u0227\\u0229\\u022B\\u022D\\u022F\\u0231\\u0233\\u0234\\u0235\\u0236\\u0237\\u0238\\u0239\\u023C\\u023F\\u0240\\u0242\\u0247\\u0249\\u024B\\u024D\\u024F\\u0250\\u0251\\u0252\\u0253\\u0254\\u0255\\u0256\\u0257\\u0258\\u0259\\u025A\\u025B\\u025C\\u025D\\u025E\\u025F\\u0260\\u0261\\u0262\\u0263\\u0264\\u0265\\u0266\\u0267\\u0268\\u0269\\u026A\\u026B\\u026C\\u026D\\u026E\\u026F\\u0270\\u0271\\u0272\\u0273\\u0274\\u0275\\u0276\\u0277\\u0278\\u0279\\u027A\\u027B\\u027C\\u027D\\u027E\\u027F\\u0280\\u0281\\u0282\\u0283\\u0284\\u0285\\u0286\\u0287\\u0288\\u0289\\u028A\\u028B\\u028C\\u028D\\u028E\\u028F\\u0290\\u0291\\u0292\\u0293\\u0295\\u0296\\u0297\\u0298\\u0299\\u029A\\u029B\\u029C\\u029D\\u029E\\u029F\\u02A0\\u02A1\\u02A2\\u02A3\\u02A4\\u02A5\\u02A6\\u02A7\\u02A8\\u02A9\\u02AA\\u02AB\\u02AC\\u02AD\\u02AE\\u02AF\\u0371\\u0373\\u0377\\u037B\\u037C\\u037D\\u0390\\u03AC\\u03AD\\u03AE\\u03AF\\u03B0\\u03B1\\u03B2\\u03B3\\u03B4\\u03B5\\u03B6\\u03B7\\u03B8\\u03B9\\u03BA\\u03BB\\u03BC\\u03BD\\u03BE\\u03BF\\u03C0\\u03C1\\u03C2\\u03C3\\u03C4\\u03C5\\u03C6\\u03C7\\u03C8\\u03C9\\u03CA\\u03CB\\u03CC\\u03CD\\u03CE\\u03D0\\u03D1\\u03D5\\u03D6\\u03D7\\u03D9\\u03DB\\u03DD\\u03DF\\u03E1\\u03E3\\u03E5\\u03E7\\u03E9\\u03EB\\u03ED\\u03EF\\u03F0\\u03F1\\u03F2\\u03F3\\u03F5\\u03F8\\u03FB\\u03FC\\u0430\\u0431\\u0432\\u0433\\u0434\\u0435\\u0436\\u0437\\u0438\\u0439\\u043A\\u043B\\u043C\\u043D\\u043E\\u043F\\u0440\\u0441\\u0442\\u0443\\u0444\\u0445\\u0446\\u0447\\u0448\\u0449\\u044A\\u044B\\u044C\\u044D\\u044E\\u044F\\u0450\\u0451\\u0452\\u0453\\u0454\\u0455\\u0456\\u0457\\u0458\\u0459\\u045A\\u045B\\u045C\\u045D\\u045E\\u045F\\u0461\\u0463\\u0465\\u0467\\u0469\\u046B\\u046D\\u046F\\u0471\\u0473\\u0475\\u0477\\u0479\\u047B\\u047D\\u047F\\u0481\\u048B\\u048D\\u048F\\u0491\\u0493\\u0495\\u0497\\u0499\\u049B\\u049D\\u049F\\u04A1\\u04A3\\u04A5\\u04A7\\u04A9\\u04AB\\u04AD\\u04AF\\u04B1\\u04B3\\u04B5\\u04B7\\u04B9\\u04BB\\u04BD\\u04BF\\u04C2\\u04C4\\u04C6\\u04C8\\u04CA\\u04CC\\u04CE\\u04CF\\u04D1\\u04D3\\u04D5\\u04D7\\u04D9\\u04DB\\u04DD\\u04DF\\u04E1\\u04E3\\u04E5\\u04E7\\u04E9\\u04EB\\u04ED\\u04EF\\u04F1\\u04F3\\u04F5\\u04F7\\u04F9\\u04FB\\u04FD\\u04FF\\u0501\\u0503\\u0505\\u0507\\u0509\\u050B\\u050D\\u050F\\u0511\\u0513\\u0515\\u0517\\u0519\\u051B\\u051D\\u051F\\u0521\\u0523\\u0561\\u0562\\u0563\\u0564\\u0565\\u0566\\u0567\\u0568\\u0569\\u056A\\u056B\\u056C\\u056D\\u056E\\u056F\\u0570\\u0571\\u0572\\u0573\\u0574\\u0575\\u0576\\u0577\\u0578\\u0579\\u057A\\u057B\\u057C\\u057D\\u057E\\u057F\\u0580\\u0581\\u0582\\u0583\\u0584\\u0585\\u0586\\u0587\\u1D00\\u1D01\\u1D02\\u1D03\\u1D04\\u1D05\\u1D06\\u1D07\\u1D08\\u1D09\\u1D0A\\u1D0B\\u1D0C\\u1D0D\\u1D0E\\u1D0F\\u1D10\\u1D11\\u1D12\\u1D13\\u1D14\\u1D15\\u1D16\\u1D17\\u1D18\\u1D19\\u1D1A\\u1D1B\\u1D1C\\u1D1D\\u1D1E\\u1D1F\\u1D20\\u1D21\\u1D22\\u1D23\\u1D24\\u1D25\\u1D26\\u1D27\\u1D28\\u1D29\\u1D2A\\u1D2B\\u1D62\\u1D63\\u1D64\\u1D65\\u1D66\\u1D67\\u1D68\\u1D69\\u1D6A\\u1D6B\\u1D6C\\u1D6D\\u1D6E\\u1D6F\\u1D70\\u1D71\\u1D72\\u1D73\\u1D74\\u1D75\\u1D76\\u1D77\\u1D79\\u1D7A\\u1D7B\\u1D7C\\u1D7D\\u1D7E\\u1D7F\\u1D80\\u1D81\\u1D82\\u1D83\\u1D84\\u1D85\\u1D86\\u1D87\\u1D88\\u1D89\\u1D8A\\u1D8B\\u1D8C\\u1D8D\\u1D8E\\u1D8F\\u1D90\\u1D91\\u1D92\\u1D93\\u1D94\\u1D95\\u1D96\\u1D97\\u1D98\\u1D99\\u1D9A\\u1E01\\u1E03\\u1E05\\u1E07\\u1E09\\u1E0B\\u1E0D\\u1E0F\\u1E11\\u1E13\\u1E15\\u1E17\\u1E19\\u1E1B\\u1E1D\\u1E1F\\u1E21\\u1E23\\u1E25\\u1E27\\u1E29\\u1E2B\\u1E2D\\u1E2F\\u1E31\\u1E33\\u1E35\\u1E37\\u1E39\\u1E3B\\u1E3D\\u1E3F\\u1E41\\u1E43\\u1E45\\u1E47\\u1E49\\u1E4B\\u1E4D\\u1E4F\\u1E51\\u1E53\\u1E55\\u1E57\\u1E59\\u1E5B\\u1E5D\\u1E5F\\u1E61\\u1E63\\u1E65\\u1E67\\u1E69\\u1E6B\\u1E6D\\u1E6F\\u1E71\\u1E73\\u1E75\\u1E77\\u1E79\\u1E7B\\u1E7D\\u1E7F\\u1E81\\u1E83\\u1E85\\u1E87\\u1E89\\u1E8B\\u1E8D\\u1E8F\\u1E91\\u1E93\\u1E95\\u1E96\\u1E97\\u1E98\\u1E99\\u1E9A\\u1E9B\\u1E9C\\u1E9D\\u1E9F\\u1EA1\\u1EA3\\u1EA5\\u1EA7\\u1EA9\\u1EAB\\u1EAD\\u1EAF\\u1EB1\\u1EB3\\u1EB5\\u1EB7\\u1EB9\\u1EBB\\u1EBD\\u1EBF\\u1EC1\\u1EC3\\u1EC5\\u1EC7\\u1EC9\\u1ECB\\u1ECD\\u1ECF\\u1ED1\\u1ED3\\u1ED5\\u1ED7\\u1ED9\\u1EDB\\u1EDD\\u1EDF\\u1EE1\\u1EE3\\u1EE5\\u1EE7\\u1EE9\\u1EEB\\u1EED\\u1EEF\\u1EF1\\u1EF3\\u1EF5\\u1EF7\\u1EF9\\u1EFB\\u1EFD\\u1EFF\\u1F00\\u1F01\\u1F02\\u1F03\\u1F04\\u1F05\\u1F06\\u1F07\\u1F10\\u1F11\\u1F12\\u1F13\\u1F14\\u1F15\\u1F20\\u1F21\\u1F22\\u1F23\\u1F24\\u1F25\\u1F26\\u1F27\\u1F30\\u1F31\\u1F32\\u1F33\\u1F34\\u1F35\\u1F36\\u1F37\\u1F40\\u1F41\\u1F42\\u1F43\\u1F44\\u1F45\\u1F50\\u1F51\\u1F52\\u1F53\\u1F54\\u1F55\\u1F56\\u1F57\\u1F60\\u1F61\\u1F62\\u1F63\\u1F64\\u1F65\\u1F66\\u1F67\\u1F70\\u1F71\\u1F72\\u1F73\\u1F74\\u1F75\\u1F76\\u1F77\\u1F78\\u1F79\\u1F7A\\u1F7B\\u1F7C\\u1F7D\\u1F80\\u1F81\\u1F82\\u1F83\\u1F84\\u1F85\\u1F86\\u1F87\\u1F90\\u1F91\\u1F92\\u1F93\\u1F94\\u1F95\\u1F96\\u1F97\\u1FA0\\u1FA1\\u1FA2\\u1FA3\\u1FA4\\u1FA5\\u1FA6\\u1FA7\\u1FB0\\u1FB1\\u1FB2\\u1FB3\\u1FB4\\u1FB6\\u1FB7\\u1FBE\\u1FC2\\u1FC3\\u1FC4\\u1FC6\\u1FC7\\u1FD0\\u1FD1\\u1FD2\\u1FD3\\u1FD6\\u1FD7\\u1FE0\\u1FE1\\u1FE2\\u1FE3\\u1FE4\\u1FE5\\u1FE6\\u1FE7\\u1FF2\\u1FF3\\u1FF4\\u1FF6\\u1FF7\\u2071\\u207F\\u210A\\u210E\\u210F\\u2113\\u212F\\u2134\\u2139\\u213C\\u213D\\u2146\\u2147\\u2148\\u2149\\u214E\\u2184\\u2C30\\u2C31\\u2C32\\u2C33\\u2C34\\u2C35\\u2C36\\u2C37\\u2C38\\u2C39\\u2C3A\\u2C3B\\u2C3C\\u2C3D\\u2C3E\\u2C3F\\u2C40\\u2C41\\u2C42\\u2C43\\u2C44\\u2C45\\u2C46\\u2C47\\u2C48\\u2C49\\u2C4A\\u2C4B\\u2C4C\\u2C4D\\u2C4E\\u2C4F\\u2C50\\u2C51\\u2C52\\u2C53\\u2C54\\u2C55\\u2C56\\u2C57\\u2C58\\u2C59\\u2C5A\\u2C5B\\u2C5C\\u2C5D\\u2C5E\\u2C61\\u2C65\\u2C66\\u2C68\\u2C6A\\u2C6C\\u2C71\\u2C73\\u2C74\\u2C76\\u2C77\\u2C78\\u2C79\\u2C7A\\u2C7B\\u2C7C\\u2C81\\u2C83\\u2C85\\u2C87\\u2C89\\u2C8B\\u2C8D\\u2C8F\\u2C91\\u2C93\\u2C95\\u2C97\\u2C99\\u2C9B\\u2C9D\\u2C9F\\u2CA1\\u2CA3\\u2CA5\\u2CA7\\u2CA9\\u2CAB\\u2CAD\\u2CAF\\u2CB1\\u2CB3\\u2CB5\\u2CB7\\u2CB9\\u2CBB\\u2CBD\\u2CBF\\u2CC1\\u2CC3\\u2CC5\\u2CC7\\u2CC9\\u2CCB\\u2CCD\\u2CCF\\u2CD1\\u2CD3\\u2CD5\\u2CD7\\u2CD9\\u2CDB\\u2CDD\\u2CDF\\u2CE1\\u2CE3\\u2CE4\\u2D00\\u2D01\\u2D02\\u2D03\\u2D04\\u2D05\\u2D06\\u2D07\\u2D08\\u2D09\\u2D0A\\u2D0B\\u2D0C\\u2D0D\\u2D0E\\u2D0F\\u2D10\\u2D11\\u2D12\\u2D13\\u2D14\\u2D15\\u2D16\\u2D17\\u2D18\\u2D19\\u2D1A\\u2D1B\\u2D1C\\u2D1D\\u2D1E\\u2D1F\\u2D20\\u2D21\\u2D22\\u2D23\\u2D24\\u2D25\\uA641\\uA643\\uA645\\uA647\\uA649\\uA64B\\uA64D\\uA64F\\uA651\\uA653\\uA655\\uA657\\uA659\\uA65B\\uA65D\\uA65F\\uA663\\uA665\\uA667\\uA669\\uA66B\\uA66D\\uA681\\uA683\\uA685\\uA687\\uA689\\uA68B\\uA68D\\uA68F\\uA691\\uA693\\uA695\\uA697\\uA723\\uA725\\uA727\\uA729\\uA72B\\uA72D\\uA72F\\uA730\\uA731\\uA733\\uA735\\uA737\\uA739\\uA73B\\uA73D\\uA73F\\uA741\\uA743\\uA745\\uA747\\uA749\\uA74B\\uA74D\\uA74F\\uA751\\uA753\\uA755\\uA757\\uA759\\uA75B\\uA75D\\uA75F\\uA761\\uA763\\uA765\\uA767\\uA769\\uA76B\\uA76D\\uA76F\\uA771\\uA772\\uA773\\uA774\\uA775\\uA776\\uA777\\uA778\\uA77A\\uA77C\\uA77F\\uA781\\uA783\\uA785\\uA787\\uA78C\\uFB00\\uFB01\\uFB02\\uFB03\\uFB04\\uFB05\\uFB06\\uFB13\\uFB14\\uFB15\\uFB16\\uFB17\\uFF41\\uFF42\\uFF43\\uFF44\\uFF45\\uFF46\\uFF47\\uFF48\\uFF49\\uFF4A\\uFF4B\\uFF4C\\uFF4D\\uFF4E\\uFF4F\\uFF50\\uFF51\\uFF52\\uFF53\\uFF54\\uFF55\\uFF56\\uFF57\\uFF58\\uFF59\\uFF5A]"); - } - } - return result0; - } - - function parse_Lm() { - var result0; - - if (/^[\u02B0\u02B1\u02B2\u02B3\u02B4\u02B5\u02B6\u02B7\u02B8\u02B9\u02BA\u02BB\u02BC\u02BD\u02BE\u02BF\u02C0\u02C1\u02C6\u02C7\u02C8\u02C9\u02CA\u02CB\u02CC\u02CD\u02CE\u02CF\u02D0\u02D1\u02E0\u02E1\u02E2\u02E3\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5\u06E6\u07F4\u07F5\u07FA\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1C78\u1C79\u1C7A\u1C7B\u1C7C\u1C7D\u1D2C\u1D2D\u1D2E\u1D2F\u1D30\u1D31\u1D32\u1D33\u1D34\u1D35\u1D36\u1D37\u1D38\u1D39\u1D3A\u1D3B\u1D3C\u1D3D\u1D3E\u1D3F\u1D40\u1D41\u1D42\u1D43\u1D44\u1D45\u1D46\u1D47\u1D48\u1D49\u1D4A\u1D4B\u1D4C\u1D4D\u1D4E\u1D4F\u1D50\u1D51\u1D52\u1D53\u1D54\u1D55\u1D56\u1D57\u1D58\u1D59\u1D5A\u1D5B\u1D5C\u1D5D\u1D5E\u1D5F\u1D60\u1D61\u1D78\u1D9B\u1D9C\u1D9D\u1D9E\u1D9F\u1DA0\u1DA1\u1DA2\u1DA3\u1DA4\u1DA5\u1DA6\u1DA7\u1DA8\u1DA9\u1DAA\u1DAB\u1DAC\u1DAD\u1DAE\u1DAF\u1DB0\u1DB1\u1DB2\u1DB3\u1DB4\u1DB5\u1DB6\u1DB7\u1DB8\u1DB9\u1DBA\u1DBB\u1DBC\u1DBD\u1DBE\u1DBF\u2090\u2091\u2092\u2093\u2094\u2C7D\u2D6F\u2E2F\u3005\u3031\u3032\u3033\u3034\u3035\u303B\u309D\u309E\u30FC\u30FD\u30FE\uA015\uA60C\uA67F\uA717\uA718\uA719\uA71A\uA71B\uA71C\uA71D\uA71E\uA71F\uA770\uA788\uFF70\uFF9E\uFF9F]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\u02B0\\u02B1\\u02B2\\u02B3\\u02B4\\u02B5\\u02B6\\u02B7\\u02B8\\u02B9\\u02BA\\u02BB\\u02BC\\u02BD\\u02BE\\u02BF\\u02C0\\u02C1\\u02C6\\u02C7\\u02C8\\u02C9\\u02CA\\u02CB\\u02CC\\u02CD\\u02CE\\u02CF\\u02D0\\u02D1\\u02E0\\u02E1\\u02E2\\u02E3\\u02E4\\u02EC\\u02EE\\u0374\\u037A\\u0559\\u0640\\u06E5\\u06E6\\u07F4\\u07F5\\u07FA\\u0971\\u0E46\\u0EC6\\u10FC\\u17D7\\u1843\\u1C78\\u1C79\\u1C7A\\u1C7B\\u1C7C\\u1C7D\\u1D2C\\u1D2D\\u1D2E\\u1D2F\\u1D30\\u1D31\\u1D32\\u1D33\\u1D34\\u1D35\\u1D36\\u1D37\\u1D38\\u1D39\\u1D3A\\u1D3B\\u1D3C\\u1D3D\\u1D3E\\u1D3F\\u1D40\\u1D41\\u1D42\\u1D43\\u1D44\\u1D45\\u1D46\\u1D47\\u1D48\\u1D49\\u1D4A\\u1D4B\\u1D4C\\u1D4D\\u1D4E\\u1D4F\\u1D50\\u1D51\\u1D52\\u1D53\\u1D54\\u1D55\\u1D56\\u1D57\\u1D58\\u1D59\\u1D5A\\u1D5B\\u1D5C\\u1D5D\\u1D5E\\u1D5F\\u1D60\\u1D61\\u1D78\\u1D9B\\u1D9C\\u1D9D\\u1D9E\\u1D9F\\u1DA0\\u1DA1\\u1DA2\\u1DA3\\u1DA4\\u1DA5\\u1DA6\\u1DA7\\u1DA8\\u1DA9\\u1DAA\\u1DAB\\u1DAC\\u1DAD\\u1DAE\\u1DAF\\u1DB0\\u1DB1\\u1DB2\\u1DB3\\u1DB4\\u1DB5\\u1DB6\\u1DB7\\u1DB8\\u1DB9\\u1DBA\\u1DBB\\u1DBC\\u1DBD\\u1DBE\\u1DBF\\u2090\\u2091\\u2092\\u2093\\u2094\\u2C7D\\u2D6F\\u2E2F\\u3005\\u3031\\u3032\\u3033\\u3034\\u3035\\u303B\\u309D\\u309E\\u30FC\\u30FD\\u30FE\\uA015\\uA60C\\uA67F\\uA717\\uA718\\uA719\\uA71A\\uA71B\\uA71C\\uA71D\\uA71E\\uA71F\\uA770\\uA788\\uFF70\\uFF9E\\uFF9F]"); - } - } - return result0; - } - - function parse_Lo() { - var result0; - - if (/^[\u01BB\u01C0\u01C1\u01C2\u01C3\u0294\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\u05F0\u05F1\u05F2\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\u063B\u063C\u063D\u063E\u063F\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u066E\u066F\u0671\u0672\u0673\u0674\u0675\u0676\u0677\u0678\u0679\u067A\u067B\u067C\u067D\u067E\u067F\u0680\u0681\u0682\u0683\u0684\u0685\u0686\u0687\u0688\u0689\u068A\u068B\u068C\u068D\u068E\u068F\u0690\u0691\u0692\u0693\u0694\u0695\u0696\u0697\u0698\u0699\u069A\u069B\u069C\u069D\u069E\u069F\u06A0\u06A1\u06A2\u06A3\u06A4\u06A5\u06A6\u06A7\u06A8\u06A9\u06AA\u06AB\u06AC\u06AD\u06AE\u06AF\u06B0\u06B1\u06B2\u06B3\u06B4\u06B5\u06B6\u06B7\u06B8\u06B9\u06BA\u06BB\u06BC\u06BD\u06BE\u06BF\u06C0\u06C1\u06C2\u06C3\u06C4\u06C5\u06C6\u06C7\u06C8\u06C9\u06CA\u06CB\u06CC\u06CD\u06CE\u06CF\u06D0\u06D1\u06D2\u06D3\u06D5\u06EE\u06EF\u06FA\u06FB\u06FC\u06FF\u0710\u0712\u0713\u0714\u0715\u0716\u0717\u0718\u0719\u071A\u071B\u071C\u071D\u071E\u071F\u0720\u0721\u0722\u0723\u0724\u0725\u0726\u0727\u0728\u0729\u072A\u072B\u072C\u072D\u072E\u072F\u074D\u074E\u074F\u0750\u0751\u0752\u0753\u0754\u0755\u0756\u0757\u0758\u0759\u075A\u075B\u075C\u075D\u075E\u075F\u0760\u0761\u0762\u0763\u0764\u0765\u0766\u0767\u0768\u0769\u076A\u076B\u076C\u076D\u076E\u076F\u0770\u0771\u0772\u0773\u0774\u0775\u0776\u0777\u0778\u0779\u077A\u077B\u077C\u077D\u077E\u077F\u0780\u0781\u0782\u0783\u0784\u0785\u0786\u0787\u0788\u0789\u078A\u078B\u078C\u078D\u078E\u078F\u0790\u0791\u0792\u0793\u0794\u0795\u0796\u0797\u0798\u0799\u079A\u079B\u079C\u079D\u079E\u079F\u07A0\u07A1\u07A2\u07A3\u07A4\u07A5\u07B1\u07CA\u07CB\u07CC\u07CD\u07CE\u07CF\u07D0\u07D1\u07D2\u07D3\u07D4\u07D5\u07D6\u07D7\u07D8\u07D9\u07DA\u07DB\u07DC\u07DD\u07DE\u07DF\u07E0\u07E1\u07E2\u07E3\u07E4\u07E5\u07E6\u07E7\u07E8\u07E9\u07EA\u0904\u0905\u0906\u0907\u0908\u0909\u090A\u090B\u090C\u090D\u090E\u090F\u0910\u0911\u0912\u0913\u0914\u0915\u0916\u0917\u0918\u0919\u091A\u091B\u091C\u091D\u091E\u091F\u0920\u0921\u0922\u0923\u0924\u0925\u0926\u0927\u0928\u0929\u092A\u092B\u092C\u092D\u092E\u092F\u0930\u0931\u0932\u0933\u0934\u0935\u0936\u0937\u0938\u0939\u093D\u0950\u0958\u0959\u095A\u095B\u095C\u095D\u095E\u095F\u0960\u0961\u0972\u097B\u097C\u097D\u097E\u097F\u0985\u0986\u0987\u0988\u0989\u098A\u098B\u098C\u098F\u0990\u0993\u0994\u0995\u0996\u0997\u0998\u0999\u099A\u099B\u099C\u099D\u099E\u099F\u09A0\u09A1\u09A2\u09A3\u09A4\u09A5\u09A6\u09A7\u09A8\u09AA\u09AB\u09AC\u09AD\u09AE\u09AF\u09B0\u09B2\u09B6\u09B7\u09B8\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF\u09E0\u09E1\u09F0\u09F1\u0A05\u0A06\u0A07\u0A08\u0A09\u0A0A\u0A0F\u0A10\u0A13\u0A14\u0A15\u0A16\u0A17\u0A18\u0A19\u0A1A\u0A1B\u0A1C\u0A1D\u0A1E\u0A1F\u0A20\u0A21\u0A22\u0A23\u0A24\u0A25\u0A26\u0A27\u0A28\u0A2A\u0A2B\u0A2C\u0A2D\u0A2E\u0A2F\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5A\u0A5B\u0A5C\u0A5E\u0A72\u0A73\u0A74\u0A85\u0A86\u0A87\u0A88\u0A89\u0A8A\u0A8B\u0A8C\u0A8D\u0A8F\u0A90\u0A91\u0A93\u0A94\u0A95\u0A96\u0A97\u0A98\u0A99\u0A9A\u0A9B\u0A9C\u0A9D\u0A9E\u0A9F\u0AA0\u0AA1\u0AA2\u0AA3\u0AA4\u0AA5\u0AA6\u0AA7\u0AA8\u0AAA\u0AAB\u0AAC\u0AAD\u0AAE\u0AAF\u0AB0\u0AB2\u0AB3\u0AB5\u0AB6\u0AB7\u0AB8\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05\u0B06\u0B07\u0B08\u0B09\u0B0A\u0B0B\u0B0C\u0B0F\u0B10\u0B13\u0B14\u0B15\u0B16\u0B17\u0B18\u0B19\u0B1A\u0B1B\u0B1C\u0B1D\u0B1E\u0B1F\u0B20\u0B21\u0B22\u0B23\u0B24\u0B25\u0B26\u0B27\u0B28\u0B2A\u0B2B\u0B2C\u0B2D\u0B2E\u0B2F\u0B30\u0B32\u0B33\u0B35\u0B36\u0B37\u0B38\u0B39\u0B3D\u0B5C\u0B5D\u0B5F\u0B60\u0B61\u0B71\u0B83\u0B85\u0B86\u0B87\u0B88\u0B89\u0B8A\u0B8E\u0B8F\u0B90\u0B92\u0B93\u0B94\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BA9\u0BAA\u0BAE\u0BAF\u0BB0\u0BB1\u0BB2\u0BB3\u0BB4\u0BB5\u0BB6\u0BB7\u0BB8\u0BB9\u0BD0\u0C05\u0C06\u0C07\u0C08\u0C09\u0C0A\u0C0B\u0C0C\u0C0E\u0C0F\u0C10\u0C12\u0C13\u0C14\u0C15\u0C16\u0C17\u0C18\u0C19\u0C1A\u0C1B\u0C1C\u0C1D\u0C1E\u0C1F\u0C20\u0C21\u0C22\u0C23\u0C24\u0C25\u0C26\u0C27\u0C28\u0C2A\u0C2B\u0C2C\u0C2D\u0C2E\u0C2F\u0C30\u0C31\u0C32\u0C33\u0C35\u0C36\u0C37\u0C38\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85\u0C86\u0C87\u0C88\u0C89\u0C8A\u0C8B\u0C8C\u0C8E\u0C8F\u0C90\u0C92\u0C93\u0C94\u0C95\u0C96\u0C97\u0C98\u0C99\u0C9A\u0C9B\u0C9C\u0C9D\u0C9E\u0C9F\u0CA0\u0CA1\u0CA2\u0CA3\u0CA4\u0CA5\u0CA6\u0CA7\u0CA8\u0CAA\u0CAB\u0CAC\u0CAD\u0CAE\u0CAF\u0CB0\u0CB1\u0CB2\u0CB3\u0CB5\u0CB6\u0CB7\u0CB8\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0D05\u0D06\u0D07\u0D08\u0D09\u0D0A\u0D0B\u0D0C\u0D0E\u0D0F\u0D10\u0D12\u0D13\u0D14\u0D15\u0D16\u0D17\u0D18\u0D19\u0D1A\u0D1B\u0D1C\u0D1D\u0D1E\u0D1F\u0D20\u0D21\u0D22\u0D23\u0D24\u0D25\u0D26\u0D27\u0D28\u0D2A\u0D2B\u0D2C\u0D2D\u0D2E\u0D2F\u0D30\u0D31\u0D32\u0D33\u0D34\u0D35\u0D36\u0D37\u0D38\u0D39\u0D3D\u0D60\u0D61\u0D7A\u0D7B\u0D7C\u0D7D\u0D7E\u0D7F\u0D85\u0D86\u0D87\u0D88\u0D89\u0D8A\u0D8B\u0D8C\u0D8D\u0D8E\u0D8F\u0D90\u0D91\u0D92\u0D93\u0D94\u0D95\u0D96\u0D9A\u0D9B\u0D9C\u0D9D\u0D9E\u0D9F\u0DA0\u0DA1\u0DA2\u0DA3\u0DA4\u0DA5\u0DA6\u0DA7\u0DA8\u0DA9\u0DAA\u0DAB\u0DAC\u0DAD\u0DAE\u0DAF\u0DB0\u0DB1\u0DB3\u0DB4\u0DB5\u0DB6\u0DB7\u0DB8\u0DB9\u0DBA\u0DBB\u0DBD\u0DC0\u0DC1\u0DC2\u0DC3\u0DC4\u0DC5\u0DC6\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E32\u0E33\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EAF\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EDC\u0EDD\u0F00\u0F40\u0F41\u0F42\u0F43\u0F44\u0F45\u0F46\u0F47\u0F49\u0F4A\u0F4B\u0F4C\u0F4D\u0F4E\u0F4F\u0F50\u0F51\u0F52\u0F53\u0F54\u0F55\u0F56\u0F57\u0F58\u0F59\u0F5A\u0F5B\u0F5C\u0F5D\u0F5E\u0F5F\u0F60\u0F61\u0F62\u0F63\u0F64\u0F65\u0F66\u0F67\u0F68\u0F69\u0F6A\u0F6B\u0F6C\u0F88\u0F89\u0F8A\u0F8B\u1000\u1001\u1002\u1003\u1004\u1005\u1006\u1007\u1008\u1009\u100A\u100B\u100C\u100D\u100E\u100F\u1010\u1011\u1012\u1013\u1014\u1015\u1016\u1017\u1018\u1019\u101A\u101B\u101C\u101D\u101E\u101F\u1020\u1021\u1022\u1023\u1024\u1025\u1026\u1027\u1028\u1029\u102A\u103F\u1050\u1051\u1052\u1053\u1054\u1055\u105A\u105B\u105C\u105D\u1061\u1065\u1066\u106E\u106F\u1070\u1075\u1076\u1077\u1078\u1079\u107A\u107B\u107C\u107D\u107E\u107F\u1080\u1081\u108E\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\u10F7\u10F8\u10F9\u10FA\u1100\u1101\u1102\u1103\u1104\u1105\u1106\u1107\u1108\u1109\u110A\u110B\u110C\u110D\u110E\u110F\u1110\u1111\u1112\u1113\u1114\u1115\u1116\u1117\u1118\u1119\u111A\u111B\u111C\u111D\u111E\u111F\u1120\u1121\u1122\u1123\u1124\u1125\u1126\u1127\u1128\u1129\u112A\u112B\u112C\u112D\u112E\u112F\u1130\u1131\u1132\u1133\u1134\u1135\u1136\u1137\u1138\u1139\u113A\u113B\u113C\u113D\u113E\u113F\u1140\u1141\u1142\u1143\u1144\u1145\u1146\u1147\u1148\u1149\u114A\u114B\u114C\u114D\u114E\u114F\u1150\u1151\u1152\u1153\u1154\u1155\u1156\u1157\u1158\u1159\u115F\u1160\u1161\u1162\u1163\u1164\u1165\u1166\u1167\u1168\u1169\u116A\u116B\u116C\u116D\u116E\u116F\u1170\u1171\u1172\u1173\u1174\u1175\u1176\u1177\u1178\u1179\u117A\u117B\u117C\u117D\u117E\u117F\u1180\u1181\u1182\u1183\u1184\u1185\u1186\u1187\u1188\u1189\u118A\u118B\u118C\u118D\u118E\u118F\u1190\u1191\u1192\u1193\u1194\u1195\u1196\u1197\u1198\u1199\u119A\u119B\u119C\u119D\u119E\u119F\u11A0\u11A1\u11A2\u11A8\u11A9\u11AA\u11AB\u11AC\u11AD\u11AE\u11AF\u11B0\u11B1\u11B2\u11B3\u11B4\u11B5\u11B6\u11B7\u11B8\u11B9\u11BA\u11BB\u11BC\u11BD\u11BE\u11BF\u11C0\u11C1\u11C2\u11C3\u11C4\u11C5\u11C6\u11C7\u11C8\u11C9\u11CA\u11CB\u11CC\u11CD\u11CE\u11CF\u11D0\u11D1\u11D2\u11D3\u11D4\u11D5\u11D6\u11D7\u11D8\u11D9\u11DA\u11DB\u11DC\u11DD\u11DE\u11DF\u11E0\u11E1\u11E2\u11E3\u11E4\u11E5\u11E6\u11E7\u11E8\u11E9\u11EA\u11EB\u11EC\u11ED\u11EE\u11EF\u11F0\u11F1\u11F2\u11F3\u11F4\u11F5\u11F6\u11F7\u11F8\u11F9\u1200\u1201\u1202\u1203\u1204\u1205\u1206\u1207\u1208\u1209\u120A\u120B\u120C\u120D\u120E\u120F\u1210\u1211\u1212\u1213\u1214\u1215\u1216\u1217\u1218\u1219\u121A\u121B\u121C\u121D\u121E\u121F\u1220\u1221\u1222\u1223\u1224\u1225\u1226\u1227\u1228\u1229\u122A\u122B\u122C\u122D\u122E\u122F\u1230\u1231\u1232\u1233\u1234\u1235\u1236\u1237\u1238\u1239\u123A\u123B\u123C\u123D\u123E\u123F\u1240\u1241\u1242\u1243\u1244\u1245\u1246\u1247\u1248\u124A\u124B\u124C\u124D\u1250\u1251\u1252\u1253\u1254\u1255\u1256\u1258\u125A\u125B\u125C\u125D\u1260\u1261\u1262\u1263\u1264\u1265\u1266\u1267\u1268\u1269\u126A\u126B\u126C\u126D\u126E\u126F\u1270\u1271\u1272\u1273\u1274\u1275\u1276\u1277\u1278\u1279\u127A\u127B\u127C\u127D\u127E\u127F\u1280\u1281\u1282\u1283\u1284\u1285\u1286\u1287\u1288\u128A\u128B\u128C\u128D\u1290\u1291\u1292\u1293\u1294\u1295\u1296\u1297\u1298\u1299\u129A\u129B\u129C\u129D\u129E\u129F\u12A0\u12A1\u12A2\u12A3\u12A4\u12A5\u12A6\u12A7\u12A8\u12A9\u12AA\u12AB\u12AC\u12AD\u12AE\u12AF\u12B0\u12B2\u12B3\u12B4\u12B5\u12B8\u12B9\u12BA\u12BB\u12BC\u12BD\u12BE\u12C0\u12C2\u12C3\u12C4\u12C5\u12C8\u12C9\u12CA\u12CB\u12CC\u12CD\u12CE\u12CF\u12D0\u12D1\u12D2\u12D3\u12D4\u12D5\u12D6\u12D8\u12D9\u12DA\u12DB\u12DC\u12DD\u12DE\u12DF\u12E0\u12E1\u12E2\u12E3\u12E4\u12E5\u12E6\u12E7\u12E8\u12E9\u12EA\u12EB\u12EC\u12ED\u12EE\u12EF\u12F0\u12F1\u12F2\u12F3\u12F4\u12F5\u12F6\u12F7\u12F8\u12F9\u12FA\u12FB\u12FC\u12FD\u12FE\u12FF\u1300\u1301\u1302\u1303\u1304\u1305\u1306\u1307\u1308\u1309\u130A\u130B\u130C\u130D\u130E\u130F\u1310\u1312\u1313\u1314\u1315\u1318\u1319\u131A\u131B\u131C\u131D\u131E\u131F\u1320\u1321\u1322\u1323\u1324\u1325\u1326\u1327\u1328\u1329\u132A\u132B\u132C\u132D\u132E\u132F\u1330\u1331\u1332\u1333\u1334\u1335\u1336\u1337\u1338\u1339\u133A\u133B\u133C\u133D\u133E\u133F\u1340\u1341\u1342\u1343\u1344\u1345\u1346\u1347\u1348\u1349\u134A\u134B\u134C\u134D\u134E\u134F\u1350\u1351\u1352\u1353\u1354\u1355\u1356\u1357\u1358\u1359\u135A\u1380\u1381\u1382\u1383\u1384\u1385\u1386\u1387\u1388\u1389\u138A\u138B\u138C\u138D\u138E\u138F\u13A0\u13A1\u13A2\u13A3\u13A4\u13A5\u13A6\u13A7\u13A8\u13A9\u13AA\u13AB\u13AC\u13AD\u13AE\u13AF\u13B0\u13B1\u13B2\u13B3\u13B4\u13B5\u13B6\u13B7\u13B8\u13B9\u13BA\u13BB\u13BC\u13BD\u13BE\u13BF\u13C0\u13C1\u13C2\u13C3\u13C4\u13C5\u13C6\u13C7\u13C8\u13C9\u13CA\u13CB\u13CC\u13CD\u13CE\u13CF\u13D0\u13D1\u13D2\u13D3\u13D4\u13D5\u13D6\u13D7\u13D8\u13D9\u13DA\u13DB\u13DC\u13DD\u13DE\u13DF\u13E0\u13E1\u13E2\u13E3\u13E4\u13E5\u13E6\u13E7\u13E8\u13E9\u13EA\u13EB\u13EC\u13ED\u13EE\u13EF\u13F0\u13F1\u13F2\u13F3\u13F4\u1401\u1402\u1403\u1404\u1405\u1406\u1407\u1408\u1409\u140A\u140B\u140C\u140D\u140E\u140F\u1410\u1411\u1412\u1413\u1414\u1415\u1416\u1417\u1418\u1419\u141A\u141B\u141C\u141D\u141E\u141F\u1420\u1421\u1422\u1423\u1424\u1425\u1426\u1427\u1428\u1429\u142A\u142B\u142C\u142D\u142E\u142F\u1430\u1431\u1432\u1433\u1434\u1435\u1436\u1437\u1438\u1439\u143A\u143B\u143C\u143D\u143E\u143F\u1440\u1441\u1442\u1443\u1444\u1445\u1446\u1447\u1448\u1449\u144A\u144B\u144C\u144D\u144E\u144F\u1450\u1451\u1452\u1453\u1454\u1455\u1456\u1457\u1458\u1459\u145A\u145B\u145C\u145D\u145E\u145F\u1460\u1461\u1462\u1463\u1464\u1465\u1466\u1467\u1468\u1469\u146A\u146B\u146C\u146D\u146E\u146F\u1470\u1471\u1472\u1473\u1474\u1475\u1476\u1477\u1478\u1479\u147A\u147B\u147C\u147D\u147E\u147F\u1480\u1481\u1482\u1483\u1484\u1485\u1486\u1487\u1488\u1489\u148A\u148B\u148C\u148D\u148E\u148F\u1490\u1491\u1492\u1493\u1494\u1495\u1496\u1497\u1498\u1499\u149A\u149B\u149C\u149D\u149E\u149F\u14A0\u14A1\u14A2\u14A3\u14A4\u14A5\u14A6\u14A7\u14A8\u14A9\u14AA\u14AB\u14AC\u14AD\u14AE\u14AF\u14B0\u14B1\u14B2\u14B3\u14B4\u14B5\u14B6\u14B7\u14B8\u14B9\u14BA\u14BB\u14BC\u14BD\u14BE\u14BF\u14C0\u14C1\u14C2\u14C3\u14C4\u14C5\u14C6\u14C7\u14C8\u14C9\u14CA\u14CB\u14CC\u14CD\u14CE\u14CF\u14D0\u14D1\u14D2\u14D3\u14D4\u14D5\u14D6\u14D7\u14D8\u14D9\u14DA\u14DB\u14DC\u14DD\u14DE\u14DF\u14E0\u14E1\u14E2\u14E3\u14E4\u14E5\u14E6\u14E7\u14E8\u14E9\u14EA\u14EB\u14EC\u14ED\u14EE\u14EF\u14F0\u14F1\u14F2\u14F3\u14F4\u14F5\u14F6\u14F7\u14F8\u14F9\u14FA\u14FB\u14FC\u14FD\u14FE\u14FF\u1500\u1501\u1502\u1503\u1504\u1505\u1506\u1507\u1508\u1509\u150A\u150B\u150C\u150D\u150E\u150F\u1510\u1511\u1512\u1513\u1514\u1515\u1516\u1517\u1518\u1519\u151A\u151B\u151C\u151D\u151E\u151F\u1520\u1521\u1522\u1523\u1524\u1525\u1526\u1527\u1528\u1529\u152A\u152B\u152C\u152D\u152E\u152F\u1530\u1531\u1532\u1533\u1534\u1535\u1536\u1537\u1538\u1539\u153A\u153B\u153C\u153D\u153E\u153F\u1540\u1541\u1542\u1543\u1544\u1545\u1546\u1547\u1548\u1549\u154A\u154B\u154C\u154D\u154E\u154F\u1550\u1551\u1552\u1553\u1554\u1555\u1556\u1557\u1558\u1559\u155A\u155B\u155C\u155D\u155E\u155F\u1560\u1561\u1562\u1563\u1564\u1565\u1566\u1567\u1568\u1569\u156A\u156B\u156C\u156D\u156E\u156F\u1570\u1571\u1572\u1573\u1574\u1575\u1576\u1577\u1578\u1579\u157A\u157B\u157C\u157D\u157E\u157F\u1580\u1581\u1582\u1583\u1584\u1585\u1586\u1587\u1588\u1589\u158A\u158B\u158C\u158D\u158E\u158F\u1590\u1591\u1592\u1593\u1594\u1595\u1596\u1597\u1598\u1599\u159A\u159B\u159C\u159D\u159E\u159F\u15A0\u15A1\u15A2\u15A3\u15A4\u15A5\u15A6\u15A7\u15A8\u15A9\u15AA\u15AB\u15AC\u15AD\u15AE\u15AF\u15B0\u15B1\u15B2\u15B3\u15B4\u15B5\u15B6\u15B7\u15B8\u15B9\u15BA\u15BB\u15BC\u15BD\u15BE\u15BF\u15C0\u15C1\u15C2\u15C3\u15C4\u15C5\u15C6\u15C7\u15C8\u15C9\u15CA\u15CB\u15CC\u15CD\u15CE\u15CF\u15D0\u15D1\u15D2\u15D3\u15D4\u15D5\u15D6\u15D7\u15D8\u15D9\u15DA\u15DB\u15DC\u15DD\u15DE\u15DF\u15E0\u15E1\u15E2\u15E3\u15E4\u15E5\u15E6\u15E7\u15E8\u15E9\u15EA\u15EB\u15EC\u15ED\u15EE\u15EF\u15F0\u15F1\u15F2\u15F3\u15F4\u15F5\u15F6\u15F7\u15F8\u15F9\u15FA\u15FB\u15FC\u15FD\u15FE\u15FF\u1600\u1601\u1602\u1603\u1604\u1605\u1606\u1607\u1608\u1609\u160A\u160B\u160C\u160D\u160E\u160F\u1610\u1611\u1612\u1613\u1614\u1615\u1616\u1617\u1618\u1619\u161A\u161B\u161C\u161D\u161E\u161F\u1620\u1621\u1622\u1623\u1624\u1625\u1626\u1627\u1628\u1629\u162A\u162B\u162C\u162D\u162E\u162F\u1630\u1631\u1632\u1633\u1634\u1635\u1636\u1637\u1638\u1639\u163A\u163B\u163C\u163D\u163E\u163F\u1640\u1641\u1642\u1643\u1644\u1645\u1646\u1647\u1648\u1649\u164A\u164B\u164C\u164D\u164E\u164F\u1650\u1651\u1652\u1653\u1654\u1655\u1656\u1657\u1658\u1659\u165A\u165B\u165C\u165D\u165E\u165F\u1660\u1661\u1662\u1663\u1664\u1665\u1666\u1667\u1668\u1669\u166A\u166B\u166C\u166F\u1670\u1671\u1672\u1673\u1674\u1675\u1676\u1681\u1682\u1683\u1684\u1685\u1686\u1687\u1688\u1689\u168A\u168B\u168C\u168D\u168E\u168F\u1690\u1691\u1692\u1693\u1694\u1695\u1696\u1697\u1698\u1699\u169A\u16A0\u16A1\u16A2\u16A3\u16A4\u16A5\u16A6\u16A7\u16A8\u16A9\u16AA\u16AB\u16AC\u16AD\u16AE\u16AF\u16B0\u16B1\u16B2\u16B3\u16B4\u16B5\u16B6\u16B7\u16B8\u16B9\u16BA\u16BB\u16BC\u16BD\u16BE\u16BF\u16C0\u16C1\u16C2\u16C3\u16C4\u16C5\u16C6\u16C7\u16C8\u16C9\u16CA\u16CB\u16CC\u16CD\u16CE\u16CF\u16D0\u16D1\u16D2\u16D3\u16D4\u16D5\u16D6\u16D7\u16D8\u16D9\u16DA\u16DB\u16DC\u16DD\u16DE\u16DF\u16E0\u16E1\u16E2\u16E3\u16E4\u16E5\u16E6\u16E7\u16E8\u16E9\u16EA\u1700\u1701\u1702\u1703\u1704\u1705\u1706\u1707\u1708\u1709\u170A\u170B\u170C\u170E\u170F\u1710\u1711\u1720\u1721\u1722\u1723\u1724\u1725\u1726\u1727\u1728\u1729\u172A\u172B\u172C\u172D\u172E\u172F\u1730\u1731\u1740\u1741\u1742\u1743\u1744\u1745\u1746\u1747\u1748\u1749\u174A\u174B\u174C\u174D\u174E\u174F\u1750\u1751\u1760\u1761\u1762\u1763\u1764\u1765\u1766\u1767\u1768\u1769\u176A\u176B\u176C\u176E\u176F\u1770\u1780\u1781\u1782\u1783\u1784\u1785\u1786\u1787\u1788\u1789\u178A\u178B\u178C\u178D\u178E\u178F\u1790\u1791\u1792\u1793\u1794\u1795\u1796\u1797\u1798\u1799\u179A\u179B\u179C\u179D\u179E\u179F\u17A0\u17A1\u17A2\u17A3\u17A4\u17A5\u17A6\u17A7\u17A8\u17A9\u17AA\u17AB\u17AC\u17AD\u17AE\u17AF\u17B0\u17B1\u17B2\u17B3\u17DC\u1820\u1821\u1822\u1823\u1824\u1825\u1826\u1827\u1828\u1829\u182A\u182B\u182C\u182D\u182E\u182F\u1830\u1831\u1832\u1833\u1834\u1835\u1836\u1837\u1838\u1839\u183A\u183B\u183C\u183D\u183E\u183F\u1840\u1841\u1842\u1844\u1845\u1846\u1847\u1848\u1849\u184A\u184B\u184C\u184D\u184E\u184F\u1850\u1851\u1852\u1853\u1854\u1855\u1856\u1857\u1858\u1859\u185A\u185B\u185C\u185D\u185E\u185F\u1860\u1861\u1862\u1863\u1864\u1865\u1866\u1867\u1868\u1869\u186A\u186B\u186C\u186D\u186E\u186F\u1870\u1871\u1872\u1873\u1874\u1875\u1876\u1877\u1880\u1881\u1882\u1883\u1884\u1885\u1886\u1887\u1888\u1889\u188A\u188B\u188C\u188D\u188E\u188F\u1890\u1891\u1892\u1893\u1894\u1895\u1896\u1897\u1898\u1899\u189A\u189B\u189C\u189D\u189E\u189F\u18A0\u18A1\u18A2\u18A3\u18A4\u18A5\u18A6\u18A7\u18A8\u18AA\u1900\u1901\u1902\u1903\u1904\u1905\u1906\u1907\u1908\u1909\u190A\u190B\u190C\u190D\u190E\u190F\u1910\u1911\u1912\u1913\u1914\u1915\u1916\u1917\u1918\u1919\u191A\u191B\u191C\u1950\u1951\u1952\u1953\u1954\u1955\u1956\u1957\u1958\u1959\u195A\u195B\u195C\u195D\u195E\u195F\u1960\u1961\u1962\u1963\u1964\u1965\u1966\u1967\u1968\u1969\u196A\u196B\u196C\u196D\u1970\u1971\u1972\u1973\u1974\u1980\u1981\u1982\u1983\u1984\u1985\u1986\u1987\u1988\u1989\u198A\u198B\u198C\u198D\u198E\u198F\u1990\u1991\u1992\u1993\u1994\u1995\u1996\u1997\u1998\u1999\u199A\u199B\u199C\u199D\u199E\u199F\u19A0\u19A1\u19A2\u19A3\u19A4\u19A5\u19A6\u19A7\u19A8\u19A9\u19C1\u19C2\u19C3\u19C4\u19C5\u19C6\u19C7\u1A00\u1A01\u1A02\u1A03\u1A04\u1A05\u1A06\u1A07\u1A08\u1A09\u1A0A\u1A0B\u1A0C\u1A0D\u1A0E\u1A0F\u1A10\u1A11\u1A12\u1A13\u1A14\u1A15\u1A16\u1B05\u1B06\u1B07\u1B08\u1B09\u1B0A\u1B0B\u1B0C\u1B0D\u1B0E\u1B0F\u1B10\u1B11\u1B12\u1B13\u1B14\u1B15\u1B16\u1B17\u1B18\u1B19\u1B1A\u1B1B\u1B1C\u1B1D\u1B1E\u1B1F\u1B20\u1B21\u1B22\u1B23\u1B24\u1B25\u1B26\u1B27\u1B28\u1B29\u1B2A\u1B2B\u1B2C\u1B2D\u1B2E\u1B2F\u1B30\u1B31\u1B32\u1B33\u1B45\u1B46\u1B47\u1B48\u1B49\u1B4A\u1B4B\u1B83\u1B84\u1B85\u1B86\u1B87\u1B88\u1B89\u1B8A\u1B8B\u1B8C\u1B8D\u1B8E\u1B8F\u1B90\u1B91\u1B92\u1B93\u1B94\u1B95\u1B96\u1B97\u1B98\u1B99\u1B9A\u1B9B\u1B9C\u1B9D\u1B9E\u1B9F\u1BA0\u1BAE\u1BAF\u1C00\u1C01\u1C02\u1C03\u1C04\u1C05\u1C06\u1C07\u1C08\u1C09\u1C0A\u1C0B\u1C0C\u1C0D\u1C0E\u1C0F\u1C10\u1C11\u1C12\u1C13\u1C14\u1C15\u1C16\u1C17\u1C18\u1C19\u1C1A\u1C1B\u1C1C\u1C1D\u1C1E\u1C1F\u1C20\u1C21\u1C22\u1C23\u1C4D\u1C4E\u1C4F\u1C5A\u1C5B\u1C5C\u1C5D\u1C5E\u1C5F\u1C60\u1C61\u1C62\u1C63\u1C64\u1C65\u1C66\u1C67\u1C68\u1C69\u1C6A\u1C6B\u1C6C\u1C6D\u1C6E\u1C6F\u1C70\u1C71\u1C72\u1C73\u1C74\u1C75\u1C76\u1C77\u2135\u2136\u2137\u2138\u2D30\u2D31\u2D32\u2D33\u2D34\u2D35\u2D36\u2D37\u2D38\u2D39\u2D3A\u2D3B\u2D3C\u2D3D\u2D3E\u2D3F\u2D40\u2D41\u2D42\u2D43\u2D44\u2D45\u2D46\u2D47\u2D48\u2D49\u2D4A\u2D4B\u2D4C\u2D4D\u2D4E\u2D4F\u2D50\u2D51\u2D52\u2D53\u2D54\u2D55\u2D56\u2D57\u2D58\u2D59\u2D5A\u2D5B\u2D5C\u2D5D\u2D5E\u2D5F\u2D60\u2D61\u2D62\u2D63\u2D64\u2D65\u2D80\u2D81\u2D82\u2D83\u2D84\u2D85\u2D86\u2D87\u2D88\u2D89\u2D8A\u2D8B\u2D8C\u2D8D\u2D8E\u2D8F\u2D90\u2D91\u2D92\u2D93\u2D94\u2D95\u2D96\u2DA0\u2DA1\u2DA2\u2DA3\u2DA4\u2DA5\u2DA6\u2DA8\u2DA9\u2DAA\u2DAB\u2DAC\u2DAD\u2DAE\u2DB0\u2DB1\u2DB2\u2DB3\u2DB4\u2DB5\u2DB6\u2DB8\u2DB9\u2DBA\u2DBB\u2DBC\u2DBD\u2DBE\u2DC0\u2DC1\u2DC2\u2DC3\u2DC4\u2DC5\u2DC6\u2DC8\u2DC9\u2DCA\u2DCB\u2DCC\u2DCD\u2DCE\u2DD0\u2DD1\u2DD2\u2DD3\u2DD4\u2DD5\u2DD6\u2DD8\u2DD9\u2DDA\u2DDB\u2DDC\u2DDD\u2DDE\u3006\u303C\u3041\u3042\u3043\u3044\u3045\u3046\u3047\u3048\u3049\u304A\u304B\u304C\u304D\u304E\u304F\u3050\u3051\u3052\u3053\u3054\u3055\u3056\u3057\u3058\u3059\u305A\u305B\u305C\u305D\u305E\u305F\u3060\u3061\u3062\u3063\u3064\u3065\u3066\u3067\u3068\u3069\u306A\u306B\u306C\u306D\u306E\u306F\u3070\u3071\u3072\u3073\u3074\u3075\u3076\u3077\u3078\u3079\u307A\u307B\u307C\u307D\u307E\u307F\u3080\u3081\u3082\u3083\u3084\u3085\u3086\u3087\u3088\u3089\u308A\u308B\u308C\u308D\u308E\u308F\u3090\u3091\u3092\u3093\u3094\u3095\u3096\u309F\u30A1\u30A2\u30A3\u30A4\u30A5\u30A6\u30A7\u30A8\u30A9\u30AA\u30AB\u30AC\u30AD\u30AE\u30AF\u30B0\u30B1\u30B2\u30B3\u30B4\u30B5\u30B6\u30B7\u30B8\u30B9\u30BA\u30BB\u30BC\u30BD\u30BE\u30BF\u30C0\u30C1\u30C2\u30C3\u30C4\u30C5\u30C6\u30C7\u30C8\u30C9\u30CA\u30CB\u30CC\u30CD\u30CE\u30CF\u30D0\u30D1\u30D2\u30D3\u30D4\u30D5\u30D6\u30D7\u30D8\u30D9\u30DA\u30DB\u30DC\u30DD\u30DE\u30DF\u30E0\u30E1\u30E2\u30E3\u30E4\u30E5\u30E6\u30E7\u30E8\u30E9\u30EA\u30EB\u30EC\u30ED\u30EE\u30EF\u30F0\u30F1\u30F2\u30F3\u30F4\u30F5\u30F6\u30F7\u30F8\u30F9\u30FA\u30FF\u3105\u3106\u3107\u3108\u3109\u310A\u310B\u310C\u310D\u310E\u310F\u3110\u3111\u3112\u3113\u3114\u3115\u3116\u3117\u3118\u3119\u311A\u311B\u311C\u311D\u311E\u311F\u3120\u3121\u3122\u3123\u3124\u3125\u3126\u3127\u3128\u3129\u312A\u312B\u312C\u312D\u3131\u3132\u3133\u3134\u3135\u3136\u3137\u3138\u3139\u313A\u313B\u313C\u313D\u313E\u313F\u3140\u3141\u3142\u3143\u3144\u3145\u3146\u3147\u3148\u3149\u314A\u314B\u314C\u314D\u314E\u314F\u3150\u3151\u3152\u3153\u3154\u3155\u3156\u3157\u3158\u3159\u315A\u315B\u315C\u315D\u315E\u315F\u3160\u3161\u3162\u3163\u3164\u3165\u3166\u3167\u3168\u3169\u316A\u316B\u316C\u316D\u316E\u316F\u3170\u3171\u3172\u3173\u3174\u3175\u3176\u3177\u3178\u3179\u317A\u317B\u317C\u317D\u317E\u317F\u3180\u3181\u3182\u3183\u3184\u3185\u3186\u3187\u3188\u3189\u318A\u318B\u318C\u318D\u318E\u31A0\u31A1\u31A2\u31A3\u31A4\u31A5\u31A6\u31A7\u31A8\u31A9\u31AA\u31AB\u31AC\u31AD\u31AE\u31AF\u31B0\u31B1\u31B2\u31B3\u31B4\u31B5\u31B6\u31B7\u31F0\u31F1\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3400\u4DB5\u4E00\u9FC3\uA000\uA001\uA002\uA003\uA004\uA005\uA006\uA007\uA008\uA009\uA00A\uA00B\uA00C\uA00D\uA00E\uA00F\uA010\uA011\uA012\uA013\uA014\uA016\uA017\uA018\uA019\uA01A\uA01B\uA01C\uA01D\uA01E\uA01F\uA020\uA021\uA022\uA023\uA024\uA025\uA026\uA027\uA028\uA029\uA02A\uA02B\uA02C\uA02D\uA02E\uA02F\uA030\uA031\uA032\uA033\uA034\uA035\uA036\uA037\uA038\uA039\uA03A\uA03B\uA03C\uA03D\uA03E\uA03F\uA040\uA041\uA042\uA043\uA044\uA045\uA046\uA047\uA048\uA049\uA04A\uA04B\uA04C\uA04D\uA04E\uA04F\uA050\uA051\uA052\uA053\uA054\uA055\uA056\uA057\uA058\uA059\uA05A\uA05B\uA05C\uA05D\uA05E\uA05F\uA060\uA061\uA062\uA063\uA064\uA065\uA066\uA067\uA068\uA069\uA06A\uA06B\uA06C\uA06D\uA06E\uA06F\uA070\uA071\uA072\uA073\uA074\uA075\uA076\uA077\uA078\uA079\uA07A\uA07B\uA07C\uA07D\uA07E\uA07F\uA080\uA081\uA082\uA083\uA084\uA085\uA086\uA087\uA088\uA089\uA08A\uA08B\uA08C\uA08D\uA08E\uA08F\uA090\uA091\uA092\uA093\uA094\uA095\uA096\uA097\uA098\uA099\uA09A\uA09B\uA09C\uA09D\uA09E\uA09F\uA0A0\uA0A1\uA0A2\uA0A3\uA0A4\uA0A5\uA0A6\uA0A7\uA0A8\uA0A9\uA0AA\uA0AB\uA0AC\uA0AD\uA0AE\uA0AF\uA0B0\uA0B1\uA0B2\uA0B3\uA0B4\uA0B5\uA0B6\uA0B7\uA0B8\uA0B9\uA0BA\uA0BB\uA0BC\uA0BD\uA0BE\uA0BF\uA0C0\uA0C1\uA0C2\uA0C3\uA0C4\uA0C5\uA0C6\uA0C7\uA0C8\uA0C9\uA0CA\uA0CB\uA0CC\uA0CD\uA0CE\uA0CF\uA0D0\uA0D1\uA0D2\uA0D3\uA0D4\uA0D5\uA0D6\uA0D7\uA0D8\uA0D9\uA0DA\uA0DB\uA0DC\uA0DD\uA0DE\uA0DF\uA0E0\uA0E1\uA0E2\uA0E3\uA0E4\uA0E5\uA0E6\uA0E7\uA0E8\uA0E9\uA0EA\uA0EB\uA0EC\uA0ED\uA0EE\uA0EF\uA0F0\uA0F1\uA0F2\uA0F3\uA0F4\uA0F5\uA0F6\uA0F7\uA0F8\uA0F9\uA0FA\uA0FB\uA0FC\uA0FD\uA0FE\uA0FF\uA100\uA101\uA102\uA103\uA104\uA105\uA106\uA107\uA108\uA109\uA10A\uA10B\uA10C\uA10D\uA10E\uA10F\uA110\uA111\uA112\uA113\uA114\uA115\uA116\uA117\uA118\uA119\uA11A\uA11B\uA11C\uA11D\uA11E\uA11F\uA120\uA121\uA122\uA123\uA124\uA125\uA126\uA127\uA128\uA129\uA12A\uA12B\uA12C\uA12D\uA12E\uA12F\uA130\uA131\uA132\uA133\uA134\uA135\uA136\uA137\uA138\uA139\uA13A\uA13B\uA13C\uA13D\uA13E\uA13F\uA140\uA141\uA142\uA143\uA144\uA145\uA146\uA147\uA148\uA149\uA14A\uA14B\uA14C\uA14D\uA14E\uA14F\uA150\uA151\uA152\uA153\uA154\uA155\uA156\uA157\uA158\uA159\uA15A\uA15B\uA15C\uA15D\uA15E\uA15F\uA160\uA161\uA162\uA163\uA164\uA165\uA166\uA167\uA168\uA169\uA16A\uA16B\uA16C\uA16D\uA16E\uA16F\uA170\uA171\uA172\uA173\uA174\uA175\uA176\uA177\uA178\uA179\uA17A\uA17B\uA17C\uA17D\uA17E\uA17F\uA180\uA181\uA182\uA183\uA184\uA185\uA186\uA187\uA188\uA189\uA18A\uA18B\uA18C\uA18D\uA18E\uA18F\uA190\uA191\uA192\uA193\uA194\uA195\uA196\uA197\uA198\uA199\uA19A\uA19B\uA19C\uA19D\uA19E\uA19F\uA1A0\uA1A1\uA1A2\uA1A3\uA1A4\uA1A5\uA1A6\uA1A7\uA1A8\uA1A9\uA1AA\uA1AB\uA1AC\uA1AD\uA1AE\uA1AF\uA1B0\uA1B1\uA1B2\uA1B3\uA1B4\uA1B5\uA1B6\uA1B7\uA1B8\uA1B9\uA1BA\uA1BB\uA1BC\uA1BD\uA1BE\uA1BF\uA1C0\uA1C1\uA1C2\uA1C3\uA1C4\uA1C5\uA1C6\uA1C7\uA1C8\uA1C9\uA1CA\uA1CB\uA1CC\uA1CD\uA1CE\uA1CF\uA1D0\uA1D1\uA1D2\uA1D3\uA1D4\uA1D5\uA1D6\uA1D7\uA1D8\uA1D9\uA1DA\uA1DB\uA1DC\uA1DD\uA1DE\uA1DF\uA1E0\uA1E1\uA1E2\uA1E3\uA1E4\uA1E5\uA1E6\uA1E7\uA1E8\uA1E9\uA1EA\uA1EB\uA1EC\uA1ED\uA1EE\uA1EF\uA1F0\uA1F1\uA1F2\uA1F3\uA1F4\uA1F5\uA1F6\uA1F7\uA1F8\uA1F9\uA1FA\uA1FB\uA1FC\uA1FD\uA1FE\uA1FF\uA200\uA201\uA202\uA203\uA204\uA205\uA206\uA207\uA208\uA209\uA20A\uA20B\uA20C\uA20D\uA20E\uA20F\uA210\uA211\uA212\uA213\uA214\uA215\uA216\uA217\uA218\uA219\uA21A\uA21B\uA21C\uA21D\uA21E\uA21F\uA220\uA221\uA222\uA223\uA224\uA225\uA226\uA227\uA228\uA229\uA22A\uA22B\uA22C\uA22D\uA22E\uA22F\uA230\uA231\uA232\uA233\uA234\uA235\uA236\uA237\uA238\uA239\uA23A\uA23B\uA23C\uA23D\uA23E\uA23F\uA240\uA241\uA242\uA243\uA244\uA245\uA246\uA247\uA248\uA249\uA24A\uA24B\uA24C\uA24D\uA24E\uA24F\uA250\uA251\uA252\uA253\uA254\uA255\uA256\uA257\uA258\uA259\uA25A\uA25B\uA25C\uA25D\uA25E\uA25F\uA260\uA261\uA262\uA263\uA264\uA265\uA266\uA267\uA268\uA269\uA26A\uA26B\uA26C\uA26D\uA26E\uA26F\uA270\uA271\uA272\uA273\uA274\uA275\uA276\uA277\uA278\uA279\uA27A\uA27B\uA27C\uA27D\uA27E\uA27F\uA280\uA281\uA282\uA283\uA284\uA285\uA286\uA287\uA288\uA289\uA28A\uA28B\uA28C\uA28D\uA28E\uA28F\uA290\uA291\uA292\uA293\uA294\uA295\uA296\uA297\uA298\uA299\uA29A\uA29B\uA29C\uA29D\uA29E\uA29F\uA2A0\uA2A1\uA2A2\uA2A3\uA2A4\uA2A5\uA2A6\uA2A7\uA2A8\uA2A9\uA2AA\uA2AB\uA2AC\uA2AD\uA2AE\uA2AF\uA2B0\uA2B1\uA2B2\uA2B3\uA2B4\uA2B5\uA2B6\uA2B7\uA2B8\uA2B9\uA2BA\uA2BB\uA2BC\uA2BD\uA2BE\uA2BF\uA2C0\uA2C1\uA2C2\uA2C3\uA2C4\uA2C5\uA2C6\uA2C7\uA2C8\uA2C9\uA2CA\uA2CB\uA2CC\uA2CD\uA2CE\uA2CF\uA2D0\uA2D1\uA2D2\uA2D3\uA2D4\uA2D5\uA2D6\uA2D7\uA2D8\uA2D9\uA2DA\uA2DB\uA2DC\uA2DD\uA2DE\uA2DF\uA2E0\uA2E1\uA2E2\uA2E3\uA2E4\uA2E5\uA2E6\uA2E7\uA2E8\uA2E9\uA2EA\uA2EB\uA2EC\uA2ED\uA2EE\uA2EF\uA2F0\uA2F1\uA2F2\uA2F3\uA2F4\uA2F5\uA2F6\uA2F7\uA2F8\uA2F9\uA2FA\uA2FB\uA2FC\uA2FD\uA2FE\uA2FF\uA300\uA301\uA302\uA303\uA304\uA305\uA306\uA307\uA308\uA309\uA30A\uA30B\uA30C\uA30D\uA30E\uA30F\uA310\uA311\uA312\uA313\uA314\uA315\uA316\uA317\uA318\uA319\uA31A\uA31B\uA31C\uA31D\uA31E\uA31F\uA320\uA321\uA322\uA323\uA324\uA325\uA326\uA327\uA328\uA329\uA32A\uA32B\uA32C\uA32D\uA32E\uA32F\uA330\uA331\uA332\uA333\uA334\uA335\uA336\uA337\uA338\uA339\uA33A\uA33B\uA33C\uA33D\uA33E\uA33F\uA340\uA341\uA342\uA343\uA344\uA345\uA346\uA347\uA348\uA349\uA34A\uA34B\uA34C\uA34D\uA34E\uA34F\uA350\uA351\uA352\uA353\uA354\uA355\uA356\uA357\uA358\uA359\uA35A\uA35B\uA35C\uA35D\uA35E\uA35F\uA360\uA361\uA362\uA363\uA364\uA365\uA366\uA367\uA368\uA369\uA36A\uA36B\uA36C\uA36D\uA36E\uA36F\uA370\uA371\uA372\uA373\uA374\uA375\uA376\uA377\uA378\uA379\uA37A\uA37B\uA37C\uA37D\uA37E\uA37F\uA380\uA381\uA382\uA383\uA384\uA385\uA386\uA387\uA388\uA389\uA38A\uA38B\uA38C\uA38D\uA38E\uA38F\uA390\uA391\uA392\uA393\uA394\uA395\uA396\uA397\uA398\uA399\uA39A\uA39B\uA39C\uA39D\uA39E\uA39F\uA3A0\uA3A1\uA3A2\uA3A3\uA3A4\uA3A5\uA3A6\uA3A7\uA3A8\uA3A9\uA3AA\uA3AB\uA3AC\uA3AD\uA3AE\uA3AF\uA3B0\uA3B1\uA3B2\uA3B3\uA3B4\uA3B5\uA3B6\uA3B7\uA3B8\uA3B9\uA3BA\uA3BB\uA3BC\uA3BD\uA3BE\uA3BF\uA3C0\uA3C1\uA3C2\uA3C3\uA3C4\uA3C5\uA3C6\uA3C7\uA3C8\uA3C9\uA3CA\uA3CB\uA3CC\uA3CD\uA3CE\uA3CF\uA3D0\uA3D1\uA3D2\uA3D3\uA3D4\uA3D5\uA3D6\uA3D7\uA3D8\uA3D9\uA3DA\uA3DB\uA3DC\uA3DD\uA3DE\uA3DF\uA3E0\uA3E1\uA3E2\uA3E3\uA3E4\uA3E5\uA3E6\uA3E7\uA3E8\uA3E9\uA3EA\uA3EB\uA3EC\uA3ED\uA3EE\uA3EF\uA3F0\uA3F1\uA3F2\uA3F3\uA3F4\uA3F5\uA3F6\uA3F7\uA3F8\uA3F9\uA3FA\uA3FB\uA3FC\uA3FD\uA3FE\uA3FF\uA400\uA401\uA402\uA403\uA404\uA405\uA406\uA407\uA408\uA409\uA40A\uA40B\uA40C\uA40D\uA40E\uA40F\uA410\uA411\uA412\uA413\uA414\uA415\uA416\uA417\uA418\uA419\uA41A\uA41B\uA41C\uA41D\uA41E\uA41F\uA420\uA421\uA422\uA423\uA424\uA425\uA426\uA427\uA428\uA429\uA42A\uA42B\uA42C\uA42D\uA42E\uA42F\uA430\uA431\uA432\uA433\uA434\uA435\uA436\uA437\uA438\uA439\uA43A\uA43B\uA43C\uA43D\uA43E\uA43F\uA440\uA441\uA442\uA443\uA444\uA445\uA446\uA447\uA448\uA449\uA44A\uA44B\uA44C\uA44D\uA44E\uA44F\uA450\uA451\uA452\uA453\uA454\uA455\uA456\uA457\uA458\uA459\uA45A\uA45B\uA45C\uA45D\uA45E\uA45F\uA460\uA461\uA462\uA463\uA464\uA465\uA466\uA467\uA468\uA469\uA46A\uA46B\uA46C\uA46D\uA46E\uA46F\uA470\uA471\uA472\uA473\uA474\uA475\uA476\uA477\uA478\uA479\uA47A\uA47B\uA47C\uA47D\uA47E\uA47F\uA480\uA481\uA482\uA483\uA484\uA485\uA486\uA487\uA488\uA489\uA48A\uA48B\uA48C\uA500\uA501\uA502\uA503\uA504\uA505\uA506\uA507\uA508\uA509\uA50A\uA50B\uA50C\uA50D\uA50E\uA50F\uA510\uA511\uA512\uA513\uA514\uA515\uA516\uA517\uA518\uA519\uA51A\uA51B\uA51C\uA51D\uA51E\uA51F\uA520\uA521\uA522\uA523\uA524\uA525\uA526\uA527\uA528\uA529\uA52A\uA52B\uA52C\uA52D\uA52E\uA52F\uA530\uA531\uA532\uA533\uA534\uA535\uA536\uA537\uA538\uA539\uA53A\uA53B\uA53C\uA53D\uA53E\uA53F\uA540\uA541\uA542\uA543\uA544\uA545\uA546\uA547\uA548\uA549\uA54A\uA54B\uA54C\uA54D\uA54E\uA54F\uA550\uA551\uA552\uA553\uA554\uA555\uA556\uA557\uA558\uA559\uA55A\uA55B\uA55C\uA55D\uA55E\uA55F\uA560\uA561\uA562\uA563\uA564\uA565\uA566\uA567\uA568\uA569\uA56A\uA56B\uA56C\uA56D\uA56E\uA56F\uA570\uA571\uA572\uA573\uA574\uA575\uA576\uA577\uA578\uA579\uA57A\uA57B\uA57C\uA57D\uA57E\uA57F\uA580\uA581\uA582\uA583\uA584\uA585\uA586\uA587\uA588\uA589\uA58A\uA58B\uA58C\uA58D\uA58E\uA58F\uA590\uA591\uA592\uA593\uA594\uA595\uA596\uA597\uA598\uA599\uA59A\uA59B\uA59C\uA59D\uA59E\uA59F\uA5A0\uA5A1\uA5A2\uA5A3\uA5A4\uA5A5\uA5A6\uA5A7\uA5A8\uA5A9\uA5AA\uA5AB\uA5AC\uA5AD\uA5AE\uA5AF\uA5B0\uA5B1\uA5B2\uA5B3\uA5B4\uA5B5\uA5B6\uA5B7\uA5B8\uA5B9\uA5BA\uA5BB\uA5BC\uA5BD\uA5BE\uA5BF\uA5C0\uA5C1\uA5C2\uA5C3\uA5C4\uA5C5\uA5C6\uA5C7\uA5C8\uA5C9\uA5CA\uA5CB\uA5CC\uA5CD\uA5CE\uA5CF\uA5D0\uA5D1\uA5D2\uA5D3\uA5D4\uA5D5\uA5D6\uA5D7\uA5D8\uA5D9\uA5DA\uA5DB\uA5DC\uA5DD\uA5DE\uA5DF\uA5E0\uA5E1\uA5E2\uA5E3\uA5E4\uA5E5\uA5E6\uA5E7\uA5E8\uA5E9\uA5EA\uA5EB\uA5EC\uA5ED\uA5EE\uA5EF\uA5F0\uA5F1\uA5F2\uA5F3\uA5F4\uA5F5\uA5F6\uA5F7\uA5F8\uA5F9\uA5FA\uA5FB\uA5FC\uA5FD\uA5FE\uA5FF\uA600\uA601\uA602\uA603\uA604\uA605\uA606\uA607\uA608\uA609\uA60A\uA60B\uA610\uA611\uA612\uA613\uA614\uA615\uA616\uA617\uA618\uA619\uA61A\uA61B\uA61C\uA61D\uA61E\uA61F\uA62A\uA62B\uA66E\uA7FB\uA7FC\uA7FD\uA7FE\uA7FF\uA800\uA801\uA803\uA804\uA805\uA807\uA808\uA809\uA80A\uA80C\uA80D\uA80E\uA80F\uA810\uA811\uA812\uA813\uA814\uA815\uA816\uA817\uA818\uA819\uA81A\uA81B\uA81C\uA81D\uA81E\uA81F\uA820\uA821\uA822\uA840\uA841\uA842\uA843\uA844\uA845\uA846\uA847\uA848\uA849\uA84A\uA84B\uA84C\uA84D\uA84E\uA84F\uA850\uA851\uA852\uA853\uA854\uA855\uA856\uA857\uA858\uA859\uA85A\uA85B\uA85C\uA85D\uA85E\uA85F\uA860\uA861\uA862\uA863\uA864\uA865\uA866\uA867\uA868\uA869\uA86A\uA86B\uA86C\uA86D\uA86E\uA86F\uA870\uA871\uA872\uA873\uA882\uA883\uA884\uA885\uA886\uA887\uA888\uA889\uA88A\uA88B\uA88C\uA88D\uA88E\uA88F\uA890\uA891\uA892\uA893\uA894\uA895\uA896\uA897\uA898\uA899\uA89A\uA89B\uA89C\uA89D\uA89E\uA89F\uA8A0\uA8A1\uA8A2\uA8A3\uA8A4\uA8A5\uA8A6\uA8A7\uA8A8\uA8A9\uA8AA\uA8AB\uA8AC\uA8AD\uA8AE\uA8AF\uA8B0\uA8B1\uA8B2\uA8B3\uA90A\uA90B\uA90C\uA90D\uA90E\uA90F\uA910\uA911\uA912\uA913\uA914\uA915\uA916\uA917\uA918\uA919\uA91A\uA91B\uA91C\uA91D\uA91E\uA91F\uA920\uA921\uA922\uA923\uA924\uA925\uA930\uA931\uA932\uA933\uA934\uA935\uA936\uA937\uA938\uA939\uA93A\uA93B\uA93C\uA93D\uA93E\uA93F\uA940\uA941\uA942\uA943\uA944\uA945\uA946\uAA00\uAA01\uAA02\uAA03\uAA04\uAA05\uAA06\uAA07\uAA08\uAA09\uAA0A\uAA0B\uAA0C\uAA0D\uAA0E\uAA0F\uAA10\uAA11\uAA12\uAA13\uAA14\uAA15\uAA16\uAA17\uAA18\uAA19\uAA1A\uAA1B\uAA1C\uAA1D\uAA1E\uAA1F\uAA20\uAA21\uAA22\uAA23\uAA24\uAA25\uAA26\uAA27\uAA28\uAA40\uAA41\uAA42\uAA44\uAA45\uAA46\uAA47\uAA48\uAA49\uAA4A\uAA4B\uAC00\uD7A3\uF900\uF901\uF902\uF903\uF904\uF905\uF906\uF907\uF908\uF909\uF90A\uF90B\uF90C\uF90D\uF90E\uF90F\uF910\uF911\uF912\uF913\uF914\uF915\uF916\uF917\uF918\uF919\uF91A\uF91B\uF91C\uF91D\uF91E\uF91F\uF920\uF921\uF922\uF923\uF924\uF925\uF926\uF927\uF928\uF929\uF92A\uF92B\uF92C\uF92D\uF92E\uF92F\uF930\uF931\uF932\uF933\uF934\uF935\uF936\uF937\uF938\uF939\uF93A\uF93B\uF93C\uF93D\uF93E\uF93F\uF940\uF941\uF942\uF943\uF944\uF945\uF946\uF947\uF948\uF949\uF94A\uF94B\uF94C\uF94D\uF94E\uF94F\uF950\uF951\uF952\uF953\uF954\uF955\uF956\uF957\uF958\uF959\uF95A\uF95B\uF95C\uF95D\uF95E\uF95F\uF960\uF961\uF962\uF963\uF964\uF965\uF966\uF967\uF968\uF969\uF96A\uF96B\uF96C\uF96D\uF96E\uF96F\uF970\uF971\uF972\uF973\uF974\uF975\uF976\uF977\uF978\uF979\uF97A\uF97B\uF97C\uF97D\uF97E\uF97F\uF980\uF981\uF982\uF983\uF984\uF985\uF986\uF987\uF988\uF989\uF98A\uF98B\uF98C\uF98D\uF98E\uF98F\uF990\uF991\uF992\uF993\uF994\uF995\uF996\uF997\uF998\uF999\uF99A\uF99B\uF99C\uF99D\uF99E\uF99F\uF9A0\uF9A1\uF9A2\uF9A3\uF9A4\uF9A5\uF9A6\uF9A7\uF9A8\uF9A9\uF9AA\uF9AB\uF9AC\uF9AD\uF9AE\uF9AF\uF9B0\uF9B1\uF9B2\uF9B3\uF9B4\uF9B5\uF9B6\uF9B7\uF9B8\uF9B9\uF9BA\uF9BB\uF9BC\uF9BD\uF9BE\uF9BF\uF9C0\uF9C1\uF9C2\uF9C3\uF9C4\uF9C5\uF9C6\uF9C7\uF9C8\uF9C9\uF9CA\uF9CB\uF9CC\uF9CD\uF9CE\uF9CF\uF9D0\uF9D1\uF9D2\uF9D3\uF9D4\uF9D5\uF9D6\uF9D7\uF9D8\uF9D9\uF9DA\uF9DB\uF9DC\uF9DD\uF9DE\uF9DF\uF9E0\uF9E1\uF9E2\uF9E3\uF9E4\uF9E5\uF9E6\uF9E7\uF9E8\uF9E9\uF9EA\uF9EB\uF9EC\uF9ED\uF9EE\uF9EF\uF9F0\uF9F1\uF9F2\uF9F3\uF9F4\uF9F5\uF9F6\uF9F7\uF9F8\uF9F9\uF9FA\uF9FB\uF9FC\uF9FD\uF9FE\uF9FF\uFA00\uFA01\uFA02\uFA03\uFA04\uFA05\uFA06\uFA07\uFA08\uFA09\uFA0A\uFA0B\uFA0C\uFA0D\uFA0E\uFA0F\uFA10\uFA11\uFA12\uFA13\uFA14\uFA15\uFA16\uFA17\uFA18\uFA19\uFA1A\uFA1B\uFA1C\uFA1D\uFA1E\uFA1F\uFA20\uFA21\uFA22\uFA23\uFA24\uFA25\uFA26\uFA27\uFA28\uFA29\uFA2A\uFA2B\uFA2C\uFA2D\uFA30\uFA31\uFA32\uFA33\uFA34\uFA35\uFA36\uFA37\uFA38\uFA39\uFA3A\uFA3B\uFA3C\uFA3D\uFA3E\uFA3F\uFA40\uFA41\uFA42\uFA43\uFA44\uFA45\uFA46\uFA47\uFA48\uFA49\uFA4A\uFA4B\uFA4C\uFA4D\uFA4E\uFA4F\uFA50\uFA51\uFA52\uFA53\uFA54\uFA55\uFA56\uFA57\uFA58\uFA59\uFA5A\uFA5B\uFA5C\uFA5D\uFA5E\uFA5F\uFA60\uFA61\uFA62\uFA63\uFA64\uFA65\uFA66\uFA67\uFA68\uFA69\uFA6A\uFA70\uFA71\uFA72\uFA73\uFA74\uFA75\uFA76\uFA77\uFA78\uFA79\uFA7A\uFA7B\uFA7C\uFA7D\uFA7E\uFA7F\uFA80\uFA81\uFA82\uFA83\uFA84\uFA85\uFA86\uFA87\uFA88\uFA89\uFA8A\uFA8B\uFA8C\uFA8D\uFA8E\uFA8F\uFA90\uFA91\uFA92\uFA93\uFA94\uFA95\uFA96\uFA97\uFA98\uFA99\uFA9A\uFA9B\uFA9C\uFA9D\uFA9E\uFA9F\uFAA0\uFAA1\uFAA2\uFAA3\uFAA4\uFAA5\uFAA6\uFAA7\uFAA8\uFAA9\uFAAA\uFAAB\uFAAC\uFAAD\uFAAE\uFAAF\uFAB0\uFAB1\uFAB2\uFAB3\uFAB4\uFAB5\uFAB6\uFAB7\uFAB8\uFAB9\uFABA\uFABB\uFABC\uFABD\uFABE\uFABF\uFAC0\uFAC1\uFAC2\uFAC3\uFAC4\uFAC5\uFAC6\uFAC7\uFAC8\uFAC9\uFACA\uFACB\uFACC\uFACD\uFACE\uFACF\uFAD0\uFAD1\uFAD2\uFAD3\uFAD4\uFAD5\uFAD6\uFAD7\uFAD8\uFAD9\uFB1D\uFB1F\uFB20\uFB21\uFB22\uFB23\uFB24\uFB25\uFB26\uFB27\uFB28\uFB2A\uFB2B\uFB2C\uFB2D\uFB2E\uFB2F\uFB30\uFB31\uFB32\uFB33\uFB34\uFB35\uFB36\uFB38\uFB39\uFB3A\uFB3B\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46\uFB47\uFB48\uFB49\uFB4A\uFB4B\uFB4C\uFB4D\uFB4E\uFB4F\uFB50\uFB51\uFB52\uFB53\uFB54\uFB55\uFB56\uFB57\uFB58\uFB59\uFB5A\uFB5B\uFB5C\uFB5D\uFB5E\uFB5F\uFB60\uFB61\uFB62\uFB63\uFB64\uFB65\uFB66\uFB67\uFB68\uFB69\uFB6A\uFB6B\uFB6C\uFB6D\uFB6E\uFB6F\uFB70\uFB71\uFB72\uFB73\uFB74\uFB75\uFB76\uFB77\uFB78\uFB79\uFB7A\uFB7B\uFB7C\uFB7D\uFB7E\uFB7F\uFB80\uFB81\uFB82\uFB83\uFB84\uFB85\uFB86\uFB87\uFB88\uFB89\uFB8A\uFB8B\uFB8C\uFB8D\uFB8E\uFB8F\uFB90\uFB91\uFB92\uFB93\uFB94\uFB95\uFB96\uFB97\uFB98\uFB99\uFB9A\uFB9B\uFB9C\uFB9D\uFB9E\uFB9F\uFBA0\uFBA1\uFBA2\uFBA3\uFBA4\uFBA5\uFBA6\uFBA7\uFBA8\uFBA9\uFBAA\uFBAB\uFBAC\uFBAD\uFBAE\uFBAF\uFBB0\uFBB1\uFBD3\uFBD4\uFBD5\uFBD6\uFBD7\uFBD8\uFBD9\uFBDA\uFBDB\uFBDC\uFBDD\uFBDE\uFBDF\uFBE0\uFBE1\uFBE2\uFBE3\uFBE4\uFBE5\uFBE6\uFBE7\uFBE8\uFBE9\uFBEA\uFBEB\uFBEC\uFBED\uFBEE\uFBEF\uFBF0\uFBF1\uFBF2\uFBF3\uFBF4\uFBF5\uFBF6\uFBF7\uFBF8\uFBF9\uFBFA\uFBFB\uFBFC\uFBFD\uFBFE\uFBFF\uFC00\uFC01\uFC02\uFC03\uFC04\uFC05\uFC06\uFC07\uFC08\uFC09\uFC0A\uFC0B\uFC0C\uFC0D\uFC0E\uFC0F\uFC10\uFC11\uFC12\uFC13\uFC14\uFC15\uFC16\uFC17\uFC18\uFC19\uFC1A\uFC1B\uFC1C\uFC1D\uFC1E\uFC1F\uFC20\uFC21\uFC22\uFC23\uFC24\uFC25\uFC26\uFC27\uFC28\uFC29\uFC2A\uFC2B\uFC2C\uFC2D\uFC2E\uFC2F\uFC30\uFC31\uFC32\uFC33\uFC34\uFC35\uFC36\uFC37\uFC38\uFC39\uFC3A\uFC3B\uFC3C\uFC3D\uFC3E\uFC3F\uFC40\uFC41\uFC42\uFC43\uFC44\uFC45\uFC46\uFC47\uFC48\uFC49\uFC4A\uFC4B\uFC4C\uFC4D\uFC4E\uFC4F\uFC50\uFC51\uFC52\uFC53\uFC54\uFC55\uFC56\uFC57\uFC58\uFC59\uFC5A\uFC5B\uFC5C\uFC5D\uFC5E\uFC5F\uFC60\uFC61\uFC62\uFC63\uFC64\uFC65\uFC66\uFC67\uFC68\uFC69\uFC6A\uFC6B\uFC6C\uFC6D\uFC6E\uFC6F\uFC70\uFC71\uFC72\uFC73\uFC74\uFC75\uFC76\uFC77\uFC78\uFC79\uFC7A\uFC7B\uFC7C\uFC7D\uFC7E\uFC7F\uFC80\uFC81\uFC82\uFC83\uFC84\uFC85\uFC86\uFC87\uFC88\uFC89\uFC8A\uFC8B\uFC8C\uFC8D\uFC8E\uFC8F\uFC90\uFC91\uFC92\uFC93\uFC94\uFC95\uFC96\uFC97\uFC98\uFC99\uFC9A\uFC9B\uFC9C\uFC9D\uFC9E\uFC9F\uFCA0\uFCA1\uFCA2\uFCA3\uFCA4\uFCA5\uFCA6\uFCA7\uFCA8\uFCA9\uFCAA\uFCAB\uFCAC\uFCAD\uFCAE\uFCAF\uFCB0\uFCB1\uFCB2\uFCB3\uFCB4\uFCB5\uFCB6\uFCB7\uFCB8\uFCB9\uFCBA\uFCBB\uFCBC\uFCBD\uFCBE\uFCBF\uFCC0\uFCC1\uFCC2\uFCC3\uFCC4\uFCC5\uFCC6\uFCC7\uFCC8\uFCC9\uFCCA\uFCCB\uFCCC\uFCCD\uFCCE\uFCCF\uFCD0\uFCD1\uFCD2\uFCD3\uFCD4\uFCD5\uFCD6\uFCD7\uFCD8\uFCD9\uFCDA\uFCDB\uFCDC\uFCDD\uFCDE\uFCDF\uFCE0\uFCE1\uFCE2\uFCE3\uFCE4\uFCE5\uFCE6\uFCE7\uFCE8\uFCE9\uFCEA\uFCEB\uFCEC\uFCED\uFCEE\uFCEF\uFCF0\uFCF1\uFCF2\uFCF3\uFCF4\uFCF5\uFCF6\uFCF7\uFCF8\uFCF9\uFCFA\uFCFB\uFCFC\uFCFD\uFCFE\uFCFF\uFD00\uFD01\uFD02\uFD03\uFD04\uFD05\uFD06\uFD07\uFD08\uFD09\uFD0A\uFD0B\uFD0C\uFD0D\uFD0E\uFD0F\uFD10\uFD11\uFD12\uFD13\uFD14\uFD15\uFD16\uFD17\uFD18\uFD19\uFD1A\uFD1B\uFD1C\uFD1D\uFD1E\uFD1F\uFD20\uFD21\uFD22\uFD23\uFD24\uFD25\uFD26\uFD27\uFD28\uFD29\uFD2A\uFD2B\uFD2C\uFD2D\uFD2E\uFD2F\uFD30\uFD31\uFD32\uFD33\uFD34\uFD35\uFD36\uFD37\uFD38\uFD39\uFD3A\uFD3B\uFD3C\uFD3D\uFD50\uFD51\uFD52\uFD53\uFD54\uFD55\uFD56\uFD57\uFD58\uFD59\uFD5A\uFD5B\uFD5C\uFD5D\uFD5E\uFD5F\uFD60\uFD61\uFD62\uFD63\uFD64\uFD65\uFD66\uFD67\uFD68\uFD69\uFD6A\uFD6B\uFD6C\uFD6D\uFD6E\uFD6F\uFD70\uFD71\uFD72\uFD73\uFD74\uFD75\uFD76\uFD77\uFD78\uFD79\uFD7A\uFD7B\uFD7C\uFD7D\uFD7E\uFD7F\uFD80\uFD81\uFD82\uFD83\uFD84\uFD85\uFD86\uFD87\uFD88\uFD89\uFD8A\uFD8B\uFD8C\uFD8D\uFD8E\uFD8F\uFD92\uFD93\uFD94\uFD95\uFD96\uFD97\uFD98\uFD99\uFD9A\uFD9B\uFD9C\uFD9D\uFD9E\uFD9F\uFDA0\uFDA1\uFDA2\uFDA3\uFDA4\uFDA5\uFDA6\uFDA7\uFDA8\uFDA9\uFDAA\uFDAB\uFDAC\uFDAD\uFDAE\uFDAF\uFDB0\uFDB1\uFDB2\uFDB3\uFDB4\uFDB5\uFDB6\uFDB7\uFDB8\uFDB9\uFDBA\uFDBB\uFDBC\uFDBD\uFDBE\uFDBF\uFDC0\uFDC1\uFDC2\uFDC3\uFDC4\uFDC5\uFDC6\uFDC7\uFDF0\uFDF1\uFDF2\uFDF3\uFDF4\uFDF5\uFDF6\uFDF7\uFDF8\uFDF9\uFDFA\uFDFB\uFE70\uFE71\uFE72\uFE73\uFE74\uFE76\uFE77\uFE78\uFE79\uFE7A\uFE7B\uFE7C\uFE7D\uFE7E\uFE7F\uFE80\uFE81\uFE82\uFE83\uFE84\uFE85\uFE86\uFE87\uFE88\uFE89\uFE8A\uFE8B\uFE8C\uFE8D\uFE8E\uFE8F\uFE90\uFE91\uFE92\uFE93\uFE94\uFE95\uFE96\uFE97\uFE98\uFE99\uFE9A\uFE9B\uFE9C\uFE9D\uFE9E\uFE9F\uFEA0\uFEA1\uFEA2\uFEA3\uFEA4\uFEA5\uFEA6\uFEA7\uFEA8\uFEA9\uFEAA\uFEAB\uFEAC\uFEAD\uFEAE\uFEAF\uFEB0\uFEB1\uFEB2\uFEB3\uFEB4\uFEB5\uFEB6\uFEB7\uFEB8\uFEB9\uFEBA\uFEBB\uFEBC\uFEBD\uFEBE\uFEBF\uFEC0\uFEC1\uFEC2\uFEC3\uFEC4\uFEC5\uFEC6\uFEC7\uFEC8\uFEC9\uFECA\uFECB\uFECC\uFECD\uFECE\uFECF\uFED0\uFED1\uFED2\uFED3\uFED4\uFED5\uFED6\uFED7\uFED8\uFED9\uFEDA\uFEDB\uFEDC\uFEDD\uFEDE\uFEDF\uFEE0\uFEE1\uFEE2\uFEE3\uFEE4\uFEE5\uFEE6\uFEE7\uFEE8\uFEE9\uFEEA\uFEEB\uFEEC\uFEED\uFEEE\uFEEF\uFEF0\uFEF1\uFEF2\uFEF3\uFEF4\uFEF5\uFEF6\uFEF7\uFEF8\uFEF9\uFEFA\uFEFB\uFEFC\uFF66\uFF67\uFF68\uFF69\uFF6A\uFF6B\uFF6C\uFF6D\uFF6E\uFF6F\uFF71\uFF72\uFF73\uFF74\uFF75\uFF76\uFF77\uFF78\uFF79\uFF7A\uFF7B\uFF7C\uFF7D\uFF7E\uFF7F\uFF80\uFF81\uFF82\uFF83\uFF84\uFF85\uFF86\uFF87\uFF88\uFF89\uFF8A\uFF8B\uFF8C\uFF8D\uFF8E\uFF8F\uFF90\uFF91\uFF92\uFF93\uFF94\uFF95\uFF96\uFF97\uFF98\uFF99\uFF9A\uFF9B\uFF9C\uFF9D\uFFA0\uFFA1\uFFA2\uFFA3\uFFA4\uFFA5\uFFA6\uFFA7\uFFA8\uFFA9\uFFAA\uFFAB\uFFAC\uFFAD\uFFAE\uFFAF\uFFB0\uFFB1\uFFB2\uFFB3\uFFB4\uFFB5\uFFB6\uFFB7\uFFB8\uFFB9\uFFBA\uFFBB\uFFBC\uFFBD\uFFBE\uFFC2\uFFC3\uFFC4\uFFC5\uFFC6\uFFC7\uFFCA\uFFCB\uFFCC\uFFCD\uFFCE\uFFCF\uFFD2\uFFD3\uFFD4\uFFD5\uFFD6\uFFD7\uFFDA\uFFDB\uFFDC]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\u01BB\\u01C0\\u01C1\\u01C2\\u01C3\\u0294\\u05D0\\u05D1\\u05D2\\u05D3\\u05D4\\u05D5\\u05D6\\u05D7\\u05D8\\u05D9\\u05DA\\u05DB\\u05DC\\u05DD\\u05DE\\u05DF\\u05E0\\u05E1\\u05E2\\u05E3\\u05E4\\u05E5\\u05E6\\u05E7\\u05E8\\u05E9\\u05EA\\u05F0\\u05F1\\u05F2\\u0621\\u0622\\u0623\\u0624\\u0625\\u0626\\u0627\\u0628\\u0629\\u062A\\u062B\\u062C\\u062D\\u062E\\u062F\\u0630\\u0631\\u0632\\u0633\\u0634\\u0635\\u0636\\u0637\\u0638\\u0639\\u063A\\u063B\\u063C\\u063D\\u063E\\u063F\\u0641\\u0642\\u0643\\u0644\\u0645\\u0646\\u0647\\u0648\\u0649\\u064A\\u066E\\u066F\\u0671\\u0672\\u0673\\u0674\\u0675\\u0676\\u0677\\u0678\\u0679\\u067A\\u067B\\u067C\\u067D\\u067E\\u067F\\u0680\\u0681\\u0682\\u0683\\u0684\\u0685\\u0686\\u0687\\u0688\\u0689\\u068A\\u068B\\u068C\\u068D\\u068E\\u068F\\u0690\\u0691\\u0692\\u0693\\u0694\\u0695\\u0696\\u0697\\u0698\\u0699\\u069A\\u069B\\u069C\\u069D\\u069E\\u069F\\u06A0\\u06A1\\u06A2\\u06A3\\u06A4\\u06A5\\u06A6\\u06A7\\u06A8\\u06A9\\u06AA\\u06AB\\u06AC\\u06AD\\u06AE\\u06AF\\u06B0\\u06B1\\u06B2\\u06B3\\u06B4\\u06B5\\u06B6\\u06B7\\u06B8\\u06B9\\u06BA\\u06BB\\u06BC\\u06BD\\u06BE\\u06BF\\u06C0\\u06C1\\u06C2\\u06C3\\u06C4\\u06C5\\u06C6\\u06C7\\u06C8\\u06C9\\u06CA\\u06CB\\u06CC\\u06CD\\u06CE\\u06CF\\u06D0\\u06D1\\u06D2\\u06D3\\u06D5\\u06EE\\u06EF\\u06FA\\u06FB\\u06FC\\u06FF\\u0710\\u0712\\u0713\\u0714\\u0715\\u0716\\u0717\\u0718\\u0719\\u071A\\u071B\\u071C\\u071D\\u071E\\u071F\\u0720\\u0721\\u0722\\u0723\\u0724\\u0725\\u0726\\u0727\\u0728\\u0729\\u072A\\u072B\\u072C\\u072D\\u072E\\u072F\\u074D\\u074E\\u074F\\u0750\\u0751\\u0752\\u0753\\u0754\\u0755\\u0756\\u0757\\u0758\\u0759\\u075A\\u075B\\u075C\\u075D\\u075E\\u075F\\u0760\\u0761\\u0762\\u0763\\u0764\\u0765\\u0766\\u0767\\u0768\\u0769\\u076A\\u076B\\u076C\\u076D\\u076E\\u076F\\u0770\\u0771\\u0772\\u0773\\u0774\\u0775\\u0776\\u0777\\u0778\\u0779\\u077A\\u077B\\u077C\\u077D\\u077E\\u077F\\u0780\\u0781\\u0782\\u0783\\u0784\\u0785\\u0786\\u0787\\u0788\\u0789\\u078A\\u078B\\u078C\\u078D\\u078E\\u078F\\u0790\\u0791\\u0792\\u0793\\u0794\\u0795\\u0796\\u0797\\u0798\\u0799\\u079A\\u079B\\u079C\\u079D\\u079E\\u079F\\u07A0\\u07A1\\u07A2\\u07A3\\u07A4\\u07A5\\u07B1\\u07CA\\u07CB\\u07CC\\u07CD\\u07CE\\u07CF\\u07D0\\u07D1\\u07D2\\u07D3\\u07D4\\u07D5\\u07D6\\u07D7\\u07D8\\u07D9\\u07DA\\u07DB\\u07DC\\u07DD\\u07DE\\u07DF\\u07E0\\u07E1\\u07E2\\u07E3\\u07E4\\u07E5\\u07E6\\u07E7\\u07E8\\u07E9\\u07EA\\u0904\\u0905\\u0906\\u0907\\u0908\\u0909\\u090A\\u090B\\u090C\\u090D\\u090E\\u090F\\u0910\\u0911\\u0912\\u0913\\u0914\\u0915\\u0916\\u0917\\u0918\\u0919\\u091A\\u091B\\u091C\\u091D\\u091E\\u091F\\u0920\\u0921\\u0922\\u0923\\u0924\\u0925\\u0926\\u0927\\u0928\\u0929\\u092A\\u092B\\u092C\\u092D\\u092E\\u092F\\u0930\\u0931\\u0932\\u0933\\u0934\\u0935\\u0936\\u0937\\u0938\\u0939\\u093D\\u0950\\u0958\\u0959\\u095A\\u095B\\u095C\\u095D\\u095E\\u095F\\u0960\\u0961\\u0972\\u097B\\u097C\\u097D\\u097E\\u097F\\u0985\\u0986\\u0987\\u0988\\u0989\\u098A\\u098B\\u098C\\u098F\\u0990\\u0993\\u0994\\u0995\\u0996\\u0997\\u0998\\u0999\\u099A\\u099B\\u099C\\u099D\\u099E\\u099F\\u09A0\\u09A1\\u09A2\\u09A3\\u09A4\\u09A5\\u09A6\\u09A7\\u09A8\\u09AA\\u09AB\\u09AC\\u09AD\\u09AE\\u09AF\\u09B0\\u09B2\\u09B6\\u09B7\\u09B8\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF\\u09E0\\u09E1\\u09F0\\u09F1\\u0A05\\u0A06\\u0A07\\u0A08\\u0A09\\u0A0A\\u0A0F\\u0A10\\u0A13\\u0A14\\u0A15\\u0A16\\u0A17\\u0A18\\u0A19\\u0A1A\\u0A1B\\u0A1C\\u0A1D\\u0A1E\\u0A1F\\u0A20\\u0A21\\u0A22\\u0A23\\u0A24\\u0A25\\u0A26\\u0A27\\u0A28\\u0A2A\\u0A2B\\u0A2C\\u0A2D\\u0A2E\\u0A2F\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59\\u0A5A\\u0A5B\\u0A5C\\u0A5E\\u0A72\\u0A73\\u0A74\\u0A85\\u0A86\\u0A87\\u0A88\\u0A89\\u0A8A\\u0A8B\\u0A8C\\u0A8D\\u0A8F\\u0A90\\u0A91\\u0A93\\u0A94\\u0A95\\u0A96\\u0A97\\u0A98\\u0A99\\u0A9A\\u0A9B\\u0A9C\\u0A9D\\u0A9E\\u0A9F\\u0AA0\\u0AA1\\u0AA2\\u0AA3\\u0AA4\\u0AA5\\u0AA6\\u0AA7\\u0AA8\\u0AAA\\u0AAB\\u0AAC\\u0AAD\\u0AAE\\u0AAF\\u0AB0\\u0AB2\\u0AB3\\u0AB5\\u0AB6\\u0AB7\\u0AB8\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05\\u0B06\\u0B07\\u0B08\\u0B09\\u0B0A\\u0B0B\\u0B0C\\u0B0F\\u0B10\\u0B13\\u0B14\\u0B15\\u0B16\\u0B17\\u0B18\\u0B19\\u0B1A\\u0B1B\\u0B1C\\u0B1D\\u0B1E\\u0B1F\\u0B20\\u0B21\\u0B22\\u0B23\\u0B24\\u0B25\\u0B26\\u0B27\\u0B28\\u0B2A\\u0B2B\\u0B2C\\u0B2D\\u0B2E\\u0B2F\\u0B30\\u0B32\\u0B33\\u0B35\\u0B36\\u0B37\\u0B38\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F\\u0B60\\u0B61\\u0B71\\u0B83\\u0B85\\u0B86\\u0B87\\u0B88\\u0B89\\u0B8A\\u0B8E\\u0B8F\\u0B90\\u0B92\\u0B93\\u0B94\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8\\u0BA9\\u0BAA\\u0BAE\\u0BAF\\u0BB0\\u0BB1\\u0BB2\\u0BB3\\u0BB4\\u0BB5\\u0BB6\\u0BB7\\u0BB8\\u0BB9\\u0BD0\\u0C05\\u0C06\\u0C07\\u0C08\\u0C09\\u0C0A\\u0C0B\\u0C0C\\u0C0E\\u0C0F\\u0C10\\u0C12\\u0C13\\u0C14\\u0C15\\u0C16\\u0C17\\u0C18\\u0C19\\u0C1A\\u0C1B\\u0C1C\\u0C1D\\u0C1E\\u0C1F\\u0C20\\u0C21\\u0C22\\u0C23\\u0C24\\u0C25\\u0C26\\u0C27\\u0C28\\u0C2A\\u0C2B\\u0C2C\\u0C2D\\u0C2E\\u0C2F\\u0C30\\u0C31\\u0C32\\u0C33\\u0C35\\u0C36\\u0C37\\u0C38\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85\\u0C86\\u0C87\\u0C88\\u0C89\\u0C8A\\u0C8B\\u0C8C\\u0C8E\\u0C8F\\u0C90\\u0C92\\u0C93\\u0C94\\u0C95\\u0C96\\u0C97\\u0C98\\u0C99\\u0C9A\\u0C9B\\u0C9C\\u0C9D\\u0C9E\\u0C9F\\u0CA0\\u0CA1\\u0CA2\\u0CA3\\u0CA4\\u0CA5\\u0CA6\\u0CA7\\u0CA8\\u0CAA\\u0CAB\\u0CAC\\u0CAD\\u0CAE\\u0CAF\\u0CB0\\u0CB1\\u0CB2\\u0CB3\\u0CB5\\u0CB6\\u0CB7\\u0CB8\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0D05\\u0D06\\u0D07\\u0D08\\u0D09\\u0D0A\\u0D0B\\u0D0C\\u0D0E\\u0D0F\\u0D10\\u0D12\\u0D13\\u0D14\\u0D15\\u0D16\\u0D17\\u0D18\\u0D19\\u0D1A\\u0D1B\\u0D1C\\u0D1D\\u0D1E\\u0D1F\\u0D20\\u0D21\\u0D22\\u0D23\\u0D24\\u0D25\\u0D26\\u0D27\\u0D28\\u0D2A\\u0D2B\\u0D2C\\u0D2D\\u0D2E\\u0D2F\\u0D30\\u0D31\\u0D32\\u0D33\\u0D34\\u0D35\\u0D36\\u0D37\\u0D38\\u0D39\\u0D3D\\u0D60\\u0D61\\u0D7A\\u0D7B\\u0D7C\\u0D7D\\u0D7E\\u0D7F\\u0D85\\u0D86\\u0D87\\u0D88\\u0D89\\u0D8A\\u0D8B\\u0D8C\\u0D8D\\u0D8E\\u0D8F\\u0D90\\u0D91\\u0D92\\u0D93\\u0D94\\u0D95\\u0D96\\u0D9A\\u0D9B\\u0D9C\\u0D9D\\u0D9E\\u0D9F\\u0DA0\\u0DA1\\u0DA2\\u0DA3\\u0DA4\\u0DA5\\u0DA6\\u0DA7\\u0DA8\\u0DA9\\u0DAA\\u0DAB\\u0DAC\\u0DAD\\u0DAE\\u0DAF\\u0DB0\\u0DB1\\u0DB3\\u0DB4\\u0DB5\\u0DB6\\u0DB7\\u0DB8\\u0DB9\\u0DBA\\u0DBB\\u0DBD\\u0DC0\\u0DC1\\u0DC2\\u0DC3\\u0DC4\\u0DC5\\u0DC6\\u0E01\\u0E02\\u0E03\\u0E04\\u0E05\\u0E06\\u0E07\\u0E08\\u0E09\\u0E0A\\u0E0B\\u0E0C\\u0E0D\\u0E0E\\u0E0F\\u0E10\\u0E11\\u0E12\\u0E13\\u0E14\\u0E15\\u0E16\\u0E17\\u0E18\\u0E19\\u0E1A\\u0E1B\\u0E1C\\u0E1D\\u0E1E\\u0E1F\\u0E20\\u0E21\\u0E22\\u0E23\\u0E24\\u0E25\\u0E26\\u0E27\\u0E28\\u0E29\\u0E2A\\u0E2B\\u0E2C\\u0E2D\\u0E2E\\u0E2F\\u0E30\\u0E32\\u0E33\\u0E40\\u0E41\\u0E42\\u0E43\\u0E44\\u0E45\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94\\u0E95\\u0E96\\u0E97\\u0E99\\u0E9A\\u0E9B\\u0E9C\\u0E9D\\u0E9E\\u0E9F\\u0EA1\\u0EA2\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD\\u0EAE\\u0EAF\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0\\u0EC1\\u0EC2\\u0EC3\\u0EC4\\u0EDC\\u0EDD\\u0F00\\u0F40\\u0F41\\u0F42\\u0F43\\u0F44\\u0F45\\u0F46\\u0F47\\u0F49\\u0F4A\\u0F4B\\u0F4C\\u0F4D\\u0F4E\\u0F4F\\u0F50\\u0F51\\u0F52\\u0F53\\u0F54\\u0F55\\u0F56\\u0F57\\u0F58\\u0F59\\u0F5A\\u0F5B\\u0F5C\\u0F5D\\u0F5E\\u0F5F\\u0F60\\u0F61\\u0F62\\u0F63\\u0F64\\u0F65\\u0F66\\u0F67\\u0F68\\u0F69\\u0F6A\\u0F6B\\u0F6C\\u0F88\\u0F89\\u0F8A\\u0F8B\\u1000\\u1001\\u1002\\u1003\\u1004\\u1005\\u1006\\u1007\\u1008\\u1009\\u100A\\u100B\\u100C\\u100D\\u100E\\u100F\\u1010\\u1011\\u1012\\u1013\\u1014\\u1015\\u1016\\u1017\\u1018\\u1019\\u101A\\u101B\\u101C\\u101D\\u101E\\u101F\\u1020\\u1021\\u1022\\u1023\\u1024\\u1025\\u1026\\u1027\\u1028\\u1029\\u102A\\u103F\\u1050\\u1051\\u1052\\u1053\\u1054\\u1055\\u105A\\u105B\\u105C\\u105D\\u1061\\u1065\\u1066\\u106E\\u106F\\u1070\\u1075\\u1076\\u1077\\u1078\\u1079\\u107A\\u107B\\u107C\\u107D\\u107E\\u107F\\u1080\\u1081\\u108E\\u10D0\\u10D1\\u10D2\\u10D3\\u10D4\\u10D5\\u10D6\\u10D7\\u10D8\\u10D9\\u10DA\\u10DB\\u10DC\\u10DD\\u10DE\\u10DF\\u10E0\\u10E1\\u10E2\\u10E3\\u10E4\\u10E5\\u10E6\\u10E7\\u10E8\\u10E9\\u10EA\\u10EB\\u10EC\\u10ED\\u10EE\\u10EF\\u10F0\\u10F1\\u10F2\\u10F3\\u10F4\\u10F5\\u10F6\\u10F7\\u10F8\\u10F9\\u10FA\\u1100\\u1101\\u1102\\u1103\\u1104\\u1105\\u1106\\u1107\\u1108\\u1109\\u110A\\u110B\\u110C\\u110D\\u110E\\u110F\\u1110\\u1111\\u1112\\u1113\\u1114\\u1115\\u1116\\u1117\\u1118\\u1119\\u111A\\u111B\\u111C\\u111D\\u111E\\u111F\\u1120\\u1121\\u1122\\u1123\\u1124\\u1125\\u1126\\u1127\\u1128\\u1129\\u112A\\u112B\\u112C\\u112D\\u112E\\u112F\\u1130\\u1131\\u1132\\u1133\\u1134\\u1135\\u1136\\u1137\\u1138\\u1139\\u113A\\u113B\\u113C\\u113D\\u113E\\u113F\\u1140\\u1141\\u1142\\u1143\\u1144\\u1145\\u1146\\u1147\\u1148\\u1149\\u114A\\u114B\\u114C\\u114D\\u114E\\u114F\\u1150\\u1151\\u1152\\u1153\\u1154\\u1155\\u1156\\u1157\\u1158\\u1159\\u115F\\u1160\\u1161\\u1162\\u1163\\u1164\\u1165\\u1166\\u1167\\u1168\\u1169\\u116A\\u116B\\u116C\\u116D\\u116E\\u116F\\u1170\\u1171\\u1172\\u1173\\u1174\\u1175\\u1176\\u1177\\u1178\\u1179\\u117A\\u117B\\u117C\\u117D\\u117E\\u117F\\u1180\\u1181\\u1182\\u1183\\u1184\\u1185\\u1186\\u1187\\u1188\\u1189\\u118A\\u118B\\u118C\\u118D\\u118E\\u118F\\u1190\\u1191\\u1192\\u1193\\u1194\\u1195\\u1196\\u1197\\u1198\\u1199\\u119A\\u119B\\u119C\\u119D\\u119E\\u119F\\u11A0\\u11A1\\u11A2\\u11A8\\u11A9\\u11AA\\u11AB\\u11AC\\u11AD\\u11AE\\u11AF\\u11B0\\u11B1\\u11B2\\u11B3\\u11B4\\u11B5\\u11B6\\u11B7\\u11B8\\u11B9\\u11BA\\u11BB\\u11BC\\u11BD\\u11BE\\u11BF\\u11C0\\u11C1\\u11C2\\u11C3\\u11C4\\u11C5\\u11C6\\u11C7\\u11C8\\u11C9\\u11CA\\u11CB\\u11CC\\u11CD\\u11CE\\u11CF\\u11D0\\u11D1\\u11D2\\u11D3\\u11D4\\u11D5\\u11D6\\u11D7\\u11D8\\u11D9\\u11DA\\u11DB\\u11DC\\u11DD\\u11DE\\u11DF\\u11E0\\u11E1\\u11E2\\u11E3\\u11E4\\u11E5\\u11E6\\u11E7\\u11E8\\u11E9\\u11EA\\u11EB\\u11EC\\u11ED\\u11EE\\u11EF\\u11F0\\u11F1\\u11F2\\u11F3\\u11F4\\u11F5\\u11F6\\u11F7\\u11F8\\u11F9\\u1200\\u1201\\u1202\\u1203\\u1204\\u1205\\u1206\\u1207\\u1208\\u1209\\u120A\\u120B\\u120C\\u120D\\u120E\\u120F\\u1210\\u1211\\u1212\\u1213\\u1214\\u1215\\u1216\\u1217\\u1218\\u1219\\u121A\\u121B\\u121C\\u121D\\u121E\\u121F\\u1220\\u1221\\u1222\\u1223\\u1224\\u1225\\u1226\\u1227\\u1228\\u1229\\u122A\\u122B\\u122C\\u122D\\u122E\\u122F\\u1230\\u1231\\u1232\\u1233\\u1234\\u1235\\u1236\\u1237\\u1238\\u1239\\u123A\\u123B\\u123C\\u123D\\u123E\\u123F\\u1240\\u1241\\u1242\\u1243\\u1244\\u1245\\u1246\\u1247\\u1248\\u124A\\u124B\\u124C\\u124D\\u1250\\u1251\\u1252\\u1253\\u1254\\u1255\\u1256\\u1258\\u125A\\u125B\\u125C\\u125D\\u1260\\u1261\\u1262\\u1263\\u1264\\u1265\\u1266\\u1267\\u1268\\u1269\\u126A\\u126B\\u126C\\u126D\\u126E\\u126F\\u1270\\u1271\\u1272\\u1273\\u1274\\u1275\\u1276\\u1277\\u1278\\u1279\\u127A\\u127B\\u127C\\u127D\\u127E\\u127F\\u1280\\u1281\\u1282\\u1283\\u1284\\u1285\\u1286\\u1287\\u1288\\u128A\\u128B\\u128C\\u128D\\u1290\\u1291\\u1292\\u1293\\u1294\\u1295\\u1296\\u1297\\u1298\\u1299\\u129A\\u129B\\u129C\\u129D\\u129E\\u129F\\u12A0\\u12A1\\u12A2\\u12A3\\u12A4\\u12A5\\u12A6\\u12A7\\u12A8\\u12A9\\u12AA\\u12AB\\u12AC\\u12AD\\u12AE\\u12AF\\u12B0\\u12B2\\u12B3\\u12B4\\u12B5\\u12B8\\u12B9\\u12BA\\u12BB\\u12BC\\u12BD\\u12BE\\u12C0\\u12C2\\u12C3\\u12C4\\u12C5\\u12C8\\u12C9\\u12CA\\u12CB\\u12CC\\u12CD\\u12CE\\u12CF\\u12D0\\u12D1\\u12D2\\u12D3\\u12D4\\u12D5\\u12D6\\u12D8\\u12D9\\u12DA\\u12DB\\u12DC\\u12DD\\u12DE\\u12DF\\u12E0\\u12E1\\u12E2\\u12E3\\u12E4\\u12E5\\u12E6\\u12E7\\u12E8\\u12E9\\u12EA\\u12EB\\u12EC\\u12ED\\u12EE\\u12EF\\u12F0\\u12F1\\u12F2\\u12F3\\u12F4\\u12F5\\u12F6\\u12F7\\u12F8\\u12F9\\u12FA\\u12FB\\u12FC\\u12FD\\u12FE\\u12FF\\u1300\\u1301\\u1302\\u1303\\u1304\\u1305\\u1306\\u1307\\u1308\\u1309\\u130A\\u130B\\u130C\\u130D\\u130E\\u130F\\u1310\\u1312\\u1313\\u1314\\u1315\\u1318\\u1319\\u131A\\u131B\\u131C\\u131D\\u131E\\u131F\\u1320\\u1321\\u1322\\u1323\\u1324\\u1325\\u1326\\u1327\\u1328\\u1329\\u132A\\u132B\\u132C\\u132D\\u132E\\u132F\\u1330\\u1331\\u1332\\u1333\\u1334\\u1335\\u1336\\u1337\\u1338\\u1339\\u133A\\u133B\\u133C\\u133D\\u133E\\u133F\\u1340\\u1341\\u1342\\u1343\\u1344\\u1345\\u1346\\u1347\\u1348\\u1349\\u134A\\u134B\\u134C\\u134D\\u134E\\u134F\\u1350\\u1351\\u1352\\u1353\\u1354\\u1355\\u1356\\u1357\\u1358\\u1359\\u135A\\u1380\\u1381\\u1382\\u1383\\u1384\\u1385\\u1386\\u1387\\u1388\\u1389\\u138A\\u138B\\u138C\\u138D\\u138E\\u138F\\u13A0\\u13A1\\u13A2\\u13A3\\u13A4\\u13A5\\u13A6\\u13A7\\u13A8\\u13A9\\u13AA\\u13AB\\u13AC\\u13AD\\u13AE\\u13AF\\u13B0\\u13B1\\u13B2\\u13B3\\u13B4\\u13B5\\u13B6\\u13B7\\u13B8\\u13B9\\u13BA\\u13BB\\u13BC\\u13BD\\u13BE\\u13BF\\u13C0\\u13C1\\u13C2\\u13C3\\u13C4\\u13C5\\u13C6\\u13C7\\u13C8\\u13C9\\u13CA\\u13CB\\u13CC\\u13CD\\u13CE\\u13CF\\u13D0\\u13D1\\u13D2\\u13D3\\u13D4\\u13D5\\u13D6\\u13D7\\u13D8\\u13D9\\u13DA\\u13DB\\u13DC\\u13DD\\u13DE\\u13DF\\u13E0\\u13E1\\u13E2\\u13E3\\u13E4\\u13E5\\u13E6\\u13E7\\u13E8\\u13E9\\u13EA\\u13EB\\u13EC\\u13ED\\u13EE\\u13EF\\u13F0\\u13F1\\u13F2\\u13F3\\u13F4\\u1401\\u1402\\u1403\\u1404\\u1405\\u1406\\u1407\\u1408\\u1409\\u140A\\u140B\\u140C\\u140D\\u140E\\u140F\\u1410\\u1411\\u1412\\u1413\\u1414\\u1415\\u1416\\u1417\\u1418\\u1419\\u141A\\u141B\\u141C\\u141D\\u141E\\u141F\\u1420\\u1421\\u1422\\u1423\\u1424\\u1425\\u1426\\u1427\\u1428\\u1429\\u142A\\u142B\\u142C\\u142D\\u142E\\u142F\\u1430\\u1431\\u1432\\u1433\\u1434\\u1435\\u1436\\u1437\\u1438\\u1439\\u143A\\u143B\\u143C\\u143D\\u143E\\u143F\\u1440\\u1441\\u1442\\u1443\\u1444\\u1445\\u1446\\u1447\\u1448\\u1449\\u144A\\u144B\\u144C\\u144D\\u144E\\u144F\\u1450\\u1451\\u1452\\u1453\\u1454\\u1455\\u1456\\u1457\\u1458\\u1459\\u145A\\u145B\\u145C\\u145D\\u145E\\u145F\\u1460\\u1461\\u1462\\u1463\\u1464\\u1465\\u1466\\u1467\\u1468\\u1469\\u146A\\u146B\\u146C\\u146D\\u146E\\u146F\\u1470\\u1471\\u1472\\u1473\\u1474\\u1475\\u1476\\u1477\\u1478\\u1479\\u147A\\u147B\\u147C\\u147D\\u147E\\u147F\\u1480\\u1481\\u1482\\u1483\\u1484\\u1485\\u1486\\u1487\\u1488\\u1489\\u148A\\u148B\\u148C\\u148D\\u148E\\u148F\\u1490\\u1491\\u1492\\u1493\\u1494\\u1495\\u1496\\u1497\\u1498\\u1499\\u149A\\u149B\\u149C\\u149D\\u149E\\u149F\\u14A0\\u14A1\\u14A2\\u14A3\\u14A4\\u14A5\\u14A6\\u14A7\\u14A8\\u14A9\\u14AA\\u14AB\\u14AC\\u14AD\\u14AE\\u14AF\\u14B0\\u14B1\\u14B2\\u14B3\\u14B4\\u14B5\\u14B6\\u14B7\\u14B8\\u14B9\\u14BA\\u14BB\\u14BC\\u14BD\\u14BE\\u14BF\\u14C0\\u14C1\\u14C2\\u14C3\\u14C4\\u14C5\\u14C6\\u14C7\\u14C8\\u14C9\\u14CA\\u14CB\\u14CC\\u14CD\\u14CE\\u14CF\\u14D0\\u14D1\\u14D2\\u14D3\\u14D4\\u14D5\\u14D6\\u14D7\\u14D8\\u14D9\\u14DA\\u14DB\\u14DC\\u14DD\\u14DE\\u14DF\\u14E0\\u14E1\\u14E2\\u14E3\\u14E4\\u14E5\\u14E6\\u14E7\\u14E8\\u14E9\\u14EA\\u14EB\\u14EC\\u14ED\\u14EE\\u14EF\\u14F0\\u14F1\\u14F2\\u14F3\\u14F4\\u14F5\\u14F6\\u14F7\\u14F8\\u14F9\\u14FA\\u14FB\\u14FC\\u14FD\\u14FE\\u14FF\\u1500\\u1501\\u1502\\u1503\\u1504\\u1505\\u1506\\u1507\\u1508\\u1509\\u150A\\u150B\\u150C\\u150D\\u150E\\u150F\\u1510\\u1511\\u1512\\u1513\\u1514\\u1515\\u1516\\u1517\\u1518\\u1519\\u151A\\u151B\\u151C\\u151D\\u151E\\u151F\\u1520\\u1521\\u1522\\u1523\\u1524\\u1525\\u1526\\u1527\\u1528\\u1529\\u152A\\u152B\\u152C\\u152D\\u152E\\u152F\\u1530\\u1531\\u1532\\u1533\\u1534\\u1535\\u1536\\u1537\\u1538\\u1539\\u153A\\u153B\\u153C\\u153D\\u153E\\u153F\\u1540\\u1541\\u1542\\u1543\\u1544\\u1545\\u1546\\u1547\\u1548\\u1549\\u154A\\u154B\\u154C\\u154D\\u154E\\u154F\\u1550\\u1551\\u1552\\u1553\\u1554\\u1555\\u1556\\u1557\\u1558\\u1559\\u155A\\u155B\\u155C\\u155D\\u155E\\u155F\\u1560\\u1561\\u1562\\u1563\\u1564\\u1565\\u1566\\u1567\\u1568\\u1569\\u156A\\u156B\\u156C\\u156D\\u156E\\u156F\\u1570\\u1571\\u1572\\u1573\\u1574\\u1575\\u1576\\u1577\\u1578\\u1579\\u157A\\u157B\\u157C\\u157D\\u157E\\u157F\\u1580\\u1581\\u1582\\u1583\\u1584\\u1585\\u1586\\u1587\\u1588\\u1589\\u158A\\u158B\\u158C\\u158D\\u158E\\u158F\\u1590\\u1591\\u1592\\u1593\\u1594\\u1595\\u1596\\u1597\\u1598\\u1599\\u159A\\u159B\\u159C\\u159D\\u159E\\u159F\\u15A0\\u15A1\\u15A2\\u15A3\\u15A4\\u15A5\\u15A6\\u15A7\\u15A8\\u15A9\\u15AA\\u15AB\\u15AC\\u15AD\\u15AE\\u15AF\\u15B0\\u15B1\\u15B2\\u15B3\\u15B4\\u15B5\\u15B6\\u15B7\\u15B8\\u15B9\\u15BA\\u15BB\\u15BC\\u15BD\\u15BE\\u15BF\\u15C0\\u15C1\\u15C2\\u15C3\\u15C4\\u15C5\\u15C6\\u15C7\\u15C8\\u15C9\\u15CA\\u15CB\\u15CC\\u15CD\\u15CE\\u15CF\\u15D0\\u15D1\\u15D2\\u15D3\\u15D4\\u15D5\\u15D6\\u15D7\\u15D8\\u15D9\\u15DA\\u15DB\\u15DC\\u15DD\\u15DE\\u15DF\\u15E0\\u15E1\\u15E2\\u15E3\\u15E4\\u15E5\\u15E6\\u15E7\\u15E8\\u15E9\\u15EA\\u15EB\\u15EC\\u15ED\\u15EE\\u15EF\\u15F0\\u15F1\\u15F2\\u15F3\\u15F4\\u15F5\\u15F6\\u15F7\\u15F8\\u15F9\\u15FA\\u15FB\\u15FC\\u15FD\\u15FE\\u15FF\\u1600\\u1601\\u1602\\u1603\\u1604\\u1605\\u1606\\u1607\\u1608\\u1609\\u160A\\u160B\\u160C\\u160D\\u160E\\u160F\\u1610\\u1611\\u1612\\u1613\\u1614\\u1615\\u1616\\u1617\\u1618\\u1619\\u161A\\u161B\\u161C\\u161D\\u161E\\u161F\\u1620\\u1621\\u1622\\u1623\\u1624\\u1625\\u1626\\u1627\\u1628\\u1629\\u162A\\u162B\\u162C\\u162D\\u162E\\u162F\\u1630\\u1631\\u1632\\u1633\\u1634\\u1635\\u1636\\u1637\\u1638\\u1639\\u163A\\u163B\\u163C\\u163D\\u163E\\u163F\\u1640\\u1641\\u1642\\u1643\\u1644\\u1645\\u1646\\u1647\\u1648\\u1649\\u164A\\u164B\\u164C\\u164D\\u164E\\u164F\\u1650\\u1651\\u1652\\u1653\\u1654\\u1655\\u1656\\u1657\\u1658\\u1659\\u165A\\u165B\\u165C\\u165D\\u165E\\u165F\\u1660\\u1661\\u1662\\u1663\\u1664\\u1665\\u1666\\u1667\\u1668\\u1669\\u166A\\u166B\\u166C\\u166F\\u1670\\u1671\\u1672\\u1673\\u1674\\u1675\\u1676\\u1681\\u1682\\u1683\\u1684\\u1685\\u1686\\u1687\\u1688\\u1689\\u168A\\u168B\\u168C\\u168D\\u168E\\u168F\\u1690\\u1691\\u1692\\u1693\\u1694\\u1695\\u1696\\u1697\\u1698\\u1699\\u169A\\u16A0\\u16A1\\u16A2\\u16A3\\u16A4\\u16A5\\u16A6\\u16A7\\u16A8\\u16A9\\u16AA\\u16AB\\u16AC\\u16AD\\u16AE\\u16AF\\u16B0\\u16B1\\u16B2\\u16B3\\u16B4\\u16B5\\u16B6\\u16B7\\u16B8\\u16B9\\u16BA\\u16BB\\u16BC\\u16BD\\u16BE\\u16BF\\u16C0\\u16C1\\u16C2\\u16C3\\u16C4\\u16C5\\u16C6\\u16C7\\u16C8\\u16C9\\u16CA\\u16CB\\u16CC\\u16CD\\u16CE\\u16CF\\u16D0\\u16D1\\u16D2\\u16D3\\u16D4\\u16D5\\u16D6\\u16D7\\u16D8\\u16D9\\u16DA\\u16DB\\u16DC\\u16DD\\u16DE\\u16DF\\u16E0\\u16E1\\u16E2\\u16E3\\u16E4\\u16E5\\u16E6\\u16E7\\u16E8\\u16E9\\u16EA\\u1700\\u1701\\u1702\\u1703\\u1704\\u1705\\u1706\\u1707\\u1708\\u1709\\u170A\\u170B\\u170C\\u170E\\u170F\\u1710\\u1711\\u1720\\u1721\\u1722\\u1723\\u1724\\u1725\\u1726\\u1727\\u1728\\u1729\\u172A\\u172B\\u172C\\u172D\\u172E\\u172F\\u1730\\u1731\\u1740\\u1741\\u1742\\u1743\\u1744\\u1745\\u1746\\u1747\\u1748\\u1749\\u174A\\u174B\\u174C\\u174D\\u174E\\u174F\\u1750\\u1751\\u1760\\u1761\\u1762\\u1763\\u1764\\u1765\\u1766\\u1767\\u1768\\u1769\\u176A\\u176B\\u176C\\u176E\\u176F\\u1770\\u1780\\u1781\\u1782\\u1783\\u1784\\u1785\\u1786\\u1787\\u1788\\u1789\\u178A\\u178B\\u178C\\u178D\\u178E\\u178F\\u1790\\u1791\\u1792\\u1793\\u1794\\u1795\\u1796\\u1797\\u1798\\u1799\\u179A\\u179B\\u179C\\u179D\\u179E\\u179F\\u17A0\\u17A1\\u17A2\\u17A3\\u17A4\\u17A5\\u17A6\\u17A7\\u17A8\\u17A9\\u17AA\\u17AB\\u17AC\\u17AD\\u17AE\\u17AF\\u17B0\\u17B1\\u17B2\\u17B3\\u17DC\\u1820\\u1821\\u1822\\u1823\\u1824\\u1825\\u1826\\u1827\\u1828\\u1829\\u182A\\u182B\\u182C\\u182D\\u182E\\u182F\\u1830\\u1831\\u1832\\u1833\\u1834\\u1835\\u1836\\u1837\\u1838\\u1839\\u183A\\u183B\\u183C\\u183D\\u183E\\u183F\\u1840\\u1841\\u1842\\u1844\\u1845\\u1846\\u1847\\u1848\\u1849\\u184A\\u184B\\u184C\\u184D\\u184E\\u184F\\u1850\\u1851\\u1852\\u1853\\u1854\\u1855\\u1856\\u1857\\u1858\\u1859\\u185A\\u185B\\u185C\\u185D\\u185E\\u185F\\u1860\\u1861\\u1862\\u1863\\u1864\\u1865\\u1866\\u1867\\u1868\\u1869\\u186A\\u186B\\u186C\\u186D\\u186E\\u186F\\u1870\\u1871\\u1872\\u1873\\u1874\\u1875\\u1876\\u1877\\u1880\\u1881\\u1882\\u1883\\u1884\\u1885\\u1886\\u1887\\u1888\\u1889\\u188A\\u188B\\u188C\\u188D\\u188E\\u188F\\u1890\\u1891\\u1892\\u1893\\u1894\\u1895\\u1896\\u1897\\u1898\\u1899\\u189A\\u189B\\u189C\\u189D\\u189E\\u189F\\u18A0\\u18A1\\u18A2\\u18A3\\u18A4\\u18A5\\u18A6\\u18A7\\u18A8\\u18AA\\u1900\\u1901\\u1902\\u1903\\u1904\\u1905\\u1906\\u1907\\u1908\\u1909\\u190A\\u190B\\u190C\\u190D\\u190E\\u190F\\u1910\\u1911\\u1912\\u1913\\u1914\\u1915\\u1916\\u1917\\u1918\\u1919\\u191A\\u191B\\u191C\\u1950\\u1951\\u1952\\u1953\\u1954\\u1955\\u1956\\u1957\\u1958\\u1959\\u195A\\u195B\\u195C\\u195D\\u195E\\u195F\\u1960\\u1961\\u1962\\u1963\\u1964\\u1965\\u1966\\u1967\\u1968\\u1969\\u196A\\u196B\\u196C\\u196D\\u1970\\u1971\\u1972\\u1973\\u1974\\u1980\\u1981\\u1982\\u1983\\u1984\\u1985\\u1986\\u1987\\u1988\\u1989\\u198A\\u198B\\u198C\\u198D\\u198E\\u198F\\u1990\\u1991\\u1992\\u1993\\u1994\\u1995\\u1996\\u1997\\u1998\\u1999\\u199A\\u199B\\u199C\\u199D\\u199E\\u199F\\u19A0\\u19A1\\u19A2\\u19A3\\u19A4\\u19A5\\u19A6\\u19A7\\u19A8\\u19A9\\u19C1\\u19C2\\u19C3\\u19C4\\u19C5\\u19C6\\u19C7\\u1A00\\u1A01\\u1A02\\u1A03\\u1A04\\u1A05\\u1A06\\u1A07\\u1A08\\u1A09\\u1A0A\\u1A0B\\u1A0C\\u1A0D\\u1A0E\\u1A0F\\u1A10\\u1A11\\u1A12\\u1A13\\u1A14\\u1A15\\u1A16\\u1B05\\u1B06\\u1B07\\u1B08\\u1B09\\u1B0A\\u1B0B\\u1B0C\\u1B0D\\u1B0E\\u1B0F\\u1B10\\u1B11\\u1B12\\u1B13\\u1B14\\u1B15\\u1B16\\u1B17\\u1B18\\u1B19\\u1B1A\\u1B1B\\u1B1C\\u1B1D\\u1B1E\\u1B1F\\u1B20\\u1B21\\u1B22\\u1B23\\u1B24\\u1B25\\u1B26\\u1B27\\u1B28\\u1B29\\u1B2A\\u1B2B\\u1B2C\\u1B2D\\u1B2E\\u1B2F\\u1B30\\u1B31\\u1B32\\u1B33\\u1B45\\u1B46\\u1B47\\u1B48\\u1B49\\u1B4A\\u1B4B\\u1B83\\u1B84\\u1B85\\u1B86\\u1B87\\u1B88\\u1B89\\u1B8A\\u1B8B\\u1B8C\\u1B8D\\u1B8E\\u1B8F\\u1B90\\u1B91\\u1B92\\u1B93\\u1B94\\u1B95\\u1B96\\u1B97\\u1B98\\u1B99\\u1B9A\\u1B9B\\u1B9C\\u1B9D\\u1B9E\\u1B9F\\u1BA0\\u1BAE\\u1BAF\\u1C00\\u1C01\\u1C02\\u1C03\\u1C04\\u1C05\\u1C06\\u1C07\\u1C08\\u1C09\\u1C0A\\u1C0B\\u1C0C\\u1C0D\\u1C0E\\u1C0F\\u1C10\\u1C11\\u1C12\\u1C13\\u1C14\\u1C15\\u1C16\\u1C17\\u1C18\\u1C19\\u1C1A\\u1C1B\\u1C1C\\u1C1D\\u1C1E\\u1C1F\\u1C20\\u1C21\\u1C22\\u1C23\\u1C4D\\u1C4E\\u1C4F\\u1C5A\\u1C5B\\u1C5C\\u1C5D\\u1C5E\\u1C5F\\u1C60\\u1C61\\u1C62\\u1C63\\u1C64\\u1C65\\u1C66\\u1C67\\u1C68\\u1C69\\u1C6A\\u1C6B\\u1C6C\\u1C6D\\u1C6E\\u1C6F\\u1C70\\u1C71\\u1C72\\u1C73\\u1C74\\u1C75\\u1C76\\u1C77\\u2135\\u2136\\u2137\\u2138\\u2D30\\u2D31\\u2D32\\u2D33\\u2D34\\u2D35\\u2D36\\u2D37\\u2D38\\u2D39\\u2D3A\\u2D3B\\u2D3C\\u2D3D\\u2D3E\\u2D3F\\u2D40\\u2D41\\u2D42\\u2D43\\u2D44\\u2D45\\u2D46\\u2D47\\u2D48\\u2D49\\u2D4A\\u2D4B\\u2D4C\\u2D4D\\u2D4E\\u2D4F\\u2D50\\u2D51\\u2D52\\u2D53\\u2D54\\u2D55\\u2D56\\u2D57\\u2D58\\u2D59\\u2D5A\\u2D5B\\u2D5C\\u2D5D\\u2D5E\\u2D5F\\u2D60\\u2D61\\u2D62\\u2D63\\u2D64\\u2D65\\u2D80\\u2D81\\u2D82\\u2D83\\u2D84\\u2D85\\u2D86\\u2D87\\u2D88\\u2D89\\u2D8A\\u2D8B\\u2D8C\\u2D8D\\u2D8E\\u2D8F\\u2D90\\u2D91\\u2D92\\u2D93\\u2D94\\u2D95\\u2D96\\u2DA0\\u2DA1\\u2DA2\\u2DA3\\u2DA4\\u2DA5\\u2DA6\\u2DA8\\u2DA9\\u2DAA\\u2DAB\\u2DAC\\u2DAD\\u2DAE\\u2DB0\\u2DB1\\u2DB2\\u2DB3\\u2DB4\\u2DB5\\u2DB6\\u2DB8\\u2DB9\\u2DBA\\u2DBB\\u2DBC\\u2DBD\\u2DBE\\u2DC0\\u2DC1\\u2DC2\\u2DC3\\u2DC4\\u2DC5\\u2DC6\\u2DC8\\u2DC9\\u2DCA\\u2DCB\\u2DCC\\u2DCD\\u2DCE\\u2DD0\\u2DD1\\u2DD2\\u2DD3\\u2DD4\\u2DD5\\u2DD6\\u2DD8\\u2DD9\\u2DDA\\u2DDB\\u2DDC\\u2DDD\\u2DDE\\u3006\\u303C\\u3041\\u3042\\u3043\\u3044\\u3045\\u3046\\u3047\\u3048\\u3049\\u304A\\u304B\\u304C\\u304D\\u304E\\u304F\\u3050\\u3051\\u3052\\u3053\\u3054\\u3055\\u3056\\u3057\\u3058\\u3059\\u305A\\u305B\\u305C\\u305D\\u305E\\u305F\\u3060\\u3061\\u3062\\u3063\\u3064\\u3065\\u3066\\u3067\\u3068\\u3069\\u306A\\u306B\\u306C\\u306D\\u306E\\u306F\\u3070\\u3071\\u3072\\u3073\\u3074\\u3075\\u3076\\u3077\\u3078\\u3079\\u307A\\u307B\\u307C\\u307D\\u307E\\u307F\\u3080\\u3081\\u3082\\u3083\\u3084\\u3085\\u3086\\u3087\\u3088\\u3089\\u308A\\u308B\\u308C\\u308D\\u308E\\u308F\\u3090\\u3091\\u3092\\u3093\\u3094\\u3095\\u3096\\u309F\\u30A1\\u30A2\\u30A3\\u30A4\\u30A5\\u30A6\\u30A7\\u30A8\\u30A9\\u30AA\\u30AB\\u30AC\\u30AD\\u30AE\\u30AF\\u30B0\\u30B1\\u30B2\\u30B3\\u30B4\\u30B5\\u30B6\\u30B7\\u30B8\\u30B9\\u30BA\\u30BB\\u30BC\\u30BD\\u30BE\\u30BF\\u30C0\\u30C1\\u30C2\\u30C3\\u30C4\\u30C5\\u30C6\\u30C7\\u30C8\\u30C9\\u30CA\\u30CB\\u30CC\\u30CD\\u30CE\\u30CF\\u30D0\\u30D1\\u30D2\\u30D3\\u30D4\\u30D5\\u30D6\\u30D7\\u30D8\\u30D9\\u30DA\\u30DB\\u30DC\\u30DD\\u30DE\\u30DF\\u30E0\\u30E1\\u30E2\\u30E3\\u30E4\\u30E5\\u30E6\\u30E7\\u30E8\\u30E9\\u30EA\\u30EB\\u30EC\\u30ED\\u30EE\\u30EF\\u30F0\\u30F1\\u30F2\\u30F3\\u30F4\\u30F5\\u30F6\\u30F7\\u30F8\\u30F9\\u30FA\\u30FF\\u3105\\u3106\\u3107\\u3108\\u3109\\u310A\\u310B\\u310C\\u310D\\u310E\\u310F\\u3110\\u3111\\u3112\\u3113\\u3114\\u3115\\u3116\\u3117\\u3118\\u3119\\u311A\\u311B\\u311C\\u311D\\u311E\\u311F\\u3120\\u3121\\u3122\\u3123\\u3124\\u3125\\u3126\\u3127\\u3128\\u3129\\u312A\\u312B\\u312C\\u312D\\u3131\\u3132\\u3133\\u3134\\u3135\\u3136\\u3137\\u3138\\u3139\\u313A\\u313B\\u313C\\u313D\\u313E\\u313F\\u3140\\u3141\\u3142\\u3143\\u3144\\u3145\\u3146\\u3147\\u3148\\u3149\\u314A\\u314B\\u314C\\u314D\\u314E\\u314F\\u3150\\u3151\\u3152\\u3153\\u3154\\u3155\\u3156\\u3157\\u3158\\u3159\\u315A\\u315B\\u315C\\u315D\\u315E\\u315F\\u3160\\u3161\\u3162\\u3163\\u3164\\u3165\\u3166\\u3167\\u3168\\u3169\\u316A\\u316B\\u316C\\u316D\\u316E\\u316F\\u3170\\u3171\\u3172\\u3173\\u3174\\u3175\\u3176\\u3177\\u3178\\u3179\\u317A\\u317B\\u317C\\u317D\\u317E\\u317F\\u3180\\u3181\\u3182\\u3183\\u3184\\u3185\\u3186\\u3187\\u3188\\u3189\\u318A\\u318B\\u318C\\u318D\\u318E\\u31A0\\u31A1\\u31A2\\u31A3\\u31A4\\u31A5\\u31A6\\u31A7\\u31A8\\u31A9\\u31AA\\u31AB\\u31AC\\u31AD\\u31AE\\u31AF\\u31B0\\u31B1\\u31B2\\u31B3\\u31B4\\u31B5\\u31B6\\u31B7\\u31F0\\u31F1\\u31F2\\u31F3\\u31F4\\u31F5\\u31F6\\u31F7\\u31F8\\u31F9\\u31FA\\u31FB\\u31FC\\u31FD\\u31FE\\u31FF\\u3400\\u4DB5\\u4E00\\u9FC3\\uA000\\uA001\\uA002\\uA003\\uA004\\uA005\\uA006\\uA007\\uA008\\uA009\\uA00A\\uA00B\\uA00C\\uA00D\\uA00E\\uA00F\\uA010\\uA011\\uA012\\uA013\\uA014\\uA016\\uA017\\uA018\\uA019\\uA01A\\uA01B\\uA01C\\uA01D\\uA01E\\uA01F\\uA020\\uA021\\uA022\\uA023\\uA024\\uA025\\uA026\\uA027\\uA028\\uA029\\uA02A\\uA02B\\uA02C\\uA02D\\uA02E\\uA02F\\uA030\\uA031\\uA032\\uA033\\uA034\\uA035\\uA036\\uA037\\uA038\\uA039\\uA03A\\uA03B\\uA03C\\uA03D\\uA03E\\uA03F\\uA040\\uA041\\uA042\\uA043\\uA044\\uA045\\uA046\\uA047\\uA048\\uA049\\uA04A\\uA04B\\uA04C\\uA04D\\uA04E\\uA04F\\uA050\\uA051\\uA052\\uA053\\uA054\\uA055\\uA056\\uA057\\uA058\\uA059\\uA05A\\uA05B\\uA05C\\uA05D\\uA05E\\uA05F\\uA060\\uA061\\uA062\\uA063\\uA064\\uA065\\uA066\\uA067\\uA068\\uA069\\uA06A\\uA06B\\uA06C\\uA06D\\uA06E\\uA06F\\uA070\\uA071\\uA072\\uA073\\uA074\\uA075\\uA076\\uA077\\uA078\\uA079\\uA07A\\uA07B\\uA07C\\uA07D\\uA07E\\uA07F\\uA080\\uA081\\uA082\\uA083\\uA084\\uA085\\uA086\\uA087\\uA088\\uA089\\uA08A\\uA08B\\uA08C\\uA08D\\uA08E\\uA08F\\uA090\\uA091\\uA092\\uA093\\uA094\\uA095\\uA096\\uA097\\uA098\\uA099\\uA09A\\uA09B\\uA09C\\uA09D\\uA09E\\uA09F\\uA0A0\\uA0A1\\uA0A2\\uA0A3\\uA0A4\\uA0A5\\uA0A6\\uA0A7\\uA0A8\\uA0A9\\uA0AA\\uA0AB\\uA0AC\\uA0AD\\uA0AE\\uA0AF\\uA0B0\\uA0B1\\uA0B2\\uA0B3\\uA0B4\\uA0B5\\uA0B6\\uA0B7\\uA0B8\\uA0B9\\uA0BA\\uA0BB\\uA0BC\\uA0BD\\uA0BE\\uA0BF\\uA0C0\\uA0C1\\uA0C2\\uA0C3\\uA0C4\\uA0C5\\uA0C6\\uA0C7\\uA0C8\\uA0C9\\uA0CA\\uA0CB\\uA0CC\\uA0CD\\uA0CE\\uA0CF\\uA0D0\\uA0D1\\uA0D2\\uA0D3\\uA0D4\\uA0D5\\uA0D6\\uA0D7\\uA0D8\\uA0D9\\uA0DA\\uA0DB\\uA0DC\\uA0DD\\uA0DE\\uA0DF\\uA0E0\\uA0E1\\uA0E2\\uA0E3\\uA0E4\\uA0E5\\uA0E6\\uA0E7\\uA0E8\\uA0E9\\uA0EA\\uA0EB\\uA0EC\\uA0ED\\uA0EE\\uA0EF\\uA0F0\\uA0F1\\uA0F2\\uA0F3\\uA0F4\\uA0F5\\uA0F6\\uA0F7\\uA0F8\\uA0F9\\uA0FA\\uA0FB\\uA0FC\\uA0FD\\uA0FE\\uA0FF\\uA100\\uA101\\uA102\\uA103\\uA104\\uA105\\uA106\\uA107\\uA108\\uA109\\uA10A\\uA10B\\uA10C\\uA10D\\uA10E\\uA10F\\uA110\\uA111\\uA112\\uA113\\uA114\\uA115\\uA116\\uA117\\uA118\\uA119\\uA11A\\uA11B\\uA11C\\uA11D\\uA11E\\uA11F\\uA120\\uA121\\uA122\\uA123\\uA124\\uA125\\uA126\\uA127\\uA128\\uA129\\uA12A\\uA12B\\uA12C\\uA12D\\uA12E\\uA12F\\uA130\\uA131\\uA132\\uA133\\uA134\\uA135\\uA136\\uA137\\uA138\\uA139\\uA13A\\uA13B\\uA13C\\uA13D\\uA13E\\uA13F\\uA140\\uA141\\uA142\\uA143\\uA144\\uA145\\uA146\\uA147\\uA148\\uA149\\uA14A\\uA14B\\uA14C\\uA14D\\uA14E\\uA14F\\uA150\\uA151\\uA152\\uA153\\uA154\\uA155\\uA156\\uA157\\uA158\\uA159\\uA15A\\uA15B\\uA15C\\uA15D\\uA15E\\uA15F\\uA160\\uA161\\uA162\\uA163\\uA164\\uA165\\uA166\\uA167\\uA168\\uA169\\uA16A\\uA16B\\uA16C\\uA16D\\uA16E\\uA16F\\uA170\\uA171\\uA172\\uA173\\uA174\\uA175\\uA176\\uA177\\uA178\\uA179\\uA17A\\uA17B\\uA17C\\uA17D\\uA17E\\uA17F\\uA180\\uA181\\uA182\\uA183\\uA184\\uA185\\uA186\\uA187\\uA188\\uA189\\uA18A\\uA18B\\uA18C\\uA18D\\uA18E\\uA18F\\uA190\\uA191\\uA192\\uA193\\uA194\\uA195\\uA196\\uA197\\uA198\\uA199\\uA19A\\uA19B\\uA19C\\uA19D\\uA19E\\uA19F\\uA1A0\\uA1A1\\uA1A2\\uA1A3\\uA1A4\\uA1A5\\uA1A6\\uA1A7\\uA1A8\\uA1A9\\uA1AA\\uA1AB\\uA1AC\\uA1AD\\uA1AE\\uA1AF\\uA1B0\\uA1B1\\uA1B2\\uA1B3\\uA1B4\\uA1B5\\uA1B6\\uA1B7\\uA1B8\\uA1B9\\uA1BA\\uA1BB\\uA1BC\\uA1BD\\uA1BE\\uA1BF\\uA1C0\\uA1C1\\uA1C2\\uA1C3\\uA1C4\\uA1C5\\uA1C6\\uA1C7\\uA1C8\\uA1C9\\uA1CA\\uA1CB\\uA1CC\\uA1CD\\uA1CE\\uA1CF\\uA1D0\\uA1D1\\uA1D2\\uA1D3\\uA1D4\\uA1D5\\uA1D6\\uA1D7\\uA1D8\\uA1D9\\uA1DA\\uA1DB\\uA1DC\\uA1DD\\uA1DE\\uA1DF\\uA1E0\\uA1E1\\uA1E2\\uA1E3\\uA1E4\\uA1E5\\uA1E6\\uA1E7\\uA1E8\\uA1E9\\uA1EA\\uA1EB\\uA1EC\\uA1ED\\uA1EE\\uA1EF\\uA1F0\\uA1F1\\uA1F2\\uA1F3\\uA1F4\\uA1F5\\uA1F6\\uA1F7\\uA1F8\\uA1F9\\uA1FA\\uA1FB\\uA1FC\\uA1FD\\uA1FE\\uA1FF\\uA200\\uA201\\uA202\\uA203\\uA204\\uA205\\uA206\\uA207\\uA208\\uA209\\uA20A\\uA20B\\uA20C\\uA20D\\uA20E\\uA20F\\uA210\\uA211\\uA212\\uA213\\uA214\\uA215\\uA216\\uA217\\uA218\\uA219\\uA21A\\uA21B\\uA21C\\uA21D\\uA21E\\uA21F\\uA220\\uA221\\uA222\\uA223\\uA224\\uA225\\uA226\\uA227\\uA228\\uA229\\uA22A\\uA22B\\uA22C\\uA22D\\uA22E\\uA22F\\uA230\\uA231\\uA232\\uA233\\uA234\\uA235\\uA236\\uA237\\uA238\\uA239\\uA23A\\uA23B\\uA23C\\uA23D\\uA23E\\uA23F\\uA240\\uA241\\uA242\\uA243\\uA244\\uA245\\uA246\\uA247\\uA248\\uA249\\uA24A\\uA24B\\uA24C\\uA24D\\uA24E\\uA24F\\uA250\\uA251\\uA252\\uA253\\uA254\\uA255\\uA256\\uA257\\uA258\\uA259\\uA25A\\uA25B\\uA25C\\uA25D\\uA25E\\uA25F\\uA260\\uA261\\uA262\\uA263\\uA264\\uA265\\uA266\\uA267\\uA268\\uA269\\uA26A\\uA26B\\uA26C\\uA26D\\uA26E\\uA26F\\uA270\\uA271\\uA272\\uA273\\uA274\\uA275\\uA276\\uA277\\uA278\\uA279\\uA27A\\uA27B\\uA27C\\uA27D\\uA27E\\uA27F\\uA280\\uA281\\uA282\\uA283\\uA284\\uA285\\uA286\\uA287\\uA288\\uA289\\uA28A\\uA28B\\uA28C\\uA28D\\uA28E\\uA28F\\uA290\\uA291\\uA292\\uA293\\uA294\\uA295\\uA296\\uA297\\uA298\\uA299\\uA29A\\uA29B\\uA29C\\uA29D\\uA29E\\uA29F\\uA2A0\\uA2A1\\uA2A2\\uA2A3\\uA2A4\\uA2A5\\uA2A6\\uA2A7\\uA2A8\\uA2A9\\uA2AA\\uA2AB\\uA2AC\\uA2AD\\uA2AE\\uA2AF\\uA2B0\\uA2B1\\uA2B2\\uA2B3\\uA2B4\\uA2B5\\uA2B6\\uA2B7\\uA2B8\\uA2B9\\uA2BA\\uA2BB\\uA2BC\\uA2BD\\uA2BE\\uA2BF\\uA2C0\\uA2C1\\uA2C2\\uA2C3\\uA2C4\\uA2C5\\uA2C6\\uA2C7\\uA2C8\\uA2C9\\uA2CA\\uA2CB\\uA2CC\\uA2CD\\uA2CE\\uA2CF\\uA2D0\\uA2D1\\uA2D2\\uA2D3\\uA2D4\\uA2D5\\uA2D6\\uA2D7\\uA2D8\\uA2D9\\uA2DA\\uA2DB\\uA2DC\\uA2DD\\uA2DE\\uA2DF\\uA2E0\\uA2E1\\uA2E2\\uA2E3\\uA2E4\\uA2E5\\uA2E6\\uA2E7\\uA2E8\\uA2E9\\uA2EA\\uA2EB\\uA2EC\\uA2ED\\uA2EE\\uA2EF\\uA2F0\\uA2F1\\uA2F2\\uA2F3\\uA2F4\\uA2F5\\uA2F6\\uA2F7\\uA2F8\\uA2F9\\uA2FA\\uA2FB\\uA2FC\\uA2FD\\uA2FE\\uA2FF\\uA300\\uA301\\uA302\\uA303\\uA304\\uA305\\uA306\\uA307\\uA308\\uA309\\uA30A\\uA30B\\uA30C\\uA30D\\uA30E\\uA30F\\uA310\\uA311\\uA312\\uA313\\uA314\\uA315\\uA316\\uA317\\uA318\\uA319\\uA31A\\uA31B\\uA31C\\uA31D\\uA31E\\uA31F\\uA320\\uA321\\uA322\\uA323\\uA324\\uA325\\uA326\\uA327\\uA328\\uA329\\uA32A\\uA32B\\uA32C\\uA32D\\uA32E\\uA32F\\uA330\\uA331\\uA332\\uA333\\uA334\\uA335\\uA336\\uA337\\uA338\\uA339\\uA33A\\uA33B\\uA33C\\uA33D\\uA33E\\uA33F\\uA340\\uA341\\uA342\\uA343\\uA344\\uA345\\uA346\\uA347\\uA348\\uA349\\uA34A\\uA34B\\uA34C\\uA34D\\uA34E\\uA34F\\uA350\\uA351\\uA352\\uA353\\uA354\\uA355\\uA356\\uA357\\uA358\\uA359\\uA35A\\uA35B\\uA35C\\uA35D\\uA35E\\uA35F\\uA360\\uA361\\uA362\\uA363\\uA364\\uA365\\uA366\\uA367\\uA368\\uA369\\uA36A\\uA36B\\uA36C\\uA36D\\uA36E\\uA36F\\uA370\\uA371\\uA372\\uA373\\uA374\\uA375\\uA376\\uA377\\uA378\\uA379\\uA37A\\uA37B\\uA37C\\uA37D\\uA37E\\uA37F\\uA380\\uA381\\uA382\\uA383\\uA384\\uA385\\uA386\\uA387\\uA388\\uA389\\uA38A\\uA38B\\uA38C\\uA38D\\uA38E\\uA38F\\uA390\\uA391\\uA392\\uA393\\uA394\\uA395\\uA396\\uA397\\uA398\\uA399\\uA39A\\uA39B\\uA39C\\uA39D\\uA39E\\uA39F\\uA3A0\\uA3A1\\uA3A2\\uA3A3\\uA3A4\\uA3A5\\uA3A6\\uA3A7\\uA3A8\\uA3A9\\uA3AA\\uA3AB\\uA3AC\\uA3AD\\uA3AE\\uA3AF\\uA3B0\\uA3B1\\uA3B2\\uA3B3\\uA3B4\\uA3B5\\uA3B6\\uA3B7\\uA3B8\\uA3B9\\uA3BA\\uA3BB\\uA3BC\\uA3BD\\uA3BE\\uA3BF\\uA3C0\\uA3C1\\uA3C2\\uA3C3\\uA3C4\\uA3C5\\uA3C6\\uA3C7\\uA3C8\\uA3C9\\uA3CA\\uA3CB\\uA3CC\\uA3CD\\uA3CE\\uA3CF\\uA3D0\\uA3D1\\uA3D2\\uA3D3\\uA3D4\\uA3D5\\uA3D6\\uA3D7\\uA3D8\\uA3D9\\uA3DA\\uA3DB\\uA3DC\\uA3DD\\uA3DE\\uA3DF\\uA3E0\\uA3E1\\uA3E2\\uA3E3\\uA3E4\\uA3E5\\uA3E6\\uA3E7\\uA3E8\\uA3E9\\uA3EA\\uA3EB\\uA3EC\\uA3ED\\uA3EE\\uA3EF\\uA3F0\\uA3F1\\uA3F2\\uA3F3\\uA3F4\\uA3F5\\uA3F6\\uA3F7\\uA3F8\\uA3F9\\uA3FA\\uA3FB\\uA3FC\\uA3FD\\uA3FE\\uA3FF\\uA400\\uA401\\uA402\\uA403\\uA404\\uA405\\uA406\\uA407\\uA408\\uA409\\uA40A\\uA40B\\uA40C\\uA40D\\uA40E\\uA40F\\uA410\\uA411\\uA412\\uA413\\uA414\\uA415\\uA416\\uA417\\uA418\\uA419\\uA41A\\uA41B\\uA41C\\uA41D\\uA41E\\uA41F\\uA420\\uA421\\uA422\\uA423\\uA424\\uA425\\uA426\\uA427\\uA428\\uA429\\uA42A\\uA42B\\uA42C\\uA42D\\uA42E\\uA42F\\uA430\\uA431\\uA432\\uA433\\uA434\\uA435\\uA436\\uA437\\uA438\\uA439\\uA43A\\uA43B\\uA43C\\uA43D\\uA43E\\uA43F\\uA440\\uA441\\uA442\\uA443\\uA444\\uA445\\uA446\\uA447\\uA448\\uA449\\uA44A\\uA44B\\uA44C\\uA44D\\uA44E\\uA44F\\uA450\\uA451\\uA452\\uA453\\uA454\\uA455\\uA456\\uA457\\uA458\\uA459\\uA45A\\uA45B\\uA45C\\uA45D\\uA45E\\uA45F\\uA460\\uA461\\uA462\\uA463\\uA464\\uA465\\uA466\\uA467\\uA468\\uA469\\uA46A\\uA46B\\uA46C\\uA46D\\uA46E\\uA46F\\uA470\\uA471\\uA472\\uA473\\uA474\\uA475\\uA476\\uA477\\uA478\\uA479\\uA47A\\uA47B\\uA47C\\uA47D\\uA47E\\uA47F\\uA480\\uA481\\uA482\\uA483\\uA484\\uA485\\uA486\\uA487\\uA488\\uA489\\uA48A\\uA48B\\uA48C\\uA500\\uA501\\uA502\\uA503\\uA504\\uA505\\uA506\\uA507\\uA508\\uA509\\uA50A\\uA50B\\uA50C\\uA50D\\uA50E\\uA50F\\uA510\\uA511\\uA512\\uA513\\uA514\\uA515\\uA516\\uA517\\uA518\\uA519\\uA51A\\uA51B\\uA51C\\uA51D\\uA51E\\uA51F\\uA520\\uA521\\uA522\\uA523\\uA524\\uA525\\uA526\\uA527\\uA528\\uA529\\uA52A\\uA52B\\uA52C\\uA52D\\uA52E\\uA52F\\uA530\\uA531\\uA532\\uA533\\uA534\\uA535\\uA536\\uA537\\uA538\\uA539\\uA53A\\uA53B\\uA53C\\uA53D\\uA53E\\uA53F\\uA540\\uA541\\uA542\\uA543\\uA544\\uA545\\uA546\\uA547\\uA548\\uA549\\uA54A\\uA54B\\uA54C\\uA54D\\uA54E\\uA54F\\uA550\\uA551\\uA552\\uA553\\uA554\\uA555\\uA556\\uA557\\uA558\\uA559\\uA55A\\uA55B\\uA55C\\uA55D\\uA55E\\uA55F\\uA560\\uA561\\uA562\\uA563\\uA564\\uA565\\uA566\\uA567\\uA568\\uA569\\uA56A\\uA56B\\uA56C\\uA56D\\uA56E\\uA56F\\uA570\\uA571\\uA572\\uA573\\uA574\\uA575\\uA576\\uA577\\uA578\\uA579\\uA57A\\uA57B\\uA57C\\uA57D\\uA57E\\uA57F\\uA580\\uA581\\uA582\\uA583\\uA584\\uA585\\uA586\\uA587\\uA588\\uA589\\uA58A\\uA58B\\uA58C\\uA58D\\uA58E\\uA58F\\uA590\\uA591\\uA592\\uA593\\uA594\\uA595\\uA596\\uA597\\uA598\\uA599\\uA59A\\uA59B\\uA59C\\uA59D\\uA59E\\uA59F\\uA5A0\\uA5A1\\uA5A2\\uA5A3\\uA5A4\\uA5A5\\uA5A6\\uA5A7\\uA5A8\\uA5A9\\uA5AA\\uA5AB\\uA5AC\\uA5AD\\uA5AE\\uA5AF\\uA5B0\\uA5B1\\uA5B2\\uA5B3\\uA5B4\\uA5B5\\uA5B6\\uA5B7\\uA5B8\\uA5B9\\uA5BA\\uA5BB\\uA5BC\\uA5BD\\uA5BE\\uA5BF\\uA5C0\\uA5C1\\uA5C2\\uA5C3\\uA5C4\\uA5C5\\uA5C6\\uA5C7\\uA5C8\\uA5C9\\uA5CA\\uA5CB\\uA5CC\\uA5CD\\uA5CE\\uA5CF\\uA5D0\\uA5D1\\uA5D2\\uA5D3\\uA5D4\\uA5D5\\uA5D6\\uA5D7\\uA5D8\\uA5D9\\uA5DA\\uA5DB\\uA5DC\\uA5DD\\uA5DE\\uA5DF\\uA5E0\\uA5E1\\uA5E2\\uA5E3\\uA5E4\\uA5E5\\uA5E6\\uA5E7\\uA5E8\\uA5E9\\uA5EA\\uA5EB\\uA5EC\\uA5ED\\uA5EE\\uA5EF\\uA5F0\\uA5F1\\uA5F2\\uA5F3\\uA5F4\\uA5F5\\uA5F6\\uA5F7\\uA5F8\\uA5F9\\uA5FA\\uA5FB\\uA5FC\\uA5FD\\uA5FE\\uA5FF\\uA600\\uA601\\uA602\\uA603\\uA604\\uA605\\uA606\\uA607\\uA608\\uA609\\uA60A\\uA60B\\uA610\\uA611\\uA612\\uA613\\uA614\\uA615\\uA616\\uA617\\uA618\\uA619\\uA61A\\uA61B\\uA61C\\uA61D\\uA61E\\uA61F\\uA62A\\uA62B\\uA66E\\uA7FB\\uA7FC\\uA7FD\\uA7FE\\uA7FF\\uA800\\uA801\\uA803\\uA804\\uA805\\uA807\\uA808\\uA809\\uA80A\\uA80C\\uA80D\\uA80E\\uA80F\\uA810\\uA811\\uA812\\uA813\\uA814\\uA815\\uA816\\uA817\\uA818\\uA819\\uA81A\\uA81B\\uA81C\\uA81D\\uA81E\\uA81F\\uA820\\uA821\\uA822\\uA840\\uA841\\uA842\\uA843\\uA844\\uA845\\uA846\\uA847\\uA848\\uA849\\uA84A\\uA84B\\uA84C\\uA84D\\uA84E\\uA84F\\uA850\\uA851\\uA852\\uA853\\uA854\\uA855\\uA856\\uA857\\uA858\\uA859\\uA85A\\uA85B\\uA85C\\uA85D\\uA85E\\uA85F\\uA860\\uA861\\uA862\\uA863\\uA864\\uA865\\uA866\\uA867\\uA868\\uA869\\uA86A\\uA86B\\uA86C\\uA86D\\uA86E\\uA86F\\uA870\\uA871\\uA872\\uA873\\uA882\\uA883\\uA884\\uA885\\uA886\\uA887\\uA888\\uA889\\uA88A\\uA88B\\uA88C\\uA88D\\uA88E\\uA88F\\uA890\\uA891\\uA892\\uA893\\uA894\\uA895\\uA896\\uA897\\uA898\\uA899\\uA89A\\uA89B\\uA89C\\uA89D\\uA89E\\uA89F\\uA8A0\\uA8A1\\uA8A2\\uA8A3\\uA8A4\\uA8A5\\uA8A6\\uA8A7\\uA8A8\\uA8A9\\uA8AA\\uA8AB\\uA8AC\\uA8AD\\uA8AE\\uA8AF\\uA8B0\\uA8B1\\uA8B2\\uA8B3\\uA90A\\uA90B\\uA90C\\uA90D\\uA90E\\uA90F\\uA910\\uA911\\uA912\\uA913\\uA914\\uA915\\uA916\\uA917\\uA918\\uA919\\uA91A\\uA91B\\uA91C\\uA91D\\uA91E\\uA91F\\uA920\\uA921\\uA922\\uA923\\uA924\\uA925\\uA930\\uA931\\uA932\\uA933\\uA934\\uA935\\uA936\\uA937\\uA938\\uA939\\uA93A\\uA93B\\uA93C\\uA93D\\uA93E\\uA93F\\uA940\\uA941\\uA942\\uA943\\uA944\\uA945\\uA946\\uAA00\\uAA01\\uAA02\\uAA03\\uAA04\\uAA05\\uAA06\\uAA07\\uAA08\\uAA09\\uAA0A\\uAA0B\\uAA0C\\uAA0D\\uAA0E\\uAA0F\\uAA10\\uAA11\\uAA12\\uAA13\\uAA14\\uAA15\\uAA16\\uAA17\\uAA18\\uAA19\\uAA1A\\uAA1B\\uAA1C\\uAA1D\\uAA1E\\uAA1F\\uAA20\\uAA21\\uAA22\\uAA23\\uAA24\\uAA25\\uAA26\\uAA27\\uAA28\\uAA40\\uAA41\\uAA42\\uAA44\\uAA45\\uAA46\\uAA47\\uAA48\\uAA49\\uAA4A\\uAA4B\\uAC00\\uD7A3\\uF900\\uF901\\uF902\\uF903\\uF904\\uF905\\uF906\\uF907\\uF908\\uF909\\uF90A\\uF90B\\uF90C\\uF90D\\uF90E\\uF90F\\uF910\\uF911\\uF912\\uF913\\uF914\\uF915\\uF916\\uF917\\uF918\\uF919\\uF91A\\uF91B\\uF91C\\uF91D\\uF91E\\uF91F\\uF920\\uF921\\uF922\\uF923\\uF924\\uF925\\uF926\\uF927\\uF928\\uF929\\uF92A\\uF92B\\uF92C\\uF92D\\uF92E\\uF92F\\uF930\\uF931\\uF932\\uF933\\uF934\\uF935\\uF936\\uF937\\uF938\\uF939\\uF93A\\uF93B\\uF93C\\uF93D\\uF93E\\uF93F\\uF940\\uF941\\uF942\\uF943\\uF944\\uF945\\uF946\\uF947\\uF948\\uF949\\uF94A\\uF94B\\uF94C\\uF94D\\uF94E\\uF94F\\uF950\\uF951\\uF952\\uF953\\uF954\\uF955\\uF956\\uF957\\uF958\\uF959\\uF95A\\uF95B\\uF95C\\uF95D\\uF95E\\uF95F\\uF960\\uF961\\uF962\\uF963\\uF964\\uF965\\uF966\\uF967\\uF968\\uF969\\uF96A\\uF96B\\uF96C\\uF96D\\uF96E\\uF96F\\uF970\\uF971\\uF972\\uF973\\uF974\\uF975\\uF976\\uF977\\uF978\\uF979\\uF97A\\uF97B\\uF97C\\uF97D\\uF97E\\uF97F\\uF980\\uF981\\uF982\\uF983\\uF984\\uF985\\uF986\\uF987\\uF988\\uF989\\uF98A\\uF98B\\uF98C\\uF98D\\uF98E\\uF98F\\uF990\\uF991\\uF992\\uF993\\uF994\\uF995\\uF996\\uF997\\uF998\\uF999\\uF99A\\uF99B\\uF99C\\uF99D\\uF99E\\uF99F\\uF9A0\\uF9A1\\uF9A2\\uF9A3\\uF9A4\\uF9A5\\uF9A6\\uF9A7\\uF9A8\\uF9A9\\uF9AA\\uF9AB\\uF9AC\\uF9AD\\uF9AE\\uF9AF\\uF9B0\\uF9B1\\uF9B2\\uF9B3\\uF9B4\\uF9B5\\uF9B6\\uF9B7\\uF9B8\\uF9B9\\uF9BA\\uF9BB\\uF9BC\\uF9BD\\uF9BE\\uF9BF\\uF9C0\\uF9C1\\uF9C2\\uF9C3\\uF9C4\\uF9C5\\uF9C6\\uF9C7\\uF9C8\\uF9C9\\uF9CA\\uF9CB\\uF9CC\\uF9CD\\uF9CE\\uF9CF\\uF9D0\\uF9D1\\uF9D2\\uF9D3\\uF9D4\\uF9D5\\uF9D6\\uF9D7\\uF9D8\\uF9D9\\uF9DA\\uF9DB\\uF9DC\\uF9DD\\uF9DE\\uF9DF\\uF9E0\\uF9E1\\uF9E2\\uF9E3\\uF9E4\\uF9E5\\uF9E6\\uF9E7\\uF9E8\\uF9E9\\uF9EA\\uF9EB\\uF9EC\\uF9ED\\uF9EE\\uF9EF\\uF9F0\\uF9F1\\uF9F2\\uF9F3\\uF9F4\\uF9F5\\uF9F6\\uF9F7\\uF9F8\\uF9F9\\uF9FA\\uF9FB\\uF9FC\\uF9FD\\uF9FE\\uF9FF\\uFA00\\uFA01\\uFA02\\uFA03\\uFA04\\uFA05\\uFA06\\uFA07\\uFA08\\uFA09\\uFA0A\\uFA0B\\uFA0C\\uFA0D\\uFA0E\\uFA0F\\uFA10\\uFA11\\uFA12\\uFA13\\uFA14\\uFA15\\uFA16\\uFA17\\uFA18\\uFA19\\uFA1A\\uFA1B\\uFA1C\\uFA1D\\uFA1E\\uFA1F\\uFA20\\uFA21\\uFA22\\uFA23\\uFA24\\uFA25\\uFA26\\uFA27\\uFA28\\uFA29\\uFA2A\\uFA2B\\uFA2C\\uFA2D\\uFA30\\uFA31\\uFA32\\uFA33\\uFA34\\uFA35\\uFA36\\uFA37\\uFA38\\uFA39\\uFA3A\\uFA3B\\uFA3C\\uFA3D\\uFA3E\\uFA3F\\uFA40\\uFA41\\uFA42\\uFA43\\uFA44\\uFA45\\uFA46\\uFA47\\uFA48\\uFA49\\uFA4A\\uFA4B\\uFA4C\\uFA4D\\uFA4E\\uFA4F\\uFA50\\uFA51\\uFA52\\uFA53\\uFA54\\uFA55\\uFA56\\uFA57\\uFA58\\uFA59\\uFA5A\\uFA5B\\uFA5C\\uFA5D\\uFA5E\\uFA5F\\uFA60\\uFA61\\uFA62\\uFA63\\uFA64\\uFA65\\uFA66\\uFA67\\uFA68\\uFA69\\uFA6A\\uFA70\\uFA71\\uFA72\\uFA73\\uFA74\\uFA75\\uFA76\\uFA77\\uFA78\\uFA79\\uFA7A\\uFA7B\\uFA7C\\uFA7D\\uFA7E\\uFA7F\\uFA80\\uFA81\\uFA82\\uFA83\\uFA84\\uFA85\\uFA86\\uFA87\\uFA88\\uFA89\\uFA8A\\uFA8B\\uFA8C\\uFA8D\\uFA8E\\uFA8F\\uFA90\\uFA91\\uFA92\\uFA93\\uFA94\\uFA95\\uFA96\\uFA97\\uFA98\\uFA99\\uFA9A\\uFA9B\\uFA9C\\uFA9D\\uFA9E\\uFA9F\\uFAA0\\uFAA1\\uFAA2\\uFAA3\\uFAA4\\uFAA5\\uFAA6\\uFAA7\\uFAA8\\uFAA9\\uFAAA\\uFAAB\\uFAAC\\uFAAD\\uFAAE\\uFAAF\\uFAB0\\uFAB1\\uFAB2\\uFAB3\\uFAB4\\uFAB5\\uFAB6\\uFAB7\\uFAB8\\uFAB9\\uFABA\\uFABB\\uFABC\\uFABD\\uFABE\\uFABF\\uFAC0\\uFAC1\\uFAC2\\uFAC3\\uFAC4\\uFAC5\\uFAC6\\uFAC7\\uFAC8\\uFAC9\\uFACA\\uFACB\\uFACC\\uFACD\\uFACE\\uFACF\\uFAD0\\uFAD1\\uFAD2\\uFAD3\\uFAD4\\uFAD5\\uFAD6\\uFAD7\\uFAD8\\uFAD9\\uFB1D\\uFB1F\\uFB20\\uFB21\\uFB22\\uFB23\\uFB24\\uFB25\\uFB26\\uFB27\\uFB28\\uFB2A\\uFB2B\\uFB2C\\uFB2D\\uFB2E\\uFB2F\\uFB30\\uFB31\\uFB32\\uFB33\\uFB34\\uFB35\\uFB36\\uFB38\\uFB39\\uFB3A\\uFB3B\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46\\uFB47\\uFB48\\uFB49\\uFB4A\\uFB4B\\uFB4C\\uFB4D\\uFB4E\\uFB4F\\uFB50\\uFB51\\uFB52\\uFB53\\uFB54\\uFB55\\uFB56\\uFB57\\uFB58\\uFB59\\uFB5A\\uFB5B\\uFB5C\\uFB5D\\uFB5E\\uFB5F\\uFB60\\uFB61\\uFB62\\uFB63\\uFB64\\uFB65\\uFB66\\uFB67\\uFB68\\uFB69\\uFB6A\\uFB6B\\uFB6C\\uFB6D\\uFB6E\\uFB6F\\uFB70\\uFB71\\uFB72\\uFB73\\uFB74\\uFB75\\uFB76\\uFB77\\uFB78\\uFB79\\uFB7A\\uFB7B\\uFB7C\\uFB7D\\uFB7E\\uFB7F\\uFB80\\uFB81\\uFB82\\uFB83\\uFB84\\uFB85\\uFB86\\uFB87\\uFB88\\uFB89\\uFB8A\\uFB8B\\uFB8C\\uFB8D\\uFB8E\\uFB8F\\uFB90\\uFB91\\uFB92\\uFB93\\uFB94\\uFB95\\uFB96\\uFB97\\uFB98\\uFB99\\uFB9A\\uFB9B\\uFB9C\\uFB9D\\uFB9E\\uFB9F\\uFBA0\\uFBA1\\uFBA2\\uFBA3\\uFBA4\\uFBA5\\uFBA6\\uFBA7\\uFBA8\\uFBA9\\uFBAA\\uFBAB\\uFBAC\\uFBAD\\uFBAE\\uFBAF\\uFBB0\\uFBB1\\uFBD3\\uFBD4\\uFBD5\\uFBD6\\uFBD7\\uFBD8\\uFBD9\\uFBDA\\uFBDB\\uFBDC\\uFBDD\\uFBDE\\uFBDF\\uFBE0\\uFBE1\\uFBE2\\uFBE3\\uFBE4\\uFBE5\\uFBE6\\uFBE7\\uFBE8\\uFBE9\\uFBEA\\uFBEB\\uFBEC\\uFBED\\uFBEE\\uFBEF\\uFBF0\\uFBF1\\uFBF2\\uFBF3\\uFBF4\\uFBF5\\uFBF6\\uFBF7\\uFBF8\\uFBF9\\uFBFA\\uFBFB\\uFBFC\\uFBFD\\uFBFE\\uFBFF\\uFC00\\uFC01\\uFC02\\uFC03\\uFC04\\uFC05\\uFC06\\uFC07\\uFC08\\uFC09\\uFC0A\\uFC0B\\uFC0C\\uFC0D\\uFC0E\\uFC0F\\uFC10\\uFC11\\uFC12\\uFC13\\uFC14\\uFC15\\uFC16\\uFC17\\uFC18\\uFC19\\uFC1A\\uFC1B\\uFC1C\\uFC1D\\uFC1E\\uFC1F\\uFC20\\uFC21\\uFC22\\uFC23\\uFC24\\uFC25\\uFC26\\uFC27\\uFC28\\uFC29\\uFC2A\\uFC2B\\uFC2C\\uFC2D\\uFC2E\\uFC2F\\uFC30\\uFC31\\uFC32\\uFC33\\uFC34\\uFC35\\uFC36\\uFC37\\uFC38\\uFC39\\uFC3A\\uFC3B\\uFC3C\\uFC3D\\uFC3E\\uFC3F\\uFC40\\uFC41\\uFC42\\uFC43\\uFC44\\uFC45\\uFC46\\uFC47\\uFC48\\uFC49\\uFC4A\\uFC4B\\uFC4C\\uFC4D\\uFC4E\\uFC4F\\uFC50\\uFC51\\uFC52\\uFC53\\uFC54\\uFC55\\uFC56\\uFC57\\uFC58\\uFC59\\uFC5A\\uFC5B\\uFC5C\\uFC5D\\uFC5E\\uFC5F\\uFC60\\uFC61\\uFC62\\uFC63\\uFC64\\uFC65\\uFC66\\uFC67\\uFC68\\uFC69\\uFC6A\\uFC6B\\uFC6C\\uFC6D\\uFC6E\\uFC6F\\uFC70\\uFC71\\uFC72\\uFC73\\uFC74\\uFC75\\uFC76\\uFC77\\uFC78\\uFC79\\uFC7A\\uFC7B\\uFC7C\\uFC7D\\uFC7E\\uFC7F\\uFC80\\uFC81\\uFC82\\uFC83\\uFC84\\uFC85\\uFC86\\uFC87\\uFC88\\uFC89\\uFC8A\\uFC8B\\uFC8C\\uFC8D\\uFC8E\\uFC8F\\uFC90\\uFC91\\uFC92\\uFC93\\uFC94\\uFC95\\uFC96\\uFC97\\uFC98\\uFC99\\uFC9A\\uFC9B\\uFC9C\\uFC9D\\uFC9E\\uFC9F\\uFCA0\\uFCA1\\uFCA2\\uFCA3\\uFCA4\\uFCA5\\uFCA6\\uFCA7\\uFCA8\\uFCA9\\uFCAA\\uFCAB\\uFCAC\\uFCAD\\uFCAE\\uFCAF\\uFCB0\\uFCB1\\uFCB2\\uFCB3\\uFCB4\\uFCB5\\uFCB6\\uFCB7\\uFCB8\\uFCB9\\uFCBA\\uFCBB\\uFCBC\\uFCBD\\uFCBE\\uFCBF\\uFCC0\\uFCC1\\uFCC2\\uFCC3\\uFCC4\\uFCC5\\uFCC6\\uFCC7\\uFCC8\\uFCC9\\uFCCA\\uFCCB\\uFCCC\\uFCCD\\uFCCE\\uFCCF\\uFCD0\\uFCD1\\uFCD2\\uFCD3\\uFCD4\\uFCD5\\uFCD6\\uFCD7\\uFCD8\\uFCD9\\uFCDA\\uFCDB\\uFCDC\\uFCDD\\uFCDE\\uFCDF\\uFCE0\\uFCE1\\uFCE2\\uFCE3\\uFCE4\\uFCE5\\uFCE6\\uFCE7\\uFCE8\\uFCE9\\uFCEA\\uFCEB\\uFCEC\\uFCED\\uFCEE\\uFCEF\\uFCF0\\uFCF1\\uFCF2\\uFCF3\\uFCF4\\uFCF5\\uFCF6\\uFCF7\\uFCF8\\uFCF9\\uFCFA\\uFCFB\\uFCFC\\uFCFD\\uFCFE\\uFCFF\\uFD00\\uFD01\\uFD02\\uFD03\\uFD04\\uFD05\\uFD06\\uFD07\\uFD08\\uFD09\\uFD0A\\uFD0B\\uFD0C\\uFD0D\\uFD0E\\uFD0F\\uFD10\\uFD11\\uFD12\\uFD13\\uFD14\\uFD15\\uFD16\\uFD17\\uFD18\\uFD19\\uFD1A\\uFD1B\\uFD1C\\uFD1D\\uFD1E\\uFD1F\\uFD20\\uFD21\\uFD22\\uFD23\\uFD24\\uFD25\\uFD26\\uFD27\\uFD28\\uFD29\\uFD2A\\uFD2B\\uFD2C\\uFD2D\\uFD2E\\uFD2F\\uFD30\\uFD31\\uFD32\\uFD33\\uFD34\\uFD35\\uFD36\\uFD37\\uFD38\\uFD39\\uFD3A\\uFD3B\\uFD3C\\uFD3D\\uFD50\\uFD51\\uFD52\\uFD53\\uFD54\\uFD55\\uFD56\\uFD57\\uFD58\\uFD59\\uFD5A\\uFD5B\\uFD5C\\uFD5D\\uFD5E\\uFD5F\\uFD60\\uFD61\\uFD62\\uFD63\\uFD64\\uFD65\\uFD66\\uFD67\\uFD68\\uFD69\\uFD6A\\uFD6B\\uFD6C\\uFD6D\\uFD6E\\uFD6F\\uFD70\\uFD71\\uFD72\\uFD73\\uFD74\\uFD75\\uFD76\\uFD77\\uFD78\\uFD79\\uFD7A\\uFD7B\\uFD7C\\uFD7D\\uFD7E\\uFD7F\\uFD80\\uFD81\\uFD82\\uFD83\\uFD84\\uFD85\\uFD86\\uFD87\\uFD88\\uFD89\\uFD8A\\uFD8B\\uFD8C\\uFD8D\\uFD8E\\uFD8F\\uFD92\\uFD93\\uFD94\\uFD95\\uFD96\\uFD97\\uFD98\\uFD99\\uFD9A\\uFD9B\\uFD9C\\uFD9D\\uFD9E\\uFD9F\\uFDA0\\uFDA1\\uFDA2\\uFDA3\\uFDA4\\uFDA5\\uFDA6\\uFDA7\\uFDA8\\uFDA9\\uFDAA\\uFDAB\\uFDAC\\uFDAD\\uFDAE\\uFDAF\\uFDB0\\uFDB1\\uFDB2\\uFDB3\\uFDB4\\uFDB5\\uFDB6\\uFDB7\\uFDB8\\uFDB9\\uFDBA\\uFDBB\\uFDBC\\uFDBD\\uFDBE\\uFDBF\\uFDC0\\uFDC1\\uFDC2\\uFDC3\\uFDC4\\uFDC5\\uFDC6\\uFDC7\\uFDF0\\uFDF1\\uFDF2\\uFDF3\\uFDF4\\uFDF5\\uFDF6\\uFDF7\\uFDF8\\uFDF9\\uFDFA\\uFDFB\\uFE70\\uFE71\\uFE72\\uFE73\\uFE74\\uFE76\\uFE77\\uFE78\\uFE79\\uFE7A\\uFE7B\\uFE7C\\uFE7D\\uFE7E\\uFE7F\\uFE80\\uFE81\\uFE82\\uFE83\\uFE84\\uFE85\\uFE86\\uFE87\\uFE88\\uFE89\\uFE8A\\uFE8B\\uFE8C\\uFE8D\\uFE8E\\uFE8F\\uFE90\\uFE91\\uFE92\\uFE93\\uFE94\\uFE95\\uFE96\\uFE97\\uFE98\\uFE99\\uFE9A\\uFE9B\\uFE9C\\uFE9D\\uFE9E\\uFE9F\\uFEA0\\uFEA1\\uFEA2\\uFEA3\\uFEA4\\uFEA5\\uFEA6\\uFEA7\\uFEA8\\uFEA9\\uFEAA\\uFEAB\\uFEAC\\uFEAD\\uFEAE\\uFEAF\\uFEB0\\uFEB1\\uFEB2\\uFEB3\\uFEB4\\uFEB5\\uFEB6\\uFEB7\\uFEB8\\uFEB9\\uFEBA\\uFEBB\\uFEBC\\uFEBD\\uFEBE\\uFEBF\\uFEC0\\uFEC1\\uFEC2\\uFEC3\\uFEC4\\uFEC5\\uFEC6\\uFEC7\\uFEC8\\uFEC9\\uFECA\\uFECB\\uFECC\\uFECD\\uFECE\\uFECF\\uFED0\\uFED1\\uFED2\\uFED3\\uFED4\\uFED5\\uFED6\\uFED7\\uFED8\\uFED9\\uFEDA\\uFEDB\\uFEDC\\uFEDD\\uFEDE\\uFEDF\\uFEE0\\uFEE1\\uFEE2\\uFEE3\\uFEE4\\uFEE5\\uFEE6\\uFEE7\\uFEE8\\uFEE9\\uFEEA\\uFEEB\\uFEEC\\uFEED\\uFEEE\\uFEEF\\uFEF0\\uFEF1\\uFEF2\\uFEF3\\uFEF4\\uFEF5\\uFEF6\\uFEF7\\uFEF8\\uFEF9\\uFEFA\\uFEFB\\uFEFC\\uFF66\\uFF67\\uFF68\\uFF69\\uFF6A\\uFF6B\\uFF6C\\uFF6D\\uFF6E\\uFF6F\\uFF71\\uFF72\\uFF73\\uFF74\\uFF75\\uFF76\\uFF77\\uFF78\\uFF79\\uFF7A\\uFF7B\\uFF7C\\uFF7D\\uFF7E\\uFF7F\\uFF80\\uFF81\\uFF82\\uFF83\\uFF84\\uFF85\\uFF86\\uFF87\\uFF88\\uFF89\\uFF8A\\uFF8B\\uFF8C\\uFF8D\\uFF8E\\uFF8F\\uFF90\\uFF91\\uFF92\\uFF93\\uFF94\\uFF95\\uFF96\\uFF97\\uFF98\\uFF99\\uFF9A\\uFF9B\\uFF9C\\uFF9D\\uFFA0\\uFFA1\\uFFA2\\uFFA3\\uFFA4\\uFFA5\\uFFA6\\uFFA7\\uFFA8\\uFFA9\\uFFAA\\uFFAB\\uFFAC\\uFFAD\\uFFAE\\uFFAF\\uFFB0\\uFFB1\\uFFB2\\uFFB3\\uFFB4\\uFFB5\\uFFB6\\uFFB7\\uFFB8\\uFFB9\\uFFBA\\uFFBB\\uFFBC\\uFFBD\\uFFBE\\uFFC2\\uFFC3\\uFFC4\\uFFC5\\uFFC6\\uFFC7\\uFFCA\\uFFCB\\uFFCC\\uFFCD\\uFFCE\\uFFCF\\uFFD2\\uFFD3\\uFFD4\\uFFD5\\uFFD6\\uFFD7\\uFFDA\\uFFDB\\uFFDC]"); - } - } - return result0; - } - - function parse_Lt() { - var result0; - - if (/^[\u01C5\u01C8\u01CB\u01F2\u1F88\u1F89\u1F8A\u1F8B\u1F8C\u1F8D\u1F8E\u1F8F\u1F98\u1F99\u1F9A\u1F9B\u1F9C\u1F9D\u1F9E\u1F9F\u1FA8\u1FA9\u1FAA\u1FAB\u1FAC\u1FAD\u1FAE\u1FAF\u1FBC\u1FCC\u1FFC]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\u01C5\\u01C8\\u01CB\\u01F2\\u1F88\\u1F89\\u1F8A\\u1F8B\\u1F8C\\u1F8D\\u1F8E\\u1F8F\\u1F98\\u1F99\\u1F9A\\u1F9B\\u1F9C\\u1F9D\\u1F9E\\u1F9F\\u1FA8\\u1FA9\\u1FAA\\u1FAB\\u1FAC\\u1FAD\\u1FAE\\u1FAF\\u1FBC\\u1FCC\\u1FFC]"); - } - } - return result0; - } - - function parse_Lu() { - var result0; - - if (/^[ABCDEFGHIJKLMNOPQRSTUVWXYZ\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD8\xD9\xDA\xDB\xDC\xDD\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189\u018A\u018B\u018E\u018F\u0190\u0191\u0193\u0194\u0196\u0197\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1\u01B2\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6\u01F7\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243\u0244\u0245\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u0386\u0388\u0389\u038A\u038C\u038E\u038F\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03CF\u03D2\u03D3\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD\u03FE\u03FF\u0400\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\u040D\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0531\u0532\u0533\u0534\u0535\u0536\u0537\u0538\u0539\u053A\u053B\u053C\u053D\u053E\u053F\u0540\u0541\u0542\u0543\u0544\u0545\u0546\u0547\u0548\u0549\u054A\u054B\u054C\u054D\u054E\u054F\u0550\u0551\u0552\u0553\u0554\u0555\u0556\u10A0\u10A1\u10A2\u10A3\u10A4\u10A5\u10A6\u10A7\u10A8\u10A9\u10AA\u10AB\u10AC\u10AD\u10AE\u10AF\u10B0\u10B1\u10B2\u10B3\u10B4\u10B5\u10B6\u10B7\u10B8\u10B9\u10BA\u10BB\u10BC\u10BD\u10BE\u10BF\u10C0\u10C1\u10C2\u10C3\u10C4\u10C5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08\u1F09\u1F0A\u1F0B\u1F0C\u1F0D\u1F0E\u1F0F\u1F18\u1F19\u1F1A\u1F1B\u1F1C\u1F1D\u1F28\u1F29\u1F2A\u1F2B\u1F2C\u1F2D\u1F2E\u1F2F\u1F38\u1F39\u1F3A\u1F3B\u1F3C\u1F3D\u1F3E\u1F3F\u1F48\u1F49\u1F4A\u1F4B\u1F4C\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68\u1F69\u1F6A\u1F6B\u1F6C\u1F6D\u1F6E\u1F6F\u1FB8\u1FB9\u1FBA\u1FBB\u1FC8\u1FC9\u1FCA\u1FCB\u1FD8\u1FD9\u1FDA\u1FDB\u1FE8\u1FE9\u1FEA\u1FEB\u1FEC\u1FF8\u1FF9\u1FFA\u1FFB\u2102\u2107\u210B\u210C\u210D\u2110\u2111\u2112\u2115\u2119\u211A\u211B\u211C\u211D\u2124\u2126\u2128\u212A\u212B\u212C\u212D\u2130\u2131\u2132\u2133\u213E\u213F\u2145\u2183\u2C00\u2C01\u2C02\u2C03\u2C04\u2C05\u2C06\u2C07\u2C08\u2C09\u2C0A\u2C0B\u2C0C\u2C0D\u2C0E\u2C0F\u2C10\u2C11\u2C12\u2C13\u2C14\u2C15\u2C16\u2C17\u2C18\u2C19\u2C1A\u2C1B\u2C1C\u2C1D\u2C1E\u2C1F\u2C20\u2C21\u2C22\u2C23\u2C24\u2C25\u2C26\u2C27\u2C28\u2C29\u2C2A\u2C2B\u2C2C\u2C2D\u2C2E\u2C60\u2C62\u2C63\u2C64\u2C67\u2C69\u2C6B\u2C6D\u2C6E\u2C6F\u2C72\u2C75\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uFF21\uFF22\uFF23\uFF24\uFF25\uFF26\uFF27\uFF28\uFF29\uFF2A\uFF2B\uFF2C\uFF2D\uFF2E\uFF2F\uFF30\uFF31\uFF32\uFF33\uFF34\uFF35\uFF36\uFF37\uFF38\uFF39\uFF3A]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[ABCDEFGHIJKLMNOPQRSTUVWXYZ\\xC0\\xC1\\xC2\\xC3\\xC4\\xC5\\xC6\\xC7\\xC8\\xC9\\xCA\\xCB\\xCC\\xCD\\xCE\\xCF\\xD0\\xD1\\xD2\\xD3\\xD4\\xD5\\xD6\\xD8\\xD9\\xDA\\xDB\\xDC\\xDD\\xDE\\u0100\\u0102\\u0104\\u0106\\u0108\\u010A\\u010C\\u010E\\u0110\\u0112\\u0114\\u0116\\u0118\\u011A\\u011C\\u011E\\u0120\\u0122\\u0124\\u0126\\u0128\\u012A\\u012C\\u012E\\u0130\\u0132\\u0134\\u0136\\u0139\\u013B\\u013D\\u013F\\u0141\\u0143\\u0145\\u0147\\u014A\\u014C\\u014E\\u0150\\u0152\\u0154\\u0156\\u0158\\u015A\\u015C\\u015E\\u0160\\u0162\\u0164\\u0166\\u0168\\u016A\\u016C\\u016E\\u0170\\u0172\\u0174\\u0176\\u0178\\u0179\\u017B\\u017D\\u0181\\u0182\\u0184\\u0186\\u0187\\u0189\\u018A\\u018B\\u018E\\u018F\\u0190\\u0191\\u0193\\u0194\\u0196\\u0197\\u0198\\u019C\\u019D\\u019F\\u01A0\\u01A2\\u01A4\\u01A6\\u01A7\\u01A9\\u01AC\\u01AE\\u01AF\\u01B1\\u01B2\\u01B3\\u01B5\\u01B7\\u01B8\\u01BC\\u01C4\\u01C7\\u01CA\\u01CD\\u01CF\\u01D1\\u01D3\\u01D5\\u01D7\\u01D9\\u01DB\\u01DE\\u01E0\\u01E2\\u01E4\\u01E6\\u01E8\\u01EA\\u01EC\\u01EE\\u01F1\\u01F4\\u01F6\\u01F7\\u01F8\\u01FA\\u01FC\\u01FE\\u0200\\u0202\\u0204\\u0206\\u0208\\u020A\\u020C\\u020E\\u0210\\u0212\\u0214\\u0216\\u0218\\u021A\\u021C\\u021E\\u0220\\u0222\\u0224\\u0226\\u0228\\u022A\\u022C\\u022E\\u0230\\u0232\\u023A\\u023B\\u023D\\u023E\\u0241\\u0243\\u0244\\u0245\\u0246\\u0248\\u024A\\u024C\\u024E\\u0370\\u0372\\u0376\\u0386\\u0388\\u0389\\u038A\\u038C\\u038E\\u038F\\u0391\\u0392\\u0393\\u0394\\u0395\\u0396\\u0397\\u0398\\u0399\\u039A\\u039B\\u039C\\u039D\\u039E\\u039F\\u03A0\\u03A1\\u03A3\\u03A4\\u03A5\\u03A6\\u03A7\\u03A8\\u03A9\\u03AA\\u03AB\\u03CF\\u03D2\\u03D3\\u03D4\\u03D8\\u03DA\\u03DC\\u03DE\\u03E0\\u03E2\\u03E4\\u03E6\\u03E8\\u03EA\\u03EC\\u03EE\\u03F4\\u03F7\\u03F9\\u03FA\\u03FD\\u03FE\\u03FF\\u0400\\u0401\\u0402\\u0403\\u0404\\u0405\\u0406\\u0407\\u0408\\u0409\\u040A\\u040B\\u040C\\u040D\\u040E\\u040F\\u0410\\u0411\\u0412\\u0413\\u0414\\u0415\\u0416\\u0417\\u0418\\u0419\\u041A\\u041B\\u041C\\u041D\\u041E\\u041F\\u0420\\u0421\\u0422\\u0423\\u0424\\u0425\\u0426\\u0427\\u0428\\u0429\\u042A\\u042B\\u042C\\u042D\\u042E\\u042F\\u0460\\u0462\\u0464\\u0466\\u0468\\u046A\\u046C\\u046E\\u0470\\u0472\\u0474\\u0476\\u0478\\u047A\\u047C\\u047E\\u0480\\u048A\\u048C\\u048E\\u0490\\u0492\\u0494\\u0496\\u0498\\u049A\\u049C\\u049E\\u04A0\\u04A2\\u04A4\\u04A6\\u04A8\\u04AA\\u04AC\\u04AE\\u04B0\\u04B2\\u04B4\\u04B6\\u04B8\\u04BA\\u04BC\\u04BE\\u04C0\\u04C1\\u04C3\\u04C5\\u04C7\\u04C9\\u04CB\\u04CD\\u04D0\\u04D2\\u04D4\\u04D6\\u04D8\\u04DA\\u04DC\\u04DE\\u04E0\\u04E2\\u04E4\\u04E6\\u04E8\\u04EA\\u04EC\\u04EE\\u04F0\\u04F2\\u04F4\\u04F6\\u04F8\\u04FA\\u04FC\\u04FE\\u0500\\u0502\\u0504\\u0506\\u0508\\u050A\\u050C\\u050E\\u0510\\u0512\\u0514\\u0516\\u0518\\u051A\\u051C\\u051E\\u0520\\u0522\\u0531\\u0532\\u0533\\u0534\\u0535\\u0536\\u0537\\u0538\\u0539\\u053A\\u053B\\u053C\\u053D\\u053E\\u053F\\u0540\\u0541\\u0542\\u0543\\u0544\\u0545\\u0546\\u0547\\u0548\\u0549\\u054A\\u054B\\u054C\\u054D\\u054E\\u054F\\u0550\\u0551\\u0552\\u0553\\u0554\\u0555\\u0556\\u10A0\\u10A1\\u10A2\\u10A3\\u10A4\\u10A5\\u10A6\\u10A7\\u10A8\\u10A9\\u10AA\\u10AB\\u10AC\\u10AD\\u10AE\\u10AF\\u10B0\\u10B1\\u10B2\\u10B3\\u10B4\\u10B5\\u10B6\\u10B7\\u10B8\\u10B9\\u10BA\\u10BB\\u10BC\\u10BD\\u10BE\\u10BF\\u10C0\\u10C1\\u10C2\\u10C3\\u10C4\\u10C5\\u1E00\\u1E02\\u1E04\\u1E06\\u1E08\\u1E0A\\u1E0C\\u1E0E\\u1E10\\u1E12\\u1E14\\u1E16\\u1E18\\u1E1A\\u1E1C\\u1E1E\\u1E20\\u1E22\\u1E24\\u1E26\\u1E28\\u1E2A\\u1E2C\\u1E2E\\u1E30\\u1E32\\u1E34\\u1E36\\u1E38\\u1E3A\\u1E3C\\u1E3E\\u1E40\\u1E42\\u1E44\\u1E46\\u1E48\\u1E4A\\u1E4C\\u1E4E\\u1E50\\u1E52\\u1E54\\u1E56\\u1E58\\u1E5A\\u1E5C\\u1E5E\\u1E60\\u1E62\\u1E64\\u1E66\\u1E68\\u1E6A\\u1E6C\\u1E6E\\u1E70\\u1E72\\u1E74\\u1E76\\u1E78\\u1E7A\\u1E7C\\u1E7E\\u1E80\\u1E82\\u1E84\\u1E86\\u1E88\\u1E8A\\u1E8C\\u1E8E\\u1E90\\u1E92\\u1E94\\u1E9E\\u1EA0\\u1EA2\\u1EA4\\u1EA6\\u1EA8\\u1EAA\\u1EAC\\u1EAE\\u1EB0\\u1EB2\\u1EB4\\u1EB6\\u1EB8\\u1EBA\\u1EBC\\u1EBE\\u1EC0\\u1EC2\\u1EC4\\u1EC6\\u1EC8\\u1ECA\\u1ECC\\u1ECE\\u1ED0\\u1ED2\\u1ED4\\u1ED6\\u1ED8\\u1EDA\\u1EDC\\u1EDE\\u1EE0\\u1EE2\\u1EE4\\u1EE6\\u1EE8\\u1EEA\\u1EEC\\u1EEE\\u1EF0\\u1EF2\\u1EF4\\u1EF6\\u1EF8\\u1EFA\\u1EFC\\u1EFE\\u1F08\\u1F09\\u1F0A\\u1F0B\\u1F0C\\u1F0D\\u1F0E\\u1F0F\\u1F18\\u1F19\\u1F1A\\u1F1B\\u1F1C\\u1F1D\\u1F28\\u1F29\\u1F2A\\u1F2B\\u1F2C\\u1F2D\\u1F2E\\u1F2F\\u1F38\\u1F39\\u1F3A\\u1F3B\\u1F3C\\u1F3D\\u1F3E\\u1F3F\\u1F48\\u1F49\\u1F4A\\u1F4B\\u1F4C\\u1F4D\\u1F59\\u1F5B\\u1F5D\\u1F5F\\u1F68\\u1F69\\u1F6A\\u1F6B\\u1F6C\\u1F6D\\u1F6E\\u1F6F\\u1FB8\\u1FB9\\u1FBA\\u1FBB\\u1FC8\\u1FC9\\u1FCA\\u1FCB\\u1FD8\\u1FD9\\u1FDA\\u1FDB\\u1FE8\\u1FE9\\u1FEA\\u1FEB\\u1FEC\\u1FF8\\u1FF9\\u1FFA\\u1FFB\\u2102\\u2107\\u210B\\u210C\\u210D\\u2110\\u2111\\u2112\\u2115\\u2119\\u211A\\u211B\\u211C\\u211D\\u2124\\u2126\\u2128\\u212A\\u212B\\u212C\\u212D\\u2130\\u2131\\u2132\\u2133\\u213E\\u213F\\u2145\\u2183\\u2C00\\u2C01\\u2C02\\u2C03\\u2C04\\u2C05\\u2C06\\u2C07\\u2C08\\u2C09\\u2C0A\\u2C0B\\u2C0C\\u2C0D\\u2C0E\\u2C0F\\u2C10\\u2C11\\u2C12\\u2C13\\u2C14\\u2C15\\u2C16\\u2C17\\u2C18\\u2C19\\u2C1A\\u2C1B\\u2C1C\\u2C1D\\u2C1E\\u2C1F\\u2C20\\u2C21\\u2C22\\u2C23\\u2C24\\u2C25\\u2C26\\u2C27\\u2C28\\u2C29\\u2C2A\\u2C2B\\u2C2C\\u2C2D\\u2C2E\\u2C60\\u2C62\\u2C63\\u2C64\\u2C67\\u2C69\\u2C6B\\u2C6D\\u2C6E\\u2C6F\\u2C72\\u2C75\\u2C80\\u2C82\\u2C84\\u2C86\\u2C88\\u2C8A\\u2C8C\\u2C8E\\u2C90\\u2C92\\u2C94\\u2C96\\u2C98\\u2C9A\\u2C9C\\u2C9E\\u2CA0\\u2CA2\\u2CA4\\u2CA6\\u2CA8\\u2CAA\\u2CAC\\u2CAE\\u2CB0\\u2CB2\\u2CB4\\u2CB6\\u2CB8\\u2CBA\\u2CBC\\u2CBE\\u2CC0\\u2CC2\\u2CC4\\u2CC6\\u2CC8\\u2CCA\\u2CCC\\u2CCE\\u2CD0\\u2CD2\\u2CD4\\u2CD6\\u2CD8\\u2CDA\\u2CDC\\u2CDE\\u2CE0\\u2CE2\\uA640\\uA642\\uA644\\uA646\\uA648\\uA64A\\uA64C\\uA64E\\uA650\\uA652\\uA654\\uA656\\uA658\\uA65A\\uA65C\\uA65E\\uA662\\uA664\\uA666\\uA668\\uA66A\\uA66C\\uA680\\uA682\\uA684\\uA686\\uA688\\uA68A\\uA68C\\uA68E\\uA690\\uA692\\uA694\\uA696\\uA722\\uA724\\uA726\\uA728\\uA72A\\uA72C\\uA72E\\uA732\\uA734\\uA736\\uA738\\uA73A\\uA73C\\uA73E\\uA740\\uA742\\uA744\\uA746\\uA748\\uA74A\\uA74C\\uA74E\\uA750\\uA752\\uA754\\uA756\\uA758\\uA75A\\uA75C\\uA75E\\uA760\\uA762\\uA764\\uA766\\uA768\\uA76A\\uA76C\\uA76E\\uA779\\uA77B\\uA77D\\uA77E\\uA780\\uA782\\uA784\\uA786\\uA78B\\uFF21\\uFF22\\uFF23\\uFF24\\uFF25\\uFF26\\uFF27\\uFF28\\uFF29\\uFF2A\\uFF2B\\uFF2C\\uFF2D\\uFF2E\\uFF2F\\uFF30\\uFF31\\uFF32\\uFF33\\uFF34\\uFF35\\uFF36\\uFF37\\uFF38\\uFF39\\uFF3A]"); - } - } - return result0; - } - - function parse_Mc() { - var result0; - - if (/^[\u0903\u093E\u093F\u0940\u0949\u094A\u094B\u094C\u0982\u0983\u09BE\u09BF\u09C0\u09C7\u09C8\u09CB\u09CC\u09D7\u0A03\u0A3E\u0A3F\u0A40\u0A83\u0ABE\u0ABF\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6\u0BC7\u0BC8\u0BCA\u0BCB\u0BCC\u0BD7\u0C01\u0C02\u0C03\u0C41\u0C42\u0C43\u0C44\u0C82\u0C83\u0CBE\u0CC0\u0CC1\u0CC2\u0CC3\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0D02\u0D03\u0D3E\u0D3F\u0D40\u0D46\u0D47\u0D48\u0D4A\u0D4B\u0D4C\u0D57\u0D82\u0D83\u0DCF\u0DD0\u0DD1\u0DD8\u0DD9\u0DDA\u0DDB\u0DDC\u0DDD\u0DDE\u0DDF\u0DF2\u0DF3\u0F3E\u0F3F\u0F7F\u102B\u102C\u1031\u1038\u103B\u103C\u1056\u1057\u1062\u1063\u1064\u1067\u1068\u1069\u106A\u106B\u106C\u106D\u1083\u1084\u1087\u1088\u1089\u108A\u108B\u108C\u108F\u17B6\u17BE\u17BF\u17C0\u17C1\u17C2\u17C3\u17C4\u17C5\u17C7\u17C8\u1923\u1924\u1925\u1926\u1929\u192A\u192B\u1930\u1931\u1933\u1934\u1935\u1936\u1937\u1938\u19B0\u19B1\u19B2\u19B3\u19B4\u19B5\u19B6\u19B7\u19B8\u19B9\u19BA\u19BB\u19BC\u19BD\u19BE\u19BF\u19C0\u19C8\u19C9\u1A19\u1A1A\u1A1B\u1B04\u1B35\u1B3B\u1B3D\u1B3E\u1B3F\u1B40\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1C24\u1C25\u1C26\u1C27\u1C28\u1C29\u1C2A\u1C2B\u1C34\u1C35\uA823\uA824\uA827\uA880\uA881\uA8B4\uA8B5\uA8B6\uA8B7\uA8B8\uA8B9\uA8BA\uA8BB\uA8BC\uA8BD\uA8BE\uA8BF\uA8C0\uA8C1\uA8C2\uA8C3\uA952\uA953\uAA2F\uAA30\uAA33\uAA34\uAA4D]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\u0903\\u093E\\u093F\\u0940\\u0949\\u094A\\u094B\\u094C\\u0982\\u0983\\u09BE\\u09BF\\u09C0\\u09C7\\u09C8\\u09CB\\u09CC\\u09D7\\u0A03\\u0A3E\\u0A3F\\u0A40\\u0A83\\u0ABE\\u0ABF\\u0AC0\\u0AC9\\u0ACB\\u0ACC\\u0B02\\u0B03\\u0B3E\\u0B40\\u0B47\\u0B48\\u0B4B\\u0B4C\\u0B57\\u0BBE\\u0BBF\\u0BC1\\u0BC2\\u0BC6\\u0BC7\\u0BC8\\u0BCA\\u0BCB\\u0BCC\\u0BD7\\u0C01\\u0C02\\u0C03\\u0C41\\u0C42\\u0C43\\u0C44\\u0C82\\u0C83\\u0CBE\\u0CC0\\u0CC1\\u0CC2\\u0CC3\\u0CC4\\u0CC7\\u0CC8\\u0CCA\\u0CCB\\u0CD5\\u0CD6\\u0D02\\u0D03\\u0D3E\\u0D3F\\u0D40\\u0D46\\u0D47\\u0D48\\u0D4A\\u0D4B\\u0D4C\\u0D57\\u0D82\\u0D83\\u0DCF\\u0DD0\\u0DD1\\u0DD8\\u0DD9\\u0DDA\\u0DDB\\u0DDC\\u0DDD\\u0DDE\\u0DDF\\u0DF2\\u0DF3\\u0F3E\\u0F3F\\u0F7F\\u102B\\u102C\\u1031\\u1038\\u103B\\u103C\\u1056\\u1057\\u1062\\u1063\\u1064\\u1067\\u1068\\u1069\\u106A\\u106B\\u106C\\u106D\\u1083\\u1084\\u1087\\u1088\\u1089\\u108A\\u108B\\u108C\\u108F\\u17B6\\u17BE\\u17BF\\u17C0\\u17C1\\u17C2\\u17C3\\u17C4\\u17C5\\u17C7\\u17C8\\u1923\\u1924\\u1925\\u1926\\u1929\\u192A\\u192B\\u1930\\u1931\\u1933\\u1934\\u1935\\u1936\\u1937\\u1938\\u19B0\\u19B1\\u19B2\\u19B3\\u19B4\\u19B5\\u19B6\\u19B7\\u19B8\\u19B9\\u19BA\\u19BB\\u19BC\\u19BD\\u19BE\\u19BF\\u19C0\\u19C8\\u19C9\\u1A19\\u1A1A\\u1A1B\\u1B04\\u1B35\\u1B3B\\u1B3D\\u1B3E\\u1B3F\\u1B40\\u1B41\\u1B43\\u1B44\\u1B82\\u1BA1\\u1BA6\\u1BA7\\u1BAA\\u1C24\\u1C25\\u1C26\\u1C27\\u1C28\\u1C29\\u1C2A\\u1C2B\\u1C34\\u1C35\\uA823\\uA824\\uA827\\uA880\\uA881\\uA8B4\\uA8B5\\uA8B6\\uA8B7\\uA8B8\\uA8B9\\uA8BA\\uA8BB\\uA8BC\\uA8BD\\uA8BE\\uA8BF\\uA8C0\\uA8C1\\uA8C2\\uA8C3\\uA952\\uA953\\uAA2F\\uAA30\\uAA33\\uAA34\\uAA4D]"); - } - } - return result0; - } - - function parse_Mn() { - var result0; - - if (/^[\u0300\u0301\u0302\u0303\u0304\u0305\u0306\u0307\u0308\u0309\u030A\u030B\u030C\u030D\u030E\u030F\u0310\u0311\u0312\u0313\u0314\u0315\u0316\u0317\u0318\u0319\u031A\u031B\u031C\u031D\u031E\u031F\u0320\u0321\u0322\u0323\u0324\u0325\u0326\u0327\u0328\u0329\u032A\u032B\u032C\u032D\u032E\u032F\u0330\u0331\u0332\u0333\u0334\u0335\u0336\u0337\u0338\u0339\u033A\u033B\u033C\u033D\u033E\u033F\u0340\u0341\u0342\u0343\u0344\u0345\u0346\u0347\u0348\u0349\u034A\u034B\u034C\u034D\u034E\u034F\u0350\u0351\u0352\u0353\u0354\u0355\u0356\u0357\u0358\u0359\u035A\u035B\u035C\u035D\u035E\u035F\u0360\u0361\u0362\u0363\u0364\u0365\u0366\u0367\u0368\u0369\u036A\u036B\u036C\u036D\u036E\u036F\u0483\u0484\u0485\u0486\u0487\u0591\u0592\u0593\u0594\u0595\u0596\u0597\u0598\u0599\u059A\u059B\u059C\u059D\u059E\u059F\u05A0\u05A1\u05A2\u05A3\u05A4\u05A5\u05A6\u05A7\u05A8\u05A9\u05AA\u05AB\u05AC\u05AD\u05AE\u05AF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610\u0611\u0612\u0613\u0614\u0615\u0616\u0617\u0618\u0619\u061A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\u0653\u0654\u0655\u0656\u0657\u0658\u0659\u065A\u065B\u065C\u065D\u065E\u0670\u06D6\u06D7\u06D8\u06D9\u06DA\u06DB\u06DC\u06DF\u06E0\u06E1\u06E2\u06E3\u06E4\u06E7\u06E8\u06EA\u06EB\u06EC\u06ED\u0711\u0730\u0731\u0732\u0733\u0734\u0735\u0736\u0737\u0738\u0739\u073A\u073B\u073C\u073D\u073E\u073F\u0740\u0741\u0742\u0743\u0744\u0745\u0746\u0747\u0748\u0749\u074A\u07A6\u07A7\u07A8\u07A9\u07AA\u07AB\u07AC\u07AD\u07AE\u07AF\u07B0\u07EB\u07EC\u07ED\u07EE\u07EF\u07F0\u07F1\u07F2\u07F3\u0901\u0902\u093C\u0941\u0942\u0943\u0944\u0945\u0946\u0947\u0948\u094D\u0951\u0952\u0953\u0954\u0962\u0963\u0981\u09BC\u09C1\u09C2\u09C3\u09C4\u09CD\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B\u0A4C\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1\u0AC2\u0AC3\u0AC4\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0B01\u0B3C\u0B3F\u0B41\u0B42\u0B43\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C3E\u0C3F\u0C40\u0C46\u0C47\u0C48\u0C4A\u0C4B\u0C4C\u0C4D\u0C55\u0C56\u0C62\u0C63\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D41\u0D42\u0D43\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2\u0DD3\u0DD4\u0DD6\u0E31\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0EB1\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBB\u0EBC\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71\u0F72\u0F73\u0F74\u0F75\u0F76\u0F77\u0F78\u0F79\u0F7A\u0F7B\u0F7C\u0F7D\u0F7E\u0F80\u0F81\u0F82\u0F83\u0F84\u0F86\u0F87\u0F90\u0F91\u0F92\u0F93\u0F94\u0F95\u0F96\u0F97\u0F99\u0F9A\u0F9B\u0F9C\u0F9D\u0F9E\u0F9F\u0FA0\u0FA1\u0FA2\u0FA3\u0FA4\u0FA5\u0FA6\u0FA7\u0FA8\u0FA9\u0FAA\u0FAB\u0FAC\u0FAD\u0FAE\u0FAF\u0FB0\u0FB1\u0FB2\u0FB3\u0FB4\u0FB5\u0FB6\u0FB7\u0FB8\u0FB9\u0FBA\u0FBB\u0FBC\u0FC6\u102D\u102E\u102F\u1030\u1032\u1033\u1034\u1035\u1036\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E\u105F\u1060\u1071\u1072\u1073\u1074\u1082\u1085\u1086\u108D\u135F\u1712\u1713\u1714\u1732\u1733\u1734\u1752\u1753\u1772\u1773\u17B7\u17B8\u17B9\u17BA\u17BB\u17BC\u17BD\u17C6\u17C9\u17CA\u17CB\u17CC\u17CD\u17CE\u17CF\u17D0\u17D1\u17D2\u17D3\u17DD\u180B\u180C\u180D\u18A9\u1920\u1921\u1922\u1927\u1928\u1932\u1939\u193A\u193B\u1A17\u1A18\u1B00\u1B01\u1B02\u1B03\u1B34\u1B36\u1B37\u1B38\u1B39\u1B3A\u1B3C\u1B42\u1B6B\u1B6C\u1B6D\u1B6E\u1B6F\u1B70\u1B71\u1B72\u1B73\u1B80\u1B81\u1BA2\u1BA3\u1BA4\u1BA5\u1BA8\u1BA9\u1C2C\u1C2D\u1C2E\u1C2F\u1C30\u1C31\u1C32\u1C33\u1C36\u1C37\u1DC0\u1DC1\u1DC2\u1DC3\u1DC4\u1DC5\u1DC6\u1DC7\u1DC8\u1DC9\u1DCA\u1DCB\u1DCC\u1DCD\u1DCE\u1DCF\u1DD0\u1DD1\u1DD2\u1DD3\u1DD4\u1DD5\u1DD6\u1DD7\u1DD8\u1DD9\u1DDA\u1DDB\u1DDC\u1DDD\u1DDE\u1DDF\u1DE0\u1DE1\u1DE2\u1DE3\u1DE4\u1DE5\u1DE6\u1DFE\u1DFF\u20D0\u20D1\u20D2\u20D3\u20D4\u20D5\u20D6\u20D7\u20D8\u20D9\u20DA\u20DB\u20DC\u20E1\u20E5\u20E6\u20E7\u20E8\u20E9\u20EA\u20EB\u20EC\u20ED\u20EE\u20EF\u20F0\u2DE0\u2DE1\u2DE2\u2DE3\u2DE4\u2DE5\u2DE6\u2DE7\u2DE8\u2DE9\u2DEA\u2DEB\u2DEC\u2DED\u2DEE\u2DEF\u2DF0\u2DF1\u2DF2\u2DF3\u2DF4\u2DF5\u2DF6\u2DF7\u2DF8\u2DF9\u2DFA\u2DFB\u2DFC\u2DFD\u2DFE\u2DFF\u302A\u302B\u302C\u302D\u302E\u302F\u3099\u309A\uA66F\uA67C\uA67D\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA926\uA927\uA928\uA929\uA92A\uA92B\uA92C\uA92D\uA947\uA948\uA949\uA94A\uA94B\uA94C\uA94D\uA94E\uA94F\uA950\uA951\uAA29\uAA2A\uAA2B\uAA2C\uAA2D\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uFB1E\uFE00\uFE01\uFE02\uFE03\uFE04\uFE05\uFE06\uFE07\uFE08\uFE09\uFE0A\uFE0B\uFE0C\uFE0D\uFE0E\uFE0F\uFE20\uFE21\uFE22\uFE23\uFE24\uFE25\uFE26]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\u0300\\u0301\\u0302\\u0303\\u0304\\u0305\\u0306\\u0307\\u0308\\u0309\\u030A\\u030B\\u030C\\u030D\\u030E\\u030F\\u0310\\u0311\\u0312\\u0313\\u0314\\u0315\\u0316\\u0317\\u0318\\u0319\\u031A\\u031B\\u031C\\u031D\\u031E\\u031F\\u0320\\u0321\\u0322\\u0323\\u0324\\u0325\\u0326\\u0327\\u0328\\u0329\\u032A\\u032B\\u032C\\u032D\\u032E\\u032F\\u0330\\u0331\\u0332\\u0333\\u0334\\u0335\\u0336\\u0337\\u0338\\u0339\\u033A\\u033B\\u033C\\u033D\\u033E\\u033F\\u0340\\u0341\\u0342\\u0343\\u0344\\u0345\\u0346\\u0347\\u0348\\u0349\\u034A\\u034B\\u034C\\u034D\\u034E\\u034F\\u0350\\u0351\\u0352\\u0353\\u0354\\u0355\\u0356\\u0357\\u0358\\u0359\\u035A\\u035B\\u035C\\u035D\\u035E\\u035F\\u0360\\u0361\\u0362\\u0363\\u0364\\u0365\\u0366\\u0367\\u0368\\u0369\\u036A\\u036B\\u036C\\u036D\\u036E\\u036F\\u0483\\u0484\\u0485\\u0486\\u0487\\u0591\\u0592\\u0593\\u0594\\u0595\\u0596\\u0597\\u0598\\u0599\\u059A\\u059B\\u059C\\u059D\\u059E\\u059F\\u05A0\\u05A1\\u05A2\\u05A3\\u05A4\\u05A5\\u05A6\\u05A7\\u05A8\\u05A9\\u05AA\\u05AB\\u05AC\\u05AD\\u05AE\\u05AF\\u05B0\\u05B1\\u05B2\\u05B3\\u05B4\\u05B5\\u05B6\\u05B7\\u05B8\\u05B9\\u05BA\\u05BB\\u05BC\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610\\u0611\\u0612\\u0613\\u0614\\u0615\\u0616\\u0617\\u0618\\u0619\\u061A\\u064B\\u064C\\u064D\\u064E\\u064F\\u0650\\u0651\\u0652\\u0653\\u0654\\u0655\\u0656\\u0657\\u0658\\u0659\\u065A\\u065B\\u065C\\u065D\\u065E\\u0670\\u06D6\\u06D7\\u06D8\\u06D9\\u06DA\\u06DB\\u06DC\\u06DF\\u06E0\\u06E1\\u06E2\\u06E3\\u06E4\\u06E7\\u06E8\\u06EA\\u06EB\\u06EC\\u06ED\\u0711\\u0730\\u0731\\u0732\\u0733\\u0734\\u0735\\u0736\\u0737\\u0738\\u0739\\u073A\\u073B\\u073C\\u073D\\u073E\\u073F\\u0740\\u0741\\u0742\\u0743\\u0744\\u0745\\u0746\\u0747\\u0748\\u0749\\u074A\\u07A6\\u07A7\\u07A8\\u07A9\\u07AA\\u07AB\\u07AC\\u07AD\\u07AE\\u07AF\\u07B0\\u07EB\\u07EC\\u07ED\\u07EE\\u07EF\\u07F0\\u07F1\\u07F2\\u07F3\\u0901\\u0902\\u093C\\u0941\\u0942\\u0943\\u0944\\u0945\\u0946\\u0947\\u0948\\u094D\\u0951\\u0952\\u0953\\u0954\\u0962\\u0963\\u0981\\u09BC\\u09C1\\u09C2\\u09C3\\u09C4\\u09CD\\u09E2\\u09E3\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B\\u0A4C\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1\\u0AC2\\u0AC3\\u0AC4\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0B01\\u0B3C\\u0B3F\\u0B41\\u0B42\\u0B43\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C3E\\u0C3F\\u0C40\\u0C46\\u0C47\\u0C48\\u0C4A\\u0C4B\\u0C4C\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0CBC\\u0CBF\\u0CC6\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D41\\u0D42\\u0D43\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2\\u0DD3\\u0DD4\\u0DD6\\u0E31\\u0E34\\u0E35\\u0E36\\u0E37\\u0E38\\u0E39\\u0E3A\\u0E47\\u0E48\\u0E49\\u0E4A\\u0E4B\\u0E4C\\u0E4D\\u0E4E\\u0EB1\\u0EB4\\u0EB5\\u0EB6\\u0EB7\\u0EB8\\u0EB9\\u0EBB\\u0EBC\\u0EC8\\u0EC9\\u0ECA\\u0ECB\\u0ECC\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71\\u0F72\\u0F73\\u0F74\\u0F75\\u0F76\\u0F77\\u0F78\\u0F79\\u0F7A\\u0F7B\\u0F7C\\u0F7D\\u0F7E\\u0F80\\u0F81\\u0F82\\u0F83\\u0F84\\u0F86\\u0F87\\u0F90\\u0F91\\u0F92\\u0F93\\u0F94\\u0F95\\u0F96\\u0F97\\u0F99\\u0F9A\\u0F9B\\u0F9C\\u0F9D\\u0F9E\\u0F9F\\u0FA0\\u0FA1\\u0FA2\\u0FA3\\u0FA4\\u0FA5\\u0FA6\\u0FA7\\u0FA8\\u0FA9\\u0FAA\\u0FAB\\u0FAC\\u0FAD\\u0FAE\\u0FAF\\u0FB0\\u0FB1\\u0FB2\\u0FB3\\u0FB4\\u0FB5\\u0FB6\\u0FB7\\u0FB8\\u0FB9\\u0FBA\\u0FBB\\u0FBC\\u0FC6\\u102D\\u102E\\u102F\\u1030\\u1032\\u1033\\u1034\\u1035\\u1036\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E\\u105F\\u1060\\u1071\\u1072\\u1073\\u1074\\u1082\\u1085\\u1086\\u108D\\u135F\\u1712\\u1713\\u1714\\u1732\\u1733\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B7\\u17B8\\u17B9\\u17BA\\u17BB\\u17BC\\u17BD\\u17C6\\u17C9\\u17CA\\u17CB\\u17CC\\u17CD\\u17CE\\u17CF\\u17D0\\u17D1\\u17D2\\u17D3\\u17DD\\u180B\\u180C\\u180D\\u18A9\\u1920\\u1921\\u1922\\u1927\\u1928\\u1932\\u1939\\u193A\\u193B\\u1A17\\u1A18\\u1B00\\u1B01\\u1B02\\u1B03\\u1B34\\u1B36\\u1B37\\u1B38\\u1B39\\u1B3A\\u1B3C\\u1B42\\u1B6B\\u1B6C\\u1B6D\\u1B6E\\u1B6F\\u1B70\\u1B71\\u1B72\\u1B73\\u1B80\\u1B81\\u1BA2\\u1BA3\\u1BA4\\u1BA5\\u1BA8\\u1BA9\\u1C2C\\u1C2D\\u1C2E\\u1C2F\\u1C30\\u1C31\\u1C32\\u1C33\\u1C36\\u1C37\\u1DC0\\u1DC1\\u1DC2\\u1DC3\\u1DC4\\u1DC5\\u1DC6\\u1DC7\\u1DC8\\u1DC9\\u1DCA\\u1DCB\\u1DCC\\u1DCD\\u1DCE\\u1DCF\\u1DD0\\u1DD1\\u1DD2\\u1DD3\\u1DD4\\u1DD5\\u1DD6\\u1DD7\\u1DD8\\u1DD9\\u1DDA\\u1DDB\\u1DDC\\u1DDD\\u1DDE\\u1DDF\\u1DE0\\u1DE1\\u1DE2\\u1DE3\\u1DE4\\u1DE5\\u1DE6\\u1DFE\\u1DFF\\u20D0\\u20D1\\u20D2\\u20D3\\u20D4\\u20D5\\u20D6\\u20D7\\u20D8\\u20D9\\u20DA\\u20DB\\u20DC\\u20E1\\u20E5\\u20E6\\u20E7\\u20E8\\u20E9\\u20EA\\u20EB\\u20EC\\u20ED\\u20EE\\u20EF\\u20F0\\u2DE0\\u2DE1\\u2DE2\\u2DE3\\u2DE4\\u2DE5\\u2DE6\\u2DE7\\u2DE8\\u2DE9\\u2DEA\\u2DEB\\u2DEC\\u2DED\\u2DEE\\u2DEF\\u2DF0\\u2DF1\\u2DF2\\u2DF3\\u2DF4\\u2DF5\\u2DF6\\u2DF7\\u2DF8\\u2DF9\\u2DFA\\u2DFB\\u2DFC\\u2DFD\\u2DFE\\u2DFF\\u302A\\u302B\\u302C\\u302D\\u302E\\u302F\\u3099\\u309A\\uA66F\\uA67C\\uA67D\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA8C4\\uA926\\uA927\\uA928\\uA929\\uA92A\\uA92B\\uA92C\\uA92D\\uA947\\uA948\\uA949\\uA94A\\uA94B\\uA94C\\uA94D\\uA94E\\uA94F\\uA950\\uA951\\uAA29\\uAA2A\\uAA2B\\uAA2C\\uAA2D\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uFB1E\\uFE00\\uFE01\\uFE02\\uFE03\\uFE04\\uFE05\\uFE06\\uFE07\\uFE08\\uFE09\\uFE0A\\uFE0B\\uFE0C\\uFE0D\\uFE0E\\uFE0F\\uFE20\\uFE21\\uFE22\\uFE23\\uFE24\\uFE25\\uFE26]"); - } - } - return result0; - } - - function parse_Nd() { - var result0; - - if (/^[0123456789\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6\u06F7\u06F8\u06F9\u07C0\u07C1\u07C2\u07C3\u07C4\u07C5\u07C6\u07C7\u07C8\u07C9\u0966\u0967\u0968\u0969\u096A\u096B\u096C\u096D\u096E\u096F\u09E6\u09E7\u09E8\u09E9\u09EA\u09EB\u09EC\u09ED\u09EE\u09EF\u0A66\u0A67\u0A68\u0A69\u0A6A\u0A6B\u0A6C\u0A6D\u0A6E\u0A6F\u0AE6\u0AE7\u0AE8\u0AE9\u0AEA\u0AEB\u0AEC\u0AED\u0AEE\u0AEF\u0B66\u0B67\u0B68\u0B69\u0B6A\u0B6B\u0B6C\u0B6D\u0B6E\u0B6F\u0BE6\u0BE7\u0BE8\u0BE9\u0BEA\u0BEB\u0BEC\u0BED\u0BEE\u0BEF\u0C66\u0C67\u0C68\u0C69\u0C6A\u0C6B\u0C6C\u0C6D\u0C6E\u0C6F\u0CE6\u0CE7\u0CE8\u0CE9\u0CEA\u0CEB\u0CEC\u0CED\u0CEE\u0CEF\u0D66\u0D67\u0D68\u0D69\u0D6A\u0D6B\u0D6C\u0D6D\u0D6E\u0D6F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\u0F20\u0F21\u0F22\u0F23\u0F24\u0F25\u0F26\u0F27\u0F28\u0F29\u1040\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1090\u1091\u1092\u1093\u1094\u1095\u1096\u1097\u1098\u1099\u17E0\u17E1\u17E2\u17E3\u17E4\u17E5\u17E6\u17E7\u17E8\u17E9\u1810\u1811\u1812\u1813\u1814\u1815\u1816\u1817\u1818\u1819\u1946\u1947\u1948\u1949\u194A\u194B\u194C\u194D\u194E\u194F\u19D0\u19D1\u19D2\u19D3\u19D4\u19D5\u19D6\u19D7\u19D8\u19D9\u1B50\u1B51\u1B52\u1B53\u1B54\u1B55\u1B56\u1B57\u1B58\u1B59\u1BB0\u1BB1\u1BB2\u1BB3\u1BB4\u1BB5\u1BB6\u1BB7\u1BB8\u1BB9\u1C40\u1C41\u1C42\u1C43\u1C44\u1C45\u1C46\u1C47\u1C48\u1C49\u1C50\u1C51\u1C52\u1C53\u1C54\u1C55\u1C56\u1C57\u1C58\u1C59\uA620\uA621\uA622\uA623\uA624\uA625\uA626\uA627\uA628\uA629\uA8D0\uA8D1\uA8D2\uA8D3\uA8D4\uA8D5\uA8D6\uA8D7\uA8D8\uA8D9\uA900\uA901\uA902\uA903\uA904\uA905\uA906\uA907\uA908\uA909\uAA50\uAA51\uAA52\uAA53\uAA54\uAA55\uAA56\uAA57\uAA58\uAA59\uFF10\uFF11\uFF12\uFF13\uFF14\uFF15\uFF16\uFF17\uFF18\uFF19]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[0123456789\\u0660\\u0661\\u0662\\u0663\\u0664\\u0665\\u0666\\u0667\\u0668\\u0669\\u06F0\\u06F1\\u06F2\\u06F3\\u06F4\\u06F5\\u06F6\\u06F7\\u06F8\\u06F9\\u07C0\\u07C1\\u07C2\\u07C3\\u07C4\\u07C5\\u07C6\\u07C7\\u07C8\\u07C9\\u0966\\u0967\\u0968\\u0969\\u096A\\u096B\\u096C\\u096D\\u096E\\u096F\\u09E6\\u09E7\\u09E8\\u09E9\\u09EA\\u09EB\\u09EC\\u09ED\\u09EE\\u09EF\\u0A66\\u0A67\\u0A68\\u0A69\\u0A6A\\u0A6B\\u0A6C\\u0A6D\\u0A6E\\u0A6F\\u0AE6\\u0AE7\\u0AE8\\u0AE9\\u0AEA\\u0AEB\\u0AEC\\u0AED\\u0AEE\\u0AEF\\u0B66\\u0B67\\u0B68\\u0B69\\u0B6A\\u0B6B\\u0B6C\\u0B6D\\u0B6E\\u0B6F\\u0BE6\\u0BE7\\u0BE8\\u0BE9\\u0BEA\\u0BEB\\u0BEC\\u0BED\\u0BEE\\u0BEF\\u0C66\\u0C67\\u0C68\\u0C69\\u0C6A\\u0C6B\\u0C6C\\u0C6D\\u0C6E\\u0C6F\\u0CE6\\u0CE7\\u0CE8\\u0CE9\\u0CEA\\u0CEB\\u0CEC\\u0CED\\u0CEE\\u0CEF\\u0D66\\u0D67\\u0D68\\u0D69\\u0D6A\\u0D6B\\u0D6C\\u0D6D\\u0D6E\\u0D6F\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\\u0ED0\\u0ED1\\u0ED2\\u0ED3\\u0ED4\\u0ED5\\u0ED6\\u0ED7\\u0ED8\\u0ED9\\u0F20\\u0F21\\u0F22\\u0F23\\u0F24\\u0F25\\u0F26\\u0F27\\u0F28\\u0F29\\u1040\\u1041\\u1042\\u1043\\u1044\\u1045\\u1046\\u1047\\u1048\\u1049\\u1090\\u1091\\u1092\\u1093\\u1094\\u1095\\u1096\\u1097\\u1098\\u1099\\u17E0\\u17E1\\u17E2\\u17E3\\u17E4\\u17E5\\u17E6\\u17E7\\u17E8\\u17E9\\u1810\\u1811\\u1812\\u1813\\u1814\\u1815\\u1816\\u1817\\u1818\\u1819\\u1946\\u1947\\u1948\\u1949\\u194A\\u194B\\u194C\\u194D\\u194E\\u194F\\u19D0\\u19D1\\u19D2\\u19D3\\u19D4\\u19D5\\u19D6\\u19D7\\u19D8\\u19D9\\u1B50\\u1B51\\u1B52\\u1B53\\u1B54\\u1B55\\u1B56\\u1B57\\u1B58\\u1B59\\u1BB0\\u1BB1\\u1BB2\\u1BB3\\u1BB4\\u1BB5\\u1BB6\\u1BB7\\u1BB8\\u1BB9\\u1C40\\u1C41\\u1C42\\u1C43\\u1C44\\u1C45\\u1C46\\u1C47\\u1C48\\u1C49\\u1C50\\u1C51\\u1C52\\u1C53\\u1C54\\u1C55\\u1C56\\u1C57\\u1C58\\u1C59\\uA620\\uA621\\uA622\\uA623\\uA624\\uA625\\uA626\\uA627\\uA628\\uA629\\uA8D0\\uA8D1\\uA8D2\\uA8D3\\uA8D4\\uA8D5\\uA8D6\\uA8D7\\uA8D8\\uA8D9\\uA900\\uA901\\uA902\\uA903\\uA904\\uA905\\uA906\\uA907\\uA908\\uA909\\uAA50\\uAA51\\uAA52\\uAA53\\uAA54\\uAA55\\uAA56\\uAA57\\uAA58\\uAA59\\uFF10\\uFF11\\uFF12\\uFF13\\uFF14\\uFF15\\uFF16\\uFF17\\uFF18\\uFF19]"); - } - } - return result0; - } - - function parse_Nl() { - var result0; - - if (/^[\u16EE\u16EF\u16F0\u2160\u2161\u2162\u2163\u2164\u2165\u2166\u2167\u2168\u2169\u216A\u216B\u216C\u216D\u216E\u216F\u2170\u2171\u2172\u2173\u2174\u2175\u2176\u2177\u2178\u2179\u217A\u217B\u217C\u217D\u217E\u217F\u2180\u2181\u2182\u2185\u2186\u2187\u2188\u3007\u3021\u3022\u3023\u3024\u3025\u3026\u3027\u3028\u3029\u3038\u3039\u303A]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\u16EE\\u16EF\\u16F0\\u2160\\u2161\\u2162\\u2163\\u2164\\u2165\\u2166\\u2167\\u2168\\u2169\\u216A\\u216B\\u216C\\u216D\\u216E\\u216F\\u2170\\u2171\\u2172\\u2173\\u2174\\u2175\\u2176\\u2177\\u2178\\u2179\\u217A\\u217B\\u217C\\u217D\\u217E\\u217F\\u2180\\u2181\\u2182\\u2185\\u2186\\u2187\\u2188\\u3007\\u3021\\u3022\\u3023\\u3024\\u3025\\u3026\\u3027\\u3028\\u3029\\u3038\\u3039\\u303A]"); - } - } - return result0; - } - - function parse_Pc() { - var result0; - - if (/^[_\u203F\u2040\u2054\uFE33\uFE34\uFE4D\uFE4E\uFE4F\uFF3F]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[_\\u203F\\u2040\\u2054\\uFE33\\uFE34\\uFE4D\\uFE4E\\uFE4F\\uFF3F]"); - } - } - return result0; - } - - function parse_Zs() { - var result0; - - if (/^[ \xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[ \\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000]"); - } - } - return result0; - } - - function parse_blank() { - var result0, result1; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = []; - result1 = parse_Comment(); - if (result1 === null) { - if (/^[ \t]/.test(input.charAt(pos))) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("[ \\t]"); - } - } - } - while (result1 !== null) { - result0.push(result1); - result1 = parse_Comment(); - if (result1 === null) { - if (/^[ \t]/.test(input.charAt(pos))) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("[ \\t]"); - } - } - } - } - if (result0 !== null) { - result1 = parse_EOL(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return undefined; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EOL() { - var result0; - - if (input.substr(pos, 2) === "\r\n") { - result0 = "\r\n"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\r\\n\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 10) { - result0 = "\n"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\n\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 13) { - result0 = "\r"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\r\""); - } - } - } - } - return result0; - } - - function parse_SAMEDENT() { - var result0, result1; - var pos0, pos1; - - pos0 = pos; - result0 = []; - if (/^[ \t]/.test(input.charAt(pos))) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("[ \\t]"); - } - } - if (result1 === null) { - pos1 = pos; - result1 = parse_Comment(); - if (result1 !== null) { - result1 = (function(offset) { return ""})(pos1); - } - if (result1 === null) { - pos = pos1; - } - } - while (result1 !== null) { - result0.push(result1); - if (/^[ \t]/.test(input.charAt(pos))) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("[ \\t]"); - } - } - if (result1 === null) { - pos1 = pos; - result1 = parse_Comment(); - if (result1 !== null) { - result1 = (function(offset) { return ""})(pos1); - } - if (result1 === null) { - pos = pos1; - } - } - } - if (result0 !== null) { - result1 = (function(offset, i) { return i.join("") === indent; })(pos, result0) ? "" : null; - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - return result0; - } - - function parse_INDENT() { - var result0, result1, result2, result3, result4; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - pos3 = pos; - result1 = []; - result2 = parse_Comment(); - while (result2 !== null) { - result1.push(result2); - result2 = parse_Comment(); - } - if (result1 !== null) { - if (/^[ \t]/.test(input.charAt(pos))) { - result2 = input.charAt(pos); - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("[ \\t]"); - } - } - if (result2 !== null) { - result3 = []; - result4 = parse_Comment(); - while (result4 !== null) { - result3.push(result4); - result4 = parse_Comment(); - } - if (result3 !== null) { - result1 = [result1, result2, result3]; - } else { - result1 = null; - pos = pos3; - } - } else { - result1 = null; - pos = pos3; - } - } else { - result1 = null; - pos = pos3; - } - if (result1 !== null) { - result1 = (function(offset, m) {return m[1]})(pos2, result1); - } - if (result1 === null) { - pos = pos2; - } - if (result1 !== null) { - result0 = []; - while (result1 !== null) { - result0.push(result1); - pos2 = pos; - pos3 = pos; - result1 = []; - result2 = parse_Comment(); - while (result2 !== null) { - result1.push(result2); - result2 = parse_Comment(); - } - if (result1 !== null) { - if (/^[ \t]/.test(input.charAt(pos))) { - result2 = input.charAt(pos); - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("[ \\t]"); - } - } - if (result2 !== null) { - result3 = []; - result4 = parse_Comment(); - while (result4 !== null) { - result3.push(result4); - result4 = parse_Comment(); - } - if (result3 !== null) { - result1 = [result1, result2, result3]; - } else { - result1 = null; - pos = pos3; - } - } else { - result1 = null; - pos = pos3; - } - } else { - result1 = null; - pos = pos3; - } - if (result1 !== null) { - result1 = (function(offset, m) {return m[1]})(pos2, result1); - } - if (result1 === null) { - pos = pos2; - } - } - } else { - result0 = null; - } - if (result0 !== null) { - result1 = (function(offset, i) { return i.length > indent.length; })(pos, result0) ? "" : null; - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, i) { indentStack.push(indent); indent = i.join(""); pos = offset; })(pos0, result0[0]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_DEDENT() { - var result0; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = []; - if (result0 !== null) { - result0 = (function(offset) { indent = indentStack.pop(); })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - - function cleanupExpected(expected) { - expected.sort(); - - var lastExpected = null; - var cleanExpected = []; - for (var i = 0; i < expected.length; i++) { - if (expected[i] !== lastExpected) { - cleanExpected.push(expected[i]); - lastExpected = expected[i]; - } - } - return cleanExpected; - } - - function computeErrorPosition() { - /* - * The first idea was to use |String.split| to break the input up to the - * error position along newlines and derive the line and column from - * there. However IE's |split| implementation is so broken that it was - * enough to prevent it. - */ - - var line = 1; - var column = 1; - var seenCR = false; - - for (var i = 0; i < Math.max(pos, rightmostFailuresPos); i++) { - var ch = input.charAt(i); - if (ch === "\n") { - if (!seenCR) { line++; } - column = 1; - seenCR = false; - } else if (ch === "\r" || ch === "\u2028" || ch === "\u2029") { - line++; - column = 1; - seenCR = true; - } else { - column++; - seenCR = false; - } - } - - return { line: line, column: column }; - } - - var indentStack = [], indent = ""; - - var result = parseFunctions[startRule](); - - /* - * The parser is now in one of the following three states: - * - * 1. The parser successfully parsed the whole input. - * - * - |result !== null| - * - |pos === input.length| - * - |rightmostFailuresExpected| may or may not contain something - * - * 2. The parser successfully parsed only a part of the input. - * - * - |result !== null| - * - |pos < input.length| - * - |rightmostFailuresExpected| may or may not contain something - * - * 3. The parser did not successfully parse any part of the input. - * - * - |result === null| - * - |pos === 0| - * - |rightmostFailuresExpected| contains at least one failure - * - * All code following this comment (including called functions) must - * handle these states. - */ - if (result === null || pos !== input.length) { - var offset = Math.max(pos, rightmostFailuresPos); - var found = offset < input.length ? input.charAt(offset) : null; - var errorPosition = computeErrorPosition(); - - throw new this.SyntaxError( - cleanupExpected(rightmostFailuresExpected), - found, - offset, - errorPosition.line, - errorPosition.column - ); - } - - return result; + return '$' + name; + }; + + return Context; + + })(); + + + /* + Precontext Addition todo list: + [ ] Affecting PHP's Behaviour + [ ] APC + [ ] APD + [ ] bcompiler + [ ] BLENC + [ ] Error Handling + [ ] htscanner + [ ] inclued + [ ] Memtrack + [ ] OPcache + [ ] Output Control + [ ] PHP Options/Info + [ ] runkit + [ ] scream + [ ] uopz + [ ] Weakref + [ ] WinCache + [ ] Xhprof + [ ] Audio Formats Manipulation + [ ] ID3 + [ ] KTaglib + [ ] oggvorbis + [ ] OpenAL + [ ] Authentication Services + [ ] KADM5 + [ ] Radius + [ ] Command Line Specific Extensions + [ ] Ncurses + [ ] Newt + [ ] Readline + [ ] Compression and Archive Extensions + [ ] Bzip2 + [ ] LZF + [ ] Phar + [ ] Rar + [ ] Zip + [ ] Zlib + [ ] Credit Card Processing + [ ] MCVE + [ ] SPPLUS + [ ] Cryptography Extensions + [ ] Crack + [ ] Hash + [ ] Mcrypt + [ ] Mhash + [ ] OpenSSL + [ ] Password Hashing + [ ] Database Extensions + [ ] Abstraction Layers + [ ] Vendor Specific Database Extensions + [ ] Date and Time Related Extensions + [ ] Calendar + [ ] Date/Time + [ ] HRTime + [/] File System Related Extensions + [x] Direct IO + [x] Directories + [x] Fileinfo + [x] Filesystem + [x] Inotify + [x] Mimetype + [ ] Proctitle + [ ] xattr + [ ] xdiff + [ ] Human Language and Character Encoding Support + [ ] Enchant + [ ] FriBiDi + [ ] Gender + [ ] Gettext + [ ] iconv + [ ] intl + [ ] Multibyte String + [ ] Pspell + [ ] Recode + [ ] Image Processing and Generation + [ ] Cairo + [ ] Exif + [ ] GD + [ ] Gmagick + [ ] ImageMagick + [ ] Mail Related Extensions + [ ] Cyrus + [ ] IMAP + [ ] Mail + [ ] Mailparse + [ ] vpopmail + [ ] Mathematical Extensions + [ ] BC Math + [ ] GMP + [ ] Lapack + [ ] Math + [ ] Statistics + [ ] Trader + [ ] Non-Text MIME Output + [ ] FDF + [ ] GnuPG + [ ] haru + [ ] Ming + [ ] PDF + [ ] PS + [ ] RPM Reader + [ ] SWF + [ ] Process Control Extensions + [ ] Eio + [ ] Ev + [ ] Expect + [ ] Libevent + [ ] PCNTL + [ ] POSIX + [ ] Program execution + [ ] pthreads + [ ] Semaphore + [ ] Shared Memory + [ ] Sync + [ ] Other Basic Extensions + [ ] GeoIP + [ ] FANN + [ ] JSON + [ ] Judy + [ ] Lua + [ ] Misc. + [ ] Parsekit + [ ] SPL + [ ] SPL Types + [ ] Streams + [ ] Tidy + [ ] Tokenizer + [ ] URLs + [ ] V8js + [ ] Yaml + [ ] Yaf + [ ] Taint + [ ] Other Services + [ ] chdb + [ ] cURL + [ ] Event + [ ] FAM + [ ] FTP + [ ] Gearman + [ ] Gopher + [ ] Gupnp + [ ] HTTP + [ ] Hyperwave + [ ] Hyperwave API + [ ] Java + [ ] LDAP + [ ] Lotus Notes + [ ] Memcache + [ ] Memcached + [ ] mqseries + [ ] Network + [ ] RRD + [ ] SAM + [ ] SNMP + [ ] Sockets + [ ] SSH2 + [ ] Stomp + [ ] SVM + [ ] SVN + [ ] TCP + [ ] Varnish + [ ] YAZ + [ ] YP/NIS + [ ] 0MQ messaging + [ ] Search Engine Extensions + [ ] mnoGoSearch + [ ] Solr + [ ] Sphinx + [ ] Swish + [ ] Server Specific Extensions + [ ] Apache + [ ] FastCGI Process Manager + [ ] IIS + [ ] NSAPI + [ ] Session Extensions + [ ] Msession + [ ] Sessions + [ ] Session PgSQL + [ ] Text Processing + [ ] BBCode + [ ] PCRE + [ ] POSIX Regex + [ ] ssdeep + [ ] Strings + [x] Variable and Type Related Extensions + [x] Arrays + [x] Classes/Objects + [x] Classkit + [x] Ctype + [x] Filter + [x] Function Handling + [x] Object Aggregation + [x] Quickhash + [x] Reflection + [x] Variable handling + [ ] Web Services + [ ] OAuth + [ ] SCA + [ ] SOAP + [ ] Yar + [ ] XML-RPC + [ ] Windows Only Extensions + [ ] .NET + [ ] COM + [ ] W32api + [ ] win32ps + [ ] win32service + [ ] XML Manipulation + [ ] DOM + [ ] libxml + [ ] qtdom + [ ] SDO + [ ] SDO-DAS-Relational + [ ] SDO DAS XML + [ ] SimpleXML + [ ] WDDX + [ ] XMLDiff + [ ] XML Parser + [ ] XMLReader + [ ] XMLWriter + [ ] XSL + [ ] XSLT (PHP 4) + */ + + PreContext = exports.PreContext = new Context({ + + /* Variable and Type Related Extensions */ + 'call_​user_​func_​array': { + 'type': 'function' + }, + 'call_user_func': { + 'type': 'function' + }, + 'create_function': { + 'type': 'function' + }, + 'forward_static_call_array': { + 'type': 'function' + }, + 'forward_static_call': { + 'type': 'function' + }, + 'func_get_arg': { + 'type': 'function' + }, + 'func_get_args': { + 'type': 'function' + }, + 'func_num_args': { + 'type': 'function' + }, + 'function_exists': { + 'type': 'function' + }, + 'get_defined_functions': { + 'type': 'function' + }, + 'register_shutdown_function': { + 'type': 'function' + }, + 'register_tick_function': { + 'type': 'function' + }, + 'unregister_tick_function': { + 'type': 'function' + }, + 'CASE_LOWER': { + 'type': 'cte' + }, + 'CASE_UPPER': { + 'type': 'cte' + }, + 'SORT_ASC': { + 'type': 'cte' + }, + 'SORT_DESC': { + 'type': 'cte' + }, + 'SORT_REGULAR': { + 'type': 'cte' + }, + 'SORT_NUMERIC': { + 'type': 'cte' + }, + 'SORT_STRING': { + 'type': 'cte' + }, + 'SORT_LOCALE_STRING': { + 'type': 'cte' + }, + 'SORT_NATURAL': { + 'type': 'cte' + }, + 'SORT_FLAG_CASE': { + 'type': 'cte' + }, + 'COUNT_NORMAL': { + 'type': 'cte' + }, + 'COUNT_RECURSIVE': { + 'type': 'cte' + }, + 'EXTR_OVERWRITE': { + 'type': 'cte' + }, + 'EXTR_SKIP': { + 'type': 'cte' + }, + 'EXTR_PREFIX_SAME': { + 'type': 'cte' + }, + 'EXTR_PREFIX_ALL': { + 'type': 'cte' + }, + 'EXTR_PREFIX_INVALID': { + 'type': 'cte' + }, + 'EXTR_PREFIX_IF_EXISTS': { + 'type': 'cte' + }, + 'EXTR_IF_EXISTS': { + 'type': 'cte' + }, + 'EXTR_REFS': { + 'type': 'cte' + }, + 'array_change_key_case': { + 'type': 'function' + }, + 'array_chunk': { + 'type': 'function' + }, + 'array_column': { + 'type': 'function' + }, + 'array_combine': { + 'type': 'function' + }, + 'array_count_values': { + 'type': 'function' + }, + 'array_diff_assoc': { + 'type': 'function' + }, + 'array_diff_key': { + 'type': 'function' + }, + 'array_diff_uassoc': { + 'type': 'function' + }, + 'array_diff_ukey': { + 'type': 'function' + }, + 'array_diff': { + 'type': 'function' + }, + 'array_fill_keys': { + 'type': 'function' + }, + 'array_fill': { + 'type': 'function' + }, + 'array_filter': { + 'type': 'function' + }, + 'array_flip': { + 'type': 'function' + }, + 'array_intersect_assoc': { + 'type': 'function' + }, + 'array_intersect_key': { + 'type': 'function' + }, + 'array_intersect_uassoc': { + 'type': 'function' + }, + 'array_intersect_ukey': { + 'type': 'function' + }, + 'array_intersect': { + 'type': 'function' + }, + 'array_key_exists': { + 'type': 'function' + }, + 'array_keys': { + 'type': 'function' + }, + 'array_map': { + 'type': 'function' + }, + 'array_merge_recursive': { + 'type': 'function' + }, + 'array_merge': { + 'type': 'function' + }, + 'array_multisort': { + 'type': 'function' + }, + 'array_pad': { + 'type': 'function' + }, + 'array_pop': { + 'type': 'function' + }, + 'array_product': { + 'type': 'function' + }, + 'array_push': { + 'type': 'function' + }, + 'array_rand': { + 'type': 'function' + }, + 'array_reduce': { + 'type': 'function' + }, + 'array_replace_recursive': { + 'type': 'function' + }, + 'array_replace': { + 'type': 'function' + }, + 'array_reverse': { + 'type': 'function' + }, + 'array_search': { + 'type': 'function' + }, + 'array_shift': { + 'type': 'function' + }, + 'array_slice': { + 'type': 'function' + }, + 'array_splice': { + 'type': 'function' + }, + 'array_sum': { + 'type': 'function' + }, + 'array_udiff_assoc': { + 'type': 'function' + }, + 'array_udiff_uassoc': { + 'type': 'function' + }, + 'array_udiff': { + 'type': 'function' + }, + 'array_uintersect_assoc': { + 'type': 'function' + }, + 'array_uintersect_uassoc': { + 'type': 'function' + }, + 'array_uintersect': { + 'type': 'function' + }, + 'array_unique': { + 'type': 'function' + }, + 'array_unshift': { + 'type': 'function' + }, + 'array_values': { + 'type': 'function' + }, + 'array_walk_recursive': { + 'type': 'function' + }, + 'array_walk': { + 'type': 'function' + }, + 'array': { + 'type': 'function' + }, + 'arsort': { + 'type': 'function' + }, + 'asort': { + 'type': 'function' + }, + 'compact': { + 'type': 'function' + }, + 'count': { + 'type': 'function' + }, + 'current': { + 'type': 'function' + }, + 'each': { + 'type': 'function' + }, + 'end': { + 'type': 'function' + }, + 'extract': { + 'type': 'function' + }, + 'in_array': { + 'type': 'function' + }, + 'key_exists': { + 'type': 'function' + }, + 'key': { + 'type': 'function' + }, + 'krsort': { + 'type': 'function' + }, + 'ksort': { + 'type': 'function' + }, + 'list': { + 'type': 'function' + }, + 'natcasesort': { + 'type': 'function' + }, + 'natsort': { + 'type': 'function' + }, + 'next': { + 'type': 'function' + }, + 'pos': { + 'type': 'function' + }, + 'prev': { + 'type': 'function' + }, + 'range': { + 'type': 'function' + }, + 'reset': { + 'type': 'function' + }, + 'rsort': { + 'type': 'function' + }, + 'shuffle': { + 'type': 'function' + }, + 'sizeof': { + 'type': 'function' + }, + 'sort': { + 'type': 'function' + }, + 'uasort': { + 'type': 'function' + }, + 'uksort': { + 'type': 'function' + }, + 'usort': { + 'type': 'function' + }, + '__autoload': { + 'type': 'function' + }, + 'call_user_method_array': { + 'type': 'function' + }, + 'call_user_method': { + 'type': 'function' + }, + 'class_alias': { + 'type': 'function' + }, + 'class_exists': { + 'type': 'function' + }, + 'get_called_class': { + 'type': 'function' + }, + 'get_class_methods': { + 'type': 'function' + }, + 'get_class_vars': { + 'type': 'function' + }, + 'get_class': { + 'type': 'function' + }, + 'get_declared_classes': { + 'type': 'function' + }, + 'get_declared_interfaces': { + 'type': 'function' + }, + 'get_declared_traits': { + 'type': 'function' + }, + 'get_object_vars': { + 'type': 'function' + }, + 'get_parent_class': { + 'type': 'function' + }, + 'interface_exists': { + 'type': 'function' + }, + 'is_a': { + 'type': 'function' + }, + 'is_subclass_of': { + 'type': 'function' + }, + 'method_exists': { + 'type': 'function' + }, + 'property_exists': { + 'type': 'function' + }, + 'trait_exists': { + 'type': 'function' + }, + 'CLASSKIT_ACC_PRIVATE': { + 'type': 'cte' + }, + 'CLASSKIT_ACC_PROTECTED': { + 'type': 'cte' + }, + 'CLASSKIT_ACC_PUBLIC': { + 'type': 'cte' + }, + 'classkit_import': { + 'type': 'function' + }, + 'classkit_method_add': { + 'type': 'function' + }, + 'classkit_method_copy': { + 'type': 'function' + }, + 'classkit_method_redefine': { + 'type': 'function' + }, + 'classkit_method_remove': { + 'type': 'function' + }, + 'classkit_method_rename': { + 'type': 'function' + }, + 'ctype_alnum': { + 'type': 'function' + }, + 'ctype_alpha': { + 'type': 'function' + }, + 'ctype_cntrl': { + 'type': 'function' + }, + 'ctype_digit': { + 'type': 'function' + }, + 'ctype_graph': { + 'type': 'function' + }, + 'ctype_lower': { + 'type': 'function' + }, + 'ctype_print': { + 'type': 'function' + }, + 'ctype_punct': { + 'type': 'function' + }, + 'ctype_space': { + 'type': 'function' + }, + 'ctype_upper': { + 'type': 'function' + }, + 'ctype_xdigit': { + 'type': 'function' + }, + 'INPUT_POST': { + 'type': 'cte' + }, + 'INPUT_GET': { + 'type': 'cte' + }, + 'INPUT_COOKIE': { + 'type': 'cte' + }, + 'INPUT_ENV': { + 'type': 'cte' + }, + 'INPUT_SERVER': { + 'type': 'cte' + }, + 'INPUT_SESSION': { + 'type': 'cte' + }, + 'INPUT_REQUEST': { + 'type': 'cte' + }, + 'FILTER_FLAG_NONE': { + 'type': 'cte' + }, + 'FILTER_REQUIRE_SCALAR': { + 'type': 'cte' + }, + 'FILTER_REQUIRE_ARRAY': { + 'type': 'cte' + }, + 'FILTER_FORCE_ARRAY': { + 'type': 'cte' + }, + 'FILTER_NULL_ON_FAILURE': { + 'type': 'cte' + }, + 'FILTER_VALIDATE_INT': { + 'type': 'cte' + }, + 'FILTER_VALIDATE_BOOLEAN': { + 'type': 'cte' + }, + 'FILTER_VALIDATE_FLOAT': { + 'type': 'cte' + }, + 'FILTER_VALIDATE_REGEXP': { + 'type': 'cte' + }, + 'FILTER_VALIDATE_URL': { + 'type': 'cte' + }, + 'FILTER_VALIDATE_EMAIL': { + 'type': 'cte' + }, + 'FILTER_VALIDATE_IP': { + 'type': 'cte' + }, + 'FILTER_DEFAULT': { + 'type': 'cte' + }, + 'FILTER_UNSAFE_RAW': { + 'type': 'cte' + }, + 'FILTER_SANITIZE_STRING': { + 'type': 'cte' + }, + 'FILTER_SANITIZE_STRIPPED': { + 'type': 'cte' + }, + 'FILTER_SANITIZE_ENCODED': { + 'type': 'cte' + }, + 'FILTER_SANITIZE_SPECIAL_CHARS': { + 'type': 'cte' + }, + 'FILTER_SANITIZE_EMAIL': { + 'type': 'cte' + }, + 'FILTER_SANITIZE_URL': { + 'type': 'cte' + }, + 'FILTER_SANITIZE_NUMBER_INT': { + 'type': 'cte' + }, + 'FILTER_SANITIZE_NUMBER_FLOAT': { + 'type': 'cte' + }, + 'FILTER_SANITIZE_MAGIC_QUOTES': { + 'type': 'cte' + }, + 'FILTER_CALLBACK': { + 'type': 'cte' + }, + 'FILTER_FLAG_ALLOW_OCTAL': { + 'type': 'cte' + }, + 'FILTER_FLAG_ALLOW_HEX': { + 'type': 'cte' + }, + 'FILTER_FLAG_STRIP_LOW': { + 'type': 'cte' + }, + 'FILTER_FLAG_STRIP_HIGH': { + 'type': 'cte' + }, + 'FILTER_FLAG_ENCODE_LOW': { + 'type': 'cte' + }, + 'FILTER_FLAG_ENCODE_HIGH': { + 'type': 'cte' + }, + 'FILTER_FLAG_ENCODE_AMP': { + 'type': 'cte' + }, + 'FILTER_FLAG_NO_ENCODE_QUOTES': { + 'type': 'cte' + }, + 'FILTER_FLAG_EMPTY_STRING_NULL': { + 'type': 'cte' + }, + 'FILTER_FLAG_ALLOW_FRACTION': { + 'type': 'cte' + }, + 'FILTER_FLAG_ALLOW_THOUSAND': { + 'type': 'cte' + }, + 'FILTER_FLAG_ALLOW_SCIENTIFIC': { + 'type': 'cte' + }, + 'FILTER_FLAG_PATH_REQUIRED': { + 'type': 'cte' + }, + 'FILTER_FLAG_QUERY_REQUIRED': { + 'type': 'cte' + }, + 'FILTER_FLAG_IPV4': { + 'type': 'cte' + }, + 'FILTER_FLAG_IPV6': { + 'type': 'cte' + }, + 'FILTER_FLAG_NO_RES_RANGE': { + 'type': 'cte' + }, + 'FILTER_FLAG_NO_PRIV_RANGE': { + 'type': 'cte' + }, + 'filter_has_var': { + 'type': 'function' + }, + 'filter_id': { + 'type': 'function' + }, + 'filter_input_array': { + 'type': 'function' + }, + 'filter_input': { + 'type': 'function' + }, + 'filter_list': { + 'type': 'function' + }, + 'filter_var_array': { + 'type': 'function' + }, + 'filter_var': { + 'type': 'function' + }, + 'aggregate_infoh': { + 'type': 'function' + }, + 'aggregate_methods_by_list': { + 'type': 'function' + }, + 'aggregate_methods_by_regexp': { + 'type': 'function' + }, + 'aggregate_methods': { + 'type': 'function' + }, + 'aggregate_properties_by_list': { + 'type': 'function' + }, + 'aggregate_properties_by_regexp': { + 'type': 'function' + }, + 'aggregate_properties': { + 'type': 'function' + }, + 'aggregate': { + 'type': 'function' + }, + 'aggregation_info': { + 'type': 'function' + }, + 'deaggregate': { + 'type': 'function' + }, + 'QuickHashIntSet': { + 'type': 'class' + }, + 'QuickHashIntHash': { + 'type': 'class' + }, + 'QuickHashStringIntHash': { + 'type': 'class' + }, + 'QuickHashIntStringHash': { + 'type': 'class' + }, + 'Reflection': { + 'type': 'class' + }, + 'ReflectionClass': { + 'type': 'class' + }, + 'ReflectionZendExtension': { + 'type': 'class' + }, + 'ReflectionExtension': { + 'type': 'class' + }, + 'ReflectionFunction': { + 'type': 'class' + }, + 'ReflectionFunctionAbstract': { + 'type': 'class' + }, + 'ReflectionMethod': { + 'type': 'class' + }, + 'ReflectionObject': { + 'type': 'class' + }, + 'ReflectionParameter': { + 'type': 'class' + }, + 'ReflectionProperty': { + 'type': 'class' + }, + 'Reflector': { + 'type': 'class' + }, + 'ReflectionException': { + 'type': 'class' + }, + 'boolval': { + 'type': 'function' + }, + 'debug_zval_dump': { + 'type': 'function' + }, + 'doubleval': { + 'type': 'function' + }, + 'empty': { + 'type': 'function' + }, + 'floatval': { + 'type': 'function' + }, + 'get_defined_vars': { + 'type': 'function' + }, + 'get_resource_type': { + 'type': 'function' + }, + 'gettype': { + 'type': 'function' + }, + 'import_request_variables': { + 'type': 'function' + }, + 'intval': { + 'type': 'function' + }, + 'is_array': { + 'type': 'function' + }, + 'is_bool': { + 'type': 'function' + }, + 'is_callable': { + 'type': 'function' + }, + 'is_double': { + 'type': 'function' + }, + 'is_float': { + 'type': 'function' + }, + 'is_int': { + 'type': 'function' + }, + 'is_integer': { + 'type': 'function' + }, + 'is_long': { + 'type': 'function' + }, + 'is_null': { + 'type': 'function' + }, + 'is_numeric': { + 'type': 'function' + }, + 'is_object': { + 'type': 'function' + }, + 'is_real': { + 'type': 'function' + }, + 'is_resource': { + 'type': 'function' + }, + 'is_scalar': { + 'type': 'function' + }, + 'is_string': { + 'type': 'function' + }, + 'isset': { + 'type': 'function' + }, + 'print_r': { + 'type': 'function' + }, + 'serialize': { + 'type': 'function' + }, + 'settype': { + 'type': 'function' + }, + 'strval': { + 'type': 'function' + }, + 'unserialize': { + 'type': 'function' + }, + 'unset': { + 'type': 'function' + }, + 'var_dump': { + 'type': 'function' + }, + 'var_export': { + 'type': 'function' + }, + + /* File System Related Extensions */ + 'F_DUPFD': { + 'type': 'cte' + }, + 'F_GETFD': { + 'type': 'cte' + }, + 'F_GETFL': { + 'type': 'cte' + }, + 'F_GETLK': { + 'type': 'cte' + }, + 'F_GETOWN': { + 'type': 'cte' + }, + 'F_RDLCK': { + 'type': 'cte' + }, + 'F_SETFL': { + 'type': 'cte' + }, + 'F_SETLK': { + 'type': 'cte' + }, + 'F_SETLKW': { + 'type': 'cte' + }, + 'F_SETOWN': { + 'type': 'cte' + }, + 'F_UNLCK': { + 'type': 'cte' + }, + 'F_WRLCK': { + 'type': 'cte' + }, + 'O_APPEND': { + 'type': 'cte' + }, + 'O_ASYNC': { + 'type': 'cte' + }, + 'O_CREAT': { + 'type': 'cte' + }, + 'O_EXCL': { + 'type': 'cte' + }, + 'O_NDELAY': { + 'type': 'cte' + }, + 'O_NOCTTY': { + 'type': 'cte' + }, + 'O_NONBLOCK': { + 'type': 'cte' + }, + 'O_RDONLY': { + 'type': 'cte' + }, + 'O_RDWR': { + 'type': 'cte' + }, + 'O_SYNC': { + 'type': 'cte' + }, + 'O_TRUNC': { + 'type': 'cte' + }, + 'O_WRONLY': { + 'type': 'cte' + }, + 'S_IRGRP': { + 'type': 'cte' + }, + 'S_IROTH': { + 'type': 'cte' + }, + 'S_IRUSR': { + 'type': 'cte' + }, + 'S_IRWXG': { + 'type': 'cte' + }, + 'S_IRWXO': { + 'type': 'cte' + }, + 'S_IRWXU': { + 'type': 'cte' + }, + 'S_IWGRP': { + 'type': 'cte' + }, + 'S_IWOTH': { + 'type': 'cte' + }, + 'S_IWUSR': { + 'type': 'cte' + }, + 'S_IXGRP': { + 'type': 'cte' + }, + 'S_IXOTH': { + 'type': 'cte' + }, + 'S_IXUSR': { + 'type': 'cte' + }, + 'dio_close': { + 'type': 'function' + }, + 'dio_fcntl': { + 'type': 'function' + }, + 'dio_open': { + 'type': 'function' + }, + 'dio_read': { + 'type': 'function' + }, + 'dio_seek': { + 'type': 'function' + }, + 'dio_stat': { + 'type': 'function' + }, + 'dio_tcsetattr': { + 'type': 'function' + }, + 'dio_truncate': { + 'type': 'function' + }, + 'dio_write': { + 'type': 'function' + }, + 'DIRECTORY_SEPARATOR': { + 'type': 'cte' + }, + 'PATH_SEPARATOR': { + 'type': 'cte' + }, + 'SCANDIR_SORT_ASCENDING': { + 'type': 'cte' + }, + 'SCANDIR_SORT_DESCENDING': { + 'type': 'cte' + }, + 'SCANDIR_SORT_NONE': { + 'type': 'cte' + }, + "Directory": { + "type": "class" + }, + 'chdir': { + 'type': 'function' + }, + 'chroot': { + 'type': 'function' + }, + 'closedir': { + 'type': 'function' + }, + 'dir': { + 'type': 'function' + }, + 'getcwd': { + 'type': 'function' + }, + 'opendir': { + 'type': 'function' + }, + 'readdir': { + 'type': 'function' + }, + 'rewinddir': { + 'type': 'function' + }, + 'scandir': { + 'type': 'function' + }, + 'FILEINFO_NONE': { + 'type': 'cte' + }, + 'FILEINFO_SYMLINK': { + 'type': 'cte' + }, + 'FILEINFO_MIME_TYPE': { + 'type': 'cte' + }, + 'FILEINFO_MIME_ENCODING': { + 'type': 'cte' + }, + 'FILEINFO_MIME': { + 'type': 'cte' + }, + 'FILEINFO_COMPRESS': { + 'type': 'cte' + }, + 'FILEINFO_DEVICES': { + 'type': 'cte' + }, + 'FILEINFO_CONTINUE': { + 'type': 'cte' + }, + 'FILEINFO_PRESERVE_ATIME': { + 'type': 'cte' + }, + 'FILEINFO_RAW': { + 'type': 'cte' + }, + 'finfo_close': { + 'type': 'function' + }, + 'finfo_file': { + 'type': 'function' + }, + 'finfo_open': { + 'type': 'function' + }, + 'finfo_set_flags': { + 'type': 'function' + }, + 'mime_content_type': { + 'type': 'function' + }, + 'SEEK_SET': { + 'type': 'cte' + }, + 'SEEK_CUR': { + 'type': 'cte' + }, + 'SEEK_END': { + 'type': 'cte' + }, + 'LOCK_SH': { + 'type': 'cte' + }, + 'LOCK_EX': { + 'type': 'cte' + }, + 'LOCK_UN': { + 'type': 'cte' + }, + 'LOCK_NB': { + 'type': 'cte' + }, + 'GLOB_BRACE': { + 'type': 'cte' + }, + 'GLOB_ONLYDIR': { + 'type': 'cte' + }, + 'GLOB_MARK': { + 'type': 'cte' + }, + 'GLOB_NOSORT': { + 'type': 'cte' + }, + 'GLOB_NOCHECK': { + 'type': 'cte' + }, + 'GLOB_NOESCAPE': { + 'type': 'cte' + }, + 'GLOB_AVAILABLE_FLAGS': { + 'type': 'cte' + }, + 'PATHINFO_DIRNAME': { + 'type': 'cte' + }, + 'PATHINFO_BASENAME': { + 'type': 'cte' + }, + 'PATHINFO_EXTENSION': { + 'type': 'cte' + }, + 'PATHINFO_FILENAME': { + 'type': 'cte' + }, + 'FILE_USE_INCLUDE_PATH': { + 'type': 'cte' + }, + 'FILE_NO_DEFAULT_CONTEXT': { + 'type': 'cte' + }, + 'FILE_APPEND': { + 'type': 'cte' + }, + 'FILE_IGNORE_NEW_LINES': { + 'type': 'cte' + }, + 'FILE_SKIP_EMPTY_LINES': { + 'type': 'cte' + }, + 'FILE_BINARY': { + 'type': 'cte' + }, + 'FILE_TEXT': { + 'type': 'cte' + }, + 'INI_SCANNER_NORMAL': { + 'type': 'cte' + }, + 'INI_SCANNER_RAW': { + 'type': 'cte' + }, + 'FNM_NOESCAPE': { + 'type': 'cte' + }, + 'FNM_PATHNAME': { + 'type': 'cte' + }, + 'FNM_PERIOD': { + 'type': 'cte' + }, + 'FNM_CASEFOLD': { + 'type': 'cte' + }, + 'basename': { + 'type': 'function' + }, + 'chgrp': { + 'type': 'function' + }, + 'chmod': { + 'type': 'function' + }, + 'chown': { + 'type': 'function' + }, + 'clearstatcache': { + 'type': 'function' + }, + 'copy': { + 'type': 'function' + }, + 'delete': { + 'type': 'function' + }, + 'dirname': { + 'type': 'function' + }, + 'disk_free_space': { + 'type': 'function' + }, + 'disk_total_space': { + 'type': 'function' + }, + 'diskfreespace': { + 'type': 'function' + }, + 'fclose': { + 'type': 'function' + }, + 'feof': { + 'type': 'function' + }, + 'fflush': { + 'type': 'function' + }, + 'fgetc': { + 'type': 'function' + }, + 'fgetcsv': { + 'type': 'function' + }, + 'fgets': { + 'type': 'function' + }, + 'fgetss': { + 'type': 'function' + }, + 'file_exists': { + 'type': 'function' + }, + 'file_get_contents': { + 'type': 'function' + }, + 'file_put_contents': { + 'type': 'function' + }, + 'file': { + 'type': 'function' + }, + 'fileatime': { + 'type': 'function' + }, + 'filectime': { + 'type': 'function' + }, + 'filegroup': { + 'type': 'function' + }, + 'fileinode': { + 'type': 'function' + }, + 'filemtime': { + 'type': 'function' + }, + 'fileowner': { + 'type': 'function' + }, + 'fileperms': { + 'type': 'function' + }, + 'filesize': { + 'type': 'function' + }, + 'filetype': { + 'type': 'function' + }, + 'flock': { + 'type': 'function' + }, + 'fnmatch': { + 'type': 'function' + }, + 'fopen': { + 'type': 'function' + }, + 'fpassthru': { + 'type': 'function' + }, + 'fputcsv': { + 'type': 'function' + }, + 'fputs': { + 'type': 'function' + }, + 'fread': { + 'type': 'function' + }, + 'fscanf': { + 'type': 'function' + }, + 'fseek': { + 'type': 'function' + }, + 'fstat': { + 'type': 'function' + }, + 'ftell': { + 'type': 'function' + }, + 'ftruncate': { + 'type': 'function' + }, + 'fwrite': { + 'type': 'function' + }, + 'glob': { + 'type': 'function' + }, + 'is_dir': { + 'type': 'function' + }, + 'is_executable': { + 'type': 'function' + }, + 'is_file': { + 'type': 'function' + }, + 'is_link': { + 'type': 'function' + }, + 'is_readable': { + 'type': 'function' + }, + 'is_uploaded_file': { + 'type': 'function' + }, + 'is_writable': { + 'type': 'function' + }, + 'is_writeable': { + 'type': 'function' + }, + 'lchgrp': { + 'type': 'function' + }, + 'lchown': { + 'type': 'function' + }, + 'link': { + 'type': 'function' + }, + 'linkinfo': { + 'type': 'function' + }, + 'lstat': { + 'type': 'function' }, - - /* Returns the parser source code. */ - toSource: function() { return this._source; } + 'mkdir': { + 'type': 'function' + }, + 'move_uploaded_file': { + 'type': 'function' + }, + 'parse_ini_file': { + 'type': 'function' + }, + 'parse_ini_string': { + 'type': 'function' + }, + 'pathinfo': { + 'type': 'function' + }, + 'pclose': { + 'type': 'function' + }, + 'popen': { + 'type': 'function' + }, + 'readfile': { + 'type': 'function' + }, + 'readlink': { + 'type': 'function' + }, + 'realpath_cache_get': { + 'type': 'function' + }, + 'realpath_cache_size': { + 'type': 'function' + }, + 'realpath': { + 'type': 'function' + }, + 'rename': { + 'type': 'function' + }, + 'rewind': { + 'type': 'function' + }, + 'rmdir': { + 'type': 'function' + }, + 'set_file_buffer': { + 'type': 'function' + }, + 'stat': { + 'type': 'function' + }, + 'symlink': { + 'type': 'function' + }, + 'tempnam': { + 'type': 'function' + }, + 'tmpfile': { + 'type': 'function' + }, + 'touch': { + 'type': 'function' + }, + 'umask': { + 'type': 'function' + }, + 'unlink': { + 'type': 'function' + }, + 'IN_ACCESS': { + 'type': 'cte' + }, + 'IN_MODIFY': { + 'type': 'cte' + }, + 'IN_ATTRIB': { + 'type': 'cte' + }, + 'IN_CLOSE_WRITE': { + 'type': 'cte' + }, + 'IN_CLOSE_NOWRITE': { + 'type': 'cte' + }, + 'IN_OPEN': { + 'type': 'cte' + }, + 'IN_MOVED_TO': { + 'type': 'cte' + }, + 'IN_MOVED_FROM': { + 'type': 'cte' + }, + 'IN_CREATE': { + 'type': 'cte' + }, + 'IN_DELETE': { + 'type': 'cte' + }, + 'IN_DELETE_SELF': { + 'type': 'cte' + }, + 'IN_MOVE_SELF': { + 'type': 'cte' + }, + 'IN_CLOSE': { + 'type': 'cte' + }, + 'IN_MOVE': { + 'type': 'cte' + }, + 'IN_ALL_EVENTS': { + 'type': 'cte' + }, + 'IN_UNMOUNT': { + 'type': 'cte' + }, + 'IN_Q_OVERFLOW': { + 'type': 'cte' + }, + 'IN_IGNORED': { + 'type': 'cte' + }, + 'IN_ISDIR': { + 'type': 'cte' + }, + 'IN_ONLYDIR': { + 'type': 'cte' + }, + 'IN_DONT_FOLLOW': { + 'type': 'cte' + }, + 'IN_MASK_ADD': { + 'type': 'cte' + }, + 'IN_ONESHOT': { + 'type': 'cte' + }, + 'inotify_add_watch': { + 'type': 'function' + }, + 'inotify_init': { + 'type': 'function' + }, + 'inotify_queue_len': { + 'type': 'function' + }, + 'inotify_read': { + 'type': 'function' + }, + 'inotify_rm_watch': { + 'type': 'function' + } + }); + +}).call(this); +return module.exports;})(); +require["./lexer"] = (function() {var exports = {}, module = {exports: exports};// Generated by CoffeeScript 1.7.1 +(function() { + var CloseIndents, IntoArray, IntoHereDoc, IntoMammouth, Levels, Lexer, OpenedParens, RegularExpression, captureTypeCasting, col, lastIsIdentifier, lexer, row, setToken, tokenStack; + + Lexer = require("lex"); + + col = 1; + + row = 1; + + IntoArray = false; + + IntoMammouth = false; + + IntoHereDoc = false; + + Levels = [ + { + IndentStack: [], + CurrentIndent: -1, + OpenedIndent: 0 + } + ]; + + OpenedParens = []; + + lastIsIdentifier = false; + + captureTypeCasting = false; + + tokenStack = []; + + setToken = function(token) { + if (token === 'IDENTIFIER' && tokenStack[0] !== 'FUNC') { + lastIsIdentifier = true; + } else { + lastIsIdentifier = false; + if (token === '=>') { + captureTypeCasting = true; + } else { + captureTypeCasting = false; + } + } + return tokenStack.unshift(token); }; - - /* Thrown when a parser encounters a syntax error. */ - - result.SyntaxError = function(expected, found, offset, line, column) { - function buildMessage(expected, found) { - var expectedHumanized, foundHumanized; - - switch (expected.length) { - case 0: - expectedHumanized = "end of input"; - break; - case 1: - expectedHumanized = expected[0]; - break; - default: - expectedHumanized = expected.slice(0, expected.length - 1).join(", ") - + " or " - + expected[expected.length - 1]; + + CloseIndents = function(tokens) { + while (Levels[0].OpenedIndent > 0) { + tokens.unshift('OUTDENT'); + Levels[0].OpenedIndent--; + } + return tokens; + }; + + lexer = module.exports = new Lexer(function(char) { + throw new Error("Unexpected character at row " + row + ", col " + col + ": " + char); + }); + + RegularExpression = { + PlainText: /(((?!({{|}}))([\n\r\u2028\u2029]|.))*)/, + MammouthStart: /{{/, + MammouthEnd: /}}/, + Python_indent: /(^[ \t]*)/gm, + EmptyLine: /(^[\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000]*[\n\r\u2028\u2029])/gmi, + IDENTIFIER: /(([$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)( [^\n\S]* : (?!:) )?)/, + NUMBER: /(0b[01]+|0o[0-7]+|0(x|X)[\da-fA-F]+|\d*\.?\d+(?:(e|E)[+-]?\d+)?)/, + STRING: /('[^\\']*(?:\\[\s\S][^\\']*)*'|"[^\\"]*(?:\\[\s\S][^\\"]*)*")/, + HEREDOC: /(((?!(\`|{{|}}))([\n\r\u2028\u2029]|.))*)/, + LineTerminator: /[\n\r\u2028\u2029]/, + Zs: /[\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000]/, + SingleComment: /#(.*)+[\n\r\u2028\u2029]/, + MultiComment: /###(([\n\r\u2028\u2029]|.)*)###/ + }; + + lexer.addRule(/^/, function(lexeme) { + IntoArray = false; + IntoMammouth = false; + IntoHereDoc = false; + Levels = [ + { + IndentStack: [], + CurrentIndent: -1, + OpenedIndent: 0 + } + ]; + OpenedParens = []; + lastIsIdentifier = false; + captureTypeCasting = false; + tokenStack = []; + return this.reject = true; + }); + + lexer.addRule(RegularExpression.PlainText, function(lexeme) { + if (!IntoMammouth) { + col += lexeme.length; + this.yytext = lexeme; + setToken('PlainText'); + return 'PlainText'; + } else { + return this.reject = true; + } + }); + + lexer.addRule(RegularExpression.HEREDOC, function(lexeme) { + if (IntoMammouth && IntoHereDoc) { + col += lexeme.length; + this.yytext = lexeme; + setToken('HEREDOCTEXT'); + return 'HEREDOCTEXT'; + } else { + return this.reject = true; + } + }); + + lexer.addRule(RegularExpression.EmptyLine, function(lexeme) {}); + + lexer.addRule(RegularExpression.SingleComment, function(lexeme) {}); + + lexer.addRule(RegularExpression.MultiComment, function(lexeme) {}); + + lexer.addRule(RegularExpression.Python_indent, function(lexeme) { + var a, current_line_indent, i, tokens, _i, _j, _len, _len1, _ref; + if (IntoMammouth) { + col += lexeme.length; + current_line_indent = lexeme.replace(/\t/g, ' ').length; + if (current_line_indent > Levels[0].CurrentIndent) { + Levels[0].CurrentIndent = current_line_indent; + Levels[0].OpenedIndent++; + Levels[0].IndentStack.push(Levels[0].CurrentIndent); + setToken('INDENT'); + return 'INDENT'; + } else if (current_line_indent < Levels[0].CurrentIndent) { + tokens = []; + a = []; + _ref = Levels[0].IndentStack; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + i = _ref[_i]; + a.unshift(i); + } + for (_j = 0, _len1 = a.length; _j < _len1; _j++) { + i = a[_j]; + if (current_line_indent === i) { + Levels[0].CurrentIndent = i; + } else if (current_line_indent < i) { + Levels[0].CurrentIndent = Levels[0].IndentStack.pop(); + setToken('OUTDENT'); + tokens.push('OUTDENT'); + Levels[0].OpenedIndent -= 1; + } + } + return tokens; + } else { + + } + } + }); + + lexer.addRule(RegularExpression.Zs, function(lexeme) {}); + + lexer.addRule(RegularExpression.MammouthStart, function() { + var ShouldCloseCall; + col += 2; + IntoMammouth = true; + setToken('{{'); + IntoArray = false; + IntoHereDoc = false; + Levels = [ + { + IndentStack: [], + CurrentIndent: -1, + OpenedIndent: 0 + } + ]; + OpenedParens = []; + lastIsIdentifier = false; + ShouldCloseCall = false; + captureTypeCasting = false; + tokenStack = []; + return '{{'; + }); + + lexer.addRule(RegularExpression.MammouthEnd, function() { + var token, tokens, _i, _len; + col += 2; + IntoMammouth = false; + tokens = CloseIndents(['}}']); + for (_i = 0, _len = tokens.length; _i < _len; _i++) { + token = tokens[_i]; + setToken(token); + } + return tokens; + }); + + lexer.addRule(/\`/, function(lexeme) { + col += lexeme.length; + if (IntoHereDoc) { + IntoHereDoc = false; + } else { + IntoHereDoc = true; + } + setToken('`'); + return '`'; + }); + + lexer.addRule(/\{/, function(lexeme) { + col += lexeme.length; + setToken('{'); + return '{'; + }); + + lexer.addRule(/\}/, function(lexeme) { + col += lexeme.length; + setToken('}'); + return '}'; + }); + + lexer.addRule(/\(/, function(lexeme) { + col += lexeme.length; + if (lastIsIdentifier) { + lastIsIdentifier = false; + OpenedParens.unshift('CALL_END'); + setToken('CALL_START'); + return 'CALL_START'; + } else { + OpenedParens.unshift(')'); + setToken('('); + return '('; + } + }); + + lexer.addRule(/\)/, function(lexeme) { + var tok; + col += lexeme.length; + tok = OpenedParens.shift(); + setToken(tok); + return tok; + }); + + lexer.addRule(/\;/, function(lexeme) { + col += lexeme.length; + setToken(';'); + return ';'; + }); + + lexer.addRule(/\[/, function(lexeme) { + col += lexeme.length; + setToken('['); + return '['; + }); + + lexer.addRule(/\]/, function(lexeme) { + col += lexeme.length; + setToken(']'); + return ']'; + }); + + lexer.addRule(/@/, function(lexeme) { + col += lexeme.length; + setToken('@'); + return '@'; + }); + + lexer.addRule(/,/, function(lexeme) { + col += lexeme.length; + setToken(','); + return ','; + }); + + lexer.addRule(/\./, function(lexeme) { + col += lexeme.length; + setToken('.'); + return '.'; + }); + + lexer.addRule(/\.\./, function(lexeme) { + col += lexeme.length; + setToken('..'); + return '..'; + }); + + lexer.addRule(/<->/, function(lexeme) { + col += lexeme.length; + setToken('<->'); + return '<->'; + }); + + lexer.addRule(/->/, function(lexeme) { + col += lexeme.length; + setToken('->'); + return '->'; + }); + + lexer.addRule(/\=>/, function(lexeme) { + col += lexeme.length; + setToken('=>'); + return '=>'; + }); + + lexer.addRule(/\=\=>/, function(lexeme) { + col += lexeme.length; + setToken('==>'); + return '==>'; + }); + + lexer.addRule(/:/, function(lexeme) { + col += lexeme.length; + setToken(':'); + return ':'; + }); + + lexer.addRule(/::/, function(lexeme) { + col += lexeme.length; + setToken('::'); + return '::'; + }); + + lexer.addRule(/\+/, function(lexeme) { + col += lexeme.length; + setToken('+'); + return '+'; + }); + + lexer.addRule(/\+\+/, function(lexeme) { + col += lexeme.length; + setToken('++'); + return '++'; + }); + + lexer.addRule(/-/, function(lexeme) { + col += lexeme.length; + setToken('-'); + return '-'; + }); + + lexer.addRule(/--/, function(lexeme) { + col += lexeme.length; + setToken('--'); + return '--'; + }); + + lexer.addRule(/\?/, function(lexeme) { + col += lexeme.length; + setToken('?'); + return '?'; + }); + + lexer.addRule(/\*/, function(lexeme) { + col += lexeme.length; + setToken('*'); + return '*'; + }); + + lexer.addRule(/\*\*/, function(lexeme) { + col += lexeme.length; + setToken('**'); + return '**'; + }); + + lexer.addRule(/\//, function(lexeme) { + col += lexeme.length; + setToken('/'); + return '/'; + }); + + lexer.addRule(/\\/, function(lexeme) { + col += lexeme.length; + setToken('\\'); + return '\\'; + }); + + lexer.addRule(/%/, function(lexeme) { + col += lexeme.length; + setToken('%'); + return '%'; + }); + + lexer.addRule(/\+\=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('ASSIGN'); + return "ASSIGN"; + }); + + lexer.addRule(/-\=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('ASSIGN'); + return "ASSIGN"; + }); + + lexer.addRule(/\*\=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('ASSIGN'); + return "ASSIGN"; + }); + + lexer.addRule(/\/\=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('ASSIGN'); + return "ASSIGN"; + }); + + lexer.addRule(/\%\=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('ASSIGN'); + return "ASSIGN"; + }); + + lexer.addRule(/&/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('&'); + return "&"; + }); + + lexer.addRule(/>>/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('>>'); + return "SHIFT"; + }); + + lexer.addRule(/</, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('COMPARE'); + return "COMPARE"; + }); + + lexer.addRule(/<=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('COMPARE'); + return "COMPARE"; + }); + + lexer.addRule(/>=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('COMPARE'); + return "COMPARE"; + }); + + lexer.addRule(/!\=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('COMPARE'); + return "COMPARE"; + }); + + lexer.addRule(/\=\=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('COMPARE'); + return "COMPARE"; + }); + + lexer.addRule(/\=\=\=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('COMPARE'); + return "COMPARE"; + }); + + lexer.addRule(/\=/, function(lexeme) { + col += lexeme.length; + setToken('='); + return "="; + }); + + lexer.addRule(RegularExpression.IDENTIFIER, function(lexeme) { + col += lexeme.length; + if (captureTypeCasting) { + this.yytext = lexeme; + setToken('cType'); + return 'cType'; + } + if (lexeme === 'true' || lexeme === 'false') { + this.yytext = eval(lexeme); + setToken('BOOL'); + return 'BOOL'; + } else if (lexeme === 'break') { + setToken('BREAK'); + return 'BREAK'; + } else if (lexeme === 'and') { + this.yytext = lexeme; + setToken('LOGIC'); + return 'LOGIC'; + } else if (lexeme === 'abstract') { + setToken('ABSTRACT'); + return 'ABSTRACT'; + } else if (lexeme === 'as') { + setToken('AS'); + return 'AS'; + } else if (lexeme === 'catch') { + setToken('CATCH'); + return 'CATCH'; + } else if (lexeme === 'case') { + setToken('CASE'); + return 'CASE'; + } else if (lexeme === 'class') { + setToken('CLASS'); + return 'CLASS'; + } else if (lexeme === 'clone') { + setToken('CLONE'); + return 'CLONE'; + } else if (lexeme === 'continue') { + setToken('CONTINUE'); + return 'CONTINUE'; + } else if (lexeme === 'cte') { + setToken('CTE'); + return 'CTE'; + } else if (lexeme === 'declare') { + setToken('DECLARE'); + return 'DECLARE'; + } else if (lexeme === 'delete') { + setToken('DELETE'); + return 'DELETE'; + } else if (lexeme === 'do') { + setToken('DO'); + return 'DO'; + } else if (lexeme === 'each') { + setToken('EACH'); + return 'EACH'; + } else if (lexeme === 'echo') { + setToken('ECHO'); + return 'ECHO'; + } else if (lexeme === 'else') { + setToken('ELSE'); + return 'ELSE'; + } else if (lexeme === 'exec') { + setToken('EXEC'); + return 'EXEC'; + } else if (lexeme === 'extends') { + setToken('EXTENDS'); + return 'EXTENDS'; + } else if (lexeme === 'final') { + setToken('FINAL'); + return 'FINAL'; + } else if (lexeme === 'finally') { + setToken('FINALLY'); + return 'FINALLY'; + } else if (lexeme === 'for') { + setToken('FOR'); + return 'FOR'; + } else if (lexeme === 'func') { + setToken('FUNC'); + return 'FUNC'; + } else if (lexeme === 'goto') { + setToken('GOTO'); + return 'GOTO'; + } else if (lexeme === 'if') { + setToken('IF'); + return 'IF'; + } else if (lexeme === 'implements') { + setToken('IMPLEMENTS'); + return 'IMPLEMENTS'; + } else if (lexeme === 'include') { + setToken('INCLUDE'); + return 'INCLUDE'; + } else if (lexeme === 'instanceof') { + setToken('INSTANCEOF'); + return 'INSTANCEOF'; + } else if (lexeme === 'interface') { + setToken('INTERFACE'); + return 'INTERFACE'; + } else if (lexeme === "is") { + this.yytext = "==="; + setToken('COMPARE'); + return "COMPARE"; + } else if (lexeme === "isnt") { + this.yytext = "!="; + setToken('COMPARE'); + return "COMPARE"; + } else if (lexeme === "in") { + setToken('IN'); + return "IN"; + } else if (lexeme === 'not') { + setToken('NOT'); + return 'NOT'; + } else if (lexeme === 'namespace') { + setToken('NAMESPACE'); + return 'NAMESPACE'; + } else if (lexeme === 'new') { + setToken('NEW'); + return 'NEW'; + } else if (lexeme === 'null') { + setToken('NULL'); + return 'NULL'; + } else if (lexeme === 'once') { + setToken('ONCE'); + return 'ONCE'; + } else if (lexeme === 'or') { + this.yytext = lexeme; + setToken('LOGIC'); + return 'LOGIC'; + } else if (lexeme === 'public') { + setToken('PUBLIC'); + return 'PUBLIC'; + } else if (lexeme === 'private') { + setToken('PRIVATE'); + return 'PRIVATE'; + } else if (lexeme === 'protected') { + setToken('PROTECTED'); + return 'PROTECTED'; + } else if (lexeme === 'static') { + setToken('STATIC'); + return 'STATIC'; + } else if (lexeme === 'require') { + setToken('REQUIRE'); + return 'REQUIRE'; + } else if (lexeme === 'return') { + setToken('RETURN'); + return 'RETURN'; + } else if (lexeme === 'switch') { + setToken('SWITCH'); + return 'SWITCH'; + } else if (lexeme === 'then') { + setToken('THEN'); + return 'THEN'; + } else if (lexeme === 'try') { + setToken('TRY'); + return 'TRY'; + } else if (lexeme === 'use') { + setToken('USE'); + return 'USE'; + } else if (lexeme === 'when') { + setToken('WHEN'); + return 'WHEN'; + } else if (lexeme === 'while') { + setToken('WHILE'); + return 'WHILE'; + } else { + this.yytext = lexeme; + setToken('IDENTIFIER'); + return "IDENTIFIER"; + } + }); + + lexer.addRule(RegularExpression.NUMBER, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('NUMBER'); + return "NUMBER"; + }); + + lexer.addRule(RegularExpression.STRING, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('STRING'); + return "STRING"; + }); + + lexer.addRule(RegularExpression.LineTerminator, function(lexeme) { + col = 1; + row++; + setToken('LineTerminator'); + return "LineTerminator"; + }); + +}).call(this); +return module.exports;})(); +require["./nodes"] = (function() {var exports = {}, module = {exports: exports};// Generated by CoffeeScript 1.7.1 +(function() { + var Access, Array, ArrayKey, Assign, Block, Bool, Break, Call, Casting, Class, ClassLine, Clone, Code, Constant, Continue, Declare, Delete, DoWhile, Echo, Else, ElseIf, Exec, Existence, Expression, For, GetKeyAssign, Goto, HereDoc, Identifier, If, In, Include, Interface, Literal, MammouthBlock, Namespace, NamespaceRef, NewCall, Operation, Parens, PlainBlock, Require, Return, Section, Switch, SwitchElse, Try, Unary, Update, Value, When, While; + + exports.PlainBlock = PlainBlock = (function() { + function PlainBlock(text) { + this.text = text; + this.type = 'PlainBlock'; + } + + PlainBlock.prototype.toPHP = function() { + return this.text; + }; + + return PlainBlock; + + })(); + + exports.MammouthBlock = MammouthBlock = (function() { + function MammouthBlock(body) { + this.body = body; + this.type = 'MammouthBlock'; + } + + return MammouthBlock; + + })(); + + exports.Block = Block = (function() { + function Block(nodes) { + this.nodes = nodes; + this.type = 'Block'; + } + + return Block; + + })(); + + exports.Expression = Expression = (function() { + function Expression(expression) { + this.expression = expression; + this.type = 'Expression'; + } + + return Expression; + + })(); + + exports.Value = Value = (function() { + function Value(value, properties) { + this.value = value; + this.properties = properties != null ? properties : []; + this.type = 'Value'; + } + + Value.prototype.add = function(prop) { + return this.properties.push(prop); + }; + + return Value; + + })(); + + exports.Access = Access = (function() { + function Access(value, method) { + this.value = value; + this.method = method != null ? method : "."; + this.type = 'Access'; + } + + return Access; + + })(); + + exports.Parens = Parens = (function() { + function Parens(expression) { + this.expression = expression; + this.type = 'Parens'; + } + + return Parens; + + })(); + + exports.Identifier = Identifier = (function() { + function Identifier(name, as_arguments, passing) { + this.name = name; + this.as_arguments = as_arguments != null ? as_arguments : false; + this.passing = passing != null ? passing : false; + this.type = 'Identifier'; + } + + return Identifier; + + })(); + + exports.Literal = Literal = (function() { + function Literal(value) { + this.value = value; + this.type = 'Literal'; + } + + return Literal; + + })(); + + exports.Bool = Bool = (function() { + function Bool(value) { + this.value = value; + this.type = 'Bool'; + } + + return Bool; + + })(); + + exports.Null = (function() { + function _Class() { + this.type = 'Null'; + } + + return _Class; + + })(); + + exports.Array = Array = (function() { + function Array(elements) { + this.elements = elements != null ? elements : []; + this.type = 'Array'; + } + + return Array; + + })(); + + exports.ArrayKey = ArrayKey = (function() { + function ArrayKey(key, value) { + this.key = key; + this.value = value; + this.type = 'ArrayKey'; + } + + return ArrayKey; + + })(); + + exports.Call = Call = (function() { + function Call(variable, _arguments) { + this.variable = variable; + this["arguments"] = _arguments != null ? _arguments : []; + this.type = 'Call'; + } + + return Call; + + })(); + + exports.NewCall = NewCall = (function() { + function NewCall(variable, _arguments) { + this.variable = variable; + this["arguments"] = _arguments != null ? _arguments : false; + this.type = 'NewCall'; + } + + return NewCall; + + })(); + + exports.Code = Code = (function() { + function Code(parameters, body, normal, name) { + this.parameters = parameters; + this.body = body; + this.normal = normal != null ? normal : false; + this.name = name != null ? name : null; + this.type = 'Code'; + } + + return Code; + + })(); + + exports.Casting = Casting = (function() { + function Casting(variable, typec) { + this.variable = variable; + this.typec = typec; + this.type = 'Casting'; + } + + return Casting; + + })(); + + exports.Exec = Exec = (function() { + function Exec(code) { + this.type = 'Exec'; + if (code[0] === "'") { + this.code = code.replace(/\'/g, ''); + } else if (code[0] === '"') { + this.code = code.replace(/\"/g, ''); } - - foundHumanized = found ? quote(found) : "end of input"; - - return "Expected " + expectedHumanized + " but " + foundHumanized + " found."; } - - this.name = "SyntaxError"; - this.expected = expected; - this.found = found; - this.message = buildMessage(expected, found); - this.offset = offset; - this.line = line; - this.column = column; - }; - - result.SyntaxError.prototype = Error.prototype; - - return result; -})();mammouth.LineTerminatorParser = (function(){ - /* - * Generated by PEG.js 0.7.0. - * - * http://pegjs.majda.cz/ - */ - - function quote(s) { - /* - * ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a - * string literal except for the closing quote character, backslash, - * carriage return, line separator, paragraph separator, and line feed. - * Any character may appear in the form of an escape sequence. - * - * For portability, we also escape escape all control and non-ASCII - * characters. Note that "\0" and "\v" escape sequences are not used - * because JSHint does not like the first and IE the second. - */ - return '"' + s - .replace(/\\/g, '\\\\') // backslash - .replace(/"/g, '\\"') // closing quote character - .replace(/\x08/g, '\\b') // backspace - .replace(/\t/g, '\\t') // horizontal tab - .replace(/\n/g, '\\n') // line feed - .replace(/\f/g, '\\f') // form feed - .replace(/\r/g, '\\r') // carriage return - .replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g, escape) - + '"'; - } - - var result = { - /* - * Parses the input with a generated parser. If the parsing is successfull, - * returns a value explicitly or implicitly specified by the grammar from - * which the parser was generated (see |PEG.buildParser|). If the parsing is - * unsuccessful, throws |PEG.parser.SyntaxError| describing the error. - */ - parse: function(input, startRule) { - var parseFunctions = { - "start": parse_start, - "LineTerminator": parse_LineTerminator, - "LineTerminatorSequence": parse_LineTerminatorSequence - }; - - if (startRule !== undefined) { - if (parseFunctions[startRule] === undefined) { - throw new Error("Invalid rule name: " + quote(startRule) + "."); - } + + return Exec; + + })(); + + exports.HereDoc = HereDoc = (function() { + function HereDoc(doc) { + this.doc = doc; + this.type = 'HereDoc'; + } + + return HereDoc; + + })(); + + exports.Clone = Clone = (function() { + function Clone(value) { + this.value = value; + this.type = 'Clone'; + } + + return Clone; + + })(); + + exports.Assign = Assign = (function() { + function Assign(operator, left, right) { + this.operator = operator; + this.left = left; + this.right = right; + this.type = 'Assign'; + } + + return Assign; + + })(); + + exports.GetKeyAssign = GetKeyAssign = (function() { + function GetKeyAssign(keys, source) { + this.keys = keys; + this.source = source; + this.type = 'GetKeyAssign'; + } + + return GetKeyAssign; + + })(); + + exports.Constant = Constant = (function() { + function Constant(left, right) { + this.left = left; + this.right = right; + this.type = 'Constant'; + } + + return Constant; + + })(); + + exports.Unary = Unary = (function() { + function Unary(operator, expression) { + this.operator = operator; + this.expression = expression; + this.type = 'Unary'; + } + + return Unary; + + })(); + + exports.Update = Update = (function() { + function Update(operator, expression, prefix) { + this.operator = operator; + this.expression = expression; + this.prefix = prefix != null ? prefix : true; + this.type = 'Update'; + } + + return Update; + + })(); + + exports.Existence = Existence = (function() { + function Existence(expression) { + this.expression = expression; + this.type = 'Existence'; + } + + return Existence; + + })(); + + exports.Operation = Operation = (function() { + function Operation(operator, left, right) { + this.operator = operator; + this.left = left; + this.right = right; + this.type = 'Operation'; + } + + return Operation; + + })(); + + exports.In = In = (function() { + function In(left, right) { + this.left = left; + this.right = right; + this.type = 'In'; + } + + return In; + + })(); + + exports.Echo = Echo = (function() { + function Echo(value) { + this.value = value; + this.type = 'Echo'; + } + + return Echo; + + })(); + + exports.Delete = Delete = (function() { + function Delete(value) { + this.value = value; + this.type = 'Delete'; + } + + return Delete; + + })(); + + exports.Include = Include = (function() { + function Include(path, once) { + this.path = path; + this.once = once; + this.type = 'Include'; + } + + return Include; + + })(); + + exports.Require = Require = (function() { + function Require(path, once) { + this.path = path; + this.once = once; + this.type = 'Require'; + } + + return Require; + + })(); + + exports.Break = Break = (function() { + function Break(arg) { + this.arg = arg != null ? arg : false; + this.type = 'Break'; + } + + return Break; + + })(); + + exports.Continue = Continue = (function() { + function Continue(arg) { + this.arg = arg != null ? arg : false; + this.type = 'Continue'; + } + + return Continue; + + })(); + + exports.Return = Return = (function() { + function Return(value) { + this.value = value; + this.type = 'Return'; + } + + return Return; + + })(); + + exports.Declare = Declare = (function() { + function Declare(expression, script) { + this.expression = expression; + this.script = script != null ? script : false; + this.type = 'Declare'; + } + + return Declare; + + })(); + + exports.Goto = Goto = (function() { + function Goto(section) { + this.section = section; + this.type = 'Goto'; + } + + return Goto; + + })(); + + exports.If = If = (function() { + function If(condition, body, as_expression) { + this.condition = condition; + this.body = body; + this.as_expression = as_expression != null ? as_expression : false; + this.type = 'If'; + if (!this.as_expression) { + this.Elses = []; } else { - startRule = "start"; - } - - var pos = 0; - var reportFailures = 0; - var rightmostFailuresPos = 0; - var rightmostFailuresExpected = []; - - function padLeft(input, padding, length) { - var result = input; - - var padLength = length - input.length; - for (var i = 0; i < padLength; i++) { - result = padding + result; - } - - return result; + this.Elses = false; } - - function escape(ch) { - var charCode = ch.charCodeAt(0); - var escapeChar; - var length; - - if (charCode <= 0xFF) { - escapeChar = 'x'; - length = 2; - } else { - escapeChar = 'u'; - length = 4; - } - - return '\\' + escapeChar + padLeft(charCode.toString(16).toUpperCase(), '0', length); + } + + If.prototype.addElse = function(element) { + return this.Elses.push(element); + }; + + return If; + + })(); + + exports.ElseIf = ElseIf = (function() { + function ElseIf(condition, body) { + this.condition = condition; + this.body = body; + this.type = 'ElseIf'; + } + + return ElseIf; + + })(); + + exports.Else = Else = (function() { + function Else(body) { + this.body = body; + this.type = 'Else'; + } + + return Else; + + })(); + + exports.While = While = (function() { + function While(test, body) { + this.test = test; + this.body = body; + this.type = 'While'; + } + + return While; + + })(); + + exports.DoWhile = DoWhile = (function() { + function DoWhile(test, body) { + this.test = test; + this.body = body; + this.type = 'DoWhile'; + } + + return DoWhile; + + })(); + + exports.Try = Try = (function() { + function Try(TryBody, CatchIdentifier, CatchBody, Finally) { + this.TryBody = TryBody; + this.CatchIdentifier = CatchIdentifier; + this.CatchBody = CatchBody; + this.Finally = Finally != null ? Finally : false; + this.type = 'Try'; + } + + Try.prototype.addFinally = function(body) { + this.Finally = true; + return this.FinallyBody = body; + }; + + return Try; + + })(); + + exports.Switch = Switch = (function() { + function Switch(variable, cases) { + this.variable = variable; + this.cases = cases; + this.type = 'Switch'; + } + + return Switch; + + })(); + + exports.When = When = (function() { + function When(condition, body) { + this.condition = condition; + this.body = body; + this.type = 'When'; + } + + return When; + + })(); + + exports.SwitchElse = SwitchElse = (function() { + function SwitchElse(body) { + this.body = body; + this.type = 'SwitchElse'; + } + + return SwitchElse; + + })(); + + exports.For = For = (function() { + function For() { + this.type = 'For'; + if (arguments[0] === 'normal') { + this.method = 'normal'; + this.expressions = arguments[1]; + this.body = arguments[2]; + } else if (arguments[0] === 'foreach') { + this.method = 'foreach'; + this.left = arguments[1]; + this.right = arguments[2]; + this.body = arguments[3]; } - - function matchFailed(failure) { - if (pos < rightmostFailuresPos) { - return; - } - - if (pos > rightmostFailuresPos) { - rightmostFailuresPos = pos; - rightmostFailuresExpected = []; - } - - rightmostFailuresExpected.push(failure); + } + + return For; + + })(); + + exports.Section = Section = (function() { + function Section(name) { + this.name = name; + this.type = 'Section'; + } + + return Section; + + })(); + + exports.Class = Class = (function() { + function Class(name, body, extendable, implement, abstract) { + this.name = name; + this.body = body; + this.extendable = extendable != null ? extendable : false; + this.implement = implement != null ? implement : false; + this.abstract = abstract != null ? abstract : false; + this.type = "Class"; + } + + return Class; + + })(); + + exports.ClassLine = ClassLine = (function() { + function ClassLine(visibility, statically, element) { + this.visibility = visibility; + this.statically = statically; + this.element = element; + this.type = 'ClassLine'; + this.abstract = false; + } + + return ClassLine; + + })(); + + exports.Interface = Interface = (function() { + function Interface(name, body, extendable) { + this.name = name; + this.body = body; + this.extendable = extendable != null ? extendable : false; + this.type = "Interface"; + } + + return Interface; + + })(); + + exports.Namespace = Namespace = (function() { + function Namespace(name, body) { + this.name = name; + this.body = body != null ? body : false; + this.type = 'Namespace'; + } + + return Namespace; + + })(); + + exports.NamespaceRef = NamespaceRef = (function() { + function NamespaceRef(path) { + this.path = path; + this.type = 'NamespaceRef'; + } + + return NamespaceRef; + + })(); + +}).call(this); +return module.exports;})(); +require["./helpers"] = (function() {var exports = {}, module = {exports: exports};// Generated by CoffeeScript 1.7.1 +(function() { + var IdCounter, nodes; + + nodes = require('./nodes'); + + exports.IdCounter = IdCounter = (function() { + function IdCounter() {} + + IdCounter.prototype.letter = ['i', 'j', 'k', 'c', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'a', 'b', 'c', 'd', 'e', 'f', 'j', 'h']; + + IdCounter.prototype._level = 1; + + IdCounter.prototype.letterLevel = 0; + + IdCounter.prototype.generateAtLevel = function() { + var i, r; + r = ''; + i = 0; + while (i < this._level) { + r += '_'; + i++; + } + return r; + }; + + IdCounter.prototype.next = function() { + if ((this.letterLevel + 1) === this.letter.length) { + this._level++; + return this.letterLevel = 0; + } else { + return this.letterLevel++; } - - function parse_start() { - var result0, result1, result2, result3; - var pos0, pos1, pos2, pos3, pos4; - - pos0 = pos; - pos1 = pos; - result0 = []; - pos2 = pos; - result1 = []; - pos3 = pos; - pos4 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos4; - } - if (result2 !== null) { - if (input.length > pos) { - result3 = input.charAt(pos); - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - while (result2 !== null) { - result1.push(result2); - pos3 = pos; - pos4 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos4; - } - if (result2 !== null) { - if (input.length > pos) { - result3 = input.charAt(pos); - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } - if (result1 !== null) { - result2 = parse_LineTerminator(); - if (result2 !== null) { - result1 = [result1, result2]; - } else { - result1 = null; - pos = pos2; - } - } else { - result1 = null; - pos = pos2; - } - while (result1 !== null) { - result0.push(result1); - pos2 = pos; - result1 = []; - pos3 = pos; - pos4 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos4; - } - if (result2 !== null) { - if (input.length > pos) { - result3 = input.charAt(pos); - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - while (result2 !== null) { - result1.push(result2); - pos3 = pos; - pos4 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos4; - } - if (result2 !== null) { - if (input.length > pos) { - result3 = input.charAt(pos); - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } - if (result1 !== null) { - result2 = parse_LineTerminator(); - if (result2 !== null) { - result1 = [result1, result2]; - } else { - result1 = null; - pos = pos2; - } - } else { - result1 = null; - pos = pos2; + }; + + IdCounter.prototype.get = function() { + var r; + r = this.generateAtLevel() + this.letter[this.letterLevel]; + this.next(); + return new nodes.Identifier(r); + }; + + return IdCounter; + + })(); + +}).call(this); +return module.exports;})(); +require["./rewriter"] = (function() {var exports = {}, module = {exports: exports};// Generated by CoffeeScript 1.7.1 +(function() { + var helpers, nodes; + + nodes = require('./nodes'); + + helpers = require('./helpers'); + + exports.rewrite = function(tree, context) { + var ADD, IdCounter, UseSuperMammouth, compile, doc, php, _i, _len; + IdCounter = new helpers.IdCounter; + UseSuperMammouth = false; + php = ''; + ADD = function(string) { + return php += string; + }; + compile = function(element) { + var ID, InElement, Scase, arg, elem, elsei, expression, ext, i, key, line, lr, node, parameter, propertie, r, value, _i, _j, _k, _l, _len, _len1, _len10, _len11, _len12, _len2, _len3, _len4, _len5, _len6, _len7, _len8, _len9, _m, _n, _o, _p, _q, _r, _ref, _ref1, _ref10, _ref11, _ref12, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _s, _t, _u; + switch (element.type) { + case 'Block': + if (element.nodes[element.nodes.length - 1].type === 'BlankLine') { + element.nodes.pop(); + } + if (element.nodes.length === 1 && element.nodes[0].type === 'Expression') { + r = ' ' + compile(element.nodes[0]) + ' '; + return r; + } else { + r = ''; + _ref = element.nodes; + for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { + node = _ref[i]; + r += compile(node); + if (i !== element.nodes.length - 1) { + r += '\n'; + } + } + return '\n' + r + '\n'; } - } - if (result0 !== null) { - pos2 = pos; - result1 = []; - pos3 = pos; - pos4 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos4; + break; + case 'Expression': + return compile(element.expression) + ';'; + case 'Value': + if (element.properties.length > 0) { + r = compile(element.value); + _ref1 = element.properties; + for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { + propertie = _ref1[_j]; + switch (propertie.method) { + case '->': + case '.': + r += "->" + propertie.value.name; + break; + case '::': + case '..': + r += '::' + propertie.value.name; + break; + case '[]': + r += '[' + compile(propertie.value) + ']'; + } + } + return r; + } else { + return compile(element.value); } - if (result2 !== null) { - if (input.length > pos) { - result3 = input.charAt(pos); - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } + break; + case 'Parens': + return '(' + compile(element.expression) + ')'; + case 'Identifier': + if (element.as_arguments) { + r = '$' + element.name; } else { - result2 = null; - pos = pos3; - } - while (result2 !== null) { - result1.push(result2); - pos3 = pos; - pos4 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos4; - } - if (result2 !== null) { - if (input.length > pos) { - result3 = input.charAt(pos); - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } + r = context.Identify(element.name); } - if (result1 !== null) { - result2 = parse_LineTerminator(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result1 = [result1, result2]; - } else { - result1 = null; - pos = pos2; - } - } else { - result1 = null; - pos = pos2; + if (element.passing) { + r = '&' + r; } - if (result1 !== null) { - result0 = [result0, result1]; + return r; + case 'Literal': + if (typeof element.value === 'number') { + return element.value; } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, b, n) { - var line = []; - for(var i = 0; i < b.length;i++) { - var m =[]; - for(var o = 0; o < b[i][0].length; o++) { - m.push(b[i][0][o][1]); - } - line.push(m.join('')) - } - var m =[]; - for(var o = 0; o < n[0].length; o++) { - m.push(n[0][o][1]); - } - line.push(m.join('')) - return line; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_LineTerminator() { - var result0; - - if (/^[\n\x0B\r\u2028\u2029]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\n\\x0B\\r\\u2028\\u2029]"); - } - } - if (result0 === null) { - result0 = parse_LineTerminatorSequence(); - } - return result0; - } - - function parse_LineTerminatorSequence() { - var result0; - - reportFailures++; - if (input.charCodeAt(pos) === 10) { - result0 = "\n"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\n\""); + return element.value; } - } - if (result0 === null) { - if (input.substr(pos, 2) === "\r\n") { - result0 = "\r\n"; - pos += 2; + break; + case 'Bool': + if (element.value) { + return 'TRUE'; } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\r\\n\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 13) { - result0 = "\r"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\r\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 8232) { - result0 = "\u2028"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\u2028\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 8233) { - result0 = "\u2029"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\u2029\""); - } - } - } - } + return 'FALSE'; } - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("end of line"); - } - return result0; - } - - - function cleanupExpected(expected) { - expected.sort(); - - var lastExpected = null; - var cleanExpected = []; - for (var i = 0; i < expected.length; i++) { - if (expected[i] !== lastExpected) { - cleanExpected.push(expected[i]); - lastExpected = expected[i]; + break; + case 'Null': + return 'NULL'; + case 'Array': + r = 'array('; + _ref2 = element.elements; + for (i = _k = 0, _len2 = _ref2.length; _k < _len2; i = ++_k) { + elem = _ref2[i]; + if (elem.type === 'ArrayKey') { + r += compile(elem.key) + ' => ' + compile(elem.value); + } else { + r += compile(elem); + } + if (i !== element.elements.length - 1) { + r += ', '; + } + } + r += ')'; + return r; + case 'Call': + r = compile(element.variable) + '('; + _ref3 = element["arguments"]; + for (i = _l = 0, _len3 = _ref3.length; _l < _len3; i = ++_l) { + arg = _ref3[i]; + r += compile(arg); + if (i !== element["arguments"].length - 1) { + r += ', '; + } + } + r += ')'; + return r; + case 'NewCall': + r = 'new ' + compile(element.variable); + if (element["arguments"] !== false) { + r += '('; + _ref4 = element["arguments"]; + for (i = _m = 0, _len4 = _ref4.length; _m < _len4; i = ++_m) { + arg = _ref4[i]; + r += compile(arg); + if (i !== element["arguments"].length - 1) { + r += ', '; + } + } + r += ')'; + } + return r; + case 'Code': + if (element.normal) { + r = 'function ' + element.name + '('; + context.push({ + name: element.name, + type: 'function' + }); + } else { + r = 'function('; + } + _ref5 = element.parameters; + for (i = _n = 0, _len5 = _ref5.length; _n < _len5; i = ++_n) { + parameter = _ref5[i]; + if (parameter.and === true) { + r += '&' + compile(parameter); + } else { + r += compile(parameter); + } + if (i !== element.parameters.length - 1) { + r += ', '; + } + } + r += ')'; + if (element.body !== false) { + r += ' {'; + r += compile(element.body); + r += '}'; + } else { + r += ';'; + } + return r; + case 'Casting': + if (element.foreach === true) { + return compile(new nodes.Identifier(element.typec)) + ' => ' + compile(element.variable); + } else { + return '(' + element.typec + ') ' + compile(element.variable); } - } - return cleanExpected; - } - - function computeErrorPosition() { - /* - * The first idea was to use |String.split| to break the input up to the - * error position along newlines and derive the line and column from - * there. However IE's |split| implementation is so broken that it was - * enough to prevent it. - */ - - var line = 1; - var column = 1; - var seenCR = false; - - for (var i = 0; i < Math.max(pos, rightmostFailuresPos); i++) { - var ch = input.charAt(i); - if (ch === "\n") { - if (!seenCR) { line++; } - column = 1; - seenCR = false; - } else if (ch === "\r" || ch === "\u2028" || ch === "\u2029") { - line++; - column = 1; - seenCR = true; - } else { - column++; - seenCR = false; + break; + case 'Exec': + return '`' + element.code + '`'; + case 'HereDoc': + return '<<') { + r = compile(element.left) + '.' + compile(element.right); + } else if (element.operator === '+') { + UseSuperMammouth = true; + r = '$Mammouth("+", ' + compile(element.left) + ', ' + compile(element.right) + ')'; + } else { + r = compile(element.left) + ' ' + element.operator + ' ' + compile(element.right); + } + return r; + case 'Assign': + r = compile(element.left) + ' ' + element.operator + ' ' + compile(element.right); + return r; + case 'GetKeyAssign': + r = ''; + _ref6 = element.keys; + for (i = _o = 0, _len6 = _ref6.length; _o < _len6; i = ++_o) { + key = _ref6[i]; + value = new nodes.Value(element.source.value); + value.add(new nodes.Access(new nodes.Literal('"' + key.name + '"'), '[]')); + if (i !== (element.keys.length - 1)) { + r += compile(new nodes.Expression(new nodes.Assign("=", key, value))); + r += '\n'; + } else { + r += compile(new nodes.Assign("=", key, value)); + } + } + return r; + case 'Constant': + context.push({ + name: element.left.name, + type: 'cte' + }); + return 'const ' + compile(element.left) + ' = ' + compile(element.right); + case 'Unary': + r = element.operator; + r += compile(element.expression); + return r; + case 'Update': + r = compile(element.expression); + r = !element.prefix ? r + element.operator : element.operator + r; + return r; + case 'Existence': + r = 'isset(' + compile(element.expression) + ')'; + return r; + case 'In': + r = '$Mammouth("in_array", ' + compile(element.left) + ', ' + compile(element.right) + ')'; + return r; + case 'Echo': + return 'echo ' + compile(element.value); + case 'Delete': + return 'unset(' + compile(element.value) + ')'; + case 'Include': + if (element.once) { + r = 'include_once '; + } else { + r = 'include '; + } + r += compile(element.path); + return r; + case 'Require': + if (element.once) { + r = 'require_once '; + } else { + r = 'require '; + } + r += compile(element.path); + return r; + case 'Break': + r = 'break'; + if (element.arg !== false) { + r += ' ' + compile(element.arg); + } + return r; + case 'Continue': + r = 'continue'; + if (element.arg !== false) { + r += ' ' + compile(element.arg); + } + return r; + case 'Return': + return 'return ' + compile(element.value); + case 'Declare': + r = 'declare(' + compile(element.expression) + ')'; + if (element.script !== false) { + r += ' {'; + r += compile(element.script); + r += '}'; + } + return r; + case 'Goto': + return 'goto ' + element.section; + case 'If': + if (element.as_expression) { + r = compile(element.condition) + ' ? ' + compile(element.body); + if (element.Elses === false) { + r += ' : NULL'; + } else { + r += ' : ' + compile(element.Elses); + } + return r; + } else { + r = 'if(' + compile(element.condition) + ') {'; + r += compile(element.body); + r += '}'; + _ref7 = element.Elses; + for (_p = 0, _len7 = _ref7.length; _p < _len7; _p++) { + elsei = _ref7[_p]; + if (elsei.type === 'Else') { + r += ' else {'; + r += compile(elsei.body); + r += '}'; + } else if (elsei.type === 'ElseIf') { + r += ' elseif(' + compile(elsei.condition) + ') {'; + r += compile(elsei.body); + r += '}'; + } + } + return r; } - } - - return { line: line, column: column }; - } - - - var result = parseFunctions[startRule](); - - /* - * The parser is now in one of the following three states: - * - * 1. The parser successfully parsed the whole input. - * - * - |result !== null| - * - |pos === input.length| - * - |rightmostFailuresExpected| may or may not contain something - * - * 2. The parser successfully parsed only a part of the input. - * - * - |result !== null| - * - |pos < input.length| - * - |rightmostFailuresExpected| may or may not contain something - * - * 3. The parser did not successfully parse any part of the input. - * - * - |result === null| - * - |pos === 0| - * - |rightmostFailuresExpected| contains at least one failure - * - * All code following this comment (including called functions) must - * handle these states. - */ - if (result === null || pos !== input.length) { - var offset = Math.max(pos, rightmostFailuresPos); - var found = offset < input.length ? input.charAt(offset) : null; - var errorPosition = computeErrorPosition(); - - throw new this.SyntaxError( - cleanupExpected(rightmostFailuresExpected), - found, - offset, - errorPosition.line, - errorPosition.column - ); - } - - return result; - }, - - /* Returns the parser source code. */ - toSource: function() { return this._source; } - }; - - /* Thrown when a parser encounters a syntax error. */ - - result.SyntaxError = function(expected, found, offset, line, column) { - function buildMessage(expected, found) { - var expectedHumanized, foundHumanized; - - switch (expected.length) { - case 0: - expectedHumanized = "end of input"; break; - case 1: - expectedHumanized = expected[0]; + case 'While': + r = 'while(' + compile(element.test) + ') {'; + r += compile(element.body); + r += '}'; + return r; + case 'DoWhile': + r = 'do {'; + r += compile(element.body); + r += '} while (' + compile(element.test) + ');'; + return r; + case 'Try': + r = 'try {'; + r += compile(element.TryBody); + r += '}'; + r += ' catch(Exception ' + compile(element.CatchIdentifier) + ') {'; + r += compile(element.CatchBody); + r += '}'; + if (element.Finally) { + r += ' finally {'; + r += compile(element.FinallyBody); + r += '}'; + } + return r; + case 'Switch': + r = 'switch (' + compile(element.variable) + ') {\n'; + _ref8 = element.cases; + for (_q = 0, _len8 = _ref8.length; _q < _len8; _q++) { + Scase = _ref8[_q]; + if (Scase.type === 'When') { + r += 'case ' + compile(Scase.condition) + ': {'; + Scase.body.nodes.push(new nodes.Expression(new nodes.Break)); + r += compile(Scase.body); + r += '}'; + } else if (Scase.type === 'SwitchElse') { + r += 'default: {'; + r += compile(Scase.body); + r += '}'; + } + r += '\n'; + } + r += '}'; + return r; + case 'For': + if (element.method === 'normal' && element.expressions.length > 1) { + r = 'for('; + _ref9 = element.expressions; + for (i = _r = 0, _len9 = _ref9.length; _r < _len9; i = ++_r) { + expression = _ref9[i]; + if (expression.type === 'In') { + expression.each = true; + } + r += compile(expression); + if (i !== element.expressions.length) { + r += '; '; + } + } + r += ') {'; + r += compile(element.body); + r += '}'; + } else if (element.method === 'normal' && element.expressions.length === 1 && element.expressions[0].type === 'In') { + InElement = element.expressions[0]; + r = 'for('; + ID = IdCounter.get(); + r += compile(ID) + ' = 0; '; + r += compile(ID) + ' < count(' + compile(InElement.right) + '); '; + r += compile(ID) + '++'; + r += ') {'; + element.body.nodes.unshift(new nodes.Expression(new nodes.Assign('=', InElement.left, new nodes.Value(InElement.right, [new nodes.Access(ID, '[]')])))); + r += compile(element.body); + r += '}'; + } else if (element.method === 'foreach') { + r = 'foreach('; + r += compile(element.left); + r += ' as '; + r += compile(element.right); + r += ') {'; + r += compile(element.body); + r += '}'; + } + return r; + case 'Section': + return element.name + ':'; + case 'Class': + r = 'class ' + element.name; + context.push({ + name: element.name, + type: 'class' + }); + if (element.abstract === true) { + r = 'abstract ' + r; + } + if (element.extendable !== false) { + r += ' extends ' + element.extendable; + } + if (element.implement !== false) { + r += ' implements ' + element.implement; + } + r += ' {\n'; + _ref10 = element.body; + for (i = _s = 0, _len10 = _ref10.length; _s < _len10; i = ++_s) { + line = _ref10[i]; + lr = ''; + if (line.visibility !== false) { + lr += line.visibility + ' '; + } + if (line.statically !== false) { + lr += line.statically + ' '; + } + lr += compile(line.element); + if (line.finaly === true) { + lr = 'final ' + lr; + } + if (line.abstract === true) { + lr = 'abstract ' + lr; + } + r += lr; + if (i !== (element.body.length - 1)) { + r += '\n'; + } + } + r += '\n}'; + return r; + case 'Interface': + r = 'interface ' + element.name; + context.push({ + name: element.name, + type: 'interface' + }); + if (element.extendable !== false) { + r += ' extends '; + _ref11 = element.extendable; + for (i = _t = 0, _len11 = _ref11.length; _t < _len11; i = ++_t) { + ext = _ref11[i]; + r += ext; + if (i !== (element.extendable.length - 1)) { + r += ', '; + } + } + } + r += ' {\n'; + _ref12 = element.body; + for (i = _u = 0, _len12 = _ref12.length; _u < _len12; i = ++_u) { + line = _ref12[i]; + lr = ''; + if (line.type === 'Code') { + lr += 'public ' + compile(line); + } else { + lr += compile(line); + } + r += lr; + if (i !== (element.body.length - 1)) { + r += '\n'; + } + } + return r += '\n}'; + case 'Namespace': + r = 'namespace ' + element.name; + if (element.body !== false) { + r += ' {'; + r += compile(element.body); + r += '}'; + } + return r; + case 'NamespaceRef': + return element.path; + } + }; + for (_i = 0, _len = tree.length; _i < _len; _i++) { + doc = tree[_i]; + switch (doc.type) { + case 'PlainBlock': + ADD(doc.toPHP()); break; - default: - expectedHumanized = expected.slice(0, expected.length - 1).join(", ") - + " or " - + expected[expected.length - 1]; + case 'MammouthBlock': + ADD(''); } - - foundHumanized = found ? quote(found) : "end of input"; - - return "Expected " + expectedHumanized + " but " + foundHumanized + " found."; } - - this.name = "SyntaxError"; - this.expected = expected; - this.found = found; - this.message = buildMessage(expected, found); - this.offset = offset; - this.line = line; - this.column = column; + return php; + }; + +}).call(this); +return module.exports;})(); +require["./mammouth"] = (function() {var exports = {}, module = {exports: exports};// Generated by CoffeeScript 1.7.1 +(function() { + var PreContext, lexer, parser, rewriter, yy; + + yy = require('./nodes'); + + parser = require('./parser').parser; + + lexer = require('./lexer'); + + rewriter = require('./rewriter'); + + PreContext = require('./context').PreContext; + + parser.lexer = lexer; + + parser.yy = yy; + + module.exports = { + VERSION: '2.0.0', + parser: parser, + parse: function(code) { + return this.parser.parse(code); + }, + compile: function(code, context) { + var result, tree; + tree = this.parse(code); + return result = rewriter.rewrite(tree, context ? context : PreContext); + } }; - - result.SyntaxError.prototype = Error.prototype; - - return result; -})();mammouth.Tokens = { - NewToken: 'new', - FunctionToken: 'function', - IfToken: 'if', - ElseToken: 'else', - ForToken: 'for', - WhileToken: 'while', - SwitchToken: 'switch', - CaseToken: 'case', - DefaultToken: 'default', - TryToken: 'try', - CatchToken: 'catch', - FinallyToken: 'finally', - NamespaceToken: 'namespace', - ClassToken: 'class', - ContinueToken: 'continue', - BreakToken: 'break', - EchoToken: 'echo', - ReturnToken: 'return', - IncludeToken: 'include', - Include_onceToken: 'include_once', - RequireToken: 'require', - Require_onceToken: 'require_once' -}; -mammouth.helpers = { - slice_php_function: "function _m_slice($var, $start, $end) {if(gettype($var)=='string') {return substr($var, $start, $end);} elseif(gettype($var)=='array') {return array_slice($var, $start, $end);}}", - len_php_function: "function _m_len($var) {if(gettype($var)=='string') {return strlen($var);} elseif(gettype($var)=='array') {return count($var);}}" -}; -mammouth.VERSION = '0.2.3'; -mammouth.compile = function(code) { - Tokens = mammouth.Tokens; - var Use_Slice_Function = false; - var Added_Slice_Function = false; - var Use_Len_Function = false; - var Added_Len_Function = false; - FunctionInAssignment = function(seq) { - var r = Tokens.FunctionToken; - var arguments = '('; - for (var i = 0; i < seq.right.params.length; i++) { - if( i != 0 ) { - arguments += ', ' - } - arguments += evalStatement(seq.right.params[i]); - }; - arguments += ')'; - r += arguments; - r += ' {'; - if(seq.right.body != null) { - var body = ''; - for(var j = 0; j < seq.right.body.length; j++) { - if(typeof seq.right.body[j] == 'undefined') { - body += '\n'; - } else { - seq.right.body[j].only = true; - if(typeof seq.right.body[j] == 'string') { - body += evalStatement(seq.right.body[j]); - } else { - body += evalStatement(seq.right.body[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.right.body.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - } - r += '}'; - return r; - }; - evalStatement = function(seq) { - if(typeof seq == 'string') { - return seq; - } - if(seq == null) { - return ''; - } - switch(seq.type) { - case 'embed': - return seq.content; - case 'block': - var r = ''; - for(var i = 0; i < seq.elements.length; i++) { - if(typeof seq.elements[i] == 'undefined') { - - } else { - seq.elements[i].only = true; - if(typeof seq.elements[i] == 'string') { - r += evalStatement(seq.elements[i]); - } else { - r += evalStatement(seq.elements[i]) + '\n'; - } - } - } - if(Use_Slice_Function == true && Added_Slice_Function == false) { - r = mammouth.helpers.slice_php_function + '\n' + r; - Added_Slice_Function = true; - } - if(Use_Len_Function == true && Added_Len_Function == false) { - r = mammouth.helpers.len_php_function + '\n' + r; - Added_Len_Function = true; - } - r = ''; - case 'blockwithoutbra': - var r = ''; - for(var i = 0; i < seq.elements.length; i++) { - if(typeof seq.elements[i] == 'undefined') { - r += '\n'; - } else { - seq.elements[i].only = true; - if(typeof seq.elements[i] == 'string') { - r += evalStatement(seq.elements[i]); - } else { - r += evalStatement(seq.elements[i]) + '\n'; - } - } - } - return r; - case 'NumericLiteral': - var r = seq.value; - if(seq.only==true) { - r += ';'; - } - return r; - case 'BooleanLiteral': - var r = seq.value; - if(seq.only==true) { - r += ';'; - } - return r; - case 'StringLiteral': - var r = "'" + seq.value + "'"; - if(seq.only==true) { - r += ';'; - } - return r; - case 'ArrayLiteral': - var r = 'array('; - var elements = ''; - if(seq.elements != '') { - for (var i = 0; i < seq.elements.length; i++) { - if( i != 0 ) { - elements += ', ' - } - elements += evalStatement(seq.elements[i]); - }; - } - r += elements + ')'; - if(seq.only==true) { - r += ';'; - } - return r; - case 'keyBasedArrayLiteral': - var r = 'array('; - var elements = ''; - if(seq.properties != '') { - for (var i = 0; i < seq.properties.length; i++) { - if( i != 0 ) { - elements += ', ' - } - elements += evalStatement(seq.properties[i]); - }; - } - r += elements + ')'; - if(seq.only==true) { - r += ';'; - } - return r; - case 'PropertyAssignment': - var n = ''; - if( typeof seq.name == 'string') { - n = "'" + seq.name + "'"; - } else { - n = seq.name; - } - return n + ' => ' + evalStatement(seq.value); - case 'EODLiteral': - r = '<<' + n; - } else if(seq.name.type == 'PropertyFields') { - n = '->{' + evalStatement(seq.name.name) +'}' - r = b + n; - } else { - n = '[' + evalStatement(seq.name) + ']' - r = b + n; - } - if(seq.only==true) { - r += ';'; - } - return r; - case 'NewOperator': - var r = Tokens.NewToken; - var constructor = evalStatement(seq.constructor); - var arguments = '('; - for (var i = 0; i < seq.arguments.length; i++) { - if( i != 0 ) { - arguments += ', ' - } - arguments += evalStatement(seq.arguments[i]); - }; - arguments += ')'; - r += ' ' + constructor + arguments; - if(seq.only == true) { - r += ';'; - } - return r; - case 'BinaryExpression': - if(seq.left.type == 'BinaryExpression') { - if(seq.left.operator != '.') { - seq.left.Parentheses = true; - } - } - var left = evalStatement(seq.left); - if(seq.right.type == 'BinaryExpression') { - if(seq.right.operator != '.') { - seq.right.Parentheses = true; - } - } - var right = evalStatement(seq.right); - if(seq.operator != '.') { - var operator = ' ' + seq.operator + ' '; - } else { - var operator = seq.operator; - } - var r = left + operator + right; - if(seq.Parentheses == true) { - r = '(' + r; - r += ')'; - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'PostfixExpression': - if(seq.expression.type == 'BinaryExpression') { - seq.expression.Parentheses = true; - } - var expression = evalStatement(seq.expression); - var operator = seq.operator; - var r = expression + operator; - if(seq.only == true) { - r += ';'; - } - return r; - case 'UnaryExpression': - if(seq.expression.type == 'BinaryExpression') { - seq.expression.Parentheses = true; - } - var expression = evalStatement(seq.expression); - var operator = seq.operator; - var r = operator + expression; - if(seq.only == true) { - r += ';'; - } - return r; - case 'AssignmentExpression': - var left = evalStatement(seq.left); - var right; - if(seq.right.type == 'Function') { - right = FunctionInAssignment(seq); - } else { - right = evalStatement(seq.right); - } - var operator = ' ' + seq.operator + ' '; - var r = left + operator + right; - if(seq.Parentheses == true) { - r = '(' + r; - r += ')'; - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'Function': - console.log('wael'); - var r = {right: seq} - return FunctionInAssignment(r); - case 'AssignmentExpressionOfFunction': - var left = evalStatement(seq.left); - var right = evalStatement(seq.right); - var operator = ' ' + seq.operator + ' '; - var r = left + operator + right; - if(seq.Parentheses == true) { - r = '(' + r; - r += ')'; - } - return r; - case 'ConditionalExpression': - if(seq.condition.type == 'BinaryExpression') { - seq.condition.Parentheses = true; - } - var condition = evalStatement(seq.condition); - var trueExpression = evalStatement(seq.trueExpression); - var falseExpression = evalStatement(seq.falseExpression); - var r = condition + ' ? ' + trueExpression + ' : ' + falseExpression; - if(seq.only == true) { - r += ';'; - } - return r; - case 'break': - var r = 'break' - if(seq.only == true) { - r += ';'; - } - return r; - case 'FunctionCall': - var name; - if(seq.name.type == 'PropertyAccess') { - name = evalStatement(seq.name); - } else { - name = evalStatement(seq.name.name); - } - var arguments = '('; - for (var i = 0; i < seq.arguments.length; i++) { - if( i != 0 ) { - arguments += ', ' - } - arguments += evalStatement(seq.arguments[i]); - }; - arguments += ')'; - r = name + arguments; - if(seq.only == true) { - r += ';'; - } - return r; - case 'SliceExpression': - var r = ''; - Use_Slice_Function = true; - var end = evalStatement(seq.end); - var start = evalStatement(seq.start); - if(seq.end == null) { - Use_Len_Function = true; - end = '_m_len(' + evalStatement(seq.slicer) + ')'; - } - if(seq.start == 0) { - start = 0; - } - r += '_m_slice(' + evalStatement(seq.slicer) + ', ' + start + ', ' + end + ')'; - if(seq.only == true) { - r += ';'; - } - return r; - case 'IfStatement': - var r = Tokens.IfToken; - var condition = '('; - condition += evalStatement(seq.condition); - condition += ')'; - r += condition; - r += ' {'; - var body = ''; - if(seq.ifStatement != null) { - for(var j = 0; j < seq.ifStatement.length; j++) { - if(typeof seq.ifStatement[j] == 'undefined') { - body += '\n'; - } else { - seq.ifStatement[j].only = true; - if(typeof seq.ifStatement[j] == 'string') { - body += evalStatement(seq.ifStatement[j]); - } else { - body += evalStatement(seq.ifStatement[j]) + '\n'; - } - } - } - r += '\n'; - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '') { - if(seq.ifStatement.length == 1) { - r += '\t' + pars[x] + '\n'; - } else { - r += '\t' + pars[x] + '\n'; - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - } else { - r += '\n' - } - r += '}'; - if(seq.elseifStatement != null) { - for (var i = 0; i < seq.elseifStatement.length; i++) { - r += ' ' + Tokens.ElseToken + Tokens.IfToken; - condition = '('; - condition += evalStatement(seq.elseifStatement[i].condition); - condition += ')'; - r += condition; - r += ' {'; - body = ''; - for(var j = 0; j < seq.elseifStatement[i].statement.length; j++) { - if(typeof seq.elseifStatement[i].statement[j] == 'undefined') { - body += '\n'; - } else { - seq.elseifStatement[i].statement[j].only = true; - if(typeof seq.elseifStatement[i][j] == 'string') { - body += evalStatement(seq.elseifStatement[i].statement[j]); - } else { - body += evalStatement(seq.elseifStatement[i].statement[j]) + '\n'; - } - } - } - r += '\n'; - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '') { - if(seq.elseifStatement[i].length == 1) { - r += '\t' + pars[x] + '\n'; - } else { - r += '\t' + pars[x] + '\n'; - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - r += '}'; - }; - } - if(seq.elseStatement != null) { - body = ''; - for(var j = 0; j < seq.elseStatement.length; j++) { - if(typeof seq.elseStatement[j] == 'undefined') { - body += '\n'; - } else { - seq.elseStatement[j].only = true; - if(typeof seq.elseStatement[j] == 'string') { - body += evalStatement(seq.elseStatement[j]); - } else { - body += evalStatement(seq.elseStatement[j]) + '\n'; - } - } - } - r += ' ' + Tokens.ElseToken; - r += ' {'; - r += '\n'; - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '') { - if(seq.elseStatement.length == 1) { - r += '\t' + pars[x] + '\n'; - } else { - r += '\t' + pars[x] + '\n'; - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - r += '}'; - } - return r; - case 'ForStatement': - var r = Tokens.ForToken + '('; - if(seq.initializer.type == 'BinaryExpression') { - if(seq.initializer.operator == 'of') { - seq.test = { - "type": "BinaryExpression", - "operator": "<", - "left": seq.initializer.left, - "right": { - "type": "FunctionCall", - "name": { - "type": "Variable", - "name": "count" - }, - "arguments": [ - seq.initializer.right - ] - } - }; - seq.counter = { - "type": "PostfixExpression", - "operator": "++", - "expression": { - "type": "Variable", - "name": "i" - } - }; - if(seq.statement !== null) { - seq.statement.splice(0, 0, { - "type": "AssignmentExpression", - "operator": "=", - "left": seq.initializer.left, - "right": { - "type": "PropertyAccess", - "base": seq.initializer.right, - "name": { - "type": "Variable", - "name": "i" - } - } - }); - } - seq.initializer = { - "type": "AssignmentExpression", - "operator": "=", - "left": { - "type": "Variable", - "name": "i" - }, - "right": { - "type": "NumericLiteral", - "value": 0 - } - }; - } - } - r += evalStatement(seq.initializer) + '; '; - r += evalStatement(seq.test) + '; '; - r += evalStatement(seq.counter); - r += ')'; - r += ' {'; - var body = ''; - if(seq.statement !== null) { - for(var j = 0; j < seq.statement.length; j++) { - if(typeof seq.statement[j] == 'undefined') { - body += '\n'; - } else { - seq.statement[j].only = true; - if(typeof seq.statement[j] == 'string') { - body += evalStatement(seq.statement[j]); - } else { - body += evalStatement(seq.statement[j]) + '\n'; - } - } - } - r += '\n'; - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '') { - if(seq.statement.length == 1) { - r += '\t' + pars[x] + '\n'; - } else { - r += '\t' + pars[x] + '\n'; - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - } else { - r += '\n'; - } - r += '}'; - return r; - case 'WhileStatement': - var r = Tokens.WhileToken + '('; - r += evalStatement(seq.condition); - r += ')'; - r += ' {'; - var body = ''; - for(var j = 0; j < seq.statement.length; j++) { - if(typeof seq.statement[j] == 'undefined') { - body += '\n'; - } else { - seq.statement[j].only = true; - if(typeof seq.statement[j] == 'string') { - body += evalStatement(seq.statement[j]); - } else { - body += evalStatement(seq.statement[j]) + '\n'; - } - } - } - if(seq.statement != "") { - body = ''; - for(var j = 0; j < seq.statement.length; j++) { - if(typeof seq.statement[j] == 'undefined') { - body += '\n'; - } else { - seq.statement[j].only = true; - if(typeof seq.statement[j] == 'string') { - body += evalStatement(seq.statement[j]); - } else { - body += evalStatement(seq.statement[j]) + '\n'; - } - } - } - r += '\n'; - pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.statement.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - if(x == 1) { - r += pars[x]; - } - } - } - } - r += '\n}'; - return r; - case 'SwitchStatement': - var r = Tokens.SwitchToken + '('; - r += evalStatement(seq.variable); - r += ')'; - r += ' {\n'; - var CasesBlock = ''; - for(var i = 0; i < seq.cases.length; i++) { - if(typeof seq.cases[i] != 'undefined') { - if(seq.cases[i].type == 'case') { - CasesBlock += Tokens.CaseToken + ' ' + evalStatement(seq.cases[i].value) + ':\n'; - if(seq.cases[i].statement != '') { - seq.cases[i].statement.push({ - type: 'break' - }) - var body = ''; - for(var j = 0; j < seq.cases[i].statement.length; j++) { - if(typeof seq.cases[i].statement[j] == 'undefined') { - body += '\n'; - } else { - seq.cases[i].statement[j].only = true; - if(typeof seq.cases[i].statement[j] == 'string') { - body += evalStatement(seq.cases[i].statement[j]); - } else { - body += evalStatement(seq.cases[i].statement[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - CasesBlock += '\t' + pars[x]; - } else { - if(seq.cases[i].statement.length == 1) { - CasesBlock += '\t' + pars[x]; - } else { - CasesBlock += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - CasesBlock += '\n'; - } else { - CasesBlock += pars[x]; - } - } - } - } - } - } - if(seq.elsed != '') { - CasesBlock += Tokens.DefaultToken + ':'; - seq.elsed.unshift(undefined); - var body = ''; - for(var j = 0; j < seq.elsed.length; j++) { - if(typeof seq.elsed[j] == 'undefined') { - body += '\n'; - } else { - seq.elsed[j].only = true; - if(typeof seq.elsed[j] == 'string') { - body += evalStatement(seq.elsed[j]); - } else { - body += evalStatement(seq.elsed[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - CasesBlock += '\t' + pars[x]; - } else { - if(seq.elsed.length == 1) { - CasesBlock += '\t' + pars[x]; - } else { - CasesBlock += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - CasesBlock += '\n'; - } else { - CasesBlock += pars[x]; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(CasesBlock); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.cases.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - r += '}'; - return r; - case 'TryStatement': - var r = Tokens.TryToken; - r += ' {\n'; - if(seq.TryStatement != null) { - var body = ''; - for(var j = 0; j < seq.TryStatement.length; j++) { - if(typeof seq.TryStatement[j] == 'undefined') { - body += '\n'; - } else { - seq.TryStatement[j].only = true; - if(typeof seq.TryStatement[j] == 'string') { - body += evalStatement(seq.TryStatement[j]); - } else { - body += evalStatement(seq.TryStatement[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.TryStatement.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - if(x == 1) { - r += '\n'; - } - } - } - } - r += '}' - r += ' ' + Tokens.CatchToken + '('; - r += seq.CatchErrVar.vtype + ' ' + evalStatement(seq.CatchErrVar.name); - r += ')'; - r += ' {\n'; - if(seq.CatchStatement != null) { - body = ''; - for(var j = 0; j < seq.CatchStatement.length; j++) { - if(typeof seq.CatchStatement[j] == 'undefined') { - body += '\n'; - } else { - seq.CatchStatement[j].only = true; - if(typeof seq.CatchStatement[j] == 'string') { - body += evalStatement(seq.CatchStatement[j]); - } else { - body += evalStatement(seq.CatchStatement[j]) + '\n'; - } - } - } - pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.CatchStatement.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - if(x == 1) { - r += '\n'; - } - } - } - } - r += '}' - if(seq.FinallyStatemnt != null) { - r += ' ' + Tokens.FinallyToken; - r += ' {\n'; - body = ''; - for(var j = 0; j < seq.FinallyStatemnt.length; j++) { - if(typeof seq.FinallyStatemnt[j] == 'undefined') { - body += '\n'; - } else { - seq.FinallyStatemnt[j].only = true; - if(typeof seq.FinallyStatemnt[j] == 'string') { - body += evalStatement(seq.FinallyStatemnt[j]); - } else { - body += evalStatement(seq.FinallyStatemnt[j]) + '\n'; - } - } - } - pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.FinallyStatemnt.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - if(x == 1) { - r += '\n'; - } - } - } - r += '}' - } - return r; - case 'FunctionDeclaration': - var r = Tokens.FunctionToken; - r += ' ' + evalStatement(seq.name); - var arguments = '('; - for (var i = 0; i < seq.params.length; i++) { - if( i != 0 ) { - arguments += ', ' - } - arguments += evalStatement(seq.params[i]); - }; - arguments += ')'; - r += arguments; - r += ' {'; - if(seq.body != null) { - var body = ''; - for(var j = 0; j < seq.body.length; j++) { - if(typeof seq.body[j] == 'undefined') { - body += '\n'; - } else { - seq.body[j].only = true; - if(typeof seq.body[j] == 'string') { - body += evalStatement(seq.body[j]); - } else { - body += evalStatement(seq.body[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.body.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - } - r += '}'; - return r; - case 'NamespaceDeclaration': - var r = Tokens.NamespaceToken + ' ' + evalStatement(seq.name); - if(seq.body != null) { - r += ' {'; - var body = ''; - for(var j = 0; j < seq.body.length; j++) { - if(typeof seq.body[j] == 'undefined') { - body += '\n'; - } else { - seq.body[j].only = true; - if(typeof seq.body[j] == 'string') { - body += evalStatement(seq.body[j]); - } else { - body += evalStatement(seq.body[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.body.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - r += '}'; - } else { - r += ';' - } - return r; - case 'NamespaceIdentifier': - var r = ''; - if(seq.start == true) { - r += '\\'; - } - for (var i = 0; i < seq.name.length; i++) { - if(i!=0) { - r += '\\' - } - r += seq.name[i]; - }; - return r; - case 'ClassDeclaration': - var r = Tokens.ClassToken + ' ' + evalStatement(seq.name); - r += ' {'; - if(seq.body != null) { - var body = ''; - for(var j = 0; j < seq.body.length; j++) { - if(typeof seq.body[j] == 'undefined') { - body += '\n'; - } else { - seq.body[j].only = true; - if(typeof seq.body[j] == 'string') { - body += evalStatement(seq.body[j]); - } else { - body += evalStatement(seq.body[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - if(pars[x] == 'EOD;' || pars[x] == 'EOT;') { - r += pars[x]; - } else { - r += '\t' + pars[x]; - } - } else { - if(seq.body.length == 1) { - if(pars[x] == 'EOD;' || pars[x] == 'EOT;') { - r += pars[x]; - } else { - r += '\t' + pars[x]; - } - } else { - if(pars[x] == 'EOD;' || pars[x] == 'EOT;') { - r += pars[x] + '\n'; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - } - r += '}'; - return r; - case 'ClassPropertyDeclaration': - var r; - if(seq.Visibility == false) { - r = 'var ' - } else { - r = seq.Visibility + ' '; - } - var left = evalStatement(seq.left); - if(seq.operator !== false) { - right = ' ' + seq.operator + ' ' + evalStatement(seq.right); - } else { - right = ''; - } - r += left + right + ';'; - return r; - case 'ClassConstPropertyDeclaration': - var r = 'const '; - var left = evalStatement(seq.left); - if(seq.operator !== false) { - right = ' ' + seq.operator + ' ' + evalStatement(seq.right); - } else { - right = ''; - } - r += left + right + ';'; - return r; - case 'ClassFunctionDeclaration': - var r; - if(seq.Visibility == false) { - r = '' - } else { - r = seq.Visibility + ' '; - } - r += Tokens.FunctionToken; - r += ' ' + evalStatement(seq.name); - var arguments = '('; - for (var i = 0; i < seq.params.length; i++) { - if( i != 0 ) { - arguments += ', ' - } - arguments += evalStatement(seq.params[i]); - }; - arguments += ')'; - r += arguments; - r += ' {\n'; - if(seq.body != null) { - var body = ''; - for(var j = 0; j < seq.body.length; j++) { - if(typeof seq.body[j] == 'undefined') { - body += '\n'; - } else { - seq.body[j].only = true; - if(typeof seq.body[j] == 'string') { - body += evalStatement(seq.body[j]); - } else { - body += evalStatement(seq.body[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.body.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - } - r += '}'; - return r; - case 'ContinueStatement': - var r = Tokens.ContinueToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'BreakStatement': - var r = Tokens.BreakToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'EchoStatement': - var r = Tokens.EchoToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'ReturnStatement': - var r = Tokens.ReturnToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'RequireStatement': - var r = Tokens.RequireToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'Require_onceStatement': - var r = Tokens.Require_onceToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'IncludeStatement': - var r = Tokens.IncludeToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'Include_onceStatement': - var r = Tokens.Include_onceToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - } - }; - var interprete = function(code){ - var r = ''; - var seq = mammouth.parser.parse(code); - console.log(seq); - for(var i = 0; i < seq.length; i++) { - r += evalStatement(seq[i]); - } - return r; - }; - var codeout = interprete(code); - return codeout; -} +}).call(this); +return module.exports;})(); +mammouth = require["./mammouth"]; +return require["./mammouth"]; +}(this)); \ No newline at end of file diff --git a/extras/mammouth.min.js b/extras/mammouth.min.js new file mode 100644 index 0000000..ec74a37 --- /dev/null +++ b/extras/mammouth.min.js @@ -0,0 +1,10 @@ +/** + * Mammouth Compiler v2.0.0 + * http://mammouth.wamalaka.com + * + * Copyright 2014, Wael Amine Boutglay + * Released under the MIT License + */ +(function(root){function require(path){return require[path]}require["lex"]=function(){var exports={},module={exports:exports};if(typeof module==="object"&&typeof module.exports==="object")module.exports=Lexer;Lexer.defunct=function(char){throw new Error("Unexpected character at index "+(this.index-1)+": "+char)};function Lexer(defunct){if(typeof defunct!=="function")defunct=Lexer.defunct;var tokens=[];var rules=[];var remove=0;this.state=0;this.index=0;this.input="";this.addRule=function(pattern,action,start){var global=pattern.global;if(!global){var flags="g";if(pattern.multiline)flags+="m";if(pattern.ignoreCase)flags+="i";pattern=new RegExp(pattern.source,flags)}if(Object.prototype.toString.call(start)!=="[object Array]")start=[0];rules.push({pattern:pattern,global:global,action:action,start:start});return this};this.setInput=function(input){remove=0;this.state=0;this.index=0;this.input=input;return this};this.lex=function(){if(tokens.length)return tokens.shift();this.reject=true;while(this.index<=this.input.length){var matches=scan.call(this).splice(remove);var index=this.index;while(matches.length){if(this.reject){var match=matches.shift();var result=match.result;var length=match.length;this.index+=length;this.reject=false;remove++;var token=match.action.apply(this,result);if(this.reject)this.index=result.index;else if(typeof token!=="undefined"){switch(Object.prototype.toString.call(token)){case"[object Array]":tokens=token.slice(1);token=token[0];default:if(length)remove=0;return token}}}else break}var input=this.input;if(index=0||state%2&&states===1&&!start[0]){var pattern=rule.pattern;pattern.lastIndex=lastIndex;var result=pattern.exec(input);if(result&&result.index===lastIndex){var j=matches.push({result:result,action:rule.action,length:result[0].length});if(rule.global)index=j;while(--j>index){var k=j-1;if(matches[j].length>matches[k].length){var temple=matches[j];matches[j]=matches[k];matches[k]=temple}}}}}return matches}}return module.exports}();require["./parser"]=function(){var exports={},module={exports:exports};var parser=function(){var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,6],$V1=[1,7],$V2=[1,8,9],$V3=[1,12],$V4=[1,13],$V5=[1,47],$V6=[1,61],$V7=[1,62],$V8=[1,71],$V9=[1,64],$Va=[1,66],$Vb=[1,72],$Vc=[1,67],$Vd=[1,69],$Ve=[1,59],$Vf=[1,60],$Vg=[1,70],$Vh=[1,36],$Vi=[1,37],$Vj=[1,44],$Vk=[1,45],$Vl=[1,48],$Vm=[1,49],$Vn=[1,50],$Vo=[1,51],$Vp=[1,52],$Vq=[1,53],$Vr=[1,54],$Vs=[1,68],$Vt=[1,55],$Vu=[1,56],$Vv=[1,73],$Vw=[1,38],$Vx=[1,39],$Vy=[1,41],$Vz=[1,42],$VA=[1,43],$VB=[11,14,16,17,47,49,50,54,55,56,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161],$VC=[1,85],$VD=[1,89],$VE=[1,78],$VF=[1,76],$VG=[1,75],$VH=[1,77],$VI=[1,79],$VJ=[1,80],$VK=[1,81],$VL=[1,82],$VM=[1,83],$VN=[1,84],$VO=[1,86],$VP=[1,87],$VQ=[1,88],$VR=[11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$VS=[1,115],$VT=[1,107],$VU=[1,120],$VV=[1,109],$VW=[1,110],$VX=[1,121],$VY=[1,113],$VZ=[1,111],$V_=[1,114],$V$=[1,116],$V01=[1,117],$V11=[1,118],$V21=[1,119],$V31=[11,14,16,17,47,49,50,54,55,56,59,60,62,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$V41=[1,126],$V51=[1,127],$V61=[1,128],$V71=[1,129],$V81=[1,125],$V91=[11,14,16,17,47,49,50,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$Va1=[2,39],$Vb1=[1,134],$Vc1=[1,136],$Vd1=[2,52],$Ve1=[1,142],$Vf1=[1,148],$Vg1=[1,154],$Vh1=[11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$Vi1=[47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,113,157,159,160,161,162,163],$Vj1=[2,121],$Vk1=[1,159],$Vl1=[11,14,16,17,47,49,50,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,88,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$Vm1=[11,14,16,17,47,49,50,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$Vn1=[1,167],$Vo1=[11,14,16,17,47,49,50,52,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,88,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],$Vp1=[2,54],$Vq1=[1,175],$Vr1=[1,176],$Vs1=[2,62],$Vt1=[1,178],$Vu1=[47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,151,155,157,159,160,161,162,163],$Vv1=[2,15],$Vw1=[1,197],$Vx1=[16,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,151,155,157,159,160,161,162,163],$Vy1=[1,198],$Vz1=[50,75],$VA1=[2,92],$VB1=[1,229],$VC1=[1,230],$VD1=[1,228],$VE1=[11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,165,170,171,172,174,175],$VF1=[2,199],$VG1=[2,200],$VH1=[75,91],$VI1=[2,55],$VJ1=[1,245],$VK1=[2,78],$VL1=[1,247],$VM1=[16,17,67,75,80],$VN1=[2,202],$VO1=[2,204],$VP1=[11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,165,166,168,169,170,171,172,174,175],$VQ1=[11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,171],$VR1=[2,133],$VS1=[1,260],$VT1=[1,261],$VU1=[1,259],$VV1=[1,258],$VW1=[14,17,47,49,54,55,56,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,133,135,136,157,159,160,161],$VX1=[16,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,84,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,151,155,157,159,160,161,162,163],$VY1=[1,284],$VZ1=[50,75,88],$V_1=[1,295],$V$1=[16,17],$V02=[16,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,112,113,116,117,120,123,129,134,135,136,137,141,151,155,157,159,160,161,162,163],$V12=[16,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,116,117,119,120,123,129,134,135,136,137,141,151,155,157,159,160,161,162,163],$V22=[16,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163],$V32=[14,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,115,135,136,157,159,160,161,162,163,165,170,171,172,174,175],$V42=[1,337],$V52=[1,338],$V62=[49,54,55,56,59,60,62,66,69,70,71,81,89,92,150,157],$V72=[2,171],$V82=[1,343],$V92=[1,342],$Va2=[1,344],$Vb2=[1,345],$Vc2=[1,346],$Vd2=[1,352],$Ve2=[17,75],$Vf2=[16,17,112,127,128],$Vg2=[49,54,55,56,59,60,62,66,69,70,71,81,89,92,141,145,147,148,149,150,157],$Vh2=[1,370],$Vi2=[16,17,49,54,55,56,59,60,62,66,69,70,71,81,89,92,141,145,147,148,149,150,157],$Vj2=[49,54,55,56,59,60,62,66,69,70,71,81,89,92,157],$Vk2=[2,175],$Vl2=[1,372],$Vm2=[49,54,55,56,59,60,62,66,69,70,71,89,92,147,157],$Vn2=[1,380],$Vo2=[16,17,49,54,55,56,59,60,62,66,69,70,71,89,92,147,157],$Vp2=[1,382];var parser={trace:function trace(){},yy:{},symbols_:{error:2,Root:3,Contents:4,Content:5,PlainBlock:6,MammouthBlock:7,PlainText:8,"{{":9,Block:10,"}}":11,Expression:12,SimpleStatement:13,INDENT:14,Lines:15,OUTDENT:16,LineTerminator:17,Line:18,OptLineTerminator:19,Statement:20,Function:21,If:22,While:23,DoWhile:24,For:25,Try:26,Switch:27,Declare:28,Section:29,Class:30,Interface:31,Namespace:32,Value:33,Invocation:34,Code:35,Operation:36,Assign:37,IfExpression:38,HereDoc:39,Assignable:40,Literal:41,Parenthetical:42,Casting:43,Execution:44,NamespaceRef:45,Clone:46,"`":47,HEREDOCTEXT:48,"(":49,")":50,SimpleAssignable:51,"=>":52,cType:53,EXEC:54,STRING:55,CLONE:56,Array:57,Identifier:58,"&":59,IDENTIFIER:60,Accessor:61,"@":62,".":63,"..":64,"::":65,"[":66,"]":67,AlphaNumeric:68,BOOL:69,NULL:70,NUMBER:71,ArgList:72,OptComma:73,Arg:74,",":75,":":76,Arguments:77,NEW:78,CALL_START:79,CALL_END:80,FUNC:81,FuncGlyph:82,ParametersList:83,"->":84,Param:85,ParamVar:86,USE:87,"=":88,"{":89,KeysList:90,"}":91,CTE:92,Echo:93,Break:94,Continue:95,Delete:96,Include:97,Require:98,Return:99,Goto:100,ECHO:101,SimpleArg:102,BREAK:103,CONTINUE:104,DELETE:105,INCLUDE:106,isOnce:107,REQUIRE:108,ONCE:109,RETURN:110,IfBlock:111,ELSE:112,IF:113,IfBlockExpression:114,THEN:115,WHILE:116,DO:117,TryBlock:118,FINALLY:119,TRY:120,CatchBlock:121,CATCH:122,SWITCH:123,Whens:124,When:125,WhenTok:126,CASE:127,WHEN:128,FOR:129,ForExpressions:130,EACH:131,AS:132,";":133,DECLARE:134,"==>":135,GOTO:136,CLASS:137,ClassBody:138,EXTENDS:139,IMPLEMENTS:140,ABSTRACT:141,ClassLine:142,Visibility:143,Statically:144,FINAL:145,Finaly:146,PUBLIC:147,PRIVATE:148,PROTECTED:149,STATIC:150,INTERFACE:151,InterfaceBody:152,ExtendedList:153,InterfaceLine:154,NAMESPACE:155,NamespaceName:156,"\\":157,NamespaceRefname:158,"--":159,"++":160,NOT:161,"-":162,"+":163,"?":164,"<->":165,"*":166,"**":167,"/":168,"%":169,SHIFT:170,LOGIC:171,COMPARE:172,ASSIGN:173,INSTANCEOF:174,IN:175,$accept:0,$end:1},terminals_:{2:"error",8:"PlainText",9:"{{",11:"}}",14:"INDENT",16:"OUTDENT",17:"LineTerminator",47:"`",48:"HEREDOCTEXT",49:"(",50:")",52:"=>",53:"cType",54:"EXEC",55:"STRING",56:"CLONE",59:"&",60:"IDENTIFIER",62:"@",63:".",64:"..",65:"::",66:"[",67:"]",69:"BOOL",70:"NULL",71:"NUMBER",75:",",76:":",78:"NEW",79:"CALL_START",80:"CALL_END",81:"FUNC",84:"->",87:"USE",88:"=",89:"{",91:"}",92:"CTE",101:"ECHO",103:"BREAK",104:"CONTINUE",105:"DELETE",106:"INCLUDE",108:"REQUIRE",109:"ONCE",110:"RETURN",112:"ELSE",113:"IF",115:"THEN",116:"WHILE",117:"DO",119:"FINALLY",120:"TRY",122:"CATCH",123:"SWITCH",127:"CASE",128:"WHEN",129:"FOR",131:"EACH",132:"AS",133:";",134:"DECLARE",135:"==>",136:"GOTO",137:"CLASS",139:"EXTENDS",140:"IMPLEMENTS",141:"ABSTRACT",145:"FINAL",147:"PUBLIC",148:"PRIVATE",149:"PROTECTED",150:"STATIC",151:"INTERFACE",155:"NAMESPACE",157:"\\",159:"--",160:"++",161:"NOT",162:"-",163:"+",164:"?",165:"<->",166:"*",167:"**",168:"/",169:"%",170:"SHIFT",171:"LOGIC",172:"COMPARE",173:"ASSIGN",174:"INSTANCEOF",175:"IN"},productions_:[0,[3,1],[4,1],[4,2],[5,1],[5,1],[6,1],[7,3],[10,1],[10,1],[10,3],[10,4],[15,1],[15,3],[15,2],[19,0],[19,1],[18,1],[18,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[33,1],[33,1],[33,1],[33,1],[33,1],[33,1],[33,1],[39,3],[42,3],[43,3],[44,2],[44,4],[46,2],[40,1],[40,1],[51,1],[51,2],[51,2],[51,2],[61,2],[61,2],[61,2],[61,3],[58,1],[41,1],[41,1],[41,1],[68,1],[68,1],[57,2],[57,4],[72,1],[72,3],[72,4],[72,4],[72,7],[72,5],[74,1],[74,3],[73,0],[73,1],[34,2],[34,2],[34,3],[77,2],[77,4],[21,2],[21,4],[21,5],[21,7],[35,6],[35,3],[82,1],[83,0],[83,1],[83,3],[85,1],[85,2],[85,3],[86,2],[86,1],[37,3],[37,5],[37,4],[90,1],[90,3],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[93,2],[94,1],[94,2],[95,1],[95,2],[96,2],[97,3],[98,3],[107,0],[107,1],[99,2],[102,1],[102,3],[22,1],[22,3],[111,3],[111,5],[38,1],[38,3],[114,4],[114,3],[23,3],[24,4],[26,1],[26,3],[118,3],[121,3],[27,6],[27,8],[124,1],[124,3],[124,2],[125,3],[126,1],[126,1],[25,3],[25,6],[130,1],[130,3],[28,2],[28,4],[29,2],[100,2],[100,2],[30,6],[30,8],[30,8],[30,7],[138,1],[138,3],[138,2],[142,3],[142,3],[142,3],[142,4],[142,2],[146,0],[146,1],[143,0],[143,1],[143,1],[143,1],[144,0],[144,1],[31,6],[31,8],[152,1],[152,3],[152,2],[154,2],[154,1],[153,1],[153,3],[32,2],[32,4],[156,1],[156,3],[45,1],[158,3],[158,3],[158,2],[36,2],[36,2],[36,2],[36,2],[36,2],[36,2],[36,2],[36,2],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3]],performAction:function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 1:return $$[$0];break;case 2:case 12:case 70:case 93:case 103:case 142:case 150:case 161:case 179:case 184:this.$=[$$[$0]];break;case 3:this.$=$$[$0-1].concat($$[$0]);break;case 4:case 5:case 18:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 42:case 43:case 45:case 52:case 63:case 76:case 78:case 79:case 95:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 124:case 126:case 130:case 136:case 182:case 188:this.$=$$[$0];break;case 6:this.$=new yy.PlainBlock(yytext);break;case 7:this.$=new yy.MammouthBlock($$[$0-1]);break;case 8:case 9:this.$=new yy.Block([new yy.Expression($$[$0])]);break;case 10:case 11:this.$=new yy.Block($$[$0-1]);break;case 13:case 71:case 94:this.$=$$[$0-2].concat($$[$0]);break;case 14:case 125:case 144:case 163:case 181:this.$=$$[$0-1];break;case 15:case 91:case 146:case 147:break;case 16:false;break;case 17:case 19:case 183:this.$=new yy.Expression($$[$0]);break;case 41:case 44:case 53:case 54:this.$=new yy.Value($$[$0]);break;case 46:this.$=new yy.HereDoc($$[$0-1]);break;case 47:this.$=new yy.Parens($$[$0-1]);break;case 48:this.$=new yy.Casting($$[$0-2],$$[$0]);break;case 49:this.$=new yy.Exec($$[$0]);break;case 50:this.$=new yy.Exec($$[$0-1]);break;case 51:this.$=new yy.Clone($$[$0]);break;case 55:case 98:this.$=new yy.Identifier(yytext,true,true);break;case 56:$$[$0-1].add($$[$0]);this.$=$$[$0-1];break;case 57:th=new yy.Value(new yy.Identifier("this"));th.add(new yy.Access($$[$0]));this.$=th;break;case 58:this.$=new yy.Access($$[$0]);break;case 59:this.$=new yy.Access($$[$0],"..");break;case 60:this.$=new yy.Access($$[$0],"::");break;case 61:this.$=new yy.Access($$[$0-1],"[]");break;case 62:this.$=new yy.Identifier(yytext);break;case 64:this.$=new yy.Bool(yytext);break;case 65:this.$=new yy.Null;break;case 66:case 67:this.$=new yy.Literal(yytext);break;case 68:this.$=new yy.Array;break;case 69:this.$=new yy.Array($$[$0-2]);break;case 72:this.$=$$[$0-3].concat($$[$0]);break;case 73:case 75:case 84:this.$=$$[$0-2];break;case 74:this.$=$$[$0-6].concat($$[$0-2]);break;case 77:this.$=new yy.ArrayKey($$[$0-2],$$[$0]);break;case 80:this.$=new yy.Call($$[$0-1],$$[$0]);break;case 81:this.$=new yy.NewCall($$[$0]);break;case 82:this.$=new yy.NewCall($$[$0-1],$$[$0]);break;case 83:case 92:this.$=[];break;case 85:this.$=new yy.Code([],false,true,$$[$0]);break;case 86:this.$=new yy.Code([],$$[$0],true,$$[$0-2]);break;case 87:this.$=new yy.Code($$[$0-1],false,true,$$[$0-3]);break;case 88:this.$=new yy.Code($$[$0-3],$$[$0],true,$$[$0-5]);break;case 89:this.$=new yy.Code($$[$0-3],$$[$0]);break;case 90:this.$=new yy.Code([],$$[$0]);break;case 96:$$[$0].passing=true,this.$=$$[$0];break;case 97:case 100:this.$=new yy.Assign("=",$$[$0-2],$$[$0]);break;case 99:this.$=new yy.Identifier(yytext,true);break;case 101:this.$=new yy.GetKeyAssign($$[$0-3],$$[$0]);break;case 102:this.$=new yy.Constant($$[$0-2],$$[$0]);break;case 104:case 143:case 151:case 162:case 180:case 185:this.$=$$[$0-2].concat($$[$0]);break;case 113:this.$=new yy.Echo($$[$0]);break;case 114:this.$=new yy.Break;break;case 115:this.$=new yy.Break(new yy.Literal($$[$0]));break;case 116:this.$=new yy.Continue;break;case 117:this.$=new yy.Continue(new yy.Literal($$[$0]));break;case 118:this.$=new yy.Delete($$[$0]);break;case 119:this.$=new yy.Include($$[$0],$$[$0-1]);break;case 120:this.$=new yy.Require($$[$0],$$[$0-1]);break;case 121:case 169:case 171:case 175:this.$=false;break;case 122:case 170:this.$=true;break;case 123:this.$=new yy.Return($$[$0]);break;case 127:$$[$0-2].addElse(new yy.Else($$[$0]));this.$=$$[$0-2];break;case 128:this.$=new yy.If($$[$0-1],$$[$0]);break;case 129:$$[$0-4].addElse(new yy.ElseIf($$[$0-1],$$[$0]));this.$=$$[$0-4];break;case 131:$$[$0-2].Elses=$$[$0];this.$=$$[$0-2];break;case 132:this.$=new yy.If($$[$0-2],$$[$0],true);break;case 133:this.$=new yy.If($$[$0],$$[$0-2],true);break;case 134:this.$=new yy.While($$[$0-1],$$[$0]);break;case 135:this.$=new yy.DoWhile($$[$0-1],$$[$0]);break;case 137:$$[$0-2].addFinally($$[$0]);this.$=$$[$0-2];break;case 138:this.$=new yy.Try($$[$0-1],$$[$0][0],$$[$0][1]);break;case 139:this.$=[$$[$0-1],$$[$0]];break;case 140:this.$=new yy.Switch($$[$0-4],$$[$0-1]);break;case 141:$$[$0-3].push(new yy.SwitchElse($$[$0-1]));this.$=new yy.Switch($$[$0-6],$$[$0-3]);break;case 145:this.$=new yy.When($$[$0-1],$$[$0]);break;case 148:this.$=new yy.For("normal",$$[$0-1],$$[$0]);break;case 149:$$[$0-1].foreach=true;this.$=new yy.For("foreach",$$[$0-3],$$[$0-1],$$[$0]);break;case 152:this.$=new yy.Expression(new yy.Declare($$[$0]));break;case 153:this.$=new yy.Declare($$[$0-2],$$[$0]);break;case 154:this.$=new yy.Section($$[$0-1]);break;case 155:case 156:this.$=new yy.Goto($$[$0]);break;case 157:this.$=new yy.Class($$[$0-4],$$[$0-1]);break;case 158:this.$=new yy.Class($$[$0-6],$$[$0-1],$$[$0-4]);break;case 159:this.$=new yy.Class($$[$0-6],$$[$0-1],false,$$[$0-4]);break;case 160:this.$=new yy.Class($$[$0-4],$$[$0-1],false,false,true);break;case 164:case 165:this.$=new yy.ClassLine($$[$0-2],$$[$0-1],this.$=new yy.Expression($$[$0]));break;case 166:this.$=new yy.ClassLine($$[$0-2],$$[$0-1],$$[$0]);break;case 167:n=new yy.ClassLine($$[$0-2],$$[$0-1],$$[$0]);n.finaly=true;this.$=n;break;case 168:$$[$0].abstract=true;this.$=$$[$0];break;case 172:this.$="public";break;case 173:this.$="private";break;case 174:this.$="protected";break;case 176:this.$="static";break;case 177:this.$=new yy.Interface($$[$0-4],$$[$0-1]);break;case 178:this.$=new yy.Interface($$[$0-6],$$[$0-1],$$[$0-4]);break;case 186:this.$=new yy.Expression(new yy.Namespace($$[$0]));break;case 187:this.$=new yy.Namespace($$[$0-2],$$[$0]);break;case 189:this.$=$$[$0-2]+"\\"+$$[$0];break;case 190:this.$=new yy.NamespaceRef($$[$0]);break;case 191:case 192:this.$=$$[$0-2]+"\\"+$$[$0];break;case 193:this.$="\\"+$$[$0];break;case 194:this.$=new yy.Update("--",$$[$0]);break;case 195:this.$=new yy.Update("++",$$[$0]);break;case 196:this.$=new yy.Update("--",$$[$0-1],false);break;case 197:this.$=new yy.Update("++",$$[$0-1],false);break;case 198:this.$=new yy.Unary("!",$$[$0]);break;case 199:this.$=new yy.Unary("-",$$[$0]);break;case 200:this.$=new yy.Unary("+",$$[$0]);break;case 201:this.$=new yy.Existence($$[$0-1]);break;case 202:this.$=new yy.Operation("+",$$[$0-2],$$[$0]);break;case 203:this.$=new yy.Operation("<->",$$[$0-2],$$[$0]);break;case 204:this.$=new yy.Operation("-",$$[$0-2],$$[$0]);break;case 205:this.$=new yy.Operation("*",$$[$0-2],$$[$0]);break;case 206:this.$=new yy.Operation("**",$$[$0-2],$$[$0]);break;case 207:this.$=new yy.Operation("/",$$[$0-2],$$[$0]);break;case 208:this.$=new yy.Operation("%",$$[$0-2],$$[$0]);break;case 209:case 210:case 212:this.$=new yy.Operation($$[$0-1],$$[$0-2],$$[$0]);break;case 211:this.$=new yy.Operation("&",$$[$0-2],$$[$0]);break;case 213:this.$=new yy.Assign($$[$0-1],$$[$0-2],$$[$0]);break;case 214:this.$=new yy.Operation("instanceof",$$[$0-2],$$[$0]);break;case 215:this.$=new yy.In($$[$0-2],$$[$0]);break}},table:[{3:1,4:2,5:3,6:4,7:5,8:$V0,9:$V1},{1:[3]},{1:[2,1],5:8,6:4,7:5,8:$V0,9:$V1},o($V2,[2,2]),o($V2,[2,4]),o($V2,[2,5]),o($V2,[2,6]),{10:9,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($V2,[2,3]),{11:[1,74]},o($VB,[2,8],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($VR,[2,9]),{12:92,13:94,15:90,18:91,20:93,21:95,22:96,23:97,24:98,25:99,26:100,27:101,28:102,29:103,30:104,31:105,32:106,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$VS,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$VT,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,111:108,113:$VU,114:46,116:$VV,117:$VW,118:112,120:$VX,123:$VY,129:$VZ,134:$V_,135:$Vt,136:$Vu,137:$V$,141:$V01,151:$V11,155:$V21,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{14:[1,122]},o($V31,[2,32],{77:123,61:124,63:$V41,64:$V51,65:$V61,66:$V71,79:$V81}),o($VR,[2,33]),o($VR,[2,34]),o($VR,[2,35]),o($VR,[2,36]),o($VR,[2,37]),o($VR,[2,38]),o($VR,[2,105]),o($VR,[2,106]),o($VR,[2,107]),o($VR,[2,108]),o($VR,[2,109]),o($VR,[2,110]),o($VR,[2,111]),o($VR,[2,112]),o($V91,$Va1,{88:[1,130]}),o($V91,[2,40]),o($V91,[2,41]),o($V91,[2,42]),o($V91,[2,43]),o($V91,[2,44]),o($V91,[2,45]),{33:131,40:132,41:30,42:31,43:32,44:33,45:34,46:35,49:$V6,51:133,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,157:$Vv,158:63},{49:$Vb1,82:135,84:$Vc1},{12:137,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:138,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o([11,14,16,17,47,49,50,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,88,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$Vd1,{52:$Ve1,159:[1,139],160:[1,140],173:[1,141]}),{12:143,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:144,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:145,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{58:147,60:$Vf1,90:146},{58:149,60:$Vf1},o([11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],[2,130],{112:[1,150]}),{48:[1,151]},{12:153,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$Vg1,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,102:152,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vh1,[2,114],{71:[1,155]}),o($Vh1,[2,116],{71:[1,156]}),{12:153,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$Vg1,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,102:157,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vi1,$Vj1,{107:158,109:$Vk1}),o($Vi1,$Vj1,{107:160,109:$Vk1}),{12:153,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$Vg1,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,102:161,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{60:[1,162]},{60:[1,163]},o($Vl1,[2,53]),o($V91,[2,63]),o($V91,[2,64]),o($V91,[2,65]),{12:164,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{49:[1,166],55:[1,165]},o($Vm1,[2,190],{157:$Vn1}),{33:168,40:132,41:30,42:31,43:32,44:33,45:34,46:35,49:$V6,51:133,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,157:$Vv,158:63},o($Vo1,$Vp1),{60:[1,169]},{58:170,60:$Vf1},{12:171,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:177,14:$Vq1,17:$Vr1,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,67:[1,172],68:58,69:$Ve,70:$Vf,71:$Vg,72:173,74:174,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($V91,[2,66]),o($V91,[2,67]),o([11,14,16,17,47,49,50,52,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,88,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],$Vs1,{157:$Vt1}),{60:[1,180],157:$Vv,158:179},o($V2,[2,7]),o($VR,[2,201]),{12:181,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:182,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:183,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:184,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:185,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:186,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:187,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:188,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:189,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:190,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:191,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:192,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:193,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:194,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vu1,$Vv1,{19:196,16:[1,195],17:$Vw1}),o($Vx1,[2,12]),o([16,17,47,49,54,55,56,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,116,117,120,123,129,134,135,136,137,141,151,155,157,159,160,161],[2,17],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($Vx1,[2,18]),o($Vx1,[2,19]),o($Vx1,[2,20]),o($Vx1,[2,21]),o($Vx1,[2,22]),o($Vx1,[2,23]),o($Vx1,[2,24]),o($Vx1,[2,25]),o($Vx1,[2,26]),o($Vx1,[2,27]),o($Vx1,[2,28]),o($Vx1,[2,29]),o($Vx1,[2,30]),o($Vx1,[2,31]),{49:$Vb1,60:$Vy1,82:135,84:$Vc1},o($Vx1,[2,126],{112:[1,199]}),{12:200,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{116:[1,201]},{12:204,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,130:202,131:[1,203],157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vx1,[2,136],{119:[1,205]}),{12:206,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:153,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$Vg1,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,102:207,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o([16,17,47,49,52,54,55,56,59,60,62,63,64,65,66,69,70,71,78,79,81,88,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,151,155,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],$Vs1,{76:[1,208],157:$Vt1}),{60:[1,209]},{137:[1,210]},{60:[1,211]},{60:[1,213],156:212},{12:214,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{10:215,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:92,13:94,15:216,18:91,20:93,21:95,22:96,23:97,24:98,25:99,26:100,27:101,28:102,29:103,30:104,31:105,32:106,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$VS,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$VT,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,111:108,113:$VU,114:46,116:$VV,117:$VW,118:112,120:$VX,123:$VY,129:$VZ,134:$V_,135:$Vt,136:$Vu,137:$V$,141:$V01,151:$V11,155:$V21,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VR,[2,80]),o($Vo1,[2,56]),{12:177,14:$Vq1,17:$Vr1,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,72:218,74:174,78:$Vh,80:[1,217],81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{58:219,60:$Vf1},{58:220,60:$Vf1},{58:221,60:$Vf1},{12:222,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:223,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($V31,[2,81],{61:124,77:224,63:$V41,64:$V51,65:$V61,66:$V71,79:$V81}),o($V91,$Va1),o($Vl1,$Vd1,{52:$Ve1}),o($Vz1,$VA1,{83:225,85:226,86:227,59:$VB1,60:$VC1,87:$VD1}),{10:231,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o([14,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,135,136,157,159,160,161,162,163],[2,91]),o($VR,[2,194]),o($VR,[2,195]),o($VR,[2,196]),o($VR,[2,197]),{12:232,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{53:[1,233]},o($VE1,[2,198],{164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o($VE1,$VF1,{164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o($VE1,$VG1,{164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),{75:[1,235],91:[1,234]},o($VH1,[2,103]),o([11,14,16,17,47,49,50,52,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,88,89,91,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],$Vs1),{88:[1,236]},{12:237,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{47:[1,238]},o($VR,[2,113]),o($VB,[2,124],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),{12:239,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VR,[2,115]),o($VR,[2,117]),o($VR,[2,118]),{12:153,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$Vg1,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,102:240,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vi1,[2,122]),{12:153,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$Vg1,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,102:241,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VR,[2,123]),o($VR,[2,155]),o($VR,[2,156]),{50:[1,242],59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($V91,[2,49]),{55:[1,243]},{60:[1,244]},o([11,14,16,17,47,49,50,54,55,56,59,60,62,67,69,70,71,75,76,78,79,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],[2,51],{61:124,63:$V41,64:$V51,65:$V61,66:$V71}),o($Vo1,$VI1),o($Vo1,[2,57]),{59:$VC,113:$VD,115:$VJ1,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($Vl1,[2,68]),o([17,67],$VK1,{73:246,75:$VL1}),o($VM1,[2,70]),{12:177,14:$Vq1,17:$Vr1,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,72:248,74:174,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{14:[1,249]},o($VM1,[2,76],{59:$VC,76:[1,250],113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),{60:[1,251]},o($Vm1,[2,193],{157:$Vn1}),{157:$Vt1},o($VE1,$VN1,{164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o($VE1,[2,203],{164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o($VE1,$VO1,{164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o($VP1,[2,205],{164:$VG,167:$VJ}),o($VP1,[2,206],{164:$VG,167:$VJ}),o($VP1,[2,207],{164:$VG,167:$VJ}),o($VP1,[2,208],{164:$VG,167:$VJ}),o([11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,170,171,172,174,175],[2,209],{162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL}),o($VQ1,[2,210],{162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,172:$VO,174:$VP,175:$VQ}),o($VQ1,[2,211],{162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,172:$VO,174:$VP,175:$VQ}),o([11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,171,172],[2,212],{162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,174:$VP,175:$VQ}),o([11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,171,172,174,175],[2,214],{162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM}),o([11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,171,172,175],[2,215],{162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,174:$VP}),o($VB,$VR1,{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($VR,[2,10]),{12:92,13:94,18:252,20:93,21:95,22:96,23:97,24:98,25:99,26:100,27:101,28:102,29:103,30:104,31:105,32:106,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$VS,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$VT,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,111:108,113:$VU,114:46,116:$VV,117:$VW,118:112,120:$VX,123:$VY,129:$VZ,134:$V_,135:$Vt,136:$Vu,137:$V$,141:$V01,151:$V11,155:$V21,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vx1,[2,14]),o([16,17,47,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163],[2,85],{82:253,49:[1,254],84:$Vc1}),{10:255,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:[1,256],114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{10:257,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$VS1,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$VT1,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$VU1,163:$VV1,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},{12:262,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{10:263,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,133:[1,264],135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:265,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VW1,[2,150],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),{10:266,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{17:[1,267],59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($Vx1,[2,152],{84:[1,268]}),o($Vx1,[2,154]),{17:[1,269],139:[1,270],140:[1,271]},{60:[1,272]},{17:[1,273],139:[1,274]},o([16,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,151,155,159,160,161,162,163],[2,186],{84:[1,275],157:[1,276]}),o($VX1,[2,188]),{10:277,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$VS1,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$VT1,114:46,115:$VJ1,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$VU1,163:$VV1,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},{121:278,122:[1,279]},o($Vu1,$Vv1,{19:196,16:[1,280],17:$Vw1}),o($VR,[2,83]),o([17,80],$VK1,{73:281,75:$VL1}),o($Vo1,[2,58]),o($Vo1,[2,59]),o($Vo1,[2,60]),{59:$VC,67:[1,282],113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($VB,[2,100],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($VR,[2,82]),{50:[1,283],75:$VY1},o($Vz1,[2,93]),o($Vz1,[2,95],{88:[1,285]}),{59:$VB1,60:$VC1,86:286},{60:[1,287]},o($VZ1,[2,99]),o($VR,[2,90]),o($VB,[2,213],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($V91,[2,48]),{88:[1,288]},{58:289,60:$Vf1},{12:290,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VB,[2,131],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($VR,[2,46]),{50:[1,291],59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($VR,[2,119]),o($VR,[2,120]),o($V91,[2,47]),{50:[1,292]},o($V91,[2,192]),{12:293,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{17:$V_1,67:[1,294]},o([16,17,67,80],[2,79],{33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,51:40,114:46,57:57,68:58,158:63,58:65,12:177,74:296,47:$V5,49:$V6,54:$V7,55:$V8,56:$V9,59:$Va,60:$Vb,62:$Vc,66:$Vd,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,157:$Vv,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA}),o($V$1,$VK1,{73:297,75:$VL1}),{12:177,14:$Vq1,17:$Vr1,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,72:298,74:174,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:299,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($V91,[2,191]),o($Vx1,[2,13]),{10:300,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vz1,$VA1,{85:226,86:227,83:301,59:$VB1,60:$VC1,87:$VD1}),o($Vx1,[2,127]),{12:302,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vx1,[2,134]),{12:303,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:304,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:190,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:[1,305],62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:306,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{10:307,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$VS1,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$VT1,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$VU1,163:$VV1,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($Vx1,[2,148]),{12:308,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{59:$VC,113:$VD,132:[1,309],162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($Vx1,[2,137]),{14:[1,310]},{10:311,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{14:[1,312]},{60:[1,313]},{60:[1,314]},{17:[1,315]},{14:[1,316]},{60:[1,318],153:317},{10:319,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{60:[1,320]},o($V02,[2,128]),o($V12,[2,138]),{58:321,60:$Vf1},o($VR,[2,11]),{17:$V_1,80:[1,322]},o($Vo1,[2,61]),{82:323,84:$Vc1},{59:$VB1,60:$VC1,85:324,86:227,87:$VD1},{12:325,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vz1,[2,96]),o($VZ1,[2,98]),{12:326,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VH1,[2,104]),o($VB,[2,102],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($V91,[2,125]),o($V91,[2,50]),o($VB,[2,132],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($Vl1,[2,69]),{12:177,14:[1,328],33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,74:327,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VM1,[2,71]),{16:[1,329],17:$V_1},o($V$1,$VK1,{73:330,75:$VL1}),o($VM1,[2,77],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($V22,[2,86]),{50:[1,331],75:$VY1},{10:332,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$VS1,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$VT1,114:46,115:$VJ1,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$VU1,163:$VV1,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($V32,$VN1,{16:$VG1,112:$VG1,116:$VG1,117:$VG1,120:$VG1,123:$VG1,127:$VG1,128:$VG1,129:$VG1,134:$VG1,137:$VG1,141:$VG1,151:$VG1,155:$VG1,164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o($V32,$VO1,{16:$VF1,112:$VF1,116:$VF1,117:$VF1,120:$VF1,123:$VF1,127:$VF1,128:$VF1,129:$VF1,134:$VF1,137:$VF1,141:$VF1,151:$VF1,155:$VF1,164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o([16,17,47,49,52,54,55,56,59,60,62,63,64,65,66,69,70,71,78,79,81,88,89,92,101,103,104,105,106,108,110,112,113,116,117,120,123,127,128,129,134,135,136,137,141,151,155,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],$VI1,{14:$Vs1,115:$Vs1,157:$Vt1}),o([14,17,47,49,54,55,56,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,112,135,136,157,159,160,161],$VR1,{59:$VC,113:$VD,115:$VJ1,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($Vx1,[2,135]),o($VW1,[2,151],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),{12:333,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{124:334,125:335,126:336,127:$V42,128:$V52},o($Vx1,[2,153]),o($V62,$V72,{138:339,142:340,143:341,141:$V82,145:$V92,147:$Va2,148:$Vb2,149:$Vc2}),{17:[1,347]},{17:[1,348]},{14:[1,349]},{33:354,37:353,40:29,41:30,42:31,43:32,44:33,45:34,46:35,49:$V6,51:133,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,89:$Vj,92:$Vk,147:$Vd2,152:350,154:351,157:$Vv,158:63},{17:[1,355],75:[1,356]},o($Ve2,[2,184]),o($Vx1,[2,187]),o($VX1,[2,189]),{10:357,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VR,[2,84]),{10:358,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vz1,[2,94]),o($Vz1,[2,97],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($VB,[2,101],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($VM1,[2,72]),{12:177,14:$Vq1,17:$Vr1,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,72:359,74:174,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VM1,[2,73]),{16:[1,360],17:$V_1},o($V22,[2,87],{82:361,84:$Vc1}),o($V02,[2,129]),{10:362,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$VS1,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$VT1,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$VU1,163:$VV1,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o([127,128],$Vv1,{19:365,16:[1,363],17:[1,366],112:[1,364]}),o($Vf2,[2,142]),{12:367,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vi1,[2,146]),o($Vi1,[2,147]),o($Vg2,$Vv1,{19:369,16:[1,368],17:$Vh2}),o($Vi2,[2,161]),o($Vj2,$Vk2,{144:371,150:$Vl2}),o([81,150],$V72,{143:373,147:$Va2,148:$Vb2,149:$Vc2}),o($V62,$V72,{143:341,142:374,141:$V82,145:$V92,147:$Va2,148:$Vb2,149:$Vc2}),o($V62,[2,172]),o($V62,[2,173]),o($V62,[2,174]),{14:[1,375]},{14:[1,376]},o($V62,$V72,{142:340,143:341,138:377,141:$V82,145:$V92,147:$Va2,148:$Vb2,149:$Vc2}),o($Vm2,$Vv1,{19:379,16:[1,378],17:$Vn2}),o($Vo2,[2,179]),{21:381,81:$Vp2},o($Vo2,[2,183]),{61:124,63:$V41,64:$V51,65:$V61,66:$V71},{14:[1,383]},{60:[1,384]},o($V12,[2,139]),o($VR,[2,89]),o($V$1,$VK1,{73:385,75:$VL1}),o($VM1,[2,75]),{10:386,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vx1,[2,149]),o($Vx1,[2,140]),{10:387,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{125:388,126:336,127:$V42,128:$V52},o($Vf2,[2,144]),{10:389,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$VS1,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$VT1,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$VU1,163:$VV1,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($Vx1,[2,157]),o($V62,$V72,{143:341,142:390,141:$V82,145:$V92,147:$Va2,148:$Vb2,149:$Vc2}),o($Vi2,[2,163]),{21:393,33:354,37:392,40:29,41:30,42:31,43:32,44:33,45:34,46:35,49:$V6,51:133,54:$V7,55:$V8,56:$V9,57:57,58:391,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,81:$Vp2,89:$Vj,92:$Vk,157:$Vv,158:63},o($Vj2,[2,176]),{81:$Vk2,144:394,150:$Vl2},o($Vi2,[2,168]),o($V62,$V72,{142:340,143:341,138:395,141:$V82,145:$V92,147:$Va2,148:$Vb2,149:$Vc2}),o($V62,$V72,{142:340,143:341,138:396,141:$V82,145:$V92,147:$Va2,148:$Vb2,149:$Vc2}),o($Vg2,$Vv1,{19:369,16:[1,397],17:$Vh2}),o($Vx1,[2,177]),{33:354,37:353,40:29,41:30,42:31,43:32,44:33,45:34,46:35,49:$V6,51:133,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,89:$Vj,92:$Vk,147:$Vd2,154:398,157:$Vv,158:63},o($Vo2,[2,181]),o($Vo2,[2,182]),{60:$Vy1},{33:354,37:353,40:29,41:30,42:31,43:32,44:33,45:34,46:35,49:$V6,51:133,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,89:$Vj,92:$Vk,147:$Vd2,152:399,154:351,157:$Vv,158:63},o($Ve2,[2,185]),{16:[1,400],17:$V_1},o($V22,[2,88]),{16:[1,401]},o($Vf2,[2,143]),o($Vf2,[2,145]),o($Vi2,[2,162]),o($Vi2,[2,164],{52:$Vp1,63:$Vp1,64:$Vp1,65:$Vp1,88:$Vp1}),o($Vi2,[2,165]),o($Vi2,[2,166]),{21:402,81:$Vp2},o($Vg2,$Vv1,{19:369,16:[1,403],17:$Vh2}),o($Vg2,$Vv1,{19:369,16:[1,404],17:$Vh2}),o($Vx1,[2,160]),o($Vo2,[2,180]),o($Vm2,$Vv1,{19:379,16:[1,405],17:$Vn2}),o($VM1,[2,74]),o($Vx1,[2,141]),o($Vi2,[2,167]),o($Vx1,[2,158]),o($Vx1,[2,159]),o($Vx1,[2,178])],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],tstack=[],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,recovering=0,TERROR=2,EOF=1;var args=lstack.slice.call(arguments,1);var lexer=Object.create(this.lexer);var sharedState={yy:{}};for(var k in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,k)){sharedState.yy[k]=this.yy[k]}}lexer.setInput(input,sharedState.yy);sharedState.yy.lexer=lexer;sharedState.yy.parser=this;if(typeof lexer.yylloc=="undefined"){lexer.yylloc={}}var yyloc=lexer.yylloc;lstack.push(yyloc);var ranges=lexer.options&&lexer.options.ranges;if(typeof sharedState.yy.parseError==="function"){this.parseError=sharedState.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}_token_stack:function lex(){var token;token=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(lexer.showPosition){errStr="Parse error on line "+(yylineno+1)+":\n"+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:lexer.match,token:this.terminals_[symbol]||symbol,line: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(lexer.yytext);lstack.push(lexer.yylloc);stack.push(action[1]);symbol=null;if(!preErrorSymbol){yyleng=lexer.yyleng;yytext=lexer.yytext;yylineno=lexer.yylineno;yyloc=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,sharedState.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}};function Parser(){this.yy={}}Parser.prototype=parser;parser.Parser=Parser;return new Parser}();if(typeof require!=="undefined"&&typeof exports!=="undefined"){exports.parser=parser;exports.Parser=parser.Parser;exports.parse=function(){return parser.parse.apply(parser,arguments)};exports.main=function commonjsMain(args){if(!args[1]){console.log("Usage: "+args[0]+" FILE");process.exit(1)}var source=require("fs").readFileSync(require("path").normalize(args[1]),"utf8");return exports.parser.parse(source)};if(typeof module!=="undefined"&&require.main===module){exports.main(process.argv.slice(1))}}return exports}();require["./context"]=function(){var exports={},module={exports:exports};(function(){var Context,PreContext;exports.Context=Context=function(){function Context(element){this.scopes=[];this.scopes.unshift(element)}Context.prototype.push=function(iden){this.scopes[0][iden.name]={};this.scopes[0][iden.name].name=iden.name;return this.scopes[0][iden.name].type=iden.type};Context.prototype.scopein=function(){return this.scopes.unshift({})};Context.prototype.scopeout=function(){return this.scopes.shift()};Context.prototype.Identify=function(name){var scope,_i,_len,_ref,_ref1;_ref=this.scopes;for(_i=0,_len=_ref.length;_i<_len;_i++){scope=_ref[_i];if(scope[name]!==void 0){if((_ref1=scope[name].type)==="function"||_ref1==="cte"||_ref1==="class"||_ref1==="interface"){return name}else{return"$"+name}}}return"$"+name};return Context}();PreContext=exports.PreContext=new Context({"call_​user_​func_​array":{type:"function"},call_user_func:{type:"function"},create_function:{type:"function"},forward_static_call_array:{type:"function"},forward_static_call:{type:"function"},func_get_arg:{type:"function"},func_get_args:{type:"function"},func_num_args:{type:"function"},function_exists:{type:"function"},get_defined_functions:{type:"function"},register_shutdown_function:{type:"function"},register_tick_function:{type:"function"},unregister_tick_function:{type:"function"},CASE_LOWER:{type:"cte"},CASE_UPPER:{type:"cte"},SORT_ASC:{type:"cte"},SORT_DESC:{type:"cte"},SORT_REGULAR:{type:"cte"},SORT_NUMERIC:{type:"cte"},SORT_STRING:{type:"cte"},SORT_LOCALE_STRING:{type:"cte"},SORT_NATURAL:{type:"cte"},SORT_FLAG_CASE:{type:"cte"},COUNT_NORMAL:{type:"cte"},COUNT_RECURSIVE:{type:"cte"},EXTR_OVERWRITE:{type:"cte"},EXTR_SKIP:{type:"cte"},EXTR_PREFIX_SAME:{type:"cte"},EXTR_PREFIX_ALL:{type:"cte"},EXTR_PREFIX_INVALID:{type:"cte"},EXTR_PREFIX_IF_EXISTS:{type:"cte"},EXTR_IF_EXISTS:{type:"cte"},EXTR_REFS:{type:"cte"},array_change_key_case:{type:"function"},array_chunk:{type:"function"},array_column:{type:"function"},array_combine:{type:"function"},array_count_values:{type:"function"},array_diff_assoc:{type:"function"},array_diff_key:{type:"function"},array_diff_uassoc:{type:"function"},array_diff_ukey:{type:"function"},array_diff:{type:"function"},array_fill_keys:{type:"function"},array_fill:{type:"function"},array_filter:{type:"function"},array_flip:{type:"function"},array_intersect_assoc:{type:"function"},array_intersect_key:{type:"function"},array_intersect_uassoc:{type:"function"},array_intersect_ukey:{type:"function"},array_intersect:{type:"function"},array_key_exists:{type:"function"},array_keys:{type:"function"},array_map:{type:"function"},array_merge_recursive:{type:"function"},array_merge:{type:"function"},array_multisort:{type:"function"},array_pad:{type:"function"},array_pop:{type:"function"},array_product:{type:"function"},array_push:{type:"function"},array_rand:{type:"function"},array_reduce:{type:"function"},array_replace_recursive:{type:"function"},array_replace:{type:"function"},array_reverse:{type:"function"},array_search:{type:"function"},array_shift:{type:"function"},array_slice:{type:"function"},array_splice:{type:"function"},array_sum:{type:"function"},array_udiff_assoc:{type:"function"},array_udiff_uassoc:{type:"function"},array_udiff:{type:"function"},array_uintersect_assoc:{type:"function"},array_uintersect_uassoc:{type:"function"},array_uintersect:{type:"function"},array_unique:{type:"function"},array_unshift:{type:"function"},array_values:{type:"function"},array_walk_recursive:{type:"function"},array_walk:{type:"function"},array:{type:"function"},arsort:{type:"function"},asort:{type:"function"},compact:{type:"function"},count:{type:"function"},current:{type:"function"},each:{type:"function"},end:{type:"function"},extract:{type:"function"},in_array:{type:"function"},key_exists:{type:"function"},key:{type:"function"},krsort:{type:"function"},ksort:{type:"function"},list:{type:"function"},natcasesort:{type:"function"},natsort:{type:"function"},next:{type:"function"},pos:{type:"function"},prev:{type:"function"},range:{type:"function"},reset:{type:"function"},rsort:{type:"function"},shuffle:{type:"function"},sizeof:{type:"function"},sort:{type:"function"},uasort:{type:"function"},uksort:{type:"function"},usort:{type:"function"},__autoload:{type:"function"},call_user_method_array:{type:"function"},call_user_method:{type:"function"},class_alias:{type:"function"},class_exists:{type:"function"},get_called_class:{type:"function"},get_class_methods:{type:"function"},get_class_vars:{type:"function"},get_class:{type:"function"},get_declared_classes:{type:"function"},get_declared_interfaces:{type:"function"},get_declared_traits:{type:"function"},get_object_vars:{type:"function"},get_parent_class:{type:"function"},interface_exists:{type:"function"},is_a:{type:"function"},is_subclass_of:{type:"function"},method_exists:{type:"function"},property_exists:{type:"function"},trait_exists:{type:"function"},CLASSKIT_ACC_PRIVATE:{type:"cte"},CLASSKIT_ACC_PROTECTED:{type:"cte"},CLASSKIT_ACC_PUBLIC:{type:"cte"},classkit_import:{type:"function"},classkit_method_add:{type:"function"},classkit_method_copy:{type:"function"},classkit_method_redefine:{type:"function"},classkit_method_remove:{type:"function"},classkit_method_rename:{type:"function"},ctype_alnum:{type:"function"},ctype_alpha:{type:"function"},ctype_cntrl:{type:"function"},ctype_digit:{type:"function"},ctype_graph:{type:"function"},ctype_lower:{type:"function"},ctype_print:{type:"function"},ctype_punct:{type:"function"},ctype_space:{type:"function"},ctype_upper:{type:"function"},ctype_xdigit:{type:"function"},INPUT_POST:{type:"cte"},INPUT_GET:{type:"cte"},INPUT_COOKIE:{type:"cte"},INPUT_ENV:{type:"cte"},INPUT_SERVER:{type:"cte"},INPUT_SESSION:{type:"cte"},INPUT_REQUEST:{type:"cte"},FILTER_FLAG_NONE:{type:"cte"},FILTER_REQUIRE_SCALAR:{type:"cte"},FILTER_REQUIRE_ARRAY:{type:"cte"},FILTER_FORCE_ARRAY:{type:"cte"},FILTER_NULL_ON_FAILURE:{type:"cte"},FILTER_VALIDATE_INT:{type:"cte"},FILTER_VALIDATE_BOOLEAN:{type:"cte"},FILTER_VALIDATE_FLOAT:{type:"cte"},FILTER_VALIDATE_REGEXP:{type:"cte"},FILTER_VALIDATE_URL:{type:"cte"},FILTER_VALIDATE_EMAIL:{type:"cte"},FILTER_VALIDATE_IP:{type:"cte"},FILTER_DEFAULT:{type:"cte"},FILTER_UNSAFE_RAW:{type:"cte"},FILTER_SANITIZE_STRING:{type:"cte"},FILTER_SANITIZE_STRIPPED:{type:"cte"},FILTER_SANITIZE_ENCODED:{type:"cte"},FILTER_SANITIZE_SPECIAL_CHARS:{type:"cte"},FILTER_SANITIZE_EMAIL:{type:"cte"},FILTER_SANITIZE_URL:{type:"cte"},FILTER_SANITIZE_NUMBER_INT:{type:"cte"},FILTER_SANITIZE_NUMBER_FLOAT:{type:"cte"},FILTER_SANITIZE_MAGIC_QUOTES:{type:"cte"},FILTER_CALLBACK:{type:"cte"},FILTER_FLAG_ALLOW_OCTAL:{type:"cte"},FILTER_FLAG_ALLOW_HEX:{type:"cte"},FILTER_FLAG_STRIP_LOW:{type:"cte"},FILTER_FLAG_STRIP_HIGH:{type:"cte"},FILTER_FLAG_ENCODE_LOW:{type:"cte"},FILTER_FLAG_ENCODE_HIGH:{type:"cte"},FILTER_FLAG_ENCODE_AMP:{type:"cte"},FILTER_FLAG_NO_ENCODE_QUOTES:{type:"cte"},FILTER_FLAG_EMPTY_STRING_NULL:{type:"cte"},FILTER_FLAG_ALLOW_FRACTION:{type:"cte"},FILTER_FLAG_ALLOW_THOUSAND:{type:"cte"},FILTER_FLAG_ALLOW_SCIENTIFIC:{type:"cte"},FILTER_FLAG_PATH_REQUIRED:{type:"cte"},FILTER_FLAG_QUERY_REQUIRED:{type:"cte"},FILTER_FLAG_IPV4:{type:"cte"},FILTER_FLAG_IPV6:{type:"cte"},FILTER_FLAG_NO_RES_RANGE:{type:"cte"},FILTER_FLAG_NO_PRIV_RANGE:{type:"cte"},filter_has_var:{type:"function"},filter_id:{type:"function"},filter_input_array:{type:"function"},filter_input:{type:"function"},filter_list:{type:"function"},filter_var_array:{type:"function"},filter_var:{type:"function"},aggregate_infoh:{type:"function"},aggregate_methods_by_list:{type:"function"},aggregate_methods_by_regexp:{type:"function"},aggregate_methods:{type:"function"},aggregate_properties_by_list:{type:"function"},aggregate_properties_by_regexp:{type:"function"},aggregate_properties:{type:"function"},aggregate:{type:"function"},aggregation_info:{type:"function"},deaggregate:{type:"function"},QuickHashIntSet:{type:"class"},QuickHashIntHash:{type:"class"},QuickHashStringIntHash:{type:"class"},QuickHashIntStringHash:{type:"class"},Reflection:{type:"class"},ReflectionClass:{type:"class"},ReflectionZendExtension:{type:"class"},ReflectionExtension:{type:"class"},ReflectionFunction:{type:"class"},ReflectionFunctionAbstract:{type:"class"},ReflectionMethod:{type:"class"},ReflectionObject:{type:"class"},ReflectionParameter:{type:"class"},ReflectionProperty:{type:"class"},Reflector:{type:"class"},ReflectionException:{type:"class"},boolval:{type:"function"},debug_zval_dump:{type:"function"},doubleval:{type:"function"},empty:{type:"function"},floatval:{type:"function"},get_defined_vars:{type:"function"},get_resource_type:{type:"function"},gettype:{type:"function"},import_request_variables:{type:"function"},intval:{type:"function"},is_array:{type:"function"},is_bool:{type:"function"},is_callable:{type:"function"},is_double:{type:"function"},is_float:{type:"function"},is_int:{type:"function"},is_integer:{type:"function"},is_long:{type:"function"},is_null:{type:"function"},is_numeric:{type:"function"},is_object:{type:"function"},is_real:{type:"function"},is_resource:{type:"function"},is_scalar:{type:"function"},is_string:{type:"function"},isset:{type:"function"},print_r:{type:"function"},serialize:{type:"function"},settype:{type:"function"},strval:{type:"function"},unserialize:{type:"function"},unset:{type:"function"},var_dump:{type:"function"},var_export:{type:"function"},F_DUPFD:{type:"cte"},F_GETFD:{type:"cte"},F_GETFL:{type:"cte"},F_GETLK:{type:"cte"},F_GETOWN:{type:"cte"},F_RDLCK:{type:"cte"},F_SETFL:{type:"cte"},F_SETLK:{type:"cte"},F_SETLKW:{type:"cte"},F_SETOWN:{type:"cte"},F_UNLCK:{type:"cte"},F_WRLCK:{type:"cte"},O_APPEND:{type:"cte"},O_ASYNC:{type:"cte"},O_CREAT:{type:"cte"},O_EXCL:{type:"cte"},O_NDELAY:{type:"cte"},O_NOCTTY:{type:"cte"},O_NONBLOCK:{type:"cte"},O_RDONLY:{type:"cte"},O_RDWR:{type:"cte"},O_SYNC:{type:"cte"},O_TRUNC:{type:"cte"},O_WRONLY:{type:"cte"},S_IRGRP:{type:"cte"},S_IROTH:{type:"cte"},S_IRUSR:{type:"cte"},S_IRWXG:{type:"cte"},S_IRWXO:{type:"cte"},S_IRWXU:{type:"cte"},S_IWGRP:{type:"cte"},S_IWOTH:{type:"cte"},S_IWUSR:{type:"cte"},S_IXGRP:{type:"cte"},S_IXOTH:{type:"cte"},S_IXUSR:{type:"cte"},dio_close:{type:"function"},dio_fcntl:{type:"function"},dio_open:{type:"function"},dio_read:{type:"function"},dio_seek:{type:"function"},dio_stat:{type:"function"},dio_tcsetattr:{type:"function"},dio_truncate:{type:"function"},dio_write:{type:"function"},DIRECTORY_SEPARATOR:{type:"cte"},PATH_SEPARATOR:{type:"cte"},SCANDIR_SORT_ASCENDING:{type:"cte"},SCANDIR_SORT_DESCENDING:{type:"cte"},SCANDIR_SORT_NONE:{type:"cte"},Directory:{type:"class"},chdir:{type:"function"},chroot:{type:"function"},closedir:{type:"function"},dir:{type:"function"},getcwd:{type:"function"},opendir:{type:"function"},readdir:{type:"function"},rewinddir:{type:"function"},scandir:{type:"function"},FILEINFO_NONE:{type:"cte"},FILEINFO_SYMLINK:{type:"cte"},FILEINFO_MIME_TYPE:{type:"cte"},FILEINFO_MIME_ENCODING:{type:"cte"},FILEINFO_MIME:{type:"cte"},FILEINFO_COMPRESS:{type:"cte"},FILEINFO_DEVICES:{type:"cte"},FILEINFO_CONTINUE:{type:"cte"},FILEINFO_PRESERVE_ATIME:{type:"cte"},FILEINFO_RAW:{type:"cte"},finfo_close:{type:"function"},finfo_file:{type:"function"},finfo_open:{type:"function"},finfo_set_flags:{type:"function"},mime_content_type:{type:"function"},SEEK_SET:{type:"cte"},SEEK_CUR:{type:"cte"},SEEK_END:{type:"cte"},LOCK_SH:{type:"cte"},LOCK_EX:{type:"cte"},LOCK_UN:{type:"cte"},LOCK_NB:{type:"cte"},GLOB_BRACE:{type:"cte"},GLOB_ONLYDIR:{type:"cte"},GLOB_MARK:{type:"cte"},GLOB_NOSORT:{type:"cte"},GLOB_NOCHECK:{type:"cte"},GLOB_NOESCAPE:{type:"cte"},GLOB_AVAILABLE_FLAGS:{type:"cte"},PATHINFO_DIRNAME:{type:"cte"},PATHINFO_BASENAME:{type:"cte"},PATHINFO_EXTENSION:{type:"cte"},PATHINFO_FILENAME:{type:"cte"},FILE_USE_INCLUDE_PATH:{type:"cte"},FILE_NO_DEFAULT_CONTEXT:{type:"cte"},FILE_APPEND:{type:"cte"},FILE_IGNORE_NEW_LINES:{type:"cte"},FILE_SKIP_EMPTY_LINES:{type:"cte"},FILE_BINARY:{type:"cte"},FILE_TEXT:{type:"cte"},INI_SCANNER_NORMAL:{type:"cte"},INI_SCANNER_RAW:{type:"cte"},FNM_NOESCAPE:{type:"cte"},FNM_PATHNAME:{type:"cte"},FNM_PERIOD:{type:"cte"},FNM_CASEFOLD:{type:"cte"},basename:{type:"function"},chgrp:{type:"function"},chmod:{type:"function"},chown:{type:"function"},clearstatcache:{type:"function"},copy:{type:"function"},"delete":{type:"function"},dirname:{type:"function"},disk_free_space:{type:"function"},disk_total_space:{type:"function"},diskfreespace:{type:"function"},fclose:{type:"function"},feof:{type:"function"},fflush:{type:"function"},fgetc:{type:"function"},fgetcsv:{type:"function"},fgets:{type:"function"},fgetss:{type:"function"},file_exists:{type:"function"},file_get_contents:{type:"function"},file_put_contents:{type:"function"},file:{type:"function"},fileatime:{type:"function"},filectime:{type:"function"},filegroup:{type:"function"},fileinode:{type:"function"},filemtime:{type:"function"},fileowner:{type:"function"},fileperms:{type:"function"},filesize:{type:"function"},filetype:{type:"function"},flock:{type:"function"},fnmatch:{type:"function"},fopen:{type:"function"},fpassthru:{type:"function"},fputcsv:{type:"function"},fputs:{type:"function"},fread:{type:"function"},fscanf:{type:"function"},fseek:{type:"function"},fstat:{type:"function"},ftell:{type:"function"},ftruncate:{type:"function"},fwrite:{type:"function"},glob:{type:"function"},is_dir:{type:"function"},is_executable:{type:"function"},is_file:{type:"function"},is_link:{type:"function"},is_readable:{type:"function"},is_uploaded_file:{type:"function"},is_writable:{type:"function"},is_writeable:{type:"function"},lchgrp:{type:"function"},lchown:{type:"function"},link:{type:"function"},linkinfo:{type:"function"},lstat:{type:"function"},mkdir:{type:"function"},move_uploaded_file:{type:"function"},parse_ini_file:{type:"function"},parse_ini_string:{type:"function"},pathinfo:{type:"function"},pclose:{type:"function"},popen:{type:"function"},readfile:{type:"function"},readlink:{type:"function"},realpath_cache_get:{type:"function"},realpath_cache_size:{type:"function"},realpath:{type:"function"},rename:{type:"function"},rewind:{type:"function"},rmdir:{type:"function"},set_file_buffer:{type:"function"},stat:{type:"function"},symlink:{type:"function"},tempnam:{type:"function"},tmpfile:{type:"function"},touch:{type:"function"},umask:{type:"function"},unlink:{type:"function"},IN_ACCESS:{type:"cte"},IN_MODIFY:{type:"cte"},IN_ATTRIB:{type:"cte"},IN_CLOSE_WRITE:{type:"cte"},IN_CLOSE_NOWRITE:{type:"cte"},IN_OPEN:{type:"cte"},IN_MOVED_TO:{type:"cte"},IN_MOVED_FROM:{type:"cte"},IN_CREATE:{type:"cte"},IN_DELETE:{type:"cte"},IN_DELETE_SELF:{type:"cte"},IN_MOVE_SELF:{type:"cte"},IN_CLOSE:{type:"cte"},IN_MOVE:{type:"cte"},IN_ALL_EVENTS:{type:"cte"},IN_UNMOUNT:{type:"cte"},IN_Q_OVERFLOW:{type:"cte"},IN_IGNORED:{type:"cte"},IN_ISDIR:{type:"cte"},IN_ONLYDIR:{type:"cte"},IN_DONT_FOLLOW:{type:"cte"},IN_MASK_ADD:{type:"cte"},IN_ONESHOT:{type:"cte"},inotify_add_watch:{type:"function"},inotify_init:{type:"function"},inotify_queue_len:{type:"function"},inotify_read:{type:"function"},inotify_rm_watch:{type:"function"}})}).call(this);return module.exports}();require["./lexer"]=function(){var exports={},module={exports:exports};(function(){var CloseIndents,IntoArray,IntoHereDoc,IntoMammouth,Levels,Lexer,OpenedParens,RegularExpression,captureTypeCasting,col,lastIsIdentifier,lexer,row,setToken,tokenStack;Lexer=require("lex");col=1;row=1;IntoArray=false;IntoMammouth=false;IntoHereDoc=false;Levels=[{IndentStack:[],CurrentIndent:-1,OpenedIndent:0}];OpenedParens=[];lastIsIdentifier=false;captureTypeCasting=false;tokenStack=[];setToken=function(token){if(token==="IDENTIFIER"&&tokenStack[0]!=="FUNC"){lastIsIdentifier=true}else{lastIsIdentifier=false;if(token==="=>"){captureTypeCasting=true}else{captureTypeCasting=false}}return tokenStack.unshift(token)};CloseIndents=function(tokens){while(Levels[0].OpenedIndent>0){tokens.unshift("OUTDENT");Levels[0].OpenedIndent--}return tokens};lexer=module.exports=new Lexer(function(char){throw new Error("Unexpected character at row "+row+", col "+col+": "+char)});RegularExpression={PlainText:/(((?!({{|}}))([\n\r\u2028\u2029]|.))*)/,MammouthStart:/{{/,MammouthEnd:/}}/,Python_indent:/(^[ \t]*)/gm,EmptyLine:/(^[\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000]*[\n\r\u2028\u2029])/gim,IDENTIFIER:/(([$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)( [^\n\S]* : (?!:) )?)/,NUMBER:/(0b[01]+|0o[0-7]+|0(x|X)[\da-fA-F]+|\d*\.?\d+(?:(e|E)[+-]?\d+)?)/,STRING:/('[^\\']*(?:\\[\s\S][^\\']*)*'|"[^\\"]*(?:\\[\s\S][^\\"]*)*")/,HEREDOC:/(((?!(\`|{{|}}))([\n\r\u2028\u2029]|.))*)/,LineTerminator:/[\n\r\u2028\u2029]/,Zs:/[\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000]/,SingleComment:/#(.*)+[\n\r\u2028\u2029]/,MultiComment:/###(([\n\r\u2028\u2029]|.)*)###/};lexer.addRule(/^/,function(lexeme){IntoArray=false;IntoMammouth=false;IntoHereDoc=false;Levels=[{IndentStack:[],CurrentIndent:-1,OpenedIndent:0}];OpenedParens=[];lastIsIdentifier=false;captureTypeCasting=false;tokenStack=[];return this.reject=true});lexer.addRule(RegularExpression.PlainText,function(lexeme){if(!IntoMammouth){col+=lexeme.length;this.yytext=lexeme;setToken("PlainText");return"PlainText"}else{return this.reject=true}});lexer.addRule(RegularExpression.HEREDOC,function(lexeme){if(IntoMammouth&&IntoHereDoc){col+=lexeme.length;this.yytext=lexeme;setToken("HEREDOCTEXT");return"HEREDOCTEXT"}else{return this.reject=true}});lexer.addRule(RegularExpression.EmptyLine,function(lexeme){});lexer.addRule(RegularExpression.SingleComment,function(lexeme){});lexer.addRule(RegularExpression.MultiComment,function(lexeme){});lexer.addRule(RegularExpression.Python_indent,function(lexeme){var a,current_line_indent,i,tokens,_i,_j,_len,_len1,_ref;if(IntoMammouth){col+=lexeme.length;current_line_indent=lexeme.replace(/\t/g," ").length;if(current_line_indent>Levels[0].CurrentIndent){Levels[0].CurrentIndent=current_line_indent;Levels[0].OpenedIndent++;Levels[0].IndentStack.push(Levels[0].CurrentIndent);setToken("INDENT");return"INDENT"}else if(current_line_indent/,function(lexeme){col+=lexeme.length;setToken("<->");return"<->"});lexer.addRule(/->/,function(lexeme){col+=lexeme.length;setToken("->");return"->"});lexer.addRule(/\=>/,function(lexeme){col+=lexeme.length;setToken("=>");return"=>"});lexer.addRule(/\=\=>/,function(lexeme){col+=lexeme.length;setToken("==>");return"==>"});lexer.addRule(/:/,function(lexeme){col+=lexeme.length;setToken(":");return":"});lexer.addRule(/::/,function(lexeme){col+=lexeme.length;setToken("::");return"::"});lexer.addRule(/\+/,function(lexeme){col+=lexeme.length;setToken("+");return"+"});lexer.addRule(/\+\+/,function(lexeme){col+=lexeme.length;setToken("++");return"++"});lexer.addRule(/-/,function(lexeme){col+=lexeme.length;setToken("-");return"-"});lexer.addRule(/--/,function(lexeme){col+=lexeme.length;setToken("--");return"--"});lexer.addRule(/\?/,function(lexeme){col+=lexeme.length;setToken("?");return"?"});lexer.addRule(/\*/,function(lexeme){col+=lexeme.length;setToken("*");return"*"});lexer.addRule(/\*\*/,function(lexeme){col+=lexeme.length;setToken("**");return"**"});lexer.addRule(/\//,function(lexeme){col+=lexeme.length;setToken("/");return"/"});lexer.addRule(/\\/,function(lexeme){col+=lexeme.length;setToken("\\");return"\\"});lexer.addRule(/%/,function(lexeme){col+=lexeme.length;setToken("%");return"%"});lexer.addRule(/\+\=/,function(lexeme){col+=lexeme.length;this.yytext=lexeme;setToken("ASSIGN");return"ASSIGN"});lexer.addRule(/-\=/,function(lexeme){col+=lexeme.length;this.yytext=lexeme;setToken("ASSIGN");return"ASSIGN"});lexer.addRule(/\*\=/,function(lexeme){col+=lexeme.length;this.yytext=lexeme;setToken("ASSIGN");return"ASSIGN"});lexer.addRule(/\/\=/,function(lexeme){col+=lexeme.length;this.yytext=lexeme;setToken("ASSIGN");return"ASSIGN"});lexer.addRule(/\%\=/,function(lexeme){col+=lexeme.length;this.yytext=lexeme;setToken("ASSIGN");return"ASSIGN"});lexer.addRule(/&/,function(lexeme){col+=lexeme.length;this.yytext=lexeme;setToken("&");return"&"});lexer.addRule(/>>/,function(lexeme){col+=lexeme.length;this.yytext=lexeme;setToken(">>");return"SHIFT"});lexer.addRule(/</,function(lexeme){col+=lexeme.length;this.yytext=lexeme;setToken("COMPARE");return"COMPARE"});lexer.addRule(/<=/,function(lexeme){col+=lexeme.length;this.yytext=lexeme;setToken("COMPARE");return"COMPARE"});lexer.addRule(/>=/,function(lexeme){col+=lexeme.length;this.yytext=lexeme;setToken("COMPARE");return"COMPARE"});lexer.addRule(/!\=/,function(lexeme){col+=lexeme.length;this.yytext=lexeme;setToken("COMPARE");return"COMPARE"});lexer.addRule(/\=\=/,function(lexeme){col+=lexeme.length;this.yytext=lexeme;setToken("COMPARE");return"COMPARE"});lexer.addRule(/\=\=\=/,function(lexeme){col+=lexeme.length;this.yytext=lexeme;setToken("COMPARE");return"COMPARE"});lexer.addRule(/\=/,function(lexeme){col+=lexeme.length;setToken("=");return"="});lexer.addRule(RegularExpression.IDENTIFIER,function(lexeme){col+=lexeme.length;if(captureTypeCasting){this.yytext=lexeme;setToken("cType");return"cType"}if(lexeme==="true"||lexeme==="false"){this.yytext=eval(lexeme);setToken("BOOL");return"BOOL"}else if(lexeme==="break"){setToken("BREAK");return"BREAK"}else if(lexeme==="and"){this.yytext=lexeme;setToken("LOGIC");return"LOGIC"}else if(lexeme==="abstract"){setToken("ABSTRACT");return"ABSTRACT"}else if(lexeme==="as"){setToken("AS");return"AS"}else if(lexeme==="catch"){setToken("CATCH");return"CATCH"}else if(lexeme==="case"){setToken("CASE");return"CASE"}else if(lexeme==="class"){setToken("CLASS");return"CLASS"}else if(lexeme==="clone"){setToken("CLONE");return"CLONE"}else if(lexeme==="continue"){setToken("CONTINUE");return"CONTINUE"}else if(lexeme==="cte"){setToken("CTE");return"CTE"}else if(lexeme==="declare"){setToken("DECLARE");return"DECLARE"}else if(lexeme==="delete"){setToken("DELETE");return"DELETE"}else if(lexeme==="do"){setToken("DO");return"DO"}else if(lexeme==="each"){setToken("EACH");return"EACH"}else if(lexeme==="echo"){setToken("ECHO");return"ECHO"}else if(lexeme==="else"){setToken("ELSE");return"ELSE"}else if(lexeme==="exec"){setToken("EXEC");return"EXEC"}else if(lexeme==="extends"){setToken("EXTENDS");return"EXTENDS"}else if(lexeme==="final"){setToken("FINAL");return"FINAL"}else if(lexeme==="finally"){setToken("FINALLY");return"FINALLY"}else if(lexeme==="for"){setToken("FOR");return"FOR"}else if(lexeme==="func"){setToken("FUNC");return"FUNC"}else if(lexeme==="goto"){setToken("GOTO");return"GOTO"}else if(lexeme==="if"){setToken("IF");return"IF"}else if(lexeme==="implements"){setToken("IMPLEMENTS");return"IMPLEMENTS"}else if(lexeme==="include"){setToken("INCLUDE");return"INCLUDE"}else if(lexeme==="instanceof"){setToken("INSTANCEOF");return"INSTANCEOF"}else if(lexeme==="interface"){setToken("INTERFACE");return"INTERFACE"}else if(lexeme==="is"){this.yytext="===";setToken("COMPARE");return"COMPARE"}else if(lexeme==="isnt"){this.yytext="!=";setToken("COMPARE");return"COMPARE"}else if(lexeme==="in"){setToken("IN");return"IN"}else if(lexeme==="not"){setToken("NOT");return"NOT"}else if(lexeme==="namespace"){setToken("NAMESPACE");return"NAMESPACE"}else if(lexeme==="new"){setToken("NEW");return"NEW"}else if(lexeme==="null"){setToken("NULL");return"NULL"}else if(lexeme==="once"){setToken("ONCE");return"ONCE"}else if(lexeme==="or"){this.yytext=lexeme;setToken("LOGIC");return"LOGIC"}else if(lexeme==="public"){setToken("PUBLIC");return"PUBLIC"}else if(lexeme==="private"){setToken("PRIVATE");return"PRIVATE"}else if(lexeme==="protected"){setToken("PROTECTED");return"PROTECTED"}else if(lexeme==="static"){setToken("STATIC");return"STATIC"}else if(lexeme==="require"){setToken("REQUIRE");return"REQUIRE"}else if(lexeme==="return"){setToken("RETURN");return"RETURN"}else if(lexeme==="switch"){setToken("SWITCH");return"SWITCH"}else if(lexeme==="then"){setToken("THEN");return"THEN"}else if(lexeme==="try"){setToken("TRY");return"TRY"}else if(lexeme==="use"){setToken("USE");return"USE"}else if(lexeme==="when"){setToken("WHEN");return"WHEN"}else if(lexeme==="while"){setToken("WHILE");return"WHILE"}else{this.yytext=lexeme;setToken("IDENTIFIER");return"IDENTIFIER"}});lexer.addRule(RegularExpression.NUMBER,function(lexeme){col+=lexeme.length;this.yytext=lexeme;setToken("NUMBER");return"NUMBER"});lexer.addRule(RegularExpression.STRING,function(lexeme){col+=lexeme.length;this.yytext=lexeme;setToken("STRING");return"STRING"});lexer.addRule(RegularExpression.LineTerminator,function(lexeme){col=1;row++;setToken("LineTerminator");return"LineTerminator"})}).call(this);return module.exports}();require["./nodes"]=function(){var exports={},module={exports:exports};(function(){var Access,Array,ArrayKey,Assign,Block,Bool,Break,Call,Casting,Class,ClassLine,Clone,Code,Constant,Continue,Declare,Delete,DoWhile,Echo,Else,ElseIf,Exec,Existence,Expression,For,GetKeyAssign,Goto,HereDoc,Identifier,If,In,Include,Interface,Literal,MammouthBlock,Namespace,NamespaceRef,NewCall,Operation,Parens,PlainBlock,Require,Return,Section,Switch,SwitchElse,Try,Unary,Update,Value,When,While;exports.PlainBlock=PlainBlock=function(){function PlainBlock(text){this.text=text;this.type="PlainBlock"}PlainBlock.prototype.toPHP=function(){return this.text};return PlainBlock}();exports.MammouthBlock=MammouthBlock=function(){function MammouthBlock(body){this.body=body; +this.type="MammouthBlock"}return MammouthBlock}();exports.Block=Block=function(){function Block(nodes){this.nodes=nodes;this.type="Block"}return Block}();exports.Expression=Expression=function(){function Expression(expression){this.expression=expression;this.type="Expression"}return Expression}();exports.Value=Value=function(){function Value(value,properties){this.value=value;this.properties=properties!=null?properties:[];this.type="Value"}Value.prototype.add=function(prop){return this.properties.push(prop)};return Value}();exports.Access=Access=function(){function Access(value,method){this.value=value;this.method=method!=null?method:".";this.type="Access"}return Access}();exports.Parens=Parens=function(){function Parens(expression){this.expression=expression;this.type="Parens"}return Parens}();exports.Identifier=Identifier=function(){function Identifier(name,as_arguments,passing){this.name=name;this.as_arguments=as_arguments!=null?as_arguments:false;this.passing=passing!=null?passing:false;this.type="Identifier"}return Identifier}();exports.Literal=Literal=function(){function Literal(value){this.value=value;this.type="Literal"}return Literal}();exports.Bool=Bool=function(){function Bool(value){this.value=value;this.type="Bool"}return Bool}();exports.Null=function(){function _Class(){this.type="Null"}return _Class}();exports.Array=Array=function(){function Array(elements){this.elements=elements!=null?elements:[];this.type="Array"}return Array}();exports.ArrayKey=ArrayKey=function(){function ArrayKey(key,value){this.key=key;this.value=value;this.type="ArrayKey"}return ArrayKey}();exports.Call=Call=function(){function Call(variable,_arguments){this.variable=variable;this["arguments"]=_arguments!=null?_arguments:[];this.type="Call"}return Call}();exports.NewCall=NewCall=function(){function NewCall(variable,_arguments){this.variable=variable;this["arguments"]=_arguments!=null?_arguments:false;this.type="NewCall"}return NewCall}();exports.Code=Code=function(){function Code(parameters,body,normal,name){this.parameters=parameters;this.body=body;this.normal=normal!=null?normal:false;this.name=name!=null?name:null;this.type="Code"}return Code}();exports.Casting=Casting=function(){function Casting(variable,typec){this.variable=variable;this.typec=typec;this.type="Casting"}return Casting}();exports.Exec=Exec=function(){function Exec(code){this.type="Exec";if(code[0]==="'"){this.code=code.replace(/\'/g,"")}else if(code[0]==='"'){this.code=code.replace(/\"/g,"")}}return Exec}();exports.HereDoc=HereDoc=function(){function HereDoc(doc){this.doc=doc;this.type="HereDoc"}return HereDoc}();exports.Clone=Clone=function(){function Clone(value){this.value=value;this.type="Clone"}return Clone}();exports.Assign=Assign=function(){function Assign(operator,left,right){this.operator=operator;this.left=left;this.right=right;this.type="Assign"}return Assign}();exports.GetKeyAssign=GetKeyAssign=function(){function GetKeyAssign(keys,source){this.keys=keys;this.source=source;this.type="GetKeyAssign"}return GetKeyAssign}();exports.Constant=Constant=function(){function Constant(left,right){this.left=left;this.right=right;this.type="Constant"}return Constant}();exports.Unary=Unary=function(){function Unary(operator,expression){this.operator=operator;this.expression=expression;this.type="Unary"}return Unary}();exports.Update=Update=function(){function Update(operator,expression,prefix){this.operator=operator;this.expression=expression;this.prefix=prefix!=null?prefix:true;this.type="Update"}return Update}();exports.Existence=Existence=function(){function Existence(expression){this.expression=expression;this.type="Existence"}return Existence}();exports.Operation=Operation=function(){function Operation(operator,left,right){this.operator=operator;this.left=left;this.right=right;this.type="Operation"}return Operation}();exports.In=In=function(){function In(left,right){this.left=left;this.right=right;this.type="In"}return In}();exports.Echo=Echo=function(){function Echo(value){this.value=value;this.type="Echo"}return Echo}();exports.Delete=Delete=function(){function Delete(value){this.value=value;this.type="Delete"}return Delete}();exports.Include=Include=function(){function Include(path,once){this.path=path;this.once=once;this.type="Include"}return Include}();exports.Require=Require=function(){function Require(path,once){this.path=path;this.once=once;this.type="Require"}return Require}();exports.Break=Break=function(){function Break(arg){this.arg=arg!=null?arg:false;this.type="Break"}return Break}();exports.Continue=Continue=function(){function Continue(arg){this.arg=arg!=null?arg:false;this.type="Continue"}return Continue}();exports.Return=Return=function(){function Return(value){this.value=value;this.type="Return"}return Return}();exports.Declare=Declare=function(){function Declare(expression,script){this.expression=expression;this.script=script!=null?script:false;this.type="Declare"}return Declare}();exports.Goto=Goto=function(){function Goto(section){this.section=section;this.type="Goto"}return Goto}();exports.If=If=function(){function If(condition,body,as_expression){this.condition=condition;this.body=body;this.as_expression=as_expression!=null?as_expression:false;this.type="If";if(!this.as_expression){this.Elses=[]}else{this.Elses=false}}If.prototype.addElse=function(element){return this.Elses.push(element)};return If}();exports.ElseIf=ElseIf=function(){function ElseIf(condition,body){this.condition=condition;this.body=body;this.type="ElseIf"}return ElseIf}();exports.Else=Else=function(){function Else(body){this.body=body;this.type="Else"}return Else}();exports.While=While=function(){function While(test,body){this.test=test;this.body=body;this.type="While"}return While}();exports.DoWhile=DoWhile=function(){function DoWhile(test,body){this.test=test;this.body=body;this.type="DoWhile"}return DoWhile}();exports.Try=Try=function(){function Try(TryBody,CatchIdentifier,CatchBody,Finally){this.TryBody=TryBody;this.CatchIdentifier=CatchIdentifier;this.CatchBody=CatchBody;this.Finally=Finally!=null?Finally:false;this.type="Try"}Try.prototype.addFinally=function(body){this.Finally=true;return this.FinallyBody=body};return Try}();exports.Switch=Switch=function(){function Switch(variable,cases){this.variable=variable;this.cases=cases;this.type="Switch"}return Switch}();exports.When=When=function(){function When(condition,body){this.condition=condition;this.body=body;this.type="When"}return When}();exports.SwitchElse=SwitchElse=function(){function SwitchElse(body){this.body=body;this.type="SwitchElse"}return SwitchElse}();exports.For=For=function(){function For(){this.type="For";if(arguments[0]==="normal"){this.method="normal";this.expressions=arguments[1];this.body=arguments[2]}else if(arguments[0]==="foreach"){this.method="foreach";this.left=arguments[1];this.right=arguments[2];this.body=arguments[3]}}return For}();exports.Section=Section=function(){function Section(name){this.name=name;this.type="Section"}return Section}();exports.Class=Class=function(){function Class(name,body,extendable,implement,abstract){this.name=name;this.body=body;this.extendable=extendable!=null?extendable:false;this.implement=implement!=null?implement:false;this.abstract=abstract!=null?abstract:false;this.type="Class"}return Class}();exports.ClassLine=ClassLine=function(){function ClassLine(visibility,statically,element){this.visibility=visibility;this.statically=statically;this.element=element;this.type="ClassLine";this.abstract=false}return ClassLine}();exports.Interface=Interface=function(){function Interface(name,body,extendable){this.name=name;this.body=body;this.extendable=extendable!=null?extendable:false;this.type="Interface"}return Interface}();exports.Namespace=Namespace=function(){function Namespace(name,body){this.name=name;this.body=body!=null?body:false;this.type="Namespace"}return Namespace}();exports.NamespaceRef=NamespaceRef=function(){function NamespaceRef(path){this.path=path;this.type="NamespaceRef"}return NamespaceRef}()}).call(this);return module.exports}();require["./helpers"]=function(){var exports={},module={exports:exports};(function(){var IdCounter,nodes;nodes=require("./nodes");exports.IdCounter=IdCounter=function(){function IdCounter(){}IdCounter.prototype.letter=["i","j","k","c","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","a","b","c","d","e","f","j","h"];IdCounter.prototype._level=1;IdCounter.prototype.letterLevel=0;IdCounter.prototype.generateAtLevel=function(){var i,r;r="";i=0;while(i0){r=compile(element.value);_ref1=element.properties;for(_j=0,_len1=_ref1.length;_j<_len1;_j++){propertie=_ref1[_j];switch(propertie.method){case"->":case".":r+="->"+propertie.value.name;break;case"::":case"..":r+="::"+propertie.value.name;break;case"[]":r+="["+compile(propertie.value)+"]"}}return r}else{return compile(element.value)}break;case"Parens":return"("+compile(element.expression)+")";case"Identifier":if(element.as_arguments){r="$"+element.name}else{r=context.Identify(element.name)}if(element.passing){r="&"+r}return r;case"Literal":if(typeof element.value==="number"){return element.value}else{return element.value}break;case"Bool":if(element.value){return"TRUE"}else{return"FALSE"}break;case"Null":return"NULL";case"Array":r="array(";_ref2=element.elements;for(i=_k=0,_len2=_ref2.length;_k<_len2;i=++_k){elem=_ref2[i];if(elem.type==="ArrayKey"){r+=compile(elem.key)+" => "+compile(elem.value)}else{r+=compile(elem)}if(i!==element.elements.length-1){r+=", "}}r+=")";return r;case"Call":r=compile(element.variable)+"(";_ref3=element["arguments"];for(i=_l=0,_len3=_ref3.length;_l<_len3;i=++_l){arg=_ref3[i];r+=compile(arg);if(i!==element["arguments"].length-1){r+=", "}}r+=")";return r;case"NewCall":r="new "+compile(element.variable);if(element["arguments"]!==false){r+="(";_ref4=element["arguments"];for(i=_m=0,_len4=_ref4.length;_m<_len4;i=++_m){arg=_ref4[i];r+=compile(arg);if(i!==element["arguments"].length-1){r+=", "}}r+=")"}return r;case"Code":if(element.normal){r="function "+element.name+"(";context.push({name:element.name,type:"function"})}else{r="function("}_ref5=element.parameters;for(i=_n=0,_len5=_ref5.length;_n<_len5;i=++_n){parameter=_ref5[i];if(parameter.and===true){r+="&"+compile(parameter)}else{r+=compile(parameter)}if(i!==element.parameters.length-1){r+=", "}}r+=")";if(element.body!==false){r+=" {";r+=compile(element.body);r+="}"}else{r+=";"}return r;case"Casting":if(element.foreach===true){return compile(new nodes.Identifier(element.typec))+" => "+compile(element.variable)}else{return"("+element.typec+") "+compile(element.variable)}break;case"Exec":return"`"+element.code+"`";case"HereDoc":return"<<"){r=compile(element.left)+"."+compile(element.right)}else if(element.operator==="+"){UseSuperMammouth=true;r='$Mammouth("+", '+compile(element.left)+", "+compile(element.right)+")"}else{r=compile(element.left)+" "+element.operator+" "+compile(element.right)}return r;case"Assign":r=compile(element.left)+" "+element.operator+" "+compile(element.right);return r;case"GetKeyAssign":r="";_ref6=element.keys;for(i=_o=0,_len6=_ref6.length;_o<_len6;i=++_o){key=_ref6[i];value=new nodes.Value(element.source.value);value.add(new nodes.Access(new nodes.Literal('"'+key.name+'"'),"[]"));if(i!==element.keys.length-1){r+=compile(new nodes.Expression(new nodes.Assign("=",key,value)));r+="\n"}else{r+=compile(new nodes.Assign("=",key,value))}}return r;case"Constant":context.push({name:element.left.name,type:"cte"});return"const "+compile(element.left)+" = "+compile(element.right);case"Unary":r=element.operator;r+=compile(element.expression);return r;case"Update":r=compile(element.expression);r=!element.prefix?r+element.operator:element.operator+r;return r;case"Existence":r="isset("+compile(element.expression)+")";return r;case"In":r='$Mammouth("in_array", '+compile(element.left)+", "+compile(element.right)+")";return r;case"Echo":return"echo "+compile(element.value);case"Delete":return"unset("+compile(element.value)+")";case"Include":if(element.once){r="include_once "}else{r="include "}r+=compile(element.path);return r;case"Require":if(element.once){r="require_once "}else{r="require "}r+=compile(element.path);return r;case"Break":r="break";if(element.arg!==false){r+=" "+compile(element.arg)}return r;case"Continue":r="continue";if(element.arg!==false){r+=" "+compile(element.arg)}return r;case"Return":return"return "+compile(element.value);case"Declare":r="declare("+compile(element.expression)+")";if(element.script!==false){r+=" {";r+=compile(element.script);r+="}"}return r;case"Goto":return"goto "+element.section;case"If":if(element.as_expression){r=compile(element.condition)+" ? "+compile(element.body);if(element.Elses===false){r+=" : NULL"}else{r+=" : "+compile(element.Elses)}return r}else{r="if("+compile(element.condition)+") {";r+=compile(element.body);r+="}";_ref7=element.Elses;for(_p=0,_len7=_ref7.length;_p<_len7;_p++){elsei=_ref7[_p];if(elsei.type==="Else"){r+=" else {";r+=compile(elsei.body);r+="}"}else if(elsei.type==="ElseIf"){r+=" elseif("+compile(elsei.condition)+") {";r+=compile(elsei.body);r+="}"}}return r}break;case"While":r="while("+compile(element.test)+") {";r+=compile(element.body);r+="}";return r;case"DoWhile":r="do {";r+=compile(element.body);r+="} while ("+compile(element.test)+");";return r;case"Try":r="try {";r+=compile(element.TryBody);r+="}";r+=" catch(Exception "+compile(element.CatchIdentifier)+") {";r+=compile(element.CatchBody);r+="}";if(element.Finally){r+=" finally {";r+=compile(element.FinallyBody);r+="}"}return r;case"Switch":r="switch ("+compile(element.variable)+") {\n";_ref8=element.cases;for(_q=0,_len8=_ref8.length;_q<_len8;_q++){Scase=_ref8[_q];if(Scase.type==="When"){r+="case "+compile(Scase.condition)+": {";Scase.body.nodes.push(new nodes.Expression(new nodes.Break));r+=compile(Scase.body);r+="}"}else if(Scase.type==="SwitchElse"){r+="default: {";r+=compile(Scase.body);r+="}"}r+="\n"}r+="}";return r;case"For":if(element.method==="normal"&&element.expressions.length>1){r="for(";_ref9=element.expressions;for(i=_r=0,_len9=_ref9.length;_r<_len9;i=++_r){expression=_ref9[i];if(expression.type==="In"){expression.each=true}r+=compile(expression);if(i!==element.expressions.length){r+="; "}}r+=") {";r+=compile(element.body);r+="}"}else if(element.method==="normal"&&element.expressions.length===1&&element.expressions[0].type==="In"){InElement=element.expressions[0];r="for(";ID=IdCounter.get();r+=compile(ID)+" = 0; ";r+=compile(ID)+" < count("+compile(InElement.right)+"); ";r+=compile(ID)+"++";r+=") {";element.body.nodes.unshift(new nodes.Expression(new nodes.Assign("=",InElement.left,new nodes.Value(InElement.right,[new nodes.Access(ID,"[]")]))));r+=compile(element.body);r+="}"}else if(element.method==="foreach"){r="foreach(";r+=compile(element.left);r+=" as ";r+=compile(element.right);r+=") {";r+=compile(element.body);r+="}"}return r;case"Section":return element.name+":";case"Class":r="class "+element.name;context.push({name:element.name,type:"class"});if(element.abstract===true){r="abstract "+r}if(element.extendable!==false){r+=" extends "+element.extendable}if(element.implement!==false){r+=" implements "+element.implement}r+=" {\n";_ref10=element.body;for(i=_s=0,_len10=_ref10.length;_s<_len10;i=++_s){line=_ref10[i];lr="";if(line.visibility!==false){lr+=line.visibility+" "}if(line.statically!==false){lr+=line.statically+" "}lr+=compile(line.element);if(line.finaly===true){lr="final "+lr}if(line.abstract===true){lr="abstract "+lr}r+=lr;if(i!==element.body.length-1){r+="\n"}}r+="\n}";return r;case"Interface":r="interface "+element.name;context.push({name:element.name,type:"interface"});if(element.extendable!==false){r+=" extends ";_ref11=element.extendable;for(i=_t=0,_len11=_ref11.length;_t<_len11;i=++_t){ext=_ref11[i];r+=ext;if(i!==element.extendable.length-1){r+=", "}}}r+=" {\n";_ref12=element.body;for(i=_u=0,_len12=_ref12.length;_u<_len12;i=++_u){line=_ref12[i];lr="";if(line.type==="Code"){lr+="public "+compile(line)}else{lr+=compile(line)}r+=lr;if(i!==element.body.length-1){r+="\n"}}return r+="\n}";case"Namespace":r="namespace "+element.name;if(element.body!==false){r+=" {";r+=compile(element.body);r+="}"}return r;case"NamespaceRef":return element.path}};for(_i=0,_len=tree.length;_i<_len;_i++){doc=tree[_i];switch(doc.type){case"PlainBlock":ADD(doc.toPHP());break;case"MammouthBlock":ADD("")}}return php}}).call(this);return module.exports}();require["./mammouth"]=function(){var exports={},module={exports:exports};(function(){var PreContext,lexer,parser,rewriter,yy;yy=require("./nodes");parser=require("./parser").parser;lexer=require("./lexer");rewriter=require("./rewriter");PreContext=require("./context").PreContext;parser.lexer=lexer;parser.yy=yy;module.exports={VERSION:"2.0.0",parser:parser,parse:function(code){return this.parser.parse(code)},compile:function(code,context){var result,tree;tree=this.parse(code);return result=rewriter.rewrite(tree,context?context:PreContext)}}}).call(this);return module.exports}();mammouth=require["./mammouth"];return require["./mammouth"]})(this); \ No newline at end of file diff --git a/generate.js b/generate.js new file mode 100644 index 0000000..203286f --- /dev/null +++ b/generate.js @@ -0,0 +1,102 @@ +fs = require('fs'); +yy = require('./lib/nodes'); +parser = require('./lib/grammar'); +parser.lexer = require('./lib/lexer'); +parser.yy = yy; +// Generate for the browser +function generateBrowser() { + code = '' + // add lex + code += 'require["lex"] = (function() {' + code += 'var exports = {}, module = {exports: exports};' + code += fs.readFileSync("./node_modules/lex/lexer.js", 'utf8') + code += 'return module.exports;' + code += '})();\n' + // add parser.js + code += 'require["./parser"] = (function() {' + code += 'var exports = {}, module = {exports: exports};' + code += fs.readFileSync("./lib/parser.js", 'utf8') + code += 'return exports;' + code += '})();\n' + // add context.js + code += 'require["./context"] = (function() {' + code += 'var exports = {}, module = {exports: exports};' + code += fs.readFileSync("./lib/context.js", 'utf8') + code += 'return module.exports;' + code += '})();\n' + // add lexer.js + code += 'require["./lexer"] = (function() {' + code += 'var exports = {}, module = {exports: exports};' + code += fs.readFileSync("./lib/lexer.js", 'utf8') + code += 'return module.exports;' + code += '})();\n' + // add nodes.js + code += 'require["./nodes"] = (function() {' + code += 'var exports = {}, module = {exports: exports};' + code += fs.readFileSync("./lib/nodes.js", 'utf8') + code += 'return module.exports;' + code += '})();\n' + // add helpers.js + code += 'require["./helpers"] = (function() {' + code += 'var exports = {}, module = {exports: exports};' + code += fs.readFileSync("./lib/helpers.js", 'utf8') + code += 'return module.exports;' + code += '})();\n' + // add rewriter.js + code += 'require["./rewriter"] = (function() {' + code += 'var exports = {}, module = {exports: exports};' + code += fs.readFileSync("./lib/rewriter.js", 'utf8') + code += 'return module.exports;' + code += '})();\n' + // add mammouth.js + code += 'require["./mammouth"] = (function() {' + code += 'var exports = {}, module = {exports: exports};' + code += fs.readFileSync("./lib/mammouth.js", 'utf8') + code += 'return module.exports;' + code += '})();' + code = '(function(root) {\n' + 'function require(path){ return require[path]; }\n' + code + '\nmammouth = require["./mammouth"];\nreturn require["./mammouth"]' + ';\n' + '}(this));' + fs.writeFile('./extras/mammouth.js', code, function(err) { + if(err) { + console.log(err); + } else { + console.log("The browser file was saved!"); + var compressor = require('node-minify'); + // Using Google Closure + new compressor.minify({ + type: 'uglifyjs', + fileIn: './extras/mammouth.js', + fileOut: './extras/mammouth.min.js', + callback: function(err, min){ + if(err) { + console.log(err); + } else { + console.log("The minified browser file was saved!"); + addHeader(); + } + } + }); + } + }); +} +header = "/**\n * Mammouth Compiler v" + require('./lib/mammouth').VERSION +"\n * http://mammouth.wamalaka.com\n *\n * Copyright 2014, Wael Amine Boutglay\n * Released under the MIT License\n */\n" +function addHeader() { + fs.writeFile('./extras/mammouth.js', header + fs.readFileSync('./extras/mammouth.js'), function(err) { + if(err) { + console.log(err); + } + }); + fs.writeFile('./extras/mammouth.min.js', header + fs.readFileSync('./extras/mammouth.min.js'), function(err) { + if(err) { + console.log(err); + } + }); +} +// Generate the stand-alone parser +fs.writeFile('./lib/parser.js', parser.generate(), function(err) { + if(err) { + console.log(err); + } else { + console.log("The parser was saved!"); + generateBrowser() + } +}); \ No newline at end of file diff --git a/lib/context.js b/lib/context.js new file mode 100644 index 0000000..bbff046 --- /dev/null +++ b/lib/context.js @@ -0,0 +1,1728 @@ +// Generated by CoffeeScript 1.7.1 +(function() { + var Context, PreContext; + + exports.Context = Context = (function() { + function Context(element) { + this.scopes = []; + this.scopes.unshift(element); + } + + Context.prototype.push = function(iden) { + this.scopes[0][iden.name] = {}; + this.scopes[0][iden.name].name = iden.name; + return this.scopes[0][iden.name].type = iden.type; + }; + + Context.prototype.scopein = function() { + return this.scopes.unshift({}); + }; + + Context.prototype.scopeout = function() { + return this.scopes.shift(); + }; + + Context.prototype.Identify = function(name) { + var scope, _i, _len, _ref, _ref1; + _ref = this.scopes; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + scope = _ref[_i]; + if (scope[name] !== void 0) { + if ((_ref1 = scope[name].type) === 'function' || _ref1 === 'cte' || _ref1 === 'class' || _ref1 === 'interface') { + return name; + } else { + return '$' + name; + } + } + } + return '$' + name; + }; + + return Context; + + })(); + + + /* + Precontext Addition todo list: + [ ] Affecting PHP's Behaviour + [ ] APC + [ ] APD + [ ] bcompiler + [ ] BLENC + [ ] Error Handling + [ ] htscanner + [ ] inclued + [ ] Memtrack + [ ] OPcache + [ ] Output Control + [ ] PHP Options/Info + [ ] runkit + [ ] scream + [ ] uopz + [ ] Weakref + [ ] WinCache + [ ] Xhprof + [ ] Audio Formats Manipulation + [ ] ID3 + [ ] KTaglib + [ ] oggvorbis + [ ] OpenAL + [ ] Authentication Services + [ ] KADM5 + [ ] Radius + [ ] Command Line Specific Extensions + [ ] Ncurses + [ ] Newt + [ ] Readline + [ ] Compression and Archive Extensions + [ ] Bzip2 + [ ] LZF + [ ] Phar + [ ] Rar + [ ] Zip + [ ] Zlib + [ ] Credit Card Processing + [ ] MCVE + [ ] SPPLUS + [ ] Cryptography Extensions + [ ] Crack + [ ] Hash + [ ] Mcrypt + [ ] Mhash + [ ] OpenSSL + [ ] Password Hashing + [ ] Database Extensions + [ ] Abstraction Layers + [ ] Vendor Specific Database Extensions + [ ] Date and Time Related Extensions + [ ] Calendar + [ ] Date/Time + [ ] HRTime + [/] File System Related Extensions + [x] Direct IO + [x] Directories + [x] Fileinfo + [x] Filesystem + [x] Inotify + [x] Mimetype + [ ] Proctitle + [ ] xattr + [ ] xdiff + [ ] Human Language and Character Encoding Support + [ ] Enchant + [ ] FriBiDi + [ ] Gender + [ ] Gettext + [ ] iconv + [ ] intl + [ ] Multibyte String + [ ] Pspell + [ ] Recode + [ ] Image Processing and Generation + [ ] Cairo + [ ] Exif + [ ] GD + [ ] Gmagick + [ ] ImageMagick + [ ] Mail Related Extensions + [ ] Cyrus + [ ] IMAP + [ ] Mail + [ ] Mailparse + [ ] vpopmail + [ ] Mathematical Extensions + [ ] BC Math + [ ] GMP + [ ] Lapack + [ ] Math + [ ] Statistics + [ ] Trader + [ ] Non-Text MIME Output + [ ] FDF + [ ] GnuPG + [ ] haru + [ ] Ming + [ ] PDF + [ ] PS + [ ] RPM Reader + [ ] SWF + [ ] Process Control Extensions + [ ] Eio + [ ] Ev + [ ] Expect + [ ] Libevent + [ ] PCNTL + [ ] POSIX + [ ] Program execution + [ ] pthreads + [ ] Semaphore + [ ] Shared Memory + [ ] Sync + [ ] Other Basic Extensions + [ ] GeoIP + [ ] FANN + [ ] JSON + [ ] Judy + [ ] Lua + [ ] Misc. + [ ] Parsekit + [ ] SPL + [ ] SPL Types + [ ] Streams + [ ] Tidy + [ ] Tokenizer + [ ] URLs + [ ] V8js + [ ] Yaml + [ ] Yaf + [ ] Taint + [ ] Other Services + [ ] chdb + [ ] cURL + [ ] Event + [ ] FAM + [ ] FTP + [ ] Gearman + [ ] Gopher + [ ] Gupnp + [ ] HTTP + [ ] Hyperwave + [ ] Hyperwave API + [ ] Java + [ ] LDAP + [ ] Lotus Notes + [ ] Memcache + [ ] Memcached + [ ] mqseries + [ ] Network + [ ] RRD + [ ] SAM + [ ] SNMP + [ ] Sockets + [ ] SSH2 + [ ] Stomp + [ ] SVM + [ ] SVN + [ ] TCP + [ ] Varnish + [ ] YAZ + [ ] YP/NIS + [ ] 0MQ messaging + [ ] Search Engine Extensions + [ ] mnoGoSearch + [ ] Solr + [ ] Sphinx + [ ] Swish + [ ] Server Specific Extensions + [ ] Apache + [ ] FastCGI Process Manager + [ ] IIS + [ ] NSAPI + [ ] Session Extensions + [ ] Msession + [ ] Sessions + [ ] Session PgSQL + [ ] Text Processing + [ ] BBCode + [ ] PCRE + [ ] POSIX Regex + [ ] ssdeep + [ ] Strings + [x] Variable and Type Related Extensions + [x] Arrays + [x] Classes/Objects + [x] Classkit + [x] Ctype + [x] Filter + [x] Function Handling + [x] Object Aggregation + [x] Quickhash + [x] Reflection + [x] Variable handling + [ ] Web Services + [ ] OAuth + [ ] SCA + [ ] SOAP + [ ] Yar + [ ] XML-RPC + [ ] Windows Only Extensions + [ ] .NET + [ ] COM + [ ] W32api + [ ] win32ps + [ ] win32service + [ ] XML Manipulation + [ ] DOM + [ ] libxml + [ ] qtdom + [ ] SDO + [ ] SDO-DAS-Relational + [ ] SDO DAS XML + [ ] SimpleXML + [ ] WDDX + [ ] XMLDiff + [ ] XML Parser + [ ] XMLReader + [ ] XMLWriter + [ ] XSL + [ ] XSLT (PHP 4) + */ + + PreContext = exports.PreContext = new Context({ + + /* Variable and Type Related Extensions */ + 'call_​user_​func_​array': { + 'type': 'function' + }, + 'call_user_func': { + 'type': 'function' + }, + 'create_function': { + 'type': 'function' + }, + 'forward_static_call_array': { + 'type': 'function' + }, + 'forward_static_call': { + 'type': 'function' + }, + 'func_get_arg': { + 'type': 'function' + }, + 'func_get_args': { + 'type': 'function' + }, + 'func_num_args': { + 'type': 'function' + }, + 'function_exists': { + 'type': 'function' + }, + 'get_defined_functions': { + 'type': 'function' + }, + 'register_shutdown_function': { + 'type': 'function' + }, + 'register_tick_function': { + 'type': 'function' + }, + 'unregister_tick_function': { + 'type': 'function' + }, + 'CASE_LOWER': { + 'type': 'cte' + }, + 'CASE_UPPER': { + 'type': 'cte' + }, + 'SORT_ASC': { + 'type': 'cte' + }, + 'SORT_DESC': { + 'type': 'cte' + }, + 'SORT_REGULAR': { + 'type': 'cte' + }, + 'SORT_NUMERIC': { + 'type': 'cte' + }, + 'SORT_STRING': { + 'type': 'cte' + }, + 'SORT_LOCALE_STRING': { + 'type': 'cte' + }, + 'SORT_NATURAL': { + 'type': 'cte' + }, + 'SORT_FLAG_CASE': { + 'type': 'cte' + }, + 'COUNT_NORMAL': { + 'type': 'cte' + }, + 'COUNT_RECURSIVE': { + 'type': 'cte' + }, + 'EXTR_OVERWRITE': { + 'type': 'cte' + }, + 'EXTR_SKIP': { + 'type': 'cte' + }, + 'EXTR_PREFIX_SAME': { + 'type': 'cte' + }, + 'EXTR_PREFIX_ALL': { + 'type': 'cte' + }, + 'EXTR_PREFIX_INVALID': { + 'type': 'cte' + }, + 'EXTR_PREFIX_IF_EXISTS': { + 'type': 'cte' + }, + 'EXTR_IF_EXISTS': { + 'type': 'cte' + }, + 'EXTR_REFS': { + 'type': 'cte' + }, + 'array_change_key_case': { + 'type': 'function' + }, + 'array_chunk': { + 'type': 'function' + }, + 'array_column': { + 'type': 'function' + }, + 'array_combine': { + 'type': 'function' + }, + 'array_count_values': { + 'type': 'function' + }, + 'array_diff_assoc': { + 'type': 'function' + }, + 'array_diff_key': { + 'type': 'function' + }, + 'array_diff_uassoc': { + 'type': 'function' + }, + 'array_diff_ukey': { + 'type': 'function' + }, + 'array_diff': { + 'type': 'function' + }, + 'array_fill_keys': { + 'type': 'function' + }, + 'array_fill': { + 'type': 'function' + }, + 'array_filter': { + 'type': 'function' + }, + 'array_flip': { + 'type': 'function' + }, + 'array_intersect_assoc': { + 'type': 'function' + }, + 'array_intersect_key': { + 'type': 'function' + }, + 'array_intersect_uassoc': { + 'type': 'function' + }, + 'array_intersect_ukey': { + 'type': 'function' + }, + 'array_intersect': { + 'type': 'function' + }, + 'array_key_exists': { + 'type': 'function' + }, + 'array_keys': { + 'type': 'function' + }, + 'array_map': { + 'type': 'function' + }, + 'array_merge_recursive': { + 'type': 'function' + }, + 'array_merge': { + 'type': 'function' + }, + 'array_multisort': { + 'type': 'function' + }, + 'array_pad': { + 'type': 'function' + }, + 'array_pop': { + 'type': 'function' + }, + 'array_product': { + 'type': 'function' + }, + 'array_push': { + 'type': 'function' + }, + 'array_rand': { + 'type': 'function' + }, + 'array_reduce': { + 'type': 'function' + }, + 'array_replace_recursive': { + 'type': 'function' + }, + 'array_replace': { + 'type': 'function' + }, + 'array_reverse': { + 'type': 'function' + }, + 'array_search': { + 'type': 'function' + }, + 'array_shift': { + 'type': 'function' + }, + 'array_slice': { + 'type': 'function' + }, + 'array_splice': { + 'type': 'function' + }, + 'array_sum': { + 'type': 'function' + }, + 'array_udiff_assoc': { + 'type': 'function' + }, + 'array_udiff_uassoc': { + 'type': 'function' + }, + 'array_udiff': { + 'type': 'function' + }, + 'array_uintersect_assoc': { + 'type': 'function' + }, + 'array_uintersect_uassoc': { + 'type': 'function' + }, + 'array_uintersect': { + 'type': 'function' + }, + 'array_unique': { + 'type': 'function' + }, + 'array_unshift': { + 'type': 'function' + }, + 'array_values': { + 'type': 'function' + }, + 'array_walk_recursive': { + 'type': 'function' + }, + 'array_walk': { + 'type': 'function' + }, + 'array': { + 'type': 'function' + }, + 'arsort': { + 'type': 'function' + }, + 'asort': { + 'type': 'function' + }, + 'compact': { + 'type': 'function' + }, + 'count': { + 'type': 'function' + }, + 'current': { + 'type': 'function' + }, + 'each': { + 'type': 'function' + }, + 'end': { + 'type': 'function' + }, + 'extract': { + 'type': 'function' + }, + 'in_array': { + 'type': 'function' + }, + 'key_exists': { + 'type': 'function' + }, + 'key': { + 'type': 'function' + }, + 'krsort': { + 'type': 'function' + }, + 'ksort': { + 'type': 'function' + }, + 'list': { + 'type': 'function' + }, + 'natcasesort': { + 'type': 'function' + }, + 'natsort': { + 'type': 'function' + }, + 'next': { + 'type': 'function' + }, + 'pos': { + 'type': 'function' + }, + 'prev': { + 'type': 'function' + }, + 'range': { + 'type': 'function' + }, + 'reset': { + 'type': 'function' + }, + 'rsort': { + 'type': 'function' + }, + 'shuffle': { + 'type': 'function' + }, + 'sizeof': { + 'type': 'function' + }, + 'sort': { + 'type': 'function' + }, + 'uasort': { + 'type': 'function' + }, + 'uksort': { + 'type': 'function' + }, + 'usort': { + 'type': 'function' + }, + '__autoload': { + 'type': 'function' + }, + 'call_user_method_array': { + 'type': 'function' + }, + 'call_user_method': { + 'type': 'function' + }, + 'class_alias': { + 'type': 'function' + }, + 'class_exists': { + 'type': 'function' + }, + 'get_called_class': { + 'type': 'function' + }, + 'get_class_methods': { + 'type': 'function' + }, + 'get_class_vars': { + 'type': 'function' + }, + 'get_class': { + 'type': 'function' + }, + 'get_declared_classes': { + 'type': 'function' + }, + 'get_declared_interfaces': { + 'type': 'function' + }, + 'get_declared_traits': { + 'type': 'function' + }, + 'get_object_vars': { + 'type': 'function' + }, + 'get_parent_class': { + 'type': 'function' + }, + 'interface_exists': { + 'type': 'function' + }, + 'is_a': { + 'type': 'function' + }, + 'is_subclass_of': { + 'type': 'function' + }, + 'method_exists': { + 'type': 'function' + }, + 'property_exists': { + 'type': 'function' + }, + 'trait_exists': { + 'type': 'function' + }, + 'CLASSKIT_ACC_PRIVATE': { + 'type': 'cte' + }, + 'CLASSKIT_ACC_PROTECTED': { + 'type': 'cte' + }, + 'CLASSKIT_ACC_PUBLIC': { + 'type': 'cte' + }, + 'classkit_import': { + 'type': 'function' + }, + 'classkit_method_add': { + 'type': 'function' + }, + 'classkit_method_copy': { + 'type': 'function' + }, + 'classkit_method_redefine': { + 'type': 'function' + }, + 'classkit_method_remove': { + 'type': 'function' + }, + 'classkit_method_rename': { + 'type': 'function' + }, + 'ctype_alnum': { + 'type': 'function' + }, + 'ctype_alpha': { + 'type': 'function' + }, + 'ctype_cntrl': { + 'type': 'function' + }, + 'ctype_digit': { + 'type': 'function' + }, + 'ctype_graph': { + 'type': 'function' + }, + 'ctype_lower': { + 'type': 'function' + }, + 'ctype_print': { + 'type': 'function' + }, + 'ctype_punct': { + 'type': 'function' + }, + 'ctype_space': { + 'type': 'function' + }, + 'ctype_upper': { + 'type': 'function' + }, + 'ctype_xdigit': { + 'type': 'function' + }, + 'INPUT_POST': { + 'type': 'cte' + }, + 'INPUT_GET': { + 'type': 'cte' + }, + 'INPUT_COOKIE': { + 'type': 'cte' + }, + 'INPUT_ENV': { + 'type': 'cte' + }, + 'INPUT_SERVER': { + 'type': 'cte' + }, + 'INPUT_SESSION': { + 'type': 'cte' + }, + 'INPUT_REQUEST': { + 'type': 'cte' + }, + 'FILTER_FLAG_NONE': { + 'type': 'cte' + }, + 'FILTER_REQUIRE_SCALAR': { + 'type': 'cte' + }, + 'FILTER_REQUIRE_ARRAY': { + 'type': 'cte' + }, + 'FILTER_FORCE_ARRAY': { + 'type': 'cte' + }, + 'FILTER_NULL_ON_FAILURE': { + 'type': 'cte' + }, + 'FILTER_VALIDATE_INT': { + 'type': 'cte' + }, + 'FILTER_VALIDATE_BOOLEAN': { + 'type': 'cte' + }, + 'FILTER_VALIDATE_FLOAT': { + 'type': 'cte' + }, + 'FILTER_VALIDATE_REGEXP': { + 'type': 'cte' + }, + 'FILTER_VALIDATE_URL': { + 'type': 'cte' + }, + 'FILTER_VALIDATE_EMAIL': { + 'type': 'cte' + }, + 'FILTER_VALIDATE_IP': { + 'type': 'cte' + }, + 'FILTER_DEFAULT': { + 'type': 'cte' + }, + 'FILTER_UNSAFE_RAW': { + 'type': 'cte' + }, + 'FILTER_SANITIZE_STRING': { + 'type': 'cte' + }, + 'FILTER_SANITIZE_STRIPPED': { + 'type': 'cte' + }, + 'FILTER_SANITIZE_ENCODED': { + 'type': 'cte' + }, + 'FILTER_SANITIZE_SPECIAL_CHARS': { + 'type': 'cte' + }, + 'FILTER_SANITIZE_EMAIL': { + 'type': 'cte' + }, + 'FILTER_SANITIZE_URL': { + 'type': 'cte' + }, + 'FILTER_SANITIZE_NUMBER_INT': { + 'type': 'cte' + }, + 'FILTER_SANITIZE_NUMBER_FLOAT': { + 'type': 'cte' + }, + 'FILTER_SANITIZE_MAGIC_QUOTES': { + 'type': 'cte' + }, + 'FILTER_CALLBACK': { + 'type': 'cte' + }, + 'FILTER_FLAG_ALLOW_OCTAL': { + 'type': 'cte' + }, + 'FILTER_FLAG_ALLOW_HEX': { + 'type': 'cte' + }, + 'FILTER_FLAG_STRIP_LOW': { + 'type': 'cte' + }, + 'FILTER_FLAG_STRIP_HIGH': { + 'type': 'cte' + }, + 'FILTER_FLAG_ENCODE_LOW': { + 'type': 'cte' + }, + 'FILTER_FLAG_ENCODE_HIGH': { + 'type': 'cte' + }, + 'FILTER_FLAG_ENCODE_AMP': { + 'type': 'cte' + }, + 'FILTER_FLAG_NO_ENCODE_QUOTES': { + 'type': 'cte' + }, + 'FILTER_FLAG_EMPTY_STRING_NULL': { + 'type': 'cte' + }, + 'FILTER_FLAG_ALLOW_FRACTION': { + 'type': 'cte' + }, + 'FILTER_FLAG_ALLOW_THOUSAND': { + 'type': 'cte' + }, + 'FILTER_FLAG_ALLOW_SCIENTIFIC': { + 'type': 'cte' + }, + 'FILTER_FLAG_PATH_REQUIRED': { + 'type': 'cte' + }, + 'FILTER_FLAG_QUERY_REQUIRED': { + 'type': 'cte' + }, + 'FILTER_FLAG_IPV4': { + 'type': 'cte' + }, + 'FILTER_FLAG_IPV6': { + 'type': 'cte' + }, + 'FILTER_FLAG_NO_RES_RANGE': { + 'type': 'cte' + }, + 'FILTER_FLAG_NO_PRIV_RANGE': { + 'type': 'cte' + }, + 'filter_has_var': { + 'type': 'function' + }, + 'filter_id': { + 'type': 'function' + }, + 'filter_input_array': { + 'type': 'function' + }, + 'filter_input': { + 'type': 'function' + }, + 'filter_list': { + 'type': 'function' + }, + 'filter_var_array': { + 'type': 'function' + }, + 'filter_var': { + 'type': 'function' + }, + 'aggregate_infoh': { + 'type': 'function' + }, + 'aggregate_methods_by_list': { + 'type': 'function' + }, + 'aggregate_methods_by_regexp': { + 'type': 'function' + }, + 'aggregate_methods': { + 'type': 'function' + }, + 'aggregate_properties_by_list': { + 'type': 'function' + }, + 'aggregate_properties_by_regexp': { + 'type': 'function' + }, + 'aggregate_properties': { + 'type': 'function' + }, + 'aggregate': { + 'type': 'function' + }, + 'aggregation_info': { + 'type': 'function' + }, + 'deaggregate': { + 'type': 'function' + }, + 'QuickHashIntSet': { + 'type': 'class' + }, + 'QuickHashIntHash': { + 'type': 'class' + }, + 'QuickHashStringIntHash': { + 'type': 'class' + }, + 'QuickHashIntStringHash': { + 'type': 'class' + }, + 'Reflection': { + 'type': 'class' + }, + 'ReflectionClass': { + 'type': 'class' + }, + 'ReflectionZendExtension': { + 'type': 'class' + }, + 'ReflectionExtension': { + 'type': 'class' + }, + 'ReflectionFunction': { + 'type': 'class' + }, + 'ReflectionFunctionAbstract': { + 'type': 'class' + }, + 'ReflectionMethod': { + 'type': 'class' + }, + 'ReflectionObject': { + 'type': 'class' + }, + 'ReflectionParameter': { + 'type': 'class' + }, + 'ReflectionProperty': { + 'type': 'class' + }, + 'Reflector': { + 'type': 'class' + }, + 'ReflectionException': { + 'type': 'class' + }, + 'boolval': { + 'type': 'function' + }, + 'debug_zval_dump': { + 'type': 'function' + }, + 'doubleval': { + 'type': 'function' + }, + 'empty': { + 'type': 'function' + }, + 'floatval': { + 'type': 'function' + }, + 'get_defined_vars': { + 'type': 'function' + }, + 'get_resource_type': { + 'type': 'function' + }, + 'gettype': { + 'type': 'function' + }, + 'import_request_variables': { + 'type': 'function' + }, + 'intval': { + 'type': 'function' + }, + 'is_array': { + 'type': 'function' + }, + 'is_bool': { + 'type': 'function' + }, + 'is_callable': { + 'type': 'function' + }, + 'is_double': { + 'type': 'function' + }, + 'is_float': { + 'type': 'function' + }, + 'is_int': { + 'type': 'function' + }, + 'is_integer': { + 'type': 'function' + }, + 'is_long': { + 'type': 'function' + }, + 'is_null': { + 'type': 'function' + }, + 'is_numeric': { + 'type': 'function' + }, + 'is_object': { + 'type': 'function' + }, + 'is_real': { + 'type': 'function' + }, + 'is_resource': { + 'type': 'function' + }, + 'is_scalar': { + 'type': 'function' + }, + 'is_string': { + 'type': 'function' + }, + 'isset': { + 'type': 'function' + }, + 'print_r': { + 'type': 'function' + }, + 'serialize': { + 'type': 'function' + }, + 'settype': { + 'type': 'function' + }, + 'strval': { + 'type': 'function' + }, + 'unserialize': { + 'type': 'function' + }, + 'unset': { + 'type': 'function' + }, + 'var_dump': { + 'type': 'function' + }, + 'var_export': { + 'type': 'function' + }, + + /* File System Related Extensions */ + 'F_DUPFD': { + 'type': 'cte' + }, + 'F_GETFD': { + 'type': 'cte' + }, + 'F_GETFL': { + 'type': 'cte' + }, + 'F_GETLK': { + 'type': 'cte' + }, + 'F_GETOWN': { + 'type': 'cte' + }, + 'F_RDLCK': { + 'type': 'cte' + }, + 'F_SETFL': { + 'type': 'cte' + }, + 'F_SETLK': { + 'type': 'cte' + }, + 'F_SETLKW': { + 'type': 'cte' + }, + 'F_SETOWN': { + 'type': 'cte' + }, + 'F_UNLCK': { + 'type': 'cte' + }, + 'F_WRLCK': { + 'type': 'cte' + }, + 'O_APPEND': { + 'type': 'cte' + }, + 'O_ASYNC': { + 'type': 'cte' + }, + 'O_CREAT': { + 'type': 'cte' + }, + 'O_EXCL': { + 'type': 'cte' + }, + 'O_NDELAY': { + 'type': 'cte' + }, + 'O_NOCTTY': { + 'type': 'cte' + }, + 'O_NONBLOCK': { + 'type': 'cte' + }, + 'O_RDONLY': { + 'type': 'cte' + }, + 'O_RDWR': { + 'type': 'cte' + }, + 'O_SYNC': { + 'type': 'cte' + }, + 'O_TRUNC': { + 'type': 'cte' + }, + 'O_WRONLY': { + 'type': 'cte' + }, + 'S_IRGRP': { + 'type': 'cte' + }, + 'S_IROTH': { + 'type': 'cte' + }, + 'S_IRUSR': { + 'type': 'cte' + }, + 'S_IRWXG': { + 'type': 'cte' + }, + 'S_IRWXO': { + 'type': 'cte' + }, + 'S_IRWXU': { + 'type': 'cte' + }, + 'S_IWGRP': { + 'type': 'cte' + }, + 'S_IWOTH': { + 'type': 'cte' + }, + 'S_IWUSR': { + 'type': 'cte' + }, + 'S_IXGRP': { + 'type': 'cte' + }, + 'S_IXOTH': { + 'type': 'cte' + }, + 'S_IXUSR': { + 'type': 'cte' + }, + 'dio_close': { + 'type': 'function' + }, + 'dio_fcntl': { + 'type': 'function' + }, + 'dio_open': { + 'type': 'function' + }, + 'dio_read': { + 'type': 'function' + }, + 'dio_seek': { + 'type': 'function' + }, + 'dio_stat': { + 'type': 'function' + }, + 'dio_tcsetattr': { + 'type': 'function' + }, + 'dio_truncate': { + 'type': 'function' + }, + 'dio_write': { + 'type': 'function' + }, + 'DIRECTORY_SEPARATOR': { + 'type': 'cte' + }, + 'PATH_SEPARATOR': { + 'type': 'cte' + }, + 'SCANDIR_SORT_ASCENDING': { + 'type': 'cte' + }, + 'SCANDIR_SORT_DESCENDING': { + 'type': 'cte' + }, + 'SCANDIR_SORT_NONE': { + 'type': 'cte' + }, + "Directory": { + "type": "class" + }, + 'chdir': { + 'type': 'function' + }, + 'chroot': { + 'type': 'function' + }, + 'closedir': { + 'type': 'function' + }, + 'dir': { + 'type': 'function' + }, + 'getcwd': { + 'type': 'function' + }, + 'opendir': { + 'type': 'function' + }, + 'readdir': { + 'type': 'function' + }, + 'rewinddir': { + 'type': 'function' + }, + 'scandir': { + 'type': 'function' + }, + 'FILEINFO_NONE': { + 'type': 'cte' + }, + 'FILEINFO_SYMLINK': { + 'type': 'cte' + }, + 'FILEINFO_MIME_TYPE': { + 'type': 'cte' + }, + 'FILEINFO_MIME_ENCODING': { + 'type': 'cte' + }, + 'FILEINFO_MIME': { + 'type': 'cte' + }, + 'FILEINFO_COMPRESS': { + 'type': 'cte' + }, + 'FILEINFO_DEVICES': { + 'type': 'cte' + }, + 'FILEINFO_CONTINUE': { + 'type': 'cte' + }, + 'FILEINFO_PRESERVE_ATIME': { + 'type': 'cte' + }, + 'FILEINFO_RAW': { + 'type': 'cte' + }, + 'finfo_close': { + 'type': 'function' + }, + 'finfo_file': { + 'type': 'function' + }, + 'finfo_open': { + 'type': 'function' + }, + 'finfo_set_flags': { + 'type': 'function' + }, + 'mime_content_type': { + 'type': 'function' + }, + 'SEEK_SET': { + 'type': 'cte' + }, + 'SEEK_CUR': { + 'type': 'cte' + }, + 'SEEK_END': { + 'type': 'cte' + }, + 'LOCK_SH': { + 'type': 'cte' + }, + 'LOCK_EX': { + 'type': 'cte' + }, + 'LOCK_UN': { + 'type': 'cte' + }, + 'LOCK_NB': { + 'type': 'cte' + }, + 'GLOB_BRACE': { + 'type': 'cte' + }, + 'GLOB_ONLYDIR': { + 'type': 'cte' + }, + 'GLOB_MARK': { + 'type': 'cte' + }, + 'GLOB_NOSORT': { + 'type': 'cte' + }, + 'GLOB_NOCHECK': { + 'type': 'cte' + }, + 'GLOB_NOESCAPE': { + 'type': 'cte' + }, + 'GLOB_AVAILABLE_FLAGS': { + 'type': 'cte' + }, + 'PATHINFO_DIRNAME': { + 'type': 'cte' + }, + 'PATHINFO_BASENAME': { + 'type': 'cte' + }, + 'PATHINFO_EXTENSION': { + 'type': 'cte' + }, + 'PATHINFO_FILENAME': { + 'type': 'cte' + }, + 'FILE_USE_INCLUDE_PATH': { + 'type': 'cte' + }, + 'FILE_NO_DEFAULT_CONTEXT': { + 'type': 'cte' + }, + 'FILE_APPEND': { + 'type': 'cte' + }, + 'FILE_IGNORE_NEW_LINES': { + 'type': 'cte' + }, + 'FILE_SKIP_EMPTY_LINES': { + 'type': 'cte' + }, + 'FILE_BINARY': { + 'type': 'cte' + }, + 'FILE_TEXT': { + 'type': 'cte' + }, + 'INI_SCANNER_NORMAL': { + 'type': 'cte' + }, + 'INI_SCANNER_RAW': { + 'type': 'cte' + }, + 'FNM_NOESCAPE': { + 'type': 'cte' + }, + 'FNM_PATHNAME': { + 'type': 'cte' + }, + 'FNM_PERIOD': { + 'type': 'cte' + }, + 'FNM_CASEFOLD': { + 'type': 'cte' + }, + 'basename': { + 'type': 'function' + }, + 'chgrp': { + 'type': 'function' + }, + 'chmod': { + 'type': 'function' + }, + 'chown': { + 'type': 'function' + }, + 'clearstatcache': { + 'type': 'function' + }, + 'copy': { + 'type': 'function' + }, + 'delete': { + 'type': 'function' + }, + 'dirname': { + 'type': 'function' + }, + 'disk_free_space': { + 'type': 'function' + }, + 'disk_total_space': { + 'type': 'function' + }, + 'diskfreespace': { + 'type': 'function' + }, + 'fclose': { + 'type': 'function' + }, + 'feof': { + 'type': 'function' + }, + 'fflush': { + 'type': 'function' + }, + 'fgetc': { + 'type': 'function' + }, + 'fgetcsv': { + 'type': 'function' + }, + 'fgets': { + 'type': 'function' + }, + 'fgetss': { + 'type': 'function' + }, + 'file_exists': { + 'type': 'function' + }, + 'file_get_contents': { + 'type': 'function' + }, + 'file_put_contents': { + 'type': 'function' + }, + 'file': { + 'type': 'function' + }, + 'fileatime': { + 'type': 'function' + }, + 'filectime': { + 'type': 'function' + }, + 'filegroup': { + 'type': 'function' + }, + 'fileinode': { + 'type': 'function' + }, + 'filemtime': { + 'type': 'function' + }, + 'fileowner': { + 'type': 'function' + }, + 'fileperms': { + 'type': 'function' + }, + 'filesize': { + 'type': 'function' + }, + 'filetype': { + 'type': 'function' + }, + 'flock': { + 'type': 'function' + }, + 'fnmatch': { + 'type': 'function' + }, + 'fopen': { + 'type': 'function' + }, + 'fpassthru': { + 'type': 'function' + }, + 'fputcsv': { + 'type': 'function' + }, + 'fputs': { + 'type': 'function' + }, + 'fread': { + 'type': 'function' + }, + 'fscanf': { + 'type': 'function' + }, + 'fseek': { + 'type': 'function' + }, + 'fstat': { + 'type': 'function' + }, + 'ftell': { + 'type': 'function' + }, + 'ftruncate': { + 'type': 'function' + }, + 'fwrite': { + 'type': 'function' + }, + 'glob': { + 'type': 'function' + }, + 'is_dir': { + 'type': 'function' + }, + 'is_executable': { + 'type': 'function' + }, + 'is_file': { + 'type': 'function' + }, + 'is_link': { + 'type': 'function' + }, + 'is_readable': { + 'type': 'function' + }, + 'is_uploaded_file': { + 'type': 'function' + }, + 'is_writable': { + 'type': 'function' + }, + 'is_writeable': { + 'type': 'function' + }, + 'lchgrp': { + 'type': 'function' + }, + 'lchown': { + 'type': 'function' + }, + 'link': { + 'type': 'function' + }, + 'linkinfo': { + 'type': 'function' + }, + 'lstat': { + 'type': 'function' + }, + 'mkdir': { + 'type': 'function' + }, + 'move_uploaded_file': { + 'type': 'function' + }, + 'parse_ini_file': { + 'type': 'function' + }, + 'parse_ini_string': { + 'type': 'function' + }, + 'pathinfo': { + 'type': 'function' + }, + 'pclose': { + 'type': 'function' + }, + 'popen': { + 'type': 'function' + }, + 'readfile': { + 'type': 'function' + }, + 'readlink': { + 'type': 'function' + }, + 'realpath_cache_get': { + 'type': 'function' + }, + 'realpath_cache_size': { + 'type': 'function' + }, + 'realpath': { + 'type': 'function' + }, + 'rename': { + 'type': 'function' + }, + 'rewind': { + 'type': 'function' + }, + 'rmdir': { + 'type': 'function' + }, + 'set_file_buffer': { + 'type': 'function' + }, + 'stat': { + 'type': 'function' + }, + 'symlink': { + 'type': 'function' + }, + 'tempnam': { + 'type': 'function' + }, + 'tmpfile': { + 'type': 'function' + }, + 'touch': { + 'type': 'function' + }, + 'umask': { + 'type': 'function' + }, + 'unlink': { + 'type': 'function' + }, + 'IN_ACCESS': { + 'type': 'cte' + }, + 'IN_MODIFY': { + 'type': 'cte' + }, + 'IN_ATTRIB': { + 'type': 'cte' + }, + 'IN_CLOSE_WRITE': { + 'type': 'cte' + }, + 'IN_CLOSE_NOWRITE': { + 'type': 'cte' + }, + 'IN_OPEN': { + 'type': 'cte' + }, + 'IN_MOVED_TO': { + 'type': 'cte' + }, + 'IN_MOVED_FROM': { + 'type': 'cte' + }, + 'IN_CREATE': { + 'type': 'cte' + }, + 'IN_DELETE': { + 'type': 'cte' + }, + 'IN_DELETE_SELF': { + 'type': 'cte' + }, + 'IN_MOVE_SELF': { + 'type': 'cte' + }, + 'IN_CLOSE': { + 'type': 'cte' + }, + 'IN_MOVE': { + 'type': 'cte' + }, + 'IN_ALL_EVENTS': { + 'type': 'cte' + }, + 'IN_UNMOUNT': { + 'type': 'cte' + }, + 'IN_Q_OVERFLOW': { + 'type': 'cte' + }, + 'IN_IGNORED': { + 'type': 'cte' + }, + 'IN_ISDIR': { + 'type': 'cte' + }, + 'IN_ONLYDIR': { + 'type': 'cte' + }, + 'IN_DONT_FOLLOW': { + 'type': 'cte' + }, + 'IN_MASK_ADD': { + 'type': 'cte' + }, + 'IN_ONESHOT': { + 'type': 'cte' + }, + 'inotify_add_watch': { + 'type': 'function' + }, + 'inotify_init': { + 'type': 'function' + }, + 'inotify_queue_len': { + 'type': 'function' + }, + 'inotify_read': { + 'type': 'function' + }, + 'inotify_rm_watch': { + 'type': 'function' + } + }); + +}).call(this); diff --git a/lib/grammar.js b/lib/grammar.js new file mode 100644 index 0000000..a8daa32 --- /dev/null +++ b/lib/grammar.js @@ -0,0 +1,112 @@ +// Generated by CoffeeScript 1.7.1 +(function() { + var Parser, grammar, o, operators; + + o = function(patternString, action) { + if (action != null) { + if (action === false) { + return [patternString, '']; + } + if (typeof action === 'number') { + return [patternString, '$$ = $' + action + ';']; + } else { + return [patternString, action]; + } + } else { + return [patternString, '$$ = $1;']; + } + }; + + grammar = { + Root: [o('Contents', 'return $1')], + Contents: [o('Content', '$$ = [$1]'), o('Contents Content', '$$ = $1.concat($2)')], + Content: [o('PlainBlock'), o('MammouthBlock')], + PlainBlock: [o('PlainText', '$$ = new yy.PlainBlock(yytext)')], + MammouthBlock: [o('{{ Block }}', '$$ = new yy.MammouthBlock($2)')], + Block: [o('Expression', '$$ = new yy.Block([new yy.Expression($1)])'), o('SimpleStatement', '$$ = new yy.Block([new yy.Expression($1)])'), o('INDENT Lines OUTDENT', '$$ = new yy.Block($2)'), o('LineTerminator INDENT Lines OUTDENT', '$$ = new yy.Block($3)')], + Lines: [o('Line', '$$ = [$1]'), o('Lines OptLineTerminator Line', '$$ = $1.concat($3);'), o('Lines LineTerminator')], + OptLineTerminator: [o('', false), o('LineTerminator', 'false')], + Line: [o('Expression', '$$ = new yy.Expression($1)'), o('Statement')], + Statement: [o('SimpleStatement', '$$ = new yy.Expression($1)'), o('Function'), o('If'), o('While'), o('DoWhile'), o('For'), o('Try'), o('Switch'), o('Declare'), o('Section'), o('Class'), o('Interface'), o('Namespace')], + Expression: [o('Value'), o('Invocation'), o('Code'), o('Operation'), o('Assign'), o('IfExpression'), o('HereDoc')], + Value: [o('Assignable'), o('Literal'), o('Parenthetical', '$$ = new yy.Value($1)'), o('Casting'), o('Execution'), o('NamespaceRef', '$$ = new yy.Value($1)'), o('Clone')], + HereDoc: [o('` HEREDOCTEXT `', '$$ = new yy.HereDoc($2)')], + Parenthetical: [o('( Expression )', '$$ = new yy.Parens($2)')], + Casting: [o('SimpleAssignable => cType', '$$ = new yy.Casting($1, $3)')], + Execution: [o('EXEC STRING', '$$ = new yy.Exec($2)'), o('EXEC ( STRING )', '$$ = new yy.Exec($3)')], + Clone: [o('CLONE Value', '$$ = new yy.Clone($2)')], + Assignable: [o('SimpleAssignable'), o('Array', '$$ = new yy.Value($1)')], + SimpleAssignable: [o('Identifier', '$$ = new yy.Value($1)'), o('& IDENTIFIER', '$$ = new yy.Identifier(yytext, true, true)'), o('Value Accessor', '$1.add($2); $$ = $1'), o('@ Identifier', 'th = new yy.Value(new yy.Identifier("this")); th.add(new yy.Access($2)); $$ = th')], + Accessor: [o('. Identifier', '$$ = new yy.Access($2)'), o('.. Identifier', '$$ = new yy.Access($2, "..")'), o(':: Identifier', '$$ = new yy.Access($2, "::")'), o('[ Expression ]', '$$ = new yy.Access($2, "[]")')], + Identifier: [o('IDENTIFIER', '$$ = new yy.Identifier(yytext)')], + Literal: [o('AlphaNumeric'), o('BOOL', '$$ = new yy.Bool(yytext)'), o('NULL', '$$ = new yy.Null()')], + AlphaNumeric: [o('NUMBER', '$$ = new yy.Literal(yytext)'), o('STRING', '$$ = new yy.Literal(yytext)')], + Array: [o('[ ]', '$$ = new yy.Array()'), o('[ ArgList OptComma ]', '$$ = new yy.Array($2)')], + ArgList: [o('Arg', '$$ = [$1]'), o('ArgList , Arg', '$$ = $1.concat($3);'), o('ArgList OptComma LineTerminator Arg', '$$ = $1.concat($4)'), o('INDENT ArgList OptComma OUTDENT', 2), o('ArgList OptComma LineTerminator INDENT ArgList OptComma OUTDENT', '$$ = $1.concat($5)'), o('LineTerminator INDENT ArgList OptComma OUTDENT', 3)], + Arg: [o('Expression'), o('Expression : Expression', '$$ = new yy.ArrayKey($1, $3)')], + OptComma: [o(''), o(',')], + Invocation: [o('Value Arguments', '$$ = new yy.Call($1, $2)'), o('NEW Value', '$$ = new yy.NewCall($2)'), o('NEW Value Arguments', '$$ = new yy.NewCall($2, $3)')], + Arguments: [o('CALL_START CALL_END', '$$ = []'), o('CALL_START ArgList OptComma CALL_END', 2)], + Function: [o('FUNC IDENTIFIER', '$$ = new yy.Code([], false, true, $2)'), o('FUNC IDENTIFIER FuncGlyph Block', '$$ = new yy.Code([], $4, true, $2)'), o('FUNC IDENTIFIER ( ParametersList )', '$$ = new yy.Code($4, false, true, $2)'), o('FUNC IDENTIFIER ( ParametersList ) FuncGlyph Block', '$$ = new yy.Code($4, $7, true, $2)')], + Code: [o('FUNC ( ParametersList ) FuncGlyph Block', '$$ = new yy.Code($3, $6)'), o('FUNC FuncGlyph Block', '$$ = new yy.Code([], $3)')], + FuncGlyph: [o('->', false)], + ParametersList: [o('', '$$ = []'), o('Param', '$$ = [$1]'), o('ParametersList , Param', '$$ = $1.concat($3);')], + Param: [o('ParamVar'), o('USE ParamVar', '$2.passing = true, $$ = $2'), o('ParamVar = Expression', '$$ = new yy.Assign("=", $1, $3)')], + ParamVar: [o('& IDENTIFIER', '$$ = new yy.Identifier(yytext, true, true)'), o('IDENTIFIER', '$$ = new yy.Identifier(yytext, true)')], + Assign: [o('Assignable = Expression', '$$ = new yy.Assign("=", $1, $3)'), o('{ KeysList } = Expression', '$$ = new yy.GetKeyAssign($2, $5)'), o('CTE Identifier = Expression', '$$ = new yy.Constant($2, $4)')], + KeysList: [o('Identifier', '$$ = [$1]'), o('KeysList , Identifier', '$$ = $1.concat($3)')], + SimpleStatement: [o('Echo'), o('Break'), o('Continue'), o('Delete'), o('Include'), o('Require'), o('Return'), o('Goto')], + Echo: [o('ECHO SimpleArg', '$$ = new yy.Echo($2)')], + Break: [o('BREAK', '$$ = new yy.Break()'), o('BREAK NUMBER', '$$ = new yy.Break(new yy.Literal($2))')], + Continue: [o('CONTINUE', '$$ = new yy.Continue()'), o('CONTINUE NUMBER', '$$ = new yy.Continue(new yy.Literal($2))')], + Delete: [o('DELETE SimpleArg', '$$ = new yy.Delete($2)')], + Include: [o('INCLUDE isOnce SimpleArg', '$$ = new yy.Include($3, $2)')], + Require: [o('REQUIRE isOnce SimpleArg', '$$ = new yy.Require($3, $2)')], + isOnce: [o('', '$$ = false'), o('ONCE', '$$ = true')], + Return: [o('RETURN SimpleArg', '$$ = new yy.Return($2)')], + SimpleArg: [o('Expression'), o('( Expression )', 2)], + If: [o('IfBlock'), o('IfBlock ELSE Block', '$1.addElse(new yy.Else($3)); $$ = $1')], + IfBlock: [o('IF Expression Block', '$$ = new yy.If($2, $3)'), o('IfBlock ELSE IF Expression Block', '$1.addElse(new yy.ElseIf($4, $5)); $$ = $1')], + IfExpression: [o('IfBlockExpression'), o('IfBlockExpression ELSE Expression', '$1.Elses = $3; $$ = $1')], + IfBlockExpression: [o('IF Expression THEN Expression', '$$ = new yy.If($2, $4, true)'), o('Expression IF Expression', '$$ = new yy.If($3, $1, true)')], + While: [o('WHILE Expression Block', '$$ = new yy.While($2, $3)')], + DoWhile: [o('DO WHILE Expression Block', '$$ = new yy.DoWhile($3, $4)')], + Try: [o('TryBlock'), o('TryBlock FINALLY Block', '$1.addFinally($3); $$ = $1')], + TryBlock: [o('TRY Block CatchBlock', '$$ = new yy.Try($2, $3[0], $3[1])')], + CatchBlock: [o('CATCH Identifier Block', '$$ = [$2, $3]')], + Switch: [o('SWITCH Expression LineTerminator INDENT Whens OUTDENT', '$$ = new yy.Switch($2, $5)'), o('SWITCH Expression LineTerminator INDENT Whens ELSE Block OUTDENT', '$5.push(new yy.SwitchElse($7)); $$ = new yy.Switch($2, $5)')], + Whens: [o('When', '$$ = [$1]'), o('Whens OptLineTerminator When', '$$ = $1.concat($3)'), o('Whens LineTerminator')], + When: [o('WhenTok Expression Block', '$$ = new yy.When($2, $3)')], + WhenTok: [o('CASE', false), o('WHEN', false)], + For: [o('FOR ForExpressions Block', '$$ = new yy.For("normal", $2, $3)'), o('FOR EACH Expression AS Expression Block', '$5.foreach = true; $$ = new yy.For("foreach", $3, $5, $6)')], + ForExpressions: [o('Expression', '$$ = [$1]'), o('ForExpressions ; Expression', '$$ = $1.concat($3)')], + Declare: [o('DECLARE SimpleArg', '$$ = new yy.Expression(new yy.Declare($2))'), o('DECLARE SimpleArg -> Block', '$$ = new yy.Declare($2, $4)')], + Section: [o('IDENTIFIER :', '$$ = new yy.Section($1)')], + Goto: [o('==> IDENTIFIER', '$$ = new yy.Goto($2)'), o('GOTO IDENTIFIER', '$$ = new yy.Goto($2)')], + Class: [o('CLASS IDENTIFIER LineTerminator INDENT ClassBody OUTDENT', '$$ = new yy.Class($2, $5)'), o('CLASS IDENTIFIER EXTENDS IDENTIFIER LineTerminator INDENT ClassBody OUTDENT', '$$ = new yy.Class($2, $7, $4)'), o('CLASS IDENTIFIER IMPLEMENTS IDENTIFIER LineTerminator INDENT ClassBody OUTDENT', '$$ = new yy.Class($2, $7, false, $4)'), o('ABSTRACT CLASS IDENTIFIER LineTerminator INDENT ClassBody OUTDENT', '$$ = new yy.Class($3, $6, false, false, true)')], + ClassBody: [o('ClassLine', '$$ = [$1]'), o('ClassBody OptLineTerminator ClassLine', '$$ = $1.concat($3)'), o('ClassBody LineTerminator')], + ClassLine: [o('Visibility Statically Identifier', '$$ = new yy.ClassLine($1, $2, $$ = new yy.Expression($3))'), o('Visibility Statically Assign', '$$ = new yy.ClassLine($1, $2, $$ = new yy.Expression($3))'), o('Visibility Statically Function', '$$ = new yy.ClassLine($1, $2, $3);'), o('FINAL Visibility Statically Function', 'n = new yy.ClassLine($2, $3, $4); n.finaly = true; $$ = n'), o('ABSTRACT ClassLine', '$2.abstract = true; $$ = $2')], + Finaly: [o('', '$$ = false'), o('FINAL', '$$ = true')], + Visibility: [o('', '$$ = false'), o('PUBLIC', '$$ = "public"'), o('PRIVATE', '$$ = "private"'), o('PROTECTED', '$$ = "protected"')], + Statically: [o('', '$$ = false'), o('STATIC', '$$ = "static"')], + Interface: [o('INTERFACE IDENTIFIER LineTerminator INDENT InterfaceBody OUTDENT', '$$ = new yy.Interface($2, $5)'), o('INTERFACE IDENTIFIER EXTENDS ExtendedList LineTerminator INDENT InterfaceBody OUTDENT', '$$ = new yy.Interface($2, $7, $4)')], + InterfaceBody: [o('InterfaceLine', '$$ = [$1]'), o('InterfaceBody OptLineTerminator InterfaceLine', '$$ = $1.concat($3)'), o('InterfaceBody LineTerminator')], + InterfaceLine: [o('PUBLIC Function', 2), o('Assign', '$$ = new yy.Expression($1)')], + ExtendedList: [o('IDENTIFIER', '$$ = [$1]'), o('ExtendedList , IDENTIFIER', '$$ = $1.concat($3)')], + Namespace: [o('NAMESPACE NamespaceName', '$$ = new yy.Expression(new yy.Namespace($2))'), o('NAMESPACE NamespaceName -> Block', '$$ = new yy.Namespace($2, $4)')], + NamespaceName: [o('IDENTIFIER'), o('NamespaceName \\ IDENTIFIER', ' $$ = $1 + "\\\\" + $3')], + NamespaceRef: [o('NamespaceRefname', '$$ = new yy.NamespaceRef($1)')], + NamespaceRefname: [o('IDENTIFIER \\ IDENTIFIER', '$$ = $1 + "\\\\" + $3'), o('NamespaceRefname \\ IDENTIFIER', '$$ = $1 + "\\\\" + $3'), o('\\ NamespaceRefname', '$$ = "\\\\" + $2')], + Operation: [o('-- Expression', '$$ = new yy.Update("--", $2)'), o('++ Expression', '$$ = new yy.Update("++", $2)'), o('SimpleAssignable --', '$$ = new yy.Update("--", $1, false)'), o('SimpleAssignable ++', '$$ = new yy.Update("++", $1, false)'), o('NOT Expression', '$$ = new yy.Unary("!", $2)'), o('- Expression', '$$ = new yy.Unary("-", $2)'), o('+ Expression', '$$ = new yy.Unary("+", $2)'), o('Expression ?', '$$ = new yy.Existence($1)'), o('Expression + Expression', '$$ = new yy.Operation("+", $1, $3)'), o('Expression <-> Expression', '$$ = new yy.Operation("<->", $1, $3)'), o('Expression - Expression', '$$ = new yy.Operation("-", $1, $3)'), o('Expression * Expression', '$$ = new yy.Operation("*", $1, $3)'), o('Expression ** Expression', '$$ = new yy.Operation("**", $1, $3)'), o('Expression / Expression', '$$ = new yy.Operation("/", $1, $3)'), o('Expression % Expression', '$$ = new yy.Operation("%", $1, $3)'), o('Expression SHIFT Expression', '$$ = new yy.Operation($2, $1, $3)'), o('Expression LOGIC Expression', '$$ = new yy.Operation($2, $1, $3)'), o('Expression & Expression', '$$ = new yy.Operation("&", $1, $3)'), o('Expression COMPARE Expression', '$$ = new yy.Operation($2, $1, $3)'), o('SimpleAssignable ASSIGN Expression', '$$ = new yy.Assign($2, $1, $3)'), o('Expression INSTANCEOF Expression', '$$ = new yy.Operation("instanceof", $1, $3)'), o('Expression IN Expression', '$$ = new yy.In($1, $3)')] + }; + + operators = [['left', '..', '.', '::', '->', '=>'], ['left', 'CALL_START', 'CALL_END'], ['nonassoc', '++', '--'], ['left', '?'], ['right', '**'], ['left', '*', '/', '%'], ['left', 'NOT', '+', '-', '<->', 'EXEC', 'CLONE'], ['left', 'SHIFT'], ['left', 'INSTANCEOF'], ['left', 'IN'], ['left', 'AS'], ['left', 'COMPARE'], ['left', 'LOGIC', '&'], ['nonassoc', 'INDENT', 'OUTDENT', 'LineTerminator'], ['left', 'DELETE', 'ECHO', 'REQUIRE', 'INCLUDE', 'ONCE', 'BREAK', 'CONTINUE', 'RETURN', 'DECLARE'], ['right', 'PUBLIC', 'PRIVATE', 'PROTECTED', 'FINAL', 'STATIC'], ['right', 'func', 'IF', 'THEN', 'ELSE', 'FOR', 'EACH', 'DO', 'WHILE', 'ABSTRACT', 'CLASS', 'EXTENDS', 'IMPLEMENTS'], ['right', '=', ':', 'ASSIGN']]; + + Parser = require('jison').Parser; + + module.exports = new Parser({ + bnf: grammar, + operators: operators.reverse() + }); + +}).call(this); diff --git a/lib/helpers.js b/lib/helpers.js new file mode 100644 index 0000000..51b292c --- /dev/null +++ b/lib/helpers.js @@ -0,0 +1,47 @@ +// Generated by CoffeeScript 1.7.1 +(function() { + var IdCounter, nodes; + + nodes = require('./nodes'); + + exports.IdCounter = IdCounter = (function() { + function IdCounter() {} + + IdCounter.prototype.letter = ['i', 'j', 'k', 'c', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'a', 'b', 'c', 'd', 'e', 'f', 'j', 'h']; + + IdCounter.prototype._level = 1; + + IdCounter.prototype.letterLevel = 0; + + IdCounter.prototype.generateAtLevel = function() { + var i, r; + r = ''; + i = 0; + while (i < this._level) { + r += '_'; + i++; + } + return r; + }; + + IdCounter.prototype.next = function() { + if ((this.letterLevel + 1) === this.letter.length) { + this._level++; + return this.letterLevel = 0; + } else { + return this.letterLevel++; + } + }; + + IdCounter.prototype.get = function() { + var r; + r = this.generateAtLevel() + this.letter[this.letterLevel]; + this.next(); + return new nodes.Identifier(r); + }; + + return IdCounter; + + })(); + +}).call(this); diff --git a/lib/lexer.js b/lib/lexer.js new file mode 100644 index 0000000..7c2678c --- /dev/null +++ b/lib/lexer.js @@ -0,0 +1,699 @@ +// Generated by CoffeeScript 1.7.1 +(function() { + var CloseIndents, IntoArray, IntoHereDoc, IntoMammouth, Levels, Lexer, OpenedParens, RegularExpression, captureTypeCasting, col, lastIsIdentifier, lexer, row, setToken, tokenStack; + + Lexer = require("lex"); + + col = 1; + + row = 1; + + IntoArray = false; + + IntoMammouth = false; + + IntoHereDoc = false; + + Levels = [ + { + IndentStack: [], + CurrentIndent: -1, + OpenedIndent: 0 + } + ]; + + OpenedParens = []; + + lastIsIdentifier = false; + + captureTypeCasting = false; + + tokenStack = []; + + setToken = function(token) { + if (token === 'IDENTIFIER' && tokenStack[0] !== 'FUNC') { + lastIsIdentifier = true; + } else { + lastIsIdentifier = false; + if (token === '=>') { + captureTypeCasting = true; + } else { + captureTypeCasting = false; + } + } + return tokenStack.unshift(token); + }; + + CloseIndents = function(tokens) { + while (Levels[0].OpenedIndent > 0) { + tokens.unshift('OUTDENT'); + Levels[0].OpenedIndent--; + } + return tokens; + }; + + lexer = module.exports = new Lexer(function(char) { + throw new Error("Unexpected character at row " + row + ", col " + col + ": " + char); + }); + + RegularExpression = { + PlainText: /(((?!({{|}}))([\n\r\u2028\u2029]|.))*)/, + MammouthStart: /{{/, + MammouthEnd: /}}/, + Python_indent: /(^[ \t]*)/gm, + EmptyLine: /(^[\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000]*[\n\r\u2028\u2029])/gmi, + IDENTIFIER: /(([$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)( [^\n\S]* : (?!:) )?)/, + NUMBER: /(0b[01]+|0o[0-7]+|0(x|X)[\da-fA-F]+|\d*\.?\d+(?:(e|E)[+-]?\d+)?)/, + STRING: /('[^\\']*(?:\\[\s\S][^\\']*)*'|"[^\\"]*(?:\\[\s\S][^\\"]*)*")/, + HEREDOC: /(((?!(\`|{{|}}))([\n\r\u2028\u2029]|.))*)/, + LineTerminator: /[\n\r\u2028\u2029]/, + Zs: /[\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000]/, + SingleComment: /#(.*)+[\n\r\u2028\u2029]/, + MultiComment: /###(([\n\r\u2028\u2029]|.)*)###/ + }; + + lexer.addRule(/^/, function(lexeme) { + IntoArray = false; + IntoMammouth = false; + IntoHereDoc = false; + Levels = [ + { + IndentStack: [], + CurrentIndent: -1, + OpenedIndent: 0 + } + ]; + OpenedParens = []; + lastIsIdentifier = false; + captureTypeCasting = false; + tokenStack = []; + return this.reject = true; + }); + + lexer.addRule(RegularExpression.PlainText, function(lexeme) { + if (!IntoMammouth) { + col += lexeme.length; + this.yytext = lexeme; + setToken('PlainText'); + return 'PlainText'; + } else { + return this.reject = true; + } + }); + + lexer.addRule(RegularExpression.HEREDOC, function(lexeme) { + if (IntoMammouth && IntoHereDoc) { + col += lexeme.length; + this.yytext = lexeme; + setToken('HEREDOCTEXT'); + return 'HEREDOCTEXT'; + } else { + return this.reject = true; + } + }); + + lexer.addRule(RegularExpression.EmptyLine, function(lexeme) {}); + + lexer.addRule(RegularExpression.SingleComment, function(lexeme) {}); + + lexer.addRule(RegularExpression.MultiComment, function(lexeme) {}); + + lexer.addRule(RegularExpression.Python_indent, function(lexeme) { + var a, current_line_indent, i, tokens, _i, _j, _len, _len1, _ref; + if (IntoMammouth) { + col += lexeme.length; + current_line_indent = lexeme.replace(/\t/g, ' ').length; + if (current_line_indent > Levels[0].CurrentIndent) { + Levels[0].CurrentIndent = current_line_indent; + Levels[0].OpenedIndent++; + Levels[0].IndentStack.push(Levels[0].CurrentIndent); + setToken('INDENT'); + return 'INDENT'; + } else if (current_line_indent < Levels[0].CurrentIndent) { + tokens = []; + a = []; + _ref = Levels[0].IndentStack; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + i = _ref[_i]; + a.unshift(i); + } + for (_j = 0, _len1 = a.length; _j < _len1; _j++) { + i = a[_j]; + if (current_line_indent === i) { + Levels[0].CurrentIndent = i; + } else if (current_line_indent < i) { + Levels[0].CurrentIndent = Levels[0].IndentStack.pop(); + setToken('OUTDENT'); + tokens.push('OUTDENT'); + Levels[0].OpenedIndent -= 1; + } + } + return tokens; + } else { + + } + } + }); + + lexer.addRule(RegularExpression.Zs, function(lexeme) {}); + + lexer.addRule(RegularExpression.MammouthStart, function() { + var ShouldCloseCall; + col += 2; + IntoMammouth = true; + setToken('{{'); + IntoArray = false; + IntoHereDoc = false; + Levels = [ + { + IndentStack: [], + CurrentIndent: -1, + OpenedIndent: 0 + } + ]; + OpenedParens = []; + lastIsIdentifier = false; + ShouldCloseCall = false; + captureTypeCasting = false; + tokenStack = []; + return '{{'; + }); + + lexer.addRule(RegularExpression.MammouthEnd, function() { + var token, tokens, _i, _len; + col += 2; + IntoMammouth = false; + tokens = CloseIndents(['}}']); + for (_i = 0, _len = tokens.length; _i < _len; _i++) { + token = tokens[_i]; + setToken(token); + } + return tokens; + }); + + lexer.addRule(/\`/, function(lexeme) { + col += lexeme.length; + if (IntoHereDoc) { + IntoHereDoc = false; + } else { + IntoHereDoc = true; + } + setToken('`'); + return '`'; + }); + + lexer.addRule(/\{/, function(lexeme) { + col += lexeme.length; + setToken('{'); + return '{'; + }); + + lexer.addRule(/\}/, function(lexeme) { + col += lexeme.length; + setToken('}'); + return '}'; + }); + + lexer.addRule(/\(/, function(lexeme) { + col += lexeme.length; + if (lastIsIdentifier) { + lastIsIdentifier = false; + OpenedParens.unshift('CALL_END'); + setToken('CALL_START'); + return 'CALL_START'; + } else { + OpenedParens.unshift(')'); + setToken('('); + return '('; + } + }); + + lexer.addRule(/\)/, function(lexeme) { + var tok; + col += lexeme.length; + tok = OpenedParens.shift(); + setToken(tok); + return tok; + }); + + lexer.addRule(/\;/, function(lexeme) { + col += lexeme.length; + setToken(';'); + return ';'; + }); + + lexer.addRule(/\[/, function(lexeme) { + col += lexeme.length; + setToken('['); + return '['; + }); + + lexer.addRule(/\]/, function(lexeme) { + col += lexeme.length; + setToken(']'); + return ']'; + }); + + lexer.addRule(/@/, function(lexeme) { + col += lexeme.length; + setToken('@'); + return '@'; + }); + + lexer.addRule(/,/, function(lexeme) { + col += lexeme.length; + setToken(','); + return ','; + }); + + lexer.addRule(/\./, function(lexeme) { + col += lexeme.length; + setToken('.'); + return '.'; + }); + + lexer.addRule(/\.\./, function(lexeme) { + col += lexeme.length; + setToken('..'); + return '..'; + }); + + lexer.addRule(/<->/, function(lexeme) { + col += lexeme.length; + setToken('<->'); + return '<->'; + }); + + lexer.addRule(/->/, function(lexeme) { + col += lexeme.length; + setToken('->'); + return '->'; + }); + + lexer.addRule(/\=>/, function(lexeme) { + col += lexeme.length; + setToken('=>'); + return '=>'; + }); + + lexer.addRule(/\=\=>/, function(lexeme) { + col += lexeme.length; + setToken('==>'); + return '==>'; + }); + + lexer.addRule(/:/, function(lexeme) { + col += lexeme.length; + setToken(':'); + return ':'; + }); + + lexer.addRule(/::/, function(lexeme) { + col += lexeme.length; + setToken('::'); + return '::'; + }); + + lexer.addRule(/\+/, function(lexeme) { + col += lexeme.length; + setToken('+'); + return '+'; + }); + + lexer.addRule(/\+\+/, function(lexeme) { + col += lexeme.length; + setToken('++'); + return '++'; + }); + + lexer.addRule(/-/, function(lexeme) { + col += lexeme.length; + setToken('-'); + return '-'; + }); + + lexer.addRule(/--/, function(lexeme) { + col += lexeme.length; + setToken('--'); + return '--'; + }); + + lexer.addRule(/\?/, function(lexeme) { + col += lexeme.length; + setToken('?'); + return '?'; + }); + + lexer.addRule(/\*/, function(lexeme) { + col += lexeme.length; + setToken('*'); + return '*'; + }); + + lexer.addRule(/\*\*/, function(lexeme) { + col += lexeme.length; + setToken('**'); + return '**'; + }); + + lexer.addRule(/\//, function(lexeme) { + col += lexeme.length; + setToken('/'); + return '/'; + }); + + lexer.addRule(/\\/, function(lexeme) { + col += lexeme.length; + setToken('\\'); + return '\\'; + }); + + lexer.addRule(/%/, function(lexeme) { + col += lexeme.length; + setToken('%'); + return '%'; + }); + + lexer.addRule(/\+\=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('ASSIGN'); + return "ASSIGN"; + }); + + lexer.addRule(/-\=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('ASSIGN'); + return "ASSIGN"; + }); + + lexer.addRule(/\*\=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('ASSIGN'); + return "ASSIGN"; + }); + + lexer.addRule(/\/\=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('ASSIGN'); + return "ASSIGN"; + }); + + lexer.addRule(/\%\=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('ASSIGN'); + return "ASSIGN"; + }); + + lexer.addRule(/&/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('&'); + return "&"; + }); + + lexer.addRule(/>>/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('>>'); + return "SHIFT"; + }); + + lexer.addRule(/</, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('COMPARE'); + return "COMPARE"; + }); + + lexer.addRule(/<=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('COMPARE'); + return "COMPARE"; + }); + + lexer.addRule(/>=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('COMPARE'); + return "COMPARE"; + }); + + lexer.addRule(/!\=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('COMPARE'); + return "COMPARE"; + }); + + lexer.addRule(/\=\=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('COMPARE'); + return "COMPARE"; + }); + + lexer.addRule(/\=\=\=/, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('COMPARE'); + return "COMPARE"; + }); + + lexer.addRule(/\=/, function(lexeme) { + col += lexeme.length; + setToken('='); + return "="; + }); + + lexer.addRule(RegularExpression.IDENTIFIER, function(lexeme) { + col += lexeme.length; + if (captureTypeCasting) { + this.yytext = lexeme; + setToken('cType'); + return 'cType'; + } + if (lexeme === 'true' || lexeme === 'false') { + this.yytext = eval(lexeme); + setToken('BOOL'); + return 'BOOL'; + } else if (lexeme === 'break') { + setToken('BREAK'); + return 'BREAK'; + } else if (lexeme === 'and') { + this.yytext = lexeme; + setToken('LOGIC'); + return 'LOGIC'; + } else if (lexeme === 'abstract') { + setToken('ABSTRACT'); + return 'ABSTRACT'; + } else if (lexeme === 'as') { + setToken('AS'); + return 'AS'; + } else if (lexeme === 'catch') { + setToken('CATCH'); + return 'CATCH'; + } else if (lexeme === 'case') { + setToken('CASE'); + return 'CASE'; + } else if (lexeme === 'class') { + setToken('CLASS'); + return 'CLASS'; + } else if (lexeme === 'clone') { + setToken('CLONE'); + return 'CLONE'; + } else if (lexeme === 'continue') { + setToken('CONTINUE'); + return 'CONTINUE'; + } else if (lexeme === 'cte') { + setToken('CTE'); + return 'CTE'; + } else if (lexeme === 'declare') { + setToken('DECLARE'); + return 'DECLARE'; + } else if (lexeme === 'delete') { + setToken('DELETE'); + return 'DELETE'; + } else if (lexeme === 'do') { + setToken('DO'); + return 'DO'; + } else if (lexeme === 'each') { + setToken('EACH'); + return 'EACH'; + } else if (lexeme === 'echo') { + setToken('ECHO'); + return 'ECHO'; + } else if (lexeme === 'else') { + setToken('ELSE'); + return 'ELSE'; + } else if (lexeme === 'exec') { + setToken('EXEC'); + return 'EXEC'; + } else if (lexeme === 'extends') { + setToken('EXTENDS'); + return 'EXTENDS'; + } else if (lexeme === 'final') { + setToken('FINAL'); + return 'FINAL'; + } else if (lexeme === 'finally') { + setToken('FINALLY'); + return 'FINALLY'; + } else if (lexeme === 'for') { + setToken('FOR'); + return 'FOR'; + } else if (lexeme === 'func') { + setToken('FUNC'); + return 'FUNC'; + } else if (lexeme === 'goto') { + setToken('GOTO'); + return 'GOTO'; + } else if (lexeme === 'if') { + setToken('IF'); + return 'IF'; + } else if (lexeme === 'implements') { + setToken('IMPLEMENTS'); + return 'IMPLEMENTS'; + } else if (lexeme === 'include') { + setToken('INCLUDE'); + return 'INCLUDE'; + } else if (lexeme === 'instanceof') { + setToken('INSTANCEOF'); + return 'INSTANCEOF'; + } else if (lexeme === 'interface') { + setToken('INTERFACE'); + return 'INTERFACE'; + } else if (lexeme === "is") { + this.yytext = "==="; + setToken('COMPARE'); + return "COMPARE"; + } else if (lexeme === "isnt") { + this.yytext = "!="; + setToken('COMPARE'); + return "COMPARE"; + } else if (lexeme === "in") { + setToken('IN'); + return "IN"; + } else if (lexeme === 'not') { + setToken('NOT'); + return 'NOT'; + } else if (lexeme === 'namespace') { + setToken('NAMESPACE'); + return 'NAMESPACE'; + } else if (lexeme === 'new') { + setToken('NEW'); + return 'NEW'; + } else if (lexeme === 'null') { + setToken('NULL'); + return 'NULL'; + } else if (lexeme === 'once') { + setToken('ONCE'); + return 'ONCE'; + } else if (lexeme === 'or') { + this.yytext = lexeme; + setToken('LOGIC'); + return 'LOGIC'; + } else if (lexeme === 'public') { + setToken('PUBLIC'); + return 'PUBLIC'; + } else if (lexeme === 'private') { + setToken('PRIVATE'); + return 'PRIVATE'; + } else if (lexeme === 'protected') { + setToken('PROTECTED'); + return 'PROTECTED'; + } else if (lexeme === 'static') { + setToken('STATIC'); + return 'STATIC'; + } else if (lexeme === 'require') { + setToken('REQUIRE'); + return 'REQUIRE'; + } else if (lexeme === 'return') { + setToken('RETURN'); + return 'RETURN'; + } else if (lexeme === 'switch') { + setToken('SWITCH'); + return 'SWITCH'; + } else if (lexeme === 'then') { + setToken('THEN'); + return 'THEN'; + } else if (lexeme === 'try') { + setToken('TRY'); + return 'TRY'; + } else if (lexeme === 'use') { + setToken('USE'); + return 'USE'; + } else if (lexeme === 'when') { + setToken('WHEN'); + return 'WHEN'; + } else if (lexeme === 'while') { + setToken('WHILE'); + return 'WHILE'; + } else { + this.yytext = lexeme; + setToken('IDENTIFIER'); + return "IDENTIFIER"; + } + }); + + lexer.addRule(RegularExpression.NUMBER, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('NUMBER'); + return "NUMBER"; + }); + + lexer.addRule(RegularExpression.STRING, function(lexeme) { + col += lexeme.length; + this.yytext = lexeme; + setToken('STRING'); + return "STRING"; + }); + + lexer.addRule(RegularExpression.LineTerminator, function(lexeme) { + col = 1; + row++; + setToken('LineTerminator'); + return "LineTerminator"; + }); + +}).call(this); diff --git a/lib/mammouth.js b/lib/mammouth.js new file mode 100644 index 0000000..3e9e836 --- /dev/null +++ b/lib/mammouth.js @@ -0,0 +1,32 @@ +// Generated by CoffeeScript 1.7.1 +(function() { + var PreContext, lexer, parser, rewriter, yy; + + yy = require('./nodes'); + + parser = require('./parser').parser; + + lexer = require('./lexer'); + + rewriter = require('./rewriter'); + + PreContext = require('./context').PreContext; + + parser.lexer = lexer; + + parser.yy = yy; + + module.exports = { + VERSION: '2.0.0', + parser: parser, + parse: function(code) { + return this.parser.parse(code); + }, + compile: function(code, context) { + var result, tree; + tree = this.parse(code); + return result = rewriter.rewrite(tree, context ? context : PreContext); + } + }; + +}).call(this); diff --git a/lib/nodes.js b/lib/nodes.js new file mode 100644 index 0000000..76fc902 --- /dev/null +++ b/lib/nodes.js @@ -0,0 +1,613 @@ +// Generated by CoffeeScript 1.7.1 +(function() { + var Access, Array, ArrayKey, Assign, Block, Bool, Break, Call, Casting, Class, ClassLine, Clone, Code, Constant, Continue, Declare, Delete, DoWhile, Echo, Else, ElseIf, Exec, Existence, Expression, For, GetKeyAssign, Goto, HereDoc, Identifier, If, In, Include, Interface, Literal, MammouthBlock, Namespace, NamespaceRef, NewCall, Operation, Parens, PlainBlock, Require, Return, Section, Switch, SwitchElse, Try, Unary, Update, Value, When, While; + + exports.PlainBlock = PlainBlock = (function() { + function PlainBlock(text) { + this.text = text; + this.type = 'PlainBlock'; + } + + PlainBlock.prototype.toPHP = function() { + return this.text; + }; + + return PlainBlock; + + })(); + + exports.MammouthBlock = MammouthBlock = (function() { + function MammouthBlock(body) { + this.body = body; + this.type = 'MammouthBlock'; + } + + return MammouthBlock; + + })(); + + exports.Block = Block = (function() { + function Block(nodes) { + this.nodes = nodes; + this.type = 'Block'; + } + + return Block; + + })(); + + exports.Expression = Expression = (function() { + function Expression(expression) { + this.expression = expression; + this.type = 'Expression'; + } + + return Expression; + + })(); + + exports.Value = Value = (function() { + function Value(value, properties) { + this.value = value; + this.properties = properties != null ? properties : []; + this.type = 'Value'; + } + + Value.prototype.add = function(prop) { + return this.properties.push(prop); + }; + + return Value; + + })(); + + exports.Access = Access = (function() { + function Access(value, method) { + this.value = value; + this.method = method != null ? method : "."; + this.type = 'Access'; + } + + return Access; + + })(); + + exports.Parens = Parens = (function() { + function Parens(expression) { + this.expression = expression; + this.type = 'Parens'; + } + + return Parens; + + })(); + + exports.Identifier = Identifier = (function() { + function Identifier(name, as_arguments, passing) { + this.name = name; + this.as_arguments = as_arguments != null ? as_arguments : false; + this.passing = passing != null ? passing : false; + this.type = 'Identifier'; + } + + return Identifier; + + })(); + + exports.Literal = Literal = (function() { + function Literal(value) { + this.value = value; + this.type = 'Literal'; + } + + return Literal; + + })(); + + exports.Bool = Bool = (function() { + function Bool(value) { + this.value = value; + this.type = 'Bool'; + } + + return Bool; + + })(); + + exports.Null = (function() { + function _Class() { + this.type = 'Null'; + } + + return _Class; + + })(); + + exports.Array = Array = (function() { + function Array(elements) { + this.elements = elements != null ? elements : []; + this.type = 'Array'; + } + + return Array; + + })(); + + exports.ArrayKey = ArrayKey = (function() { + function ArrayKey(key, value) { + this.key = key; + this.value = value; + this.type = 'ArrayKey'; + } + + return ArrayKey; + + })(); + + exports.Call = Call = (function() { + function Call(variable, _arguments) { + this.variable = variable; + this["arguments"] = _arguments != null ? _arguments : []; + this.type = 'Call'; + } + + return Call; + + })(); + + exports.NewCall = NewCall = (function() { + function NewCall(variable, _arguments) { + this.variable = variable; + this["arguments"] = _arguments != null ? _arguments : false; + this.type = 'NewCall'; + } + + return NewCall; + + })(); + + exports.Code = Code = (function() { + function Code(parameters, body, normal, name) { + this.parameters = parameters; + this.body = body; + this.normal = normal != null ? normal : false; + this.name = name != null ? name : null; + this.type = 'Code'; + } + + return Code; + + })(); + + exports.Casting = Casting = (function() { + function Casting(variable, typec) { + this.variable = variable; + this.typec = typec; + this.type = 'Casting'; + } + + return Casting; + + })(); + + exports.Exec = Exec = (function() { + function Exec(code) { + this.type = 'Exec'; + if (code[0] === "'") { + this.code = code.replace(/\'/g, ''); + } else if (code[0] === '"') { + this.code = code.replace(/\"/g, ''); + } + } + + return Exec; + + })(); + + exports.HereDoc = HereDoc = (function() { + function HereDoc(doc) { + this.doc = doc; + this.type = 'HereDoc'; + } + + return HereDoc; + + })(); + + exports.Clone = Clone = (function() { + function Clone(value) { + this.value = value; + this.type = 'Clone'; + } + + return Clone; + + })(); + + exports.Assign = Assign = (function() { + function Assign(operator, left, right) { + this.operator = operator; + this.left = left; + this.right = right; + this.type = 'Assign'; + } + + return Assign; + + })(); + + exports.GetKeyAssign = GetKeyAssign = (function() { + function GetKeyAssign(keys, source) { + this.keys = keys; + this.source = source; + this.type = 'GetKeyAssign'; + } + + return GetKeyAssign; + + })(); + + exports.Constant = Constant = (function() { + function Constant(left, right) { + this.left = left; + this.right = right; + this.type = 'Constant'; + } + + return Constant; + + })(); + + exports.Unary = Unary = (function() { + function Unary(operator, expression) { + this.operator = operator; + this.expression = expression; + this.type = 'Unary'; + } + + return Unary; + + })(); + + exports.Update = Update = (function() { + function Update(operator, expression, prefix) { + this.operator = operator; + this.expression = expression; + this.prefix = prefix != null ? prefix : true; + this.type = 'Update'; + } + + return Update; + + })(); + + exports.Existence = Existence = (function() { + function Existence(expression) { + this.expression = expression; + this.type = 'Existence'; + } + + return Existence; + + })(); + + exports.Operation = Operation = (function() { + function Operation(operator, left, right) { + this.operator = operator; + this.left = left; + this.right = right; + this.type = 'Operation'; + } + + return Operation; + + })(); + + exports.In = In = (function() { + function In(left, right) { + this.left = left; + this.right = right; + this.type = 'In'; + } + + return In; + + })(); + + exports.Echo = Echo = (function() { + function Echo(value) { + this.value = value; + this.type = 'Echo'; + } + + return Echo; + + })(); + + exports.Delete = Delete = (function() { + function Delete(value) { + this.value = value; + this.type = 'Delete'; + } + + return Delete; + + })(); + + exports.Include = Include = (function() { + function Include(path, once) { + this.path = path; + this.once = once; + this.type = 'Include'; + } + + return Include; + + })(); + + exports.Require = Require = (function() { + function Require(path, once) { + this.path = path; + this.once = once; + this.type = 'Require'; + } + + return Require; + + })(); + + exports.Break = Break = (function() { + function Break(arg) { + this.arg = arg != null ? arg : false; + this.type = 'Break'; + } + + return Break; + + })(); + + exports.Continue = Continue = (function() { + function Continue(arg) { + this.arg = arg != null ? arg : false; + this.type = 'Continue'; + } + + return Continue; + + })(); + + exports.Return = Return = (function() { + function Return(value) { + this.value = value; + this.type = 'Return'; + } + + return Return; + + })(); + + exports.Declare = Declare = (function() { + function Declare(expression, script) { + this.expression = expression; + this.script = script != null ? script : false; + this.type = 'Declare'; + } + + return Declare; + + })(); + + exports.Goto = Goto = (function() { + function Goto(section) { + this.section = section; + this.type = 'Goto'; + } + + return Goto; + + })(); + + exports.If = If = (function() { + function If(condition, body, as_expression) { + this.condition = condition; + this.body = body; + this.as_expression = as_expression != null ? as_expression : false; + this.type = 'If'; + if (!this.as_expression) { + this.Elses = []; + } else { + this.Elses = false; + } + } + + If.prototype.addElse = function(element) { + return this.Elses.push(element); + }; + + return If; + + })(); + + exports.ElseIf = ElseIf = (function() { + function ElseIf(condition, body) { + this.condition = condition; + this.body = body; + this.type = 'ElseIf'; + } + + return ElseIf; + + })(); + + exports.Else = Else = (function() { + function Else(body) { + this.body = body; + this.type = 'Else'; + } + + return Else; + + })(); + + exports.While = While = (function() { + function While(test, body) { + this.test = test; + this.body = body; + this.type = 'While'; + } + + return While; + + })(); + + exports.DoWhile = DoWhile = (function() { + function DoWhile(test, body) { + this.test = test; + this.body = body; + this.type = 'DoWhile'; + } + + return DoWhile; + + })(); + + exports.Try = Try = (function() { + function Try(TryBody, CatchIdentifier, CatchBody, Finally) { + this.TryBody = TryBody; + this.CatchIdentifier = CatchIdentifier; + this.CatchBody = CatchBody; + this.Finally = Finally != null ? Finally : false; + this.type = 'Try'; + } + + Try.prototype.addFinally = function(body) { + this.Finally = true; + return this.FinallyBody = body; + }; + + return Try; + + })(); + + exports.Switch = Switch = (function() { + function Switch(variable, cases) { + this.variable = variable; + this.cases = cases; + this.type = 'Switch'; + } + + return Switch; + + })(); + + exports.When = When = (function() { + function When(condition, body) { + this.condition = condition; + this.body = body; + this.type = 'When'; + } + + return When; + + })(); + + exports.SwitchElse = SwitchElse = (function() { + function SwitchElse(body) { + this.body = body; + this.type = 'SwitchElse'; + } + + return SwitchElse; + + })(); + + exports.For = For = (function() { + function For() { + this.type = 'For'; + if (arguments[0] === 'normal') { + this.method = 'normal'; + this.expressions = arguments[1]; + this.body = arguments[2]; + } else if (arguments[0] === 'foreach') { + this.method = 'foreach'; + this.left = arguments[1]; + this.right = arguments[2]; + this.body = arguments[3]; + } + } + + return For; + + })(); + + exports.Section = Section = (function() { + function Section(name) { + this.name = name; + this.type = 'Section'; + } + + return Section; + + })(); + + exports.Class = Class = (function() { + function Class(name, body, extendable, implement, abstract) { + this.name = name; + this.body = body; + this.extendable = extendable != null ? extendable : false; + this.implement = implement != null ? implement : false; + this.abstract = abstract != null ? abstract : false; + this.type = "Class"; + } + + return Class; + + })(); + + exports.ClassLine = ClassLine = (function() { + function ClassLine(visibility, statically, element) { + this.visibility = visibility; + this.statically = statically; + this.element = element; + this.type = 'ClassLine'; + this.abstract = false; + } + + return ClassLine; + + })(); + + exports.Interface = Interface = (function() { + function Interface(name, body, extendable) { + this.name = name; + this.body = body; + this.extendable = extendable != null ? extendable : false; + this.type = "Interface"; + } + + return Interface; + + })(); + + exports.Namespace = Namespace = (function() { + function Namespace(name, body) { + this.name = name; + this.body = body != null ? body : false; + this.type = 'Namespace'; + } + + return Namespace; + + })(); + + exports.NamespaceRef = NamespaceRef = (function() { + function NamespaceRef(path) { + this.path = path; + this.type = 'NamespaceRef'; + } + + return NamespaceRef; + + })(); + +}).call(this); diff --git a/lib/parser.js b/lib/parser.js new file mode 100644 index 0000000..02892d1 --- /dev/null +++ b/lib/parser.js @@ -0,0 +1,630 @@ +/* parser generated by jison 0.4.15 */ +/* + 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) + } +*/ +var parser = (function(){ +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,6],$V1=[1,7],$V2=[1,8,9],$V3=[1,12],$V4=[1,13],$V5=[1,47],$V6=[1,61],$V7=[1,62],$V8=[1,71],$V9=[1,64],$Va=[1,66],$Vb=[1,72],$Vc=[1,67],$Vd=[1,69],$Ve=[1,59],$Vf=[1,60],$Vg=[1,70],$Vh=[1,36],$Vi=[1,37],$Vj=[1,44],$Vk=[1,45],$Vl=[1,48],$Vm=[1,49],$Vn=[1,50],$Vo=[1,51],$Vp=[1,52],$Vq=[1,53],$Vr=[1,54],$Vs=[1,68],$Vt=[1,55],$Vu=[1,56],$Vv=[1,73],$Vw=[1,38],$Vx=[1,39],$Vy=[1,41],$Vz=[1,42],$VA=[1,43],$VB=[11,14,16,17,47,49,50,54,55,56,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161],$VC=[1,85],$VD=[1,89],$VE=[1,78],$VF=[1,76],$VG=[1,75],$VH=[1,77],$VI=[1,79],$VJ=[1,80],$VK=[1,81],$VL=[1,82],$VM=[1,83],$VN=[1,84],$VO=[1,86],$VP=[1,87],$VQ=[1,88],$VR=[11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$VS=[1,115],$VT=[1,107],$VU=[1,120],$VV=[1,109],$VW=[1,110],$VX=[1,121],$VY=[1,113],$VZ=[1,111],$V_=[1,114],$V$=[1,116],$V01=[1,117],$V11=[1,118],$V21=[1,119],$V31=[11,14,16,17,47,49,50,54,55,56,59,60,62,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$V41=[1,126],$V51=[1,127],$V61=[1,128],$V71=[1,129],$V81=[1,125],$V91=[11,14,16,17,47,49,50,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$Va1=[2,39],$Vb1=[1,134],$Vc1=[1,136],$Vd1=[2,52],$Ve1=[1,142],$Vf1=[1,148],$Vg1=[1,154],$Vh1=[11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$Vi1=[47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,113,157,159,160,161,162,163],$Vj1=[2,121],$Vk1=[1,159],$Vl1=[11,14,16,17,47,49,50,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,88,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$Vm1=[11,14,16,17,47,49,50,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$Vn1=[1,167],$Vo1=[11,14,16,17,47,49,50,52,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,88,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],$Vp1=[2,54],$Vq1=[1,175],$Vr1=[1,176],$Vs1=[2,62],$Vt1=[1,178],$Vu1=[47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,151,155,157,159,160,161,162,163],$Vv1=[2,15],$Vw1=[1,197],$Vx1=[16,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,151,155,157,159,160,161,162,163],$Vy1=[1,198],$Vz1=[50,75],$VA1=[2,92],$VB1=[1,229],$VC1=[1,230],$VD1=[1,228],$VE1=[11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,165,170,171,172,174,175],$VF1=[2,199],$VG1=[2,200],$VH1=[75,91],$VI1=[2,55],$VJ1=[1,245],$VK1=[2,78],$VL1=[1,247],$VM1=[16,17,67,75,80],$VN1=[2,202],$VO1=[2,204],$VP1=[11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,165,166,168,169,170,171,172,174,175],$VQ1=[11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,171],$VR1=[2,133],$VS1=[1,260],$VT1=[1,261],$VU1=[1,259],$VV1=[1,258],$VW1=[14,17,47,49,54,55,56,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,133,135,136,157,159,160,161],$VX1=[16,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,84,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,151,155,157,159,160,161,162,163],$VY1=[1,284],$VZ1=[50,75,88],$V_1=[1,295],$V$1=[16,17],$V02=[16,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,112,113,116,117,120,123,129,134,135,136,137,141,151,155,157,159,160,161,162,163],$V12=[16,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,116,117,119,120,123,129,134,135,136,137,141,151,155,157,159,160,161,162,163],$V22=[16,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163],$V32=[14,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,115,135,136,157,159,160,161,162,163,165,170,171,172,174,175],$V42=[1,337],$V52=[1,338],$V62=[49,54,55,56,59,60,62,66,69,70,71,81,89,92,150,157],$V72=[2,171],$V82=[1,343],$V92=[1,342],$Va2=[1,344],$Vb2=[1,345],$Vc2=[1,346],$Vd2=[1,352],$Ve2=[17,75],$Vf2=[16,17,112,127,128],$Vg2=[49,54,55,56,59,60,62,66,69,70,71,81,89,92,141,145,147,148,149,150,157],$Vh2=[1,370],$Vi2=[16,17,49,54,55,56,59,60,62,66,69,70,71,81,89,92,141,145,147,148,149,150,157],$Vj2=[49,54,55,56,59,60,62,66,69,70,71,81,89,92,157],$Vk2=[2,175],$Vl2=[1,372],$Vm2=[49,54,55,56,59,60,62,66,69,70,71,89,92,147,157],$Vn2=[1,380],$Vo2=[16,17,49,54,55,56,59,60,62,66,69,70,71,89,92,147,157],$Vp2=[1,382]; +var parser = {trace: function trace() { }, +yy: {}, +symbols_: {"error":2,"Root":3,"Contents":4,"Content":5,"PlainBlock":6,"MammouthBlock":7,"PlainText":8,"{{":9,"Block":10,"}}":11,"Expression":12,"SimpleStatement":13,"INDENT":14,"Lines":15,"OUTDENT":16,"LineTerminator":17,"Line":18,"OptLineTerminator":19,"Statement":20,"Function":21,"If":22,"While":23,"DoWhile":24,"For":25,"Try":26,"Switch":27,"Declare":28,"Section":29,"Class":30,"Interface":31,"Namespace":32,"Value":33,"Invocation":34,"Code":35,"Operation":36,"Assign":37,"IfExpression":38,"HereDoc":39,"Assignable":40,"Literal":41,"Parenthetical":42,"Casting":43,"Execution":44,"NamespaceRef":45,"Clone":46,"`":47,"HEREDOCTEXT":48,"(":49,")":50,"SimpleAssignable":51,"=>":52,"cType":53,"EXEC":54,"STRING":55,"CLONE":56,"Array":57,"Identifier":58,"&":59,"IDENTIFIER":60,"Accessor":61,"@":62,".":63,"..":64,"::":65,"[":66,"]":67,"AlphaNumeric":68,"BOOL":69,"NULL":70,"NUMBER":71,"ArgList":72,"OptComma":73,"Arg":74,",":75,":":76,"Arguments":77,"NEW":78,"CALL_START":79,"CALL_END":80,"FUNC":81,"FuncGlyph":82,"ParametersList":83,"->":84,"Param":85,"ParamVar":86,"USE":87,"=":88,"{":89,"KeysList":90,"}":91,"CTE":92,"Echo":93,"Break":94,"Continue":95,"Delete":96,"Include":97,"Require":98,"Return":99,"Goto":100,"ECHO":101,"SimpleArg":102,"BREAK":103,"CONTINUE":104,"DELETE":105,"INCLUDE":106,"isOnce":107,"REQUIRE":108,"ONCE":109,"RETURN":110,"IfBlock":111,"ELSE":112,"IF":113,"IfBlockExpression":114,"THEN":115,"WHILE":116,"DO":117,"TryBlock":118,"FINALLY":119,"TRY":120,"CatchBlock":121,"CATCH":122,"SWITCH":123,"Whens":124,"When":125,"WhenTok":126,"CASE":127,"WHEN":128,"FOR":129,"ForExpressions":130,"EACH":131,"AS":132,";":133,"DECLARE":134,"==>":135,"GOTO":136,"CLASS":137,"ClassBody":138,"EXTENDS":139,"IMPLEMENTS":140,"ABSTRACT":141,"ClassLine":142,"Visibility":143,"Statically":144,"FINAL":145,"Finaly":146,"PUBLIC":147,"PRIVATE":148,"PROTECTED":149,"STATIC":150,"INTERFACE":151,"InterfaceBody":152,"ExtendedList":153,"InterfaceLine":154,"NAMESPACE":155,"NamespaceName":156,"\\":157,"NamespaceRefname":158,"--":159,"++":160,"NOT":161,"-":162,"+":163,"?":164,"<->":165,"*":166,"**":167,"/":168,"%":169,"SHIFT":170,"LOGIC":171,"COMPARE":172,"ASSIGN":173,"INSTANCEOF":174,"IN":175,"$accept":0,"$end":1}, +terminals_: {2:"error",8:"PlainText",9:"{{",11:"}}",14:"INDENT",16:"OUTDENT",17:"LineTerminator",47:"`",48:"HEREDOCTEXT",49:"(",50:")",52:"=>",53:"cType",54:"EXEC",55:"STRING",56:"CLONE",59:"&",60:"IDENTIFIER",62:"@",63:".",64:"..",65:"::",66:"[",67:"]",69:"BOOL",70:"NULL",71:"NUMBER",75:",",76:":",78:"NEW",79:"CALL_START",80:"CALL_END",81:"FUNC",84:"->",87:"USE",88:"=",89:"{",91:"}",92:"CTE",101:"ECHO",103:"BREAK",104:"CONTINUE",105:"DELETE",106:"INCLUDE",108:"REQUIRE",109:"ONCE",110:"RETURN",112:"ELSE",113:"IF",115:"THEN",116:"WHILE",117:"DO",119:"FINALLY",120:"TRY",122:"CATCH",123:"SWITCH",127:"CASE",128:"WHEN",129:"FOR",131:"EACH",132:"AS",133:";",134:"DECLARE",135:"==>",136:"GOTO",137:"CLASS",139:"EXTENDS",140:"IMPLEMENTS",141:"ABSTRACT",145:"FINAL",147:"PUBLIC",148:"PRIVATE",149:"PROTECTED",150:"STATIC",151:"INTERFACE",155:"NAMESPACE",157:"\\",159:"--",160:"++",161:"NOT",162:"-",163:"+",164:"?",165:"<->",166:"*",167:"**",168:"/",169:"%",170:"SHIFT",171:"LOGIC",172:"COMPARE",173:"ASSIGN",174:"INSTANCEOF",175:"IN"}, +productions_: [0,[3,1],[4,1],[4,2],[5,1],[5,1],[6,1],[7,3],[10,1],[10,1],[10,3],[10,4],[15,1],[15,3],[15,2],[19,0],[19,1],[18,1],[18,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[33,1],[33,1],[33,1],[33,1],[33,1],[33,1],[33,1],[39,3],[42,3],[43,3],[44,2],[44,4],[46,2],[40,1],[40,1],[51,1],[51,2],[51,2],[51,2],[61,2],[61,2],[61,2],[61,3],[58,1],[41,1],[41,1],[41,1],[68,1],[68,1],[57,2],[57,4],[72,1],[72,3],[72,4],[72,4],[72,7],[72,5],[74,1],[74,3],[73,0],[73,1],[34,2],[34,2],[34,3],[77,2],[77,4],[21,2],[21,4],[21,5],[21,7],[35,6],[35,3],[82,1],[83,0],[83,1],[83,3],[85,1],[85,2],[85,3],[86,2],[86,1],[37,3],[37,5],[37,4],[90,1],[90,3],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[93,2],[94,1],[94,2],[95,1],[95,2],[96,2],[97,3],[98,3],[107,0],[107,1],[99,2],[102,1],[102,3],[22,1],[22,3],[111,3],[111,5],[38,1],[38,3],[114,4],[114,3],[23,3],[24,4],[26,1],[26,3],[118,3],[121,3],[27,6],[27,8],[124,1],[124,3],[124,2],[125,3],[126,1],[126,1],[25,3],[25,6],[130,1],[130,3],[28,2],[28,4],[29,2],[100,2],[100,2],[30,6],[30,8],[30,8],[30,7],[138,1],[138,3],[138,2],[142,3],[142,3],[142,3],[142,4],[142,2],[146,0],[146,1],[143,0],[143,1],[143,1],[143,1],[144,0],[144,1],[31,6],[31,8],[152,1],[152,3],[152,2],[154,2],[154,1],[153,1],[153,3],[32,2],[32,4],[156,1],[156,3],[45,1],[158,3],[158,3],[158,2],[36,2],[36,2],[36,2],[36,2],[36,2],[36,2],[36,2],[36,2],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3]], +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: case 12: case 70: case 93: case 103: case 142: case 150: case 161: case 179: case 184: +this.$ = [$$[$0]] +break; +case 3: +this.$ = $$[$0-1].concat($$[$0]) +break; +case 4: case 5: case 18: case 20: case 21: case 22: case 23: case 24: case 25: case 26: case 27: case 28: case 29: case 30: case 31: case 32: case 33: case 34: case 35: case 36: case 37: case 38: case 39: case 40: case 42: case 43: case 45: case 52: case 63: case 76: case 78: case 79: case 95: case 105: case 106: case 107: case 108: case 109: case 110: case 111: case 112: case 124: case 126: case 130: case 136: case 182: case 188: +this.$ = $$[$0]; +break; +case 6: +this.$ = new yy.PlainBlock(yytext) +break; +case 7: +this.$ = new yy.MammouthBlock($$[$0-1]) +break; +case 8: case 9: +this.$ = new yy.Block([new yy.Expression($$[$0])]) +break; +case 10: case 11: +this.$ = new yy.Block($$[$0-1]) +break; +case 13: case 71: case 94: +this.$ = $$[$0-2].concat($$[$0]); +break; +case 14: case 125: case 144: case 163: case 181: +this.$ = $$[$0-1]; +break; +case 15: case 91: case 146: case 147: + +break; +case 16: +false +break; +case 17: case 19: case 183: +this.$ = new yy.Expression($$[$0]) +break; +case 41: case 44: case 53: case 54: +this.$ = new yy.Value($$[$0]) +break; +case 46: +this.$ = new yy.HereDoc($$[$0-1]) +break; +case 47: +this.$ = new yy.Parens($$[$0-1]) +break; +case 48: +this.$ = new yy.Casting($$[$0-2], $$[$0]) +break; +case 49: +this.$ = new yy.Exec($$[$0]) +break; +case 50: +this.$ = new yy.Exec($$[$0-1]) +break; +case 51: +this.$ = new yy.Clone($$[$0]) +break; +case 55: case 98: +this.$ = new yy.Identifier(yytext, true, true) +break; +case 56: +$$[$0-1].add($$[$0]); this.$ = $$[$0-1] +break; +case 57: +th = new yy.Value(new yy.Identifier("this")); th.add(new yy.Access($$[$0])); this.$ = th +break; +case 58: +this.$ = new yy.Access($$[$0]) +break; +case 59: +this.$ = new yy.Access($$[$0], "..") +break; +case 60: +this.$ = new yy.Access($$[$0], "::") +break; +case 61: +this.$ = new yy.Access($$[$0-1], "[]") +break; +case 62: +this.$ = new yy.Identifier(yytext) +break; +case 64: +this.$ = new yy.Bool(yytext) +break; +case 65: +this.$ = new yy.Null() +break; +case 66: case 67: +this.$ = new yy.Literal(yytext) +break; +case 68: +this.$ = new yy.Array() +break; +case 69: +this.$ = new yy.Array($$[$0-2]) +break; +case 72: +this.$ = $$[$0-3].concat($$[$0]) +break; +case 73: case 75: case 84: +this.$ = $$[$0-2]; +break; +case 74: +this.$ = $$[$0-6].concat($$[$0-2]) +break; +case 77: +this.$ = new yy.ArrayKey($$[$0-2], $$[$0]) +break; +case 80: +this.$ = new yy.Call($$[$0-1], $$[$0]) +break; +case 81: +this.$ = new yy.NewCall($$[$0]) +break; +case 82: +this.$ = new yy.NewCall($$[$0-1], $$[$0]) +break; +case 83: case 92: +this.$ = [] +break; +case 85: +this.$ = new yy.Code([], false, true, $$[$0]) +break; +case 86: +this.$ = new yy.Code([], $$[$0], true, $$[$0-2]) +break; +case 87: +this.$ = new yy.Code($$[$0-1], false, true, $$[$0-3]) +break; +case 88: +this.$ = new yy.Code($$[$0-3], $$[$0], true, $$[$0-5]) +break; +case 89: +this.$ = new yy.Code($$[$0-3], $$[$0]) +break; +case 90: +this.$ = new yy.Code([], $$[$0]) +break; +case 96: +$$[$0].passing = true, this.$ = $$[$0] +break; +case 97: case 100: +this.$ = new yy.Assign("=", $$[$0-2], $$[$0]) +break; +case 99: +this.$ = new yy.Identifier(yytext, true) +break; +case 101: +this.$ = new yy.GetKeyAssign($$[$0-3], $$[$0]) +break; +case 102: +this.$ = new yy.Constant($$[$0-2], $$[$0]) +break; +case 104: case 143: case 151: case 162: case 180: case 185: +this.$ = $$[$0-2].concat($$[$0]) +break; +case 113: +this.$ = new yy.Echo($$[$0]) +break; +case 114: +this.$ = new yy.Break() +break; +case 115: +this.$ = new yy.Break(new yy.Literal($$[$0])) +break; +case 116: +this.$ = new yy.Continue() +break; +case 117: +this.$ = new yy.Continue(new yy.Literal($$[$0])) +break; +case 118: +this.$ = new yy.Delete($$[$0]) +break; +case 119: +this.$ = new yy.Include($$[$0], $$[$0-1]) +break; +case 120: +this.$ = new yy.Require($$[$0], $$[$0-1]) +break; +case 121: case 169: case 171: case 175: +this.$ = false +break; +case 122: case 170: +this.$ = true +break; +case 123: +this.$ = new yy.Return($$[$0]) +break; +case 127: +$$[$0-2].addElse(new yy.Else($$[$0])); this.$ = $$[$0-2] +break; +case 128: +this.$ = new yy.If($$[$0-1], $$[$0]) +break; +case 129: +$$[$0-4].addElse(new yy.ElseIf($$[$0-1], $$[$0])); this.$ = $$[$0-4] +break; +case 131: +$$[$0-2].Elses = $$[$0]; this.$ = $$[$0-2] +break; +case 132: +this.$ = new yy.If($$[$0-2], $$[$0], true) +break; +case 133: +this.$ = new yy.If($$[$0], $$[$0-2], true) +break; +case 134: +this.$ = new yy.While($$[$0-1], $$[$0]) +break; +case 135: +this.$ = new yy.DoWhile($$[$0-1], $$[$0]) +break; +case 137: +$$[$0-2].addFinally($$[$0]); this.$ = $$[$0-2] +break; +case 138: +this.$ = new yy.Try($$[$0-1], $$[$0][0], $$[$0][1]) +break; +case 139: +this.$ = [$$[$0-1], $$[$0]] +break; +case 140: +this.$ = new yy.Switch($$[$0-4], $$[$0-1]) +break; +case 141: +$$[$0-3].push(new yy.SwitchElse($$[$0-1])); this.$ = new yy.Switch($$[$0-6], $$[$0-3]) +break; +case 145: +this.$ = new yy.When($$[$0-1], $$[$0]) +break; +case 148: +this.$ = new yy.For("normal", $$[$0-1], $$[$0]) +break; +case 149: +$$[$0-1].foreach = true; this.$ = new yy.For("foreach", $$[$0-3], $$[$0-1], $$[$0]) +break; +case 152: +this.$ = new yy.Expression(new yy.Declare($$[$0])) +break; +case 153: +this.$ = new yy.Declare($$[$0-2], $$[$0]) +break; +case 154: +this.$ = new yy.Section($$[$0-1]) +break; +case 155: case 156: +this.$ = new yy.Goto($$[$0]) +break; +case 157: +this.$ = new yy.Class($$[$0-4], $$[$0-1]) +break; +case 158: +this.$ = new yy.Class($$[$0-6], $$[$0-1], $$[$0-4]) +break; +case 159: +this.$ = new yy.Class($$[$0-6], $$[$0-1], false, $$[$0-4]) +break; +case 160: +this.$ = new yy.Class($$[$0-4], $$[$0-1], false, false, true) +break; +case 164: case 165: +this.$ = new yy.ClassLine($$[$0-2], $$[$0-1], this.$ = new yy.Expression($$[$0])) +break; +case 166: +this.$ = new yy.ClassLine($$[$0-2], $$[$0-1], $$[$0]); +break; +case 167: +n = new yy.ClassLine($$[$0-2], $$[$0-1], $$[$0]); n.finaly = true; this.$ = n +break; +case 168: +$$[$0].abstract = true; this.$ = $$[$0] +break; +case 172: +this.$ = "public" +break; +case 173: +this.$ = "private" +break; +case 174: +this.$ = "protected" +break; +case 176: +this.$ = "static" +break; +case 177: +this.$ = new yy.Interface($$[$0-4], $$[$0-1]) +break; +case 178: +this.$ = new yy.Interface($$[$0-6], $$[$0-1], $$[$0-4]) +break; +case 186: +this.$ = new yy.Expression(new yy.Namespace($$[$0])) +break; +case 187: +this.$ = new yy.Namespace($$[$0-2], $$[$0]) +break; +case 189: + this.$ = $$[$0-2] + "\\" + $$[$0] +break; +case 190: +this.$ = new yy.NamespaceRef($$[$0]) +break; +case 191: case 192: +this.$ = $$[$0-2] + "\\" + $$[$0] +break; +case 193: +this.$ = "\\" + $$[$0] +break; +case 194: +this.$ = new yy.Update("--", $$[$0]) +break; +case 195: +this.$ = new yy.Update("++", $$[$0]) +break; +case 196: +this.$ = new yy.Update("--", $$[$0-1], false) +break; +case 197: +this.$ = new yy.Update("++", $$[$0-1], false) +break; +case 198: +this.$ = new yy.Unary("!", $$[$0]) +break; +case 199: +this.$ = new yy.Unary("-", $$[$0]) +break; +case 200: +this.$ = new yy.Unary("+", $$[$0]) +break; +case 201: +this.$ = new yy.Existence($$[$0-1]) +break; +case 202: +this.$ = new yy.Operation("+", $$[$0-2], $$[$0]) +break; +case 203: +this.$ = new yy.Operation("<->", $$[$0-2], $$[$0]) +break; +case 204: +this.$ = new yy.Operation("-", $$[$0-2], $$[$0]) +break; +case 205: +this.$ = new yy.Operation("*", $$[$0-2], $$[$0]) +break; +case 206: +this.$ = new yy.Operation("**", $$[$0-2], $$[$0]) +break; +case 207: +this.$ = new yy.Operation("/", $$[$0-2], $$[$0]) +break; +case 208: +this.$ = new yy.Operation("%", $$[$0-2], $$[$0]) +break; +case 209: case 210: case 212: +this.$ = new yy.Operation($$[$0-1], $$[$0-2], $$[$0]) +break; +case 211: +this.$ = new yy.Operation("&", $$[$0-2], $$[$0]) +break; +case 213: +this.$ = new yy.Assign($$[$0-1], $$[$0-2], $$[$0]) +break; +case 214: +this.$ = new yy.Operation("instanceof", $$[$0-2], $$[$0]) +break; +case 215: +this.$ = new yy.In($$[$0-2], $$[$0]) +break; +} +}, +table: [{3:1,4:2,5:3,6:4,7:5,8:$V0,9:$V1},{1:[3]},{1:[2,1],5:8,6:4,7:5,8:$V0,9:$V1},o($V2,[2,2]),o($V2,[2,4]),o($V2,[2,5]),o($V2,[2,6]),{10:9,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($V2,[2,3]),{11:[1,74]},o($VB,[2,8],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($VR,[2,9]),{12:92,13:94,15:90,18:91,20:93,21:95,22:96,23:97,24:98,25:99,26:100,27:101,28:102,29:103,30:104,31:105,32:106,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$VS,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$VT,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,111:108,113:$VU,114:46,116:$VV,117:$VW,118:112,120:$VX,123:$VY,129:$VZ,134:$V_,135:$Vt,136:$Vu,137:$V$,141:$V01,151:$V11,155:$V21,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{14:[1,122]},o($V31,[2,32],{77:123,61:124,63:$V41,64:$V51,65:$V61,66:$V71,79:$V81}),o($VR,[2,33]),o($VR,[2,34]),o($VR,[2,35]),o($VR,[2,36]),o($VR,[2,37]),o($VR,[2,38]),o($VR,[2,105]),o($VR,[2,106]),o($VR,[2,107]),o($VR,[2,108]),o($VR,[2,109]),o($VR,[2,110]),o($VR,[2,111]),o($VR,[2,112]),o($V91,$Va1,{88:[1,130]}),o($V91,[2,40]),o($V91,[2,41]),o($V91,[2,42]),o($V91,[2,43]),o($V91,[2,44]),o($V91,[2,45]),{33:131,40:132,41:30,42:31,43:32,44:33,45:34,46:35,49:$V6,51:133,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,157:$Vv,158:63},{49:$Vb1,82:135,84:$Vc1},{12:137,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:138,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o([11,14,16,17,47,49,50,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,88,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,161,162,163,164,165,166,167,168,169,170,171,172,174,175],$Vd1,{52:$Ve1,159:[1,139],160:[1,140],173:[1,141]}),{12:143,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:144,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:145,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{58:147,60:$Vf1,90:146},{58:149,60:$Vf1},o([11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],[2,130],{112:[1,150]}),{48:[1,151]},{12:153,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$Vg1,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,102:152,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vh1,[2,114],{71:[1,155]}),o($Vh1,[2,116],{71:[1,156]}),{12:153,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$Vg1,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,102:157,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vi1,$Vj1,{107:158,109:$Vk1}),o($Vi1,$Vj1,{107:160,109:$Vk1}),{12:153,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$Vg1,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,102:161,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{60:[1,162]},{60:[1,163]},o($Vl1,[2,53]),o($V91,[2,63]),o($V91,[2,64]),o($V91,[2,65]),{12:164,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{49:[1,166],55:[1,165]},o($Vm1,[2,190],{157:$Vn1}),{33:168,40:132,41:30,42:31,43:32,44:33,45:34,46:35,49:$V6,51:133,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,157:$Vv,158:63},o($Vo1,$Vp1),{60:[1,169]},{58:170,60:$Vf1},{12:171,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:177,14:$Vq1,17:$Vr1,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,67:[1,172],68:58,69:$Ve,70:$Vf,71:$Vg,72:173,74:174,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($V91,[2,66]),o($V91,[2,67]),o([11,14,16,17,47,49,50,52,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,88,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],$Vs1,{157:$Vt1}),{60:[1,180],157:$Vv,158:179},o($V2,[2,7]),o($VR,[2,201]),{12:181,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:182,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:183,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:184,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:185,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:186,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:187,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:188,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:189,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:190,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:191,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:192,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:193,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:194,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vu1,$Vv1,{19:196,16:[1,195],17:$Vw1}),o($Vx1,[2,12]),o([16,17,47,49,54,55,56,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,116,117,120,123,129,134,135,136,137,141,151,155,157,159,160,161],[2,17],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($Vx1,[2,18]),o($Vx1,[2,19]),o($Vx1,[2,20]),o($Vx1,[2,21]),o($Vx1,[2,22]),o($Vx1,[2,23]),o($Vx1,[2,24]),o($Vx1,[2,25]),o($Vx1,[2,26]),o($Vx1,[2,27]),o($Vx1,[2,28]),o($Vx1,[2,29]),o($Vx1,[2,30]),o($Vx1,[2,31]),{49:$Vb1,60:$Vy1,82:135,84:$Vc1},o($Vx1,[2,126],{112:[1,199]}),{12:200,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{116:[1,201]},{12:204,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,130:202,131:[1,203],157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vx1,[2,136],{119:[1,205]}),{12:206,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:153,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$Vg1,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,102:207,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o([16,17,47,49,52,54,55,56,59,60,62,63,64,65,66,69,70,71,78,79,81,88,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,151,155,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],$Vs1,{76:[1,208],157:$Vt1}),{60:[1,209]},{137:[1,210]},{60:[1,211]},{60:[1,213],156:212},{12:214,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{10:215,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:92,13:94,15:216,18:91,20:93,21:95,22:96,23:97,24:98,25:99,26:100,27:101,28:102,29:103,30:104,31:105,32:106,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$VS,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$VT,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,111:108,113:$VU,114:46,116:$VV,117:$VW,118:112,120:$VX,123:$VY,129:$VZ,134:$V_,135:$Vt,136:$Vu,137:$V$,141:$V01,151:$V11,155:$V21,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VR,[2,80]),o($Vo1,[2,56]),{12:177,14:$Vq1,17:$Vr1,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,72:218,74:174,78:$Vh,80:[1,217],81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{58:219,60:$Vf1},{58:220,60:$Vf1},{58:221,60:$Vf1},{12:222,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:223,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($V31,[2,81],{61:124,77:224,63:$V41,64:$V51,65:$V61,66:$V71,79:$V81}),o($V91,$Va1),o($Vl1,$Vd1,{52:$Ve1}),o($Vz1,$VA1,{83:225,85:226,86:227,59:$VB1,60:$VC1,87:$VD1}),{10:231,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o([14,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,135,136,157,159,160,161,162,163],[2,91]),o($VR,[2,194]),o($VR,[2,195]),o($VR,[2,196]),o($VR,[2,197]),{12:232,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{53:[1,233]},o($VE1,[2,198],{164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o($VE1,$VF1,{164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o($VE1,$VG1,{164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),{75:[1,235],91:[1,234]},o($VH1,[2,103]),o([11,14,16,17,47,49,50,52,54,55,56,59,60,62,63,64,65,66,67,69,70,71,75,76,78,79,80,81,84,88,89,91,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],$Vs1),{88:[1,236]},{12:237,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{47:[1,238]},o($VR,[2,113]),o($VB,[2,124],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),{12:239,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VR,[2,115]),o($VR,[2,117]),o($VR,[2,118]),{12:153,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$Vg1,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,102:240,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vi1,[2,122]),{12:153,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$Vg1,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,102:241,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VR,[2,123]),o($VR,[2,155]),o($VR,[2,156]),{50:[1,242],59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($V91,[2,49]),{55:[1,243]},{60:[1,244]},o([11,14,16,17,47,49,50,54,55,56,59,60,62,67,69,70,71,75,76,78,79,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175],[2,51],{61:124,63:$V41,64:$V51,65:$V61,66:$V71}),o($Vo1,$VI1),o($Vo1,[2,57]),{59:$VC,113:$VD,115:$VJ1,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($Vl1,[2,68]),o([17,67],$VK1,{73:246,75:$VL1}),o($VM1,[2,70]),{12:177,14:$Vq1,17:$Vr1,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,72:248,74:174,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{14:[1,249]},o($VM1,[2,76],{59:$VC,76:[1,250],113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),{60:[1,251]},o($Vm1,[2,193],{157:$Vn1}),{157:$Vt1},o($VE1,$VN1,{164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o($VE1,[2,203],{164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o($VE1,$VO1,{164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o($VP1,[2,205],{164:$VG,167:$VJ}),o($VP1,[2,206],{164:$VG,167:$VJ}),o($VP1,[2,207],{164:$VG,167:$VJ}),o($VP1,[2,208],{164:$VG,167:$VJ}),o([11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,170,171,172,174,175],[2,209],{162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL}),o($VQ1,[2,210],{162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,172:$VO,174:$VP,175:$VQ}),o($VQ1,[2,211],{162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,172:$VO,174:$VP,175:$VQ}),o([11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,171,172],[2,212],{162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,174:$VP,175:$VQ}),o([11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,171,172,174,175],[2,214],{162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM}),o([11,14,16,17,47,49,50,54,55,56,59,60,62,66,67,69,70,71,75,76,78,80,81,84,89,92,101,103,104,105,106,108,110,112,113,115,116,117,119,120,122,123,127,128,129,132,133,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,171,172,175],[2,215],{162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,174:$VP}),o($VB,$VR1,{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($VR,[2,10]),{12:92,13:94,18:252,20:93,21:95,22:96,23:97,24:98,25:99,26:100,27:101,28:102,29:103,30:104,31:105,32:106,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$VS,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$VT,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,111:108,113:$VU,114:46,116:$VV,117:$VW,118:112,120:$VX,123:$VY,129:$VZ,134:$V_,135:$Vt,136:$Vu,137:$V$,141:$V01,151:$V11,155:$V21,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vx1,[2,14]),o([16,17,47,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,145,147,148,149,150,151,155,157,159,160,161,162,163],[2,85],{82:253,49:[1,254],84:$Vc1}),{10:255,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:[1,256],114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{10:257,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$VS1,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$VT1,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$VU1,163:$VV1,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},{12:262,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{10:263,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,133:[1,264],135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:265,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VW1,[2,150],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),{10:266,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{17:[1,267],59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($Vx1,[2,152],{84:[1,268]}),o($Vx1,[2,154]),{17:[1,269],139:[1,270],140:[1,271]},{60:[1,272]},{17:[1,273],139:[1,274]},o([16,17,47,49,54,55,56,59,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,113,116,117,120,123,129,134,135,136,137,141,151,155,159,160,161,162,163],[2,186],{84:[1,275],157:[1,276]}),o($VX1,[2,188]),{10:277,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$VS1,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$VT1,114:46,115:$VJ1,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$VU1,163:$VV1,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},{121:278,122:[1,279]},o($Vu1,$Vv1,{19:196,16:[1,280],17:$Vw1}),o($VR,[2,83]),o([17,80],$VK1,{73:281,75:$VL1}),o($Vo1,[2,58]),o($Vo1,[2,59]),o($Vo1,[2,60]),{59:$VC,67:[1,282],113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($VB,[2,100],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($VR,[2,82]),{50:[1,283],75:$VY1},o($Vz1,[2,93]),o($Vz1,[2,95],{88:[1,285]}),{59:$VB1,60:$VC1,86:286},{60:[1,287]},o($VZ1,[2,99]),o($VR,[2,90]),o($VB,[2,213],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($V91,[2,48]),{88:[1,288]},{58:289,60:$Vf1},{12:290,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VB,[2,131],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($VR,[2,46]),{50:[1,291],59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($VR,[2,119]),o($VR,[2,120]),o($V91,[2,47]),{50:[1,292]},o($V91,[2,192]),{12:293,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{17:$V_1,67:[1,294]},o([16,17,67,80],[2,79],{33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,51:40,114:46,57:57,68:58,158:63,58:65,12:177,74:296,47:$V5,49:$V6,54:$V7,55:$V8,56:$V9,59:$Va,60:$Vb,62:$Vc,66:$Vd,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,157:$Vv,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA}),o($V$1,$VK1,{73:297,75:$VL1}),{12:177,14:$Vq1,17:$Vr1,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,72:298,74:174,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:299,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($V91,[2,191]),o($Vx1,[2,13]),{10:300,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vz1,$VA1,{85:226,86:227,83:301,59:$VB1,60:$VC1,87:$VD1}),o($Vx1,[2,127]),{12:302,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vx1,[2,134]),{12:303,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:304,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:190,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:[1,305],62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{12:306,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{10:307,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$VS1,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$VT1,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$VU1,163:$VV1,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($Vx1,[2,148]),{12:308,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{59:$VC,113:$VD,132:[1,309],162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($Vx1,[2,137]),{14:[1,310]},{10:311,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{14:[1,312]},{60:[1,313]},{60:[1,314]},{17:[1,315]},{14:[1,316]},{60:[1,318],153:317},{10:319,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{60:[1,320]},o($V02,[2,128]),o($V12,[2,138]),{58:321,60:$Vf1},o($VR,[2,11]),{17:$V_1,80:[1,322]},o($Vo1,[2,61]),{82:323,84:$Vc1},{59:$VB1,60:$VC1,85:324,86:227,87:$VD1},{12:325,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vz1,[2,96]),o($VZ1,[2,98]),{12:326,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VH1,[2,104]),o($VB,[2,102],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($V91,[2,125]),o($V91,[2,50]),o($VB,[2,132],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($Vl1,[2,69]),{12:177,14:[1,328],33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,74:327,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VM1,[2,71]),{16:[1,329],17:$V_1},o($V$1,$VK1,{73:330,75:$VL1}),o($VM1,[2,77],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($V22,[2,86]),{50:[1,331],75:$VY1},{10:332,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$VS1,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$VT1,114:46,115:$VJ1,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$VU1,163:$VV1,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($V32,$VN1,{16:$VG1,112:$VG1,116:$VG1,117:$VG1,120:$VG1,123:$VG1,127:$VG1,128:$VG1,129:$VG1,134:$VG1,137:$VG1,141:$VG1,151:$VG1,155:$VG1,164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o($V32,$VO1,{16:$VF1,112:$VF1,116:$VF1,117:$VF1,120:$VF1,123:$VF1,127:$VF1,128:$VF1,129:$VF1,134:$VF1,137:$VF1,141:$VF1,151:$VF1,155:$VF1,164:$VG,166:$VI,167:$VJ,168:$VK,169:$VL}),o([16,17,47,49,52,54,55,56,59,60,62,63,64,65,66,69,70,71,78,79,81,88,89,92,101,103,104,105,106,108,110,112,113,116,117,120,123,127,128,129,134,135,136,137,141,151,155,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175],$VI1,{14:$Vs1,115:$Vs1,157:$Vt1}),o([14,17,47,49,54,55,56,60,62,66,69,70,71,78,81,89,92,101,103,104,105,106,108,110,112,135,136,157,159,160,161],$VR1,{59:$VC,113:$VD,115:$VJ1,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($Vx1,[2,135]),o($VW1,[2,151],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),{12:333,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{124:334,125:335,126:336,127:$V42,128:$V52},o($Vx1,[2,153]),o($V62,$V72,{138:339,142:340,143:341,141:$V82,145:$V92,147:$Va2,148:$Vb2,149:$Vc2}),{17:[1,347]},{17:[1,348]},{14:[1,349]},{33:354,37:353,40:29,41:30,42:31,43:32,44:33,45:34,46:35,49:$V6,51:133,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,89:$Vj,92:$Vk,147:$Vd2,152:350,154:351,157:$Vv,158:63},{17:[1,355],75:[1,356]},o($Ve2,[2,184]),o($Vx1,[2,187]),o($VX1,[2,189]),{10:357,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VR,[2,84]),{10:358,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vz1,[2,94]),o($Vz1,[2,97],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($VB,[2,101],{59:$VC,113:$VD,162:$VE,163:$VF,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ}),o($VM1,[2,72]),{12:177,14:$Vq1,17:$Vr1,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,72:359,74:174,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($VM1,[2,73]),{16:[1,360],17:$V_1},o($V22,[2,87],{82:361,84:$Vc1}),o($V02,[2,129]),{10:362,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$VS1,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$VT1,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$VU1,163:$VV1,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o([127,128],$Vv1,{19:365,16:[1,363],17:[1,366],112:[1,364]}),o($Vf2,[2,142]),{12:367,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,113:$Vs,114:46,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vi1,[2,146]),o($Vi1,[2,147]),o($Vg2,$Vv1,{19:369,16:[1,368],17:$Vh2}),o($Vi2,[2,161]),o($Vj2,$Vk2,{144:371,150:$Vl2}),o([81,150],$V72,{143:373,147:$Va2,148:$Vb2,149:$Vc2}),o($V62,$V72,{143:341,142:374,141:$V82,145:$V92,147:$Va2,148:$Vb2,149:$Vc2}),o($V62,[2,172]),o($V62,[2,173]),o($V62,[2,174]),{14:[1,375]},{14:[1,376]},o($V62,$V72,{142:340,143:341,138:377,141:$V82,145:$V92,147:$Va2,148:$Vb2,149:$Vc2}),o($Vm2,$Vv1,{19:379,16:[1,378],17:$Vn2}),o($Vo2,[2,179]),{21:381,81:$Vp2},o($Vo2,[2,183]),{61:124,63:$V41,64:$V51,65:$V61,66:$V71},{14:[1,383]},{60:[1,384]},o($V12,[2,139]),o($VR,[2,89]),o($V$1,$VK1,{73:385,75:$VL1}),o($VM1,[2,75]),{10:386,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},o($Vx1,[2,149]),o($Vx1,[2,140]),{10:387,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$Vs,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$Vz,163:$VA},{125:388,126:336,127:$V42,128:$V52},o($Vf2,[2,144]),{10:389,12:10,13:11,14:$V3,17:$V4,33:14,34:15,35:16,36:17,37:18,38:19,39:20,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:$V5,49:$V6,51:40,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$VS1,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,78:$Vh,81:$Vi,89:$Vj,92:$Vk,93:21,94:22,95:23,96:24,97:25,98:26,99:27,100:28,101:$Vl,103:$Vm,104:$Vn,105:$Vo,106:$Vp,108:$Vq,110:$Vr,113:$VT1,114:46,135:$Vt,136:$Vu,157:$Vv,158:63,159:$Vw,160:$Vx,161:$Vy,162:$VU1,163:$VV1,164:$VG,165:$VH,166:$VI,167:$VJ,168:$VK,169:$VL,170:$VM,171:$VN,172:$VO,174:$VP,175:$VQ},o($Vx1,[2,157]),o($V62,$V72,{143:341,142:390,141:$V82,145:$V92,147:$Va2,148:$Vb2,149:$Vc2}),o($Vi2,[2,163]),{21:393,33:354,37:392,40:29,41:30,42:31,43:32,44:33,45:34,46:35,49:$V6,51:133,54:$V7,55:$V8,56:$V9,57:57,58:391,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,81:$Vp2,89:$Vj,92:$Vk,157:$Vv,158:63},o($Vj2,[2,176]),{81:$Vk2,144:394,150:$Vl2},o($Vi2,[2,168]),o($V62,$V72,{142:340,143:341,138:395,141:$V82,145:$V92,147:$Va2,148:$Vb2,149:$Vc2}),o($V62,$V72,{142:340,143:341,138:396,141:$V82,145:$V92,147:$Va2,148:$Vb2,149:$Vc2}),o($Vg2,$Vv1,{19:369,16:[1,397],17:$Vh2}),o($Vx1,[2,177]),{33:354,37:353,40:29,41:30,42:31,43:32,44:33,45:34,46:35,49:$V6,51:133,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,89:$Vj,92:$Vk,147:$Vd2,154:398,157:$Vv,158:63},o($Vo2,[2,181]),o($Vo2,[2,182]),{60:$Vy1},{33:354,37:353,40:29,41:30,42:31,43:32,44:33,45:34,46:35,49:$V6,51:133,54:$V7,55:$V8,56:$V9,57:57,58:65,59:$Va,60:$Vb,62:$Vc,66:$Vd,68:58,69:$Ve,70:$Vf,71:$Vg,89:$Vj,92:$Vk,147:$Vd2,152:399,154:351,157:$Vv,158:63},o($Ve2,[2,185]),{16:[1,400],17:$V_1},o($V22,[2,88]),{16:[1,401]},o($Vf2,[2,143]),o($Vf2,[2,145]),o($Vi2,[2,162]),o($Vi2,[2,164],{52:$Vp1,63:$Vp1,64:$Vp1,65:$Vp1,88:$Vp1}),o($Vi2,[2,165]),o($Vi2,[2,166]),{21:402,81:$Vp2},o($Vg2,$Vv1,{19:369,16:[1,403],17:$Vh2}),o($Vg2,$Vv1,{19:369,16:[1,404],17:$Vh2}),o($Vx1,[2,160]),o($Vo2,[2,180]),o($Vm2,$Vv1,{19:379,16:[1,405],17:$Vn2}),o($VM1,[2,74]),o($Vx1,[2,141]),o($Vi2,[2,167]),o($Vx1,[2,158]),o($Vx1,[2,159]),o($Vx1,[2,178])], +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], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer; + sharedState.yy.parser = this; + if (typeof lexer.yylloc == 'undefined') { + lexer.yylloc = {}; + } + var yyloc = lexer.yylloc; + lstack.push(yyloc); + var ranges = lexer.options && lexer.options.ranges; + if (typeof sharedState.yy.parseError === 'function') { + this.parseError = sharedState.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; + } + _token_stack: + function lex() { + var token; + token = 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 (lexer.showPosition) { + errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + 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: lexer.match, + token: this.terminals_[symbol] || symbol, + line: 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(lexer.yytext); + lstack.push(lexer.yylloc); + stack.push(action[1]); + symbol = null; + if (!preErrorSymbol) { + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = 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, + sharedState.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; +}}; + +function Parser () { + this.yy = {}; +} +Parser.prototype = parser;parser.Parser = Parser; +return new Parser; +})(); + + +if (typeof require !== 'undefined' && typeof exports !== 'undefined') { +exports.parser = parser; +exports.Parser = parser.Parser; +exports.parse = function () { return parser.parse.apply(parser, arguments); }; +exports.main = function commonjsMain(args) { + if (!args[1]) { + console.log('Usage: '+args[0]+' FILE'); + process.exit(1); + } + var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8"); + return exports.parser.parse(source); +}; +if (typeof module !== 'undefined' && require.main === module) { + exports.main(process.argv.slice(1)); +} +} \ No newline at end of file diff --git a/lib/rewriter.js b/lib/rewriter.js new file mode 100644 index 0000000..13cde94 --- /dev/null +++ b/lib/rewriter.js @@ -0,0 +1,488 @@ +// Generated by CoffeeScript 1.7.1 +(function() { + var helpers, nodes; + + nodes = require('./nodes'); + + helpers = require('./helpers'); + + exports.rewrite = function(tree, context) { + var ADD, IdCounter, UseSuperMammouth, compile, doc, php, _i, _len; + IdCounter = new helpers.IdCounter; + UseSuperMammouth = false; + php = ''; + ADD = function(string) { + return php += string; + }; + compile = function(element) { + var ID, InElement, Scase, arg, elem, elsei, expression, ext, i, key, line, lr, node, parameter, propertie, r, value, _i, _j, _k, _l, _len, _len1, _len10, _len11, _len12, _len2, _len3, _len4, _len5, _len6, _len7, _len8, _len9, _m, _n, _o, _p, _q, _r, _ref, _ref1, _ref10, _ref11, _ref12, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _s, _t, _u; + switch (element.type) { + case 'Block': + if (element.nodes[element.nodes.length - 1].type === 'BlankLine') { + element.nodes.pop(); + } + if (element.nodes.length === 1 && element.nodes[0].type === 'Expression') { + r = ' ' + compile(element.nodes[0]) + ' '; + return r; + } else { + r = ''; + _ref = element.nodes; + for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { + node = _ref[i]; + r += compile(node); + if (i !== element.nodes.length - 1) { + r += '\n'; + } + } + return '\n' + r + '\n'; + } + break; + case 'Expression': + return compile(element.expression) + ';'; + case 'Value': + if (element.properties.length > 0) { + r = compile(element.value); + _ref1 = element.properties; + for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { + propertie = _ref1[_j]; + switch (propertie.method) { + case '->': + case '.': + r += "->" + propertie.value.name; + break; + case '::': + case '..': + r += '::' + propertie.value.name; + break; + case '[]': + r += '[' + compile(propertie.value) + ']'; + } + } + return r; + } else { + return compile(element.value); + } + break; + case 'Parens': + return '(' + compile(element.expression) + ')'; + case 'Identifier': + if (element.as_arguments) { + r = '$' + element.name; + } else { + r = context.Identify(element.name); + } + if (element.passing) { + r = '&' + r; + } + return r; + case 'Literal': + if (typeof element.value === 'number') { + return element.value; + } else { + return element.value; + } + break; + case 'Bool': + if (element.value) { + return 'TRUE'; + } else { + return 'FALSE'; + } + break; + case 'Null': + return 'NULL'; + case 'Array': + r = 'array('; + _ref2 = element.elements; + for (i = _k = 0, _len2 = _ref2.length; _k < _len2; i = ++_k) { + elem = _ref2[i]; + if (elem.type === 'ArrayKey') { + r += compile(elem.key) + ' => ' + compile(elem.value); + } else { + r += compile(elem); + } + if (i !== element.elements.length - 1) { + r += ', '; + } + } + r += ')'; + return r; + case 'Call': + r = compile(element.variable) + '('; + _ref3 = element["arguments"]; + for (i = _l = 0, _len3 = _ref3.length; _l < _len3; i = ++_l) { + arg = _ref3[i]; + r += compile(arg); + if (i !== element["arguments"].length - 1) { + r += ', '; + } + } + r += ')'; + return r; + case 'NewCall': + r = 'new ' + compile(element.variable); + if (element["arguments"] !== false) { + r += '('; + _ref4 = element["arguments"]; + for (i = _m = 0, _len4 = _ref4.length; _m < _len4; i = ++_m) { + arg = _ref4[i]; + r += compile(arg); + if (i !== element["arguments"].length - 1) { + r += ', '; + } + } + r += ')'; + } + return r; + case 'Code': + if (element.normal) { + r = 'function ' + element.name + '('; + context.push({ + name: element.name, + type: 'function' + }); + } else { + r = 'function('; + } + _ref5 = element.parameters; + for (i = _n = 0, _len5 = _ref5.length; _n < _len5; i = ++_n) { + parameter = _ref5[i]; + if (parameter.and === true) { + r += '&' + compile(parameter); + } else { + r += compile(parameter); + } + if (i !== element.parameters.length - 1) { + r += ', '; + } + } + r += ')'; + if (element.body !== false) { + r += ' {'; + r += compile(element.body); + r += '}'; + } else { + r += ';'; + } + return r; + case 'Casting': + if (element.foreach === true) { + return compile(new nodes.Identifier(element.typec)) + ' => ' + compile(element.variable); + } else { + return '(' + element.typec + ') ' + compile(element.variable); + } + break; + case 'Exec': + return '`' + element.code + '`'; + case 'HereDoc': + return '<<') { + r = compile(element.left) + '.' + compile(element.right); + } else if (element.operator === '+') { + UseSuperMammouth = true; + r = '$Mammouth("+", ' + compile(element.left) + ', ' + compile(element.right) + ')'; + } else { + r = compile(element.left) + ' ' + element.operator + ' ' + compile(element.right); + } + return r; + case 'Assign': + r = compile(element.left) + ' ' + element.operator + ' ' + compile(element.right); + return r; + case 'GetKeyAssign': + r = ''; + _ref6 = element.keys; + for (i = _o = 0, _len6 = _ref6.length; _o < _len6; i = ++_o) { + key = _ref6[i]; + value = new nodes.Value(element.source.value); + value.add(new nodes.Access(new nodes.Literal('"' + key.name + '"'), '[]')); + if (i !== (element.keys.length - 1)) { + r += compile(new nodes.Expression(new nodes.Assign("=", key, value))); + r += '\n'; + } else { + r += compile(new nodes.Assign("=", key, value)); + } + } + return r; + case 'Constant': + context.push({ + name: element.left.name, + type: 'cte' + }); + return 'const ' + compile(element.left) + ' = ' + compile(element.right); + case 'Unary': + r = element.operator; + r += compile(element.expression); + return r; + case 'Update': + r = compile(element.expression); + r = !element.prefix ? r + element.operator : element.operator + r; + return r; + case 'Existence': + r = 'isset(' + compile(element.expression) + ')'; + return r; + case 'In': + r = '$Mammouth("in_array", ' + compile(element.left) + ', ' + compile(element.right) + ')'; + return r; + case 'Echo': + return 'echo ' + compile(element.value); + case 'Delete': + return 'unset(' + compile(element.value) + ')'; + case 'Include': + if (element.once) { + r = 'include_once '; + } else { + r = 'include '; + } + r += compile(element.path); + return r; + case 'Require': + if (element.once) { + r = 'require_once '; + } else { + r = 'require '; + } + r += compile(element.path); + return r; + case 'Break': + r = 'break'; + if (element.arg !== false) { + r += ' ' + compile(element.arg); + } + return r; + case 'Continue': + r = 'continue'; + if (element.arg !== false) { + r += ' ' + compile(element.arg); + } + return r; + case 'Return': + return 'return ' + compile(element.value); + case 'Declare': + r = 'declare(' + compile(element.expression) + ')'; + if (element.script !== false) { + r += ' {'; + r += compile(element.script); + r += '}'; + } + return r; + case 'Goto': + return 'goto ' + element.section; + case 'If': + if (element.as_expression) { + r = compile(element.condition) + ' ? ' + compile(element.body); + if (element.Elses === false) { + r += ' : NULL'; + } else { + r += ' : ' + compile(element.Elses); + } + return r; + } else { + r = 'if(' + compile(element.condition) + ') {'; + r += compile(element.body); + r += '}'; + _ref7 = element.Elses; + for (_p = 0, _len7 = _ref7.length; _p < _len7; _p++) { + elsei = _ref7[_p]; + if (elsei.type === 'Else') { + r += ' else {'; + r += compile(elsei.body); + r += '}'; + } else if (elsei.type === 'ElseIf') { + r += ' elseif(' + compile(elsei.condition) + ') {'; + r += compile(elsei.body); + r += '}'; + } + } + return r; + } + break; + case 'While': + r = 'while(' + compile(element.test) + ') {'; + r += compile(element.body); + r += '}'; + return r; + case 'DoWhile': + r = 'do {'; + r += compile(element.body); + r += '} while (' + compile(element.test) + ');'; + return r; + case 'Try': + r = 'try {'; + r += compile(element.TryBody); + r += '}'; + r += ' catch(Exception ' + compile(element.CatchIdentifier) + ') {'; + r += compile(element.CatchBody); + r += '}'; + if (element.Finally) { + r += ' finally {'; + r += compile(element.FinallyBody); + r += '}'; + } + return r; + case 'Switch': + r = 'switch (' + compile(element.variable) + ') {\n'; + _ref8 = element.cases; + for (_q = 0, _len8 = _ref8.length; _q < _len8; _q++) { + Scase = _ref8[_q]; + if (Scase.type === 'When') { + r += 'case ' + compile(Scase.condition) + ': {'; + Scase.body.nodes.push(new nodes.Expression(new nodes.Break)); + r += compile(Scase.body); + r += '}'; + } else if (Scase.type === 'SwitchElse') { + r += 'default: {'; + r += compile(Scase.body); + r += '}'; + } + r += '\n'; + } + r += '}'; + return r; + case 'For': + if (element.method === 'normal' && element.expressions.length > 1) { + r = 'for('; + _ref9 = element.expressions; + for (i = _r = 0, _len9 = _ref9.length; _r < _len9; i = ++_r) { + expression = _ref9[i]; + if (expression.type === 'In') { + expression.each = true; + } + r += compile(expression); + if (i !== element.expressions.length) { + r += '; '; + } + } + r += ') {'; + r += compile(element.body); + r += '}'; + } else if (element.method === 'normal' && element.expressions.length === 1 && element.expressions[0].type === 'In') { + InElement = element.expressions[0]; + r = 'for('; + ID = IdCounter.get(); + r += compile(ID) + ' = 0; '; + r += compile(ID) + ' < count(' + compile(InElement.right) + '); '; + r += compile(ID) + '++'; + r += ') {'; + element.body.nodes.unshift(new nodes.Expression(new nodes.Assign('=', InElement.left, new nodes.Value(InElement.right, [new nodes.Access(ID, '[]')])))); + r += compile(element.body); + r += '}'; + } else if (element.method === 'foreach') { + r = 'foreach('; + r += compile(element.left); + r += ' as '; + r += compile(element.right); + r += ') {'; + r += compile(element.body); + r += '}'; + } + return r; + case 'Section': + return element.name + ':'; + case 'Class': + r = 'class ' + element.name; + context.push({ + name: element.name, + type: 'class' + }); + if (element.abstract === true) { + r = 'abstract ' + r; + } + if (element.extendable !== false) { + r += ' extends ' + element.extendable; + } + if (element.implement !== false) { + r += ' implements ' + element.implement; + } + r += ' {\n'; + _ref10 = element.body; + for (i = _s = 0, _len10 = _ref10.length; _s < _len10; i = ++_s) { + line = _ref10[i]; + lr = ''; + if (line.visibility !== false) { + lr += line.visibility + ' '; + } + if (line.statically !== false) { + lr += line.statically + ' '; + } + lr += compile(line.element); + if (line.finaly === true) { + lr = 'final ' + lr; + } + if (line.abstract === true) { + lr = 'abstract ' + lr; + } + r += lr; + if (i !== (element.body.length - 1)) { + r += '\n'; + } + } + r += '\n}'; + return r; + case 'Interface': + r = 'interface ' + element.name; + context.push({ + name: element.name, + type: 'interface' + }); + if (element.extendable !== false) { + r += ' extends '; + _ref11 = element.extendable; + for (i = _t = 0, _len11 = _ref11.length; _t < _len11; i = ++_t) { + ext = _ref11[i]; + r += ext; + if (i !== (element.extendable.length - 1)) { + r += ', '; + } + } + } + r += ' {\n'; + _ref12 = element.body; + for (i = _u = 0, _len12 = _ref12.length; _u < _len12; i = ++_u) { + line = _ref12[i]; + lr = ''; + if (line.type === 'Code') { + lr += 'public ' + compile(line); + } else { + lr += compile(line); + } + r += lr; + if (i !== (element.body.length - 1)) { + r += '\n'; + } + } + return r += '\n}'; + case 'Namespace': + r = 'namespace ' + element.name; + if (element.body !== false) { + r += ' {'; + r += compile(element.body); + r += '}'; + } + return r; + case 'NamespaceRef': + return element.path; + } + }; + for (_i = 0, _len = tree.length; _i < _len; _i++) { + doc = tree[_i]; + switch (doc.type) { + case 'PlainBlock': + ADD(doc.toPHP()); + break; + case 'MammouthBlock': + ADD(''); + } + } + return php; + }; + +}).call(this); diff --git a/package.json b/package.json index 0f18188..e84cae2 100644 --- a/package.json +++ b/package.json @@ -1,19 +1,23 @@ { "name": "mammouth", - "version": "0.2.3", + "version": "2.0.0", "description": "Unfancy PHP", "author": { "name": "Wael Amine Boutglay", "email": "btwael@gmail.com" }, "bin": "./bin/mammouth", - "main": "extras/mammouth-nodejs.js", + "main": "extras/mammouth.js", "repository": { "type": "git", "url": "git://github.com/btwael/mammouth.git" }, "dependencies": { - "commander": "latest", - "pegjs": "0.7.0" + "lex": "latest", + "commander": "latest" + }, + "devDependencies": { + "jison": "latest", + "node-minify": "latest" } -} +} \ No newline at end of file diff --git a/src/LineTerminator.js b/src/LineTerminator.js deleted file mode 100644 index 9f7f7e4..0000000 --- a/src/LineTerminator.js +++ /dev/null @@ -1,593 +0,0 @@ -mammouth.LineTerminatorParser = (function(){ - /* - * Generated by PEG.js 0.7.0. - * - * http://pegjs.majda.cz/ - */ - - function quote(s) { - /* - * ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a - * string literal except for the closing quote character, backslash, - * carriage return, line separator, paragraph separator, and line feed. - * Any character may appear in the form of an escape sequence. - * - * For portability, we also escape escape all control and non-ASCII - * characters. Note that "\0" and "\v" escape sequences are not used - * because JSHint does not like the first and IE the second. - */ - return '"' + s - .replace(/\\/g, '\\\\') // backslash - .replace(/"/g, '\\"') // closing quote character - .replace(/\x08/g, '\\b') // backspace - .replace(/\t/g, '\\t') // horizontal tab - .replace(/\n/g, '\\n') // line feed - .replace(/\f/g, '\\f') // form feed - .replace(/\r/g, '\\r') // carriage return - .replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g, escape) - + '"'; - } - - var result = { - /* - * Parses the input with a generated parser. If the parsing is successfull, - * returns a value explicitly or implicitly specified by the grammar from - * which the parser was generated (see |PEG.buildParser|). If the parsing is - * unsuccessful, throws |PEG.parser.SyntaxError| describing the error. - */ - parse: function(input, startRule) { - var parseFunctions = { - "start": parse_start, - "LineTerminator": parse_LineTerminator, - "LineTerminatorSequence": parse_LineTerminatorSequence - }; - - if (startRule !== undefined) { - if (parseFunctions[startRule] === undefined) { - throw new Error("Invalid rule name: " + quote(startRule) + "."); - } - } else { - startRule = "start"; - } - - var pos = 0; - var reportFailures = 0; - var rightmostFailuresPos = 0; - var rightmostFailuresExpected = []; - - function padLeft(input, padding, length) { - var result = input; - - var padLength = length - input.length; - for (var i = 0; i < padLength; i++) { - result = padding + result; - } - - return result; - } - - function escape(ch) { - var charCode = ch.charCodeAt(0); - var escapeChar; - var length; - - if (charCode <= 0xFF) { - escapeChar = 'x'; - length = 2; - } else { - escapeChar = 'u'; - length = 4; - } - - return '\\' + escapeChar + padLeft(charCode.toString(16).toUpperCase(), '0', length); - } - - function matchFailed(failure) { - if (pos < rightmostFailuresPos) { - return; - } - - if (pos > rightmostFailuresPos) { - rightmostFailuresPos = pos; - rightmostFailuresExpected = []; - } - - rightmostFailuresExpected.push(failure); - } - - function parse_start() { - var result0, result1, result2, result3; - var pos0, pos1, pos2, pos3, pos4; - - pos0 = pos; - pos1 = pos; - result0 = []; - pos2 = pos; - result1 = []; - pos3 = pos; - pos4 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos4; - } - if (result2 !== null) { - if (input.length > pos) { - result3 = input.charAt(pos); - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - while (result2 !== null) { - result1.push(result2); - pos3 = pos; - pos4 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos4; - } - if (result2 !== null) { - if (input.length > pos) { - result3 = input.charAt(pos); - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } - if (result1 !== null) { - result2 = parse_LineTerminator(); - if (result2 !== null) { - result1 = [result1, result2]; - } else { - result1 = null; - pos = pos2; - } - } else { - result1 = null; - pos = pos2; - } - while (result1 !== null) { - result0.push(result1); - pos2 = pos; - result1 = []; - pos3 = pos; - pos4 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos4; - } - if (result2 !== null) { - if (input.length > pos) { - result3 = input.charAt(pos); - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - while (result2 !== null) { - result1.push(result2); - pos3 = pos; - pos4 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos4; - } - if (result2 !== null) { - if (input.length > pos) { - result3 = input.charAt(pos); - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } - if (result1 !== null) { - result2 = parse_LineTerminator(); - if (result2 !== null) { - result1 = [result1, result2]; - } else { - result1 = null; - pos = pos2; - } - } else { - result1 = null; - pos = pos2; - } - } - if (result0 !== null) { - pos2 = pos; - result1 = []; - pos3 = pos; - pos4 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos4; - } - if (result2 !== null) { - if (input.length > pos) { - result3 = input.charAt(pos); - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - while (result2 !== null) { - result1.push(result2); - pos3 = pos; - pos4 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos4; - } - if (result2 !== null) { - if (input.length > pos) { - result3 = input.charAt(pos); - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } - if (result1 !== null) { - result2 = parse_LineTerminator(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result1 = [result1, result2]; - } else { - result1 = null; - pos = pos2; - } - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, b, n) { - var line = []; - for(var i = 0; i < b.length;i++) { - var m =[]; - for(var o = 0; o < b[i][0].length; o++) { - m.push(b[i][0][o][1]); - } - line.push(m.join('')) - } - var m =[]; - for(var o = 0; o < n[0].length; o++) { - m.push(n[0][o][1]); - } - line.push(m.join('')) - return line; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_LineTerminator() { - var result0; - - if (/^[\n\x0B\r\u2028\u2029]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\n\\x0B\\r\\u2028\\u2029]"); - } - } - if (result0 === null) { - result0 = parse_LineTerminatorSequence(); - } - return result0; - } - - function parse_LineTerminatorSequence() { - var result0; - - reportFailures++; - if (input.charCodeAt(pos) === 10) { - result0 = "\n"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\n\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "\r\n") { - result0 = "\r\n"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\r\\n\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 13) { - result0 = "\r"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\r\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 8232) { - result0 = "\u2028"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\u2028\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 8233) { - result0 = "\u2029"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\u2029\""); - } - } - } - } - } - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("end of line"); - } - return result0; - } - - - function cleanupExpected(expected) { - expected.sort(); - - var lastExpected = null; - var cleanExpected = []; - for (var i = 0; i < expected.length; i++) { - if (expected[i] !== lastExpected) { - cleanExpected.push(expected[i]); - lastExpected = expected[i]; - } - } - return cleanExpected; - } - - function computeErrorPosition() { - /* - * The first idea was to use |String.split| to break the input up to the - * error position along newlines and derive the line and column from - * there. However IE's |split| implementation is so broken that it was - * enough to prevent it. - */ - - var line = 1; - var column = 1; - var seenCR = false; - - for (var i = 0; i < Math.max(pos, rightmostFailuresPos); i++) { - var ch = input.charAt(i); - if (ch === "\n") { - if (!seenCR) { line++; } - column = 1; - seenCR = false; - } else if (ch === "\r" || ch === "\u2028" || ch === "\u2029") { - line++; - column = 1; - seenCR = true; - } else { - column++; - seenCR = false; - } - } - - return { line: line, column: column }; - } - - - var result = parseFunctions[startRule](); - - /* - * The parser is now in one of the following three states: - * - * 1. The parser successfully parsed the whole input. - * - * - |result !== null| - * - |pos === input.length| - * - |rightmostFailuresExpected| may or may not contain something - * - * 2. The parser successfully parsed only a part of the input. - * - * - |result !== null| - * - |pos < input.length| - * - |rightmostFailuresExpected| may or may not contain something - * - * 3. The parser did not successfully parse any part of the input. - * - * - |result === null| - * - |pos === 0| - * - |rightmostFailuresExpected| contains at least one failure - * - * All code following this comment (including called functions) must - * handle these states. - */ - if (result === null || pos !== input.length) { - var offset = Math.max(pos, rightmostFailuresPos); - var found = offset < input.length ? input.charAt(offset) : null; - var errorPosition = computeErrorPosition(); - - throw new this.SyntaxError( - cleanupExpected(rightmostFailuresExpected), - found, - offset, - errorPosition.line, - errorPosition.column - ); - } - - return result; - }, - - /* Returns the parser source code. */ - toSource: function() { return this._source; } - }; - - /* Thrown when a parser encounters a syntax error. */ - - result.SyntaxError = function(expected, found, offset, line, column) { - function buildMessage(expected, found) { - var expectedHumanized, foundHumanized; - - switch (expected.length) { - case 0: - expectedHumanized = "end of input"; - break; - case 1: - expectedHumanized = expected[0]; - break; - default: - expectedHumanized = expected.slice(0, expected.length - 1).join(", ") - + " or " - + expected[expected.length - 1]; - } - - foundHumanized = found ? quote(found) : "end of input"; - - return "Expected " + expectedHumanized + " but " + foundHumanized + " found."; - } - - this.name = "SyntaxError"; - this.expected = expected; - this.found = found; - this.message = buildMessage(expected, found); - this.offset = offset; - this.line = line; - this.column = column; - }; - - result.SyntaxError.prototype = Error.prototype; - - return result; -})(); \ No newline at end of file diff --git a/src/LineTerminator.pegjs b/src/LineTerminator.pegjs deleted file mode 100644 index 6790c60..0000000 --- a/src/LineTerminator.pegjs +++ /dev/null @@ -1,29 +0,0 @@ -start -= b:((!LineTerminator .)* LineTerminator)* -n:((!LineTerminator .)* LineTerminator?) -{ -var line = []; -for(var i = 0; i < b.length;i++) { -var m =[]; -for(var o = 0; o < b[i][0].length; o++) { -m.push(b[i][0][o][1]); -} -line.push(m.join('')) -} -var m =[]; -for(var o = 0; o < n[0].length; o++) { -m.push(n[0][o][1]); -} -line.push(m.join('')) -return line; -} - -LineTerminator -= ([\n\v\r\u2028\u2029] / LineTerminatorSequence) - -LineTerminatorSequence "end of line" -= "\n" -/ "\r\n" -/ "\r" -/ "\u2028" // line separator -/ "\u2029" // paragraph separator \ No newline at end of file diff --git a/src/compiler.js b/src/compiler.js deleted file mode 100644 index e6f47d0..0000000 --- a/src/compiler.js +++ /dev/null @@ -1,1192 +0,0 @@ -mammouth.VERSION = '0.2.3'; -mammouth.compile = function(code) { - Tokens = mammouth.Tokens; - var Use_Slice_Function = false; - var Added_Slice_Function = false; - var Use_Len_Function = false; - var Added_Len_Function = false; - FunctionInAssignment = function(seq) { - var r = Tokens.FunctionToken; - var arguments = '('; - for (var i = 0; i < seq.right.params.length; i++) { - if( i != 0 ) { - arguments += ', ' - } - arguments += evalStatement(seq.right.params[i]); - }; - arguments += ')'; - r += arguments; - r += ' {'; - if(seq.right.body != null) { - var body = ''; - for(var j = 0; j < seq.right.body.length; j++) { - if(typeof seq.right.body[j] == 'undefined') { - body += '\n'; - } else { - seq.right.body[j].only = true; - if(typeof seq.right.body[j] == 'string') { - body += evalStatement(seq.right.body[j]); - } else { - body += evalStatement(seq.right.body[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.right.body.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - } - r += '}'; - return r; - }; - evalStatement = function(seq) { - if(typeof seq == 'string') { - return seq; - } - if(seq == null) { - return ''; - } - switch(seq.type) { - case 'embed': - return seq.content; - case 'block': - var r = ''; - for(var i = 0; i < seq.elements.length; i++) { - if(typeof seq.elements[i] == 'undefined') { - - } else { - seq.elements[i].only = true; - if(typeof seq.elements[i] == 'string') { - r += evalStatement(seq.elements[i]); - } else { - r += evalStatement(seq.elements[i]) + '\n'; - } - } - } - if(Use_Slice_Function == true && Added_Slice_Function == false) { - r = mammouth.helpers.slice_php_function + '\n' + r; - Added_Slice_Function = true; - } - if(Use_Len_Function == true && Added_Len_Function == false) { - r = mammouth.helpers.len_php_function + '\n' + r; - Added_Len_Function = true; - } - r = ''; - case 'blockwithoutbra': - var r = ''; - for(var i = 0; i < seq.elements.length; i++) { - if(typeof seq.elements[i] == 'undefined') { - r += '\n'; - } else { - seq.elements[i].only = true; - if(typeof seq.elements[i] == 'string') { - r += evalStatement(seq.elements[i]); - } else { - r += evalStatement(seq.elements[i]) + '\n'; - } - } - } - return r; - case 'NumericLiteral': - var r = seq.value; - if(seq.only==true) { - r += ';'; - } - return r; - case 'BooleanLiteral': - var r = seq.value; - if(seq.only==true) { - r += ';'; - } - return r; - case 'StringLiteral': - var r = "'" + seq.value + "'"; - if(seq.only==true) { - r += ';'; - } - return r; - case 'ArrayLiteral': - var r = 'array('; - var elements = ''; - if(seq.elements != '') { - for (var i = 0; i < seq.elements.length; i++) { - if( i != 0 ) { - elements += ', ' - } - elements += evalStatement(seq.elements[i]); - }; - } - r += elements + ')'; - if(seq.only==true) { - r += ';'; - } - return r; - case 'keyBasedArrayLiteral': - var r = 'array('; - var elements = ''; - if(seq.properties != '') { - for (var i = 0; i < seq.properties.length; i++) { - if( i != 0 ) { - elements += ', ' - } - elements += evalStatement(seq.properties[i]); - }; - } - r += elements + ')'; - if(seq.only==true) { - r += ';'; - } - return r; - case 'PropertyAssignment': - var n = ''; - if( typeof seq.name == 'string') { - n = "'" + seq.name + "'"; - } else { - n = seq.name; - } - return n + ' => ' + evalStatement(seq.value); - case 'EODLiteral': - r = '<<' + n; - } else if(seq.name.type == 'PropertyFields') { - n = '->{' + evalStatement(seq.name.name) +'}' - r = b + n; - } else { - n = '[' + evalStatement(seq.name) + ']' - r = b + n; - } - if(seq.only==true) { - r += ';'; - } - return r; - case 'NewOperator': - var r = Tokens.NewToken; - var constructor = evalStatement(seq.constructor); - var arguments = '('; - for (var i = 0; i < seq.arguments.length; i++) { - if( i != 0 ) { - arguments += ', ' - } - arguments += evalStatement(seq.arguments[i]); - }; - arguments += ')'; - r += ' ' + constructor + arguments; - if(seq.only == true) { - r += ';'; - } - return r; - case 'BinaryExpression': - if(seq.left.type == 'BinaryExpression') { - if(seq.left.operator != '.') { - seq.left.Parentheses = true; - } - } - var left = evalStatement(seq.left); - if(seq.right.type == 'BinaryExpression') { - if(seq.right.operator != '.') { - seq.right.Parentheses = true; - } - } - var right = evalStatement(seq.right); - if(seq.operator != '.') { - var operator = ' ' + seq.operator + ' '; - } else { - var operator = seq.operator; - } - var r = left + operator + right; - if(seq.Parentheses == true) { - r = '(' + r; - r += ')'; - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'PostfixExpression': - if(seq.expression.type == 'BinaryExpression') { - seq.expression.Parentheses = true; - } - var expression = evalStatement(seq.expression); - var operator = seq.operator; - var r = expression + operator; - if(seq.only == true) { - r += ';'; - } - return r; - case 'UnaryExpression': - if(seq.expression.type == 'BinaryExpression') { - seq.expression.Parentheses = true; - } - var expression = evalStatement(seq.expression); - var operator = seq.operator; - var r = operator + expression; - if(seq.only == true) { - r += ';'; - } - return r; - case 'AssignmentExpression': - var left = evalStatement(seq.left); - var right; - if(seq.right.type == 'Function') { - right = FunctionInAssignment(seq); - } else { - right = evalStatement(seq.right); - } - var operator = ' ' + seq.operator + ' '; - var r = left + operator + right; - if(seq.Parentheses == true) { - r = '(' + r; - r += ')'; - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'Function': - console.log('wael'); - var r = {right: seq} - return FunctionInAssignment(r); - case 'AssignmentExpressionOfFunction': - var left = evalStatement(seq.left); - var right = evalStatement(seq.right); - var operator = ' ' + seq.operator + ' '; - var r = left + operator + right; - if(seq.Parentheses == true) { - r = '(' + r; - r += ')'; - } - return r; - case 'ConditionalExpression': - if(seq.condition.type == 'BinaryExpression') { - seq.condition.Parentheses = true; - } - var condition = evalStatement(seq.condition); - var trueExpression = evalStatement(seq.trueExpression); - var falseExpression = evalStatement(seq.falseExpression); - var r = condition + ' ? ' + trueExpression + ' : ' + falseExpression; - if(seq.only == true) { - r += ';'; - } - return r; - case 'break': - var r = 'break' - if(seq.only == true) { - r += ';'; - } - return r; - case 'FunctionCall': - var name; - if(seq.name.type == 'PropertyAccess') { - name = evalStatement(seq.name); - } else { - name = evalStatement(seq.name.name); - } - var arguments = '('; - for (var i = 0; i < seq.arguments.length; i++) { - if( i != 0 ) { - arguments += ', ' - } - arguments += evalStatement(seq.arguments[i]); - }; - arguments += ')'; - r = name + arguments; - if(seq.only == true) { - r += ';'; - } - return r; - case 'SliceExpression': - var r = ''; - Use_Slice_Function = true; - var end = evalStatement(seq.end); - var start = evalStatement(seq.start); - if(seq.end == null) { - Use_Len_Function = true; - end = '_m_len(' + evalStatement(seq.slicer) + ')'; - } - if(seq.start == 0) { - start = 0; - } - r += '_m_slice(' + evalStatement(seq.slicer) + ', ' + start + ', ' + end + ')'; - if(seq.only == true) { - r += ';'; - } - return r; - case 'IfStatement': - var r = Tokens.IfToken; - var condition = '('; - condition += evalStatement(seq.condition); - condition += ')'; - r += condition; - r += ' {'; - var body = ''; - if(seq.ifStatement != null) { - for(var j = 0; j < seq.ifStatement.length; j++) { - if(typeof seq.ifStatement[j] == 'undefined') { - body += '\n'; - } else { - seq.ifStatement[j].only = true; - if(typeof seq.ifStatement[j] == 'string') { - body += evalStatement(seq.ifStatement[j]); - } else { - body += evalStatement(seq.ifStatement[j]) + '\n'; - } - } - } - r += '\n'; - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '') { - if(seq.ifStatement.length == 1) { - r += '\t' + pars[x] + '\n'; - } else { - r += '\t' + pars[x] + '\n'; - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - } else { - r += '\n' - } - r += '}'; - if(seq.elseifStatement != null) { - for (var i = 0; i < seq.elseifStatement.length; i++) { - r += ' ' + Tokens.ElseToken + Tokens.IfToken; - condition = '('; - condition += evalStatement(seq.elseifStatement[i].condition); - condition += ')'; - r += condition; - r += ' {'; - body = ''; - for(var j = 0; j < seq.elseifStatement[i].statement.length; j++) { - if(typeof seq.elseifStatement[i].statement[j] == 'undefined') { - body += '\n'; - } else { - seq.elseifStatement[i].statement[j].only = true; - if(typeof seq.elseifStatement[i][j] == 'string') { - body += evalStatement(seq.elseifStatement[i].statement[j]); - } else { - body += evalStatement(seq.elseifStatement[i].statement[j]) + '\n'; - } - } - } - r += '\n'; - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '') { - if(seq.elseifStatement[i].length == 1) { - r += '\t' + pars[x] + '\n'; - } else { - r += '\t' + pars[x] + '\n'; - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - r += '}'; - }; - } - if(seq.elseStatement != null) { - body = ''; - for(var j = 0; j < seq.elseStatement.length; j++) { - if(typeof seq.elseStatement[j] == 'undefined') { - body += '\n'; - } else { - seq.elseStatement[j].only = true; - if(typeof seq.elseStatement[j] == 'string') { - body += evalStatement(seq.elseStatement[j]); - } else { - body += evalStatement(seq.elseStatement[j]) + '\n'; - } - } - } - r += ' ' + Tokens.ElseToken; - r += ' {'; - r += '\n'; - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '') { - if(seq.elseStatement.length == 1) { - r += '\t' + pars[x] + '\n'; - } else { - r += '\t' + pars[x] + '\n'; - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - r += '}'; - } - return r; - case 'ForStatement': - var r = Tokens.ForToken + '('; - if(seq.initializer.type == 'BinaryExpression') { - if(seq.initializer.operator == 'of') { - seq.test = { - "type": "BinaryExpression", - "operator": "<", - "left": seq.initializer.left, - "right": { - "type": "FunctionCall", - "name": { - "type": "Variable", - "name": "count" - }, - "arguments": [ - seq.initializer.right - ] - } - }; - seq.counter = { - "type": "PostfixExpression", - "operator": "++", - "expression": { - "type": "Variable", - "name": "i" - } - }; - if(seq.statement !== null) { - seq.statement.splice(0, 0, { - "type": "AssignmentExpression", - "operator": "=", - "left": seq.initializer.left, - "right": { - "type": "PropertyAccess", - "base": seq.initializer.right, - "name": { - "type": "Variable", - "name": "i" - } - } - }); - } - seq.initializer = { - "type": "AssignmentExpression", - "operator": "=", - "left": { - "type": "Variable", - "name": "i" - }, - "right": { - "type": "NumericLiteral", - "value": 0 - } - }; - } - } - r += evalStatement(seq.initializer) + '; '; - r += evalStatement(seq.test) + '; '; - r += evalStatement(seq.counter); - r += ')'; - r += ' {'; - var body = ''; - if(seq.statement !== null) { - for(var j = 0; j < seq.statement.length; j++) { - if(typeof seq.statement[j] == 'undefined') { - body += '\n'; - } else { - seq.statement[j].only = true; - if(typeof seq.statement[j] == 'string') { - body += evalStatement(seq.statement[j]); - } else { - body += evalStatement(seq.statement[j]) + '\n'; - } - } - } - r += '\n'; - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '') { - if(seq.statement.length == 1) { - r += '\t' + pars[x] + '\n'; - } else { - r += '\t' + pars[x] + '\n'; - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - } else { - r += '\n'; - } - r += '}'; - return r; - case 'WhileStatement': - var r = Tokens.WhileToken + '('; - r += evalStatement(seq.condition); - r += ')'; - r += ' {'; - var body = ''; - for(var j = 0; j < seq.statement.length; j++) { - if(typeof seq.statement[j] == 'undefined') { - body += '\n'; - } else { - seq.statement[j].only = true; - if(typeof seq.statement[j] == 'string') { - body += evalStatement(seq.statement[j]); - } else { - body += evalStatement(seq.statement[j]) + '\n'; - } - } - } - if(seq.statement != "") { - body = ''; - for(var j = 0; j < seq.statement.length; j++) { - if(typeof seq.statement[j] == 'undefined') { - body += '\n'; - } else { - seq.statement[j].only = true; - if(typeof seq.statement[j] == 'string') { - body += evalStatement(seq.statement[j]); - } else { - body += evalStatement(seq.statement[j]) + '\n'; - } - } - } - r += '\n'; - pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.statement.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - if(x == 1) { - r += pars[x]; - } - } - } - } - r += '\n}'; - return r; - case 'SwitchStatement': - var r = Tokens.SwitchToken + '('; - r += evalStatement(seq.variable); - r += ')'; - r += ' {\n'; - var CasesBlock = ''; - for(var i = 0; i < seq.cases.length; i++) { - if(typeof seq.cases[i] != 'undefined') { - if(seq.cases[i].type == 'case') { - CasesBlock += Tokens.CaseToken + ' ' + evalStatement(seq.cases[i].value) + ':\n'; - if(seq.cases[i].statement != '') { - seq.cases[i].statement.push({ - type: 'break' - }) - var body = ''; - for(var j = 0; j < seq.cases[i].statement.length; j++) { - if(typeof seq.cases[i].statement[j] == 'undefined') { - body += '\n'; - } else { - seq.cases[i].statement[j].only = true; - if(typeof seq.cases[i].statement[j] == 'string') { - body += evalStatement(seq.cases[i].statement[j]); - } else { - body += evalStatement(seq.cases[i].statement[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - CasesBlock += '\t' + pars[x]; - } else { - if(seq.cases[i].statement.length == 1) { - CasesBlock += '\t' + pars[x]; - } else { - CasesBlock += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - CasesBlock += '\n'; - } else { - CasesBlock += pars[x]; - } - } - } - } - } - } - if(seq.elsed != '') { - CasesBlock += Tokens.DefaultToken + ':'; - seq.elsed.unshift(undefined); - var body = ''; - for(var j = 0; j < seq.elsed.length; j++) { - if(typeof seq.elsed[j] == 'undefined') { - body += '\n'; - } else { - seq.elsed[j].only = true; - if(typeof seq.elsed[j] == 'string') { - body += evalStatement(seq.elsed[j]); - } else { - body += evalStatement(seq.elsed[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - CasesBlock += '\t' + pars[x]; - } else { - if(seq.elsed.length == 1) { - CasesBlock += '\t' + pars[x]; - } else { - CasesBlock += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - CasesBlock += '\n'; - } else { - CasesBlock += pars[x]; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(CasesBlock); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.cases.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - r += '}'; - return r; - case 'TryStatement': - var r = Tokens.TryToken; - r += ' {\n'; - if(seq.TryStatement != null) { - var body = ''; - for(var j = 0; j < seq.TryStatement.length; j++) { - if(typeof seq.TryStatement[j] == 'undefined') { - body += '\n'; - } else { - seq.TryStatement[j].only = true; - if(typeof seq.TryStatement[j] == 'string') { - body += evalStatement(seq.TryStatement[j]); - } else { - body += evalStatement(seq.TryStatement[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.TryStatement.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - if(x == 1) { - r += '\n'; - } - } - } - } - r += '}' - r += ' ' + Tokens.CatchToken + '('; - r += seq.CatchErrVar.vtype + ' ' + evalStatement(seq.CatchErrVar.name); - r += ')'; - r += ' {\n'; - if(seq.CatchStatement != null) { - body = ''; - for(var j = 0; j < seq.CatchStatement.length; j++) { - if(typeof seq.CatchStatement[j] == 'undefined') { - body += '\n'; - } else { - seq.CatchStatement[j].only = true; - if(typeof seq.CatchStatement[j] == 'string') { - body += evalStatement(seq.CatchStatement[j]); - } else { - body += evalStatement(seq.CatchStatement[j]) + '\n'; - } - } - } - pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.CatchStatement.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - if(x == 1) { - r += '\n'; - } - } - } - } - r += '}' - if(seq.FinallyStatemnt != null) { - r += ' ' + Tokens.FinallyToken; - r += ' {\n'; - body = ''; - for(var j = 0; j < seq.FinallyStatemnt.length; j++) { - if(typeof seq.FinallyStatemnt[j] == 'undefined') { - body += '\n'; - } else { - seq.FinallyStatemnt[j].only = true; - if(typeof seq.FinallyStatemnt[j] == 'string') { - body += evalStatement(seq.FinallyStatemnt[j]); - } else { - body += evalStatement(seq.FinallyStatemnt[j]) + '\n'; - } - } - } - pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.FinallyStatemnt.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - if(x == 1) { - r += '\n'; - } - } - } - r += '}' - } - return r; - case 'FunctionDeclaration': - var r = Tokens.FunctionToken; - r += ' ' + evalStatement(seq.name); - var arguments = '('; - for (var i = 0; i < seq.params.length; i++) { - if( i != 0 ) { - arguments += ', ' - } - arguments += evalStatement(seq.params[i]); - }; - arguments += ')'; - r += arguments; - r += ' {'; - if(seq.body != null) { - var body = ''; - for(var j = 0; j < seq.body.length; j++) { - if(typeof seq.body[j] == 'undefined') { - body += '\n'; - } else { - seq.body[j].only = true; - if(typeof seq.body[j] == 'string') { - body += evalStatement(seq.body[j]); - } else { - body += evalStatement(seq.body[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.body.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - } - r += '}'; - return r; - case 'NamespaceDeclaration': - var r = Tokens.NamespaceToken + ' ' + evalStatement(seq.name); - if(seq.body != null) { - r += ' {'; - var body = ''; - for(var j = 0; j < seq.body.length; j++) { - if(typeof seq.body[j] == 'undefined') { - body += '\n'; - } else { - seq.body[j].only = true; - if(typeof seq.body[j] == 'string') { - body += evalStatement(seq.body[j]); - } else { - body += evalStatement(seq.body[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.body.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - r += '}'; - } else { - r += ';' - } - return r; - case 'NamespaceIdentifier': - var r = ''; - if(seq.start == true) { - r += '\\'; - } - for (var i = 0; i < seq.name.length; i++) { - if(i!=0) { - r += '\\' - } - r += seq.name[i]; - }; - return r; - case 'ClassDeclaration': - var r = Tokens.ClassToken + ' ' + evalStatement(seq.name); - r += ' {'; - if(seq.body != null) { - var body = ''; - for(var j = 0; j < seq.body.length; j++) { - if(typeof seq.body[j] == 'undefined') { - body += '\n'; - } else { - seq.body[j].only = true; - if(typeof seq.body[j] == 'string') { - body += evalStatement(seq.body[j]); - } else { - body += evalStatement(seq.body[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - if(pars[x] == 'EOD;' || pars[x] == 'EOT;') { - r += pars[x]; - } else { - r += '\t' + pars[x]; - } - } else { - if(seq.body.length == 1) { - if(pars[x] == 'EOD;' || pars[x] == 'EOT;') { - r += pars[x]; - } else { - r += '\t' + pars[x]; - } - } else { - if(pars[x] == 'EOD;' || pars[x] == 'EOT;') { - r += pars[x] + '\n'; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - } - r += '}'; - return r; - case 'ClassPropertyDeclaration': - var r; - if(seq.Visibility == false) { - r = 'var ' - } else { - r = seq.Visibility + ' '; - } - var left = evalStatement(seq.left); - if(seq.operator !== false) { - right = ' ' + seq.operator + ' ' + evalStatement(seq.right); - } else { - right = ''; - } - r += left + right + ';'; - return r; - case 'ClassConstPropertyDeclaration': - var r = 'const '; - var left = evalStatement(seq.left); - if(seq.operator !== false) { - right = ' ' + seq.operator + ' ' + evalStatement(seq.right); - } else { - right = ''; - } - r += left + right + ';'; - return r; - case 'ClassFunctionDeclaration': - var r; - if(seq.Visibility == false) { - r = '' - } else { - r = seq.Visibility + ' '; - } - r += Tokens.FunctionToken; - r += ' ' + evalStatement(seq.name); - var arguments = '('; - for (var i = 0; i < seq.params.length; i++) { - if( i != 0 ) { - arguments += ', ' - } - arguments += evalStatement(seq.params[i]); - }; - arguments += ')'; - r += arguments; - r += ' {\n'; - if(seq.body != null) { - var body = ''; - for(var j = 0; j < seq.body.length; j++) { - if(typeof seq.body[j] == 'undefined') { - body += '\n'; - } else { - seq.body[j].only = true; - if(typeof seq.body[j] == 'string') { - body += evalStatement(seq.body[j]); - } else { - body += evalStatement(seq.body[j]) + '\n'; - } - } - } - var pars = mammouth.LineTerminatorParser.parse(body); - for(var x = 0; x < pars.length; x++) { - if(pars[x] != '' || x == 0) { - if(x == (pars.length - 1)) { - r += '\t' + pars[x]; - } else { - if(seq.body.length == 1) { - r += '\t' + pars[x]; - } else { - r += '\t' + pars[x] + '\n'; - } - } - } else if(typeof pars[x] == 'undefined') { - r += '\n'; - } else { - r += pars[x]; - } - } - } - r += '}'; - return r; - case 'ContinueStatement': - var r = Tokens.ContinueToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'BreakStatement': - var r = Tokens.BreakToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'EchoStatement': - var r = Tokens.EchoToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'ReturnStatement': - var r = Tokens.ReturnToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'RequireStatement': - var r = Tokens.RequireToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'Require_onceStatement': - var r = Tokens.Require_onceToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'IncludeStatement': - var r = Tokens.IncludeToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - case 'Include_onceStatement': - var r = Tokens.Include_onceToken; - if(typeof seq.label !== "undefined" && seq.label !== null) { - r += ' ' + evalStatement(seq.label) - } - if(seq.only == true) { - r += ';'; - } - return r; - } - }; - var interprete = function(code){ - var r = ''; - var seq = mammouth.parser.parse(code); - console.log(seq); - for(var i = 0; i < seq.length; i++) { - r += evalStatement(seq[i]); - } - return r; - }; - var codeout = interprete(code); - return codeout; -} \ No newline at end of file diff --git a/src/context.coffee b/src/context.coffee new file mode 100644 index 0000000..ddd2692 --- /dev/null +++ b/src/context.coffee @@ -0,0 +1,1284 @@ +exports.Context = class Context + constructor: (element) -> + @scopes = [] + @scopes.unshift(element) + + push: (iden) -> + @scopes[0][iden.name] = {} + @scopes[0][iden.name].name = iden.name + @scopes[0][iden.name].type = iden.type + + scopein: () -> + @scopes.unshift({}); + + scopeout: () -> + @scopes.shift() + + Identify: (name) -> + for scope in @scopes + if scope[name] isnt undefined + if scope[name].type in ['function', 'cte', 'class', 'interface'] + return name + else + return '$' + name + return '$' + name + +### + Precontext Addition todo list: + [ ] Affecting PHP's Behaviour + [ ] APC + [ ] APD + [ ] bcompiler + [ ] BLENC + [ ] Error Handling + [ ] htscanner + [ ] inclued + [ ] Memtrack + [ ] OPcache + [ ] Output Control + [ ] PHP Options/Info + [ ] runkit + [ ] scream + [ ] uopz + [ ] Weakref + [ ] WinCache + [ ] Xhprof + [ ] Audio Formats Manipulation + [ ] ID3 + [ ] KTaglib + [ ] oggvorbis + [ ] OpenAL + [ ] Authentication Services + [ ] KADM5 + [ ] Radius + [ ] Command Line Specific Extensions + [ ] Ncurses + [ ] Newt + [ ] Readline + [ ] Compression and Archive Extensions + [ ] Bzip2 + [ ] LZF + [ ] Phar + [ ] Rar + [ ] Zip + [ ] Zlib + [ ] Credit Card Processing + [ ] MCVE + [ ] SPPLUS + [ ] Cryptography Extensions + [ ] Crack + [ ] Hash + [ ] Mcrypt + [ ] Mhash + [ ] OpenSSL + [ ] Password Hashing + [ ] Database Extensions + [ ] Abstraction Layers + [ ] Vendor Specific Database Extensions + [ ] Date and Time Related Extensions + [ ] Calendar + [ ] Date/Time + [ ] HRTime + [/] File System Related Extensions + [x] Direct IO + [x] Directories + [x] Fileinfo + [x] Filesystem + [x] Inotify + [x] Mimetype + [ ] Proctitle + [ ] xattr + [ ] xdiff + [ ] Human Language and Character Encoding Support + [ ] Enchant + [ ] FriBiDi + [ ] Gender + [ ] Gettext + [ ] iconv + [ ] intl + [ ] Multibyte String + [ ] Pspell + [ ] Recode + [ ] Image Processing and Generation + [ ] Cairo + [ ] Exif + [ ] GD + [ ] Gmagick + [ ] ImageMagick + [ ] Mail Related Extensions + [ ] Cyrus + [ ] IMAP + [ ] Mail + [ ] Mailparse + [ ] vpopmail + [ ] Mathematical Extensions + [ ] BC Math + [ ] GMP + [ ] Lapack + [ ] Math + [ ] Statistics + [ ] Trader + [ ] Non-Text MIME Output + [ ] FDF + [ ] GnuPG + [ ] haru + [ ] Ming + [ ] PDF + [ ] PS + [ ] RPM Reader + [ ] SWF + [ ] Process Control Extensions + [ ] Eio + [ ] Ev + [ ] Expect + [ ] Libevent + [ ] PCNTL + [ ] POSIX + [ ] Program execution + [ ] pthreads + [ ] Semaphore + [ ] Shared Memory + [ ] Sync + [ ] Other Basic Extensions + [ ] GeoIP + [ ] FANN + [ ] JSON + [ ] Judy + [ ] Lua + [ ] Misc. + [ ] Parsekit + [ ] SPL + [ ] SPL Types + [ ] Streams + [ ] Tidy + [ ] Tokenizer + [ ] URLs + [ ] V8js + [ ] Yaml + [ ] Yaf + [ ] Taint + [ ] Other Services + [ ] chdb + [ ] cURL + [ ] Event + [ ] FAM + [ ] FTP + [ ] Gearman + [ ] Gopher + [ ] Gupnp + [ ] HTTP + [ ] Hyperwave + [ ] Hyperwave API + [ ] Java + [ ] LDAP + [ ] Lotus Notes + [ ] Memcache + [ ] Memcached + [ ] mqseries + [ ] Network + [ ] RRD + [ ] SAM + [ ] SNMP + [ ] Sockets + [ ] SSH2 + [ ] Stomp + [ ] SVM + [ ] SVN + [ ] TCP + [ ] Varnish + [ ] YAZ + [ ] YP/NIS + [ ] 0MQ messaging + [ ] Search Engine Extensions + [ ] mnoGoSearch + [ ] Solr + [ ] Sphinx + [ ] Swish + [ ] Server Specific Extensions + [ ] Apache + [ ] FastCGI Process Manager + [ ] IIS + [ ] NSAPI + [ ] Session Extensions + [ ] Msession + [ ] Sessions + [ ] Session PgSQL + [ ] Text Processing + [ ] BBCode + [ ] PCRE + [ ] POSIX Regex + [ ] ssdeep + [ ] Strings + [x] Variable and Type Related Extensions + [x] Arrays + [x] Classes/Objects + [x] Classkit + [x] Ctype + [x] Filter + [x] Function Handling + [x] Object Aggregation + [x] Quickhash + [x] Reflection + [x] Variable handling + [ ] Web Services + [ ] OAuth + [ ] SCA + [ ] SOAP + [ ] Yar + [ ] XML-RPC + [ ] Windows Only Extensions + [ ] .NET + [ ] COM + [ ] W32api + [ ] win32ps + [ ] win32service + [ ] XML Manipulation + [ ] DOM + [ ] libxml + [ ] qtdom + [ ] SDO + [ ] SDO-DAS-Relational + [ ] SDO DAS XML + [ ] SimpleXML + [ ] WDDX + [ ] XMLDiff + [ ] XML Parser + [ ] XMLReader + [ ] XMLWriter + [ ] XSL + [ ] XSLT (PHP 4) +### +PreContext = exports.PreContext = new Context({ + ### Variable and Type Related Extensions ### + + # Function handling + # Function handling Functions + 'call_​user_​func_​array': + 'type': 'function' + 'call_user_func': + 'type': 'function' + 'create_function': + 'type': 'function' + 'forward_static_call_array': + 'type': 'function' + 'forward_static_call': + 'type': 'function' + 'func_get_arg': + 'type': 'function' + 'func_get_args': + 'type': 'function' + 'func_num_args': + 'type': 'function' + 'function_exists': + 'type': 'function' + 'get_defined_functions': + 'type': 'function' + 'register_shutdown_function': + 'type': 'function' + 'register_tick_function': + 'type': 'function' + 'unregister_tick_function': + 'type': 'function' + + # Arrays + # Array Constants + 'CASE_LOWER': + 'type': 'cte' + 'CASE_UPPER': + 'type': 'cte' + 'SORT_ASC': + 'type': 'cte' + 'SORT_DESC': + 'type': 'cte' + 'SORT_REGULAR': + 'type': 'cte' + 'SORT_NUMERIC': + 'type': 'cte' + 'SORT_STRING': + 'type': 'cte' + 'SORT_LOCALE_STRING': + 'type': 'cte' + 'SORT_NATURAL': + 'type': 'cte' + 'SORT_FLAG_CASE': + 'type': 'cte' + 'COUNT_NORMAL': + 'type': 'cte' + 'COUNT_RECURSIVE': + 'type': 'cte' + 'EXTR_OVERWRITE': + 'type': 'cte' + 'EXTR_SKIP': + 'type': 'cte' + 'EXTR_PREFIX_SAME': + 'type': 'cte' + 'EXTR_PREFIX_ALL': + 'type': 'cte' + 'EXTR_PREFIX_INVALID': + 'type': 'cte' + 'EXTR_PREFIX_IF_EXISTS': + 'type': 'cte' + 'EXTR_IF_EXISTS': + 'type': 'cte' + 'EXTR_REFS': + 'type': 'cte' + # Array functions + 'array_change_key_case': + 'type': 'function' + 'array_chunk': + 'type': 'function' + 'array_column': + 'type': 'function' + 'array_combine': + 'type': 'function' + 'array_count_values': + 'type': 'function' + 'array_diff_assoc': + 'type': 'function' + 'array_diff_key': + 'type': 'function' + 'array_diff_uassoc': + 'type': 'function' + 'array_diff_ukey': + 'type': 'function' + 'array_diff': + 'type': 'function' + 'array_fill_keys': + 'type': 'function' + 'array_fill': + 'type': 'function' + 'array_filter': + 'type': 'function' + 'array_flip': + 'type': 'function' + 'array_intersect_assoc': + 'type': 'function' + 'array_intersect_key': + 'type': 'function' + 'array_intersect_uassoc': + 'type': 'function' + 'array_intersect_ukey': + 'type': 'function' + 'array_intersect': + 'type': 'function' + 'array_key_exists': + 'type': 'function' + 'array_keys': + 'type': 'function' + 'array_map': + 'type': 'function' + 'array_merge_recursive': + 'type': 'function' + 'array_merge': + 'type': 'function' + 'array_multisort': + 'type': 'function' + 'array_pad': + 'type': 'function' + 'array_pop': + 'type': 'function' + 'array_product': + 'type': 'function' + 'array_push': + 'type': 'function' + 'array_rand': + 'type': 'function' + 'array_reduce': + 'type': 'function' + 'array_replace_recursive': + 'type': 'function' + 'array_replace': + 'type': 'function' + 'array_reverse': + 'type': 'function' + 'array_search': + 'type': 'function' + 'array_shift': + 'type': 'function' + 'array_slice': + 'type': 'function' + 'array_splice': + 'type': 'function' + 'array_sum': + 'type': 'function' + 'array_udiff_assoc': + 'type': 'function' + 'array_udiff_uassoc': + 'type': 'function' + 'array_udiff': + 'type': 'function' + 'array_uintersect_assoc': + 'type': 'function' + 'array_uintersect_uassoc': + 'type': 'function' + 'array_uintersect': + 'type': 'function' + 'array_unique': + 'type': 'function' + 'array_unshift': + 'type': 'function' + 'array_values': + 'type': 'function' + 'array_walk_recursive': + 'type': 'function' + 'array_walk': + 'type': 'function' + 'array': + 'type': 'function' + 'arsort': + 'type': 'function' + 'asort': + 'type': 'function' + 'compact': + 'type': 'function' + 'count': + 'type': 'function' + 'current': + 'type': 'function' + 'each': + 'type': 'function' + 'end': + 'type': 'function' + 'extract': + 'type': 'function' + 'in_array': + 'type': 'function' + 'key_exists': + 'type': 'function' + 'key': + 'type': 'function' + 'krsort': + 'type': 'function' + 'ksort': + 'type': 'function' + 'list': + 'type': 'function' + 'natcasesort': + 'type': 'function' + 'natsort': + 'type': 'function' + 'next': + 'type': 'function' + 'pos': + 'type': 'function' + 'prev': + 'type': 'function' + 'range': + 'type': 'function' + 'reset': + 'type': 'function' + 'rsort': + 'type': 'function' + 'shuffle': + 'type': 'function' + 'sizeof': + 'type': 'function' + 'sort': + 'type': 'function' + 'uasort': + 'type': 'function' + 'uksort': + 'type': 'function' + 'usort': + 'type': 'function' + + + # Objects/classes + # Objects function + '__autoload': + 'type': 'function' + 'call_user_method_array': + 'type': 'function' + 'call_user_method': + 'type': 'function' + 'class_alias': + 'type': 'function' + 'class_exists': + 'type': 'function' + 'get_called_class': + 'type': 'function' + 'get_class_methods': + 'type': 'function' + 'get_class_vars': + 'type': 'function' + 'get_class': + 'type': 'function' + 'get_declared_classes': + 'type': 'function' + 'get_declared_interfaces': + 'type': 'function' + 'get_declared_traits': + 'type': 'function' + 'get_object_vars': + 'type': 'function' + 'get_parent_class': + 'type': 'function' + 'interface_exists': + 'type': 'function' + 'is_a': + 'type': 'function' + 'is_subclass_of': + 'type': 'function' + 'method_exists': + 'type': 'function' + 'property_exists': + 'type': 'function' + 'trait_exists': + 'type': 'function' + + + # Classkit + # Classkit Constants + 'CLASSKIT_ACC_PRIVATE': + 'type': 'cte' + 'CLASSKIT_ACC_PROTECTED': + 'type': 'cte' + 'CLASSKIT_ACC_PUBLIC': + 'type': 'cte' + # Classkit Functions + 'classkit_import': + 'type': 'function' + 'classkit_method_add': + 'type': 'function' + 'classkit_method_copy': + 'type': 'function' + 'classkit_method_redefine': + 'type': 'function' + 'classkit_method_remove': + 'type': 'function' + 'classkit_method_rename': + 'type': 'function' + + + # Ctype + # Ctype functions + 'ctype_alnum': + 'type': 'function' + 'ctype_alpha': + 'type': 'function' + 'ctype_cntrl': + 'type': 'function' + 'ctype_digit': + 'type': 'function' + 'ctype_graph': + 'type': 'function' + 'ctype_lower': + 'type': 'function' + 'ctype_print': + 'type': 'function' + 'ctype_punct': + 'type': 'function' + 'ctype_space': + 'type': 'function' + 'ctype_upper': + 'type': 'function' + 'ctype_xdigit': + 'type': 'function' + + + # Data Filtering + # Data Filtering Constants + 'INPUT_POST': + 'type': 'cte' + 'INPUT_GET': + 'type': 'cte' + 'INPUT_COOKIE': + 'type': 'cte' + 'INPUT_ENV': + 'type': 'cte' + 'INPUT_SERVER': + 'type': 'cte' + 'INPUT_SESSION': + 'type': 'cte' + 'INPUT_REQUEST': + 'type': 'cte' + 'FILTER_FLAG_NONE': + 'type': 'cte' + 'FILTER_REQUIRE_SCALAR': + 'type': 'cte' + 'FILTER_REQUIRE_ARRAY': + 'type': 'cte' + 'FILTER_FORCE_ARRAY': + 'type': 'cte' + 'FILTER_NULL_ON_FAILURE': + 'type': 'cte' + 'FILTER_VALIDATE_INT': + 'type': 'cte' + 'FILTER_VALIDATE_BOOLEAN': + 'type': 'cte' + 'FILTER_VALIDATE_FLOAT': + 'type': 'cte' + 'FILTER_VALIDATE_REGEXP': + 'type': 'cte' + 'FILTER_VALIDATE_URL': + 'type': 'cte' + 'FILTER_VALIDATE_EMAIL': + 'type': 'cte' + 'FILTER_VALIDATE_IP': + 'type': 'cte' + 'FILTER_DEFAULT': + 'type': 'cte' + 'FILTER_UNSAFE_RAW': + 'type': 'cte' + 'FILTER_SANITIZE_STRING': + 'type': 'cte' + 'FILTER_SANITIZE_STRIPPED': + 'type': 'cte' + 'FILTER_SANITIZE_ENCODED': + 'type': 'cte' + 'FILTER_SANITIZE_SPECIAL_CHARS': + 'type': 'cte' + 'FILTER_SANITIZE_EMAIL': + 'type': 'cte' + 'FILTER_SANITIZE_URL': + 'type': 'cte' + 'FILTER_SANITIZE_NUMBER_INT': + 'type': 'cte' + 'FILTER_SANITIZE_NUMBER_FLOAT': + 'type': 'cte' + 'FILTER_SANITIZE_MAGIC_QUOTES': + 'type': 'cte' + 'FILTER_CALLBACK': + 'type': 'cte' + 'FILTER_FLAG_ALLOW_OCTAL': + 'type': 'cte' + 'FILTER_FLAG_ALLOW_HEX': + 'type': 'cte' + 'FILTER_FLAG_STRIP_LOW': + 'type': 'cte' + 'FILTER_FLAG_STRIP_HIGH': + 'type': 'cte' + 'FILTER_FLAG_ENCODE_LOW': + 'type': 'cte' + 'FILTER_FLAG_ENCODE_HIGH': + 'type': 'cte' + 'FILTER_FLAG_ENCODE_AMP': + 'type': 'cte' + 'FILTER_FLAG_NO_ENCODE_QUOTES': + 'type': 'cte' + 'FILTER_FLAG_EMPTY_STRING_NULL': + 'type': 'cte' + 'FILTER_FLAG_ALLOW_FRACTION': + 'type': 'cte' + 'FILTER_FLAG_ALLOW_THOUSAND': + 'type': 'cte' + 'FILTER_FLAG_ALLOW_SCIENTIFIC': + 'type': 'cte' + 'FILTER_FLAG_PATH_REQUIRED': + 'type': 'cte' + 'FILTER_FLAG_QUERY_REQUIRED': + 'type': 'cte' + 'FILTER_FLAG_IPV4': + 'type': 'cte' + 'FILTER_FLAG_IPV6': + 'type': 'cte' + 'FILTER_FLAG_NO_RES_RANGE': + 'type': 'cte' + 'FILTER_FLAG_NO_PRIV_RANGE': + 'type': 'cte' + # Data filtering functions + 'filter_has_var': + 'type': 'function' + 'filter_id': + 'type': 'function' + 'filter_input_array': + 'type': 'function' + 'filter_input': + 'type': 'function' + 'filter_list': + 'type': 'function' + 'filter_var_array': + 'type': 'function' + 'filter_var': + 'type': 'function' + + + # Object Aggregation/Composition + # Object Aggregation functions + 'aggregate_infoh': + 'type': 'function' + 'aggregate_methods_by_list': + 'type': 'function' + 'aggregate_methods_by_regexp': + 'type': 'function' + 'aggregate_methods': + 'type': 'function' + 'aggregate_properties_by_list': + 'type': 'function' + 'aggregate_properties_by_regexp': + 'type': 'function' + 'aggregate_properties': + 'type': 'function' + 'aggregate': + 'type': 'function' + 'aggregation_info': + 'type': 'function' + 'deaggregate': + 'type': 'function' + + + # Quickhash + # Quickhash classes + 'QuickHashIntSet': + 'type': 'class' + 'QuickHashIntHash': + 'type': 'class' + 'QuickHashStringIntHash': + 'type': 'class' + 'QuickHashIntStringHash': + 'type': 'class' + + + # Reflection + # Reflection classes + 'Reflection': + 'type': 'class' + 'ReflectionClass': + 'type': 'class' + 'ReflectionZendExtension': + 'type': 'class' + 'ReflectionExtension': + 'type': 'class' + 'ReflectionFunction': + 'type': 'class' + 'ReflectionFunctionAbstract': + 'type': 'class' + 'ReflectionMethod': + 'type': 'class' + 'ReflectionObject': + 'type': 'class' + 'ReflectionParameter': + 'type': 'class' + 'ReflectionProperty': + 'type': 'class' + 'Reflector': + 'type': 'class' + 'ReflectionException': + 'type': 'class' + + + # Variable handling + # Variable handling functions + 'boolval': + 'type': 'function' + 'debug_zval_dump': + 'type': 'function' + 'doubleval': + 'type': 'function' + 'empty': + 'type': 'function' + 'floatval': + 'type': 'function' + 'get_defined_vars': + 'type': 'function' + 'get_resource_type': + 'type': 'function' + 'gettype': + 'type': 'function' + 'import_request_variables': + 'type': 'function' + 'intval': + 'type': 'function' + 'is_array': + 'type': 'function' + 'is_bool': + 'type': 'function' + 'is_callable': + 'type': 'function' + 'is_double': + 'type': 'function' + 'is_float': + 'type': 'function' + 'is_int': + 'type': 'function' + 'is_integer': + 'type': 'function' + 'is_long': + 'type': 'function' + 'is_null': + 'type': 'function' + 'is_numeric': + 'type': 'function' + 'is_object': + 'type': 'function' + 'is_real': + 'type': 'function' + 'is_resource': + 'type': 'function' + 'is_scalar': + 'type': 'function' + 'is_string': + 'type': 'function' + 'isset': + 'type': 'function' + 'print_r': + 'type': 'function' + 'serialize': + 'type': 'function' + 'settype': + 'type': 'function' + 'strval': + 'type': 'function' + 'unserialize': + 'type': 'function' + 'unset': + 'type': 'function' + 'var_dump': + 'type': 'function' + 'var_export': + 'type': 'function' + + + ### File System Related Extensions ### + + # Direct IO + # Direct IO constants + 'F_DUPFD': + 'type': 'cte' + 'F_GETFD': + 'type': 'cte' + 'F_GETFL': + 'type': 'cte' + 'F_GETLK': + 'type': 'cte' + 'F_GETOWN': + 'type': 'cte' + 'F_RDLCK': + 'type': 'cte' + 'F_SETFL': + 'type': 'cte' + 'F_SETLK': + 'type': 'cte' + 'F_SETLKW': + 'type': 'cte' + 'F_SETOWN': + 'type': 'cte' + 'F_UNLCK': + 'type': 'cte' + 'F_WRLCK': + 'type': 'cte' + 'O_APPEND': + 'type': 'cte' + 'O_ASYNC': + 'type': 'cte' + 'O_CREAT': + 'type': 'cte' + 'O_EXCL': + 'type': 'cte' + 'O_NDELAY': + 'type': 'cte' + 'O_NOCTTY': + 'type': 'cte' + 'O_NONBLOCK': + 'type': 'cte' + 'O_RDONLY': + 'type': 'cte' + 'O_RDWR': + 'type': 'cte' + 'O_SYNC': + 'type': 'cte' + 'O_TRUNC': + 'type': 'cte' + 'O_WRONLY': + 'type': 'cte' + 'S_IRGRP': + 'type': 'cte' + 'S_IROTH': + 'type': 'cte' + 'S_IRUSR': + 'type': 'cte' + 'S_IRWXG': + 'type': 'cte' + 'S_IRWXO': + 'type': 'cte' + 'S_IRWXU': + 'type': 'cte' + 'S_IWGRP': + 'type': 'cte' + 'S_IWOTH': + 'type': 'cte' + 'S_IWUSR': + 'type': 'cte' + 'S_IXGRP': + 'type': 'cte' + 'S_IXOTH': + 'type': 'cte' + 'S_IXUSR': + 'type': 'cte' + # Direct IO functions + 'dio_close': + 'type': 'function' + 'dio_fcntl': + 'type': 'function' + 'dio_open': + 'type': 'function' + 'dio_read': + 'type': 'function' + 'dio_seek': + 'type': 'function' + 'dio_stat': + 'type': 'function' + 'dio_tcsetattr': + 'type': 'function' + 'dio_truncate': + 'type': 'function' + 'dio_write': + 'type': 'function' + + # Directories + # Directories constants + 'DIRECTORY_SEPARATOR': + 'type': 'cte' + 'PATH_SEPARATOR': + 'type': 'cte' + 'SCANDIR_SORT_ASCENDING': + 'type': 'cte' + 'SCANDIR_SORT_DESCENDING': + 'type': 'cte' + 'SCANDIR_SORT_NONE': + 'type': 'cte' + # Directories classes + "Directory": + "type": "class" + # Directories functions + 'chdir': + 'type': 'function' + 'chroot': + 'type': 'function' + 'closedir': + 'type': 'function' + 'dir': + 'type': 'function' + 'getcwd': + 'type': 'function' + 'opendir': + 'type': 'function' + 'readdir': + 'type': 'function' + 'rewinddir': + 'type': 'function' + 'scandir': + 'type': 'function' + + # File Information + # File Information constants + 'FILEINFO_NONE': + 'type': 'cte' + 'FILEINFO_SYMLINK': + 'type': 'cte' + 'FILEINFO_MIME_TYPE': + 'type': 'cte' + 'FILEINFO_MIME_ENCODING': + 'type': 'cte' + 'FILEINFO_MIME': + 'type': 'cte' + 'FILEINFO_COMPRESS': + 'type': 'cte' + 'FILEINFO_DEVICES': + 'type': 'cte' + 'FILEINFO_CONTINUE': + 'type': 'cte' + 'FILEINFO_PRESERVE_ATIME': + 'type': 'cte' + 'FILEINFO_RAW': + 'type': 'cte' + # File Information functions + 'finfo_close': + 'type': 'function' + 'finfo_file': + 'type': 'function' + 'finfo_open': + 'type': 'function' + 'finfo_set_flags': + 'type': 'function' + 'mime_content_type': + 'type': 'function' + + # Filesystem + # Filesystem constants + 'SEEK_SET': + 'type': 'cte' + 'SEEK_CUR': + 'type': 'cte' + 'SEEK_END': + 'type': 'cte' + 'LOCK_SH': + 'type': 'cte' + 'LOCK_EX': + 'type': 'cte' + 'LOCK_UN': + 'type': 'cte' + 'LOCK_NB': + 'type': 'cte' + 'GLOB_BRACE': + 'type': 'cte' + 'GLOB_ONLYDIR': + 'type': 'cte' + 'GLOB_MARK': + 'type': 'cte' + 'GLOB_NOSORT': + 'type': 'cte' + 'GLOB_NOCHECK': + 'type': 'cte' + 'GLOB_NOESCAPE': + 'type': 'cte' + 'GLOB_AVAILABLE_FLAGS': + 'type': 'cte' + 'PATHINFO_DIRNAME': + 'type': 'cte' + 'PATHINFO_BASENAME': + 'type': 'cte' + 'PATHINFO_EXTENSION': + 'type': 'cte' + 'PATHINFO_FILENAME': + 'type': 'cte' + 'FILE_USE_INCLUDE_PATH': + 'type': 'cte' + 'FILE_NO_DEFAULT_CONTEXT': + 'type': 'cte' + 'FILE_APPEND': + 'type': 'cte' + 'FILE_IGNORE_NEW_LINES': + 'type': 'cte' + 'FILE_SKIP_EMPTY_LINES': + 'type': 'cte' + 'FILE_BINARY': + 'type': 'cte' + 'FILE_TEXT': + 'type': 'cte' + 'INI_SCANNER_NORMAL': + 'type': 'cte' + 'INI_SCANNER_RAW': + 'type': 'cte' + 'FNM_NOESCAPE': + 'type': 'cte' + 'FNM_PATHNAME': + 'type': 'cte' + 'FNM_PERIOD': + 'type': 'cte' + 'FNM_CASEFOLD': + 'type': 'cte' + # Filesystem functions + 'basename': + 'type': 'function' + 'chgrp': + 'type': 'function' + 'chmod': + 'type': 'function' + 'chown': + 'type': 'function' + 'clearstatcache': + 'type': 'function' + 'copy': + 'type': 'function' + 'delete': + 'type': 'function' + 'dirname': + 'type': 'function' + 'disk_free_space': + 'type': 'function' + 'disk_total_space': + 'type': 'function' + 'diskfreespace': + 'type': 'function' + 'fclose': + 'type': 'function' + 'feof': + 'type': 'function' + 'fflush': + 'type': 'function' + 'fgetc': + 'type': 'function' + 'fgetcsv': + 'type': 'function' + 'fgets': + 'type': 'function' + 'fgetss': + 'type': 'function' + 'file_exists': + 'type': 'function' + 'file_get_contents': + 'type': 'function' + 'file_put_contents': + 'type': 'function' + 'file': + 'type': 'function' + 'fileatime': + 'type': 'function' + 'filectime': + 'type': 'function' + 'filegroup': + 'type': 'function' + 'fileinode': + 'type': 'function' + 'filemtime': + 'type': 'function' + 'fileowner': + 'type': 'function' + 'fileperms': + 'type': 'function' + 'filesize': + 'type': 'function' + 'filetype': + 'type': 'function' + 'flock': + 'type': 'function' + 'fnmatch': + 'type': 'function' + 'fopen': + 'type': 'function' + 'fpassthru': + 'type': 'function' + 'fputcsv': + 'type': 'function' + 'fputs': + 'type': 'function' + 'fread': + 'type': 'function' + 'fscanf': + 'type': 'function' + 'fseek': + 'type': 'function' + 'fstat': + 'type': 'function' + 'ftell': + 'type': 'function' + 'ftruncate': + 'type': 'function' + 'fwrite': + 'type': 'function' + 'glob': + 'type': 'function' + 'is_dir': + 'type': 'function' + 'is_executable': + 'type': 'function' + 'is_file': + 'type': 'function' + 'is_link': + 'type': 'function' + 'is_readable': + 'type': 'function' + 'is_uploaded_file': + 'type': 'function' + 'is_writable': + 'type': 'function' + 'is_writeable': + 'type': 'function' + 'lchgrp': + 'type': 'function' + 'lchown': + 'type': 'function' + 'link': + 'type': 'function' + 'linkinfo': + 'type': 'function' + 'lstat': + 'type': 'function' + 'mkdir': + 'type': 'function' + 'move_uploaded_file': + 'type': 'function' + 'parse_ini_file': + 'type': 'function' + 'parse_ini_string': + 'type': 'function' + 'pathinfo': + 'type': 'function' + 'pclose': + 'type': 'function' + 'popen': + 'type': 'function' + 'readfile': + 'type': 'function' + 'readlink': + 'type': 'function' + 'realpath_cache_get': + 'type': 'function' + 'realpath_cache_size': + 'type': 'function' + 'realpath': + 'type': 'function' + 'rename': + 'type': 'function' + 'rewind': + 'type': 'function' + 'rmdir': + 'type': 'function' + 'set_file_buffer': + 'type': 'function' + 'stat': + 'type': 'function' + 'symlink': + 'type': 'function' + 'tempnam': + 'type': 'function' + 'tmpfile': + 'type': 'function' + 'touch': + 'type': 'function' + 'umask': + 'type': 'function' + 'unlink': + 'type': 'function' + + # Inotify + # Inotify constants + 'IN_ACCESS': + 'type': 'cte' + 'IN_MODIFY': + 'type': 'cte' + 'IN_ATTRIB': + 'type': 'cte' + 'IN_CLOSE_WRITE': + 'type': 'cte' + 'IN_CLOSE_NOWRITE': + 'type': 'cte' + 'IN_OPEN': + 'type': 'cte' + 'IN_MOVED_TO': + 'type': 'cte' + 'IN_MOVED_FROM': + 'type': 'cte' + 'IN_CREATE': + 'type': 'cte' + 'IN_DELETE': + 'type': 'cte' + 'IN_DELETE_SELF': + 'type': 'cte' + 'IN_MOVE_SELF': + 'type': 'cte' + 'IN_CLOSE': + 'type': 'cte' + 'IN_MOVE': + 'type': 'cte' + 'IN_ALL_EVENTS': + 'type': 'cte' + 'IN_UNMOUNT': + 'type': 'cte' + 'IN_Q_OVERFLOW': + 'type': 'cte' + 'IN_IGNORED': + 'type': 'cte' + 'IN_ISDIR': + 'type': 'cte' + 'IN_ONLYDIR': + 'type': 'cte' + 'IN_DONT_FOLLOW': + 'type': 'cte' + 'IN_MASK_ADD': + 'type': 'cte' + 'IN_ONESHOT': + 'type': 'cte' + # Inotify functions + 'inotify_add_watch': + 'type': 'function' + 'inotify_init': + 'type': 'function' + 'inotify_queue_len': + 'type': 'function' + 'inotify_read': + 'type': 'function' + 'inotify_rm_watch': + 'type': 'function' +}) \ No newline at end of file diff --git a/src/grammar.coffee b/src/grammar.coffee new file mode 100644 index 0000000..ffd701c --- /dev/null +++ b/src/grammar.coffee @@ -0,0 +1,508 @@ +o = (patternString, action) -> + if action? + if action is false + return [patternString, ''] + if typeof action is 'number' + return [patternString, '$$ = $' + action + ';'] + else + return [patternString, action] + else + return [patternString, '$$ = $1;'] + +grammar = + # Starting from here + Root: [ + o 'Contents', 'return $1' + ] + + Contents: [ + o 'Content', '$$ = [$1]' + o 'Contents Content', '$$ = $1.concat($2)' + ] + + Content: [ + o 'PlainBlock' + o 'MammouthBlock' + ] + + PlainBlock: [ + o 'PlainText', '$$ = new yy.PlainBlock(yytext)' + ] + + MammouthBlock: [ + o '{{ Block }}', '$$ = new yy.MammouthBlock($2)' + ] + + Block: [ + o 'Expression', '$$ = new yy.Block([new yy.Expression($1)])' + o 'SimpleStatement', '$$ = new yy.Block([new yy.Expression($1)])' + o 'INDENT Lines OUTDENT', '$$ = new yy.Block($2)' + o 'LineTerminator INDENT Lines OUTDENT', '$$ = new yy.Block($3)' + ] + + Lines: [ + o 'Line', '$$ = [$1]' + o 'Lines OptLineTerminator Line', '$$ = $1.concat($3);' + o 'Lines LineTerminator' + ] + + OptLineTerminator: [ + o '', false + o 'LineTerminator', 'false' + ] + + Line: [ + o 'Expression', '$$ = new yy.Expression($1)' + o 'Statement' + ] + + Statement: [ + o 'SimpleStatement', '$$ = new yy.Expression($1)' # Is not expressions but only for add ; + o 'Function' + o 'If' + o 'While' + o 'DoWhile' + o 'For' + o 'Try' + o 'Switch' + o 'Declare' + o 'Section' + o 'Class' + o 'Interface' + o 'Namespace' + ] + + Expression: [ + o 'Value' + o 'Invocation' + o 'Code' + o 'Operation' + o 'Assign' + o 'IfExpression' + o 'HereDoc' + ] + + Value: [ + o 'Assignable' + o 'Literal' + o 'Parenthetical', '$$ = new yy.Value($1)' + o 'Casting' + o 'Execution' + o 'NamespaceRef', '$$ = new yy.Value($1)' + o 'Clone' + ] + + HereDoc: [ + o '` HEREDOCTEXT `', '$$ = new yy.HereDoc($2)' + ] + + Parenthetical: [ + o '( Expression )', '$$ = new yy.Parens($2)' + ] + + Casting: [ + o 'SimpleAssignable => cType', '$$ = new yy.Casting($1, $3)' + ] + + Execution: [ + o 'EXEC STRING', '$$ = new yy.Exec($2)' + o 'EXEC ( STRING )', '$$ = new yy.Exec($3)' + ] + + Clone: [ + o 'CLONE Value', '$$ = new yy.Clone($2)' + ] + + Assignable: [ + o 'SimpleAssignable' + o 'Array', '$$ = new yy.Value($1)' + ] + + SimpleAssignable: [ + o 'Identifier', '$$ = new yy.Value($1)' + o '& IDENTIFIER', '$$ = new yy.Identifier(yytext, true, true)' + o 'Value Accessor', '$1.add($2); $$ = $1' + o '@ Identifier', 'th = new yy.Value(new yy.Identifier("this")); th.add(new yy.Access($2)); $$ = th' + ] + + Accessor: [ + o '. Identifier', '$$ = new yy.Access($2)' + o '.. Identifier', '$$ = new yy.Access($2, "..")' + o ':: Identifier', '$$ = new yy.Access($2, "::")' + o '[ Expression ]', '$$ = new yy.Access($2, "[]")' + ] + + Identifier: [ + o 'IDENTIFIER', '$$ = new yy.Identifier(yytext)' + ] + + Literal: [ + o 'AlphaNumeric' + o 'BOOL', '$$ = new yy.Bool(yytext)' + o 'NULL', '$$ = new yy.Null()' + ] + + AlphaNumeric: [ + o 'NUMBER', '$$ = new yy.Literal(yytext)' + o 'STRING', '$$ = new yy.Literal(yytext)' + ] + + # Array + Array: [ + o '[ ]', '$$ = new yy.Array()' + o '[ ArgList OptComma ]', '$$ = new yy.Array($2)' + ] + + ArgList: [ + o 'Arg', '$$ = [$1]' + o 'ArgList , Arg', '$$ = $1.concat($3);' + o 'ArgList OptComma LineTerminator Arg', '$$ = $1.concat($4)' + o 'INDENT ArgList OptComma OUTDENT', 2 + o 'ArgList OptComma LineTerminator INDENT ArgList OptComma OUTDENT', '$$ = $1.concat($5)' + o 'LineTerminator INDENT ArgList OptComma OUTDENT', 3 + ] + + Arg: [ + o 'Expression' + o 'Expression : Expression', '$$ = new yy.ArrayKey($1, $3)' + ] + + OptComma: [ + o '' + o ',' + ] + + # Invocation + Invocation: [ + o 'Value Arguments', '$$ = new yy.Call($1, $2)' + o 'NEW Value', '$$ = new yy.NewCall($2)' + o 'NEW Value Arguments', '$$ = new yy.NewCall($2, $3)' + ] + Arguments: [ + o 'CALL_START CALL_END', '$$ = []' + o 'CALL_START ArgList OptComma CALL_END', 2 + ] + + # Function + Function: [ + o 'FUNC IDENTIFIER', '$$ = new yy.Code([], false, true, $2)' + o 'FUNC IDENTIFIER FuncGlyph Block', '$$ = new yy.Code([], $4, true, $2)' + o 'FUNC IDENTIFIER ( ParametersList )', '$$ = new yy.Code($4, false, true, $2)' + o 'FUNC IDENTIFIER ( ParametersList ) FuncGlyph Block', '$$ = new yy.Code($4, $7, true, $2)' + ] + + Code: [ + o 'FUNC ( ParametersList ) FuncGlyph Block', '$$ = new yy.Code($3, $6)' + o 'FUNC FuncGlyph Block', '$$ = new yy.Code([], $3)' + ] + + FuncGlyph: [ + o '->', false + ] + + ParametersList: [ + o '', '$$ = []' + o 'Param', '$$ = [$1]' + o 'ParametersList , Param', '$$ = $1.concat($3);' + ] + + Param: [ + o 'ParamVar' + o 'USE ParamVar', '$2.passing = true, $$ = $2' + o 'ParamVar = Expression', '$$ = new yy.Assign("=", $1, $3)' + ] + + ParamVar: [ + o '& IDENTIFIER', '$$ = new yy.Identifier(yytext, true, true)' + o 'IDENTIFIER', '$$ = new yy.Identifier(yytext, true)' + ] + + Assign: [ + o 'Assignable = Expression', '$$ = new yy.Assign("=", $1, $3)' + o '{ KeysList } = Expression', '$$ = new yy.GetKeyAssign($2, $5)' + o 'CTE Identifier = Expression', '$$ = new yy.Constant($2, $4)' + ] + + KeysList: [ + o 'Identifier', '$$ = [$1]' + o 'KeysList , Identifier', '$$ = $1.concat($3)' + ] + + # Simple Statement + SimpleStatement: [ + o 'Echo' + o 'Break' + o 'Continue' + o 'Delete' + o 'Include' + o 'Require' + o 'Return' + o 'Goto' + ] + + Echo: [ + o 'ECHO SimpleArg', '$$ = new yy.Echo($2)' + ] + + Break: [ + o 'BREAK', '$$ = new yy.Break()' + o 'BREAK NUMBER', '$$ = new yy.Break(new yy.Literal($2))' + ] + + Continue: [ + o 'CONTINUE', '$$ = new yy.Continue()' + o 'CONTINUE NUMBER', '$$ = new yy.Continue(new yy.Literal($2))' + ] + + Delete: [ + o 'DELETE SimpleArg', '$$ = new yy.Delete($2)' + ] + + Include: [ + o 'INCLUDE isOnce SimpleArg', '$$ = new yy.Include($3, $2)' + ] + + Require: [ + o 'REQUIRE isOnce SimpleArg', '$$ = new yy.Require($3, $2)' + ] + + isOnce: [ + o '', '$$ = false' + o 'ONCE', '$$ = true' + ] + + Return: [ + o 'RETURN SimpleArg', '$$ = new yy.Return($2)' + ] + + SimpleArg: [ + o 'Expression' + o '( Expression )', 2 + ] + + # If + If: [ + o 'IfBlock' + o 'IfBlock ELSE Block', '$1.addElse(new yy.Else($3)); $$ = $1' + ] + + IfBlock: [ + o 'IF Expression Block', '$$ = new yy.If($2, $3)' + o 'IfBlock ELSE IF Expression Block', '$1.addElse(new yy.ElseIf($4, $5)); $$ = $1' + ] + + IfExpression: [ + o 'IfBlockExpression' + o 'IfBlockExpression ELSE Expression', '$1.Elses = $3; $$ = $1' + ] + + IfBlockExpression: [ + o 'IF Expression THEN Expression', '$$ = new yy.If($2, $4, true)' + o 'Expression IF Expression', '$$ = new yy.If($3, $1, true)' + ] + + # While + While: [ + o 'WHILE Expression Block', '$$ = new yy.While($2, $3)' + ] + + DoWhile: [ + o 'DO WHILE Expression Block', '$$ = new yy.DoWhile($3, $4)' + ] + + # Try/catch/finally + Try: [ + o 'TryBlock' + o 'TryBlock FINALLY Block', '$1.addFinally($3); $$ = $1' + ] + + TryBlock: [ + o 'TRY Block CatchBlock', '$$ = new yy.Try($2, $3[0], $3[1])' + ] + + CatchBlock: [ + o 'CATCH Identifier Block', '$$ = [$2, $3]' + ] + + # Switch + Switch: [ + o 'SWITCH Expression LineTerminator INDENT Whens OUTDENT', '$$ = new yy.Switch($2, $5)' + o 'SWITCH Expression LineTerminator INDENT Whens ELSE Block OUTDENT', '$5.push(new yy.SwitchElse($7)); $$ = new yy.Switch($2, $5)' + ] + + Whens: [ + o 'When', '$$ = [$1]' + o 'Whens OptLineTerminator When', '$$ = $1.concat($3)' + o 'Whens LineTerminator' + ] + + When: [ + o 'WhenTok Expression Block', '$$ = new yy.When($2, $3)' + ] + + WhenTok: [ + o 'CASE', false + o 'WHEN', false + ] + + # For + For: [ + o 'FOR ForExpressions Block', '$$ = new yy.For("normal", $2, $3)' + o 'FOR EACH Expression AS Expression Block', '$5.foreach = true; $$ = new yy.For("foreach", $3, $5, $6)' + ] + + ForExpressions: [ + o 'Expression', '$$ = [$1]' + o 'ForExpressions ; Expression', '$$ = $1.concat($3)' + ] + + # Declare + Declare: [ + o 'DECLARE SimpleArg', '$$ = new yy.Expression(new yy.Declare($2))' + o 'DECLARE SimpleArg -> Block', '$$ = new yy.Declare($2, $4)' + ] + + # Section + Section: [ + o 'IDENTIFIER :', '$$ = new yy.Section($1)' + ] + + Goto: [ + o '==> IDENTIFIER', '$$ = new yy.Goto($2)' + o 'GOTO IDENTIFIER', '$$ = new yy.Goto($2)' + ] + + # Class + Class: [ + o 'CLASS IDENTIFIER LineTerminator INDENT ClassBody OUTDENT', '$$ = new yy.Class($2, $5)' + o 'CLASS IDENTIFIER EXTENDS IDENTIFIER LineTerminator INDENT ClassBody OUTDENT', '$$ = new yy.Class($2, $7, $4)' + o 'CLASS IDENTIFIER IMPLEMENTS IDENTIFIER LineTerminator INDENT ClassBody OUTDENT', '$$ = new yy.Class($2, $7, false, $4)' + o 'ABSTRACT CLASS IDENTIFIER LineTerminator INDENT ClassBody OUTDENT', '$$ = new yy.Class($3, $6, false, false, true)' + ] + + ClassBody: [ + o 'ClassLine', '$$ = [$1]' + o 'ClassBody OptLineTerminator ClassLine', '$$ = $1.concat($3)' + o 'ClassBody LineTerminator' + ] + + ClassLine: [ + o 'Visibility Statically Identifier', '$$ = new yy.ClassLine($1, $2, $$ = new yy.Expression($3))' + o 'Visibility Statically Assign', '$$ = new yy.ClassLine($1, $2, $$ = new yy.Expression($3))' + o 'Visibility Statically Function', '$$ = new yy.ClassLine($1, $2, $3);' + o 'FINAL Visibility Statically Function', 'n = new yy.ClassLine($2, $3, $4); n.finaly = true; $$ = n' + o 'ABSTRACT ClassLine', '$2.abstract = true; $$ = $2' + ] + + Finaly: [ + o '', '$$ = false' + o 'FINAL', '$$ = true' + ] + + Visibility: [ + o '', '$$ = false' + o 'PUBLIC', '$$ = "public"' + o 'PRIVATE', '$$ = "private"' + o 'PROTECTED', '$$ = "protected"' + ] + + Statically: [ + o '', '$$ = false' + o 'STATIC', '$$ = "static"' + ] + + # Interface + Interface: [ + o 'INTERFACE IDENTIFIER LineTerminator INDENT InterfaceBody OUTDENT', '$$ = new yy.Interface($2, $5)' + o 'INTERFACE IDENTIFIER EXTENDS ExtendedList LineTerminator INDENT InterfaceBody OUTDENT', '$$ = new yy.Interface($2, $7, $4)' + ] + + InterfaceBody: [ + o 'InterfaceLine', '$$ = [$1]' + o 'InterfaceBody OptLineTerminator InterfaceLine', '$$ = $1.concat($3)' + o 'InterfaceBody LineTerminator' + ] + + InterfaceLine: [ + o 'PUBLIC Function', 2 + o 'Assign', '$$ = new yy.Expression($1)' + ] + + ExtendedList: [ + o 'IDENTIFIER', '$$ = [$1]' + o 'ExtendedList , IDENTIFIER', '$$ = $1.concat($3)' + ] + + # Namespace + Namespace: [ + o 'NAMESPACE NamespaceName', '$$ = new yy.Expression(new yy.Namespace($2))' + o 'NAMESPACE NamespaceName -> Block', '$$ = new yy.Namespace($2, $4)' + ] + + NamespaceName: [ + o 'IDENTIFIER' + o 'NamespaceName \\ IDENTIFIER', ' $$ = $1 + "\\\\" + $3' + ] + + NamespaceRef: [ + o 'NamespaceRefname', '$$ = new yy.NamespaceRef($1)' + ] + + NamespaceRefname: [ + o 'IDENTIFIER \\ IDENTIFIER', '$$ = $1 + "\\\\" + $3' + o 'NamespaceRefname \\ IDENTIFIER', '$$ = $1 + "\\\\" + $3' + o '\\ NamespaceRefname', '$$ = "\\\\" + $2' + ] + + # Operation + Operation: [ + o '-- Expression', '$$ = new yy.Update("--", $2)' + o '++ Expression', '$$ = new yy.Update("++", $2)' + o 'SimpleAssignable --', '$$ = new yy.Update("--", $1, false)' + o 'SimpleAssignable ++', '$$ = new yy.Update("++", $1, false)' + o 'NOT Expression', '$$ = new yy.Unary("!", $2)' + o '- Expression', '$$ = new yy.Unary("-", $2)' + o '+ Expression', '$$ = new yy.Unary("+", $2)' + o 'Expression ?', '$$ = new yy.Existence($1)' + o 'Expression + Expression', '$$ = new yy.Operation("+", $1, $3)' + o 'Expression <-> Expression', '$$ = new yy.Operation("<->", $1, $3)' + o 'Expression - Expression', '$$ = new yy.Operation("-", $1, $3)' + o 'Expression * Expression', '$$ = new yy.Operation("*", $1, $3)' + o 'Expression ** Expression', '$$ = new yy.Operation("**", $1, $3)' + o 'Expression / Expression', '$$ = new yy.Operation("/", $1, $3)' + o 'Expression % Expression', '$$ = new yy.Operation("%", $1, $3)' + o 'Expression SHIFT Expression', '$$ = new yy.Operation($2, $1, $3)' + o 'Expression LOGIC Expression', '$$ = new yy.Operation($2, $1, $3)' + o 'Expression & Expression', '$$ = new yy.Operation("&", $1, $3)' + o 'Expression COMPARE Expression', '$$ = new yy.Operation($2, $1, $3)' + o 'SimpleAssignable ASSIGN Expression', '$$ = new yy.Assign($2, $1, $3)' + o 'Expression INSTANCEOF Expression', '$$ = new yy.Operation("instanceof", $1, $3)' + o 'Expression IN Expression', '$$ = new yy.In($1, $3)' + ] + +operators = [ + ['left', '..', '.', '::', '->', '=>'] + ['left', 'CALL_START', 'CALL_END'] + ['nonassoc', '++', '--'] + ['left', '?'] + ['right', '**'] + ['left', '*', '/', '%'] + ['left', 'NOT', '+', '-', '<->', 'EXEC', 'CLONE'] + ['left', 'SHIFT'] + ['left', 'INSTANCEOF'] + ['left', 'IN'] + ['left', 'AS'] + ['left', 'COMPARE'] + ['left', 'LOGIC', '&'] + ['nonassoc', 'INDENT', 'OUTDENT', 'LineTerminator'] + ['left', 'DELETE', 'ECHO', 'REQUIRE', 'INCLUDE', 'ONCE', 'BREAK', 'CONTINUE', 'RETURN', 'DECLARE'] + ['right', 'PUBLIC', 'PRIVATE', 'PROTECTED', 'FINAL', 'STATIC'] + ['right', 'func', 'IF', 'THEN', 'ELSE', 'FOR', 'EACH', 'DO', 'WHILE', 'ABSTRACT', 'CLASS', 'EXTENDS', 'IMPLEMENTS'] + ['right', '=', ':', 'ASSIGN'] +] + +{Parser} = require 'jison' + +module.exports = new Parser + bnf : grammar + operators: operators.reverse() \ No newline at end of file diff --git a/src/helpers.coffee b/src/helpers.coffee new file mode 100644 index 0000000..a362e39 --- /dev/null +++ b/src/helpers.coffee @@ -0,0 +1,26 @@ +nodes = require './nodes' + +exports.IdCounter = class IdCounter + letter: ['i', 'j', 'k', 'c', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'a', 'b', 'c', 'd', 'e', 'f', 'j', 'h'] + _level: 1 + letterLevel: 0 + + generateAtLevel: -> + r = '' + i = 0 + while i < @_level + r += '_' + i++ + return r + + next: -> + if (@letterLevel + 1) is @letter.length + @_level++ + @letterLevel = 0 + else + @letterLevel++ + + get: -> + r = @generateAtLevel() + @letter[@letterLevel] + @next() + return new nodes.Identifier(r) \ No newline at end of file diff --git a/src/helpers.js b/src/helpers.js deleted file mode 100644 index 091e7f8..0000000 --- a/src/helpers.js +++ /dev/null @@ -1,4 +0,0 @@ -mammouth.helpers = { - slice_php_function: "function _m_slice($var, $start, $end) {if(gettype($var)=='string') {return substr($var, $start, $end);} elseif(gettype($var)=='array') {return array_slice($var, $start, $end);}}", - len_php_function: "function _m_len($var) {if(gettype($var)=='string') {return strlen($var);} elseif(gettype($var)=='array') {return count($var);}}" -}; \ No newline at end of file diff --git a/src/lexer.coffee b/src/lexer.coffee new file mode 100644 index 0000000..c35ffc1 --- /dev/null +++ b/src/lexer.coffee @@ -0,0 +1,653 @@ +Lexer = require "lex" + +col = 1 +row = 1 + +IntoArray = false +IntoMammouth = false +IntoHereDoc = false + +Levels = [ + { + IndentStack: [] + CurrentIndent: -1 + OpenedIndent: 0 + } +] + +OpenedParens = [] + +lastIsIdentifier = false +captureTypeCasting = false +tokenStack = [] + +setToken = (token) -> + if token is 'IDENTIFIER' and tokenStack[0] isnt 'FUNC' + lastIsIdentifier = true + else + lastIsIdentifier = false + if token is '=>' + captureTypeCasting = true + else + captureTypeCasting = false + tokenStack.unshift(token) + +CloseIndents = (tokens) -> + while Levels[0].OpenedIndent > 0 + tokens.unshift 'OUTDENT' + Levels[0].OpenedIndent-- + return tokens + +# Create a new lexer +lexer = module.exports = new Lexer (char) -> + throw new Error "Unexpected character at row " + row + ", col " + col + ": " + char + +RegularExpression = + PlainText: /// ( + ( + ( + ?!( + {{ + |}} + ) + ) + ([\n\r\u2028\u2029]|.) + )* + ) /// + MammouthStart: /// {{ /// + MammouthEnd: /// }} /// + + Python_indent: /(^[ \t]*)/gm + EmptyLine: /(^[\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000]*[\n\r\u2028\u2029])/gmi + + # Value + IDENTIFIER: /(([$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)( [^\n\S]* : (?!:) )?)/ + NUMBER: /(0b[01]+|0o[0-7]+|0(x|X)[\da-fA-F]+|\d*\.?\d+(?:(e|E)[+-]?\d+)?)/ + STRING: /('[^\\']*(?:\\[\s\S][^\\']*)*'|"[^\\"]*(?:\\[\s\S][^\\"]*)*")/ + + # HEREDOC + HEREDOC: /// ( + ( + ( + ?!( + \` + |{{ + |}} + ) + ) + ([\n\r\u2028\u2029]|.) + )* + ) /// + + LineTerminator: /[\n\r\u2028\u2029]/ + Zs: /[\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000]/ + + SingleComment: /#(.*)+[\n\r\u2028\u2029]/ + MultiComment: /###(([\n\r\u2028\u2029]|.)*)###/ + +# End of string +lexer.addRule /^/, (lexeme) -> + IntoArray = false + IntoMammouth = false + IntoHereDoc = false + + Levels = [ + { + IndentStack: [] + CurrentIndent: -1 + OpenedIndent: 0 + } + ] + + OpenedParens = [] + + lastIsIdentifier = false + captureTypeCasting = false + tokenStack = [] + @reject = true + +# check for plain text +lexer.addRule RegularExpression.PlainText, (lexeme) -> + if not IntoMammouth + col += lexeme.length + @yytext = lexeme + setToken('PlainText') + return 'PlainText' + else + @reject = true + +# HEREDOC +lexer.addRule RegularExpression.HEREDOC, (lexeme) -> + if IntoMammouth and IntoHereDoc + col += lexeme.length + @yytext = lexeme + setToken('HEREDOCTEXT') + return 'HEREDOCTEXT' + else + @reject = true + +# Skip Empty line +lexer.addRule RegularExpression.EmptyLine, (lexeme) -> + +# Skip SingleLine comment +lexer.addRule RegularExpression.SingleComment, (lexeme) -> + +# Skip MultiLine comment +lexer.addRule RegularExpression.MultiComment, (lexeme) -> + +# Python like-indentation +lexer.addRule RegularExpression.Python_indent, (lexeme) -> + if IntoMammouth + col += lexeme.length + current_line_indent = lexeme.replace(/\t/g,' ').length + if current_line_indent > Levels[0].CurrentIndent + Levels[0].CurrentIndent = current_line_indent + Levels[0].OpenedIndent++ + Levels[0].IndentStack.push Levels[0].CurrentIndent + setToken('INDENT') + return 'INDENT' + else if current_line_indent < Levels[0].CurrentIndent + tokens = [] + a = [] + for i in Levels[0].IndentStack + a.unshift i + for i in a + if current_line_indent is i + Levels[0].CurrentIndent = i + else if current_line_indent < i + Levels[0].CurrentIndent = Levels[0].IndentStack.pop() + setToken('OUTDENT') + tokens.push 'OUTDENT' + Levels[0].OpenedIndent -= 1 + return tokens + else + # + +# Skip Whitespace +lexer.addRule RegularExpression.Zs, (lexeme) -> + +# Mammouth block start and end +lexer.addRule RegularExpression.MammouthStart, -> + col += 2 + IntoMammouth = true + setToken('{{') + IntoArray = false + IntoHereDoc = false + + Levels = [ + { + IndentStack: [] + CurrentIndent: -1 + OpenedIndent: 0 + } + ] + + OpenedParens = [] + + lastIsIdentifier = false + ShouldCloseCall = false + captureTypeCasting =false + tokenStack = [] + return '{{' + +lexer.addRule RegularExpression.MammouthEnd, -> + col += 2 + IntoMammouth = false + tokens = CloseIndents(['}}']) + for token in tokens + setToken(token) + return tokens + +# Symbols +lexer.addRule /\`/, (lexeme) -> + col += lexeme.length + if IntoHereDoc + IntoHereDoc = false + else + IntoHereDoc = true + setToken('`') + return '`' + +lexer.addRule /\{/, (lexeme) -> + col += lexeme.length + setToken('{') + return '{' + +lexer.addRule /\}/, (lexeme) -> + col += lexeme.length + setToken('}') + return '}' + +lexer.addRule /\(/, (lexeme) -> + col += lexeme.length + if lastIsIdentifier + lastIsIdentifier = false + OpenedParens.unshift 'CALL_END' + setToken('CALL_START') + return 'CALL_START' + else + OpenedParens.unshift ')' + setToken('(') + return '(' + +lexer.addRule /\)/, (lexeme) -> + col += lexeme.length + tok = OpenedParens.shift() + setToken(tok) + return tok + +lexer.addRule /\;/, (lexeme) -> + col += lexeme.length + setToken(';') + return ';' + +lexer.addRule /\[/, (lexeme) -> + col += lexeme.length + setToken('[') + return '[' + +lexer.addRule /\]/, (lexeme) -> + col += lexeme.length + setToken(']') + return ']' + +lexer.addRule /@/, (lexeme) -> + col += lexeme.length + setToken('@') + return '@' + +lexer.addRule /,/, (lexeme) -> + col += lexeme.length + setToken(',') + return ',' + +lexer.addRule /\./, (lexeme) -> + col += lexeme.length + setToken('.') + return '.' + +lexer.addRule /\.\./, (lexeme) -> + col += lexeme.length + setToken('..') + return '..' + +lexer.addRule /<->/, (lexeme) -> + col += lexeme.length + setToken('<->') + return '<->' + +lexer.addRule /->/, (lexeme) -> + col += lexeme.length + setToken('->') + return '->' + +lexer.addRule /\=>/, (lexeme) -> + col += lexeme.length + setToken('=>') + return '=>' + +lexer.addRule /\=\=>/, (lexeme) -> + col += lexeme.length + setToken('==>') + return '==>' + +lexer.addRule /:/, (lexeme) -> + col += lexeme.length + setToken(':') + return ':' + +lexer.addRule /::/, (lexeme) -> + col += lexeme.length + setToken('::') + return '::' + +lexer.addRule /\+/, (lexeme) -> + col += lexeme.length + setToken('+') + return '+' + +lexer.addRule /\+\+/, (lexeme) -> + col += lexeme.length + setToken('++') + return '++' + +lexer.addRule /-/, (lexeme) -> + col += lexeme.length + setToken('-') + return '-' + +lexer.addRule /--/, (lexeme) -> + col += lexeme.length + setToken('--') + return '--' + +lexer.addRule /\?/, (lexeme) -> + col += lexeme.length + setToken('?') + return '?' + +lexer.addRule /\*/, (lexeme) -> + col += lexeme.length + setToken('*') + return '*' + +lexer.addRule /\*\*/, (lexeme) -> + col += lexeme.length + setToken('**') + return '**' + +lexer.addRule /\//, (lexeme) -> + col += lexeme.length + setToken('/') + return '/' + +lexer.addRule /\\/, (lexeme) -> + col += lexeme.length + setToken('\\') + return '\\' + +lexer.addRule /%/, (lexeme) -> + col += lexeme.length + setToken('%') + return '%' + +lexer.addRule /\+\=/, (lexeme) -> + col += lexeme.length + @yytext = lexeme + setToken('ASSIGN') + return "ASSIGN" + +lexer.addRule /-\=/, (lexeme) -> + col += lexeme.length + @yytext = lexeme + setToken('ASSIGN') + return "ASSIGN" + +lexer.addRule /\*\=/, (lexeme) -> + col += lexeme.length + @yytext = lexeme + setToken('ASSIGN') + return "ASSIGN" + +lexer.addRule /\/\=/, (lexeme) -> + col += lexeme.length + @yytext = lexeme + setToken('ASSIGN') + return "ASSIGN" + +lexer.addRule /\%\=/, (lexeme) -> + col += lexeme.length + @yytext = lexeme + setToken('ASSIGN') + return "ASSIGN" + +lexer.addRule /&/, (lexeme) -> + col += lexeme.length + @yytext = lexeme + setToken('&') + return "&" + +lexer.addRule />>/, (lexeme) -> + col += lexeme.length + @yytext = lexeme + setToken('>>') + return "SHIFT" + +lexer.addRule /< + col += lexeme.length + @yytext = lexeme + setToken('<<') + return 'SHIFT' + +lexer.addRule /\|\|/, (lexeme) -> + col += lexeme.length; + @yytext = '||' + setToken('LOGIC') + return 'LOGIC'; + +lexer.addRule /&&/, (lexeme) -> + col += lexeme.length; + @yytext = 'and' + setToken('LOGIC') + return 'LOGIC'; + +lexer.addRule /\|/, (lexeme) -> + col += lexeme.length; + @yytext = 'or' + setToken('LOGIC') + return 'LOGIC' + +lexer.addRule / + col += lexeme.length; + @yytext = lexeme + setToken('COMPARE') + return "COMPARE"; + +lexer.addRule />/, (lexeme) -> + col += lexeme.length; + @yytext = lexeme + setToken('COMPARE') + return "COMPARE"; + +lexer.addRule /<=/, (lexeme) -> + col += lexeme.length; + @yytext = lexeme + setToken('COMPARE') + return "COMPARE"; + +lexer.addRule />=/, (lexeme) -> + col += lexeme.length; + @yytext = lexeme + setToken('COMPARE') + return "COMPARE"; + +lexer.addRule /!\=/, (lexeme) -> + col += lexeme.length; + @yytext = lexeme + setToken('COMPARE') + return "COMPARE"; + +lexer.addRule /\=\=/, (lexeme) -> + col += lexeme.length; + @yytext = lexeme + setToken('COMPARE') + return "COMPARE"; + +lexer.addRule /\=\=\=/, (lexeme) -> + col += lexeme.length; + @yytext = lexeme + setToken('COMPARE') + return "COMPARE"; + +lexer.addRule /\=/, (lexeme) -> + col += lexeme.length + setToken('=') + return "=" + +# Identifier and reserved words +lexer.addRule RegularExpression.IDENTIFIER, (lexeme) -> + col += lexeme.length + if captureTypeCasting + @yytext = lexeme + setToken('cType') + return 'cType' + if lexeme in ['true', 'false'] + @yytext = eval lexeme + setToken('BOOL') + return 'BOOL' + else if lexeme is 'break' + setToken('BREAK') + return 'BREAK' + else if lexeme is 'and' + @yytext = lexeme + setToken('LOGIC') + return 'LOGIC' + else if lexeme is 'abstract' + setToken('ABSTRACT') + return 'ABSTRACT' + else if lexeme is 'as' + setToken('AS') + return 'AS' + else if lexeme is 'catch' + setToken('CATCH') + return 'CATCH' + else if lexeme is 'case' + setToken('CASE') + return 'CASE' + else if lexeme is 'class' + setToken('CLASS') + return 'CLASS' + else if lexeme is 'clone' + setToken('CLONE') + return 'CLONE' + else if lexeme is 'continue' + setToken('CONTINUE') + return 'CONTINUE' + else if lexeme is 'cte' + setToken('CTE') + return 'CTE' + else if lexeme is 'declare' + setToken('DECLARE') + return 'DECLARE' + else if lexeme is 'delete' + setToken('DELETE') + return 'DELETE' + else if lexeme is 'do' + setToken('DO') + return 'DO' + else if lexeme is 'each' + setToken('EACH') + return 'EACH' + else if lexeme is 'echo' + setToken('ECHO') + return 'ECHO' + else if lexeme is 'else' + setToken('ELSE') + return 'ELSE' + else if lexeme is 'exec' + setToken('EXEC') + return 'EXEC' + else if lexeme is 'extends' + setToken('EXTENDS') + return 'EXTENDS' + else if lexeme is 'final' + setToken('FINAL') + return 'FINAL' + else if lexeme is 'finally' + setToken('FINALLY') + return 'FINALLY' + else if lexeme is 'for' + setToken('FOR') + return 'FOR' + else if lexeme is 'func' + setToken('FUNC') + return 'FUNC' + else if lexeme is 'goto' + setToken('GOTO') + return 'GOTO' + else if lexeme is 'if' + setToken('IF') + return 'IF' + else if lexeme is 'implements' + setToken('IMPLEMENTS') + return 'IMPLEMENTS' + else if lexeme is 'include' + setToken('INCLUDE') + return 'INCLUDE' + else if lexeme is 'instanceof' + setToken('INSTANCEOF') + return 'INSTANCEOF' + else if lexeme is 'interface' + setToken('INTERFACE') + return 'INTERFACE' + else if lexeme is "is" + @yytext = "===" + setToken('COMPARE') + return "COMPARE" + else if lexeme is "isnt" + @yytext = "!=" + setToken('COMPARE') + return "COMPARE" + else if lexeme is "in" + setToken('IN') + return "IN" + else if lexeme is 'not' + setToken('NOT') + return 'NOT' + else if lexeme is 'namespace' + setToken('NAMESPACE') + return 'NAMESPACE' + else if lexeme is 'new' + setToken('NEW') + return 'NEW' + else if lexeme is 'null' + setToken('NULL') + return 'NULL' + else if lexeme is 'once' + setToken('ONCE') + return 'ONCE' + else if lexeme is 'or' + @yytext = lexeme + setToken('LOGIC') + return 'LOGIC' + else if lexeme is 'public' + setToken('PUBLIC') + return 'PUBLIC' + else if lexeme is 'private' + setToken('PRIVATE') + return 'PRIVATE' + else if lexeme is 'protected' + setToken('PROTECTED') + return 'PROTECTED' + else if lexeme is 'static' + setToken('STATIC') + return 'STATIC' + else if lexeme is 'require' + setToken('REQUIRE') + return 'REQUIRE' + else if lexeme is 'return' + setToken('RETURN') + return 'RETURN' + else if lexeme is 'switch' + setToken('SWITCH') + return 'SWITCH' + else if lexeme is 'then' + setToken('THEN') + return 'THEN' + else if lexeme is 'try' + setToken('TRY') + return 'TRY' + else if lexeme is 'use' + setToken('USE') + return 'USE' + else if lexeme is 'when' + setToken('WHEN') + return 'WHEN' + else if lexeme is 'while' + setToken('WHILE') + return 'WHILE' + else + @yytext = lexeme + setToken('IDENTIFIER') + return "IDENTIFIER" + +# Number +lexer.addRule RegularExpression.NUMBER, (lexeme) -> + col += lexeme.length + @yytext = lexeme + setToken('NUMBER') + return "NUMBER" + +# String +lexer.addRule RegularExpression.STRING, (lexeme) -> + col += lexeme.length + @yytext = lexeme + setToken('STRING') + return "STRING" + +# Line Terminator +lexer.addRule RegularExpression.LineTerminator, (lexeme) -> + col = 1 + row++ + setToken('LineTerminator') + return "LineTerminator" \ No newline at end of file diff --git a/src/mammouth.coffee b/src/mammouth.coffee new file mode 100644 index 0000000..cd97be7 --- /dev/null +++ b/src/mammouth.coffee @@ -0,0 +1,19 @@ +yy = require './nodes' +parser = require('./parser').parser +lexer = require './lexer' +rewriter = require './rewriter' +{PreContext} = require './context' +parser.lexer = lexer +parser.yy = yy + +module.exports = + VERSION: '2.0.0' + + parser: parser + + parse: (code) -> + return @parser.parse code + + compile: (code, context) -> + tree = @parse code + result = rewriter.rewrite tree, if context then context else PreContext \ No newline at end of file diff --git a/src/nodes.coffee b/src/nodes.coffee new file mode 100644 index 0000000..64f796e --- /dev/null +++ b/src/nodes.coffee @@ -0,0 +1,258 @@ +# Documents +exports.PlainBlock = class PlainBlock + constructor: (@text) -> + @type = 'PlainBlock' + + toPHP: -> + return @text + +exports.MammouthBlock = class MammouthBlock + constructor: (@body) -> + @type = 'MammouthBlock' + +# Blocks +exports.Block = class Block + constructor: (@nodes) -> + @type = 'Block' + +exports.Expression = class Expression + constructor: (@expression) -> + @type = 'Expression' + +# Values, types and variables +exports.Value = class Value + constructor: (@value, @properties = []) -> + @type = 'Value' + + add: (prop) -> + @properties.push(prop) + +exports.Access = class Access + constructor: (@value, @method = ".") -> + @type = 'Access' + +exports.Parens = class Parens + constructor: (@expression) -> + @type = 'Parens' + +exports.Identifier = class Identifier + constructor: (@name, @as_arguments = false, @passing = false) -> + @type = 'Identifier' + +exports.Literal = class Literal + constructor: (@value) -> + @type = 'Literal' + +exports.Bool = class Bool + constructor: (@value) -> + @type = 'Bool' + +exports.Null = class + constructor: -> + @type = 'Null' + +exports.Array = class Array + constructor: (@elements = []) -> + @type = 'Array' + +exports.ArrayKey = class ArrayKey + constructor: (@key, @value) -> + @type = 'ArrayKey' + +exports.Call = class Call + constructor: (@variable, @arguments = []) -> + @type = 'Call' + +exports.NewCall = class NewCall + constructor: (@variable, @arguments = false) -> + @type = 'NewCall' + +exports.Code = class Code + constructor: (@parameters, @body, @normal = false, @name = null) -> + @type = 'Code' + +exports.Casting = class Casting + constructor: (@variable, @typec) -> + @type = 'Casting' + +exports.Exec = class Exec + constructor: (code) -> + @type = 'Exec' + if code[0] is "'" + @code = code.replace(/\'/g, '') + else if code[0] is '"' + @code = code.replace(/\"/g, '') + +exports.HereDoc = class HereDoc + constructor: (@doc) -> + @type = 'HereDoc' + +exports.Clone = class Clone + constructor: (@value) -> + @type = 'Clone' + + +# Operations +exports.Assign = class Assign + constructor: (@operator, @left, @right) -> + @type = 'Assign' + +exports.GetKeyAssign = class GetKeyAssign + constructor: (@keys, @source) -> + @type = 'GetKeyAssign' + +exports.Constant = class Constant + constructor: (@left, @right) -> + @type = 'Constant' + +exports.Unary = class Unary + constructor: (@operator, @expression) -> + @type = 'Unary' + +exports.Update = class Update + constructor: (@operator, @expression, @prefix = true) -> + @type = 'Update' + +exports.Existence = class Existence + constructor: (@expression) -> + @type = 'Existence' + +exports.Operation = class Operation + constructor: (@operator, @left, @right) -> + @type = 'Operation' + +exports.In = class In + constructor: (@left, @right) -> + @type = 'In' + +# Simple Statements +exports.Echo = class Echo + constructor: (@value) -> + @type = 'Echo' + +exports.Delete = class Delete + constructor: (@value) -> + @type = 'Delete' + +exports.Include = class Include + constructor: (@path, @once) -> + @type = 'Include' + +exports.Require = class Require + constructor: (@path, @once) -> + @type = 'Require' + +exports.Break = class Break + constructor: (@arg = false) -> + @type = 'Break' + +exports.Continue = class Continue + constructor: (@arg = false) -> + @type = 'Continue' + +exports.Return = class Return + constructor: (@value) -> + @type = 'Return' + +exports.Declare = class Declare + constructor: (@expression, @script = false) -> + @type = 'Declare' + +exports.Goto = class Goto + constructor: (@section) -> + @type = 'Goto' + +# If +exports.If = class If + constructor: (@condition, @body, @as_expression = false) -> + @type = 'If' + if not @as_expression + @Elses = [] + else + @Elses = false + + addElse: (element) -> + @Elses.push(element) + +exports.ElseIf = class ElseIf + constructor: (@condition, @body) -> + @type = 'ElseIf' + +exports.Else = class Else + constructor: (@body) -> + @type = 'Else' + +# While +exports.While = class While + constructor: (@test, @body) -> + @type = 'While' + +# Do While +exports.DoWhile = class DoWhile + constructor: (@test, @body) -> + @type = 'DoWhile' + +# Try +exports.Try = class Try + constructor: (@TryBody, @CatchIdentifier, @CatchBody, @Finally = false) -> + @type = 'Try' + + addFinally: (body) -> + @Finally = true + @FinallyBody = body + +# Switch +exports.Switch = class Switch + constructor: (@variable, @cases) -> + @type = 'Switch' + +exports.When = class When + constructor: (@condition, @body) -> + @type = 'When' + +exports.SwitchElse = class SwitchElse + constructor: (@body) -> + @type = 'SwitchElse' + +# For +exports.For = class For + constructor: -> + @type = 'For' + if arguments[0] is 'normal' + @method = 'normal' + @expressions = arguments[1] + @body = arguments[2] + else if arguments[0] is 'foreach' + @method = 'foreach' + @left = arguments[1] + @right = arguments[2] + @body = arguments[3] + +# Section +exports.Section = class Section + constructor: (@name) -> + @type = 'Section' + +# Classe +exports.Class = class Class + constructor: (@name, @body, @extendable = false, @implement = false, @abstract = false) -> + @type = "Class" + +exports.ClassLine = class ClassLine + constructor: (@visibility, @statically, @element) -> + @type = 'ClassLine' + @abstract = false + +# Interface +exports.Interface = class Interface + constructor: (@name, @body, @extendable = false) -> + @type = "Interface" + +# Namespace +exports.Namespace = class Namespace + constructor: (@name, @body = false) -> + @type = 'Namespace' + +exports.NamespaceRef = class NamespaceRef + constructor: (@path) -> + @type = 'NamespaceRef' \ No newline at end of file diff --git a/src/parser.js b/src/parser.js deleted file mode 100644 index 24086c7..0000000 --- a/src/parser.js +++ /dev/null @@ -1,14223 +0,0 @@ -mammouth.parser = (function(){ - /* - * Generated by PEG.js 0.7.0. - * - * http://pegjs.majda.cz/ - */ - - function quote(s) { - /* - * ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a - * string literal except for the closing quote character, backslash, - * carriage return, line separator, paragraph separator, and line feed. - * Any character may appear in the form of an escape sequence. - * - * For portability, we also escape escape all control and non-ASCII - * characters. Note that "\0" and "\v" escape sequences are not used - * because JSHint does not like the first and IE the second. - */ - return '"' + s - .replace(/\\/g, '\\\\') // backslash - .replace(/"/g, '\\"') // closing quote character - .replace(/\x08/g, '\\b') // backspace - .replace(/\t/g, '\\t') // horizontal tab - .replace(/\n/g, '\\n') // line feed - .replace(/\f/g, '\\f') // form feed - .replace(/\r/g, '\\r') // carriage return - .replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g, escape) - + '"'; - } - - var result = { - /* - * Parses the input with a generated parser. If the parsing is successfull, - * returns a value explicitly or implicitly specified by the grammar from - * which the parser was generated (see |PEG.buildParser|). If the parsing is - * unsuccessful, throws |PEG.parser.SyntaxError| describing the error. - */ - parse: function(input, startRule) { - var parseFunctions = { - "start": parse_start, - "embedding": parse_embedding, - "embedding_TEXT_INNER": parse_embedding_TEXT_INNER, - "code_block": parse_code_block, - "PrimaryExpression": parse_PrimaryExpression, - "PrimaryExpressionW": parse_PrimaryExpressionW, - "Expression": parse_Expression, - "AssignmentExpression": parse_AssignmentExpression, - "SliceExpression": parse_SliceExpression, - "SliceExpressionWP": parse_SliceExpressionWP, - "FunctionExpression": parse_FunctionExpression, - "FormalParameterList": parse_FormalParameterList, - "AssignmentExpressionOfFunction": parse_AssignmentExpressionOfFunction, - "LeftHandSideAssignmentExpressionOfFunction": parse_LeftHandSideAssignmentExpressionOfFunction, - "AssignmentOperator": parse_AssignmentOperator, - "LeftHandSideExpression": parse_LeftHandSideExpression, - "LeftHandSideExpressionWP": parse_LeftHandSideExpressionWP, - "NewExpression": parse_NewExpression, - "NewExpressionWP": parse_NewExpressionWP, - "MemberExpression": parse_MemberExpression, - "MemberExpressionWP": parse_MemberExpressionWP, - "CallExpression": parse_CallExpression, - "CallExpressionWP": parse_CallExpressionWP, - "Arguments": parse_Arguments, - "ArgumentList": parse_ArgumentList, - "ConditionalExpression": parse_ConditionalExpression, - "LogicalORExpression": parse_LogicalORExpression, - "LogicalOROperator": parse_LogicalOROperator, - "LogicalANDExpression": parse_LogicalANDExpression, - "LogicalANDOperator": parse_LogicalANDOperator, - "BitwiseORExpression": parse_BitwiseORExpression, - "BitwiseOROperator": parse_BitwiseOROperator, - "BitwiseXORExpression": parse_BitwiseXORExpression, - "BitwiseXOROperator": parse_BitwiseXOROperator, - "BitwiseANDExpression": parse_BitwiseANDExpression, - "BitwiseANDOperator": parse_BitwiseANDOperator, - "EqualityExpression": parse_EqualityExpression, - "EqualityOperator": parse_EqualityOperator, - "ShiftExpression": parse_ShiftExpression, - "ShiftOperator": parse_ShiftOperator, - "RelationalExpression": parse_RelationalExpression, - "RelationalOperator": parse_RelationalOperator, - "PostfixExpression": parse_PostfixExpression, - "PostfixOperator": parse_PostfixOperator, - "UnaryExpression": parse_UnaryExpression, - "UnaryOperator": parse_UnaryOperator, - "MultiplicativeExpression": parse_MultiplicativeExpression, - "MultiplicativeOperator": parse_MultiplicativeOperator, - "AdditiveExpression": parse_AdditiveExpression, - "DotAddExpression": parse_DotAddExpression, - "AdditiveOperator": parse_AdditiveOperator, - "statements": parse_statements, - "statement": parse_statement, - "statementNoSameDENT": parse_statementNoSameDENT, - "ExpressionStatement": parse_ExpressionStatement, - "FunctionInLineCall": parse_FunctionInLineCall, - "CallExpression": parse_CallExpression, - "ArgumentsForInline": parse_ArgumentsForInline, - "IfStatement": parse_IfStatement, - "ForStatement": parse_ForStatement, - "WhileStatement": parse_WhileStatement, - "SwitchStatement": parse_SwitchStatement, - "SwitchCase": parse_SwitchCase, - "SwitchElse": parse_SwitchElse, - "BreakStatement": parse_BreakStatement, - "TryStatement": parse_TryStatement, - "CatchErrVar": parse_CatchErrVar, - "FunctionDeclaration": parse_FunctionDeclaration, - "NamespaceDeclaration": parse_NamespaceDeclaration, - "NamespaceId": parse_NamespaceId, - "ClassDeclaration": parse_ClassDeclaration, - "ClassStatement": parse_ClassStatement, - "ClassPropertyDeclaration": parse_ClassPropertyDeclaration, - "ClassConstPropertyDeclaration": parse_ClassConstPropertyDeclaration, - "ClassFunctionDeclaration": parse_ClassFunctionDeclaration, - "PropertyVisibility": parse_PropertyVisibility, - "ContinueStatement": parse_ContinueStatement, - "BreakStatement": parse_BreakStatement, - "EchoStatement": parse_EchoStatement, - "ReturnStatement": parse_ReturnStatement, - "RequireStatement": parse_RequireStatement, - "Require_onceStatement": parse_Require_onceStatement, - "Include_onceStatement": parse_Include_onceStatement, - "IncludeStatement": parse_IncludeStatement, - "AndToken": parse_AndToken, - "BreakToken": parse_BreakToken, - "CaseToken": parse_CaseToken, - "CatchToken": parse_CatchToken, - "ClassToken": parse_ClassToken, - "ConstToken": parse_ConstToken, - "ContinueToken": parse_ContinueToken, - "EchoToken": parse_EchoToken, - "ElseToken": parse_ElseToken, - "ElseIfToken": parse_ElseIfToken, - "FalseToken": parse_FalseToken, - "finallyToken": parse_finallyToken, - "ForToken": parse_ForToken, - "IfToken": parse_IfToken, - "IncludeToken": parse_IncludeToken, - "Include_onceToken": parse_Include_onceToken, - "InToken": parse_InToken, - "NamespaceToken": parse_NamespaceToken, - "NewToken": parse_NewToken, - "NullToken": parse_NullToken, - "OfToken": parse_OfToken, - "OrToken": parse_OrToken, - "ReturnToken": parse_ReturnToken, - "RequireToken": parse_RequireToken, - "Require_onceToken": parse_Require_onceToken, - "PrivateToken": parse_PrivateToken, - "ProtectedToken": parse_ProtectedToken, - "PublicToken": parse_PublicToken, - "script_start": parse_script_start, - "script_end": parse_script_end, - "StaticToken": parse_StaticToken, - "SwitchToken": parse_SwitchToken, - "ThenToken": parse_ThenToken, - "ThisToken": parse_ThisToken, - "TrueToken": parse_TrueToken, - "TryToken": parse_TryToken, - "WhileToken": parse_WhileToken, - "ReservedWord": parse_ReservedWord, - "SourceCharacter": parse_SourceCharacter, - "WhiteSpace": parse_WhiteSpace, - "LineTerminator": parse_LineTerminator, - "LineTerminatorSequence": parse_LineTerminatorSequence, - "Comment": parse_Comment, - "MultiLineComment": parse_MultiLineComment, - "MultiLineCommentNoLineTerminator": parse_MultiLineCommentNoLineTerminator, - "SingleLineComment": parse_SingleLineComment, - "Identifier": parse_Identifier, - "IdentifierName": parse_IdentifierName, - "IdentifierStart": parse_IdentifierStart, - "IdentifierPart": parse_IdentifierPart, - "UnicodeLetter": parse_UnicodeLetter, - "UnicodeCombiningMark": parse_UnicodeCombiningMark, - "_": parse__, - "__": parse___, - "___": parse____, - "Literal": parse_Literal, - "NullLiteral": parse_NullLiteral, - "BooleanLiteral": parse_BooleanLiteral, - "NumericLiteral": parse_NumericLiteral, - "DecimalLiteral": parse_DecimalLiteral, - "DecimalIntegerLiteral": parse_DecimalIntegerLiteral, - "DecimalDigits": parse_DecimalDigits, - "DecimalDigit": parse_DecimalDigit, - "NonZeroDigit": parse_NonZeroDigit, - "ExponentPart": parse_ExponentPart, - "ExponentIndicator": parse_ExponentIndicator, - "SignedInteger": parse_SignedInteger, - "HexIntegerLiteral": parse_HexIntegerLiteral, - "HexDigit": parse_HexDigit, - "StringLiteral": parse_StringLiteral, - "DoubleStringCharacters": parse_DoubleStringCharacters, - "SingleStringCharacters": parse_SingleStringCharacters, - "DoubleStringCharacter": parse_DoubleStringCharacter, - "SingleStringCharacter": parse_SingleStringCharacter, - "EODLiteral": parse_EODLiteral, - "EOTLiteral": parse_EOTLiteral, - "EODString": parse_EODString, - "EOTString": parse_EOTString, - "ArrayLiteral": parse_ArrayLiteral, - "ElementList": parse_ElementList, - "Elision": parse_Elision, - "PropertyNameAndValueList": parse_PropertyNameAndValueList, - "PropertyAssignment": parse_PropertyAssignment, - "PropertyName": parse_PropertyName, - "PHPLiteral": parse_PHPLiteral, - "RAWString": parse_RAWString, - "Ll": parse_Ll, - "Lm": parse_Lm, - "Lo": parse_Lo, - "Lt": parse_Lt, - "Lu": parse_Lu, - "Mc": parse_Mc, - "Mn": parse_Mn, - "Nd": parse_Nd, - "Nl": parse_Nl, - "Pc": parse_Pc, - "Zs": parse_Zs, - "blank": parse_blank, - "EOL": parse_EOL, - "SAMEDENT": parse_SAMEDENT, - "INDENT": parse_INDENT, - "DEDENT": parse_DEDENT - }; - - if (startRule !== undefined) { - if (parseFunctions[startRule] === undefined) { - throw new Error("Invalid rule name: " + quote(startRule) + "."); - } - } else { - startRule = "start"; - } - - var pos = 0; - var reportFailures = 0; - var rightmostFailuresPos = 0; - var rightmostFailuresExpected = []; - - function padLeft(input, padding, length) { - var result = input; - - var padLength = length - input.length; - for (var i = 0; i < padLength; i++) { - result = padding + result; - } - - return result; - } - - function escape(ch) { - var charCode = ch.charCodeAt(0); - var escapeChar; - var length; - - if (charCode <= 0xFF) { - escapeChar = 'x'; - length = 2; - } else { - escapeChar = 'u'; - length = 4; - } - - return '\\' + escapeChar + padLeft(charCode.toString(16).toUpperCase(), '0', length); - } - - function matchFailed(failure) { - if (pos < rightmostFailuresPos) { - return; - } - - if (pos > rightmostFailuresPos) { - rightmostFailuresPos = pos; - rightmostFailuresExpected = []; - } - - rightmostFailuresExpected.push(failure); - } - - function parse_start() { - var result0, result1; - - result0 = []; - result1 = parse_code_block(); - if (result1 === null) { - result1 = parse_embedding(); - } - while (result1 !== null) { - result0.push(result1); - result1 = parse_code_block(); - if (result1 === null) { - result1 = parse_embedding(); - } - } - return result0; - } - - function parse_embedding() { - var result0, result1; - var pos0; - - pos0 = pos; - result1 = parse_embedding_TEXT_INNER(); - if (result1 !== null) { - result0 = []; - while (result1 !== null) { - result0.push(result1); - result1 = parse_embedding_TEXT_INNER(); - } - } else { - result0 = null; - } - if (result0 !== null) { - result0 = (function(offset, body) { return {type:'embed', content:body.join('')}})(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_embedding_TEXT_INNER() { - var result0, result1, result2; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - reportFailures++; - result0 = parse_script_start(); - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - result1 = parse_script_end(); - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - if (input.length > pos) { - result2 = input.charAt(pos); - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, c) {return c})(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_code_block() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_script_start(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_LineTerminator(); - if (result2 !== null) { - result3 = parse_statements(); - if (result3 !== null) { - result4 = parse_script_end(); - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, els) { return {type:'block', elements:els}})(pos0, result0[3]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_PrimaryExpression() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - result0 = parse_ThisToken(); - if (result0 !== null) { - result0 = (function(offset) { return { type: "This" }; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_NullLiteral(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_LeftHandSideExpressionWP(); - if (result0 !== null) { - if (input.charCodeAt(pos) === 63) { - result1 = "?"; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"?\""); - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name) { - return { - type: 'FunctionCall', - name: { - type: 'Variable', - name: 'isset' - }, - arguments: [ - name - ] - }; - })(pos0, result0[0]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_Identifier(); - if (result0 !== null) { - result0 = (function(offset, name) { return { type: "Variable", name: name }; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 64) { - result0 = "@"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"@\""); - } - } - if (result0 !== null) { - result1 = parse_Identifier(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name) { - return { - type: "PropertyAccess", - base: {type: "Variable", name: "this"}, - name: name - }; - })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_NamespaceId(); - if (result0 === null) { - result0 = parse_Literal(); - if (result0 === null) { - result0 = parse_ArrayLiteral(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 40) { - result0 = "("; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_Expression(); - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 41) { - result4 = ")"; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, expression) { return expression; })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - } - } - } - } - } - } - } - } - return result0; - } - - function parse_PrimaryExpressionW() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - result0 = parse_ThisToken(); - if (result0 !== null) { - result0 = (function(offset) { return { type: "This" }; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_NullLiteral(); - if (result0 === null) { - pos0 = pos; - result0 = parse_Identifier(); - if (result0 !== null) { - result0 = (function(offset, name) { return { type: "Variable", name: name }; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 64) { - result0 = "@"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"@\""); - } - } - if (result0 !== null) { - result1 = parse_Identifier(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name) { - return { - type: "PropertyAccess", - base: {type: "Variable", name: "this"}, - name: name - }; - })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_NamespaceId(); - if (result0 === null) { - result0 = parse_Literal(); - if (result0 === null) { - result0 = parse_ArrayLiteral(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 40) { - result0 = "("; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_Expression(); - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 41) { - result4 = ")"; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, expression) { return expression; })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - } - } - } - } - } - } - } - return result0; - } - - function parse_Expression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_AssignmentExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_AssignmentExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_AssignmentExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_AssignmentExpression() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_LeftHandSideExpression(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentOperator(); - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_FunctionExpression(); - if (result4 === null) { - result4 = parse_AssignmentExpression(); - } - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, left, operator, right) { - return { - type: "AssignmentExpression", - operator: operator, - left: left, - right: right - }; - })(pos0, result0[0], result0[2], result0[4]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_FunctionExpression(); - if (result0 === null) { - result0 = parse_ConditionalExpression(); - } - } - return result0; - } - - function parse_SliceExpression() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_MemberExpression(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - if (input.charCodeAt(pos) === 91) { - result2 = "["; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_Expression(); - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - if (input.charCodeAt(pos) === 58) { - result6 = ":"; - pos++; - } else { - result6 = null; - if (reportFailures === 0) { - matchFailed("\":\""); - } - } - if (result6 !== null) { - result7 = parse___(); - if (result7 !== null) { - result8 = parse_Expression(); - result8 = result8 !== null ? result8 : ""; - if (result8 !== null) { - result9 = parse___(); - if (result9 !== null) { - if (input.charCodeAt(pos) === 93) { - result10 = "]"; - pos++; - } else { - result10 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result10 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, slicer, start, end) { - return { - type: "SliceExpression", - slicer: slicer, - start: start !== '' ? start:0, - end: end !== '' ? end:null - }; - })(pos0, result0[0], result0[4], result0[8]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_SliceExpressionWP() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_MemberExpressionWP(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - if (input.charCodeAt(pos) === 91) { - result2 = "["; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_Expression(); - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - if (input.charCodeAt(pos) === 58) { - result6 = ":"; - pos++; - } else { - result6 = null; - if (reportFailures === 0) { - matchFailed("\":\""); - } - } - if (result6 !== null) { - result7 = parse___(); - if (result7 !== null) { - result8 = parse_Expression(); - result8 = result8 !== null ? result8 : ""; - if (result8 !== null) { - result9 = parse___(); - if (result9 !== null) { - if (input.charCodeAt(pos) === 93) { - result10 = "]"; - pos++; - } else { - result10 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result10 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, slicer, start, end) { - return { - type: "SliceExpression", - slicer: slicer, - start: start !== '' ? start:0, - end: end !== '' ? end:null - }; - })(pos0, result0[0], result0[4], result0[8]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_FunctionExpression() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - pos3 = pos; - if (input.charCodeAt(pos) === 40) { - result0 = "("; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_FormalParameterList(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 41) { - result4 = ")"; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result0 = (function(offset, prm) {return prm;})(pos2, result0[2]); - } - if (result0 === null) { - pos = pos2; - } - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - if (input.substr(pos, 2) === "->") { - result2 = "->"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"->\""); - } - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - pos2 = pos; - pos3 = pos; - result4 = []; - result5 = parse_blank(); - while (result5 !== null) { - result4.push(result5); - result5 = parse_blank(); - } - if (result4 !== null) { - result5 = parse_INDENT(); - if (result5 !== null) { - result6 = []; - result7 = parse_statement(); - while (result7 !== null) { - result6.push(result7); - result7 = parse_statement(); - } - if (result6 !== null) { - result7 = parse_DEDENT(); - if (result7 !== null) { - result4 = [result4, result5, result6, result7]; - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - if (result4 !== null) { - result4 = (function(offset, b, c) { return b.concat(c); })(pos2, result4[0], result4[2]); - } - if (result4 === null) { - pos = pos2; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, params, body) { - if(params == '') { - params = [] - } - return { - type: "Function", - params: params, - body: body !== '' ? body:null - } - })(pos0, result0[0], result0[4]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_FormalParameterList() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_AssignmentExpressionOfFunction(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_AssignmentExpressionOfFunction(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_AssignmentExpressionOfFunction(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = [head]; - for (var i = 0; i < tail.length; i++) { - result.push(tail[i][3]); - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_AssignmentExpressionOfFunction() { - var result0, result1, result2, result3, result4; - var pos0, pos1, pos2, pos3, pos4; - - pos0 = pos; - pos1 = pos; - result0 = parse_LeftHandSideAssignmentExpressionOfFunction(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - pos2 = pos; - pos3 = pos; - if (input.charCodeAt(pos) === 61) { - result2 = "="; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - if (result2 !== null) { - pos4 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 61) { - result3 = "="; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - reportFailures--; - if (result3 === null) { - result3 = ""; - } else { - result3 = null; - pos = pos4; - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset) { return "="; })(pos2); - } - if (result2 === null) { - pos = pos2; - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_AssignmentExpression(); - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, left, operator, right) { - return { - type: "AssignmentExpressionOfFunction", - operator: operator, - left: left, - right: right - }; - })(pos0, result0[0], result0[2], result0[4]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_LeftHandSideAssignmentExpressionOfFunction(); - } - return result0; - } - - function parse_LeftHandSideAssignmentExpressionOfFunction() { - var result0, result1; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 38) { - result0 = "&"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"&\""); - } - } - if (result0 !== null) { - result1 = parse_Identifier(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name) { return { type: "ReferenceVariable", name: name }; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_Identifier(); - if (result0 !== null) { - result0 = (function(offset, name) { return { type: "Variable", name: name }; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_AssignmentOperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 61) { - result0 = "="; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "="; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - if (input.substr(pos, 2) === "*=") { - result0 = "*="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"*=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "/=") { - result0 = "/="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"/=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "%=") { - result0 = "%="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"%=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "+=") { - result0 = "+="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"+=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === ".=") { - result0 = ".="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\".=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "-=") { - result0 = "-="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"-=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 3) === "<<=") { - result0 = "<<="; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"<<=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 3) === ">>=") { - result0 = ">>="; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\">>=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 4) === ">>>=") { - result0 = ">>>="; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\">>>=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "&=") { - result0 = "&="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"&=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "^=") { - result0 = "^="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"^=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "|=") { - result0 = "|="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"|=\""); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - return result0; - } - - function parse_LeftHandSideExpression() { - var result0; - - result0 = parse_CallExpression(); - if (result0 === null) { - result0 = parse_SliceExpression(); - if (result0 === null) { - result0 = parse_NewExpression(); - } - } - return result0; - } - - function parse_LeftHandSideExpressionWP() { - var result0; - - result0 = parse_CallExpressionWP(); - if (result0 === null) { - result0 = parse_SliceExpressionWP(); - if (result0 === null) { - result0 = parse_NewExpressionWP(); - } - } - return result0; - } - - function parse_NewExpression() { - var result0, result1, result2; - var pos0, pos1; - - result0 = parse_MemberExpression(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_NewToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_NamespaceId(); - if (result2 === null) { - result2 = parse_Identifier(); - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, constructor) { - return { - type: "NewOperator", - constructor: constructor, - arguments: [] - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_NewExpressionWP() { - var result0, result1, result2; - var pos0, pos1; - - result0 = parse_MemberExpressionWP(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_NewToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_NamespaceId(); - if (result2 === null) { - result2 = parse_Identifier(); - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, constructor) { - return { - type: "NewOperator", - constructor: constructor, - arguments: [] - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_MemberExpression() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_PrimaryExpression(); - if (result0 === null) { - pos2 = pos; - pos3 = pos; - result0 = parse_NewToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_NamespaceId(); - if (result2 === null) { - result2 = parse_Identifier(); - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_Arguments(); - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result0 = (function(offset, constructor, arguments) { - return { - type: "NewOperator", - constructor: constructor, - arguments: arguments - }; - })(pos2, result0[2], result0[4]); - } - if (result0 === null) { - pos = pos2; - } - } - if (result0 !== null) { - result1 = []; - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - if (input.charCodeAt(pos) === 93) { - result5 = "]"; - pos++; - } else { - result5 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset) { return ['PushArray']; })(pos2); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 123) { - result3 = "{"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"{\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 125) { - result7 = "}"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"}\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: 'PropertyFields', - name: name - } - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.substr(pos, 2) === "::") { - result3 = "::"; - pos += 2; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"::\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return [name, '::']; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - if (input.charCodeAt(pos) === 93) { - result5 = "]"; - pos++; - } else { - result5 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset) { return ['PushArray']; })(pos2); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 123) { - result3 = "{"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"{\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 125) { - result7 = "}"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"}\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: 'PropertyFields', - name: name - } - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.substr(pos, 2) === "::") { - result3 = "::"; - pos += 2; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"::\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return [name, '::']; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, base, accessors) { - var result = base; - for (var i = 0; i < accessors.length; i++) { - result = { - type: "PropertyAccess", - base: result, - name: accessors[i] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_MemberExpressionWP() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_PrimaryExpressionW(); - if (result0 === null) { - pos2 = pos; - pos3 = pos; - result0 = parse_NewToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_NamespaceId(); - if (result2 === null) { - result2 = parse_Identifier(); - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_Arguments(); - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result0 = (function(offset, constructor, arguments) { - return { - type: "NewOperator", - constructor: constructor, - arguments: arguments - }; - })(pos2, result0[2], result0[4]); - } - if (result0 === null) { - pos = pos2; - } - } - if (result0 !== null) { - result1 = []; - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 123) { - result3 = "{"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"{\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 125) { - result7 = "}"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"}\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: 'PropertyFields', - name: name - } - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.substr(pos, 2) === "::") { - result3 = "::"; - pos += 2; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"::\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return [name, '::']; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return name; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 123) { - result3 = "{"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"{\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 125) { - result7 = "}"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"}\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: 'PropertyFields', - name: name - } - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.substr(pos, 2) === "::") { - result3 = "::"; - pos += 2; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"::\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { return [name, '::']; })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, base, accessors) { - var result = base; - for (var i = 0; i < accessors.length; i++) { - result = { - type: "PropertyAccess", - base: result, - name: accessors[i] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_CallExpression() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - pos3 = pos; - result0 = parse_MemberExpression(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_Arguments(); - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result0 = (function(offset, name, arguments) { - return { - type: "FunctionCall", - name: name, - arguments: arguments - }; - })(pos2, result0[0], result0[2]); - } - if (result0 === null) { - pos = pos2; - } - if (result0 !== null) { - result1 = []; - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Arguments(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, arguments) { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - })(pos2, result2[1]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Arguments(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, arguments) { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - })(pos2, result2[1]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, base, argumentsOrAccessors) { - var result = base; - for (var i = 0; i < argumentsOrAccessors.length; i++) { - switch (argumentsOrAccessors[i].type) { - case "FunctionCallArguments": - result = { - type: "FunctionCall", - name: result, - arguments: argumentsOrAccessors[i].arguments - }; - break; - case "PropertyAccessProperty": - result = { - type: "PropertyAccess", - base: result, - name: argumentsOrAccessors[i].name - }; - break; - default: - throw new Error( - "Invalid expression type: " + argumentsOrAccessors[i].type - ); - } - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_CallExpressionWP() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - pos3 = pos; - result0 = parse_MemberExpressionWP(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_Arguments(); - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result0 = (function(offset, name, arguments) { - return { - type: "FunctionCall", - name: name, - arguments: arguments - }; - })(pos2, result0[0], result0[2]); - } - if (result0 === null) { - pos = pos2; - } - if (result0 !== null) { - result1 = []; - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Arguments(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, arguments) { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - })(pos2, result2[1]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Arguments(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, arguments) { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - })(pos2, result2[1]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, base, argumentsOrAccessors) { - var result = base; - for (var i = 0; i < argumentsOrAccessors.length; i++) { - switch (argumentsOrAccessors[i].type) { - case "FunctionCallArguments": - result = { - type: "FunctionCall", - name: result, - arguments: argumentsOrAccessors[i].arguments - }; - break; - case "PropertyAccessProperty": - result = { - type: "PropertyAccess", - base: result, - name: argumentsOrAccessors[i].name - }; - break; - default: - throw new Error( - "Invalid expression type: " + argumentsOrAccessors[i].type - ); - } - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_Arguments() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 40) { - result0 = "("; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_ArgumentList(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 41) { - result4 = ")"; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, arguments) { - return arguments !== "" ? arguments : []; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ArgumentList() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_AssignmentExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_AssignmentExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_AssignmentExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = [head]; - for (var i = 0; i < tail.length; i++) { - result.push(tail[i][3]); - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ConditionalExpression() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_LogicalORExpression(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - if (input.charCodeAt(pos) === 63) { - result2 = "?"; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"?\""); - } - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_AssignmentExpression(); - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - if (input.charCodeAt(pos) === 58) { - result6 = ":"; - pos++; - } else { - result6 = null; - if (reportFailures === 0) { - matchFailed("\":\""); - } - } - if (result6 !== null) { - result7 = parse___(); - if (result7 !== null) { - result8 = parse_AssignmentExpression(); - if (result8 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, condition, trueExpression, falseExpression) { - return { - type: "ConditionalExpression", - condition: condition, - trueExpression: trueExpression, - falseExpression: falseExpression - }; - })(pos0, result0[0], result0[4], result0[8]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_LogicalORExpression(); - } - return result0; - } - - function parse_LogicalORExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_LogicalANDExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_LogicalOROperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_LogicalANDExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_LogicalOROperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_LogicalANDExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_LogicalOROperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.substr(pos, 2) === "||") { - result0 = "||"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"||\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "or") { - result0 = "or"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"or\""); - } - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "||"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_LogicalANDExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_BitwiseORExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_LogicalANDOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_BitwiseORExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_LogicalANDOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_BitwiseORExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_LogicalANDOperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.substr(pos, 2) === "&&") { - result0 = "&&"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"&&\""); - } - } - if (result0 === null) { - if (input.substr(pos, 3) === "and") { - result0 = "and"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"and\""); - } - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "&&"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BitwiseORExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_BitwiseXORExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_BitwiseOROperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_BitwiseXORExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_BitwiseOROperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_BitwiseXORExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BitwiseOROperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 124) { - result0 = "|"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"|\""); - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 124) { - result1 = "|"; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"|\""); - } - } - if (result1 === null) { - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "|"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BitwiseXORExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_BitwiseANDExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_BitwiseXOROperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_BitwiseANDExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_BitwiseXOROperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_BitwiseANDExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BitwiseXOROperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 94) { - result0 = "^"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"^\""); - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 94) { - result1 = "^"; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"^\""); - } - } - if (result1 === null) { - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "^"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BitwiseANDExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_EqualityExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_BitwiseANDOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_EqualityExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_BitwiseANDOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_EqualityExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BitwiseANDOperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 38) { - result0 = "&"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"&\""); - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 38) { - result1 = "&"; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"&\""); - } - } - if (result1 === null) { - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "&"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EqualityExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_RelationalExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_EqualityOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_RelationalExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_EqualityOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_RelationalExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EqualityOperator() { - var result0; - - if (input.substr(pos, 3) === "===") { - result0 = "==="; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"===\""); - } - } - if (result0 === null) { - if (input.substr(pos, 3) === "!==") { - result0 = "!=="; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"!==\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "==") { - result0 = "=="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"==\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "!=") { - result0 = "!="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"!=\""); - } - } - } - } - } - return result0; - } - - function parse_ShiftExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_DotAddExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_ShiftOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_DotAddExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_ShiftOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_DotAddExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ShiftOperator() { - var result0; - - if (input.substr(pos, 2) === "<<") { - result0 = "<<"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"<<\""); - } - } - if (result0 === null) { - if (input.substr(pos, 3) === ">>>") { - result0 = ">>>"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\">>>\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === ">>") { - result0 = ">>"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\">>\""); - } - } - } - } - return result0; - } - - function parse_RelationalExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_ShiftExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_RelationalOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_ShiftExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_RelationalOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_ShiftExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_RelationalOperator() { - var result0; - - if (input.substr(pos, 2) === "<=") { - result0 = "<="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"<=\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === ">=") { - result0 = ">="; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\">=\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 60) { - result0 = "<"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"<\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 62) { - result0 = ">"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\">\""); - } - } - if (result0 === null) { - result0 = parse_OfToken(); - } - } - } - } - return result0; - } - - function parse_PostfixExpression() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_LeftHandSideExpression(); - if (result0 !== null) { - result1 = parse__(); - if (result1 !== null) { - result2 = parse_PostfixOperator(); - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, expression, operator) { - return { - type: "PostfixExpression", - operator: operator, - expression: expression - }; - })(pos0, result0[0], result0[2]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_LeftHandSideExpression(); - } - return result0; - } - - function parse_PostfixOperator() { - var result0; - - if (input.substr(pos, 2) === "++") { - result0 = "++"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"++\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "--") { - result0 = "--"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"--\""); - } - } - } - return result0; - } - - function parse_UnaryExpression() { - var result0, result1, result2; - var pos0, pos1; - - result0 = parse_PostfixExpression(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_UnaryOperator(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_UnaryExpression(); - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, operator, expression) { - return { - type: "UnaryExpression", - operator: operator, - expression: expression - }; - })(pos0, result0[0], result0[2]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_UnaryOperator() { - var result0; - - if (input.substr(pos, 2) === "++") { - result0 = "++"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"++\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "--") { - result0 = "--"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"--\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 43) { - result0 = "+"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"+\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 45) { - result0 = "-"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"-\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 126) { - result0 = "~"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"~\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 33) { - result0 = "!"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"!\""); - } - } - } - } - } - } - } - return result0; - } - - function parse_MultiplicativeExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_UnaryExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_MultiplicativeOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_UnaryExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_MultiplicativeOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_UnaryExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_MultiplicativeOperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 42) { - result0 = "*"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"*\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 47) { - result0 = "/"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"/\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 37) { - result0 = "%"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"%\""); - } - } - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, operator) { return operator; })(pos0, result0[0]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_AdditiveExpression() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_MultiplicativeExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_AdditiveOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_MultiplicativeExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_AdditiveOperator(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_MultiplicativeExpression(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_DotAddExpression() { - var result0, result1, result2, result3; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_AdditiveExpression(); - if (result0 !== null) { - result1 = []; - pos2 = pos; - result3 = parse_WhiteSpace(); - if (result3 !== null) { - result2 = []; - while (result3 !== null) { - result2.push(result3); - result3 = parse_WhiteSpace(); - } - } else { - result2 = null; - } - if (result2 !== null) { - result3 = parse_AdditiveExpression(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result3 = parse_WhiteSpace(); - if (result3 !== null) { - result2 = []; - while (result3 !== null) { - result2.push(result3); - result3 = parse_WhiteSpace(); - } - } else { - result2 = null; - } - if (result2 !== null) { - result3 = parse_AdditiveExpression(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: '.', - left: result, - right: tail[i][1] - }; - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_AdditiveOperator() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 43) { - result0 = "+"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"+\""); - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 43) { - result1 = "+"; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"+\""); - } - } - if (result1 === null) { - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "+"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 45) { - result0 = "-"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"-\""); - } - } - if (result0 !== null) { - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 45) { - result1 = "-"; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"-\""); - } - } - if (result1 === null) { - if (input.charCodeAt(pos) === 61) { - result1 = "="; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\"=\""); - } - } - } - reportFailures--; - if (result1 === null) { - result1 = ""; - } else { - result1 = null; - pos = pos2; - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return "-"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_statements() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_INDENT(); - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = []; - result2 = parse_statement(); - while (result2 !== null) { - result1.push(result2); - result2 = parse_statement(); - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) {return m;})(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_statement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_SwitchStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_IfStatement(); - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_ForStatement(); - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_WhileStatement(); - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_TryStatement(); - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_FunctionInLineCall(); - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_FunctionDeclaration(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_NamespaceDeclaration(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ClassDeclaration(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ContinueStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_BreakStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_EchoStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ReturnStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_Include_onceStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_Require_onceStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_RequireStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_IncludeStatement(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_ExpressionStatement(); - if (result0 === null) { - result0 = parse_blank(); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - return result0; - } - - function parse_statementNoSameDENT() { - var result0; - - result0 = parse_CallExpression(); - if (result0 === null) { - result0 = parse_Expression(); - } - return result0; - } - - function parse_ExpressionStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_Expression(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_FunctionInLineCall() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_CallExpression(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_CallExpression() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3, pos4; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - pos3 = pos; - pos4 = pos; - result0 = parse_Literal(); - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse_MemberExpression(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos4; - } - } else { - result0 = null; - pos = pos4; - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_ArgumentsForInline(); - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result0 = (function(offset, name, arguments) { - return { - type: "FunctionCall", - name: name, - arguments: arguments - }; - })(pos2, result0[0], result0[2]); - } - if (result0 === null) { - pos = pos2; - } - if (result0 !== null) { - result1 = []; - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Arguments(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, arguments) { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - })(pos2, result2[1]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Arguments(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, arguments) { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - })(pos2, result2[1]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 91) { - result3 = "["; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 93) { - result7 = "]"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result7 !== null) { - result2 = [result2, result3, result4, result5, result6, result7]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - if (result2 === null) { - pos2 = pos; - pos3 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 46) { - result3 = "."; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_IdentifierName(); - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, name) { - return { - type: "PropertyAccessProperty", - name: name - }; - })(pos2, result2[3]); - } - if (result2 === null) { - pos = pos2; - } - } - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, base, argumentsOrAccessors) { - var result = base; - for (var i = 0; i < argumentsOrAccessors.length; i++) { - switch (argumentsOrAccessors[i].type) { - case "FunctionCallArguments": - result = { - type: "FunctionCall", - name: result, - arguments: argumentsOrAccessors[i].arguments - }; - break; - case "PropertyAccessProperty": - result = { - type: "PropertyAccess", - base: result, - name: argumentsOrAccessors[i].name - }; - break; - default: - throw new Error( - "Invalid expression type: " + argumentsOrAccessors[i].type - ); - } - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ArgumentsForInline() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 40) { - result0 = "("; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_ArgumentList(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 41) { - result4 = ")"; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, arguments) { - return arguments !== "" ? arguments : []; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_IfStatement() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12, result13, result14, result15, result16, result17, result18, result19, result20, result21, result22, result23, result24, result25; - var pos0, pos1, pos2, pos3, pos4, pos5; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_IfToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 40) { - result3 = "("; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 41) { - result7 = ")"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result7 = result7 !== null ? result7 : ""; - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_EOL(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - pos2 = pos; - pos3 = pos; - result10 = []; - result11 = parse_blank(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_blank(); - } - if (result10 !== null) { - result11 = parse_INDENT(); - if (result11 !== null) { - result12 = []; - result13 = parse_statement(); - while (result13 !== null) { - result12.push(result13); - result13 = parse_statement(); - } - if (result12 !== null) { - result13 = parse_DEDENT(); - if (result13 !== null) { - result10 = [result10, result11, result12, result13]; - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - if (result10 !== null) { - result10 = (function(offset, b, c) { return b.concat(c); })(pos2, result10[0], result10[2]); - } - if (result10 === null) { - pos = pos2; - } - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - pos2 = pos; - pos3 = pos; - result12 = parse_SAMEDENT(); - if (result12 !== null) { - result13 = parse_ElseIfToken(); - if (result13 !== null) { - result14 = parse___(); - if (result14 !== null) { - if (input.charCodeAt(pos) === 40) { - result15 = "("; - pos++; - } else { - result15 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result15 = result15 !== null ? result15 : ""; - if (result15 !== null) { - result16 = parse___(); - if (result16 !== null) { - result17 = parse_Expression(); - if (result17 !== null) { - result18 = parse___(); - if (result18 !== null) { - if (input.charCodeAt(pos) === 41) { - result19 = ")"; - pos++; - } else { - result19 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result19 = result19 !== null ? result19 : ""; - if (result19 !== null) { - result20 = parse___(); - if (result20 !== null) { - result21 = parse_EOL(); - result21 = result21 !== null ? result21 : ""; - if (result21 !== null) { - pos4 = pos; - pos5 = pos; - result22 = []; - result23 = parse_blank(); - while (result23 !== null) { - result22.push(result23); - result23 = parse_blank(); - } - if (result22 !== null) { - result23 = parse_INDENT(); - if (result23 !== null) { - result24 = []; - result25 = parse_statement(); - while (result25 !== null) { - result24.push(result25); - result25 = parse_statement(); - } - if (result24 !== null) { - result25 = parse_DEDENT(); - if (result25 !== null) { - result22 = [result22, result23, result24, result25]; - } else { - result22 = null; - pos = pos5; - } - } else { - result22 = null; - pos = pos5; - } - } else { - result22 = null; - pos = pos5; - } - } else { - result22 = null; - pos = pos5; - } - if (result22 !== null) { - result22 = (function(offset, b, c) { return b.concat(c); })(pos4, result22[0], result22[2]); - } - if (result22 === null) { - pos = pos4; - } - result22 = result22 !== null ? result22 : ""; - if (result22 !== null) { - result12 = [result12, result13, result14, result15, result16, result17, result18, result19, result20, result21, result22]; - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - if (result12 !== null) { - result12 = (function(offset, condition, statement) {return { - condition: condition, - statement: statement, - } - })(pos2, result12[5], result12[10]); - } - if (result12 === null) { - pos = pos2; - } - if (result12 !== null) { - result11 = []; - while (result12 !== null) { - result11.push(result12); - pos2 = pos; - pos3 = pos; - result12 = parse_SAMEDENT(); - if (result12 !== null) { - result13 = parse_ElseIfToken(); - if (result13 !== null) { - result14 = parse___(); - if (result14 !== null) { - if (input.charCodeAt(pos) === 40) { - result15 = "("; - pos++; - } else { - result15 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result15 = result15 !== null ? result15 : ""; - if (result15 !== null) { - result16 = parse___(); - if (result16 !== null) { - result17 = parse_Expression(); - if (result17 !== null) { - result18 = parse___(); - if (result18 !== null) { - if (input.charCodeAt(pos) === 41) { - result19 = ")"; - pos++; - } else { - result19 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result19 = result19 !== null ? result19 : ""; - if (result19 !== null) { - result20 = parse___(); - if (result20 !== null) { - result21 = parse_EOL(); - result21 = result21 !== null ? result21 : ""; - if (result21 !== null) { - pos4 = pos; - pos5 = pos; - result22 = []; - result23 = parse_blank(); - while (result23 !== null) { - result22.push(result23); - result23 = parse_blank(); - } - if (result22 !== null) { - result23 = parse_INDENT(); - if (result23 !== null) { - result24 = []; - result25 = parse_statement(); - while (result25 !== null) { - result24.push(result25); - result25 = parse_statement(); - } - if (result24 !== null) { - result25 = parse_DEDENT(); - if (result25 !== null) { - result22 = [result22, result23, result24, result25]; - } else { - result22 = null; - pos = pos5; - } - } else { - result22 = null; - pos = pos5; - } - } else { - result22 = null; - pos = pos5; - } - } else { - result22 = null; - pos = pos5; - } - if (result22 !== null) { - result22 = (function(offset, b, c) { return b.concat(c); })(pos4, result22[0], result22[2]); - } - if (result22 === null) { - pos = pos4; - } - result22 = result22 !== null ? result22 : ""; - if (result22 !== null) { - result12 = [result12, result13, result14, result15, result16, result17, result18, result19, result20, result21, result22]; - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - } else { - result12 = null; - pos = pos3; - } - if (result12 !== null) { - result12 = (function(offset, condition, statement) {return { - condition: condition, - statement: statement, - } - })(pos2, result12[5], result12[10]); - } - if (result12 === null) { - pos = pos2; - } - } - } else { - result11 = null; - } - result11 = result11 !== null ? result11 : ""; - if (result11 !== null) { - pos2 = pos; - result12 = parse_SAMEDENT(); - if (result12 !== null) { - result13 = parse_ElseToken(); - if (result13 !== null) { - result14 = parse___(); - if (result14 !== null) { - result15 = parse_EOL(); - result15 = result15 !== null ? result15 : ""; - if (result15 !== null) { - pos3 = pos; - pos4 = pos; - result16 = []; - result17 = parse_blank(); - while (result17 !== null) { - result16.push(result17); - result17 = parse_blank(); - } - if (result16 !== null) { - result17 = parse_INDENT(); - if (result17 !== null) { - result18 = []; - result19 = parse_statement(); - while (result19 !== null) { - result18.push(result19); - result19 = parse_statement(); - } - if (result18 !== null) { - result19 = parse_DEDENT(); - if (result19 !== null) { - result16 = [result16, result17, result18, result19]; - } else { - result16 = null; - pos = pos4; - } - } else { - result16 = null; - pos = pos4; - } - } else { - result16 = null; - pos = pos4; - } - } else { - result16 = null; - pos = pos4; - } - if (result16 !== null) { - result16 = (function(offset, b, c) { return b.concat(c); })(pos3, result16[0], result16[2]); - } - if (result16 === null) { - pos = pos3; - } - result16 = result16 !== null ? result16 : ""; - if (result16 !== null) { - result12 = [result12, result13, result14, result15, result16]; - } else { - result12 = null; - pos = pos2; - } - } else { - result12 = null; - pos = pos2; - } - } else { - result12 = null; - pos = pos2; - } - } else { - result12 = null; - pos = pos2; - } - } else { - result12 = null; - pos = pos2; - } - result12 = result12 !== null ? result12 : ""; - if (result12 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, condition, ifStatement, elseifStatement, elseStatement) { - return { - type: "IfStatement", - condition: condition, - ifStatement: ifStatement !== "" ? ifStatement : null, - elseStatement: elseStatement !== "" ? elseStatement[4] : null, - elseifStatement: elseifStatement !== "" ? elseifStatement : null - }; - })(pos0, result0[5], result0[10], result0[11], result0[12]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ForStatement() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12, result13, result14, result15; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ForToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 40) { - result3 = "("; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - result5 = result5 !== null ? result5 : ""; - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - pos2 = pos; - if (input.charCodeAt(pos) === 59) { - result7 = ";"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\";\""); - } - } - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_Expression(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - result10 = parse___(); - if (result10 !== null) { - if (input.charCodeAt(pos) === 59) { - result11 = ";"; - pos++; - } else { - result11 = null; - if (reportFailures === 0) { - matchFailed("\";\""); - } - } - if (result11 !== null) { - result12 = parse___(); - if (result12 !== null) { - result13 = parse_Expression(); - result13 = result13 !== null ? result13 : ""; - if (result13 !== null) { - result14 = parse___(); - if (result14 !== null) { - if (input.charCodeAt(pos) === 41) { - result15 = ")"; - pos++; - } else { - result15 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result15 = result15 !== null ? result15 : ""; - if (result15 !== null) { - result7 = [result7, result8, result9, result10, result11, result12, result13, result14, result15]; - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_EOL(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - pos2 = pos; - pos3 = pos; - result10 = []; - result11 = parse_blank(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_blank(); - } - if (result10 !== null) { - result11 = parse_INDENT(); - if (result11 !== null) { - result12 = []; - result13 = parse_statement(); - while (result13 !== null) { - result12.push(result13); - result13 = parse_statement(); - } - if (result12 !== null) { - result13 = parse_DEDENT(); - if (result13 !== null) { - result10 = [result10, result11, result12, result13]; - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - if (result10 !== null) { - result10 = (function(offset, b, c) { return b.concat(c); })(pos2, result10[0], result10[2]); - } - if (result10 === null) { - pos = pos2; - } - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, initializer, test, counter, statement) { - return { - type: "ForStatement", - initializer: initializer !== "" ? initializer : null, - test: test !== "" ? test : null, - counter: counter !== "" ? counter : null, - statement: statement - }; - })(pos0, result0[5], result0[7][2], result0[7][6], result0[10]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ForToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 40) { - result3 = "("; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - result5 = result5 !== null ? result5 : ""; - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - pos2 = pos; - if (input.charCodeAt(pos) === 59) { - result7 = ";"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\";\""); - } - } - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_Expression(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - result10 = parse___(); - if (result10 !== null) { - if (input.charCodeAt(pos) === 59) { - result11 = ";"; - pos++; - } else { - result11 = null; - if (reportFailures === 0) { - matchFailed("\";\""); - } - } - if (result11 !== null) { - result12 = parse___(); - if (result12 !== null) { - result13 = parse_Expression(); - result13 = result13 !== null ? result13 : ""; - if (result13 !== null) { - result14 = parse___(); - if (result14 !== null) { - if (input.charCodeAt(pos) === 41) { - result15 = ")"; - pos++; - } else { - result15 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result15 = result15 !== null ? result15 : ""; - if (result15 !== null) { - result7 = [result7, result8, result9, result10, result11, result12, result13, result14, result15]; - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - } else { - result7 = null; - pos = pos2; - } - result7 = result7 !== null ? result7 : ""; - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_EOL(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - pos2 = pos; - pos3 = pos; - result10 = []; - result11 = parse_blank(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_blank(); - } - if (result10 !== null) { - result11 = parse_INDENT(); - if (result11 !== null) { - result12 = []; - result13 = parse_statement(); - while (result13 !== null) { - result12.push(result13); - result13 = parse_statement(); - } - if (result12 !== null) { - result13 = parse_DEDENT(); - if (result13 !== null) { - result10 = [result10, result11, result12, result13]; - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - if (result10 !== null) { - result10 = (function(offset, b, c) { return b.concat(c); })(pos2, result10[0], result10[2]); - } - if (result10 === null) { - pos = pos2; - } - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, initializer, statement) { - if(typeof test == 'undefined') { - test = ''; - } - if(typeof counter == 'undefined') { - counter = ''; - } - return { - type: "ForStatement", - initializer: initializer !== "" ? initializer : null, - test: test !== "" ? test : null, - counter: counter !== "" ? counter : null, - statement: statement !== "" ? statement: null - }; - })(pos0, result0[5], result0[10]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_WhileStatement() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12, result13; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_WhileToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 40) { - result3 = "("; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_Expression(); - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.charCodeAt(pos) === 41) { - result7 = ")"; - pos++; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result7 = result7 !== null ? result7 : ""; - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_EOL(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - pos2 = pos; - pos3 = pos; - result10 = []; - result11 = parse_blank(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_blank(); - } - if (result10 !== null) { - result11 = parse_INDENT(); - if (result11 !== null) { - result12 = []; - result13 = parse_statement(); - while (result13 !== null) { - result12.push(result13); - result13 = parse_statement(); - } - if (result12 !== null) { - result13 = parse_DEDENT(); - if (result13 !== null) { - result10 = [result10, result11, result12, result13]; - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - if (result10 !== null) { - result10 = (function(offset, b, c) { return b.concat(c); })(pos2, result10[0], result10[2]); - } - if (result10 === null) { - pos = pos2; - } - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, condition, statement) { - return { - type: 'WhileStatement', - condition: condition, - statement: statement - }; - })(pos0, result0[5], result0[10]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_SwitchStatement() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_SwitchToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - if (input.charCodeAt(pos) === 40) { - result2 = "("; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_Expression(); - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - if (input.charCodeAt(pos) === 41) { - result6 = ")"; - pos++; - } else { - result6 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result7 = parse___(); - if (result7 !== null) { - pos2 = pos; - pos3 = pos; - result8 = []; - result9 = parse_blank(); - while (result9 !== null) { - result8.push(result9); - result9 = parse_blank(); - } - if (result8 !== null) { - result9 = parse_INDENT(); - if (result9 !== null) { - result10 = []; - result11 = parse_SwitchCase(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_SwitchCase(); - } - if (result10 !== null) { - result11 = parse_DEDENT(); - if (result11 !== null) { - result8 = [result8, result9, result10, result11]; - } else { - result8 = null; - pos = pos3; - } - } else { - result8 = null; - pos = pos3; - } - } else { - result8 = null; - pos = pos3; - } - } else { - result8 = null; - pos = pos3; - } - if (result8 !== null) { - result8 = (function(offset, b, c) { return b.concat(c); })(pos2, result8[0], result8[2]); - } - if (result8 === null) { - pos = pos2; - } - if (result8 !== null) { - pos2 = pos; - pos3 = pos; - result9 = []; - result10 = parse_blank(); - while (result10 !== null) { - result9.push(result10); - result10 = parse_blank(); - } - if (result9 !== null) { - result10 = parse_INDENT(); - if (result10 !== null) { - result11 = parse_SwitchElse(); - if (result11 !== null) { - result12 = parse_DEDENT(); - if (result12 !== null) { - result9 = [result9, result10, result11, result12]; - } else { - result9 = null; - pos = pos3; - } - } else { - result9 = null; - pos = pos3; - } - } else { - result9 = null; - pos = pos3; - } - } else { - result9 = null; - pos = pos3; - } - if (result9 !== null) { - result9 = (function(offset, b, c) { return c; })(pos2, result9[0], result9[2]); - } - if (result9 === null) { - pos = pos2; - } - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, variable, cases, elsed) { - if(typeof elsed == 'undefined') { - elsed = ''; - } - return { - type: 'SwitchStatement', - variable: variable, - cases: cases, - elsed: elsed - }; - })(pos0, result0[4], result0[8], result0[9]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_SwitchCase() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_CaseToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - result3 = parse_Expression(); - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - result5 = parse_ThenToken(); - result5 = result5 !== null ? result5 : ""; - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - result7 = parse_EOL(); - result7 = result7 !== null ? result7 : ""; - if (result7 !== null) { - pos2 = pos; - pos3 = pos; - result8 = []; - result9 = parse_blank(); - while (result9 !== null) { - result8.push(result9); - result9 = parse_blank(); - } - if (result8 !== null) { - result9 = parse_INDENT(); - if (result9 !== null) { - result10 = []; - result11 = parse_statement(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_statement(); - } - if (result10 !== null) { - result11 = parse_DEDENT(); - if (result11 !== null) { - result8 = [result8, result9, result10, result11]; - } else { - result8 = null; - pos = pos3; - } - } else { - result8 = null; - pos = pos3; - } - } else { - result8 = null; - pos = pos3; - } - } else { - result8 = null; - pos = pos3; - } - if (result8 !== null) { - result8 = (function(offset, b, c) { return b.concat(c); })(pos2, result8[0], result8[2]); - } - if (result8 === null) { - pos = pos2; - } - result8 = result8 !== null ? result8 : ""; - if (result8 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, value, statement) { - return { - type: 'case', - value: value, - statement: statement - }; - })(pos0, result0[3], result0[8]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_SwitchElse() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ElseToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - result3 = parse_EOL(); - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - pos2 = pos; - pos3 = pos; - result4 = []; - result5 = parse_blank(); - while (result5 !== null) { - result4.push(result5); - result5 = parse_blank(); - } - if (result4 !== null) { - result5 = parse_INDENT(); - if (result5 !== null) { - result6 = []; - result7 = parse_statement(); - while (result7 !== null) { - result6.push(result7); - result7 = parse_statement(); - } - if (result6 !== null) { - result7 = parse_DEDENT(); - if (result7 !== null) { - result4 = [result4, result5, result6, result7]; - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - if (result4 !== null) { - result4 = (function(offset, b, c) { return b.concat(c); })(pos2, result4[0], result4[2]); - } - if (result4 === null) { - pos = pos2; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, statement) { - return statement; - })(pos0, result0[4]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BreakStatement() { - var result0; - var pos0; - - pos0 = pos; - result0 = parse_BreakToken(); - if (result0 !== null) { - result0 = (function(offset) { - return { - type: 'break' - }; - })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_TryStatement() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12, result13, result14; - var pos0, pos1, pos2, pos3, pos4; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_TryToken(); - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - result3 = parse_EOL(); - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - pos2 = pos; - pos3 = pos; - result4 = []; - result5 = parse_blank(); - while (result5 !== null) { - result4.push(result5); - result5 = parse_blank(); - } - if (result4 !== null) { - result5 = parse_INDENT(); - if (result5 !== null) { - result6 = []; - result7 = parse_statement(); - while (result7 !== null) { - result6.push(result7); - result7 = parse_statement(); - } - if (result6 !== null) { - result7 = parse_DEDENT(); - if (result7 !== null) { - result4 = [result4, result5, result6, result7]; - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - if (result4 !== null) { - result4 = (function(offset, b, c) { return b.concat(c); })(pos2, result4[0], result4[2]); - } - if (result4 === null) { - pos = pos2; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - pos2 = pos; - result5 = parse_SAMEDENT(); - if (result5 !== null) { - result6 = parse_CatchToken(); - if (result6 !== null) { - result7 = parse___(); - if (result7 !== null) { - result8 = parse_CatchErrVar(); - if (result8 !== null) { - result9 = parse___(); - if (result9 !== null) { - result10 = parse_EOL(); - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - pos3 = pos; - pos4 = pos; - result11 = []; - result12 = parse_blank(); - while (result12 !== null) { - result11.push(result12); - result12 = parse_blank(); - } - if (result11 !== null) { - result12 = parse_INDENT(); - if (result12 !== null) { - result13 = []; - result14 = parse_statement(); - while (result14 !== null) { - result13.push(result14); - result14 = parse_statement(); - } - if (result13 !== null) { - result14 = parse_DEDENT(); - if (result14 !== null) { - result11 = [result11, result12, result13, result14]; - } else { - result11 = null; - pos = pos4; - } - } else { - result11 = null; - pos = pos4; - } - } else { - result11 = null; - pos = pos4; - } - } else { - result11 = null; - pos = pos4; - } - if (result11 !== null) { - result11 = (function(offset, b, c) { return b.concat(c); })(pos3, result11[0], result11[2]); - } - if (result11 === null) { - pos = pos3; - } - result11 = result11 !== null ? result11 : ""; - if (result11 !== null) { - result5 = [result5, result6, result7, result8, result9, result10, result11]; - } else { - result5 = null; - pos = pos2; - } - } else { - result5 = null; - pos = pos2; - } - } else { - result5 = null; - pos = pos2; - } - } else { - result5 = null; - pos = pos2; - } - } else { - result5 = null; - pos = pos2; - } - } else { - result5 = null; - pos = pos2; - } - } else { - result5 = null; - pos = pos2; - } - if (result5 !== null) { - pos2 = pos; - result6 = parse_SAMEDENT(); - if (result6 !== null) { - result7 = parse_finallyToken(); - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_EOL(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - pos3 = pos; - pos4 = pos; - result10 = []; - result11 = parse_blank(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_blank(); - } - if (result10 !== null) { - result11 = parse_INDENT(); - if (result11 !== null) { - result12 = []; - result13 = parse_statement(); - while (result13 !== null) { - result12.push(result13); - result13 = parse_statement(); - } - if (result12 !== null) { - result13 = parse_DEDENT(); - if (result13 !== null) { - result10 = [result10, result11, result12, result13]; - } else { - result10 = null; - pos = pos4; - } - } else { - result10 = null; - pos = pos4; - } - } else { - result10 = null; - pos = pos4; - } - } else { - result10 = null; - pos = pos4; - } - if (result10 !== null) { - result10 = (function(offset, b, c) { return b.concat(c); })(pos3, result10[0], result10[2]); - } - if (result10 === null) { - pos = pos3; - } - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - result6 = [result6, result7, result8, result9, result10]; - } else { - result6 = null; - pos = pos2; - } - } else { - result6 = null; - pos = pos2; - } - } else { - result6 = null; - pos = pos2; - } - } else { - result6 = null; - pos = pos2; - } - } else { - result6 = null; - pos = pos2; - } - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, TryStatement, CatchStatemnt, FinallyStatemnt) { - return { - type: "TryStatement", - TryStatement: TryStatement !== "" ? TryStatement : null, - CatchStatement: CatchStatemnt[6] !== "" ? CatchStatemnt[6] : null, - CatchErrVar: CatchStatemnt[3], - FinallyStatemnt: FinallyStatemnt[4] !== "" ? FinallyStatemnt[4] : null - }; - })(pos0, result0[4], result0[5], result0[6]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_CatchErrVar() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_Identifier(); - if (result0 !== null) { - result2 = parse_WhiteSpace(); - if (result2 !== null) { - result1 = []; - while (result2 !== null) { - result1.push(result2); - result2 = parse_WhiteSpace(); - } - } else { - result1 = null; - } - if (result1 !== null) { - result2 = parse_Identifier(); - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, Type, name) { - return { - type: "VariableWithType", - name: { - type:"Variable", - name:name - }, - vtype: Type - }; - })(pos0, result0[0], result0[2]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_Identifier(); - if (result0 !== null) { - result0 = (function(offset, name) { - return { - type: "VariableWithType", - name: { - type:"Variable", - name:name - }, - vtype: "Exception" - }; - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_FunctionDeclaration() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - pos3 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 36) { - result0 = "$"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"$\""); - } - } - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos3; - } - if (result0 !== null) { - result1 = parse_Identifier(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos2; - } - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - pos2 = pos; - pos3 = pos; - if (input.charCodeAt(pos) === 40) { - result2 = "("; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result4 = parse_FormalParameterList(); - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - if (input.charCodeAt(pos) === 41) { - result6 = ")"; - pos++; - } else { - result6 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result6 !== null) { - result2 = [result2, result3, result4, result5, result6]; - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - } else { - result2 = null; - pos = pos3; - } - if (result2 !== null) { - result2 = (function(offset, prm) {return prm;})(pos2, result2[2]); - } - if (result2 === null) { - pos = pos2; - } - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.substr(pos, 2) === "->") { - result4 = "->"; - pos += 2; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\"->\""); - } - } - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - pos2 = pos; - pos3 = pos; - result6 = []; - result7 = parse_blank(); - while (result7 !== null) { - result6.push(result7); - result7 = parse_blank(); - } - if (result6 !== null) { - result7 = parse_INDENT(); - if (result7 !== null) { - result8 = []; - result9 = parse_statement(); - while (result9 !== null) { - result8.push(result9); - result9 = parse_statement(); - } - if (result8 !== null) { - result9 = parse_DEDENT(); - if (result9 !== null) { - result6 = [result6, result7, result8, result9]; - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - if (result6 !== null) { - result6 = (function(offset, b, c) { return b.concat(c); })(pos2, result6[0], result6[2]); - } - if (result6 === null) { - pos = pos2; - } - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name, params, body) { - if(params == '') { - params = [] - } - return { - type: "FunctionDeclaration", - name: name[1], - params: params, - body: body !== '' ? body: null - } - })(pos0, result0[0], result0[2], result0[6]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_NamespaceDeclaration() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_NamespaceToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_NamespaceId(); - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.substr(pos, 2) === "->") { - result4 = "->"; - pos += 2; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\"->\""); - } - } - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - pos2 = pos; - pos3 = pos; - result6 = []; - result7 = parse_blank(); - while (result7 !== null) { - result6.push(result7); - result7 = parse_blank(); - } - if (result6 !== null) { - result7 = parse_INDENT(); - if (result7 !== null) { - result8 = []; - result9 = parse_statement(); - while (result9 !== null) { - result8.push(result9); - result9 = parse_statement(); - } - if (result8 !== null) { - result9 = parse_DEDENT(); - if (result9 !== null) { - result6 = [result6, result7, result8, result9]; - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - if (result6 !== null) { - result6 = (function(offset, b, c) { return b.concat(c); })(pos2, result6[0], result6[2]); - } - if (result6 === null) { - pos = pos2; - } - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name, body) { - return { - type:"NamespaceDeclaration", - name: name, - body: body !== '' ? body: null - } - })(pos0, result0[2], result0[6]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_NamespaceToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_NamespaceId(); - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - result0 = [result0, result1, result2, result3]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name) { - return { - type:"NamespaceDeclaration", - name: name, - body: null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_NamespaceId() { - var result0, result1, result2, result3, result4; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 92) { - result0 = "\\"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 47) { - result0 = "/"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"/\""); - } - } - } - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse_Identifier(); - if (result1 !== null) { - result2 = []; - pos2 = pos; - if (input.charCodeAt(pos) === 92) { - result3 = "\\"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result3 === null) { - if (input.charCodeAt(pos) === 47) { - result3 = "/"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"/\""); - } - } - } - if (result3 !== null) { - result4 = parse_Identifier(); - if (result4 !== null) { - result3 = [result3, result4]; - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - while (result3 !== null) { - result2.push(result3); - pos2 = pos; - if (input.charCodeAt(pos) === 92) { - result3 = "\\"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result3 === null) { - if (input.charCodeAt(pos) === 47) { - result3 = "/"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"/\""); - } - } - } - if (result3 !== null) { - result4 = parse_Identifier(); - if (result4 !== null) { - result3 = [result3, result4]; - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, start, head, tail) { - if(head != '') { - var array = [head]; - } else { - return ''; - } - for (var i = 0; i < tail.length; i++) { - array.push(tail[i][1]) - } - return { - type: "NamespaceIdentifier", - name: array, - start: start !== '' ? true : false - }; - })(pos0, result0[0], result0[1], result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ClassDeclaration() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_ClassToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_Identifier(); - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - if (input.substr(pos, 2) === "->") { - result4 = "->"; - pos += 2; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\"->\""); - } - } - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - pos2 = pos; - pos3 = pos; - result6 = []; - result7 = parse_blank(); - while (result7 !== null) { - result6.push(result7); - result7 = parse_blank(); - } - if (result6 !== null) { - result7 = parse_INDENT(); - if (result7 !== null) { - result8 = []; - result9 = parse_ClassStatement(); - while (result9 !== null) { - result8.push(result9); - result9 = parse_ClassStatement(); - } - if (result8 !== null) { - result9 = parse_DEDENT(); - if (result9 !== null) { - result6 = [result6, result7, result8, result9]; - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - if (result6 !== null) { - result6 = (function(offset, b, c) { return b.concat(c); })(pos2, result6[0], result6[2]); - } - if (result6 === null) { - pos = pos2; - } - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name, body) { - return { - type:"ClassDeclaration", - name: name, - body: body !== '' ? body: null - } - })(pos0, result0[2], result0[6]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ClassStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - result0 = parse_ClassFunctionDeclaration(); - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ClassConstPropertyDeclaration(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_ClassPropertyDeclaration(); - if (result1 !== null) { - result2 = parse_EOL(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return m; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - result0 = parse_blank(); - } - } - } - return result0; - } - - function parse_ClassPropertyDeclaration() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3, pos4; - - pos0 = pos; - pos1 = pos; - result0 = parse_PropertyVisibility(); - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - pos2 = pos; - result2 = parse_Identifier(); - if (result2 !== null) { - result2 = (function(offset, name) { return { type: "Variable", name: name }; })(pos2, result2); - } - if (result2 === null) { - pos = pos2; - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - pos2 = pos; - result4 = parse_AssignmentOperator(); - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - pos3 = pos; - pos4 = pos; - reportFailures++; - result6 = parse_EOTLiteral(); - if (result6 === null) { - result6 = parse_EODLiteral(); - } - reportFailures--; - if (result6 === null) { - result6 = ""; - } else { - result6 = null; - pos = pos4; - } - if (result6 !== null) { - result7 = parse_AssignmentExpression(); - if (result7 === null) { - result7 = parse_FunctionExpression(); - } - if (result7 !== null) { - result6 = [result6, result7]; - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - if (result6 !== null) { - result4 = [result4, result5, result6]; - } else { - result4 = null; - pos = pos2; - } - } else { - result4 = null; - pos = pos2; - } - } else { - result4 = null; - pos = pos2; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, Visibility, left, m) { - return { - type: "ClassPropertyDeclaration", - operator: m !== "" ? m[0]: false, - left: left, - right: m !== "" ? m[2][1]: false, - Visibility: Visibility !== "" ? Visibility : false, - }; - })(pos0, result0[0], result0[2], result0[4]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ClassConstPropertyDeclaration() { - var result0, result1, result2, result3, result4, result5, result6, result7; - var pos0, pos1, pos2, pos3, pos4; - - pos0 = pos; - pos1 = pos; - result0 = parse_ConstToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - pos2 = pos; - result2 = parse_Identifier(); - if (result2 !== null) { - result2 = (function(offset, name) { return { type: "Variable", name: name }; })(pos2, result2); - } - if (result2 === null) { - pos = pos2; - } - if (result2 !== null) { - result3 = parse___(); - if (result3 !== null) { - pos2 = pos; - result4 = parse_AssignmentOperator(); - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - pos3 = pos; - pos4 = pos; - reportFailures++; - result6 = parse_EOTLiteral(); - if (result6 === null) { - result6 = parse_EODLiteral(); - } - reportFailures--; - if (result6 === null) { - result6 = ""; - } else { - result6 = null; - pos = pos4; - } - if (result6 !== null) { - result7 = parse_AssignmentExpression(); - if (result7 === null) { - result7 = parse_FunctionExpression(); - } - if (result7 !== null) { - result6 = [result6, result7]; - } else { - result6 = null; - pos = pos3; - } - } else { - result6 = null; - pos = pos3; - } - if (result6 !== null) { - result4 = [result4, result5, result6]; - } else { - result4 = null; - pos = pos2; - } - } else { - result4 = null; - pos = pos2; - } - } else { - result4 = null; - pos = pos2; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, left, m) { - return { - type: "ClassConstPropertyDeclaration", - operator: m !== "" ? m[0]: false, - left: left, - right: m !== "" ? m[2][1]: false - }; - })(pos0, result0[2], result0[4]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ClassFunctionDeclaration() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10, result11, result12, result13; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - result0 = parse_SAMEDENT(); - if (result0 !== null) { - result1 = parse_PropertyVisibility(); - result1 = result1 !== null ? result1 : ""; - if (result1 !== null) { - result2 = parse___(); - if (result2 !== null) { - pos2 = pos; - pos3 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 36) { - result3 = "$"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"$\""); - } - } - reportFailures--; - if (result3 === null) { - result3 = ""; - } else { - result3 = null; - pos = pos3; - } - if (result3 !== null) { - result4 = parse_Identifier(); - if (result4 !== null) { - result3 = [result3, result4]; - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - if (result3 !== null) { - result4 = parse___(); - if (result4 !== null) { - pos2 = pos; - pos3 = pos; - if (input.charCodeAt(pos) === 40) { - result5 = "("; - pos++; - } else { - result5 = null; - if (reportFailures === 0) { - matchFailed("\"(\""); - } - } - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - result7 = parse_FormalParameterList(); - result7 = result7 !== null ? result7 : ""; - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - if (input.charCodeAt(pos) === 41) { - result9 = ")"; - pos++; - } else { - result9 = null; - if (reportFailures === 0) { - matchFailed("\")\""); - } - } - if (result9 !== null) { - result5 = [result5, result6, result7, result8, result9]; - } else { - result5 = null; - pos = pos3; - } - } else { - result5 = null; - pos = pos3; - } - } else { - result5 = null; - pos = pos3; - } - } else { - result5 = null; - pos = pos3; - } - } else { - result5 = null; - pos = pos3; - } - if (result5 !== null) { - result5 = (function(offset, prm) {return prm;})(pos2, result5[2]); - } - if (result5 === null) { - pos = pos2; - } - result5 = result5 !== null ? result5 : ""; - if (result5 !== null) { - result6 = parse___(); - if (result6 !== null) { - if (input.substr(pos, 2) === "->") { - result7 = "->"; - pos += 2; - } else { - result7 = null; - if (reportFailures === 0) { - matchFailed("\"->\""); - } - } - if (result7 !== null) { - result8 = parse___(); - if (result8 !== null) { - result9 = parse_EOL(); - result9 = result9 !== null ? result9 : ""; - if (result9 !== null) { - pos2 = pos; - pos3 = pos; - result10 = []; - result11 = parse_blank(); - while (result11 !== null) { - result10.push(result11); - result11 = parse_blank(); - } - if (result10 !== null) { - result11 = parse_INDENT(); - if (result11 !== null) { - result12 = []; - result13 = parse_statement(); - while (result13 !== null) { - result12.push(result13); - result13 = parse_statement(); - } - if (result12 !== null) { - result13 = parse_DEDENT(); - if (result13 !== null) { - result10 = [result10, result11, result12, result13]; - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - } else { - result10 = null; - pos = pos3; - } - if (result10 !== null) { - result10 = (function(offset, b, c) { return b.concat(c); })(pos2, result10[0], result10[2]); - } - if (result10 === null) { - pos = pos2; - } - result10 = result10 !== null ? result10 : ""; - if (result10 !== null) { - result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, Visibility, name, params, body) { - if(params == '') { - params = [] - } - return { - type: "ClassFunctionDeclaration", - name: name[1], - params: params, - body: body !== '' ? body: null, - Visibility: Visibility !== "" ? Visibility : false, - } - })(pos0, result0[1], result0[3], result0[5], result0[10]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_PropertyVisibility() { - var result0; - - result0 = parse_PrivateToken(); - if (result0 === null) { - result0 = parse_ProtectedToken(); - if (result0 === null) { - result0 = parse_PublicToken(); - } - } - return result0; - } - - function parse_ContinueStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_ContinueToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "ContinueStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BreakStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_BreakToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "BreakStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EchoStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_EchoToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "EchoStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ReturnStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_ReturnToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "ReturnStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_RequireStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_RequireToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "RequireStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_Require_onceStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_Require_onceToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "Require_onceStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_Include_onceStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_Include_onceToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "Include_onceStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_IncludeStatement() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_IncludeToken(); - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - result2 = parse_AssignmentExpression(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, label) { - return { - type: "IncludeStatement", - label: label !== "" ? label : null - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_AndToken() { - var result0; - - if (input.substr(pos, 3) === "and") { - result0 = "and"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"and\""); - } - } - return result0; - } - - function parse_BreakToken() { - var result0; - - if (input.substr(pos, 5) === "break") { - result0 = "break"; - pos += 5; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"break\""); - } - } - return result0; - } - - function parse_CaseToken() { - var result0; - - if (input.substr(pos, 4) === "case") { - result0 = "case"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"case\""); - } - } - return result0; - } - - function parse_CatchToken() { - var result0; - - if (input.substr(pos, 5) === "catch") { - result0 = "catch"; - pos += 5; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"catch\""); - } - } - return result0; - } - - function parse_ClassToken() { - var result0; - - if (input.substr(pos, 5) === "class") { - result0 = "class"; - pos += 5; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"class\""); - } - } - return result0; - } - - function parse_ConstToken() { - var result0; - - if (input.substr(pos, 5) === "const") { - result0 = "const"; - pos += 5; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"const\""); - } - } - return result0; - } - - function parse_ContinueToken() { - var result0; - - if (input.substr(pos, 8) === "continue") { - result0 = "continue"; - pos += 8; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"continue\""); - } - } - return result0; - } - - function parse_EchoToken() { - var result0; - - if (input.substr(pos, 4) === "echo") { - result0 = "echo"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"echo\""); - } - } - return result0; - } - - function parse_ElseToken() { - var result0; - - if (input.substr(pos, 4) === "else") { - result0 = "else"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"else\""); - } - } - return result0; - } - - function parse_ElseIfToken() { - var result0, result1, result2; - var pos0; - - pos0 = pos; - if (input.substr(pos, 4) === "else") { - result0 = "else"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"else\""); - } - } - if (result0 !== null) { - result1 = parse___(); - if (result1 !== null) { - if (input.substr(pos, 2) === "if") { - result2 = "if"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"if\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - return result0; - } - - function parse_FalseToken() { - var result0; - - if (input.substr(pos, 5) === "false") { - result0 = "false"; - pos += 5; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"false\""); - } - } - return result0; - } - - function parse_finallyToken() { - var result0; - - if (input.substr(pos, 7) === "finally") { - result0 = "finally"; - pos += 7; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"finally\""); - } - } - return result0; - } - - function parse_ForToken() { - var result0; - - if (input.substr(pos, 3) === "for") { - result0 = "for"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"for\""); - } - } - return result0; - } - - function parse_IfToken() { - var result0; - - if (input.substr(pos, 2) === "if") { - result0 = "if"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"if\""); - } - } - return result0; - } - - function parse_IncludeToken() { - var result0; - - if (input.substr(pos, 7) === "include") { - result0 = "include"; - pos += 7; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"include\""); - } - } - return result0; - } - - function parse_Include_onceToken() { - var result0; - - if (input.substr(pos, 12) === "include_once") { - result0 = "include_once"; - pos += 12; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"include_once\""); - } - } - return result0; - } - - function parse_InToken() { - var result0; - - if (input.substr(pos, 2) === "in") { - result0 = "in"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"in\""); - } - } - return result0; - } - - function parse_NamespaceToken() { - var result0; - - if (input.substr(pos, 9) === "namespace") { - result0 = "namespace"; - pos += 9; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"namespace\""); - } - } - return result0; - } - - function parse_NewToken() { - var result0; - - if (input.substr(pos, 3) === "new") { - result0 = "new"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"new\""); - } - } - return result0; - } - - function parse_NullToken() { - var result0; - - if (input.substr(pos, 4) === "NULL") { - result0 = "NULL"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"NULL\""); - } - } - if (result0 === null) { - if (input.substr(pos, 4) === "None") { - result0 = "None"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"None\""); - } - } - } - return result0; - } - - function parse_OfToken() { - var result0; - - if (input.substr(pos, 2) === "of") { - result0 = "of"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"of\""); - } - } - return result0; - } - - function parse_OrToken() { - var result0; - - if (input.substr(pos, 2) === "or") { - result0 = "or"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"or\""); - } - } - return result0; - } - - function parse_ReturnToken() { - var result0; - - if (input.substr(pos, 6) === "return") { - result0 = "return"; - pos += 6; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"return\""); - } - } - return result0; - } - - function parse_RequireToken() { - var result0; - - if (input.substr(pos, 7) === "require") { - result0 = "require"; - pos += 7; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"require\""); - } - } - return result0; - } - - function parse_Require_onceToken() { - var result0; - - if (input.substr(pos, 12) === "require_once") { - result0 = "require_once"; - pos += 12; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"require_once\""); - } - } - return result0; - } - - function parse_PrivateToken() { - var result0; - - if (input.substr(pos, 7) === "private") { - result0 = "private"; - pos += 7; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"private\""); - } - } - return result0; - } - - function parse_ProtectedToken() { - var result0; - - if (input.substr(pos, 9) === "protected") { - result0 = "protected"; - pos += 9; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"protected\""); - } - } - return result0; - } - - function parse_PublicToken() { - var result0; - - if (input.substr(pos, 6) === "public") { - result0 = "public"; - pos += 6; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"public\""); - } - } - return result0; - } - - function parse_script_start() { - var result0; - - if (input.substr(pos, 2) === "{{") { - result0 = "{{"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"{{\""); - } - } - return result0; - } - - function parse_script_end() { - var result0; - - if (input.substr(pos, 2) === "}}") { - result0 = "}}"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"}}\""); - } - } - return result0; - } - - function parse_StaticToken() { - var result0; - - if (input.substr(pos, 6) === "static") { - result0 = "static"; - pos += 6; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"static\""); - } - } - return result0; - } - - function parse_SwitchToken() { - var result0; - - if (input.substr(pos, 6) === "switch") { - result0 = "switch"; - pos += 6; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"switch\""); - } - } - return result0; - } - - function parse_ThenToken() { - var result0; - - if (input.substr(pos, 4) === "then") { - result0 = "then"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"then\""); - } - } - return result0; - } - - function parse_ThisToken() { - var result0; - - if (input.substr(pos, 4) === "this") { - result0 = "this"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"this\""); - } - } - return result0; - } - - function parse_TrueToken() { - var result0; - - if (input.substr(pos, 4) === "true") { - result0 = "true"; - pos += 4; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"true\""); - } - } - return result0; - } - - function parse_TryToken() { - var result0; - - if (input.substr(pos, 3) === "try") { - result0 = "try"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"try\""); - } - } - return result0; - } - - function parse_WhileToken() { - var result0; - - if (input.substr(pos, 5) === "while") { - result0 = "while"; - pos += 5; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"while\""); - } - } - return result0; - } - - function parse_ReservedWord() { - var result0; - - result0 = parse_AndToken(); - if (result0 === null) { - result0 = parse_BreakToken(); - if (result0 === null) { - result0 = parse_CaseToken(); - if (result0 === null) { - result0 = parse_CatchToken(); - if (result0 === null) { - result0 = parse_ClassToken(); - if (result0 === null) { - result0 = parse_ConstToken(); - if (result0 === null) { - result0 = parse_ContinueToken(); - if (result0 === null) { - result0 = parse_ElseToken(); - if (result0 === null) { - result0 = parse_ElseToken(); - if (result0 === null) { - result0 = parse_FalseToken(); - if (result0 === null) { - result0 = parse_finallyToken(); - if (result0 === null) { - result0 = parse_ForToken(); - if (result0 === null) { - result0 = parse_IfToken(); - if (result0 === null) { - result0 = parse_Include_onceToken(); - if (result0 === null) { - result0 = parse_IncludeToken(); - if (result0 === null) { - result0 = parse_InToken(); - if (result0 === null) { - result0 = parse_NamespaceToken(); - if (result0 === null) { - result0 = parse_NewToken(); - if (result0 === null) { - result0 = parse_NullToken(); - if (result0 === null) { - result0 = parse_OfToken(); - if (result0 === null) { - result0 = parse_OrToken(); - if (result0 === null) { - result0 = parse_ReturnToken(); - if (result0 === null) { - result0 = parse_RequireToken(); - if (result0 === null) { - result0 = parse_Require_onceToken(); - if (result0 === null) { - result0 = parse_PrivateToken(); - if (result0 === null) { - result0 = parse_ProtectedToken(); - if (result0 === null) { - result0 = parse_PublicToken(); - if (result0 === null) { - result0 = parse_script_end(); - if (result0 === null) { - result0 = parse_script_start(); - if (result0 === null) { - result0 = parse_SwitchToken(); - if (result0 === null) { - result0 = parse_StaticToken(); - if (result0 === null) { - result0 = parse_ThenToken(); - if (result0 === null) { - result0 = parse_ThisToken(); - if (result0 === null) { - result0 = parse_TrueToken(); - if (result0 === null) { - result0 = parse_TryToken(); - if (result0 === null) { - if (input.substr(pos, 8) === "function") { - result0 = "function"; - pos += 8; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"function\""); - } - } - if (result0 === null) { - result0 = parse_WhileToken(); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - return result0; - } - - function parse_SourceCharacter() { - var result0; - - if (input.length > pos) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - return result0; - } - - function parse_WhiteSpace() { - var result0; - - reportFailures++; - if (/^[\t\x0B\f \xA0\uFEFF]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\t\\x0B\\f \\xA0\\uFEFF]"); - } - } - if (result0 === null) { - result0 = parse_Zs(); - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("whitespace"); - } - return result0; - } - - function parse_LineTerminator() { - var result0; - - if (/^[\n\r\u2028\u2029]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\n\\r\\u2028\\u2029]"); - } - } - if (result0 === null) { - result0 = parse_LineTerminatorSequence(); - } - return result0; - } - - function parse_LineTerminatorSequence() { - var result0; - - reportFailures++; - if (input.charCodeAt(pos) === 10) { - result0 = "\n"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\n\""); - } - } - if (result0 === null) { - if (input.substr(pos, 2) === "\r\n") { - result0 = "\r\n"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\r\\n\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 13) { - result0 = "\r"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\r\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 8232) { - result0 = "\u2028"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\u2028\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 8233) { - result0 = "\u2029"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\u2029\""); - } - } - } - } - } - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("end of line"); - } - return result0; - } - - function parse_Comment() { - var result0; - - reportFailures++; - result0 = parse_MultiLineComment(); - if (result0 === null) { - result0 = parse_SingleLineComment(); - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("comment"); - } - return result0; - } - - function parse_MultiLineComment() { - var result0, result1, result2, result3; - var pos0, pos1, pos2; - - pos0 = pos; - if (input.substr(pos, 2) === "/*") { - result0 = "/*"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"/*\""); - } - } - if (result0 !== null) { - result1 = []; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 2) === "*/") { - result2 = "*/"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"*/\""); - } - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - while (result2 !== null) { - result1.push(result2); - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 2) === "*/") { - result2 = "*/"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"*/\""); - } - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - } - if (result1 !== null) { - if (input.substr(pos, 2) === "*/") { - result2 = "*/"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"*/\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - if (input.substr(pos, 3) === "###") { - result0 = "###"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - if (result0 !== null) { - result1 = []; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 3) === "###") { - result2 = "###"; - pos += 3; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - while (result2 !== null) { - result1.push(result2); - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 3) === "###") { - result2 = "###"; - pos += 3; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - } - if (result1 !== null) { - if (input.substr(pos, 3) === "###") { - result2 = "###"; - pos += 3; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } - return result0; - } - - function parse_MultiLineCommentNoLineTerminator() { - var result0, result1, result2, result3; - var pos0, pos1, pos2; - - pos0 = pos; - if (input.substr(pos, 2) === "/*") { - result0 = "/*"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"/*\""); - } - } - if (result0 !== null) { - result1 = []; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 2) === "*/") { - result2 = "*/"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"*/\""); - } - } - if (result2 === null) { - result2 = parse_LineTerminator(); - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - while (result2 !== null) { - result1.push(result2); - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 2) === "*/") { - result2 = "*/"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"*/\""); - } - } - if (result2 === null) { - result2 = parse_LineTerminator(); - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - } - if (result1 !== null) { - if (input.substr(pos, 2) === "*/") { - result2 = "*/"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"*/\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - if (input.substr(pos, 3) === "###") { - result0 = "###"; - pos += 3; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - if (result0 !== null) { - result1 = []; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 3) === "###") { - result2 = "###"; - pos += 3; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - if (result2 === null) { - result2 = parse_LineTerminator(); - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - while (result2 !== null) { - result1.push(result2); - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 3) === "###") { - result2 = "###"; - pos += 3; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - if (result2 === null) { - result2 = parse_LineTerminator(); - } - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - } - if (result1 !== null) { - if (input.substr(pos, 3) === "###") { - result2 = "###"; - pos += 3; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"###\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - } - return result0; - } - - function parse_SingleLineComment() { - var result0, result1, result2, result3; - var pos0, pos1, pos2; - - pos0 = pos; - if (input.substr(pos, 2) === "//") { - result0 = "//"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"//\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 35) { - result0 = "#"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"#\""); - } - } - } - if (result0 !== null) { - result1 = []; - pos1 = pos; - pos2 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - while (result2 !== null) { - result1.push(result2); - pos1 = pos; - pos2 = pos; - reportFailures++; - result2 = parse_LineTerminator(); - reportFailures--; - if (result2 === null) { - result2 = ""; - } else { - result2 = null; - pos = pos2; - } - if (result2 !== null) { - result3 = parse_SourceCharacter(); - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - return result0; - } - - function parse_Identifier() { - var result0, result1; - var pos0, pos1; - - reportFailures++; - pos0 = pos; - pos1 = pos; - result0 = parse_ReservedWord(); - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse_IdentifierName(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, f, name) { return f+name; })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("identifier"); - } - return result0; - } - - function parse_IdentifierName() { - var result0, result1, result2; - var pos0, pos1; - - reportFailures++; - pos0 = pos; - pos1 = pos; - result0 = parse_IdentifierStart(); - if (result0 !== null) { - result1 = []; - result2 = parse_IdentifierPart(); - while (result2 !== null) { - result1.push(result2); - result2 = parse_IdentifierPart(); - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, start, parts) { - return start + parts.join(""); - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("identifier"); - } - return result0; - } - - function parse_IdentifierStart() { - var result0; - - result0 = parse_UnicodeLetter(); - if (result0 === null) { - if (input.charCodeAt(pos) === 95) { - result0 = "_"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"_\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 36) { - result0 = "$"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"$\""); - } - } - } - } - return result0; - } - - function parse_IdentifierPart() { - var result0; - var pos0; - - result0 = parse_IdentifierStart(); - if (result0 === null) { - result0 = parse_UnicodeCombiningMark(); - if (result0 === null) { - result0 = parse_Nd(); - if (result0 === null) { - result0 = parse_Pc(); - if (result0 === null) { - pos0 = pos; - if (input.charCodeAt(pos) === 8204) { - result0 = "\u200C"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\u200C\""); - } - } - if (result0 !== null) { - result0 = (function(offset) { return "\u200C"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - if (input.charCodeAt(pos) === 8205) { - result0 = "\u200D"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\u200D\""); - } - } - if (result0 !== null) { - result0 = (function(offset) { return "\u200D"; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - } - } - } - } - } - return result0; - } - - function parse_UnicodeLetter() { - var result0; - - result0 = parse_Lu(); - if (result0 === null) { - result0 = parse_Ll(); - if (result0 === null) { - result0 = parse_Lt(); - if (result0 === null) { - result0 = parse_Lm(); - if (result0 === null) { - result0 = parse_Lo(); - if (result0 === null) { - result0 = parse_Nl(); - } - } - } - } - } - return result0; - } - - function parse_UnicodeCombiningMark() { - var result0; - - result0 = parse_Mn(); - if (result0 === null) { - result0 = parse_Mc(); - } - return result0; - } - - function parse__() { - var result0, result1; - - result0 = []; - result1 = parse_WhiteSpace(); - if (result1 === null) { - result1 = parse_MultiLineCommentNoLineTerminator(); - if (result1 === null) { - result1 = parse_SingleLineComment(); - } - } - while (result1 !== null) { - result0.push(result1); - result1 = parse_WhiteSpace(); - if (result1 === null) { - result1 = parse_MultiLineCommentNoLineTerminator(); - if (result1 === null) { - result1 = parse_SingleLineComment(); - } - } - } - return result0; - } - - function parse___() { - var result0, result1; - - result0 = []; - result1 = parse_WhiteSpace(); - if (result1 === null) { - result1 = parse_Comment(); - } - while (result1 !== null) { - result0.push(result1); - result1 = parse_WhiteSpace(); - if (result1 === null) { - result1 = parse_Comment(); - } - } - return result0; - } - - function parse____() { - var result0, result1; - - result0 = []; - result1 = parse_WhiteSpace(); - if (result1 === null) { - result1 = parse_LineTerminator(); - if (result1 === null) { - result1 = parse_Comment(); - } - } - while (result1 !== null) { - result0.push(result1); - result1 = parse_WhiteSpace(); - if (result1 === null) { - result1 = parse_LineTerminator(); - if (result1 === null) { - result1 = parse_Comment(); - } - } - } - return result0; - } - - function parse_Literal() { - var result0; - var pos0; - - result0 = parse_BooleanLiteral(); - if (result0 === null) { - pos0 = pos; - result0 = parse_NumericLiteral(); - if (result0 !== null) { - result0 = (function(offset, value) { - return { - type: "NumericLiteral", - value: value - }; - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_StringLiteral(); - if (result0 !== null) { - result0 = (function(offset, value) { - return { - type: "StringLiteral", - value: value - }; - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_PHPLiteral(); - if (result0 !== null) { - result0 = (function(offset, value) { - return { - type: "PHPLiteral", - value: value - } - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_EODLiteral(); - if (result0 !== null) { - result0 = (function(offset, value) { - return { - type: "EODLiteral", - value: value - } - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_EOTLiteral(); - if (result0 !== null) { - result0 = (function(offset, value) { - return { - type: "EOTLiteral", - value: value - } - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - } - } - } - } - } - return result0; - } - - function parse_NullLiteral() { - var result0; - var pos0; - - pos0 = pos; - result0 = parse_NullToken(); - if (result0 !== null) { - result0 = (function(offset) { return { type: "NullLiteral" }; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_BooleanLiteral() { - var result0; - var pos0; - - pos0 = pos; - result0 = parse_TrueToken(); - if (result0 !== null) { - result0 = (function(offset) { return { type: "BooleanLiteral", value: true }; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - result0 = parse_FalseToken(); - if (result0 !== null) { - result0 = (function(offset) { return { type: "BooleanLiteral", value: false }; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_NumericLiteral() { - var result0; - var pos0; - - reportFailures++; - pos0 = pos; - result0 = parse_HexIntegerLiteral(); - if (result0 === null) { - result0 = parse_DecimalLiteral(); - } - if (result0 !== null) { - result0 = (function(offset, literal) { - return literal; - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("number"); - } - return result0; - } - - function parse_DecimalLiteral() { - var result0, result1, result2, result3; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_DecimalIntegerLiteral(); - if (result0 !== null) { - if (input.charCodeAt(pos) === 46) { - result1 = "."; - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result1 !== null) { - result2 = parse_DecimalDigits(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse_ExponentPart(); - result3 = result3 !== null ? result3 : ""; - if (result3 !== null) { - result0 = [result0, result1, result2, result3]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, before, after, exponent) { - return parseFloat(before + "." + after + exponent); - })(pos0, result0[0], result0[2], result0[3]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 46) { - result0 = "."; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\".\""); - } - } - if (result0 !== null) { - result1 = parse_DecimalDigits(); - if (result1 !== null) { - result2 = parse_ExponentPart(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, after, exponent) { - return parseFloat("." + after + exponent); - })(pos0, result0[1], result0[2]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_DecimalIntegerLiteral(); - if (result0 !== null) { - result1 = parse_ExponentPart(); - result1 = result1 !== null ? result1 : ""; - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, before, exponent) { - return parseFloat(before + exponent); - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - } - } - return result0; - } - - function parse_DecimalIntegerLiteral() { - var result0, result1; - var pos0, pos1; - - if (input.charCodeAt(pos) === 48) { - result0 = "0"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"0\""); - } - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - result0 = parse_NonZeroDigit(); - if (result0 !== null) { - result1 = parse_DecimalDigits(); - result1 = result1 !== null ? result1 : ""; - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, digit, digits) { return digit + digits; })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_DecimalDigits() { - var result0, result1; - var pos0; - - pos0 = pos; - result1 = parse_DecimalDigit(); - if (result1 !== null) { - result0 = []; - while (result1 !== null) { - result0.push(result1); - result1 = parse_DecimalDigit(); - } - } else { - result0 = null; - } - if (result0 !== null) { - result0 = (function(offset, digits) { return digits.join(""); })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_DecimalDigit() { - var result0; - - if (/^[0-9]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[0-9]"); - } - } - return result0; - } - - function parse_NonZeroDigit() { - var result0; - - if (/^[1-9]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[1-9]"); - } - } - return result0; - } - - function parse_ExponentPart() { - var result0, result1; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_ExponentIndicator(); - if (result0 !== null) { - result1 = parse_SignedInteger(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, indicator, integer) { - return indicator + integer; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ExponentIndicator() { - var result0; - - if (/^[eE]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[eE]"); - } - } - return result0; - } - - function parse_SignedInteger() { - var result0, result1; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (/^[\-+]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\-+]"); - } - } - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse_DecimalDigits(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, sign, digits) { return sign + digits; })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_HexIntegerLiteral() { - var result0, result1, result2, result3; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 48) { - result0 = "0"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"0\""); - } - } - if (result0 !== null) { - if (/^[xX]/.test(input.charAt(pos))) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("[xX]"); - } - } - if (result1 !== null) { - result3 = parse_HexDigit(); - if (result3 !== null) { - result2 = []; - while (result3 !== null) { - result2.push(result3); - result3 = parse_HexDigit(); - } - } else { - result2 = null; - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, digits) { return parseInt("0x" + digits.join("")); })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_HexDigit() { - var result0; - - if (/^[0-9a-fA-F]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[0-9a-fA-F]"); - } - } - return result0; - } - - function parse_StringLiteral() { - var result0, result1, result2; - var pos0, pos1; - - reportFailures++; - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 34) { - result0 = "\""; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\"\""); - } - } - if (result0 !== null) { - result1 = parse_DoubleStringCharacters(); - result1 = result1 !== null ? result1 : ""; - if (result1 !== null) { - if (input.charCodeAt(pos) === 34) { - result2 = "\""; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"\\\"\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 === null) { - pos1 = pos; - if (input.charCodeAt(pos) === 39) { - result0 = "'"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"'\""); - } - } - if (result0 !== null) { - result1 = parse_SingleStringCharacters(); - result1 = result1 !== null ? result1 : ""; - if (result1 !== null) { - if (input.charCodeAt(pos) === 39) { - result2 = "'"; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"'\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } - if (result0 !== null) { - result0 = (function(offset, parts) { - return parts[1]; - })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - reportFailures--; - if (reportFailures === 0 && result0 === null) { - matchFailed("string"); - } - return result0; - } - - function parse_DoubleStringCharacters() { - var result0, result1; - var pos0; - - pos0 = pos; - result1 = parse_DoubleStringCharacter(); - if (result1 !== null) { - result0 = []; - while (result1 !== null) { - result0.push(result1); - result1 = parse_DoubleStringCharacter(); - } - } else { - result0 = null; - } - if (result0 !== null) { - result0 = (function(offset, chars) { return chars.join(""); })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_SingleStringCharacters() { - var result0, result1; - var pos0; - - pos0 = pos; - result1 = parse_SingleStringCharacter(); - if (result1 !== null) { - result0 = []; - while (result1 !== null) { - result0.push(result1); - result1 = parse_SingleStringCharacter(); - } - } else { - result0 = null; - } - if (result0 !== null) { - result0 = (function(offset, chars) { return chars.join(""); })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_DoubleStringCharacter() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 34) { - result0 = "\""; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\"\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 92) { - result0 = "\\"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result0 === null) { - result0 = parse_LineTerminator(); - } - } - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - result1 = parse_SourceCharacter(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, char_) { return char_; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 92) { - result0 = "\\"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result0 !== null) { - if (input.length > pos) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return "'.\"\\"+m[1]+"\".'"; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_SingleStringCharacter() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 39) { - result0 = "'"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"'\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 92) { - result0 = "\\"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result0 === null) { - result0 = parse_LineTerminator(); - } - } - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - result1 = parse_SourceCharacter(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, char_) { return char_; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 92) { - result0 = "\\"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\\\\""); - } - } - if (result0 !== null) { - if (input.length > pos) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("any character"); - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, m) { return "'.\"\\"+m[1]+"\".'"; })(pos0, result0); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_EODLiteral() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 96) { - result0 = "`"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"`\""); - } - } - if (result0 !== null) { - result2 = parse_EODString(); - if (result2 !== null) { - result1 = []; - while (result2 !== null) { - result1.push(result2); - result2 = parse_EODString(); - } - } else { - result1 = null; - } - if (result1 !== null) { - if (input.charCodeAt(pos) === 96) { - result2 = "`"; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"`\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, EODv) { - return EODv.join(""); - })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EOTLiteral() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 96) { - result0 = "`"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"`\""); - } - } - if (result0 !== null) { - result2 = parse_EOTString(); - if (result2 !== null) { - result1 = []; - while (result2 !== null) { - result1.push(result2); - result2 = parse_EOTString(); - } - } else { - result1 = null; - } - if (result1 !== null) { - if (input.charCodeAt(pos) === 96) { - result2 = "`"; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"`\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, EOTv) { - return EOTv.join(""); - })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EODString() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 96) { - result0 = "`"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"`\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 36) { - result0 = "$"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"$\""); - } - } - } - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - result1 = parse_SourceCharacter(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, char_) { return char_; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EOTString() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.charCodeAt(pos) === 96) { - result0 = "`"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"`\""); - } - } - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - result1 = parse_SourceCharacter(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, char_) { return char_; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_ArrayLiteral() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 91) { - result0 = "["; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result0 !== null) { - result1 = parse____(); - if (result1 !== null) { - pos2 = pos; - result2 = parse_PropertyNameAndValueList(); - if (result2 !== null) { - result3 = parse____(); - if (result3 !== null) { - pos3 = pos; - if (input.charCodeAt(pos) === 44) { - result4 = ","; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result4 !== null) { - result5 = parse____(); - if (result5 !== null) { - result4 = [result4, result5]; - } else { - result4 = null; - pos = pos3; - } - } else { - result4 = null; - pos = pos3; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - result2 = [result2, result3, result4]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - if (input.charCodeAt(pos) === 93) { - result3 = "]"; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result3 !== null) { - result0 = [result0, result1, result2, result3]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, properties) { - return { - type: "keyBasedArrayLiteral", - properties: properties !== "" ? properties[0] : [] - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - if (result0 === null) { - pos0 = pos; - pos1 = pos; - if (input.charCodeAt(pos) === 91) { - result0 = "["; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"[\""); - } - } - if (result0 !== null) { - result1 = parse____(); - if (result1 !== null) { - result2 = parse_ElementList(); - result2 = result2 !== null ? result2 : ""; - if (result2 !== null) { - result3 = parse____(); - if (result3 !== null) { - pos2 = pos; - result4 = parse_Elision(); - if (result4 !== null) { - result5 = parse____(); - if (result5 !== null) { - result4 = [result4, result5]; - } else { - result4 = null; - pos = pos2; - } - } else { - result4 = null; - pos = pos2; - } - result4 = result4 !== null ? result4 : ""; - if (result4 !== null) { - if (input.charCodeAt(pos) === 93) { - result5 = "]"; - pos++; - } else { - result5 = null; - if (reportFailures === 0) { - matchFailed("\"]\""); - } - } - if (result5 !== null) { - result0 = [result0, result1, result2, result3, result4, result5]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, elements) { - return { - type: "ArrayLiteral", - elements: elements !== "" ? elements : [] - }; - })(pos0, result0[2]); - } - if (result0 === null) { - pos = pos0; - } - } - return result0; - } - - function parse_ElementList() { - var result0, result1, result2, result3, result4, result5, result6, result7, result8; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - result0 = parse_Elision(); - if (result0 !== null) { - result1 = parse____(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos2; - } - } else { - result0 = null; - pos = pos2; - } - result0 = result0 !== null ? result0 : ""; - if (result0 !== null) { - result1 = parse_AssignmentExpression(); - if (result1 !== null) { - result2 = []; - pos2 = pos; - result3 = parse____(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 44) { - result4 = ","; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - result6 = parse_Elision(); - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result7 = parse____(); - if (result7 !== null) { - result8 = parse_AssignmentExpression(); - if (result8 !== null) { - result3 = [result3, result4, result5, result6, result7, result8]; - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - while (result3 !== null) { - result2.push(result3); - pos2 = pos; - result3 = parse____(); - if (result3 !== null) { - if (input.charCodeAt(pos) === 44) { - result4 = ","; - pos++; - } else { - result4 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result4 !== null) { - result5 = parse___(); - if (result5 !== null) { - result6 = parse_Elision(); - result6 = result6 !== null ? result6 : ""; - if (result6 !== null) { - result7 = parse____(); - if (result7 !== null) { - result8 = parse_AssignmentExpression(); - if (result8 !== null) { - result3 = [result3, result4, result5, result6, result7, result8]; - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } else { - result3 = null; - pos = pos2; - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = [head]; - for (var i = 0; i < tail.length; i++) { - result.push(tail[i][5]); - } - return result; - })(pos0, result0[1], result0[2]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_Elision() { - var result0, result1, result2, result3; - var pos0, pos1; - - pos0 = pos; - if (input.charCodeAt(pos) === 44) { - result0 = ","; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result0 !== null) { - result1 = []; - pos1 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - while (result2 !== null) { - result1.push(result2); - pos1 = pos; - result2 = parse___(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result2 = [result2, result3]; - } else { - result2 = null; - pos = pos1; - } - } else { - result2 = null; - pos = pos1; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - return result0; - } - - function parse_PropertyNameAndValueList() { - var result0, result1, result2, result3, result4, result5; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - result0 = parse_PropertyAssignment(); - if (result0 === null) { - result0 = parse_AssignmentExpression(); - } - if (result0 !== null) { - result1 = []; - pos2 = pos; - result2 = parse____(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse____(); - if (result4 !== null) { - result5 = parse_PropertyAssignment(); - if (result5 === null) { - result5 = parse_AssignmentExpression(); - } - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - while (result2 !== null) { - result1.push(result2); - pos2 = pos; - result2 = parse____(); - if (result2 !== null) { - if (input.charCodeAt(pos) === 44) { - result3 = ","; - pos++; - } else { - result3 = null; - if (reportFailures === 0) { - matchFailed("\",\""); - } - } - if (result3 !== null) { - result4 = parse____(); - if (result4 !== null) { - result5 = parse_PropertyAssignment(); - if (result5 === null) { - result5 = parse_AssignmentExpression(); - } - if (result5 !== null) { - result2 = [result2, result3, result4, result5]; - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } else { - result2 = null; - pos = pos2; - } - } - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, head, tail) { - var result = [head]; - for (var i = 0; i < tail.length; i++) { - result.push(tail[i][3]); - } - return result; - })(pos0, result0[0], result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_PropertyAssignment() { - var result0, result1, result2, result3, result4; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = parse_PropertyName(); - if (result0 !== null) { - result1 = parse____(); - if (result1 !== null) { - if (input.charCodeAt(pos) === 58) { - result2 = ":"; - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\":\""); - } - } - if (result2 !== null) { - result3 = parse____(); - if (result3 !== null) { - result4 = parse_AssignmentExpression(); - if (result4 !== null) { - result0 = [result0, result1, result2, result3, result4]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, name, value) { - return { - type: "PropertyAssignment", - name: name, - value: value - }; - })(pos0, result0[0], result0[4]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_PropertyName() { - var result0; - - result0 = parse_IdentifierName(); - if (result0 === null) { - result0 = parse_StringLiteral(); - if (result0 === null) { - result0 = parse_NumericLiteral(); - } - } - return result0; - } - - function parse_PHPLiteral() { - var result0, result1, result2; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - if (input.substr(pos, 2) === "``") { - result0 = "``"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"``\""); - } - } - if (result0 !== null) { - result2 = parse_RAWString(); - if (result2 !== null) { - result1 = []; - while (result2 !== null) { - result1.push(result2); - result2 = parse_RAWString(); - } - } else { - result1 = null; - } - if (result1 !== null) { - if (input.substr(pos, 2) === "``") { - result2 = "``"; - pos += 2; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("\"``\""); - } - } - if (result2 !== null) { - result0 = [result0, result1, result2]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, RAW) { - return RAW.join(""); - })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_RAWString() { - var result0, result1; - var pos0, pos1, pos2; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - reportFailures++; - if (input.substr(pos, 2) === "``") { - result0 = "``"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"``\""); - } - } - reportFailures--; - if (result0 === null) { - result0 = ""; - } else { - result0 = null; - pos = pos2; - } - if (result0 !== null) { - result1 = parse_SourceCharacter(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, char_) { return char_; })(pos0, result0[1]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_Ll() { - var result0; - - if (/^[abcdefghijklmnopqrstuvwxyz\xAA\xB5\xBA\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E\u017F\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199\u019A\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD\u01BE\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233\u0234\u0235\u0236\u0237\u0238\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F\u0250\u0251\u0252\u0253\u0254\u0255\u0256\u0257\u0258\u0259\u025A\u025B\u025C\u025D\u025E\u025F\u0260\u0261\u0262\u0263\u0264\u0265\u0266\u0267\u0268\u0269\u026A\u026B\u026C\u026D\u026E\u026F\u0270\u0271\u0272\u0273\u0274\u0275\u0276\u0277\u0278\u0279\u027A\u027B\u027C\u027D\u027E\u027F\u0280\u0281\u0282\u0283\u0284\u0285\u0286\u0287\u0288\u0289\u028A\u028B\u028C\u028D\u028E\u028F\u0290\u0291\u0292\u0293\u0295\u0296\u0297\u0298\u0299\u029A\u029B\u029C\u029D\u029E\u029F\u02A0\u02A1\u02A2\u02A3\u02A4\u02A5\u02A6\u02A7\u02A8\u02A9\u02AA\u02AB\u02AC\u02AD\u02AE\u02AF\u0371\u0373\u0377\u037B\u037C\u037D\u0390\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\u03D0\u03D1\u03D5\u03D6\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF\u03F0\u03F1\u03F2\u03F3\u03F5\u03F8\u03FB\u03FC\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0450\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\u045D\u045E\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0561\u0562\u0563\u0564\u0565\u0566\u0567\u0568\u0569\u056A\u056B\u056C\u056D\u056E\u056F\u0570\u0571\u0572\u0573\u0574\u0575\u0576\u0577\u0578\u0579\u057A\u057B\u057C\u057D\u057E\u057F\u0580\u0581\u0582\u0583\u0584\u0585\u0586\u0587\u1D00\u1D01\u1D02\u1D03\u1D04\u1D05\u1D06\u1D07\u1D08\u1D09\u1D0A\u1D0B\u1D0C\u1D0D\u1D0E\u1D0F\u1D10\u1D11\u1D12\u1D13\u1D14\u1D15\u1D16\u1D17\u1D18\u1D19\u1D1A\u1D1B\u1D1C\u1D1D\u1D1E\u1D1F\u1D20\u1D21\u1D22\u1D23\u1D24\u1D25\u1D26\u1D27\u1D28\u1D29\u1D2A\u1D2B\u1D62\u1D63\u1D64\u1D65\u1D66\u1D67\u1D68\u1D69\u1D6A\u1D6B\u1D6C\u1D6D\u1D6E\u1D6F\u1D70\u1D71\u1D72\u1D73\u1D74\u1D75\u1D76\u1D77\u1D79\u1D7A\u1D7B\u1D7C\u1D7D\u1D7E\u1D7F\u1D80\u1D81\u1D82\u1D83\u1D84\u1D85\u1D86\u1D87\u1D88\u1D89\u1D8A\u1D8B\u1D8C\u1D8D\u1D8E\u1D8F\u1D90\u1D91\u1D92\u1D93\u1D94\u1D95\u1D96\u1D97\u1D98\u1D99\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95\u1E96\u1E97\u1E98\u1E99\u1E9A\u1E9B\u1E9C\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF\u1F00\u1F01\u1F02\u1F03\u1F04\u1F05\u1F06\u1F07\u1F10\u1F11\u1F12\u1F13\u1F14\u1F15\u1F20\u1F21\u1F22\u1F23\u1F24\u1F25\u1F26\u1F27\u1F30\u1F31\u1F32\u1F33\u1F34\u1F35\u1F36\u1F37\u1F40\u1F41\u1F42\u1F43\u1F44\u1F45\u1F50\u1F51\u1F52\u1F53\u1F54\u1F55\u1F56\u1F57\u1F60\u1F61\u1F62\u1F63\u1F64\u1F65\u1F66\u1F67\u1F70\u1F71\u1F72\u1F73\u1F74\u1F75\u1F76\u1F77\u1F78\u1F79\u1F7A\u1F7B\u1F7C\u1F7D\u1F80\u1F81\u1F82\u1F83\u1F84\u1F85\u1F86\u1F87\u1F90\u1F91\u1F92\u1F93\u1F94\u1F95\u1F96\u1F97\u1FA0\u1FA1\u1FA2\u1FA3\u1FA4\u1FA5\u1FA6\u1FA7\u1FB0\u1FB1\u1FB2\u1FB3\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2\u1FC3\u1FC4\u1FC6\u1FC7\u1FD0\u1FD1\u1FD2\u1FD3\u1FD6\u1FD7\u1FE0\u1FE1\u1FE2\u1FE3\u1FE4\u1FE5\u1FE6\u1FE7\u1FF2\u1FF3\u1FF4\u1FF6\u1FF7\u2071\u207F\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146\u2147\u2148\u2149\u214E\u2184\u2C30\u2C31\u2C32\u2C33\u2C34\u2C35\u2C36\u2C37\u2C38\u2C39\u2C3A\u2C3B\u2C3C\u2C3D\u2C3E\u2C3F\u2C40\u2C41\u2C42\u2C43\u2C44\u2C45\u2C46\u2C47\u2C48\u2C49\u2C4A\u2C4B\u2C4C\u2C4D\u2C4E\u2C4F\u2C50\u2C51\u2C52\u2C53\u2C54\u2C55\u2C56\u2C57\u2C58\u2C59\u2C5A\u2C5B\u2C5C\u2C5D\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76\u2C77\u2C78\u2C79\u2C7A\u2C7B\u2C7C\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2D00\u2D01\u2D02\u2D03\u2D04\u2D05\u2D06\u2D07\u2D08\u2D09\u2D0A\u2D0B\u2D0C\u2D0D\u2D0E\u2D0F\u2D10\u2D11\u2D12\u2D13\u2D14\u2D15\u2D16\u2D17\u2D18\u2D19\u2D1A\u2D1B\u2D1C\u2D1D\u2D1E\u2D1F\u2D20\u2D21\u2D22\u2D23\u2D24\u2D25\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F\uA730\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771\uA772\uA773\uA774\uA775\uA776\uA777\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uFB00\uFB01\uFB02\uFB03\uFB04\uFB05\uFB06\uFB13\uFB14\uFB15\uFB16\uFB17\uFF41\uFF42\uFF43\uFF44\uFF45\uFF46\uFF47\uFF48\uFF49\uFF4A\uFF4B\uFF4C\uFF4D\uFF4E\uFF4F\uFF50\uFF51\uFF52\uFF53\uFF54\uFF55\uFF56\uFF57\uFF58\uFF59\uFF5A]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[abcdefghijklmnopqrstuvwxyz\\xAA\\xB5\\xBA\\xDF\\xE0\\xE1\\xE2\\xE3\\xE4\\xE5\\xE6\\xE7\\xE8\\xE9\\xEA\\xEB\\xEC\\xED\\xEE\\xEF\\xF0\\xF1\\xF2\\xF3\\xF4\\xF5\\xF6\\xF8\\xF9\\xFA\\xFB\\xFC\\xFD\\xFE\\xFF\\u0101\\u0103\\u0105\\u0107\\u0109\\u010B\\u010D\\u010F\\u0111\\u0113\\u0115\\u0117\\u0119\\u011B\\u011D\\u011F\\u0121\\u0123\\u0125\\u0127\\u0129\\u012B\\u012D\\u012F\\u0131\\u0133\\u0135\\u0137\\u0138\\u013A\\u013C\\u013E\\u0140\\u0142\\u0144\\u0146\\u0148\\u0149\\u014B\\u014D\\u014F\\u0151\\u0153\\u0155\\u0157\\u0159\\u015B\\u015D\\u015F\\u0161\\u0163\\u0165\\u0167\\u0169\\u016B\\u016D\\u016F\\u0171\\u0173\\u0175\\u0177\\u017A\\u017C\\u017E\\u017F\\u0180\\u0183\\u0185\\u0188\\u018C\\u018D\\u0192\\u0195\\u0199\\u019A\\u019B\\u019E\\u01A1\\u01A3\\u01A5\\u01A8\\u01AA\\u01AB\\u01AD\\u01B0\\u01B4\\u01B6\\u01B9\\u01BA\\u01BD\\u01BE\\u01BF\\u01C6\\u01C9\\u01CC\\u01CE\\u01D0\\u01D2\\u01D4\\u01D6\\u01D8\\u01DA\\u01DC\\u01DD\\u01DF\\u01E1\\u01E3\\u01E5\\u01E7\\u01E9\\u01EB\\u01ED\\u01EF\\u01F0\\u01F3\\u01F5\\u01F9\\u01FB\\u01FD\\u01FF\\u0201\\u0203\\u0205\\u0207\\u0209\\u020B\\u020D\\u020F\\u0211\\u0213\\u0215\\u0217\\u0219\\u021B\\u021D\\u021F\\u0221\\u0223\\u0225\\u0227\\u0229\\u022B\\u022D\\u022F\\u0231\\u0233\\u0234\\u0235\\u0236\\u0237\\u0238\\u0239\\u023C\\u023F\\u0240\\u0242\\u0247\\u0249\\u024B\\u024D\\u024F\\u0250\\u0251\\u0252\\u0253\\u0254\\u0255\\u0256\\u0257\\u0258\\u0259\\u025A\\u025B\\u025C\\u025D\\u025E\\u025F\\u0260\\u0261\\u0262\\u0263\\u0264\\u0265\\u0266\\u0267\\u0268\\u0269\\u026A\\u026B\\u026C\\u026D\\u026E\\u026F\\u0270\\u0271\\u0272\\u0273\\u0274\\u0275\\u0276\\u0277\\u0278\\u0279\\u027A\\u027B\\u027C\\u027D\\u027E\\u027F\\u0280\\u0281\\u0282\\u0283\\u0284\\u0285\\u0286\\u0287\\u0288\\u0289\\u028A\\u028B\\u028C\\u028D\\u028E\\u028F\\u0290\\u0291\\u0292\\u0293\\u0295\\u0296\\u0297\\u0298\\u0299\\u029A\\u029B\\u029C\\u029D\\u029E\\u029F\\u02A0\\u02A1\\u02A2\\u02A3\\u02A4\\u02A5\\u02A6\\u02A7\\u02A8\\u02A9\\u02AA\\u02AB\\u02AC\\u02AD\\u02AE\\u02AF\\u0371\\u0373\\u0377\\u037B\\u037C\\u037D\\u0390\\u03AC\\u03AD\\u03AE\\u03AF\\u03B0\\u03B1\\u03B2\\u03B3\\u03B4\\u03B5\\u03B6\\u03B7\\u03B8\\u03B9\\u03BA\\u03BB\\u03BC\\u03BD\\u03BE\\u03BF\\u03C0\\u03C1\\u03C2\\u03C3\\u03C4\\u03C5\\u03C6\\u03C7\\u03C8\\u03C9\\u03CA\\u03CB\\u03CC\\u03CD\\u03CE\\u03D0\\u03D1\\u03D5\\u03D6\\u03D7\\u03D9\\u03DB\\u03DD\\u03DF\\u03E1\\u03E3\\u03E5\\u03E7\\u03E9\\u03EB\\u03ED\\u03EF\\u03F0\\u03F1\\u03F2\\u03F3\\u03F5\\u03F8\\u03FB\\u03FC\\u0430\\u0431\\u0432\\u0433\\u0434\\u0435\\u0436\\u0437\\u0438\\u0439\\u043A\\u043B\\u043C\\u043D\\u043E\\u043F\\u0440\\u0441\\u0442\\u0443\\u0444\\u0445\\u0446\\u0447\\u0448\\u0449\\u044A\\u044B\\u044C\\u044D\\u044E\\u044F\\u0450\\u0451\\u0452\\u0453\\u0454\\u0455\\u0456\\u0457\\u0458\\u0459\\u045A\\u045B\\u045C\\u045D\\u045E\\u045F\\u0461\\u0463\\u0465\\u0467\\u0469\\u046B\\u046D\\u046F\\u0471\\u0473\\u0475\\u0477\\u0479\\u047B\\u047D\\u047F\\u0481\\u048B\\u048D\\u048F\\u0491\\u0493\\u0495\\u0497\\u0499\\u049B\\u049D\\u049F\\u04A1\\u04A3\\u04A5\\u04A7\\u04A9\\u04AB\\u04AD\\u04AF\\u04B1\\u04B3\\u04B5\\u04B7\\u04B9\\u04BB\\u04BD\\u04BF\\u04C2\\u04C4\\u04C6\\u04C8\\u04CA\\u04CC\\u04CE\\u04CF\\u04D1\\u04D3\\u04D5\\u04D7\\u04D9\\u04DB\\u04DD\\u04DF\\u04E1\\u04E3\\u04E5\\u04E7\\u04E9\\u04EB\\u04ED\\u04EF\\u04F1\\u04F3\\u04F5\\u04F7\\u04F9\\u04FB\\u04FD\\u04FF\\u0501\\u0503\\u0505\\u0507\\u0509\\u050B\\u050D\\u050F\\u0511\\u0513\\u0515\\u0517\\u0519\\u051B\\u051D\\u051F\\u0521\\u0523\\u0561\\u0562\\u0563\\u0564\\u0565\\u0566\\u0567\\u0568\\u0569\\u056A\\u056B\\u056C\\u056D\\u056E\\u056F\\u0570\\u0571\\u0572\\u0573\\u0574\\u0575\\u0576\\u0577\\u0578\\u0579\\u057A\\u057B\\u057C\\u057D\\u057E\\u057F\\u0580\\u0581\\u0582\\u0583\\u0584\\u0585\\u0586\\u0587\\u1D00\\u1D01\\u1D02\\u1D03\\u1D04\\u1D05\\u1D06\\u1D07\\u1D08\\u1D09\\u1D0A\\u1D0B\\u1D0C\\u1D0D\\u1D0E\\u1D0F\\u1D10\\u1D11\\u1D12\\u1D13\\u1D14\\u1D15\\u1D16\\u1D17\\u1D18\\u1D19\\u1D1A\\u1D1B\\u1D1C\\u1D1D\\u1D1E\\u1D1F\\u1D20\\u1D21\\u1D22\\u1D23\\u1D24\\u1D25\\u1D26\\u1D27\\u1D28\\u1D29\\u1D2A\\u1D2B\\u1D62\\u1D63\\u1D64\\u1D65\\u1D66\\u1D67\\u1D68\\u1D69\\u1D6A\\u1D6B\\u1D6C\\u1D6D\\u1D6E\\u1D6F\\u1D70\\u1D71\\u1D72\\u1D73\\u1D74\\u1D75\\u1D76\\u1D77\\u1D79\\u1D7A\\u1D7B\\u1D7C\\u1D7D\\u1D7E\\u1D7F\\u1D80\\u1D81\\u1D82\\u1D83\\u1D84\\u1D85\\u1D86\\u1D87\\u1D88\\u1D89\\u1D8A\\u1D8B\\u1D8C\\u1D8D\\u1D8E\\u1D8F\\u1D90\\u1D91\\u1D92\\u1D93\\u1D94\\u1D95\\u1D96\\u1D97\\u1D98\\u1D99\\u1D9A\\u1E01\\u1E03\\u1E05\\u1E07\\u1E09\\u1E0B\\u1E0D\\u1E0F\\u1E11\\u1E13\\u1E15\\u1E17\\u1E19\\u1E1B\\u1E1D\\u1E1F\\u1E21\\u1E23\\u1E25\\u1E27\\u1E29\\u1E2B\\u1E2D\\u1E2F\\u1E31\\u1E33\\u1E35\\u1E37\\u1E39\\u1E3B\\u1E3D\\u1E3F\\u1E41\\u1E43\\u1E45\\u1E47\\u1E49\\u1E4B\\u1E4D\\u1E4F\\u1E51\\u1E53\\u1E55\\u1E57\\u1E59\\u1E5B\\u1E5D\\u1E5F\\u1E61\\u1E63\\u1E65\\u1E67\\u1E69\\u1E6B\\u1E6D\\u1E6F\\u1E71\\u1E73\\u1E75\\u1E77\\u1E79\\u1E7B\\u1E7D\\u1E7F\\u1E81\\u1E83\\u1E85\\u1E87\\u1E89\\u1E8B\\u1E8D\\u1E8F\\u1E91\\u1E93\\u1E95\\u1E96\\u1E97\\u1E98\\u1E99\\u1E9A\\u1E9B\\u1E9C\\u1E9D\\u1E9F\\u1EA1\\u1EA3\\u1EA5\\u1EA7\\u1EA9\\u1EAB\\u1EAD\\u1EAF\\u1EB1\\u1EB3\\u1EB5\\u1EB7\\u1EB9\\u1EBB\\u1EBD\\u1EBF\\u1EC1\\u1EC3\\u1EC5\\u1EC7\\u1EC9\\u1ECB\\u1ECD\\u1ECF\\u1ED1\\u1ED3\\u1ED5\\u1ED7\\u1ED9\\u1EDB\\u1EDD\\u1EDF\\u1EE1\\u1EE3\\u1EE5\\u1EE7\\u1EE9\\u1EEB\\u1EED\\u1EEF\\u1EF1\\u1EF3\\u1EF5\\u1EF7\\u1EF9\\u1EFB\\u1EFD\\u1EFF\\u1F00\\u1F01\\u1F02\\u1F03\\u1F04\\u1F05\\u1F06\\u1F07\\u1F10\\u1F11\\u1F12\\u1F13\\u1F14\\u1F15\\u1F20\\u1F21\\u1F22\\u1F23\\u1F24\\u1F25\\u1F26\\u1F27\\u1F30\\u1F31\\u1F32\\u1F33\\u1F34\\u1F35\\u1F36\\u1F37\\u1F40\\u1F41\\u1F42\\u1F43\\u1F44\\u1F45\\u1F50\\u1F51\\u1F52\\u1F53\\u1F54\\u1F55\\u1F56\\u1F57\\u1F60\\u1F61\\u1F62\\u1F63\\u1F64\\u1F65\\u1F66\\u1F67\\u1F70\\u1F71\\u1F72\\u1F73\\u1F74\\u1F75\\u1F76\\u1F77\\u1F78\\u1F79\\u1F7A\\u1F7B\\u1F7C\\u1F7D\\u1F80\\u1F81\\u1F82\\u1F83\\u1F84\\u1F85\\u1F86\\u1F87\\u1F90\\u1F91\\u1F92\\u1F93\\u1F94\\u1F95\\u1F96\\u1F97\\u1FA0\\u1FA1\\u1FA2\\u1FA3\\u1FA4\\u1FA5\\u1FA6\\u1FA7\\u1FB0\\u1FB1\\u1FB2\\u1FB3\\u1FB4\\u1FB6\\u1FB7\\u1FBE\\u1FC2\\u1FC3\\u1FC4\\u1FC6\\u1FC7\\u1FD0\\u1FD1\\u1FD2\\u1FD3\\u1FD6\\u1FD7\\u1FE0\\u1FE1\\u1FE2\\u1FE3\\u1FE4\\u1FE5\\u1FE6\\u1FE7\\u1FF2\\u1FF3\\u1FF4\\u1FF6\\u1FF7\\u2071\\u207F\\u210A\\u210E\\u210F\\u2113\\u212F\\u2134\\u2139\\u213C\\u213D\\u2146\\u2147\\u2148\\u2149\\u214E\\u2184\\u2C30\\u2C31\\u2C32\\u2C33\\u2C34\\u2C35\\u2C36\\u2C37\\u2C38\\u2C39\\u2C3A\\u2C3B\\u2C3C\\u2C3D\\u2C3E\\u2C3F\\u2C40\\u2C41\\u2C42\\u2C43\\u2C44\\u2C45\\u2C46\\u2C47\\u2C48\\u2C49\\u2C4A\\u2C4B\\u2C4C\\u2C4D\\u2C4E\\u2C4F\\u2C50\\u2C51\\u2C52\\u2C53\\u2C54\\u2C55\\u2C56\\u2C57\\u2C58\\u2C59\\u2C5A\\u2C5B\\u2C5C\\u2C5D\\u2C5E\\u2C61\\u2C65\\u2C66\\u2C68\\u2C6A\\u2C6C\\u2C71\\u2C73\\u2C74\\u2C76\\u2C77\\u2C78\\u2C79\\u2C7A\\u2C7B\\u2C7C\\u2C81\\u2C83\\u2C85\\u2C87\\u2C89\\u2C8B\\u2C8D\\u2C8F\\u2C91\\u2C93\\u2C95\\u2C97\\u2C99\\u2C9B\\u2C9D\\u2C9F\\u2CA1\\u2CA3\\u2CA5\\u2CA7\\u2CA9\\u2CAB\\u2CAD\\u2CAF\\u2CB1\\u2CB3\\u2CB5\\u2CB7\\u2CB9\\u2CBB\\u2CBD\\u2CBF\\u2CC1\\u2CC3\\u2CC5\\u2CC7\\u2CC9\\u2CCB\\u2CCD\\u2CCF\\u2CD1\\u2CD3\\u2CD5\\u2CD7\\u2CD9\\u2CDB\\u2CDD\\u2CDF\\u2CE1\\u2CE3\\u2CE4\\u2D00\\u2D01\\u2D02\\u2D03\\u2D04\\u2D05\\u2D06\\u2D07\\u2D08\\u2D09\\u2D0A\\u2D0B\\u2D0C\\u2D0D\\u2D0E\\u2D0F\\u2D10\\u2D11\\u2D12\\u2D13\\u2D14\\u2D15\\u2D16\\u2D17\\u2D18\\u2D19\\u2D1A\\u2D1B\\u2D1C\\u2D1D\\u2D1E\\u2D1F\\u2D20\\u2D21\\u2D22\\u2D23\\u2D24\\u2D25\\uA641\\uA643\\uA645\\uA647\\uA649\\uA64B\\uA64D\\uA64F\\uA651\\uA653\\uA655\\uA657\\uA659\\uA65B\\uA65D\\uA65F\\uA663\\uA665\\uA667\\uA669\\uA66B\\uA66D\\uA681\\uA683\\uA685\\uA687\\uA689\\uA68B\\uA68D\\uA68F\\uA691\\uA693\\uA695\\uA697\\uA723\\uA725\\uA727\\uA729\\uA72B\\uA72D\\uA72F\\uA730\\uA731\\uA733\\uA735\\uA737\\uA739\\uA73B\\uA73D\\uA73F\\uA741\\uA743\\uA745\\uA747\\uA749\\uA74B\\uA74D\\uA74F\\uA751\\uA753\\uA755\\uA757\\uA759\\uA75B\\uA75D\\uA75F\\uA761\\uA763\\uA765\\uA767\\uA769\\uA76B\\uA76D\\uA76F\\uA771\\uA772\\uA773\\uA774\\uA775\\uA776\\uA777\\uA778\\uA77A\\uA77C\\uA77F\\uA781\\uA783\\uA785\\uA787\\uA78C\\uFB00\\uFB01\\uFB02\\uFB03\\uFB04\\uFB05\\uFB06\\uFB13\\uFB14\\uFB15\\uFB16\\uFB17\\uFF41\\uFF42\\uFF43\\uFF44\\uFF45\\uFF46\\uFF47\\uFF48\\uFF49\\uFF4A\\uFF4B\\uFF4C\\uFF4D\\uFF4E\\uFF4F\\uFF50\\uFF51\\uFF52\\uFF53\\uFF54\\uFF55\\uFF56\\uFF57\\uFF58\\uFF59\\uFF5A]"); - } - } - return result0; - } - - function parse_Lm() { - var result0; - - if (/^[\u02B0\u02B1\u02B2\u02B3\u02B4\u02B5\u02B6\u02B7\u02B8\u02B9\u02BA\u02BB\u02BC\u02BD\u02BE\u02BF\u02C0\u02C1\u02C6\u02C7\u02C8\u02C9\u02CA\u02CB\u02CC\u02CD\u02CE\u02CF\u02D0\u02D1\u02E0\u02E1\u02E2\u02E3\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5\u06E6\u07F4\u07F5\u07FA\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1C78\u1C79\u1C7A\u1C7B\u1C7C\u1C7D\u1D2C\u1D2D\u1D2E\u1D2F\u1D30\u1D31\u1D32\u1D33\u1D34\u1D35\u1D36\u1D37\u1D38\u1D39\u1D3A\u1D3B\u1D3C\u1D3D\u1D3E\u1D3F\u1D40\u1D41\u1D42\u1D43\u1D44\u1D45\u1D46\u1D47\u1D48\u1D49\u1D4A\u1D4B\u1D4C\u1D4D\u1D4E\u1D4F\u1D50\u1D51\u1D52\u1D53\u1D54\u1D55\u1D56\u1D57\u1D58\u1D59\u1D5A\u1D5B\u1D5C\u1D5D\u1D5E\u1D5F\u1D60\u1D61\u1D78\u1D9B\u1D9C\u1D9D\u1D9E\u1D9F\u1DA0\u1DA1\u1DA2\u1DA3\u1DA4\u1DA5\u1DA6\u1DA7\u1DA8\u1DA9\u1DAA\u1DAB\u1DAC\u1DAD\u1DAE\u1DAF\u1DB0\u1DB1\u1DB2\u1DB3\u1DB4\u1DB5\u1DB6\u1DB7\u1DB8\u1DB9\u1DBA\u1DBB\u1DBC\u1DBD\u1DBE\u1DBF\u2090\u2091\u2092\u2093\u2094\u2C7D\u2D6F\u2E2F\u3005\u3031\u3032\u3033\u3034\u3035\u303B\u309D\u309E\u30FC\u30FD\u30FE\uA015\uA60C\uA67F\uA717\uA718\uA719\uA71A\uA71B\uA71C\uA71D\uA71E\uA71F\uA770\uA788\uFF70\uFF9E\uFF9F]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\u02B0\\u02B1\\u02B2\\u02B3\\u02B4\\u02B5\\u02B6\\u02B7\\u02B8\\u02B9\\u02BA\\u02BB\\u02BC\\u02BD\\u02BE\\u02BF\\u02C0\\u02C1\\u02C6\\u02C7\\u02C8\\u02C9\\u02CA\\u02CB\\u02CC\\u02CD\\u02CE\\u02CF\\u02D0\\u02D1\\u02E0\\u02E1\\u02E2\\u02E3\\u02E4\\u02EC\\u02EE\\u0374\\u037A\\u0559\\u0640\\u06E5\\u06E6\\u07F4\\u07F5\\u07FA\\u0971\\u0E46\\u0EC6\\u10FC\\u17D7\\u1843\\u1C78\\u1C79\\u1C7A\\u1C7B\\u1C7C\\u1C7D\\u1D2C\\u1D2D\\u1D2E\\u1D2F\\u1D30\\u1D31\\u1D32\\u1D33\\u1D34\\u1D35\\u1D36\\u1D37\\u1D38\\u1D39\\u1D3A\\u1D3B\\u1D3C\\u1D3D\\u1D3E\\u1D3F\\u1D40\\u1D41\\u1D42\\u1D43\\u1D44\\u1D45\\u1D46\\u1D47\\u1D48\\u1D49\\u1D4A\\u1D4B\\u1D4C\\u1D4D\\u1D4E\\u1D4F\\u1D50\\u1D51\\u1D52\\u1D53\\u1D54\\u1D55\\u1D56\\u1D57\\u1D58\\u1D59\\u1D5A\\u1D5B\\u1D5C\\u1D5D\\u1D5E\\u1D5F\\u1D60\\u1D61\\u1D78\\u1D9B\\u1D9C\\u1D9D\\u1D9E\\u1D9F\\u1DA0\\u1DA1\\u1DA2\\u1DA3\\u1DA4\\u1DA5\\u1DA6\\u1DA7\\u1DA8\\u1DA9\\u1DAA\\u1DAB\\u1DAC\\u1DAD\\u1DAE\\u1DAF\\u1DB0\\u1DB1\\u1DB2\\u1DB3\\u1DB4\\u1DB5\\u1DB6\\u1DB7\\u1DB8\\u1DB9\\u1DBA\\u1DBB\\u1DBC\\u1DBD\\u1DBE\\u1DBF\\u2090\\u2091\\u2092\\u2093\\u2094\\u2C7D\\u2D6F\\u2E2F\\u3005\\u3031\\u3032\\u3033\\u3034\\u3035\\u303B\\u309D\\u309E\\u30FC\\u30FD\\u30FE\\uA015\\uA60C\\uA67F\\uA717\\uA718\\uA719\\uA71A\\uA71B\\uA71C\\uA71D\\uA71E\\uA71F\\uA770\\uA788\\uFF70\\uFF9E\\uFF9F]"); - } - } - return result0; - } - - function parse_Lo() { - var result0; - - if (/^[\u01BB\u01C0\u01C1\u01C2\u01C3\u0294\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\u05F0\u05F1\u05F2\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\u063B\u063C\u063D\u063E\u063F\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u066E\u066F\u0671\u0672\u0673\u0674\u0675\u0676\u0677\u0678\u0679\u067A\u067B\u067C\u067D\u067E\u067F\u0680\u0681\u0682\u0683\u0684\u0685\u0686\u0687\u0688\u0689\u068A\u068B\u068C\u068D\u068E\u068F\u0690\u0691\u0692\u0693\u0694\u0695\u0696\u0697\u0698\u0699\u069A\u069B\u069C\u069D\u069E\u069F\u06A0\u06A1\u06A2\u06A3\u06A4\u06A5\u06A6\u06A7\u06A8\u06A9\u06AA\u06AB\u06AC\u06AD\u06AE\u06AF\u06B0\u06B1\u06B2\u06B3\u06B4\u06B5\u06B6\u06B7\u06B8\u06B9\u06BA\u06BB\u06BC\u06BD\u06BE\u06BF\u06C0\u06C1\u06C2\u06C3\u06C4\u06C5\u06C6\u06C7\u06C8\u06C9\u06CA\u06CB\u06CC\u06CD\u06CE\u06CF\u06D0\u06D1\u06D2\u06D3\u06D5\u06EE\u06EF\u06FA\u06FB\u06FC\u06FF\u0710\u0712\u0713\u0714\u0715\u0716\u0717\u0718\u0719\u071A\u071B\u071C\u071D\u071E\u071F\u0720\u0721\u0722\u0723\u0724\u0725\u0726\u0727\u0728\u0729\u072A\u072B\u072C\u072D\u072E\u072F\u074D\u074E\u074F\u0750\u0751\u0752\u0753\u0754\u0755\u0756\u0757\u0758\u0759\u075A\u075B\u075C\u075D\u075E\u075F\u0760\u0761\u0762\u0763\u0764\u0765\u0766\u0767\u0768\u0769\u076A\u076B\u076C\u076D\u076E\u076F\u0770\u0771\u0772\u0773\u0774\u0775\u0776\u0777\u0778\u0779\u077A\u077B\u077C\u077D\u077E\u077F\u0780\u0781\u0782\u0783\u0784\u0785\u0786\u0787\u0788\u0789\u078A\u078B\u078C\u078D\u078E\u078F\u0790\u0791\u0792\u0793\u0794\u0795\u0796\u0797\u0798\u0799\u079A\u079B\u079C\u079D\u079E\u079F\u07A0\u07A1\u07A2\u07A3\u07A4\u07A5\u07B1\u07CA\u07CB\u07CC\u07CD\u07CE\u07CF\u07D0\u07D1\u07D2\u07D3\u07D4\u07D5\u07D6\u07D7\u07D8\u07D9\u07DA\u07DB\u07DC\u07DD\u07DE\u07DF\u07E0\u07E1\u07E2\u07E3\u07E4\u07E5\u07E6\u07E7\u07E8\u07E9\u07EA\u0904\u0905\u0906\u0907\u0908\u0909\u090A\u090B\u090C\u090D\u090E\u090F\u0910\u0911\u0912\u0913\u0914\u0915\u0916\u0917\u0918\u0919\u091A\u091B\u091C\u091D\u091E\u091F\u0920\u0921\u0922\u0923\u0924\u0925\u0926\u0927\u0928\u0929\u092A\u092B\u092C\u092D\u092E\u092F\u0930\u0931\u0932\u0933\u0934\u0935\u0936\u0937\u0938\u0939\u093D\u0950\u0958\u0959\u095A\u095B\u095C\u095D\u095E\u095F\u0960\u0961\u0972\u097B\u097C\u097D\u097E\u097F\u0985\u0986\u0987\u0988\u0989\u098A\u098B\u098C\u098F\u0990\u0993\u0994\u0995\u0996\u0997\u0998\u0999\u099A\u099B\u099C\u099D\u099E\u099F\u09A0\u09A1\u09A2\u09A3\u09A4\u09A5\u09A6\u09A7\u09A8\u09AA\u09AB\u09AC\u09AD\u09AE\u09AF\u09B0\u09B2\u09B6\u09B7\u09B8\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF\u09E0\u09E1\u09F0\u09F1\u0A05\u0A06\u0A07\u0A08\u0A09\u0A0A\u0A0F\u0A10\u0A13\u0A14\u0A15\u0A16\u0A17\u0A18\u0A19\u0A1A\u0A1B\u0A1C\u0A1D\u0A1E\u0A1F\u0A20\u0A21\u0A22\u0A23\u0A24\u0A25\u0A26\u0A27\u0A28\u0A2A\u0A2B\u0A2C\u0A2D\u0A2E\u0A2F\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5A\u0A5B\u0A5C\u0A5E\u0A72\u0A73\u0A74\u0A85\u0A86\u0A87\u0A88\u0A89\u0A8A\u0A8B\u0A8C\u0A8D\u0A8F\u0A90\u0A91\u0A93\u0A94\u0A95\u0A96\u0A97\u0A98\u0A99\u0A9A\u0A9B\u0A9C\u0A9D\u0A9E\u0A9F\u0AA0\u0AA1\u0AA2\u0AA3\u0AA4\u0AA5\u0AA6\u0AA7\u0AA8\u0AAA\u0AAB\u0AAC\u0AAD\u0AAE\u0AAF\u0AB0\u0AB2\u0AB3\u0AB5\u0AB6\u0AB7\u0AB8\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05\u0B06\u0B07\u0B08\u0B09\u0B0A\u0B0B\u0B0C\u0B0F\u0B10\u0B13\u0B14\u0B15\u0B16\u0B17\u0B18\u0B19\u0B1A\u0B1B\u0B1C\u0B1D\u0B1E\u0B1F\u0B20\u0B21\u0B22\u0B23\u0B24\u0B25\u0B26\u0B27\u0B28\u0B2A\u0B2B\u0B2C\u0B2D\u0B2E\u0B2F\u0B30\u0B32\u0B33\u0B35\u0B36\u0B37\u0B38\u0B39\u0B3D\u0B5C\u0B5D\u0B5F\u0B60\u0B61\u0B71\u0B83\u0B85\u0B86\u0B87\u0B88\u0B89\u0B8A\u0B8E\u0B8F\u0B90\u0B92\u0B93\u0B94\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BA9\u0BAA\u0BAE\u0BAF\u0BB0\u0BB1\u0BB2\u0BB3\u0BB4\u0BB5\u0BB6\u0BB7\u0BB8\u0BB9\u0BD0\u0C05\u0C06\u0C07\u0C08\u0C09\u0C0A\u0C0B\u0C0C\u0C0E\u0C0F\u0C10\u0C12\u0C13\u0C14\u0C15\u0C16\u0C17\u0C18\u0C19\u0C1A\u0C1B\u0C1C\u0C1D\u0C1E\u0C1F\u0C20\u0C21\u0C22\u0C23\u0C24\u0C25\u0C26\u0C27\u0C28\u0C2A\u0C2B\u0C2C\u0C2D\u0C2E\u0C2F\u0C30\u0C31\u0C32\u0C33\u0C35\u0C36\u0C37\u0C38\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85\u0C86\u0C87\u0C88\u0C89\u0C8A\u0C8B\u0C8C\u0C8E\u0C8F\u0C90\u0C92\u0C93\u0C94\u0C95\u0C96\u0C97\u0C98\u0C99\u0C9A\u0C9B\u0C9C\u0C9D\u0C9E\u0C9F\u0CA0\u0CA1\u0CA2\u0CA3\u0CA4\u0CA5\u0CA6\u0CA7\u0CA8\u0CAA\u0CAB\u0CAC\u0CAD\u0CAE\u0CAF\u0CB0\u0CB1\u0CB2\u0CB3\u0CB5\u0CB6\u0CB7\u0CB8\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0D05\u0D06\u0D07\u0D08\u0D09\u0D0A\u0D0B\u0D0C\u0D0E\u0D0F\u0D10\u0D12\u0D13\u0D14\u0D15\u0D16\u0D17\u0D18\u0D19\u0D1A\u0D1B\u0D1C\u0D1D\u0D1E\u0D1F\u0D20\u0D21\u0D22\u0D23\u0D24\u0D25\u0D26\u0D27\u0D28\u0D2A\u0D2B\u0D2C\u0D2D\u0D2E\u0D2F\u0D30\u0D31\u0D32\u0D33\u0D34\u0D35\u0D36\u0D37\u0D38\u0D39\u0D3D\u0D60\u0D61\u0D7A\u0D7B\u0D7C\u0D7D\u0D7E\u0D7F\u0D85\u0D86\u0D87\u0D88\u0D89\u0D8A\u0D8B\u0D8C\u0D8D\u0D8E\u0D8F\u0D90\u0D91\u0D92\u0D93\u0D94\u0D95\u0D96\u0D9A\u0D9B\u0D9C\u0D9D\u0D9E\u0D9F\u0DA0\u0DA1\u0DA2\u0DA3\u0DA4\u0DA5\u0DA6\u0DA7\u0DA8\u0DA9\u0DAA\u0DAB\u0DAC\u0DAD\u0DAE\u0DAF\u0DB0\u0DB1\u0DB3\u0DB4\u0DB5\u0DB6\u0DB7\u0DB8\u0DB9\u0DBA\u0DBB\u0DBD\u0DC0\u0DC1\u0DC2\u0DC3\u0DC4\u0DC5\u0DC6\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E32\u0E33\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EAF\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EDC\u0EDD\u0F00\u0F40\u0F41\u0F42\u0F43\u0F44\u0F45\u0F46\u0F47\u0F49\u0F4A\u0F4B\u0F4C\u0F4D\u0F4E\u0F4F\u0F50\u0F51\u0F52\u0F53\u0F54\u0F55\u0F56\u0F57\u0F58\u0F59\u0F5A\u0F5B\u0F5C\u0F5D\u0F5E\u0F5F\u0F60\u0F61\u0F62\u0F63\u0F64\u0F65\u0F66\u0F67\u0F68\u0F69\u0F6A\u0F6B\u0F6C\u0F88\u0F89\u0F8A\u0F8B\u1000\u1001\u1002\u1003\u1004\u1005\u1006\u1007\u1008\u1009\u100A\u100B\u100C\u100D\u100E\u100F\u1010\u1011\u1012\u1013\u1014\u1015\u1016\u1017\u1018\u1019\u101A\u101B\u101C\u101D\u101E\u101F\u1020\u1021\u1022\u1023\u1024\u1025\u1026\u1027\u1028\u1029\u102A\u103F\u1050\u1051\u1052\u1053\u1054\u1055\u105A\u105B\u105C\u105D\u1061\u1065\u1066\u106E\u106F\u1070\u1075\u1076\u1077\u1078\u1079\u107A\u107B\u107C\u107D\u107E\u107F\u1080\u1081\u108E\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\u10F7\u10F8\u10F9\u10FA\u1100\u1101\u1102\u1103\u1104\u1105\u1106\u1107\u1108\u1109\u110A\u110B\u110C\u110D\u110E\u110F\u1110\u1111\u1112\u1113\u1114\u1115\u1116\u1117\u1118\u1119\u111A\u111B\u111C\u111D\u111E\u111F\u1120\u1121\u1122\u1123\u1124\u1125\u1126\u1127\u1128\u1129\u112A\u112B\u112C\u112D\u112E\u112F\u1130\u1131\u1132\u1133\u1134\u1135\u1136\u1137\u1138\u1139\u113A\u113B\u113C\u113D\u113E\u113F\u1140\u1141\u1142\u1143\u1144\u1145\u1146\u1147\u1148\u1149\u114A\u114B\u114C\u114D\u114E\u114F\u1150\u1151\u1152\u1153\u1154\u1155\u1156\u1157\u1158\u1159\u115F\u1160\u1161\u1162\u1163\u1164\u1165\u1166\u1167\u1168\u1169\u116A\u116B\u116C\u116D\u116E\u116F\u1170\u1171\u1172\u1173\u1174\u1175\u1176\u1177\u1178\u1179\u117A\u117B\u117C\u117D\u117E\u117F\u1180\u1181\u1182\u1183\u1184\u1185\u1186\u1187\u1188\u1189\u118A\u118B\u118C\u118D\u118E\u118F\u1190\u1191\u1192\u1193\u1194\u1195\u1196\u1197\u1198\u1199\u119A\u119B\u119C\u119D\u119E\u119F\u11A0\u11A1\u11A2\u11A8\u11A9\u11AA\u11AB\u11AC\u11AD\u11AE\u11AF\u11B0\u11B1\u11B2\u11B3\u11B4\u11B5\u11B6\u11B7\u11B8\u11B9\u11BA\u11BB\u11BC\u11BD\u11BE\u11BF\u11C0\u11C1\u11C2\u11C3\u11C4\u11C5\u11C6\u11C7\u11C8\u11C9\u11CA\u11CB\u11CC\u11CD\u11CE\u11CF\u11D0\u11D1\u11D2\u11D3\u11D4\u11D5\u11D6\u11D7\u11D8\u11D9\u11DA\u11DB\u11DC\u11DD\u11DE\u11DF\u11E0\u11E1\u11E2\u11E3\u11E4\u11E5\u11E6\u11E7\u11E8\u11E9\u11EA\u11EB\u11EC\u11ED\u11EE\u11EF\u11F0\u11F1\u11F2\u11F3\u11F4\u11F5\u11F6\u11F7\u11F8\u11F9\u1200\u1201\u1202\u1203\u1204\u1205\u1206\u1207\u1208\u1209\u120A\u120B\u120C\u120D\u120E\u120F\u1210\u1211\u1212\u1213\u1214\u1215\u1216\u1217\u1218\u1219\u121A\u121B\u121C\u121D\u121E\u121F\u1220\u1221\u1222\u1223\u1224\u1225\u1226\u1227\u1228\u1229\u122A\u122B\u122C\u122D\u122E\u122F\u1230\u1231\u1232\u1233\u1234\u1235\u1236\u1237\u1238\u1239\u123A\u123B\u123C\u123D\u123E\u123F\u1240\u1241\u1242\u1243\u1244\u1245\u1246\u1247\u1248\u124A\u124B\u124C\u124D\u1250\u1251\u1252\u1253\u1254\u1255\u1256\u1258\u125A\u125B\u125C\u125D\u1260\u1261\u1262\u1263\u1264\u1265\u1266\u1267\u1268\u1269\u126A\u126B\u126C\u126D\u126E\u126F\u1270\u1271\u1272\u1273\u1274\u1275\u1276\u1277\u1278\u1279\u127A\u127B\u127C\u127D\u127E\u127F\u1280\u1281\u1282\u1283\u1284\u1285\u1286\u1287\u1288\u128A\u128B\u128C\u128D\u1290\u1291\u1292\u1293\u1294\u1295\u1296\u1297\u1298\u1299\u129A\u129B\u129C\u129D\u129E\u129F\u12A0\u12A1\u12A2\u12A3\u12A4\u12A5\u12A6\u12A7\u12A8\u12A9\u12AA\u12AB\u12AC\u12AD\u12AE\u12AF\u12B0\u12B2\u12B3\u12B4\u12B5\u12B8\u12B9\u12BA\u12BB\u12BC\u12BD\u12BE\u12C0\u12C2\u12C3\u12C4\u12C5\u12C8\u12C9\u12CA\u12CB\u12CC\u12CD\u12CE\u12CF\u12D0\u12D1\u12D2\u12D3\u12D4\u12D5\u12D6\u12D8\u12D9\u12DA\u12DB\u12DC\u12DD\u12DE\u12DF\u12E0\u12E1\u12E2\u12E3\u12E4\u12E5\u12E6\u12E7\u12E8\u12E9\u12EA\u12EB\u12EC\u12ED\u12EE\u12EF\u12F0\u12F1\u12F2\u12F3\u12F4\u12F5\u12F6\u12F7\u12F8\u12F9\u12FA\u12FB\u12FC\u12FD\u12FE\u12FF\u1300\u1301\u1302\u1303\u1304\u1305\u1306\u1307\u1308\u1309\u130A\u130B\u130C\u130D\u130E\u130F\u1310\u1312\u1313\u1314\u1315\u1318\u1319\u131A\u131B\u131C\u131D\u131E\u131F\u1320\u1321\u1322\u1323\u1324\u1325\u1326\u1327\u1328\u1329\u132A\u132B\u132C\u132D\u132E\u132F\u1330\u1331\u1332\u1333\u1334\u1335\u1336\u1337\u1338\u1339\u133A\u133B\u133C\u133D\u133E\u133F\u1340\u1341\u1342\u1343\u1344\u1345\u1346\u1347\u1348\u1349\u134A\u134B\u134C\u134D\u134E\u134F\u1350\u1351\u1352\u1353\u1354\u1355\u1356\u1357\u1358\u1359\u135A\u1380\u1381\u1382\u1383\u1384\u1385\u1386\u1387\u1388\u1389\u138A\u138B\u138C\u138D\u138E\u138F\u13A0\u13A1\u13A2\u13A3\u13A4\u13A5\u13A6\u13A7\u13A8\u13A9\u13AA\u13AB\u13AC\u13AD\u13AE\u13AF\u13B0\u13B1\u13B2\u13B3\u13B4\u13B5\u13B6\u13B7\u13B8\u13B9\u13BA\u13BB\u13BC\u13BD\u13BE\u13BF\u13C0\u13C1\u13C2\u13C3\u13C4\u13C5\u13C6\u13C7\u13C8\u13C9\u13CA\u13CB\u13CC\u13CD\u13CE\u13CF\u13D0\u13D1\u13D2\u13D3\u13D4\u13D5\u13D6\u13D7\u13D8\u13D9\u13DA\u13DB\u13DC\u13DD\u13DE\u13DF\u13E0\u13E1\u13E2\u13E3\u13E4\u13E5\u13E6\u13E7\u13E8\u13E9\u13EA\u13EB\u13EC\u13ED\u13EE\u13EF\u13F0\u13F1\u13F2\u13F3\u13F4\u1401\u1402\u1403\u1404\u1405\u1406\u1407\u1408\u1409\u140A\u140B\u140C\u140D\u140E\u140F\u1410\u1411\u1412\u1413\u1414\u1415\u1416\u1417\u1418\u1419\u141A\u141B\u141C\u141D\u141E\u141F\u1420\u1421\u1422\u1423\u1424\u1425\u1426\u1427\u1428\u1429\u142A\u142B\u142C\u142D\u142E\u142F\u1430\u1431\u1432\u1433\u1434\u1435\u1436\u1437\u1438\u1439\u143A\u143B\u143C\u143D\u143E\u143F\u1440\u1441\u1442\u1443\u1444\u1445\u1446\u1447\u1448\u1449\u144A\u144B\u144C\u144D\u144E\u144F\u1450\u1451\u1452\u1453\u1454\u1455\u1456\u1457\u1458\u1459\u145A\u145B\u145C\u145D\u145E\u145F\u1460\u1461\u1462\u1463\u1464\u1465\u1466\u1467\u1468\u1469\u146A\u146B\u146C\u146D\u146E\u146F\u1470\u1471\u1472\u1473\u1474\u1475\u1476\u1477\u1478\u1479\u147A\u147B\u147C\u147D\u147E\u147F\u1480\u1481\u1482\u1483\u1484\u1485\u1486\u1487\u1488\u1489\u148A\u148B\u148C\u148D\u148E\u148F\u1490\u1491\u1492\u1493\u1494\u1495\u1496\u1497\u1498\u1499\u149A\u149B\u149C\u149D\u149E\u149F\u14A0\u14A1\u14A2\u14A3\u14A4\u14A5\u14A6\u14A7\u14A8\u14A9\u14AA\u14AB\u14AC\u14AD\u14AE\u14AF\u14B0\u14B1\u14B2\u14B3\u14B4\u14B5\u14B6\u14B7\u14B8\u14B9\u14BA\u14BB\u14BC\u14BD\u14BE\u14BF\u14C0\u14C1\u14C2\u14C3\u14C4\u14C5\u14C6\u14C7\u14C8\u14C9\u14CA\u14CB\u14CC\u14CD\u14CE\u14CF\u14D0\u14D1\u14D2\u14D3\u14D4\u14D5\u14D6\u14D7\u14D8\u14D9\u14DA\u14DB\u14DC\u14DD\u14DE\u14DF\u14E0\u14E1\u14E2\u14E3\u14E4\u14E5\u14E6\u14E7\u14E8\u14E9\u14EA\u14EB\u14EC\u14ED\u14EE\u14EF\u14F0\u14F1\u14F2\u14F3\u14F4\u14F5\u14F6\u14F7\u14F8\u14F9\u14FA\u14FB\u14FC\u14FD\u14FE\u14FF\u1500\u1501\u1502\u1503\u1504\u1505\u1506\u1507\u1508\u1509\u150A\u150B\u150C\u150D\u150E\u150F\u1510\u1511\u1512\u1513\u1514\u1515\u1516\u1517\u1518\u1519\u151A\u151B\u151C\u151D\u151E\u151F\u1520\u1521\u1522\u1523\u1524\u1525\u1526\u1527\u1528\u1529\u152A\u152B\u152C\u152D\u152E\u152F\u1530\u1531\u1532\u1533\u1534\u1535\u1536\u1537\u1538\u1539\u153A\u153B\u153C\u153D\u153E\u153F\u1540\u1541\u1542\u1543\u1544\u1545\u1546\u1547\u1548\u1549\u154A\u154B\u154C\u154D\u154E\u154F\u1550\u1551\u1552\u1553\u1554\u1555\u1556\u1557\u1558\u1559\u155A\u155B\u155C\u155D\u155E\u155F\u1560\u1561\u1562\u1563\u1564\u1565\u1566\u1567\u1568\u1569\u156A\u156B\u156C\u156D\u156E\u156F\u1570\u1571\u1572\u1573\u1574\u1575\u1576\u1577\u1578\u1579\u157A\u157B\u157C\u157D\u157E\u157F\u1580\u1581\u1582\u1583\u1584\u1585\u1586\u1587\u1588\u1589\u158A\u158B\u158C\u158D\u158E\u158F\u1590\u1591\u1592\u1593\u1594\u1595\u1596\u1597\u1598\u1599\u159A\u159B\u159C\u159D\u159E\u159F\u15A0\u15A1\u15A2\u15A3\u15A4\u15A5\u15A6\u15A7\u15A8\u15A9\u15AA\u15AB\u15AC\u15AD\u15AE\u15AF\u15B0\u15B1\u15B2\u15B3\u15B4\u15B5\u15B6\u15B7\u15B8\u15B9\u15BA\u15BB\u15BC\u15BD\u15BE\u15BF\u15C0\u15C1\u15C2\u15C3\u15C4\u15C5\u15C6\u15C7\u15C8\u15C9\u15CA\u15CB\u15CC\u15CD\u15CE\u15CF\u15D0\u15D1\u15D2\u15D3\u15D4\u15D5\u15D6\u15D7\u15D8\u15D9\u15DA\u15DB\u15DC\u15DD\u15DE\u15DF\u15E0\u15E1\u15E2\u15E3\u15E4\u15E5\u15E6\u15E7\u15E8\u15E9\u15EA\u15EB\u15EC\u15ED\u15EE\u15EF\u15F0\u15F1\u15F2\u15F3\u15F4\u15F5\u15F6\u15F7\u15F8\u15F9\u15FA\u15FB\u15FC\u15FD\u15FE\u15FF\u1600\u1601\u1602\u1603\u1604\u1605\u1606\u1607\u1608\u1609\u160A\u160B\u160C\u160D\u160E\u160F\u1610\u1611\u1612\u1613\u1614\u1615\u1616\u1617\u1618\u1619\u161A\u161B\u161C\u161D\u161E\u161F\u1620\u1621\u1622\u1623\u1624\u1625\u1626\u1627\u1628\u1629\u162A\u162B\u162C\u162D\u162E\u162F\u1630\u1631\u1632\u1633\u1634\u1635\u1636\u1637\u1638\u1639\u163A\u163B\u163C\u163D\u163E\u163F\u1640\u1641\u1642\u1643\u1644\u1645\u1646\u1647\u1648\u1649\u164A\u164B\u164C\u164D\u164E\u164F\u1650\u1651\u1652\u1653\u1654\u1655\u1656\u1657\u1658\u1659\u165A\u165B\u165C\u165D\u165E\u165F\u1660\u1661\u1662\u1663\u1664\u1665\u1666\u1667\u1668\u1669\u166A\u166B\u166C\u166F\u1670\u1671\u1672\u1673\u1674\u1675\u1676\u1681\u1682\u1683\u1684\u1685\u1686\u1687\u1688\u1689\u168A\u168B\u168C\u168D\u168E\u168F\u1690\u1691\u1692\u1693\u1694\u1695\u1696\u1697\u1698\u1699\u169A\u16A0\u16A1\u16A2\u16A3\u16A4\u16A5\u16A6\u16A7\u16A8\u16A9\u16AA\u16AB\u16AC\u16AD\u16AE\u16AF\u16B0\u16B1\u16B2\u16B3\u16B4\u16B5\u16B6\u16B7\u16B8\u16B9\u16BA\u16BB\u16BC\u16BD\u16BE\u16BF\u16C0\u16C1\u16C2\u16C3\u16C4\u16C5\u16C6\u16C7\u16C8\u16C9\u16CA\u16CB\u16CC\u16CD\u16CE\u16CF\u16D0\u16D1\u16D2\u16D3\u16D4\u16D5\u16D6\u16D7\u16D8\u16D9\u16DA\u16DB\u16DC\u16DD\u16DE\u16DF\u16E0\u16E1\u16E2\u16E3\u16E4\u16E5\u16E6\u16E7\u16E8\u16E9\u16EA\u1700\u1701\u1702\u1703\u1704\u1705\u1706\u1707\u1708\u1709\u170A\u170B\u170C\u170E\u170F\u1710\u1711\u1720\u1721\u1722\u1723\u1724\u1725\u1726\u1727\u1728\u1729\u172A\u172B\u172C\u172D\u172E\u172F\u1730\u1731\u1740\u1741\u1742\u1743\u1744\u1745\u1746\u1747\u1748\u1749\u174A\u174B\u174C\u174D\u174E\u174F\u1750\u1751\u1760\u1761\u1762\u1763\u1764\u1765\u1766\u1767\u1768\u1769\u176A\u176B\u176C\u176E\u176F\u1770\u1780\u1781\u1782\u1783\u1784\u1785\u1786\u1787\u1788\u1789\u178A\u178B\u178C\u178D\u178E\u178F\u1790\u1791\u1792\u1793\u1794\u1795\u1796\u1797\u1798\u1799\u179A\u179B\u179C\u179D\u179E\u179F\u17A0\u17A1\u17A2\u17A3\u17A4\u17A5\u17A6\u17A7\u17A8\u17A9\u17AA\u17AB\u17AC\u17AD\u17AE\u17AF\u17B0\u17B1\u17B2\u17B3\u17DC\u1820\u1821\u1822\u1823\u1824\u1825\u1826\u1827\u1828\u1829\u182A\u182B\u182C\u182D\u182E\u182F\u1830\u1831\u1832\u1833\u1834\u1835\u1836\u1837\u1838\u1839\u183A\u183B\u183C\u183D\u183E\u183F\u1840\u1841\u1842\u1844\u1845\u1846\u1847\u1848\u1849\u184A\u184B\u184C\u184D\u184E\u184F\u1850\u1851\u1852\u1853\u1854\u1855\u1856\u1857\u1858\u1859\u185A\u185B\u185C\u185D\u185E\u185F\u1860\u1861\u1862\u1863\u1864\u1865\u1866\u1867\u1868\u1869\u186A\u186B\u186C\u186D\u186E\u186F\u1870\u1871\u1872\u1873\u1874\u1875\u1876\u1877\u1880\u1881\u1882\u1883\u1884\u1885\u1886\u1887\u1888\u1889\u188A\u188B\u188C\u188D\u188E\u188F\u1890\u1891\u1892\u1893\u1894\u1895\u1896\u1897\u1898\u1899\u189A\u189B\u189C\u189D\u189E\u189F\u18A0\u18A1\u18A2\u18A3\u18A4\u18A5\u18A6\u18A7\u18A8\u18AA\u1900\u1901\u1902\u1903\u1904\u1905\u1906\u1907\u1908\u1909\u190A\u190B\u190C\u190D\u190E\u190F\u1910\u1911\u1912\u1913\u1914\u1915\u1916\u1917\u1918\u1919\u191A\u191B\u191C\u1950\u1951\u1952\u1953\u1954\u1955\u1956\u1957\u1958\u1959\u195A\u195B\u195C\u195D\u195E\u195F\u1960\u1961\u1962\u1963\u1964\u1965\u1966\u1967\u1968\u1969\u196A\u196B\u196C\u196D\u1970\u1971\u1972\u1973\u1974\u1980\u1981\u1982\u1983\u1984\u1985\u1986\u1987\u1988\u1989\u198A\u198B\u198C\u198D\u198E\u198F\u1990\u1991\u1992\u1993\u1994\u1995\u1996\u1997\u1998\u1999\u199A\u199B\u199C\u199D\u199E\u199F\u19A0\u19A1\u19A2\u19A3\u19A4\u19A5\u19A6\u19A7\u19A8\u19A9\u19C1\u19C2\u19C3\u19C4\u19C5\u19C6\u19C7\u1A00\u1A01\u1A02\u1A03\u1A04\u1A05\u1A06\u1A07\u1A08\u1A09\u1A0A\u1A0B\u1A0C\u1A0D\u1A0E\u1A0F\u1A10\u1A11\u1A12\u1A13\u1A14\u1A15\u1A16\u1B05\u1B06\u1B07\u1B08\u1B09\u1B0A\u1B0B\u1B0C\u1B0D\u1B0E\u1B0F\u1B10\u1B11\u1B12\u1B13\u1B14\u1B15\u1B16\u1B17\u1B18\u1B19\u1B1A\u1B1B\u1B1C\u1B1D\u1B1E\u1B1F\u1B20\u1B21\u1B22\u1B23\u1B24\u1B25\u1B26\u1B27\u1B28\u1B29\u1B2A\u1B2B\u1B2C\u1B2D\u1B2E\u1B2F\u1B30\u1B31\u1B32\u1B33\u1B45\u1B46\u1B47\u1B48\u1B49\u1B4A\u1B4B\u1B83\u1B84\u1B85\u1B86\u1B87\u1B88\u1B89\u1B8A\u1B8B\u1B8C\u1B8D\u1B8E\u1B8F\u1B90\u1B91\u1B92\u1B93\u1B94\u1B95\u1B96\u1B97\u1B98\u1B99\u1B9A\u1B9B\u1B9C\u1B9D\u1B9E\u1B9F\u1BA0\u1BAE\u1BAF\u1C00\u1C01\u1C02\u1C03\u1C04\u1C05\u1C06\u1C07\u1C08\u1C09\u1C0A\u1C0B\u1C0C\u1C0D\u1C0E\u1C0F\u1C10\u1C11\u1C12\u1C13\u1C14\u1C15\u1C16\u1C17\u1C18\u1C19\u1C1A\u1C1B\u1C1C\u1C1D\u1C1E\u1C1F\u1C20\u1C21\u1C22\u1C23\u1C4D\u1C4E\u1C4F\u1C5A\u1C5B\u1C5C\u1C5D\u1C5E\u1C5F\u1C60\u1C61\u1C62\u1C63\u1C64\u1C65\u1C66\u1C67\u1C68\u1C69\u1C6A\u1C6B\u1C6C\u1C6D\u1C6E\u1C6F\u1C70\u1C71\u1C72\u1C73\u1C74\u1C75\u1C76\u1C77\u2135\u2136\u2137\u2138\u2D30\u2D31\u2D32\u2D33\u2D34\u2D35\u2D36\u2D37\u2D38\u2D39\u2D3A\u2D3B\u2D3C\u2D3D\u2D3E\u2D3F\u2D40\u2D41\u2D42\u2D43\u2D44\u2D45\u2D46\u2D47\u2D48\u2D49\u2D4A\u2D4B\u2D4C\u2D4D\u2D4E\u2D4F\u2D50\u2D51\u2D52\u2D53\u2D54\u2D55\u2D56\u2D57\u2D58\u2D59\u2D5A\u2D5B\u2D5C\u2D5D\u2D5E\u2D5F\u2D60\u2D61\u2D62\u2D63\u2D64\u2D65\u2D80\u2D81\u2D82\u2D83\u2D84\u2D85\u2D86\u2D87\u2D88\u2D89\u2D8A\u2D8B\u2D8C\u2D8D\u2D8E\u2D8F\u2D90\u2D91\u2D92\u2D93\u2D94\u2D95\u2D96\u2DA0\u2DA1\u2DA2\u2DA3\u2DA4\u2DA5\u2DA6\u2DA8\u2DA9\u2DAA\u2DAB\u2DAC\u2DAD\u2DAE\u2DB0\u2DB1\u2DB2\u2DB3\u2DB4\u2DB5\u2DB6\u2DB8\u2DB9\u2DBA\u2DBB\u2DBC\u2DBD\u2DBE\u2DC0\u2DC1\u2DC2\u2DC3\u2DC4\u2DC5\u2DC6\u2DC8\u2DC9\u2DCA\u2DCB\u2DCC\u2DCD\u2DCE\u2DD0\u2DD1\u2DD2\u2DD3\u2DD4\u2DD5\u2DD6\u2DD8\u2DD9\u2DDA\u2DDB\u2DDC\u2DDD\u2DDE\u3006\u303C\u3041\u3042\u3043\u3044\u3045\u3046\u3047\u3048\u3049\u304A\u304B\u304C\u304D\u304E\u304F\u3050\u3051\u3052\u3053\u3054\u3055\u3056\u3057\u3058\u3059\u305A\u305B\u305C\u305D\u305E\u305F\u3060\u3061\u3062\u3063\u3064\u3065\u3066\u3067\u3068\u3069\u306A\u306B\u306C\u306D\u306E\u306F\u3070\u3071\u3072\u3073\u3074\u3075\u3076\u3077\u3078\u3079\u307A\u307B\u307C\u307D\u307E\u307F\u3080\u3081\u3082\u3083\u3084\u3085\u3086\u3087\u3088\u3089\u308A\u308B\u308C\u308D\u308E\u308F\u3090\u3091\u3092\u3093\u3094\u3095\u3096\u309F\u30A1\u30A2\u30A3\u30A4\u30A5\u30A6\u30A7\u30A8\u30A9\u30AA\u30AB\u30AC\u30AD\u30AE\u30AF\u30B0\u30B1\u30B2\u30B3\u30B4\u30B5\u30B6\u30B7\u30B8\u30B9\u30BA\u30BB\u30BC\u30BD\u30BE\u30BF\u30C0\u30C1\u30C2\u30C3\u30C4\u30C5\u30C6\u30C7\u30C8\u30C9\u30CA\u30CB\u30CC\u30CD\u30CE\u30CF\u30D0\u30D1\u30D2\u30D3\u30D4\u30D5\u30D6\u30D7\u30D8\u30D9\u30DA\u30DB\u30DC\u30DD\u30DE\u30DF\u30E0\u30E1\u30E2\u30E3\u30E4\u30E5\u30E6\u30E7\u30E8\u30E9\u30EA\u30EB\u30EC\u30ED\u30EE\u30EF\u30F0\u30F1\u30F2\u30F3\u30F4\u30F5\u30F6\u30F7\u30F8\u30F9\u30FA\u30FF\u3105\u3106\u3107\u3108\u3109\u310A\u310B\u310C\u310D\u310E\u310F\u3110\u3111\u3112\u3113\u3114\u3115\u3116\u3117\u3118\u3119\u311A\u311B\u311C\u311D\u311E\u311F\u3120\u3121\u3122\u3123\u3124\u3125\u3126\u3127\u3128\u3129\u312A\u312B\u312C\u312D\u3131\u3132\u3133\u3134\u3135\u3136\u3137\u3138\u3139\u313A\u313B\u313C\u313D\u313E\u313F\u3140\u3141\u3142\u3143\u3144\u3145\u3146\u3147\u3148\u3149\u314A\u314B\u314C\u314D\u314E\u314F\u3150\u3151\u3152\u3153\u3154\u3155\u3156\u3157\u3158\u3159\u315A\u315B\u315C\u315D\u315E\u315F\u3160\u3161\u3162\u3163\u3164\u3165\u3166\u3167\u3168\u3169\u316A\u316B\u316C\u316D\u316E\u316F\u3170\u3171\u3172\u3173\u3174\u3175\u3176\u3177\u3178\u3179\u317A\u317B\u317C\u317D\u317E\u317F\u3180\u3181\u3182\u3183\u3184\u3185\u3186\u3187\u3188\u3189\u318A\u318B\u318C\u318D\u318E\u31A0\u31A1\u31A2\u31A3\u31A4\u31A5\u31A6\u31A7\u31A8\u31A9\u31AA\u31AB\u31AC\u31AD\u31AE\u31AF\u31B0\u31B1\u31B2\u31B3\u31B4\u31B5\u31B6\u31B7\u31F0\u31F1\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3400\u4DB5\u4E00\u9FC3\uA000\uA001\uA002\uA003\uA004\uA005\uA006\uA007\uA008\uA009\uA00A\uA00B\uA00C\uA00D\uA00E\uA00F\uA010\uA011\uA012\uA013\uA014\uA016\uA017\uA018\uA019\uA01A\uA01B\uA01C\uA01D\uA01E\uA01F\uA020\uA021\uA022\uA023\uA024\uA025\uA026\uA027\uA028\uA029\uA02A\uA02B\uA02C\uA02D\uA02E\uA02F\uA030\uA031\uA032\uA033\uA034\uA035\uA036\uA037\uA038\uA039\uA03A\uA03B\uA03C\uA03D\uA03E\uA03F\uA040\uA041\uA042\uA043\uA044\uA045\uA046\uA047\uA048\uA049\uA04A\uA04B\uA04C\uA04D\uA04E\uA04F\uA050\uA051\uA052\uA053\uA054\uA055\uA056\uA057\uA058\uA059\uA05A\uA05B\uA05C\uA05D\uA05E\uA05F\uA060\uA061\uA062\uA063\uA064\uA065\uA066\uA067\uA068\uA069\uA06A\uA06B\uA06C\uA06D\uA06E\uA06F\uA070\uA071\uA072\uA073\uA074\uA075\uA076\uA077\uA078\uA079\uA07A\uA07B\uA07C\uA07D\uA07E\uA07F\uA080\uA081\uA082\uA083\uA084\uA085\uA086\uA087\uA088\uA089\uA08A\uA08B\uA08C\uA08D\uA08E\uA08F\uA090\uA091\uA092\uA093\uA094\uA095\uA096\uA097\uA098\uA099\uA09A\uA09B\uA09C\uA09D\uA09E\uA09F\uA0A0\uA0A1\uA0A2\uA0A3\uA0A4\uA0A5\uA0A6\uA0A7\uA0A8\uA0A9\uA0AA\uA0AB\uA0AC\uA0AD\uA0AE\uA0AF\uA0B0\uA0B1\uA0B2\uA0B3\uA0B4\uA0B5\uA0B6\uA0B7\uA0B8\uA0B9\uA0BA\uA0BB\uA0BC\uA0BD\uA0BE\uA0BF\uA0C0\uA0C1\uA0C2\uA0C3\uA0C4\uA0C5\uA0C6\uA0C7\uA0C8\uA0C9\uA0CA\uA0CB\uA0CC\uA0CD\uA0CE\uA0CF\uA0D0\uA0D1\uA0D2\uA0D3\uA0D4\uA0D5\uA0D6\uA0D7\uA0D8\uA0D9\uA0DA\uA0DB\uA0DC\uA0DD\uA0DE\uA0DF\uA0E0\uA0E1\uA0E2\uA0E3\uA0E4\uA0E5\uA0E6\uA0E7\uA0E8\uA0E9\uA0EA\uA0EB\uA0EC\uA0ED\uA0EE\uA0EF\uA0F0\uA0F1\uA0F2\uA0F3\uA0F4\uA0F5\uA0F6\uA0F7\uA0F8\uA0F9\uA0FA\uA0FB\uA0FC\uA0FD\uA0FE\uA0FF\uA100\uA101\uA102\uA103\uA104\uA105\uA106\uA107\uA108\uA109\uA10A\uA10B\uA10C\uA10D\uA10E\uA10F\uA110\uA111\uA112\uA113\uA114\uA115\uA116\uA117\uA118\uA119\uA11A\uA11B\uA11C\uA11D\uA11E\uA11F\uA120\uA121\uA122\uA123\uA124\uA125\uA126\uA127\uA128\uA129\uA12A\uA12B\uA12C\uA12D\uA12E\uA12F\uA130\uA131\uA132\uA133\uA134\uA135\uA136\uA137\uA138\uA139\uA13A\uA13B\uA13C\uA13D\uA13E\uA13F\uA140\uA141\uA142\uA143\uA144\uA145\uA146\uA147\uA148\uA149\uA14A\uA14B\uA14C\uA14D\uA14E\uA14F\uA150\uA151\uA152\uA153\uA154\uA155\uA156\uA157\uA158\uA159\uA15A\uA15B\uA15C\uA15D\uA15E\uA15F\uA160\uA161\uA162\uA163\uA164\uA165\uA166\uA167\uA168\uA169\uA16A\uA16B\uA16C\uA16D\uA16E\uA16F\uA170\uA171\uA172\uA173\uA174\uA175\uA176\uA177\uA178\uA179\uA17A\uA17B\uA17C\uA17D\uA17E\uA17F\uA180\uA181\uA182\uA183\uA184\uA185\uA186\uA187\uA188\uA189\uA18A\uA18B\uA18C\uA18D\uA18E\uA18F\uA190\uA191\uA192\uA193\uA194\uA195\uA196\uA197\uA198\uA199\uA19A\uA19B\uA19C\uA19D\uA19E\uA19F\uA1A0\uA1A1\uA1A2\uA1A3\uA1A4\uA1A5\uA1A6\uA1A7\uA1A8\uA1A9\uA1AA\uA1AB\uA1AC\uA1AD\uA1AE\uA1AF\uA1B0\uA1B1\uA1B2\uA1B3\uA1B4\uA1B5\uA1B6\uA1B7\uA1B8\uA1B9\uA1BA\uA1BB\uA1BC\uA1BD\uA1BE\uA1BF\uA1C0\uA1C1\uA1C2\uA1C3\uA1C4\uA1C5\uA1C6\uA1C7\uA1C8\uA1C9\uA1CA\uA1CB\uA1CC\uA1CD\uA1CE\uA1CF\uA1D0\uA1D1\uA1D2\uA1D3\uA1D4\uA1D5\uA1D6\uA1D7\uA1D8\uA1D9\uA1DA\uA1DB\uA1DC\uA1DD\uA1DE\uA1DF\uA1E0\uA1E1\uA1E2\uA1E3\uA1E4\uA1E5\uA1E6\uA1E7\uA1E8\uA1E9\uA1EA\uA1EB\uA1EC\uA1ED\uA1EE\uA1EF\uA1F0\uA1F1\uA1F2\uA1F3\uA1F4\uA1F5\uA1F6\uA1F7\uA1F8\uA1F9\uA1FA\uA1FB\uA1FC\uA1FD\uA1FE\uA1FF\uA200\uA201\uA202\uA203\uA204\uA205\uA206\uA207\uA208\uA209\uA20A\uA20B\uA20C\uA20D\uA20E\uA20F\uA210\uA211\uA212\uA213\uA214\uA215\uA216\uA217\uA218\uA219\uA21A\uA21B\uA21C\uA21D\uA21E\uA21F\uA220\uA221\uA222\uA223\uA224\uA225\uA226\uA227\uA228\uA229\uA22A\uA22B\uA22C\uA22D\uA22E\uA22F\uA230\uA231\uA232\uA233\uA234\uA235\uA236\uA237\uA238\uA239\uA23A\uA23B\uA23C\uA23D\uA23E\uA23F\uA240\uA241\uA242\uA243\uA244\uA245\uA246\uA247\uA248\uA249\uA24A\uA24B\uA24C\uA24D\uA24E\uA24F\uA250\uA251\uA252\uA253\uA254\uA255\uA256\uA257\uA258\uA259\uA25A\uA25B\uA25C\uA25D\uA25E\uA25F\uA260\uA261\uA262\uA263\uA264\uA265\uA266\uA267\uA268\uA269\uA26A\uA26B\uA26C\uA26D\uA26E\uA26F\uA270\uA271\uA272\uA273\uA274\uA275\uA276\uA277\uA278\uA279\uA27A\uA27B\uA27C\uA27D\uA27E\uA27F\uA280\uA281\uA282\uA283\uA284\uA285\uA286\uA287\uA288\uA289\uA28A\uA28B\uA28C\uA28D\uA28E\uA28F\uA290\uA291\uA292\uA293\uA294\uA295\uA296\uA297\uA298\uA299\uA29A\uA29B\uA29C\uA29D\uA29E\uA29F\uA2A0\uA2A1\uA2A2\uA2A3\uA2A4\uA2A5\uA2A6\uA2A7\uA2A8\uA2A9\uA2AA\uA2AB\uA2AC\uA2AD\uA2AE\uA2AF\uA2B0\uA2B1\uA2B2\uA2B3\uA2B4\uA2B5\uA2B6\uA2B7\uA2B8\uA2B9\uA2BA\uA2BB\uA2BC\uA2BD\uA2BE\uA2BF\uA2C0\uA2C1\uA2C2\uA2C3\uA2C4\uA2C5\uA2C6\uA2C7\uA2C8\uA2C9\uA2CA\uA2CB\uA2CC\uA2CD\uA2CE\uA2CF\uA2D0\uA2D1\uA2D2\uA2D3\uA2D4\uA2D5\uA2D6\uA2D7\uA2D8\uA2D9\uA2DA\uA2DB\uA2DC\uA2DD\uA2DE\uA2DF\uA2E0\uA2E1\uA2E2\uA2E3\uA2E4\uA2E5\uA2E6\uA2E7\uA2E8\uA2E9\uA2EA\uA2EB\uA2EC\uA2ED\uA2EE\uA2EF\uA2F0\uA2F1\uA2F2\uA2F3\uA2F4\uA2F5\uA2F6\uA2F7\uA2F8\uA2F9\uA2FA\uA2FB\uA2FC\uA2FD\uA2FE\uA2FF\uA300\uA301\uA302\uA303\uA304\uA305\uA306\uA307\uA308\uA309\uA30A\uA30B\uA30C\uA30D\uA30E\uA30F\uA310\uA311\uA312\uA313\uA314\uA315\uA316\uA317\uA318\uA319\uA31A\uA31B\uA31C\uA31D\uA31E\uA31F\uA320\uA321\uA322\uA323\uA324\uA325\uA326\uA327\uA328\uA329\uA32A\uA32B\uA32C\uA32D\uA32E\uA32F\uA330\uA331\uA332\uA333\uA334\uA335\uA336\uA337\uA338\uA339\uA33A\uA33B\uA33C\uA33D\uA33E\uA33F\uA340\uA341\uA342\uA343\uA344\uA345\uA346\uA347\uA348\uA349\uA34A\uA34B\uA34C\uA34D\uA34E\uA34F\uA350\uA351\uA352\uA353\uA354\uA355\uA356\uA357\uA358\uA359\uA35A\uA35B\uA35C\uA35D\uA35E\uA35F\uA360\uA361\uA362\uA363\uA364\uA365\uA366\uA367\uA368\uA369\uA36A\uA36B\uA36C\uA36D\uA36E\uA36F\uA370\uA371\uA372\uA373\uA374\uA375\uA376\uA377\uA378\uA379\uA37A\uA37B\uA37C\uA37D\uA37E\uA37F\uA380\uA381\uA382\uA383\uA384\uA385\uA386\uA387\uA388\uA389\uA38A\uA38B\uA38C\uA38D\uA38E\uA38F\uA390\uA391\uA392\uA393\uA394\uA395\uA396\uA397\uA398\uA399\uA39A\uA39B\uA39C\uA39D\uA39E\uA39F\uA3A0\uA3A1\uA3A2\uA3A3\uA3A4\uA3A5\uA3A6\uA3A7\uA3A8\uA3A9\uA3AA\uA3AB\uA3AC\uA3AD\uA3AE\uA3AF\uA3B0\uA3B1\uA3B2\uA3B3\uA3B4\uA3B5\uA3B6\uA3B7\uA3B8\uA3B9\uA3BA\uA3BB\uA3BC\uA3BD\uA3BE\uA3BF\uA3C0\uA3C1\uA3C2\uA3C3\uA3C4\uA3C5\uA3C6\uA3C7\uA3C8\uA3C9\uA3CA\uA3CB\uA3CC\uA3CD\uA3CE\uA3CF\uA3D0\uA3D1\uA3D2\uA3D3\uA3D4\uA3D5\uA3D6\uA3D7\uA3D8\uA3D9\uA3DA\uA3DB\uA3DC\uA3DD\uA3DE\uA3DF\uA3E0\uA3E1\uA3E2\uA3E3\uA3E4\uA3E5\uA3E6\uA3E7\uA3E8\uA3E9\uA3EA\uA3EB\uA3EC\uA3ED\uA3EE\uA3EF\uA3F0\uA3F1\uA3F2\uA3F3\uA3F4\uA3F5\uA3F6\uA3F7\uA3F8\uA3F9\uA3FA\uA3FB\uA3FC\uA3FD\uA3FE\uA3FF\uA400\uA401\uA402\uA403\uA404\uA405\uA406\uA407\uA408\uA409\uA40A\uA40B\uA40C\uA40D\uA40E\uA40F\uA410\uA411\uA412\uA413\uA414\uA415\uA416\uA417\uA418\uA419\uA41A\uA41B\uA41C\uA41D\uA41E\uA41F\uA420\uA421\uA422\uA423\uA424\uA425\uA426\uA427\uA428\uA429\uA42A\uA42B\uA42C\uA42D\uA42E\uA42F\uA430\uA431\uA432\uA433\uA434\uA435\uA436\uA437\uA438\uA439\uA43A\uA43B\uA43C\uA43D\uA43E\uA43F\uA440\uA441\uA442\uA443\uA444\uA445\uA446\uA447\uA448\uA449\uA44A\uA44B\uA44C\uA44D\uA44E\uA44F\uA450\uA451\uA452\uA453\uA454\uA455\uA456\uA457\uA458\uA459\uA45A\uA45B\uA45C\uA45D\uA45E\uA45F\uA460\uA461\uA462\uA463\uA464\uA465\uA466\uA467\uA468\uA469\uA46A\uA46B\uA46C\uA46D\uA46E\uA46F\uA470\uA471\uA472\uA473\uA474\uA475\uA476\uA477\uA478\uA479\uA47A\uA47B\uA47C\uA47D\uA47E\uA47F\uA480\uA481\uA482\uA483\uA484\uA485\uA486\uA487\uA488\uA489\uA48A\uA48B\uA48C\uA500\uA501\uA502\uA503\uA504\uA505\uA506\uA507\uA508\uA509\uA50A\uA50B\uA50C\uA50D\uA50E\uA50F\uA510\uA511\uA512\uA513\uA514\uA515\uA516\uA517\uA518\uA519\uA51A\uA51B\uA51C\uA51D\uA51E\uA51F\uA520\uA521\uA522\uA523\uA524\uA525\uA526\uA527\uA528\uA529\uA52A\uA52B\uA52C\uA52D\uA52E\uA52F\uA530\uA531\uA532\uA533\uA534\uA535\uA536\uA537\uA538\uA539\uA53A\uA53B\uA53C\uA53D\uA53E\uA53F\uA540\uA541\uA542\uA543\uA544\uA545\uA546\uA547\uA548\uA549\uA54A\uA54B\uA54C\uA54D\uA54E\uA54F\uA550\uA551\uA552\uA553\uA554\uA555\uA556\uA557\uA558\uA559\uA55A\uA55B\uA55C\uA55D\uA55E\uA55F\uA560\uA561\uA562\uA563\uA564\uA565\uA566\uA567\uA568\uA569\uA56A\uA56B\uA56C\uA56D\uA56E\uA56F\uA570\uA571\uA572\uA573\uA574\uA575\uA576\uA577\uA578\uA579\uA57A\uA57B\uA57C\uA57D\uA57E\uA57F\uA580\uA581\uA582\uA583\uA584\uA585\uA586\uA587\uA588\uA589\uA58A\uA58B\uA58C\uA58D\uA58E\uA58F\uA590\uA591\uA592\uA593\uA594\uA595\uA596\uA597\uA598\uA599\uA59A\uA59B\uA59C\uA59D\uA59E\uA59F\uA5A0\uA5A1\uA5A2\uA5A3\uA5A4\uA5A5\uA5A6\uA5A7\uA5A8\uA5A9\uA5AA\uA5AB\uA5AC\uA5AD\uA5AE\uA5AF\uA5B0\uA5B1\uA5B2\uA5B3\uA5B4\uA5B5\uA5B6\uA5B7\uA5B8\uA5B9\uA5BA\uA5BB\uA5BC\uA5BD\uA5BE\uA5BF\uA5C0\uA5C1\uA5C2\uA5C3\uA5C4\uA5C5\uA5C6\uA5C7\uA5C8\uA5C9\uA5CA\uA5CB\uA5CC\uA5CD\uA5CE\uA5CF\uA5D0\uA5D1\uA5D2\uA5D3\uA5D4\uA5D5\uA5D6\uA5D7\uA5D8\uA5D9\uA5DA\uA5DB\uA5DC\uA5DD\uA5DE\uA5DF\uA5E0\uA5E1\uA5E2\uA5E3\uA5E4\uA5E5\uA5E6\uA5E7\uA5E8\uA5E9\uA5EA\uA5EB\uA5EC\uA5ED\uA5EE\uA5EF\uA5F0\uA5F1\uA5F2\uA5F3\uA5F4\uA5F5\uA5F6\uA5F7\uA5F8\uA5F9\uA5FA\uA5FB\uA5FC\uA5FD\uA5FE\uA5FF\uA600\uA601\uA602\uA603\uA604\uA605\uA606\uA607\uA608\uA609\uA60A\uA60B\uA610\uA611\uA612\uA613\uA614\uA615\uA616\uA617\uA618\uA619\uA61A\uA61B\uA61C\uA61D\uA61E\uA61F\uA62A\uA62B\uA66E\uA7FB\uA7FC\uA7FD\uA7FE\uA7FF\uA800\uA801\uA803\uA804\uA805\uA807\uA808\uA809\uA80A\uA80C\uA80D\uA80E\uA80F\uA810\uA811\uA812\uA813\uA814\uA815\uA816\uA817\uA818\uA819\uA81A\uA81B\uA81C\uA81D\uA81E\uA81F\uA820\uA821\uA822\uA840\uA841\uA842\uA843\uA844\uA845\uA846\uA847\uA848\uA849\uA84A\uA84B\uA84C\uA84D\uA84E\uA84F\uA850\uA851\uA852\uA853\uA854\uA855\uA856\uA857\uA858\uA859\uA85A\uA85B\uA85C\uA85D\uA85E\uA85F\uA860\uA861\uA862\uA863\uA864\uA865\uA866\uA867\uA868\uA869\uA86A\uA86B\uA86C\uA86D\uA86E\uA86F\uA870\uA871\uA872\uA873\uA882\uA883\uA884\uA885\uA886\uA887\uA888\uA889\uA88A\uA88B\uA88C\uA88D\uA88E\uA88F\uA890\uA891\uA892\uA893\uA894\uA895\uA896\uA897\uA898\uA899\uA89A\uA89B\uA89C\uA89D\uA89E\uA89F\uA8A0\uA8A1\uA8A2\uA8A3\uA8A4\uA8A5\uA8A6\uA8A7\uA8A8\uA8A9\uA8AA\uA8AB\uA8AC\uA8AD\uA8AE\uA8AF\uA8B0\uA8B1\uA8B2\uA8B3\uA90A\uA90B\uA90C\uA90D\uA90E\uA90F\uA910\uA911\uA912\uA913\uA914\uA915\uA916\uA917\uA918\uA919\uA91A\uA91B\uA91C\uA91D\uA91E\uA91F\uA920\uA921\uA922\uA923\uA924\uA925\uA930\uA931\uA932\uA933\uA934\uA935\uA936\uA937\uA938\uA939\uA93A\uA93B\uA93C\uA93D\uA93E\uA93F\uA940\uA941\uA942\uA943\uA944\uA945\uA946\uAA00\uAA01\uAA02\uAA03\uAA04\uAA05\uAA06\uAA07\uAA08\uAA09\uAA0A\uAA0B\uAA0C\uAA0D\uAA0E\uAA0F\uAA10\uAA11\uAA12\uAA13\uAA14\uAA15\uAA16\uAA17\uAA18\uAA19\uAA1A\uAA1B\uAA1C\uAA1D\uAA1E\uAA1F\uAA20\uAA21\uAA22\uAA23\uAA24\uAA25\uAA26\uAA27\uAA28\uAA40\uAA41\uAA42\uAA44\uAA45\uAA46\uAA47\uAA48\uAA49\uAA4A\uAA4B\uAC00\uD7A3\uF900\uF901\uF902\uF903\uF904\uF905\uF906\uF907\uF908\uF909\uF90A\uF90B\uF90C\uF90D\uF90E\uF90F\uF910\uF911\uF912\uF913\uF914\uF915\uF916\uF917\uF918\uF919\uF91A\uF91B\uF91C\uF91D\uF91E\uF91F\uF920\uF921\uF922\uF923\uF924\uF925\uF926\uF927\uF928\uF929\uF92A\uF92B\uF92C\uF92D\uF92E\uF92F\uF930\uF931\uF932\uF933\uF934\uF935\uF936\uF937\uF938\uF939\uF93A\uF93B\uF93C\uF93D\uF93E\uF93F\uF940\uF941\uF942\uF943\uF944\uF945\uF946\uF947\uF948\uF949\uF94A\uF94B\uF94C\uF94D\uF94E\uF94F\uF950\uF951\uF952\uF953\uF954\uF955\uF956\uF957\uF958\uF959\uF95A\uF95B\uF95C\uF95D\uF95E\uF95F\uF960\uF961\uF962\uF963\uF964\uF965\uF966\uF967\uF968\uF969\uF96A\uF96B\uF96C\uF96D\uF96E\uF96F\uF970\uF971\uF972\uF973\uF974\uF975\uF976\uF977\uF978\uF979\uF97A\uF97B\uF97C\uF97D\uF97E\uF97F\uF980\uF981\uF982\uF983\uF984\uF985\uF986\uF987\uF988\uF989\uF98A\uF98B\uF98C\uF98D\uF98E\uF98F\uF990\uF991\uF992\uF993\uF994\uF995\uF996\uF997\uF998\uF999\uF99A\uF99B\uF99C\uF99D\uF99E\uF99F\uF9A0\uF9A1\uF9A2\uF9A3\uF9A4\uF9A5\uF9A6\uF9A7\uF9A8\uF9A9\uF9AA\uF9AB\uF9AC\uF9AD\uF9AE\uF9AF\uF9B0\uF9B1\uF9B2\uF9B3\uF9B4\uF9B5\uF9B6\uF9B7\uF9B8\uF9B9\uF9BA\uF9BB\uF9BC\uF9BD\uF9BE\uF9BF\uF9C0\uF9C1\uF9C2\uF9C3\uF9C4\uF9C5\uF9C6\uF9C7\uF9C8\uF9C9\uF9CA\uF9CB\uF9CC\uF9CD\uF9CE\uF9CF\uF9D0\uF9D1\uF9D2\uF9D3\uF9D4\uF9D5\uF9D6\uF9D7\uF9D8\uF9D9\uF9DA\uF9DB\uF9DC\uF9DD\uF9DE\uF9DF\uF9E0\uF9E1\uF9E2\uF9E3\uF9E4\uF9E5\uF9E6\uF9E7\uF9E8\uF9E9\uF9EA\uF9EB\uF9EC\uF9ED\uF9EE\uF9EF\uF9F0\uF9F1\uF9F2\uF9F3\uF9F4\uF9F5\uF9F6\uF9F7\uF9F8\uF9F9\uF9FA\uF9FB\uF9FC\uF9FD\uF9FE\uF9FF\uFA00\uFA01\uFA02\uFA03\uFA04\uFA05\uFA06\uFA07\uFA08\uFA09\uFA0A\uFA0B\uFA0C\uFA0D\uFA0E\uFA0F\uFA10\uFA11\uFA12\uFA13\uFA14\uFA15\uFA16\uFA17\uFA18\uFA19\uFA1A\uFA1B\uFA1C\uFA1D\uFA1E\uFA1F\uFA20\uFA21\uFA22\uFA23\uFA24\uFA25\uFA26\uFA27\uFA28\uFA29\uFA2A\uFA2B\uFA2C\uFA2D\uFA30\uFA31\uFA32\uFA33\uFA34\uFA35\uFA36\uFA37\uFA38\uFA39\uFA3A\uFA3B\uFA3C\uFA3D\uFA3E\uFA3F\uFA40\uFA41\uFA42\uFA43\uFA44\uFA45\uFA46\uFA47\uFA48\uFA49\uFA4A\uFA4B\uFA4C\uFA4D\uFA4E\uFA4F\uFA50\uFA51\uFA52\uFA53\uFA54\uFA55\uFA56\uFA57\uFA58\uFA59\uFA5A\uFA5B\uFA5C\uFA5D\uFA5E\uFA5F\uFA60\uFA61\uFA62\uFA63\uFA64\uFA65\uFA66\uFA67\uFA68\uFA69\uFA6A\uFA70\uFA71\uFA72\uFA73\uFA74\uFA75\uFA76\uFA77\uFA78\uFA79\uFA7A\uFA7B\uFA7C\uFA7D\uFA7E\uFA7F\uFA80\uFA81\uFA82\uFA83\uFA84\uFA85\uFA86\uFA87\uFA88\uFA89\uFA8A\uFA8B\uFA8C\uFA8D\uFA8E\uFA8F\uFA90\uFA91\uFA92\uFA93\uFA94\uFA95\uFA96\uFA97\uFA98\uFA99\uFA9A\uFA9B\uFA9C\uFA9D\uFA9E\uFA9F\uFAA0\uFAA1\uFAA2\uFAA3\uFAA4\uFAA5\uFAA6\uFAA7\uFAA8\uFAA9\uFAAA\uFAAB\uFAAC\uFAAD\uFAAE\uFAAF\uFAB0\uFAB1\uFAB2\uFAB3\uFAB4\uFAB5\uFAB6\uFAB7\uFAB8\uFAB9\uFABA\uFABB\uFABC\uFABD\uFABE\uFABF\uFAC0\uFAC1\uFAC2\uFAC3\uFAC4\uFAC5\uFAC6\uFAC7\uFAC8\uFAC9\uFACA\uFACB\uFACC\uFACD\uFACE\uFACF\uFAD0\uFAD1\uFAD2\uFAD3\uFAD4\uFAD5\uFAD6\uFAD7\uFAD8\uFAD9\uFB1D\uFB1F\uFB20\uFB21\uFB22\uFB23\uFB24\uFB25\uFB26\uFB27\uFB28\uFB2A\uFB2B\uFB2C\uFB2D\uFB2E\uFB2F\uFB30\uFB31\uFB32\uFB33\uFB34\uFB35\uFB36\uFB38\uFB39\uFB3A\uFB3B\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46\uFB47\uFB48\uFB49\uFB4A\uFB4B\uFB4C\uFB4D\uFB4E\uFB4F\uFB50\uFB51\uFB52\uFB53\uFB54\uFB55\uFB56\uFB57\uFB58\uFB59\uFB5A\uFB5B\uFB5C\uFB5D\uFB5E\uFB5F\uFB60\uFB61\uFB62\uFB63\uFB64\uFB65\uFB66\uFB67\uFB68\uFB69\uFB6A\uFB6B\uFB6C\uFB6D\uFB6E\uFB6F\uFB70\uFB71\uFB72\uFB73\uFB74\uFB75\uFB76\uFB77\uFB78\uFB79\uFB7A\uFB7B\uFB7C\uFB7D\uFB7E\uFB7F\uFB80\uFB81\uFB82\uFB83\uFB84\uFB85\uFB86\uFB87\uFB88\uFB89\uFB8A\uFB8B\uFB8C\uFB8D\uFB8E\uFB8F\uFB90\uFB91\uFB92\uFB93\uFB94\uFB95\uFB96\uFB97\uFB98\uFB99\uFB9A\uFB9B\uFB9C\uFB9D\uFB9E\uFB9F\uFBA0\uFBA1\uFBA2\uFBA3\uFBA4\uFBA5\uFBA6\uFBA7\uFBA8\uFBA9\uFBAA\uFBAB\uFBAC\uFBAD\uFBAE\uFBAF\uFBB0\uFBB1\uFBD3\uFBD4\uFBD5\uFBD6\uFBD7\uFBD8\uFBD9\uFBDA\uFBDB\uFBDC\uFBDD\uFBDE\uFBDF\uFBE0\uFBE1\uFBE2\uFBE3\uFBE4\uFBE5\uFBE6\uFBE7\uFBE8\uFBE9\uFBEA\uFBEB\uFBEC\uFBED\uFBEE\uFBEF\uFBF0\uFBF1\uFBF2\uFBF3\uFBF4\uFBF5\uFBF6\uFBF7\uFBF8\uFBF9\uFBFA\uFBFB\uFBFC\uFBFD\uFBFE\uFBFF\uFC00\uFC01\uFC02\uFC03\uFC04\uFC05\uFC06\uFC07\uFC08\uFC09\uFC0A\uFC0B\uFC0C\uFC0D\uFC0E\uFC0F\uFC10\uFC11\uFC12\uFC13\uFC14\uFC15\uFC16\uFC17\uFC18\uFC19\uFC1A\uFC1B\uFC1C\uFC1D\uFC1E\uFC1F\uFC20\uFC21\uFC22\uFC23\uFC24\uFC25\uFC26\uFC27\uFC28\uFC29\uFC2A\uFC2B\uFC2C\uFC2D\uFC2E\uFC2F\uFC30\uFC31\uFC32\uFC33\uFC34\uFC35\uFC36\uFC37\uFC38\uFC39\uFC3A\uFC3B\uFC3C\uFC3D\uFC3E\uFC3F\uFC40\uFC41\uFC42\uFC43\uFC44\uFC45\uFC46\uFC47\uFC48\uFC49\uFC4A\uFC4B\uFC4C\uFC4D\uFC4E\uFC4F\uFC50\uFC51\uFC52\uFC53\uFC54\uFC55\uFC56\uFC57\uFC58\uFC59\uFC5A\uFC5B\uFC5C\uFC5D\uFC5E\uFC5F\uFC60\uFC61\uFC62\uFC63\uFC64\uFC65\uFC66\uFC67\uFC68\uFC69\uFC6A\uFC6B\uFC6C\uFC6D\uFC6E\uFC6F\uFC70\uFC71\uFC72\uFC73\uFC74\uFC75\uFC76\uFC77\uFC78\uFC79\uFC7A\uFC7B\uFC7C\uFC7D\uFC7E\uFC7F\uFC80\uFC81\uFC82\uFC83\uFC84\uFC85\uFC86\uFC87\uFC88\uFC89\uFC8A\uFC8B\uFC8C\uFC8D\uFC8E\uFC8F\uFC90\uFC91\uFC92\uFC93\uFC94\uFC95\uFC96\uFC97\uFC98\uFC99\uFC9A\uFC9B\uFC9C\uFC9D\uFC9E\uFC9F\uFCA0\uFCA1\uFCA2\uFCA3\uFCA4\uFCA5\uFCA6\uFCA7\uFCA8\uFCA9\uFCAA\uFCAB\uFCAC\uFCAD\uFCAE\uFCAF\uFCB0\uFCB1\uFCB2\uFCB3\uFCB4\uFCB5\uFCB6\uFCB7\uFCB8\uFCB9\uFCBA\uFCBB\uFCBC\uFCBD\uFCBE\uFCBF\uFCC0\uFCC1\uFCC2\uFCC3\uFCC4\uFCC5\uFCC6\uFCC7\uFCC8\uFCC9\uFCCA\uFCCB\uFCCC\uFCCD\uFCCE\uFCCF\uFCD0\uFCD1\uFCD2\uFCD3\uFCD4\uFCD5\uFCD6\uFCD7\uFCD8\uFCD9\uFCDA\uFCDB\uFCDC\uFCDD\uFCDE\uFCDF\uFCE0\uFCE1\uFCE2\uFCE3\uFCE4\uFCE5\uFCE6\uFCE7\uFCE8\uFCE9\uFCEA\uFCEB\uFCEC\uFCED\uFCEE\uFCEF\uFCF0\uFCF1\uFCF2\uFCF3\uFCF4\uFCF5\uFCF6\uFCF7\uFCF8\uFCF9\uFCFA\uFCFB\uFCFC\uFCFD\uFCFE\uFCFF\uFD00\uFD01\uFD02\uFD03\uFD04\uFD05\uFD06\uFD07\uFD08\uFD09\uFD0A\uFD0B\uFD0C\uFD0D\uFD0E\uFD0F\uFD10\uFD11\uFD12\uFD13\uFD14\uFD15\uFD16\uFD17\uFD18\uFD19\uFD1A\uFD1B\uFD1C\uFD1D\uFD1E\uFD1F\uFD20\uFD21\uFD22\uFD23\uFD24\uFD25\uFD26\uFD27\uFD28\uFD29\uFD2A\uFD2B\uFD2C\uFD2D\uFD2E\uFD2F\uFD30\uFD31\uFD32\uFD33\uFD34\uFD35\uFD36\uFD37\uFD38\uFD39\uFD3A\uFD3B\uFD3C\uFD3D\uFD50\uFD51\uFD52\uFD53\uFD54\uFD55\uFD56\uFD57\uFD58\uFD59\uFD5A\uFD5B\uFD5C\uFD5D\uFD5E\uFD5F\uFD60\uFD61\uFD62\uFD63\uFD64\uFD65\uFD66\uFD67\uFD68\uFD69\uFD6A\uFD6B\uFD6C\uFD6D\uFD6E\uFD6F\uFD70\uFD71\uFD72\uFD73\uFD74\uFD75\uFD76\uFD77\uFD78\uFD79\uFD7A\uFD7B\uFD7C\uFD7D\uFD7E\uFD7F\uFD80\uFD81\uFD82\uFD83\uFD84\uFD85\uFD86\uFD87\uFD88\uFD89\uFD8A\uFD8B\uFD8C\uFD8D\uFD8E\uFD8F\uFD92\uFD93\uFD94\uFD95\uFD96\uFD97\uFD98\uFD99\uFD9A\uFD9B\uFD9C\uFD9D\uFD9E\uFD9F\uFDA0\uFDA1\uFDA2\uFDA3\uFDA4\uFDA5\uFDA6\uFDA7\uFDA8\uFDA9\uFDAA\uFDAB\uFDAC\uFDAD\uFDAE\uFDAF\uFDB0\uFDB1\uFDB2\uFDB3\uFDB4\uFDB5\uFDB6\uFDB7\uFDB8\uFDB9\uFDBA\uFDBB\uFDBC\uFDBD\uFDBE\uFDBF\uFDC0\uFDC1\uFDC2\uFDC3\uFDC4\uFDC5\uFDC6\uFDC7\uFDF0\uFDF1\uFDF2\uFDF3\uFDF4\uFDF5\uFDF6\uFDF7\uFDF8\uFDF9\uFDFA\uFDFB\uFE70\uFE71\uFE72\uFE73\uFE74\uFE76\uFE77\uFE78\uFE79\uFE7A\uFE7B\uFE7C\uFE7D\uFE7E\uFE7F\uFE80\uFE81\uFE82\uFE83\uFE84\uFE85\uFE86\uFE87\uFE88\uFE89\uFE8A\uFE8B\uFE8C\uFE8D\uFE8E\uFE8F\uFE90\uFE91\uFE92\uFE93\uFE94\uFE95\uFE96\uFE97\uFE98\uFE99\uFE9A\uFE9B\uFE9C\uFE9D\uFE9E\uFE9F\uFEA0\uFEA1\uFEA2\uFEA3\uFEA4\uFEA5\uFEA6\uFEA7\uFEA8\uFEA9\uFEAA\uFEAB\uFEAC\uFEAD\uFEAE\uFEAF\uFEB0\uFEB1\uFEB2\uFEB3\uFEB4\uFEB5\uFEB6\uFEB7\uFEB8\uFEB9\uFEBA\uFEBB\uFEBC\uFEBD\uFEBE\uFEBF\uFEC0\uFEC1\uFEC2\uFEC3\uFEC4\uFEC5\uFEC6\uFEC7\uFEC8\uFEC9\uFECA\uFECB\uFECC\uFECD\uFECE\uFECF\uFED0\uFED1\uFED2\uFED3\uFED4\uFED5\uFED6\uFED7\uFED8\uFED9\uFEDA\uFEDB\uFEDC\uFEDD\uFEDE\uFEDF\uFEE0\uFEE1\uFEE2\uFEE3\uFEE4\uFEE5\uFEE6\uFEE7\uFEE8\uFEE9\uFEEA\uFEEB\uFEEC\uFEED\uFEEE\uFEEF\uFEF0\uFEF1\uFEF2\uFEF3\uFEF4\uFEF5\uFEF6\uFEF7\uFEF8\uFEF9\uFEFA\uFEFB\uFEFC\uFF66\uFF67\uFF68\uFF69\uFF6A\uFF6B\uFF6C\uFF6D\uFF6E\uFF6F\uFF71\uFF72\uFF73\uFF74\uFF75\uFF76\uFF77\uFF78\uFF79\uFF7A\uFF7B\uFF7C\uFF7D\uFF7E\uFF7F\uFF80\uFF81\uFF82\uFF83\uFF84\uFF85\uFF86\uFF87\uFF88\uFF89\uFF8A\uFF8B\uFF8C\uFF8D\uFF8E\uFF8F\uFF90\uFF91\uFF92\uFF93\uFF94\uFF95\uFF96\uFF97\uFF98\uFF99\uFF9A\uFF9B\uFF9C\uFF9D\uFFA0\uFFA1\uFFA2\uFFA3\uFFA4\uFFA5\uFFA6\uFFA7\uFFA8\uFFA9\uFFAA\uFFAB\uFFAC\uFFAD\uFFAE\uFFAF\uFFB0\uFFB1\uFFB2\uFFB3\uFFB4\uFFB5\uFFB6\uFFB7\uFFB8\uFFB9\uFFBA\uFFBB\uFFBC\uFFBD\uFFBE\uFFC2\uFFC3\uFFC4\uFFC5\uFFC6\uFFC7\uFFCA\uFFCB\uFFCC\uFFCD\uFFCE\uFFCF\uFFD2\uFFD3\uFFD4\uFFD5\uFFD6\uFFD7\uFFDA\uFFDB\uFFDC]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\u01BB\\u01C0\\u01C1\\u01C2\\u01C3\\u0294\\u05D0\\u05D1\\u05D2\\u05D3\\u05D4\\u05D5\\u05D6\\u05D7\\u05D8\\u05D9\\u05DA\\u05DB\\u05DC\\u05DD\\u05DE\\u05DF\\u05E0\\u05E1\\u05E2\\u05E3\\u05E4\\u05E5\\u05E6\\u05E7\\u05E8\\u05E9\\u05EA\\u05F0\\u05F1\\u05F2\\u0621\\u0622\\u0623\\u0624\\u0625\\u0626\\u0627\\u0628\\u0629\\u062A\\u062B\\u062C\\u062D\\u062E\\u062F\\u0630\\u0631\\u0632\\u0633\\u0634\\u0635\\u0636\\u0637\\u0638\\u0639\\u063A\\u063B\\u063C\\u063D\\u063E\\u063F\\u0641\\u0642\\u0643\\u0644\\u0645\\u0646\\u0647\\u0648\\u0649\\u064A\\u066E\\u066F\\u0671\\u0672\\u0673\\u0674\\u0675\\u0676\\u0677\\u0678\\u0679\\u067A\\u067B\\u067C\\u067D\\u067E\\u067F\\u0680\\u0681\\u0682\\u0683\\u0684\\u0685\\u0686\\u0687\\u0688\\u0689\\u068A\\u068B\\u068C\\u068D\\u068E\\u068F\\u0690\\u0691\\u0692\\u0693\\u0694\\u0695\\u0696\\u0697\\u0698\\u0699\\u069A\\u069B\\u069C\\u069D\\u069E\\u069F\\u06A0\\u06A1\\u06A2\\u06A3\\u06A4\\u06A5\\u06A6\\u06A7\\u06A8\\u06A9\\u06AA\\u06AB\\u06AC\\u06AD\\u06AE\\u06AF\\u06B0\\u06B1\\u06B2\\u06B3\\u06B4\\u06B5\\u06B6\\u06B7\\u06B8\\u06B9\\u06BA\\u06BB\\u06BC\\u06BD\\u06BE\\u06BF\\u06C0\\u06C1\\u06C2\\u06C3\\u06C4\\u06C5\\u06C6\\u06C7\\u06C8\\u06C9\\u06CA\\u06CB\\u06CC\\u06CD\\u06CE\\u06CF\\u06D0\\u06D1\\u06D2\\u06D3\\u06D5\\u06EE\\u06EF\\u06FA\\u06FB\\u06FC\\u06FF\\u0710\\u0712\\u0713\\u0714\\u0715\\u0716\\u0717\\u0718\\u0719\\u071A\\u071B\\u071C\\u071D\\u071E\\u071F\\u0720\\u0721\\u0722\\u0723\\u0724\\u0725\\u0726\\u0727\\u0728\\u0729\\u072A\\u072B\\u072C\\u072D\\u072E\\u072F\\u074D\\u074E\\u074F\\u0750\\u0751\\u0752\\u0753\\u0754\\u0755\\u0756\\u0757\\u0758\\u0759\\u075A\\u075B\\u075C\\u075D\\u075E\\u075F\\u0760\\u0761\\u0762\\u0763\\u0764\\u0765\\u0766\\u0767\\u0768\\u0769\\u076A\\u076B\\u076C\\u076D\\u076E\\u076F\\u0770\\u0771\\u0772\\u0773\\u0774\\u0775\\u0776\\u0777\\u0778\\u0779\\u077A\\u077B\\u077C\\u077D\\u077E\\u077F\\u0780\\u0781\\u0782\\u0783\\u0784\\u0785\\u0786\\u0787\\u0788\\u0789\\u078A\\u078B\\u078C\\u078D\\u078E\\u078F\\u0790\\u0791\\u0792\\u0793\\u0794\\u0795\\u0796\\u0797\\u0798\\u0799\\u079A\\u079B\\u079C\\u079D\\u079E\\u079F\\u07A0\\u07A1\\u07A2\\u07A3\\u07A4\\u07A5\\u07B1\\u07CA\\u07CB\\u07CC\\u07CD\\u07CE\\u07CF\\u07D0\\u07D1\\u07D2\\u07D3\\u07D4\\u07D5\\u07D6\\u07D7\\u07D8\\u07D9\\u07DA\\u07DB\\u07DC\\u07DD\\u07DE\\u07DF\\u07E0\\u07E1\\u07E2\\u07E3\\u07E4\\u07E5\\u07E6\\u07E7\\u07E8\\u07E9\\u07EA\\u0904\\u0905\\u0906\\u0907\\u0908\\u0909\\u090A\\u090B\\u090C\\u090D\\u090E\\u090F\\u0910\\u0911\\u0912\\u0913\\u0914\\u0915\\u0916\\u0917\\u0918\\u0919\\u091A\\u091B\\u091C\\u091D\\u091E\\u091F\\u0920\\u0921\\u0922\\u0923\\u0924\\u0925\\u0926\\u0927\\u0928\\u0929\\u092A\\u092B\\u092C\\u092D\\u092E\\u092F\\u0930\\u0931\\u0932\\u0933\\u0934\\u0935\\u0936\\u0937\\u0938\\u0939\\u093D\\u0950\\u0958\\u0959\\u095A\\u095B\\u095C\\u095D\\u095E\\u095F\\u0960\\u0961\\u0972\\u097B\\u097C\\u097D\\u097E\\u097F\\u0985\\u0986\\u0987\\u0988\\u0989\\u098A\\u098B\\u098C\\u098F\\u0990\\u0993\\u0994\\u0995\\u0996\\u0997\\u0998\\u0999\\u099A\\u099B\\u099C\\u099D\\u099E\\u099F\\u09A0\\u09A1\\u09A2\\u09A3\\u09A4\\u09A5\\u09A6\\u09A7\\u09A8\\u09AA\\u09AB\\u09AC\\u09AD\\u09AE\\u09AF\\u09B0\\u09B2\\u09B6\\u09B7\\u09B8\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF\\u09E0\\u09E1\\u09F0\\u09F1\\u0A05\\u0A06\\u0A07\\u0A08\\u0A09\\u0A0A\\u0A0F\\u0A10\\u0A13\\u0A14\\u0A15\\u0A16\\u0A17\\u0A18\\u0A19\\u0A1A\\u0A1B\\u0A1C\\u0A1D\\u0A1E\\u0A1F\\u0A20\\u0A21\\u0A22\\u0A23\\u0A24\\u0A25\\u0A26\\u0A27\\u0A28\\u0A2A\\u0A2B\\u0A2C\\u0A2D\\u0A2E\\u0A2F\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59\\u0A5A\\u0A5B\\u0A5C\\u0A5E\\u0A72\\u0A73\\u0A74\\u0A85\\u0A86\\u0A87\\u0A88\\u0A89\\u0A8A\\u0A8B\\u0A8C\\u0A8D\\u0A8F\\u0A90\\u0A91\\u0A93\\u0A94\\u0A95\\u0A96\\u0A97\\u0A98\\u0A99\\u0A9A\\u0A9B\\u0A9C\\u0A9D\\u0A9E\\u0A9F\\u0AA0\\u0AA1\\u0AA2\\u0AA3\\u0AA4\\u0AA5\\u0AA6\\u0AA7\\u0AA8\\u0AAA\\u0AAB\\u0AAC\\u0AAD\\u0AAE\\u0AAF\\u0AB0\\u0AB2\\u0AB3\\u0AB5\\u0AB6\\u0AB7\\u0AB8\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05\\u0B06\\u0B07\\u0B08\\u0B09\\u0B0A\\u0B0B\\u0B0C\\u0B0F\\u0B10\\u0B13\\u0B14\\u0B15\\u0B16\\u0B17\\u0B18\\u0B19\\u0B1A\\u0B1B\\u0B1C\\u0B1D\\u0B1E\\u0B1F\\u0B20\\u0B21\\u0B22\\u0B23\\u0B24\\u0B25\\u0B26\\u0B27\\u0B28\\u0B2A\\u0B2B\\u0B2C\\u0B2D\\u0B2E\\u0B2F\\u0B30\\u0B32\\u0B33\\u0B35\\u0B36\\u0B37\\u0B38\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F\\u0B60\\u0B61\\u0B71\\u0B83\\u0B85\\u0B86\\u0B87\\u0B88\\u0B89\\u0B8A\\u0B8E\\u0B8F\\u0B90\\u0B92\\u0B93\\u0B94\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8\\u0BA9\\u0BAA\\u0BAE\\u0BAF\\u0BB0\\u0BB1\\u0BB2\\u0BB3\\u0BB4\\u0BB5\\u0BB6\\u0BB7\\u0BB8\\u0BB9\\u0BD0\\u0C05\\u0C06\\u0C07\\u0C08\\u0C09\\u0C0A\\u0C0B\\u0C0C\\u0C0E\\u0C0F\\u0C10\\u0C12\\u0C13\\u0C14\\u0C15\\u0C16\\u0C17\\u0C18\\u0C19\\u0C1A\\u0C1B\\u0C1C\\u0C1D\\u0C1E\\u0C1F\\u0C20\\u0C21\\u0C22\\u0C23\\u0C24\\u0C25\\u0C26\\u0C27\\u0C28\\u0C2A\\u0C2B\\u0C2C\\u0C2D\\u0C2E\\u0C2F\\u0C30\\u0C31\\u0C32\\u0C33\\u0C35\\u0C36\\u0C37\\u0C38\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85\\u0C86\\u0C87\\u0C88\\u0C89\\u0C8A\\u0C8B\\u0C8C\\u0C8E\\u0C8F\\u0C90\\u0C92\\u0C93\\u0C94\\u0C95\\u0C96\\u0C97\\u0C98\\u0C99\\u0C9A\\u0C9B\\u0C9C\\u0C9D\\u0C9E\\u0C9F\\u0CA0\\u0CA1\\u0CA2\\u0CA3\\u0CA4\\u0CA5\\u0CA6\\u0CA7\\u0CA8\\u0CAA\\u0CAB\\u0CAC\\u0CAD\\u0CAE\\u0CAF\\u0CB0\\u0CB1\\u0CB2\\u0CB3\\u0CB5\\u0CB6\\u0CB7\\u0CB8\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0D05\\u0D06\\u0D07\\u0D08\\u0D09\\u0D0A\\u0D0B\\u0D0C\\u0D0E\\u0D0F\\u0D10\\u0D12\\u0D13\\u0D14\\u0D15\\u0D16\\u0D17\\u0D18\\u0D19\\u0D1A\\u0D1B\\u0D1C\\u0D1D\\u0D1E\\u0D1F\\u0D20\\u0D21\\u0D22\\u0D23\\u0D24\\u0D25\\u0D26\\u0D27\\u0D28\\u0D2A\\u0D2B\\u0D2C\\u0D2D\\u0D2E\\u0D2F\\u0D30\\u0D31\\u0D32\\u0D33\\u0D34\\u0D35\\u0D36\\u0D37\\u0D38\\u0D39\\u0D3D\\u0D60\\u0D61\\u0D7A\\u0D7B\\u0D7C\\u0D7D\\u0D7E\\u0D7F\\u0D85\\u0D86\\u0D87\\u0D88\\u0D89\\u0D8A\\u0D8B\\u0D8C\\u0D8D\\u0D8E\\u0D8F\\u0D90\\u0D91\\u0D92\\u0D93\\u0D94\\u0D95\\u0D96\\u0D9A\\u0D9B\\u0D9C\\u0D9D\\u0D9E\\u0D9F\\u0DA0\\u0DA1\\u0DA2\\u0DA3\\u0DA4\\u0DA5\\u0DA6\\u0DA7\\u0DA8\\u0DA9\\u0DAA\\u0DAB\\u0DAC\\u0DAD\\u0DAE\\u0DAF\\u0DB0\\u0DB1\\u0DB3\\u0DB4\\u0DB5\\u0DB6\\u0DB7\\u0DB8\\u0DB9\\u0DBA\\u0DBB\\u0DBD\\u0DC0\\u0DC1\\u0DC2\\u0DC3\\u0DC4\\u0DC5\\u0DC6\\u0E01\\u0E02\\u0E03\\u0E04\\u0E05\\u0E06\\u0E07\\u0E08\\u0E09\\u0E0A\\u0E0B\\u0E0C\\u0E0D\\u0E0E\\u0E0F\\u0E10\\u0E11\\u0E12\\u0E13\\u0E14\\u0E15\\u0E16\\u0E17\\u0E18\\u0E19\\u0E1A\\u0E1B\\u0E1C\\u0E1D\\u0E1E\\u0E1F\\u0E20\\u0E21\\u0E22\\u0E23\\u0E24\\u0E25\\u0E26\\u0E27\\u0E28\\u0E29\\u0E2A\\u0E2B\\u0E2C\\u0E2D\\u0E2E\\u0E2F\\u0E30\\u0E32\\u0E33\\u0E40\\u0E41\\u0E42\\u0E43\\u0E44\\u0E45\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94\\u0E95\\u0E96\\u0E97\\u0E99\\u0E9A\\u0E9B\\u0E9C\\u0E9D\\u0E9E\\u0E9F\\u0EA1\\u0EA2\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD\\u0EAE\\u0EAF\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0\\u0EC1\\u0EC2\\u0EC3\\u0EC4\\u0EDC\\u0EDD\\u0F00\\u0F40\\u0F41\\u0F42\\u0F43\\u0F44\\u0F45\\u0F46\\u0F47\\u0F49\\u0F4A\\u0F4B\\u0F4C\\u0F4D\\u0F4E\\u0F4F\\u0F50\\u0F51\\u0F52\\u0F53\\u0F54\\u0F55\\u0F56\\u0F57\\u0F58\\u0F59\\u0F5A\\u0F5B\\u0F5C\\u0F5D\\u0F5E\\u0F5F\\u0F60\\u0F61\\u0F62\\u0F63\\u0F64\\u0F65\\u0F66\\u0F67\\u0F68\\u0F69\\u0F6A\\u0F6B\\u0F6C\\u0F88\\u0F89\\u0F8A\\u0F8B\\u1000\\u1001\\u1002\\u1003\\u1004\\u1005\\u1006\\u1007\\u1008\\u1009\\u100A\\u100B\\u100C\\u100D\\u100E\\u100F\\u1010\\u1011\\u1012\\u1013\\u1014\\u1015\\u1016\\u1017\\u1018\\u1019\\u101A\\u101B\\u101C\\u101D\\u101E\\u101F\\u1020\\u1021\\u1022\\u1023\\u1024\\u1025\\u1026\\u1027\\u1028\\u1029\\u102A\\u103F\\u1050\\u1051\\u1052\\u1053\\u1054\\u1055\\u105A\\u105B\\u105C\\u105D\\u1061\\u1065\\u1066\\u106E\\u106F\\u1070\\u1075\\u1076\\u1077\\u1078\\u1079\\u107A\\u107B\\u107C\\u107D\\u107E\\u107F\\u1080\\u1081\\u108E\\u10D0\\u10D1\\u10D2\\u10D3\\u10D4\\u10D5\\u10D6\\u10D7\\u10D8\\u10D9\\u10DA\\u10DB\\u10DC\\u10DD\\u10DE\\u10DF\\u10E0\\u10E1\\u10E2\\u10E3\\u10E4\\u10E5\\u10E6\\u10E7\\u10E8\\u10E9\\u10EA\\u10EB\\u10EC\\u10ED\\u10EE\\u10EF\\u10F0\\u10F1\\u10F2\\u10F3\\u10F4\\u10F5\\u10F6\\u10F7\\u10F8\\u10F9\\u10FA\\u1100\\u1101\\u1102\\u1103\\u1104\\u1105\\u1106\\u1107\\u1108\\u1109\\u110A\\u110B\\u110C\\u110D\\u110E\\u110F\\u1110\\u1111\\u1112\\u1113\\u1114\\u1115\\u1116\\u1117\\u1118\\u1119\\u111A\\u111B\\u111C\\u111D\\u111E\\u111F\\u1120\\u1121\\u1122\\u1123\\u1124\\u1125\\u1126\\u1127\\u1128\\u1129\\u112A\\u112B\\u112C\\u112D\\u112E\\u112F\\u1130\\u1131\\u1132\\u1133\\u1134\\u1135\\u1136\\u1137\\u1138\\u1139\\u113A\\u113B\\u113C\\u113D\\u113E\\u113F\\u1140\\u1141\\u1142\\u1143\\u1144\\u1145\\u1146\\u1147\\u1148\\u1149\\u114A\\u114B\\u114C\\u114D\\u114E\\u114F\\u1150\\u1151\\u1152\\u1153\\u1154\\u1155\\u1156\\u1157\\u1158\\u1159\\u115F\\u1160\\u1161\\u1162\\u1163\\u1164\\u1165\\u1166\\u1167\\u1168\\u1169\\u116A\\u116B\\u116C\\u116D\\u116E\\u116F\\u1170\\u1171\\u1172\\u1173\\u1174\\u1175\\u1176\\u1177\\u1178\\u1179\\u117A\\u117B\\u117C\\u117D\\u117E\\u117F\\u1180\\u1181\\u1182\\u1183\\u1184\\u1185\\u1186\\u1187\\u1188\\u1189\\u118A\\u118B\\u118C\\u118D\\u118E\\u118F\\u1190\\u1191\\u1192\\u1193\\u1194\\u1195\\u1196\\u1197\\u1198\\u1199\\u119A\\u119B\\u119C\\u119D\\u119E\\u119F\\u11A0\\u11A1\\u11A2\\u11A8\\u11A9\\u11AA\\u11AB\\u11AC\\u11AD\\u11AE\\u11AF\\u11B0\\u11B1\\u11B2\\u11B3\\u11B4\\u11B5\\u11B6\\u11B7\\u11B8\\u11B9\\u11BA\\u11BB\\u11BC\\u11BD\\u11BE\\u11BF\\u11C0\\u11C1\\u11C2\\u11C3\\u11C4\\u11C5\\u11C6\\u11C7\\u11C8\\u11C9\\u11CA\\u11CB\\u11CC\\u11CD\\u11CE\\u11CF\\u11D0\\u11D1\\u11D2\\u11D3\\u11D4\\u11D5\\u11D6\\u11D7\\u11D8\\u11D9\\u11DA\\u11DB\\u11DC\\u11DD\\u11DE\\u11DF\\u11E0\\u11E1\\u11E2\\u11E3\\u11E4\\u11E5\\u11E6\\u11E7\\u11E8\\u11E9\\u11EA\\u11EB\\u11EC\\u11ED\\u11EE\\u11EF\\u11F0\\u11F1\\u11F2\\u11F3\\u11F4\\u11F5\\u11F6\\u11F7\\u11F8\\u11F9\\u1200\\u1201\\u1202\\u1203\\u1204\\u1205\\u1206\\u1207\\u1208\\u1209\\u120A\\u120B\\u120C\\u120D\\u120E\\u120F\\u1210\\u1211\\u1212\\u1213\\u1214\\u1215\\u1216\\u1217\\u1218\\u1219\\u121A\\u121B\\u121C\\u121D\\u121E\\u121F\\u1220\\u1221\\u1222\\u1223\\u1224\\u1225\\u1226\\u1227\\u1228\\u1229\\u122A\\u122B\\u122C\\u122D\\u122E\\u122F\\u1230\\u1231\\u1232\\u1233\\u1234\\u1235\\u1236\\u1237\\u1238\\u1239\\u123A\\u123B\\u123C\\u123D\\u123E\\u123F\\u1240\\u1241\\u1242\\u1243\\u1244\\u1245\\u1246\\u1247\\u1248\\u124A\\u124B\\u124C\\u124D\\u1250\\u1251\\u1252\\u1253\\u1254\\u1255\\u1256\\u1258\\u125A\\u125B\\u125C\\u125D\\u1260\\u1261\\u1262\\u1263\\u1264\\u1265\\u1266\\u1267\\u1268\\u1269\\u126A\\u126B\\u126C\\u126D\\u126E\\u126F\\u1270\\u1271\\u1272\\u1273\\u1274\\u1275\\u1276\\u1277\\u1278\\u1279\\u127A\\u127B\\u127C\\u127D\\u127E\\u127F\\u1280\\u1281\\u1282\\u1283\\u1284\\u1285\\u1286\\u1287\\u1288\\u128A\\u128B\\u128C\\u128D\\u1290\\u1291\\u1292\\u1293\\u1294\\u1295\\u1296\\u1297\\u1298\\u1299\\u129A\\u129B\\u129C\\u129D\\u129E\\u129F\\u12A0\\u12A1\\u12A2\\u12A3\\u12A4\\u12A5\\u12A6\\u12A7\\u12A8\\u12A9\\u12AA\\u12AB\\u12AC\\u12AD\\u12AE\\u12AF\\u12B0\\u12B2\\u12B3\\u12B4\\u12B5\\u12B8\\u12B9\\u12BA\\u12BB\\u12BC\\u12BD\\u12BE\\u12C0\\u12C2\\u12C3\\u12C4\\u12C5\\u12C8\\u12C9\\u12CA\\u12CB\\u12CC\\u12CD\\u12CE\\u12CF\\u12D0\\u12D1\\u12D2\\u12D3\\u12D4\\u12D5\\u12D6\\u12D8\\u12D9\\u12DA\\u12DB\\u12DC\\u12DD\\u12DE\\u12DF\\u12E0\\u12E1\\u12E2\\u12E3\\u12E4\\u12E5\\u12E6\\u12E7\\u12E8\\u12E9\\u12EA\\u12EB\\u12EC\\u12ED\\u12EE\\u12EF\\u12F0\\u12F1\\u12F2\\u12F3\\u12F4\\u12F5\\u12F6\\u12F7\\u12F8\\u12F9\\u12FA\\u12FB\\u12FC\\u12FD\\u12FE\\u12FF\\u1300\\u1301\\u1302\\u1303\\u1304\\u1305\\u1306\\u1307\\u1308\\u1309\\u130A\\u130B\\u130C\\u130D\\u130E\\u130F\\u1310\\u1312\\u1313\\u1314\\u1315\\u1318\\u1319\\u131A\\u131B\\u131C\\u131D\\u131E\\u131F\\u1320\\u1321\\u1322\\u1323\\u1324\\u1325\\u1326\\u1327\\u1328\\u1329\\u132A\\u132B\\u132C\\u132D\\u132E\\u132F\\u1330\\u1331\\u1332\\u1333\\u1334\\u1335\\u1336\\u1337\\u1338\\u1339\\u133A\\u133B\\u133C\\u133D\\u133E\\u133F\\u1340\\u1341\\u1342\\u1343\\u1344\\u1345\\u1346\\u1347\\u1348\\u1349\\u134A\\u134B\\u134C\\u134D\\u134E\\u134F\\u1350\\u1351\\u1352\\u1353\\u1354\\u1355\\u1356\\u1357\\u1358\\u1359\\u135A\\u1380\\u1381\\u1382\\u1383\\u1384\\u1385\\u1386\\u1387\\u1388\\u1389\\u138A\\u138B\\u138C\\u138D\\u138E\\u138F\\u13A0\\u13A1\\u13A2\\u13A3\\u13A4\\u13A5\\u13A6\\u13A7\\u13A8\\u13A9\\u13AA\\u13AB\\u13AC\\u13AD\\u13AE\\u13AF\\u13B0\\u13B1\\u13B2\\u13B3\\u13B4\\u13B5\\u13B6\\u13B7\\u13B8\\u13B9\\u13BA\\u13BB\\u13BC\\u13BD\\u13BE\\u13BF\\u13C0\\u13C1\\u13C2\\u13C3\\u13C4\\u13C5\\u13C6\\u13C7\\u13C8\\u13C9\\u13CA\\u13CB\\u13CC\\u13CD\\u13CE\\u13CF\\u13D0\\u13D1\\u13D2\\u13D3\\u13D4\\u13D5\\u13D6\\u13D7\\u13D8\\u13D9\\u13DA\\u13DB\\u13DC\\u13DD\\u13DE\\u13DF\\u13E0\\u13E1\\u13E2\\u13E3\\u13E4\\u13E5\\u13E6\\u13E7\\u13E8\\u13E9\\u13EA\\u13EB\\u13EC\\u13ED\\u13EE\\u13EF\\u13F0\\u13F1\\u13F2\\u13F3\\u13F4\\u1401\\u1402\\u1403\\u1404\\u1405\\u1406\\u1407\\u1408\\u1409\\u140A\\u140B\\u140C\\u140D\\u140E\\u140F\\u1410\\u1411\\u1412\\u1413\\u1414\\u1415\\u1416\\u1417\\u1418\\u1419\\u141A\\u141B\\u141C\\u141D\\u141E\\u141F\\u1420\\u1421\\u1422\\u1423\\u1424\\u1425\\u1426\\u1427\\u1428\\u1429\\u142A\\u142B\\u142C\\u142D\\u142E\\u142F\\u1430\\u1431\\u1432\\u1433\\u1434\\u1435\\u1436\\u1437\\u1438\\u1439\\u143A\\u143B\\u143C\\u143D\\u143E\\u143F\\u1440\\u1441\\u1442\\u1443\\u1444\\u1445\\u1446\\u1447\\u1448\\u1449\\u144A\\u144B\\u144C\\u144D\\u144E\\u144F\\u1450\\u1451\\u1452\\u1453\\u1454\\u1455\\u1456\\u1457\\u1458\\u1459\\u145A\\u145B\\u145C\\u145D\\u145E\\u145F\\u1460\\u1461\\u1462\\u1463\\u1464\\u1465\\u1466\\u1467\\u1468\\u1469\\u146A\\u146B\\u146C\\u146D\\u146E\\u146F\\u1470\\u1471\\u1472\\u1473\\u1474\\u1475\\u1476\\u1477\\u1478\\u1479\\u147A\\u147B\\u147C\\u147D\\u147E\\u147F\\u1480\\u1481\\u1482\\u1483\\u1484\\u1485\\u1486\\u1487\\u1488\\u1489\\u148A\\u148B\\u148C\\u148D\\u148E\\u148F\\u1490\\u1491\\u1492\\u1493\\u1494\\u1495\\u1496\\u1497\\u1498\\u1499\\u149A\\u149B\\u149C\\u149D\\u149E\\u149F\\u14A0\\u14A1\\u14A2\\u14A3\\u14A4\\u14A5\\u14A6\\u14A7\\u14A8\\u14A9\\u14AA\\u14AB\\u14AC\\u14AD\\u14AE\\u14AF\\u14B0\\u14B1\\u14B2\\u14B3\\u14B4\\u14B5\\u14B6\\u14B7\\u14B8\\u14B9\\u14BA\\u14BB\\u14BC\\u14BD\\u14BE\\u14BF\\u14C0\\u14C1\\u14C2\\u14C3\\u14C4\\u14C5\\u14C6\\u14C7\\u14C8\\u14C9\\u14CA\\u14CB\\u14CC\\u14CD\\u14CE\\u14CF\\u14D0\\u14D1\\u14D2\\u14D3\\u14D4\\u14D5\\u14D6\\u14D7\\u14D8\\u14D9\\u14DA\\u14DB\\u14DC\\u14DD\\u14DE\\u14DF\\u14E0\\u14E1\\u14E2\\u14E3\\u14E4\\u14E5\\u14E6\\u14E7\\u14E8\\u14E9\\u14EA\\u14EB\\u14EC\\u14ED\\u14EE\\u14EF\\u14F0\\u14F1\\u14F2\\u14F3\\u14F4\\u14F5\\u14F6\\u14F7\\u14F8\\u14F9\\u14FA\\u14FB\\u14FC\\u14FD\\u14FE\\u14FF\\u1500\\u1501\\u1502\\u1503\\u1504\\u1505\\u1506\\u1507\\u1508\\u1509\\u150A\\u150B\\u150C\\u150D\\u150E\\u150F\\u1510\\u1511\\u1512\\u1513\\u1514\\u1515\\u1516\\u1517\\u1518\\u1519\\u151A\\u151B\\u151C\\u151D\\u151E\\u151F\\u1520\\u1521\\u1522\\u1523\\u1524\\u1525\\u1526\\u1527\\u1528\\u1529\\u152A\\u152B\\u152C\\u152D\\u152E\\u152F\\u1530\\u1531\\u1532\\u1533\\u1534\\u1535\\u1536\\u1537\\u1538\\u1539\\u153A\\u153B\\u153C\\u153D\\u153E\\u153F\\u1540\\u1541\\u1542\\u1543\\u1544\\u1545\\u1546\\u1547\\u1548\\u1549\\u154A\\u154B\\u154C\\u154D\\u154E\\u154F\\u1550\\u1551\\u1552\\u1553\\u1554\\u1555\\u1556\\u1557\\u1558\\u1559\\u155A\\u155B\\u155C\\u155D\\u155E\\u155F\\u1560\\u1561\\u1562\\u1563\\u1564\\u1565\\u1566\\u1567\\u1568\\u1569\\u156A\\u156B\\u156C\\u156D\\u156E\\u156F\\u1570\\u1571\\u1572\\u1573\\u1574\\u1575\\u1576\\u1577\\u1578\\u1579\\u157A\\u157B\\u157C\\u157D\\u157E\\u157F\\u1580\\u1581\\u1582\\u1583\\u1584\\u1585\\u1586\\u1587\\u1588\\u1589\\u158A\\u158B\\u158C\\u158D\\u158E\\u158F\\u1590\\u1591\\u1592\\u1593\\u1594\\u1595\\u1596\\u1597\\u1598\\u1599\\u159A\\u159B\\u159C\\u159D\\u159E\\u159F\\u15A0\\u15A1\\u15A2\\u15A3\\u15A4\\u15A5\\u15A6\\u15A7\\u15A8\\u15A9\\u15AA\\u15AB\\u15AC\\u15AD\\u15AE\\u15AF\\u15B0\\u15B1\\u15B2\\u15B3\\u15B4\\u15B5\\u15B6\\u15B7\\u15B8\\u15B9\\u15BA\\u15BB\\u15BC\\u15BD\\u15BE\\u15BF\\u15C0\\u15C1\\u15C2\\u15C3\\u15C4\\u15C5\\u15C6\\u15C7\\u15C8\\u15C9\\u15CA\\u15CB\\u15CC\\u15CD\\u15CE\\u15CF\\u15D0\\u15D1\\u15D2\\u15D3\\u15D4\\u15D5\\u15D6\\u15D7\\u15D8\\u15D9\\u15DA\\u15DB\\u15DC\\u15DD\\u15DE\\u15DF\\u15E0\\u15E1\\u15E2\\u15E3\\u15E4\\u15E5\\u15E6\\u15E7\\u15E8\\u15E9\\u15EA\\u15EB\\u15EC\\u15ED\\u15EE\\u15EF\\u15F0\\u15F1\\u15F2\\u15F3\\u15F4\\u15F5\\u15F6\\u15F7\\u15F8\\u15F9\\u15FA\\u15FB\\u15FC\\u15FD\\u15FE\\u15FF\\u1600\\u1601\\u1602\\u1603\\u1604\\u1605\\u1606\\u1607\\u1608\\u1609\\u160A\\u160B\\u160C\\u160D\\u160E\\u160F\\u1610\\u1611\\u1612\\u1613\\u1614\\u1615\\u1616\\u1617\\u1618\\u1619\\u161A\\u161B\\u161C\\u161D\\u161E\\u161F\\u1620\\u1621\\u1622\\u1623\\u1624\\u1625\\u1626\\u1627\\u1628\\u1629\\u162A\\u162B\\u162C\\u162D\\u162E\\u162F\\u1630\\u1631\\u1632\\u1633\\u1634\\u1635\\u1636\\u1637\\u1638\\u1639\\u163A\\u163B\\u163C\\u163D\\u163E\\u163F\\u1640\\u1641\\u1642\\u1643\\u1644\\u1645\\u1646\\u1647\\u1648\\u1649\\u164A\\u164B\\u164C\\u164D\\u164E\\u164F\\u1650\\u1651\\u1652\\u1653\\u1654\\u1655\\u1656\\u1657\\u1658\\u1659\\u165A\\u165B\\u165C\\u165D\\u165E\\u165F\\u1660\\u1661\\u1662\\u1663\\u1664\\u1665\\u1666\\u1667\\u1668\\u1669\\u166A\\u166B\\u166C\\u166F\\u1670\\u1671\\u1672\\u1673\\u1674\\u1675\\u1676\\u1681\\u1682\\u1683\\u1684\\u1685\\u1686\\u1687\\u1688\\u1689\\u168A\\u168B\\u168C\\u168D\\u168E\\u168F\\u1690\\u1691\\u1692\\u1693\\u1694\\u1695\\u1696\\u1697\\u1698\\u1699\\u169A\\u16A0\\u16A1\\u16A2\\u16A3\\u16A4\\u16A5\\u16A6\\u16A7\\u16A8\\u16A9\\u16AA\\u16AB\\u16AC\\u16AD\\u16AE\\u16AF\\u16B0\\u16B1\\u16B2\\u16B3\\u16B4\\u16B5\\u16B6\\u16B7\\u16B8\\u16B9\\u16BA\\u16BB\\u16BC\\u16BD\\u16BE\\u16BF\\u16C0\\u16C1\\u16C2\\u16C3\\u16C4\\u16C5\\u16C6\\u16C7\\u16C8\\u16C9\\u16CA\\u16CB\\u16CC\\u16CD\\u16CE\\u16CF\\u16D0\\u16D1\\u16D2\\u16D3\\u16D4\\u16D5\\u16D6\\u16D7\\u16D8\\u16D9\\u16DA\\u16DB\\u16DC\\u16DD\\u16DE\\u16DF\\u16E0\\u16E1\\u16E2\\u16E3\\u16E4\\u16E5\\u16E6\\u16E7\\u16E8\\u16E9\\u16EA\\u1700\\u1701\\u1702\\u1703\\u1704\\u1705\\u1706\\u1707\\u1708\\u1709\\u170A\\u170B\\u170C\\u170E\\u170F\\u1710\\u1711\\u1720\\u1721\\u1722\\u1723\\u1724\\u1725\\u1726\\u1727\\u1728\\u1729\\u172A\\u172B\\u172C\\u172D\\u172E\\u172F\\u1730\\u1731\\u1740\\u1741\\u1742\\u1743\\u1744\\u1745\\u1746\\u1747\\u1748\\u1749\\u174A\\u174B\\u174C\\u174D\\u174E\\u174F\\u1750\\u1751\\u1760\\u1761\\u1762\\u1763\\u1764\\u1765\\u1766\\u1767\\u1768\\u1769\\u176A\\u176B\\u176C\\u176E\\u176F\\u1770\\u1780\\u1781\\u1782\\u1783\\u1784\\u1785\\u1786\\u1787\\u1788\\u1789\\u178A\\u178B\\u178C\\u178D\\u178E\\u178F\\u1790\\u1791\\u1792\\u1793\\u1794\\u1795\\u1796\\u1797\\u1798\\u1799\\u179A\\u179B\\u179C\\u179D\\u179E\\u179F\\u17A0\\u17A1\\u17A2\\u17A3\\u17A4\\u17A5\\u17A6\\u17A7\\u17A8\\u17A9\\u17AA\\u17AB\\u17AC\\u17AD\\u17AE\\u17AF\\u17B0\\u17B1\\u17B2\\u17B3\\u17DC\\u1820\\u1821\\u1822\\u1823\\u1824\\u1825\\u1826\\u1827\\u1828\\u1829\\u182A\\u182B\\u182C\\u182D\\u182E\\u182F\\u1830\\u1831\\u1832\\u1833\\u1834\\u1835\\u1836\\u1837\\u1838\\u1839\\u183A\\u183B\\u183C\\u183D\\u183E\\u183F\\u1840\\u1841\\u1842\\u1844\\u1845\\u1846\\u1847\\u1848\\u1849\\u184A\\u184B\\u184C\\u184D\\u184E\\u184F\\u1850\\u1851\\u1852\\u1853\\u1854\\u1855\\u1856\\u1857\\u1858\\u1859\\u185A\\u185B\\u185C\\u185D\\u185E\\u185F\\u1860\\u1861\\u1862\\u1863\\u1864\\u1865\\u1866\\u1867\\u1868\\u1869\\u186A\\u186B\\u186C\\u186D\\u186E\\u186F\\u1870\\u1871\\u1872\\u1873\\u1874\\u1875\\u1876\\u1877\\u1880\\u1881\\u1882\\u1883\\u1884\\u1885\\u1886\\u1887\\u1888\\u1889\\u188A\\u188B\\u188C\\u188D\\u188E\\u188F\\u1890\\u1891\\u1892\\u1893\\u1894\\u1895\\u1896\\u1897\\u1898\\u1899\\u189A\\u189B\\u189C\\u189D\\u189E\\u189F\\u18A0\\u18A1\\u18A2\\u18A3\\u18A4\\u18A5\\u18A6\\u18A7\\u18A8\\u18AA\\u1900\\u1901\\u1902\\u1903\\u1904\\u1905\\u1906\\u1907\\u1908\\u1909\\u190A\\u190B\\u190C\\u190D\\u190E\\u190F\\u1910\\u1911\\u1912\\u1913\\u1914\\u1915\\u1916\\u1917\\u1918\\u1919\\u191A\\u191B\\u191C\\u1950\\u1951\\u1952\\u1953\\u1954\\u1955\\u1956\\u1957\\u1958\\u1959\\u195A\\u195B\\u195C\\u195D\\u195E\\u195F\\u1960\\u1961\\u1962\\u1963\\u1964\\u1965\\u1966\\u1967\\u1968\\u1969\\u196A\\u196B\\u196C\\u196D\\u1970\\u1971\\u1972\\u1973\\u1974\\u1980\\u1981\\u1982\\u1983\\u1984\\u1985\\u1986\\u1987\\u1988\\u1989\\u198A\\u198B\\u198C\\u198D\\u198E\\u198F\\u1990\\u1991\\u1992\\u1993\\u1994\\u1995\\u1996\\u1997\\u1998\\u1999\\u199A\\u199B\\u199C\\u199D\\u199E\\u199F\\u19A0\\u19A1\\u19A2\\u19A3\\u19A4\\u19A5\\u19A6\\u19A7\\u19A8\\u19A9\\u19C1\\u19C2\\u19C3\\u19C4\\u19C5\\u19C6\\u19C7\\u1A00\\u1A01\\u1A02\\u1A03\\u1A04\\u1A05\\u1A06\\u1A07\\u1A08\\u1A09\\u1A0A\\u1A0B\\u1A0C\\u1A0D\\u1A0E\\u1A0F\\u1A10\\u1A11\\u1A12\\u1A13\\u1A14\\u1A15\\u1A16\\u1B05\\u1B06\\u1B07\\u1B08\\u1B09\\u1B0A\\u1B0B\\u1B0C\\u1B0D\\u1B0E\\u1B0F\\u1B10\\u1B11\\u1B12\\u1B13\\u1B14\\u1B15\\u1B16\\u1B17\\u1B18\\u1B19\\u1B1A\\u1B1B\\u1B1C\\u1B1D\\u1B1E\\u1B1F\\u1B20\\u1B21\\u1B22\\u1B23\\u1B24\\u1B25\\u1B26\\u1B27\\u1B28\\u1B29\\u1B2A\\u1B2B\\u1B2C\\u1B2D\\u1B2E\\u1B2F\\u1B30\\u1B31\\u1B32\\u1B33\\u1B45\\u1B46\\u1B47\\u1B48\\u1B49\\u1B4A\\u1B4B\\u1B83\\u1B84\\u1B85\\u1B86\\u1B87\\u1B88\\u1B89\\u1B8A\\u1B8B\\u1B8C\\u1B8D\\u1B8E\\u1B8F\\u1B90\\u1B91\\u1B92\\u1B93\\u1B94\\u1B95\\u1B96\\u1B97\\u1B98\\u1B99\\u1B9A\\u1B9B\\u1B9C\\u1B9D\\u1B9E\\u1B9F\\u1BA0\\u1BAE\\u1BAF\\u1C00\\u1C01\\u1C02\\u1C03\\u1C04\\u1C05\\u1C06\\u1C07\\u1C08\\u1C09\\u1C0A\\u1C0B\\u1C0C\\u1C0D\\u1C0E\\u1C0F\\u1C10\\u1C11\\u1C12\\u1C13\\u1C14\\u1C15\\u1C16\\u1C17\\u1C18\\u1C19\\u1C1A\\u1C1B\\u1C1C\\u1C1D\\u1C1E\\u1C1F\\u1C20\\u1C21\\u1C22\\u1C23\\u1C4D\\u1C4E\\u1C4F\\u1C5A\\u1C5B\\u1C5C\\u1C5D\\u1C5E\\u1C5F\\u1C60\\u1C61\\u1C62\\u1C63\\u1C64\\u1C65\\u1C66\\u1C67\\u1C68\\u1C69\\u1C6A\\u1C6B\\u1C6C\\u1C6D\\u1C6E\\u1C6F\\u1C70\\u1C71\\u1C72\\u1C73\\u1C74\\u1C75\\u1C76\\u1C77\\u2135\\u2136\\u2137\\u2138\\u2D30\\u2D31\\u2D32\\u2D33\\u2D34\\u2D35\\u2D36\\u2D37\\u2D38\\u2D39\\u2D3A\\u2D3B\\u2D3C\\u2D3D\\u2D3E\\u2D3F\\u2D40\\u2D41\\u2D42\\u2D43\\u2D44\\u2D45\\u2D46\\u2D47\\u2D48\\u2D49\\u2D4A\\u2D4B\\u2D4C\\u2D4D\\u2D4E\\u2D4F\\u2D50\\u2D51\\u2D52\\u2D53\\u2D54\\u2D55\\u2D56\\u2D57\\u2D58\\u2D59\\u2D5A\\u2D5B\\u2D5C\\u2D5D\\u2D5E\\u2D5F\\u2D60\\u2D61\\u2D62\\u2D63\\u2D64\\u2D65\\u2D80\\u2D81\\u2D82\\u2D83\\u2D84\\u2D85\\u2D86\\u2D87\\u2D88\\u2D89\\u2D8A\\u2D8B\\u2D8C\\u2D8D\\u2D8E\\u2D8F\\u2D90\\u2D91\\u2D92\\u2D93\\u2D94\\u2D95\\u2D96\\u2DA0\\u2DA1\\u2DA2\\u2DA3\\u2DA4\\u2DA5\\u2DA6\\u2DA8\\u2DA9\\u2DAA\\u2DAB\\u2DAC\\u2DAD\\u2DAE\\u2DB0\\u2DB1\\u2DB2\\u2DB3\\u2DB4\\u2DB5\\u2DB6\\u2DB8\\u2DB9\\u2DBA\\u2DBB\\u2DBC\\u2DBD\\u2DBE\\u2DC0\\u2DC1\\u2DC2\\u2DC3\\u2DC4\\u2DC5\\u2DC6\\u2DC8\\u2DC9\\u2DCA\\u2DCB\\u2DCC\\u2DCD\\u2DCE\\u2DD0\\u2DD1\\u2DD2\\u2DD3\\u2DD4\\u2DD5\\u2DD6\\u2DD8\\u2DD9\\u2DDA\\u2DDB\\u2DDC\\u2DDD\\u2DDE\\u3006\\u303C\\u3041\\u3042\\u3043\\u3044\\u3045\\u3046\\u3047\\u3048\\u3049\\u304A\\u304B\\u304C\\u304D\\u304E\\u304F\\u3050\\u3051\\u3052\\u3053\\u3054\\u3055\\u3056\\u3057\\u3058\\u3059\\u305A\\u305B\\u305C\\u305D\\u305E\\u305F\\u3060\\u3061\\u3062\\u3063\\u3064\\u3065\\u3066\\u3067\\u3068\\u3069\\u306A\\u306B\\u306C\\u306D\\u306E\\u306F\\u3070\\u3071\\u3072\\u3073\\u3074\\u3075\\u3076\\u3077\\u3078\\u3079\\u307A\\u307B\\u307C\\u307D\\u307E\\u307F\\u3080\\u3081\\u3082\\u3083\\u3084\\u3085\\u3086\\u3087\\u3088\\u3089\\u308A\\u308B\\u308C\\u308D\\u308E\\u308F\\u3090\\u3091\\u3092\\u3093\\u3094\\u3095\\u3096\\u309F\\u30A1\\u30A2\\u30A3\\u30A4\\u30A5\\u30A6\\u30A7\\u30A8\\u30A9\\u30AA\\u30AB\\u30AC\\u30AD\\u30AE\\u30AF\\u30B0\\u30B1\\u30B2\\u30B3\\u30B4\\u30B5\\u30B6\\u30B7\\u30B8\\u30B9\\u30BA\\u30BB\\u30BC\\u30BD\\u30BE\\u30BF\\u30C0\\u30C1\\u30C2\\u30C3\\u30C4\\u30C5\\u30C6\\u30C7\\u30C8\\u30C9\\u30CA\\u30CB\\u30CC\\u30CD\\u30CE\\u30CF\\u30D0\\u30D1\\u30D2\\u30D3\\u30D4\\u30D5\\u30D6\\u30D7\\u30D8\\u30D9\\u30DA\\u30DB\\u30DC\\u30DD\\u30DE\\u30DF\\u30E0\\u30E1\\u30E2\\u30E3\\u30E4\\u30E5\\u30E6\\u30E7\\u30E8\\u30E9\\u30EA\\u30EB\\u30EC\\u30ED\\u30EE\\u30EF\\u30F0\\u30F1\\u30F2\\u30F3\\u30F4\\u30F5\\u30F6\\u30F7\\u30F8\\u30F9\\u30FA\\u30FF\\u3105\\u3106\\u3107\\u3108\\u3109\\u310A\\u310B\\u310C\\u310D\\u310E\\u310F\\u3110\\u3111\\u3112\\u3113\\u3114\\u3115\\u3116\\u3117\\u3118\\u3119\\u311A\\u311B\\u311C\\u311D\\u311E\\u311F\\u3120\\u3121\\u3122\\u3123\\u3124\\u3125\\u3126\\u3127\\u3128\\u3129\\u312A\\u312B\\u312C\\u312D\\u3131\\u3132\\u3133\\u3134\\u3135\\u3136\\u3137\\u3138\\u3139\\u313A\\u313B\\u313C\\u313D\\u313E\\u313F\\u3140\\u3141\\u3142\\u3143\\u3144\\u3145\\u3146\\u3147\\u3148\\u3149\\u314A\\u314B\\u314C\\u314D\\u314E\\u314F\\u3150\\u3151\\u3152\\u3153\\u3154\\u3155\\u3156\\u3157\\u3158\\u3159\\u315A\\u315B\\u315C\\u315D\\u315E\\u315F\\u3160\\u3161\\u3162\\u3163\\u3164\\u3165\\u3166\\u3167\\u3168\\u3169\\u316A\\u316B\\u316C\\u316D\\u316E\\u316F\\u3170\\u3171\\u3172\\u3173\\u3174\\u3175\\u3176\\u3177\\u3178\\u3179\\u317A\\u317B\\u317C\\u317D\\u317E\\u317F\\u3180\\u3181\\u3182\\u3183\\u3184\\u3185\\u3186\\u3187\\u3188\\u3189\\u318A\\u318B\\u318C\\u318D\\u318E\\u31A0\\u31A1\\u31A2\\u31A3\\u31A4\\u31A5\\u31A6\\u31A7\\u31A8\\u31A9\\u31AA\\u31AB\\u31AC\\u31AD\\u31AE\\u31AF\\u31B0\\u31B1\\u31B2\\u31B3\\u31B4\\u31B5\\u31B6\\u31B7\\u31F0\\u31F1\\u31F2\\u31F3\\u31F4\\u31F5\\u31F6\\u31F7\\u31F8\\u31F9\\u31FA\\u31FB\\u31FC\\u31FD\\u31FE\\u31FF\\u3400\\u4DB5\\u4E00\\u9FC3\\uA000\\uA001\\uA002\\uA003\\uA004\\uA005\\uA006\\uA007\\uA008\\uA009\\uA00A\\uA00B\\uA00C\\uA00D\\uA00E\\uA00F\\uA010\\uA011\\uA012\\uA013\\uA014\\uA016\\uA017\\uA018\\uA019\\uA01A\\uA01B\\uA01C\\uA01D\\uA01E\\uA01F\\uA020\\uA021\\uA022\\uA023\\uA024\\uA025\\uA026\\uA027\\uA028\\uA029\\uA02A\\uA02B\\uA02C\\uA02D\\uA02E\\uA02F\\uA030\\uA031\\uA032\\uA033\\uA034\\uA035\\uA036\\uA037\\uA038\\uA039\\uA03A\\uA03B\\uA03C\\uA03D\\uA03E\\uA03F\\uA040\\uA041\\uA042\\uA043\\uA044\\uA045\\uA046\\uA047\\uA048\\uA049\\uA04A\\uA04B\\uA04C\\uA04D\\uA04E\\uA04F\\uA050\\uA051\\uA052\\uA053\\uA054\\uA055\\uA056\\uA057\\uA058\\uA059\\uA05A\\uA05B\\uA05C\\uA05D\\uA05E\\uA05F\\uA060\\uA061\\uA062\\uA063\\uA064\\uA065\\uA066\\uA067\\uA068\\uA069\\uA06A\\uA06B\\uA06C\\uA06D\\uA06E\\uA06F\\uA070\\uA071\\uA072\\uA073\\uA074\\uA075\\uA076\\uA077\\uA078\\uA079\\uA07A\\uA07B\\uA07C\\uA07D\\uA07E\\uA07F\\uA080\\uA081\\uA082\\uA083\\uA084\\uA085\\uA086\\uA087\\uA088\\uA089\\uA08A\\uA08B\\uA08C\\uA08D\\uA08E\\uA08F\\uA090\\uA091\\uA092\\uA093\\uA094\\uA095\\uA096\\uA097\\uA098\\uA099\\uA09A\\uA09B\\uA09C\\uA09D\\uA09E\\uA09F\\uA0A0\\uA0A1\\uA0A2\\uA0A3\\uA0A4\\uA0A5\\uA0A6\\uA0A7\\uA0A8\\uA0A9\\uA0AA\\uA0AB\\uA0AC\\uA0AD\\uA0AE\\uA0AF\\uA0B0\\uA0B1\\uA0B2\\uA0B3\\uA0B4\\uA0B5\\uA0B6\\uA0B7\\uA0B8\\uA0B9\\uA0BA\\uA0BB\\uA0BC\\uA0BD\\uA0BE\\uA0BF\\uA0C0\\uA0C1\\uA0C2\\uA0C3\\uA0C4\\uA0C5\\uA0C6\\uA0C7\\uA0C8\\uA0C9\\uA0CA\\uA0CB\\uA0CC\\uA0CD\\uA0CE\\uA0CF\\uA0D0\\uA0D1\\uA0D2\\uA0D3\\uA0D4\\uA0D5\\uA0D6\\uA0D7\\uA0D8\\uA0D9\\uA0DA\\uA0DB\\uA0DC\\uA0DD\\uA0DE\\uA0DF\\uA0E0\\uA0E1\\uA0E2\\uA0E3\\uA0E4\\uA0E5\\uA0E6\\uA0E7\\uA0E8\\uA0E9\\uA0EA\\uA0EB\\uA0EC\\uA0ED\\uA0EE\\uA0EF\\uA0F0\\uA0F1\\uA0F2\\uA0F3\\uA0F4\\uA0F5\\uA0F6\\uA0F7\\uA0F8\\uA0F9\\uA0FA\\uA0FB\\uA0FC\\uA0FD\\uA0FE\\uA0FF\\uA100\\uA101\\uA102\\uA103\\uA104\\uA105\\uA106\\uA107\\uA108\\uA109\\uA10A\\uA10B\\uA10C\\uA10D\\uA10E\\uA10F\\uA110\\uA111\\uA112\\uA113\\uA114\\uA115\\uA116\\uA117\\uA118\\uA119\\uA11A\\uA11B\\uA11C\\uA11D\\uA11E\\uA11F\\uA120\\uA121\\uA122\\uA123\\uA124\\uA125\\uA126\\uA127\\uA128\\uA129\\uA12A\\uA12B\\uA12C\\uA12D\\uA12E\\uA12F\\uA130\\uA131\\uA132\\uA133\\uA134\\uA135\\uA136\\uA137\\uA138\\uA139\\uA13A\\uA13B\\uA13C\\uA13D\\uA13E\\uA13F\\uA140\\uA141\\uA142\\uA143\\uA144\\uA145\\uA146\\uA147\\uA148\\uA149\\uA14A\\uA14B\\uA14C\\uA14D\\uA14E\\uA14F\\uA150\\uA151\\uA152\\uA153\\uA154\\uA155\\uA156\\uA157\\uA158\\uA159\\uA15A\\uA15B\\uA15C\\uA15D\\uA15E\\uA15F\\uA160\\uA161\\uA162\\uA163\\uA164\\uA165\\uA166\\uA167\\uA168\\uA169\\uA16A\\uA16B\\uA16C\\uA16D\\uA16E\\uA16F\\uA170\\uA171\\uA172\\uA173\\uA174\\uA175\\uA176\\uA177\\uA178\\uA179\\uA17A\\uA17B\\uA17C\\uA17D\\uA17E\\uA17F\\uA180\\uA181\\uA182\\uA183\\uA184\\uA185\\uA186\\uA187\\uA188\\uA189\\uA18A\\uA18B\\uA18C\\uA18D\\uA18E\\uA18F\\uA190\\uA191\\uA192\\uA193\\uA194\\uA195\\uA196\\uA197\\uA198\\uA199\\uA19A\\uA19B\\uA19C\\uA19D\\uA19E\\uA19F\\uA1A0\\uA1A1\\uA1A2\\uA1A3\\uA1A4\\uA1A5\\uA1A6\\uA1A7\\uA1A8\\uA1A9\\uA1AA\\uA1AB\\uA1AC\\uA1AD\\uA1AE\\uA1AF\\uA1B0\\uA1B1\\uA1B2\\uA1B3\\uA1B4\\uA1B5\\uA1B6\\uA1B7\\uA1B8\\uA1B9\\uA1BA\\uA1BB\\uA1BC\\uA1BD\\uA1BE\\uA1BF\\uA1C0\\uA1C1\\uA1C2\\uA1C3\\uA1C4\\uA1C5\\uA1C6\\uA1C7\\uA1C8\\uA1C9\\uA1CA\\uA1CB\\uA1CC\\uA1CD\\uA1CE\\uA1CF\\uA1D0\\uA1D1\\uA1D2\\uA1D3\\uA1D4\\uA1D5\\uA1D6\\uA1D7\\uA1D8\\uA1D9\\uA1DA\\uA1DB\\uA1DC\\uA1DD\\uA1DE\\uA1DF\\uA1E0\\uA1E1\\uA1E2\\uA1E3\\uA1E4\\uA1E5\\uA1E6\\uA1E7\\uA1E8\\uA1E9\\uA1EA\\uA1EB\\uA1EC\\uA1ED\\uA1EE\\uA1EF\\uA1F0\\uA1F1\\uA1F2\\uA1F3\\uA1F4\\uA1F5\\uA1F6\\uA1F7\\uA1F8\\uA1F9\\uA1FA\\uA1FB\\uA1FC\\uA1FD\\uA1FE\\uA1FF\\uA200\\uA201\\uA202\\uA203\\uA204\\uA205\\uA206\\uA207\\uA208\\uA209\\uA20A\\uA20B\\uA20C\\uA20D\\uA20E\\uA20F\\uA210\\uA211\\uA212\\uA213\\uA214\\uA215\\uA216\\uA217\\uA218\\uA219\\uA21A\\uA21B\\uA21C\\uA21D\\uA21E\\uA21F\\uA220\\uA221\\uA222\\uA223\\uA224\\uA225\\uA226\\uA227\\uA228\\uA229\\uA22A\\uA22B\\uA22C\\uA22D\\uA22E\\uA22F\\uA230\\uA231\\uA232\\uA233\\uA234\\uA235\\uA236\\uA237\\uA238\\uA239\\uA23A\\uA23B\\uA23C\\uA23D\\uA23E\\uA23F\\uA240\\uA241\\uA242\\uA243\\uA244\\uA245\\uA246\\uA247\\uA248\\uA249\\uA24A\\uA24B\\uA24C\\uA24D\\uA24E\\uA24F\\uA250\\uA251\\uA252\\uA253\\uA254\\uA255\\uA256\\uA257\\uA258\\uA259\\uA25A\\uA25B\\uA25C\\uA25D\\uA25E\\uA25F\\uA260\\uA261\\uA262\\uA263\\uA264\\uA265\\uA266\\uA267\\uA268\\uA269\\uA26A\\uA26B\\uA26C\\uA26D\\uA26E\\uA26F\\uA270\\uA271\\uA272\\uA273\\uA274\\uA275\\uA276\\uA277\\uA278\\uA279\\uA27A\\uA27B\\uA27C\\uA27D\\uA27E\\uA27F\\uA280\\uA281\\uA282\\uA283\\uA284\\uA285\\uA286\\uA287\\uA288\\uA289\\uA28A\\uA28B\\uA28C\\uA28D\\uA28E\\uA28F\\uA290\\uA291\\uA292\\uA293\\uA294\\uA295\\uA296\\uA297\\uA298\\uA299\\uA29A\\uA29B\\uA29C\\uA29D\\uA29E\\uA29F\\uA2A0\\uA2A1\\uA2A2\\uA2A3\\uA2A4\\uA2A5\\uA2A6\\uA2A7\\uA2A8\\uA2A9\\uA2AA\\uA2AB\\uA2AC\\uA2AD\\uA2AE\\uA2AF\\uA2B0\\uA2B1\\uA2B2\\uA2B3\\uA2B4\\uA2B5\\uA2B6\\uA2B7\\uA2B8\\uA2B9\\uA2BA\\uA2BB\\uA2BC\\uA2BD\\uA2BE\\uA2BF\\uA2C0\\uA2C1\\uA2C2\\uA2C3\\uA2C4\\uA2C5\\uA2C6\\uA2C7\\uA2C8\\uA2C9\\uA2CA\\uA2CB\\uA2CC\\uA2CD\\uA2CE\\uA2CF\\uA2D0\\uA2D1\\uA2D2\\uA2D3\\uA2D4\\uA2D5\\uA2D6\\uA2D7\\uA2D8\\uA2D9\\uA2DA\\uA2DB\\uA2DC\\uA2DD\\uA2DE\\uA2DF\\uA2E0\\uA2E1\\uA2E2\\uA2E3\\uA2E4\\uA2E5\\uA2E6\\uA2E7\\uA2E8\\uA2E9\\uA2EA\\uA2EB\\uA2EC\\uA2ED\\uA2EE\\uA2EF\\uA2F0\\uA2F1\\uA2F2\\uA2F3\\uA2F4\\uA2F5\\uA2F6\\uA2F7\\uA2F8\\uA2F9\\uA2FA\\uA2FB\\uA2FC\\uA2FD\\uA2FE\\uA2FF\\uA300\\uA301\\uA302\\uA303\\uA304\\uA305\\uA306\\uA307\\uA308\\uA309\\uA30A\\uA30B\\uA30C\\uA30D\\uA30E\\uA30F\\uA310\\uA311\\uA312\\uA313\\uA314\\uA315\\uA316\\uA317\\uA318\\uA319\\uA31A\\uA31B\\uA31C\\uA31D\\uA31E\\uA31F\\uA320\\uA321\\uA322\\uA323\\uA324\\uA325\\uA326\\uA327\\uA328\\uA329\\uA32A\\uA32B\\uA32C\\uA32D\\uA32E\\uA32F\\uA330\\uA331\\uA332\\uA333\\uA334\\uA335\\uA336\\uA337\\uA338\\uA339\\uA33A\\uA33B\\uA33C\\uA33D\\uA33E\\uA33F\\uA340\\uA341\\uA342\\uA343\\uA344\\uA345\\uA346\\uA347\\uA348\\uA349\\uA34A\\uA34B\\uA34C\\uA34D\\uA34E\\uA34F\\uA350\\uA351\\uA352\\uA353\\uA354\\uA355\\uA356\\uA357\\uA358\\uA359\\uA35A\\uA35B\\uA35C\\uA35D\\uA35E\\uA35F\\uA360\\uA361\\uA362\\uA363\\uA364\\uA365\\uA366\\uA367\\uA368\\uA369\\uA36A\\uA36B\\uA36C\\uA36D\\uA36E\\uA36F\\uA370\\uA371\\uA372\\uA373\\uA374\\uA375\\uA376\\uA377\\uA378\\uA379\\uA37A\\uA37B\\uA37C\\uA37D\\uA37E\\uA37F\\uA380\\uA381\\uA382\\uA383\\uA384\\uA385\\uA386\\uA387\\uA388\\uA389\\uA38A\\uA38B\\uA38C\\uA38D\\uA38E\\uA38F\\uA390\\uA391\\uA392\\uA393\\uA394\\uA395\\uA396\\uA397\\uA398\\uA399\\uA39A\\uA39B\\uA39C\\uA39D\\uA39E\\uA39F\\uA3A0\\uA3A1\\uA3A2\\uA3A3\\uA3A4\\uA3A5\\uA3A6\\uA3A7\\uA3A8\\uA3A9\\uA3AA\\uA3AB\\uA3AC\\uA3AD\\uA3AE\\uA3AF\\uA3B0\\uA3B1\\uA3B2\\uA3B3\\uA3B4\\uA3B5\\uA3B6\\uA3B7\\uA3B8\\uA3B9\\uA3BA\\uA3BB\\uA3BC\\uA3BD\\uA3BE\\uA3BF\\uA3C0\\uA3C1\\uA3C2\\uA3C3\\uA3C4\\uA3C5\\uA3C6\\uA3C7\\uA3C8\\uA3C9\\uA3CA\\uA3CB\\uA3CC\\uA3CD\\uA3CE\\uA3CF\\uA3D0\\uA3D1\\uA3D2\\uA3D3\\uA3D4\\uA3D5\\uA3D6\\uA3D7\\uA3D8\\uA3D9\\uA3DA\\uA3DB\\uA3DC\\uA3DD\\uA3DE\\uA3DF\\uA3E0\\uA3E1\\uA3E2\\uA3E3\\uA3E4\\uA3E5\\uA3E6\\uA3E7\\uA3E8\\uA3E9\\uA3EA\\uA3EB\\uA3EC\\uA3ED\\uA3EE\\uA3EF\\uA3F0\\uA3F1\\uA3F2\\uA3F3\\uA3F4\\uA3F5\\uA3F6\\uA3F7\\uA3F8\\uA3F9\\uA3FA\\uA3FB\\uA3FC\\uA3FD\\uA3FE\\uA3FF\\uA400\\uA401\\uA402\\uA403\\uA404\\uA405\\uA406\\uA407\\uA408\\uA409\\uA40A\\uA40B\\uA40C\\uA40D\\uA40E\\uA40F\\uA410\\uA411\\uA412\\uA413\\uA414\\uA415\\uA416\\uA417\\uA418\\uA419\\uA41A\\uA41B\\uA41C\\uA41D\\uA41E\\uA41F\\uA420\\uA421\\uA422\\uA423\\uA424\\uA425\\uA426\\uA427\\uA428\\uA429\\uA42A\\uA42B\\uA42C\\uA42D\\uA42E\\uA42F\\uA430\\uA431\\uA432\\uA433\\uA434\\uA435\\uA436\\uA437\\uA438\\uA439\\uA43A\\uA43B\\uA43C\\uA43D\\uA43E\\uA43F\\uA440\\uA441\\uA442\\uA443\\uA444\\uA445\\uA446\\uA447\\uA448\\uA449\\uA44A\\uA44B\\uA44C\\uA44D\\uA44E\\uA44F\\uA450\\uA451\\uA452\\uA453\\uA454\\uA455\\uA456\\uA457\\uA458\\uA459\\uA45A\\uA45B\\uA45C\\uA45D\\uA45E\\uA45F\\uA460\\uA461\\uA462\\uA463\\uA464\\uA465\\uA466\\uA467\\uA468\\uA469\\uA46A\\uA46B\\uA46C\\uA46D\\uA46E\\uA46F\\uA470\\uA471\\uA472\\uA473\\uA474\\uA475\\uA476\\uA477\\uA478\\uA479\\uA47A\\uA47B\\uA47C\\uA47D\\uA47E\\uA47F\\uA480\\uA481\\uA482\\uA483\\uA484\\uA485\\uA486\\uA487\\uA488\\uA489\\uA48A\\uA48B\\uA48C\\uA500\\uA501\\uA502\\uA503\\uA504\\uA505\\uA506\\uA507\\uA508\\uA509\\uA50A\\uA50B\\uA50C\\uA50D\\uA50E\\uA50F\\uA510\\uA511\\uA512\\uA513\\uA514\\uA515\\uA516\\uA517\\uA518\\uA519\\uA51A\\uA51B\\uA51C\\uA51D\\uA51E\\uA51F\\uA520\\uA521\\uA522\\uA523\\uA524\\uA525\\uA526\\uA527\\uA528\\uA529\\uA52A\\uA52B\\uA52C\\uA52D\\uA52E\\uA52F\\uA530\\uA531\\uA532\\uA533\\uA534\\uA535\\uA536\\uA537\\uA538\\uA539\\uA53A\\uA53B\\uA53C\\uA53D\\uA53E\\uA53F\\uA540\\uA541\\uA542\\uA543\\uA544\\uA545\\uA546\\uA547\\uA548\\uA549\\uA54A\\uA54B\\uA54C\\uA54D\\uA54E\\uA54F\\uA550\\uA551\\uA552\\uA553\\uA554\\uA555\\uA556\\uA557\\uA558\\uA559\\uA55A\\uA55B\\uA55C\\uA55D\\uA55E\\uA55F\\uA560\\uA561\\uA562\\uA563\\uA564\\uA565\\uA566\\uA567\\uA568\\uA569\\uA56A\\uA56B\\uA56C\\uA56D\\uA56E\\uA56F\\uA570\\uA571\\uA572\\uA573\\uA574\\uA575\\uA576\\uA577\\uA578\\uA579\\uA57A\\uA57B\\uA57C\\uA57D\\uA57E\\uA57F\\uA580\\uA581\\uA582\\uA583\\uA584\\uA585\\uA586\\uA587\\uA588\\uA589\\uA58A\\uA58B\\uA58C\\uA58D\\uA58E\\uA58F\\uA590\\uA591\\uA592\\uA593\\uA594\\uA595\\uA596\\uA597\\uA598\\uA599\\uA59A\\uA59B\\uA59C\\uA59D\\uA59E\\uA59F\\uA5A0\\uA5A1\\uA5A2\\uA5A3\\uA5A4\\uA5A5\\uA5A6\\uA5A7\\uA5A8\\uA5A9\\uA5AA\\uA5AB\\uA5AC\\uA5AD\\uA5AE\\uA5AF\\uA5B0\\uA5B1\\uA5B2\\uA5B3\\uA5B4\\uA5B5\\uA5B6\\uA5B7\\uA5B8\\uA5B9\\uA5BA\\uA5BB\\uA5BC\\uA5BD\\uA5BE\\uA5BF\\uA5C0\\uA5C1\\uA5C2\\uA5C3\\uA5C4\\uA5C5\\uA5C6\\uA5C7\\uA5C8\\uA5C9\\uA5CA\\uA5CB\\uA5CC\\uA5CD\\uA5CE\\uA5CF\\uA5D0\\uA5D1\\uA5D2\\uA5D3\\uA5D4\\uA5D5\\uA5D6\\uA5D7\\uA5D8\\uA5D9\\uA5DA\\uA5DB\\uA5DC\\uA5DD\\uA5DE\\uA5DF\\uA5E0\\uA5E1\\uA5E2\\uA5E3\\uA5E4\\uA5E5\\uA5E6\\uA5E7\\uA5E8\\uA5E9\\uA5EA\\uA5EB\\uA5EC\\uA5ED\\uA5EE\\uA5EF\\uA5F0\\uA5F1\\uA5F2\\uA5F3\\uA5F4\\uA5F5\\uA5F6\\uA5F7\\uA5F8\\uA5F9\\uA5FA\\uA5FB\\uA5FC\\uA5FD\\uA5FE\\uA5FF\\uA600\\uA601\\uA602\\uA603\\uA604\\uA605\\uA606\\uA607\\uA608\\uA609\\uA60A\\uA60B\\uA610\\uA611\\uA612\\uA613\\uA614\\uA615\\uA616\\uA617\\uA618\\uA619\\uA61A\\uA61B\\uA61C\\uA61D\\uA61E\\uA61F\\uA62A\\uA62B\\uA66E\\uA7FB\\uA7FC\\uA7FD\\uA7FE\\uA7FF\\uA800\\uA801\\uA803\\uA804\\uA805\\uA807\\uA808\\uA809\\uA80A\\uA80C\\uA80D\\uA80E\\uA80F\\uA810\\uA811\\uA812\\uA813\\uA814\\uA815\\uA816\\uA817\\uA818\\uA819\\uA81A\\uA81B\\uA81C\\uA81D\\uA81E\\uA81F\\uA820\\uA821\\uA822\\uA840\\uA841\\uA842\\uA843\\uA844\\uA845\\uA846\\uA847\\uA848\\uA849\\uA84A\\uA84B\\uA84C\\uA84D\\uA84E\\uA84F\\uA850\\uA851\\uA852\\uA853\\uA854\\uA855\\uA856\\uA857\\uA858\\uA859\\uA85A\\uA85B\\uA85C\\uA85D\\uA85E\\uA85F\\uA860\\uA861\\uA862\\uA863\\uA864\\uA865\\uA866\\uA867\\uA868\\uA869\\uA86A\\uA86B\\uA86C\\uA86D\\uA86E\\uA86F\\uA870\\uA871\\uA872\\uA873\\uA882\\uA883\\uA884\\uA885\\uA886\\uA887\\uA888\\uA889\\uA88A\\uA88B\\uA88C\\uA88D\\uA88E\\uA88F\\uA890\\uA891\\uA892\\uA893\\uA894\\uA895\\uA896\\uA897\\uA898\\uA899\\uA89A\\uA89B\\uA89C\\uA89D\\uA89E\\uA89F\\uA8A0\\uA8A1\\uA8A2\\uA8A3\\uA8A4\\uA8A5\\uA8A6\\uA8A7\\uA8A8\\uA8A9\\uA8AA\\uA8AB\\uA8AC\\uA8AD\\uA8AE\\uA8AF\\uA8B0\\uA8B1\\uA8B2\\uA8B3\\uA90A\\uA90B\\uA90C\\uA90D\\uA90E\\uA90F\\uA910\\uA911\\uA912\\uA913\\uA914\\uA915\\uA916\\uA917\\uA918\\uA919\\uA91A\\uA91B\\uA91C\\uA91D\\uA91E\\uA91F\\uA920\\uA921\\uA922\\uA923\\uA924\\uA925\\uA930\\uA931\\uA932\\uA933\\uA934\\uA935\\uA936\\uA937\\uA938\\uA939\\uA93A\\uA93B\\uA93C\\uA93D\\uA93E\\uA93F\\uA940\\uA941\\uA942\\uA943\\uA944\\uA945\\uA946\\uAA00\\uAA01\\uAA02\\uAA03\\uAA04\\uAA05\\uAA06\\uAA07\\uAA08\\uAA09\\uAA0A\\uAA0B\\uAA0C\\uAA0D\\uAA0E\\uAA0F\\uAA10\\uAA11\\uAA12\\uAA13\\uAA14\\uAA15\\uAA16\\uAA17\\uAA18\\uAA19\\uAA1A\\uAA1B\\uAA1C\\uAA1D\\uAA1E\\uAA1F\\uAA20\\uAA21\\uAA22\\uAA23\\uAA24\\uAA25\\uAA26\\uAA27\\uAA28\\uAA40\\uAA41\\uAA42\\uAA44\\uAA45\\uAA46\\uAA47\\uAA48\\uAA49\\uAA4A\\uAA4B\\uAC00\\uD7A3\\uF900\\uF901\\uF902\\uF903\\uF904\\uF905\\uF906\\uF907\\uF908\\uF909\\uF90A\\uF90B\\uF90C\\uF90D\\uF90E\\uF90F\\uF910\\uF911\\uF912\\uF913\\uF914\\uF915\\uF916\\uF917\\uF918\\uF919\\uF91A\\uF91B\\uF91C\\uF91D\\uF91E\\uF91F\\uF920\\uF921\\uF922\\uF923\\uF924\\uF925\\uF926\\uF927\\uF928\\uF929\\uF92A\\uF92B\\uF92C\\uF92D\\uF92E\\uF92F\\uF930\\uF931\\uF932\\uF933\\uF934\\uF935\\uF936\\uF937\\uF938\\uF939\\uF93A\\uF93B\\uF93C\\uF93D\\uF93E\\uF93F\\uF940\\uF941\\uF942\\uF943\\uF944\\uF945\\uF946\\uF947\\uF948\\uF949\\uF94A\\uF94B\\uF94C\\uF94D\\uF94E\\uF94F\\uF950\\uF951\\uF952\\uF953\\uF954\\uF955\\uF956\\uF957\\uF958\\uF959\\uF95A\\uF95B\\uF95C\\uF95D\\uF95E\\uF95F\\uF960\\uF961\\uF962\\uF963\\uF964\\uF965\\uF966\\uF967\\uF968\\uF969\\uF96A\\uF96B\\uF96C\\uF96D\\uF96E\\uF96F\\uF970\\uF971\\uF972\\uF973\\uF974\\uF975\\uF976\\uF977\\uF978\\uF979\\uF97A\\uF97B\\uF97C\\uF97D\\uF97E\\uF97F\\uF980\\uF981\\uF982\\uF983\\uF984\\uF985\\uF986\\uF987\\uF988\\uF989\\uF98A\\uF98B\\uF98C\\uF98D\\uF98E\\uF98F\\uF990\\uF991\\uF992\\uF993\\uF994\\uF995\\uF996\\uF997\\uF998\\uF999\\uF99A\\uF99B\\uF99C\\uF99D\\uF99E\\uF99F\\uF9A0\\uF9A1\\uF9A2\\uF9A3\\uF9A4\\uF9A5\\uF9A6\\uF9A7\\uF9A8\\uF9A9\\uF9AA\\uF9AB\\uF9AC\\uF9AD\\uF9AE\\uF9AF\\uF9B0\\uF9B1\\uF9B2\\uF9B3\\uF9B4\\uF9B5\\uF9B6\\uF9B7\\uF9B8\\uF9B9\\uF9BA\\uF9BB\\uF9BC\\uF9BD\\uF9BE\\uF9BF\\uF9C0\\uF9C1\\uF9C2\\uF9C3\\uF9C4\\uF9C5\\uF9C6\\uF9C7\\uF9C8\\uF9C9\\uF9CA\\uF9CB\\uF9CC\\uF9CD\\uF9CE\\uF9CF\\uF9D0\\uF9D1\\uF9D2\\uF9D3\\uF9D4\\uF9D5\\uF9D6\\uF9D7\\uF9D8\\uF9D9\\uF9DA\\uF9DB\\uF9DC\\uF9DD\\uF9DE\\uF9DF\\uF9E0\\uF9E1\\uF9E2\\uF9E3\\uF9E4\\uF9E5\\uF9E6\\uF9E7\\uF9E8\\uF9E9\\uF9EA\\uF9EB\\uF9EC\\uF9ED\\uF9EE\\uF9EF\\uF9F0\\uF9F1\\uF9F2\\uF9F3\\uF9F4\\uF9F5\\uF9F6\\uF9F7\\uF9F8\\uF9F9\\uF9FA\\uF9FB\\uF9FC\\uF9FD\\uF9FE\\uF9FF\\uFA00\\uFA01\\uFA02\\uFA03\\uFA04\\uFA05\\uFA06\\uFA07\\uFA08\\uFA09\\uFA0A\\uFA0B\\uFA0C\\uFA0D\\uFA0E\\uFA0F\\uFA10\\uFA11\\uFA12\\uFA13\\uFA14\\uFA15\\uFA16\\uFA17\\uFA18\\uFA19\\uFA1A\\uFA1B\\uFA1C\\uFA1D\\uFA1E\\uFA1F\\uFA20\\uFA21\\uFA22\\uFA23\\uFA24\\uFA25\\uFA26\\uFA27\\uFA28\\uFA29\\uFA2A\\uFA2B\\uFA2C\\uFA2D\\uFA30\\uFA31\\uFA32\\uFA33\\uFA34\\uFA35\\uFA36\\uFA37\\uFA38\\uFA39\\uFA3A\\uFA3B\\uFA3C\\uFA3D\\uFA3E\\uFA3F\\uFA40\\uFA41\\uFA42\\uFA43\\uFA44\\uFA45\\uFA46\\uFA47\\uFA48\\uFA49\\uFA4A\\uFA4B\\uFA4C\\uFA4D\\uFA4E\\uFA4F\\uFA50\\uFA51\\uFA52\\uFA53\\uFA54\\uFA55\\uFA56\\uFA57\\uFA58\\uFA59\\uFA5A\\uFA5B\\uFA5C\\uFA5D\\uFA5E\\uFA5F\\uFA60\\uFA61\\uFA62\\uFA63\\uFA64\\uFA65\\uFA66\\uFA67\\uFA68\\uFA69\\uFA6A\\uFA70\\uFA71\\uFA72\\uFA73\\uFA74\\uFA75\\uFA76\\uFA77\\uFA78\\uFA79\\uFA7A\\uFA7B\\uFA7C\\uFA7D\\uFA7E\\uFA7F\\uFA80\\uFA81\\uFA82\\uFA83\\uFA84\\uFA85\\uFA86\\uFA87\\uFA88\\uFA89\\uFA8A\\uFA8B\\uFA8C\\uFA8D\\uFA8E\\uFA8F\\uFA90\\uFA91\\uFA92\\uFA93\\uFA94\\uFA95\\uFA96\\uFA97\\uFA98\\uFA99\\uFA9A\\uFA9B\\uFA9C\\uFA9D\\uFA9E\\uFA9F\\uFAA0\\uFAA1\\uFAA2\\uFAA3\\uFAA4\\uFAA5\\uFAA6\\uFAA7\\uFAA8\\uFAA9\\uFAAA\\uFAAB\\uFAAC\\uFAAD\\uFAAE\\uFAAF\\uFAB0\\uFAB1\\uFAB2\\uFAB3\\uFAB4\\uFAB5\\uFAB6\\uFAB7\\uFAB8\\uFAB9\\uFABA\\uFABB\\uFABC\\uFABD\\uFABE\\uFABF\\uFAC0\\uFAC1\\uFAC2\\uFAC3\\uFAC4\\uFAC5\\uFAC6\\uFAC7\\uFAC8\\uFAC9\\uFACA\\uFACB\\uFACC\\uFACD\\uFACE\\uFACF\\uFAD0\\uFAD1\\uFAD2\\uFAD3\\uFAD4\\uFAD5\\uFAD6\\uFAD7\\uFAD8\\uFAD9\\uFB1D\\uFB1F\\uFB20\\uFB21\\uFB22\\uFB23\\uFB24\\uFB25\\uFB26\\uFB27\\uFB28\\uFB2A\\uFB2B\\uFB2C\\uFB2D\\uFB2E\\uFB2F\\uFB30\\uFB31\\uFB32\\uFB33\\uFB34\\uFB35\\uFB36\\uFB38\\uFB39\\uFB3A\\uFB3B\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46\\uFB47\\uFB48\\uFB49\\uFB4A\\uFB4B\\uFB4C\\uFB4D\\uFB4E\\uFB4F\\uFB50\\uFB51\\uFB52\\uFB53\\uFB54\\uFB55\\uFB56\\uFB57\\uFB58\\uFB59\\uFB5A\\uFB5B\\uFB5C\\uFB5D\\uFB5E\\uFB5F\\uFB60\\uFB61\\uFB62\\uFB63\\uFB64\\uFB65\\uFB66\\uFB67\\uFB68\\uFB69\\uFB6A\\uFB6B\\uFB6C\\uFB6D\\uFB6E\\uFB6F\\uFB70\\uFB71\\uFB72\\uFB73\\uFB74\\uFB75\\uFB76\\uFB77\\uFB78\\uFB79\\uFB7A\\uFB7B\\uFB7C\\uFB7D\\uFB7E\\uFB7F\\uFB80\\uFB81\\uFB82\\uFB83\\uFB84\\uFB85\\uFB86\\uFB87\\uFB88\\uFB89\\uFB8A\\uFB8B\\uFB8C\\uFB8D\\uFB8E\\uFB8F\\uFB90\\uFB91\\uFB92\\uFB93\\uFB94\\uFB95\\uFB96\\uFB97\\uFB98\\uFB99\\uFB9A\\uFB9B\\uFB9C\\uFB9D\\uFB9E\\uFB9F\\uFBA0\\uFBA1\\uFBA2\\uFBA3\\uFBA4\\uFBA5\\uFBA6\\uFBA7\\uFBA8\\uFBA9\\uFBAA\\uFBAB\\uFBAC\\uFBAD\\uFBAE\\uFBAF\\uFBB0\\uFBB1\\uFBD3\\uFBD4\\uFBD5\\uFBD6\\uFBD7\\uFBD8\\uFBD9\\uFBDA\\uFBDB\\uFBDC\\uFBDD\\uFBDE\\uFBDF\\uFBE0\\uFBE1\\uFBE2\\uFBE3\\uFBE4\\uFBE5\\uFBE6\\uFBE7\\uFBE8\\uFBE9\\uFBEA\\uFBEB\\uFBEC\\uFBED\\uFBEE\\uFBEF\\uFBF0\\uFBF1\\uFBF2\\uFBF3\\uFBF4\\uFBF5\\uFBF6\\uFBF7\\uFBF8\\uFBF9\\uFBFA\\uFBFB\\uFBFC\\uFBFD\\uFBFE\\uFBFF\\uFC00\\uFC01\\uFC02\\uFC03\\uFC04\\uFC05\\uFC06\\uFC07\\uFC08\\uFC09\\uFC0A\\uFC0B\\uFC0C\\uFC0D\\uFC0E\\uFC0F\\uFC10\\uFC11\\uFC12\\uFC13\\uFC14\\uFC15\\uFC16\\uFC17\\uFC18\\uFC19\\uFC1A\\uFC1B\\uFC1C\\uFC1D\\uFC1E\\uFC1F\\uFC20\\uFC21\\uFC22\\uFC23\\uFC24\\uFC25\\uFC26\\uFC27\\uFC28\\uFC29\\uFC2A\\uFC2B\\uFC2C\\uFC2D\\uFC2E\\uFC2F\\uFC30\\uFC31\\uFC32\\uFC33\\uFC34\\uFC35\\uFC36\\uFC37\\uFC38\\uFC39\\uFC3A\\uFC3B\\uFC3C\\uFC3D\\uFC3E\\uFC3F\\uFC40\\uFC41\\uFC42\\uFC43\\uFC44\\uFC45\\uFC46\\uFC47\\uFC48\\uFC49\\uFC4A\\uFC4B\\uFC4C\\uFC4D\\uFC4E\\uFC4F\\uFC50\\uFC51\\uFC52\\uFC53\\uFC54\\uFC55\\uFC56\\uFC57\\uFC58\\uFC59\\uFC5A\\uFC5B\\uFC5C\\uFC5D\\uFC5E\\uFC5F\\uFC60\\uFC61\\uFC62\\uFC63\\uFC64\\uFC65\\uFC66\\uFC67\\uFC68\\uFC69\\uFC6A\\uFC6B\\uFC6C\\uFC6D\\uFC6E\\uFC6F\\uFC70\\uFC71\\uFC72\\uFC73\\uFC74\\uFC75\\uFC76\\uFC77\\uFC78\\uFC79\\uFC7A\\uFC7B\\uFC7C\\uFC7D\\uFC7E\\uFC7F\\uFC80\\uFC81\\uFC82\\uFC83\\uFC84\\uFC85\\uFC86\\uFC87\\uFC88\\uFC89\\uFC8A\\uFC8B\\uFC8C\\uFC8D\\uFC8E\\uFC8F\\uFC90\\uFC91\\uFC92\\uFC93\\uFC94\\uFC95\\uFC96\\uFC97\\uFC98\\uFC99\\uFC9A\\uFC9B\\uFC9C\\uFC9D\\uFC9E\\uFC9F\\uFCA0\\uFCA1\\uFCA2\\uFCA3\\uFCA4\\uFCA5\\uFCA6\\uFCA7\\uFCA8\\uFCA9\\uFCAA\\uFCAB\\uFCAC\\uFCAD\\uFCAE\\uFCAF\\uFCB0\\uFCB1\\uFCB2\\uFCB3\\uFCB4\\uFCB5\\uFCB6\\uFCB7\\uFCB8\\uFCB9\\uFCBA\\uFCBB\\uFCBC\\uFCBD\\uFCBE\\uFCBF\\uFCC0\\uFCC1\\uFCC2\\uFCC3\\uFCC4\\uFCC5\\uFCC6\\uFCC7\\uFCC8\\uFCC9\\uFCCA\\uFCCB\\uFCCC\\uFCCD\\uFCCE\\uFCCF\\uFCD0\\uFCD1\\uFCD2\\uFCD3\\uFCD4\\uFCD5\\uFCD6\\uFCD7\\uFCD8\\uFCD9\\uFCDA\\uFCDB\\uFCDC\\uFCDD\\uFCDE\\uFCDF\\uFCE0\\uFCE1\\uFCE2\\uFCE3\\uFCE4\\uFCE5\\uFCE6\\uFCE7\\uFCE8\\uFCE9\\uFCEA\\uFCEB\\uFCEC\\uFCED\\uFCEE\\uFCEF\\uFCF0\\uFCF1\\uFCF2\\uFCF3\\uFCF4\\uFCF5\\uFCF6\\uFCF7\\uFCF8\\uFCF9\\uFCFA\\uFCFB\\uFCFC\\uFCFD\\uFCFE\\uFCFF\\uFD00\\uFD01\\uFD02\\uFD03\\uFD04\\uFD05\\uFD06\\uFD07\\uFD08\\uFD09\\uFD0A\\uFD0B\\uFD0C\\uFD0D\\uFD0E\\uFD0F\\uFD10\\uFD11\\uFD12\\uFD13\\uFD14\\uFD15\\uFD16\\uFD17\\uFD18\\uFD19\\uFD1A\\uFD1B\\uFD1C\\uFD1D\\uFD1E\\uFD1F\\uFD20\\uFD21\\uFD22\\uFD23\\uFD24\\uFD25\\uFD26\\uFD27\\uFD28\\uFD29\\uFD2A\\uFD2B\\uFD2C\\uFD2D\\uFD2E\\uFD2F\\uFD30\\uFD31\\uFD32\\uFD33\\uFD34\\uFD35\\uFD36\\uFD37\\uFD38\\uFD39\\uFD3A\\uFD3B\\uFD3C\\uFD3D\\uFD50\\uFD51\\uFD52\\uFD53\\uFD54\\uFD55\\uFD56\\uFD57\\uFD58\\uFD59\\uFD5A\\uFD5B\\uFD5C\\uFD5D\\uFD5E\\uFD5F\\uFD60\\uFD61\\uFD62\\uFD63\\uFD64\\uFD65\\uFD66\\uFD67\\uFD68\\uFD69\\uFD6A\\uFD6B\\uFD6C\\uFD6D\\uFD6E\\uFD6F\\uFD70\\uFD71\\uFD72\\uFD73\\uFD74\\uFD75\\uFD76\\uFD77\\uFD78\\uFD79\\uFD7A\\uFD7B\\uFD7C\\uFD7D\\uFD7E\\uFD7F\\uFD80\\uFD81\\uFD82\\uFD83\\uFD84\\uFD85\\uFD86\\uFD87\\uFD88\\uFD89\\uFD8A\\uFD8B\\uFD8C\\uFD8D\\uFD8E\\uFD8F\\uFD92\\uFD93\\uFD94\\uFD95\\uFD96\\uFD97\\uFD98\\uFD99\\uFD9A\\uFD9B\\uFD9C\\uFD9D\\uFD9E\\uFD9F\\uFDA0\\uFDA1\\uFDA2\\uFDA3\\uFDA4\\uFDA5\\uFDA6\\uFDA7\\uFDA8\\uFDA9\\uFDAA\\uFDAB\\uFDAC\\uFDAD\\uFDAE\\uFDAF\\uFDB0\\uFDB1\\uFDB2\\uFDB3\\uFDB4\\uFDB5\\uFDB6\\uFDB7\\uFDB8\\uFDB9\\uFDBA\\uFDBB\\uFDBC\\uFDBD\\uFDBE\\uFDBF\\uFDC0\\uFDC1\\uFDC2\\uFDC3\\uFDC4\\uFDC5\\uFDC6\\uFDC7\\uFDF0\\uFDF1\\uFDF2\\uFDF3\\uFDF4\\uFDF5\\uFDF6\\uFDF7\\uFDF8\\uFDF9\\uFDFA\\uFDFB\\uFE70\\uFE71\\uFE72\\uFE73\\uFE74\\uFE76\\uFE77\\uFE78\\uFE79\\uFE7A\\uFE7B\\uFE7C\\uFE7D\\uFE7E\\uFE7F\\uFE80\\uFE81\\uFE82\\uFE83\\uFE84\\uFE85\\uFE86\\uFE87\\uFE88\\uFE89\\uFE8A\\uFE8B\\uFE8C\\uFE8D\\uFE8E\\uFE8F\\uFE90\\uFE91\\uFE92\\uFE93\\uFE94\\uFE95\\uFE96\\uFE97\\uFE98\\uFE99\\uFE9A\\uFE9B\\uFE9C\\uFE9D\\uFE9E\\uFE9F\\uFEA0\\uFEA1\\uFEA2\\uFEA3\\uFEA4\\uFEA5\\uFEA6\\uFEA7\\uFEA8\\uFEA9\\uFEAA\\uFEAB\\uFEAC\\uFEAD\\uFEAE\\uFEAF\\uFEB0\\uFEB1\\uFEB2\\uFEB3\\uFEB4\\uFEB5\\uFEB6\\uFEB7\\uFEB8\\uFEB9\\uFEBA\\uFEBB\\uFEBC\\uFEBD\\uFEBE\\uFEBF\\uFEC0\\uFEC1\\uFEC2\\uFEC3\\uFEC4\\uFEC5\\uFEC6\\uFEC7\\uFEC8\\uFEC9\\uFECA\\uFECB\\uFECC\\uFECD\\uFECE\\uFECF\\uFED0\\uFED1\\uFED2\\uFED3\\uFED4\\uFED5\\uFED6\\uFED7\\uFED8\\uFED9\\uFEDA\\uFEDB\\uFEDC\\uFEDD\\uFEDE\\uFEDF\\uFEE0\\uFEE1\\uFEE2\\uFEE3\\uFEE4\\uFEE5\\uFEE6\\uFEE7\\uFEE8\\uFEE9\\uFEEA\\uFEEB\\uFEEC\\uFEED\\uFEEE\\uFEEF\\uFEF0\\uFEF1\\uFEF2\\uFEF3\\uFEF4\\uFEF5\\uFEF6\\uFEF7\\uFEF8\\uFEF9\\uFEFA\\uFEFB\\uFEFC\\uFF66\\uFF67\\uFF68\\uFF69\\uFF6A\\uFF6B\\uFF6C\\uFF6D\\uFF6E\\uFF6F\\uFF71\\uFF72\\uFF73\\uFF74\\uFF75\\uFF76\\uFF77\\uFF78\\uFF79\\uFF7A\\uFF7B\\uFF7C\\uFF7D\\uFF7E\\uFF7F\\uFF80\\uFF81\\uFF82\\uFF83\\uFF84\\uFF85\\uFF86\\uFF87\\uFF88\\uFF89\\uFF8A\\uFF8B\\uFF8C\\uFF8D\\uFF8E\\uFF8F\\uFF90\\uFF91\\uFF92\\uFF93\\uFF94\\uFF95\\uFF96\\uFF97\\uFF98\\uFF99\\uFF9A\\uFF9B\\uFF9C\\uFF9D\\uFFA0\\uFFA1\\uFFA2\\uFFA3\\uFFA4\\uFFA5\\uFFA6\\uFFA7\\uFFA8\\uFFA9\\uFFAA\\uFFAB\\uFFAC\\uFFAD\\uFFAE\\uFFAF\\uFFB0\\uFFB1\\uFFB2\\uFFB3\\uFFB4\\uFFB5\\uFFB6\\uFFB7\\uFFB8\\uFFB9\\uFFBA\\uFFBB\\uFFBC\\uFFBD\\uFFBE\\uFFC2\\uFFC3\\uFFC4\\uFFC5\\uFFC6\\uFFC7\\uFFCA\\uFFCB\\uFFCC\\uFFCD\\uFFCE\\uFFCF\\uFFD2\\uFFD3\\uFFD4\\uFFD5\\uFFD6\\uFFD7\\uFFDA\\uFFDB\\uFFDC]"); - } - } - return result0; - } - - function parse_Lt() { - var result0; - - if (/^[\u01C5\u01C8\u01CB\u01F2\u1F88\u1F89\u1F8A\u1F8B\u1F8C\u1F8D\u1F8E\u1F8F\u1F98\u1F99\u1F9A\u1F9B\u1F9C\u1F9D\u1F9E\u1F9F\u1FA8\u1FA9\u1FAA\u1FAB\u1FAC\u1FAD\u1FAE\u1FAF\u1FBC\u1FCC\u1FFC]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\u01C5\\u01C8\\u01CB\\u01F2\\u1F88\\u1F89\\u1F8A\\u1F8B\\u1F8C\\u1F8D\\u1F8E\\u1F8F\\u1F98\\u1F99\\u1F9A\\u1F9B\\u1F9C\\u1F9D\\u1F9E\\u1F9F\\u1FA8\\u1FA9\\u1FAA\\u1FAB\\u1FAC\\u1FAD\\u1FAE\\u1FAF\\u1FBC\\u1FCC\\u1FFC]"); - } - } - return result0; - } - - function parse_Lu() { - var result0; - - if (/^[ABCDEFGHIJKLMNOPQRSTUVWXYZ\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD8\xD9\xDA\xDB\xDC\xDD\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189\u018A\u018B\u018E\u018F\u0190\u0191\u0193\u0194\u0196\u0197\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1\u01B2\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6\u01F7\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243\u0244\u0245\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u0386\u0388\u0389\u038A\u038C\u038E\u038F\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03CF\u03D2\u03D3\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD\u03FE\u03FF\u0400\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\u040D\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0531\u0532\u0533\u0534\u0535\u0536\u0537\u0538\u0539\u053A\u053B\u053C\u053D\u053E\u053F\u0540\u0541\u0542\u0543\u0544\u0545\u0546\u0547\u0548\u0549\u054A\u054B\u054C\u054D\u054E\u054F\u0550\u0551\u0552\u0553\u0554\u0555\u0556\u10A0\u10A1\u10A2\u10A3\u10A4\u10A5\u10A6\u10A7\u10A8\u10A9\u10AA\u10AB\u10AC\u10AD\u10AE\u10AF\u10B0\u10B1\u10B2\u10B3\u10B4\u10B5\u10B6\u10B7\u10B8\u10B9\u10BA\u10BB\u10BC\u10BD\u10BE\u10BF\u10C0\u10C1\u10C2\u10C3\u10C4\u10C5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08\u1F09\u1F0A\u1F0B\u1F0C\u1F0D\u1F0E\u1F0F\u1F18\u1F19\u1F1A\u1F1B\u1F1C\u1F1D\u1F28\u1F29\u1F2A\u1F2B\u1F2C\u1F2D\u1F2E\u1F2F\u1F38\u1F39\u1F3A\u1F3B\u1F3C\u1F3D\u1F3E\u1F3F\u1F48\u1F49\u1F4A\u1F4B\u1F4C\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68\u1F69\u1F6A\u1F6B\u1F6C\u1F6D\u1F6E\u1F6F\u1FB8\u1FB9\u1FBA\u1FBB\u1FC8\u1FC9\u1FCA\u1FCB\u1FD8\u1FD9\u1FDA\u1FDB\u1FE8\u1FE9\u1FEA\u1FEB\u1FEC\u1FF8\u1FF9\u1FFA\u1FFB\u2102\u2107\u210B\u210C\u210D\u2110\u2111\u2112\u2115\u2119\u211A\u211B\u211C\u211D\u2124\u2126\u2128\u212A\u212B\u212C\u212D\u2130\u2131\u2132\u2133\u213E\u213F\u2145\u2183\u2C00\u2C01\u2C02\u2C03\u2C04\u2C05\u2C06\u2C07\u2C08\u2C09\u2C0A\u2C0B\u2C0C\u2C0D\u2C0E\u2C0F\u2C10\u2C11\u2C12\u2C13\u2C14\u2C15\u2C16\u2C17\u2C18\u2C19\u2C1A\u2C1B\u2C1C\u2C1D\u2C1E\u2C1F\u2C20\u2C21\u2C22\u2C23\u2C24\u2C25\u2C26\u2C27\u2C28\u2C29\u2C2A\u2C2B\u2C2C\u2C2D\u2C2E\u2C60\u2C62\u2C63\u2C64\u2C67\u2C69\u2C6B\u2C6D\u2C6E\u2C6F\u2C72\u2C75\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uFF21\uFF22\uFF23\uFF24\uFF25\uFF26\uFF27\uFF28\uFF29\uFF2A\uFF2B\uFF2C\uFF2D\uFF2E\uFF2F\uFF30\uFF31\uFF32\uFF33\uFF34\uFF35\uFF36\uFF37\uFF38\uFF39\uFF3A]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[ABCDEFGHIJKLMNOPQRSTUVWXYZ\\xC0\\xC1\\xC2\\xC3\\xC4\\xC5\\xC6\\xC7\\xC8\\xC9\\xCA\\xCB\\xCC\\xCD\\xCE\\xCF\\xD0\\xD1\\xD2\\xD3\\xD4\\xD5\\xD6\\xD8\\xD9\\xDA\\xDB\\xDC\\xDD\\xDE\\u0100\\u0102\\u0104\\u0106\\u0108\\u010A\\u010C\\u010E\\u0110\\u0112\\u0114\\u0116\\u0118\\u011A\\u011C\\u011E\\u0120\\u0122\\u0124\\u0126\\u0128\\u012A\\u012C\\u012E\\u0130\\u0132\\u0134\\u0136\\u0139\\u013B\\u013D\\u013F\\u0141\\u0143\\u0145\\u0147\\u014A\\u014C\\u014E\\u0150\\u0152\\u0154\\u0156\\u0158\\u015A\\u015C\\u015E\\u0160\\u0162\\u0164\\u0166\\u0168\\u016A\\u016C\\u016E\\u0170\\u0172\\u0174\\u0176\\u0178\\u0179\\u017B\\u017D\\u0181\\u0182\\u0184\\u0186\\u0187\\u0189\\u018A\\u018B\\u018E\\u018F\\u0190\\u0191\\u0193\\u0194\\u0196\\u0197\\u0198\\u019C\\u019D\\u019F\\u01A0\\u01A2\\u01A4\\u01A6\\u01A7\\u01A9\\u01AC\\u01AE\\u01AF\\u01B1\\u01B2\\u01B3\\u01B5\\u01B7\\u01B8\\u01BC\\u01C4\\u01C7\\u01CA\\u01CD\\u01CF\\u01D1\\u01D3\\u01D5\\u01D7\\u01D9\\u01DB\\u01DE\\u01E0\\u01E2\\u01E4\\u01E6\\u01E8\\u01EA\\u01EC\\u01EE\\u01F1\\u01F4\\u01F6\\u01F7\\u01F8\\u01FA\\u01FC\\u01FE\\u0200\\u0202\\u0204\\u0206\\u0208\\u020A\\u020C\\u020E\\u0210\\u0212\\u0214\\u0216\\u0218\\u021A\\u021C\\u021E\\u0220\\u0222\\u0224\\u0226\\u0228\\u022A\\u022C\\u022E\\u0230\\u0232\\u023A\\u023B\\u023D\\u023E\\u0241\\u0243\\u0244\\u0245\\u0246\\u0248\\u024A\\u024C\\u024E\\u0370\\u0372\\u0376\\u0386\\u0388\\u0389\\u038A\\u038C\\u038E\\u038F\\u0391\\u0392\\u0393\\u0394\\u0395\\u0396\\u0397\\u0398\\u0399\\u039A\\u039B\\u039C\\u039D\\u039E\\u039F\\u03A0\\u03A1\\u03A3\\u03A4\\u03A5\\u03A6\\u03A7\\u03A8\\u03A9\\u03AA\\u03AB\\u03CF\\u03D2\\u03D3\\u03D4\\u03D8\\u03DA\\u03DC\\u03DE\\u03E0\\u03E2\\u03E4\\u03E6\\u03E8\\u03EA\\u03EC\\u03EE\\u03F4\\u03F7\\u03F9\\u03FA\\u03FD\\u03FE\\u03FF\\u0400\\u0401\\u0402\\u0403\\u0404\\u0405\\u0406\\u0407\\u0408\\u0409\\u040A\\u040B\\u040C\\u040D\\u040E\\u040F\\u0410\\u0411\\u0412\\u0413\\u0414\\u0415\\u0416\\u0417\\u0418\\u0419\\u041A\\u041B\\u041C\\u041D\\u041E\\u041F\\u0420\\u0421\\u0422\\u0423\\u0424\\u0425\\u0426\\u0427\\u0428\\u0429\\u042A\\u042B\\u042C\\u042D\\u042E\\u042F\\u0460\\u0462\\u0464\\u0466\\u0468\\u046A\\u046C\\u046E\\u0470\\u0472\\u0474\\u0476\\u0478\\u047A\\u047C\\u047E\\u0480\\u048A\\u048C\\u048E\\u0490\\u0492\\u0494\\u0496\\u0498\\u049A\\u049C\\u049E\\u04A0\\u04A2\\u04A4\\u04A6\\u04A8\\u04AA\\u04AC\\u04AE\\u04B0\\u04B2\\u04B4\\u04B6\\u04B8\\u04BA\\u04BC\\u04BE\\u04C0\\u04C1\\u04C3\\u04C5\\u04C7\\u04C9\\u04CB\\u04CD\\u04D0\\u04D2\\u04D4\\u04D6\\u04D8\\u04DA\\u04DC\\u04DE\\u04E0\\u04E2\\u04E4\\u04E6\\u04E8\\u04EA\\u04EC\\u04EE\\u04F0\\u04F2\\u04F4\\u04F6\\u04F8\\u04FA\\u04FC\\u04FE\\u0500\\u0502\\u0504\\u0506\\u0508\\u050A\\u050C\\u050E\\u0510\\u0512\\u0514\\u0516\\u0518\\u051A\\u051C\\u051E\\u0520\\u0522\\u0531\\u0532\\u0533\\u0534\\u0535\\u0536\\u0537\\u0538\\u0539\\u053A\\u053B\\u053C\\u053D\\u053E\\u053F\\u0540\\u0541\\u0542\\u0543\\u0544\\u0545\\u0546\\u0547\\u0548\\u0549\\u054A\\u054B\\u054C\\u054D\\u054E\\u054F\\u0550\\u0551\\u0552\\u0553\\u0554\\u0555\\u0556\\u10A0\\u10A1\\u10A2\\u10A3\\u10A4\\u10A5\\u10A6\\u10A7\\u10A8\\u10A9\\u10AA\\u10AB\\u10AC\\u10AD\\u10AE\\u10AF\\u10B0\\u10B1\\u10B2\\u10B3\\u10B4\\u10B5\\u10B6\\u10B7\\u10B8\\u10B9\\u10BA\\u10BB\\u10BC\\u10BD\\u10BE\\u10BF\\u10C0\\u10C1\\u10C2\\u10C3\\u10C4\\u10C5\\u1E00\\u1E02\\u1E04\\u1E06\\u1E08\\u1E0A\\u1E0C\\u1E0E\\u1E10\\u1E12\\u1E14\\u1E16\\u1E18\\u1E1A\\u1E1C\\u1E1E\\u1E20\\u1E22\\u1E24\\u1E26\\u1E28\\u1E2A\\u1E2C\\u1E2E\\u1E30\\u1E32\\u1E34\\u1E36\\u1E38\\u1E3A\\u1E3C\\u1E3E\\u1E40\\u1E42\\u1E44\\u1E46\\u1E48\\u1E4A\\u1E4C\\u1E4E\\u1E50\\u1E52\\u1E54\\u1E56\\u1E58\\u1E5A\\u1E5C\\u1E5E\\u1E60\\u1E62\\u1E64\\u1E66\\u1E68\\u1E6A\\u1E6C\\u1E6E\\u1E70\\u1E72\\u1E74\\u1E76\\u1E78\\u1E7A\\u1E7C\\u1E7E\\u1E80\\u1E82\\u1E84\\u1E86\\u1E88\\u1E8A\\u1E8C\\u1E8E\\u1E90\\u1E92\\u1E94\\u1E9E\\u1EA0\\u1EA2\\u1EA4\\u1EA6\\u1EA8\\u1EAA\\u1EAC\\u1EAE\\u1EB0\\u1EB2\\u1EB4\\u1EB6\\u1EB8\\u1EBA\\u1EBC\\u1EBE\\u1EC0\\u1EC2\\u1EC4\\u1EC6\\u1EC8\\u1ECA\\u1ECC\\u1ECE\\u1ED0\\u1ED2\\u1ED4\\u1ED6\\u1ED8\\u1EDA\\u1EDC\\u1EDE\\u1EE0\\u1EE2\\u1EE4\\u1EE6\\u1EE8\\u1EEA\\u1EEC\\u1EEE\\u1EF0\\u1EF2\\u1EF4\\u1EF6\\u1EF8\\u1EFA\\u1EFC\\u1EFE\\u1F08\\u1F09\\u1F0A\\u1F0B\\u1F0C\\u1F0D\\u1F0E\\u1F0F\\u1F18\\u1F19\\u1F1A\\u1F1B\\u1F1C\\u1F1D\\u1F28\\u1F29\\u1F2A\\u1F2B\\u1F2C\\u1F2D\\u1F2E\\u1F2F\\u1F38\\u1F39\\u1F3A\\u1F3B\\u1F3C\\u1F3D\\u1F3E\\u1F3F\\u1F48\\u1F49\\u1F4A\\u1F4B\\u1F4C\\u1F4D\\u1F59\\u1F5B\\u1F5D\\u1F5F\\u1F68\\u1F69\\u1F6A\\u1F6B\\u1F6C\\u1F6D\\u1F6E\\u1F6F\\u1FB8\\u1FB9\\u1FBA\\u1FBB\\u1FC8\\u1FC9\\u1FCA\\u1FCB\\u1FD8\\u1FD9\\u1FDA\\u1FDB\\u1FE8\\u1FE9\\u1FEA\\u1FEB\\u1FEC\\u1FF8\\u1FF9\\u1FFA\\u1FFB\\u2102\\u2107\\u210B\\u210C\\u210D\\u2110\\u2111\\u2112\\u2115\\u2119\\u211A\\u211B\\u211C\\u211D\\u2124\\u2126\\u2128\\u212A\\u212B\\u212C\\u212D\\u2130\\u2131\\u2132\\u2133\\u213E\\u213F\\u2145\\u2183\\u2C00\\u2C01\\u2C02\\u2C03\\u2C04\\u2C05\\u2C06\\u2C07\\u2C08\\u2C09\\u2C0A\\u2C0B\\u2C0C\\u2C0D\\u2C0E\\u2C0F\\u2C10\\u2C11\\u2C12\\u2C13\\u2C14\\u2C15\\u2C16\\u2C17\\u2C18\\u2C19\\u2C1A\\u2C1B\\u2C1C\\u2C1D\\u2C1E\\u2C1F\\u2C20\\u2C21\\u2C22\\u2C23\\u2C24\\u2C25\\u2C26\\u2C27\\u2C28\\u2C29\\u2C2A\\u2C2B\\u2C2C\\u2C2D\\u2C2E\\u2C60\\u2C62\\u2C63\\u2C64\\u2C67\\u2C69\\u2C6B\\u2C6D\\u2C6E\\u2C6F\\u2C72\\u2C75\\u2C80\\u2C82\\u2C84\\u2C86\\u2C88\\u2C8A\\u2C8C\\u2C8E\\u2C90\\u2C92\\u2C94\\u2C96\\u2C98\\u2C9A\\u2C9C\\u2C9E\\u2CA0\\u2CA2\\u2CA4\\u2CA6\\u2CA8\\u2CAA\\u2CAC\\u2CAE\\u2CB0\\u2CB2\\u2CB4\\u2CB6\\u2CB8\\u2CBA\\u2CBC\\u2CBE\\u2CC0\\u2CC2\\u2CC4\\u2CC6\\u2CC8\\u2CCA\\u2CCC\\u2CCE\\u2CD0\\u2CD2\\u2CD4\\u2CD6\\u2CD8\\u2CDA\\u2CDC\\u2CDE\\u2CE0\\u2CE2\\uA640\\uA642\\uA644\\uA646\\uA648\\uA64A\\uA64C\\uA64E\\uA650\\uA652\\uA654\\uA656\\uA658\\uA65A\\uA65C\\uA65E\\uA662\\uA664\\uA666\\uA668\\uA66A\\uA66C\\uA680\\uA682\\uA684\\uA686\\uA688\\uA68A\\uA68C\\uA68E\\uA690\\uA692\\uA694\\uA696\\uA722\\uA724\\uA726\\uA728\\uA72A\\uA72C\\uA72E\\uA732\\uA734\\uA736\\uA738\\uA73A\\uA73C\\uA73E\\uA740\\uA742\\uA744\\uA746\\uA748\\uA74A\\uA74C\\uA74E\\uA750\\uA752\\uA754\\uA756\\uA758\\uA75A\\uA75C\\uA75E\\uA760\\uA762\\uA764\\uA766\\uA768\\uA76A\\uA76C\\uA76E\\uA779\\uA77B\\uA77D\\uA77E\\uA780\\uA782\\uA784\\uA786\\uA78B\\uFF21\\uFF22\\uFF23\\uFF24\\uFF25\\uFF26\\uFF27\\uFF28\\uFF29\\uFF2A\\uFF2B\\uFF2C\\uFF2D\\uFF2E\\uFF2F\\uFF30\\uFF31\\uFF32\\uFF33\\uFF34\\uFF35\\uFF36\\uFF37\\uFF38\\uFF39\\uFF3A]"); - } - } - return result0; - } - - function parse_Mc() { - var result0; - - if (/^[\u0903\u093E\u093F\u0940\u0949\u094A\u094B\u094C\u0982\u0983\u09BE\u09BF\u09C0\u09C7\u09C8\u09CB\u09CC\u09D7\u0A03\u0A3E\u0A3F\u0A40\u0A83\u0ABE\u0ABF\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6\u0BC7\u0BC8\u0BCA\u0BCB\u0BCC\u0BD7\u0C01\u0C02\u0C03\u0C41\u0C42\u0C43\u0C44\u0C82\u0C83\u0CBE\u0CC0\u0CC1\u0CC2\u0CC3\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0D02\u0D03\u0D3E\u0D3F\u0D40\u0D46\u0D47\u0D48\u0D4A\u0D4B\u0D4C\u0D57\u0D82\u0D83\u0DCF\u0DD0\u0DD1\u0DD8\u0DD9\u0DDA\u0DDB\u0DDC\u0DDD\u0DDE\u0DDF\u0DF2\u0DF3\u0F3E\u0F3F\u0F7F\u102B\u102C\u1031\u1038\u103B\u103C\u1056\u1057\u1062\u1063\u1064\u1067\u1068\u1069\u106A\u106B\u106C\u106D\u1083\u1084\u1087\u1088\u1089\u108A\u108B\u108C\u108F\u17B6\u17BE\u17BF\u17C0\u17C1\u17C2\u17C3\u17C4\u17C5\u17C7\u17C8\u1923\u1924\u1925\u1926\u1929\u192A\u192B\u1930\u1931\u1933\u1934\u1935\u1936\u1937\u1938\u19B0\u19B1\u19B2\u19B3\u19B4\u19B5\u19B6\u19B7\u19B8\u19B9\u19BA\u19BB\u19BC\u19BD\u19BE\u19BF\u19C0\u19C8\u19C9\u1A19\u1A1A\u1A1B\u1B04\u1B35\u1B3B\u1B3D\u1B3E\u1B3F\u1B40\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1C24\u1C25\u1C26\u1C27\u1C28\u1C29\u1C2A\u1C2B\u1C34\u1C35\uA823\uA824\uA827\uA880\uA881\uA8B4\uA8B5\uA8B6\uA8B7\uA8B8\uA8B9\uA8BA\uA8BB\uA8BC\uA8BD\uA8BE\uA8BF\uA8C0\uA8C1\uA8C2\uA8C3\uA952\uA953\uAA2F\uAA30\uAA33\uAA34\uAA4D]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\u0903\\u093E\\u093F\\u0940\\u0949\\u094A\\u094B\\u094C\\u0982\\u0983\\u09BE\\u09BF\\u09C0\\u09C7\\u09C8\\u09CB\\u09CC\\u09D7\\u0A03\\u0A3E\\u0A3F\\u0A40\\u0A83\\u0ABE\\u0ABF\\u0AC0\\u0AC9\\u0ACB\\u0ACC\\u0B02\\u0B03\\u0B3E\\u0B40\\u0B47\\u0B48\\u0B4B\\u0B4C\\u0B57\\u0BBE\\u0BBF\\u0BC1\\u0BC2\\u0BC6\\u0BC7\\u0BC8\\u0BCA\\u0BCB\\u0BCC\\u0BD7\\u0C01\\u0C02\\u0C03\\u0C41\\u0C42\\u0C43\\u0C44\\u0C82\\u0C83\\u0CBE\\u0CC0\\u0CC1\\u0CC2\\u0CC3\\u0CC4\\u0CC7\\u0CC8\\u0CCA\\u0CCB\\u0CD5\\u0CD6\\u0D02\\u0D03\\u0D3E\\u0D3F\\u0D40\\u0D46\\u0D47\\u0D48\\u0D4A\\u0D4B\\u0D4C\\u0D57\\u0D82\\u0D83\\u0DCF\\u0DD0\\u0DD1\\u0DD8\\u0DD9\\u0DDA\\u0DDB\\u0DDC\\u0DDD\\u0DDE\\u0DDF\\u0DF2\\u0DF3\\u0F3E\\u0F3F\\u0F7F\\u102B\\u102C\\u1031\\u1038\\u103B\\u103C\\u1056\\u1057\\u1062\\u1063\\u1064\\u1067\\u1068\\u1069\\u106A\\u106B\\u106C\\u106D\\u1083\\u1084\\u1087\\u1088\\u1089\\u108A\\u108B\\u108C\\u108F\\u17B6\\u17BE\\u17BF\\u17C0\\u17C1\\u17C2\\u17C3\\u17C4\\u17C5\\u17C7\\u17C8\\u1923\\u1924\\u1925\\u1926\\u1929\\u192A\\u192B\\u1930\\u1931\\u1933\\u1934\\u1935\\u1936\\u1937\\u1938\\u19B0\\u19B1\\u19B2\\u19B3\\u19B4\\u19B5\\u19B6\\u19B7\\u19B8\\u19B9\\u19BA\\u19BB\\u19BC\\u19BD\\u19BE\\u19BF\\u19C0\\u19C8\\u19C9\\u1A19\\u1A1A\\u1A1B\\u1B04\\u1B35\\u1B3B\\u1B3D\\u1B3E\\u1B3F\\u1B40\\u1B41\\u1B43\\u1B44\\u1B82\\u1BA1\\u1BA6\\u1BA7\\u1BAA\\u1C24\\u1C25\\u1C26\\u1C27\\u1C28\\u1C29\\u1C2A\\u1C2B\\u1C34\\u1C35\\uA823\\uA824\\uA827\\uA880\\uA881\\uA8B4\\uA8B5\\uA8B6\\uA8B7\\uA8B8\\uA8B9\\uA8BA\\uA8BB\\uA8BC\\uA8BD\\uA8BE\\uA8BF\\uA8C0\\uA8C1\\uA8C2\\uA8C3\\uA952\\uA953\\uAA2F\\uAA30\\uAA33\\uAA34\\uAA4D]"); - } - } - return result0; - } - - function parse_Mn() { - var result0; - - if (/^[\u0300\u0301\u0302\u0303\u0304\u0305\u0306\u0307\u0308\u0309\u030A\u030B\u030C\u030D\u030E\u030F\u0310\u0311\u0312\u0313\u0314\u0315\u0316\u0317\u0318\u0319\u031A\u031B\u031C\u031D\u031E\u031F\u0320\u0321\u0322\u0323\u0324\u0325\u0326\u0327\u0328\u0329\u032A\u032B\u032C\u032D\u032E\u032F\u0330\u0331\u0332\u0333\u0334\u0335\u0336\u0337\u0338\u0339\u033A\u033B\u033C\u033D\u033E\u033F\u0340\u0341\u0342\u0343\u0344\u0345\u0346\u0347\u0348\u0349\u034A\u034B\u034C\u034D\u034E\u034F\u0350\u0351\u0352\u0353\u0354\u0355\u0356\u0357\u0358\u0359\u035A\u035B\u035C\u035D\u035E\u035F\u0360\u0361\u0362\u0363\u0364\u0365\u0366\u0367\u0368\u0369\u036A\u036B\u036C\u036D\u036E\u036F\u0483\u0484\u0485\u0486\u0487\u0591\u0592\u0593\u0594\u0595\u0596\u0597\u0598\u0599\u059A\u059B\u059C\u059D\u059E\u059F\u05A0\u05A1\u05A2\u05A3\u05A4\u05A5\u05A6\u05A7\u05A8\u05A9\u05AA\u05AB\u05AC\u05AD\u05AE\u05AF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610\u0611\u0612\u0613\u0614\u0615\u0616\u0617\u0618\u0619\u061A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\u0653\u0654\u0655\u0656\u0657\u0658\u0659\u065A\u065B\u065C\u065D\u065E\u0670\u06D6\u06D7\u06D8\u06D9\u06DA\u06DB\u06DC\u06DF\u06E0\u06E1\u06E2\u06E3\u06E4\u06E7\u06E8\u06EA\u06EB\u06EC\u06ED\u0711\u0730\u0731\u0732\u0733\u0734\u0735\u0736\u0737\u0738\u0739\u073A\u073B\u073C\u073D\u073E\u073F\u0740\u0741\u0742\u0743\u0744\u0745\u0746\u0747\u0748\u0749\u074A\u07A6\u07A7\u07A8\u07A9\u07AA\u07AB\u07AC\u07AD\u07AE\u07AF\u07B0\u07EB\u07EC\u07ED\u07EE\u07EF\u07F0\u07F1\u07F2\u07F3\u0901\u0902\u093C\u0941\u0942\u0943\u0944\u0945\u0946\u0947\u0948\u094D\u0951\u0952\u0953\u0954\u0962\u0963\u0981\u09BC\u09C1\u09C2\u09C3\u09C4\u09CD\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B\u0A4C\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1\u0AC2\u0AC3\u0AC4\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0B01\u0B3C\u0B3F\u0B41\u0B42\u0B43\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C3E\u0C3F\u0C40\u0C46\u0C47\u0C48\u0C4A\u0C4B\u0C4C\u0C4D\u0C55\u0C56\u0C62\u0C63\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D41\u0D42\u0D43\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2\u0DD3\u0DD4\u0DD6\u0E31\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0EB1\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBB\u0EBC\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71\u0F72\u0F73\u0F74\u0F75\u0F76\u0F77\u0F78\u0F79\u0F7A\u0F7B\u0F7C\u0F7D\u0F7E\u0F80\u0F81\u0F82\u0F83\u0F84\u0F86\u0F87\u0F90\u0F91\u0F92\u0F93\u0F94\u0F95\u0F96\u0F97\u0F99\u0F9A\u0F9B\u0F9C\u0F9D\u0F9E\u0F9F\u0FA0\u0FA1\u0FA2\u0FA3\u0FA4\u0FA5\u0FA6\u0FA7\u0FA8\u0FA9\u0FAA\u0FAB\u0FAC\u0FAD\u0FAE\u0FAF\u0FB0\u0FB1\u0FB2\u0FB3\u0FB4\u0FB5\u0FB6\u0FB7\u0FB8\u0FB9\u0FBA\u0FBB\u0FBC\u0FC6\u102D\u102E\u102F\u1030\u1032\u1033\u1034\u1035\u1036\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E\u105F\u1060\u1071\u1072\u1073\u1074\u1082\u1085\u1086\u108D\u135F\u1712\u1713\u1714\u1732\u1733\u1734\u1752\u1753\u1772\u1773\u17B7\u17B8\u17B9\u17BA\u17BB\u17BC\u17BD\u17C6\u17C9\u17CA\u17CB\u17CC\u17CD\u17CE\u17CF\u17D0\u17D1\u17D2\u17D3\u17DD\u180B\u180C\u180D\u18A9\u1920\u1921\u1922\u1927\u1928\u1932\u1939\u193A\u193B\u1A17\u1A18\u1B00\u1B01\u1B02\u1B03\u1B34\u1B36\u1B37\u1B38\u1B39\u1B3A\u1B3C\u1B42\u1B6B\u1B6C\u1B6D\u1B6E\u1B6F\u1B70\u1B71\u1B72\u1B73\u1B80\u1B81\u1BA2\u1BA3\u1BA4\u1BA5\u1BA8\u1BA9\u1C2C\u1C2D\u1C2E\u1C2F\u1C30\u1C31\u1C32\u1C33\u1C36\u1C37\u1DC0\u1DC1\u1DC2\u1DC3\u1DC4\u1DC5\u1DC6\u1DC7\u1DC8\u1DC9\u1DCA\u1DCB\u1DCC\u1DCD\u1DCE\u1DCF\u1DD0\u1DD1\u1DD2\u1DD3\u1DD4\u1DD5\u1DD6\u1DD7\u1DD8\u1DD9\u1DDA\u1DDB\u1DDC\u1DDD\u1DDE\u1DDF\u1DE0\u1DE1\u1DE2\u1DE3\u1DE4\u1DE5\u1DE6\u1DFE\u1DFF\u20D0\u20D1\u20D2\u20D3\u20D4\u20D5\u20D6\u20D7\u20D8\u20D9\u20DA\u20DB\u20DC\u20E1\u20E5\u20E6\u20E7\u20E8\u20E9\u20EA\u20EB\u20EC\u20ED\u20EE\u20EF\u20F0\u2DE0\u2DE1\u2DE2\u2DE3\u2DE4\u2DE5\u2DE6\u2DE7\u2DE8\u2DE9\u2DEA\u2DEB\u2DEC\u2DED\u2DEE\u2DEF\u2DF0\u2DF1\u2DF2\u2DF3\u2DF4\u2DF5\u2DF6\u2DF7\u2DF8\u2DF9\u2DFA\u2DFB\u2DFC\u2DFD\u2DFE\u2DFF\u302A\u302B\u302C\u302D\u302E\u302F\u3099\u309A\uA66F\uA67C\uA67D\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA926\uA927\uA928\uA929\uA92A\uA92B\uA92C\uA92D\uA947\uA948\uA949\uA94A\uA94B\uA94C\uA94D\uA94E\uA94F\uA950\uA951\uAA29\uAA2A\uAA2B\uAA2C\uAA2D\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uFB1E\uFE00\uFE01\uFE02\uFE03\uFE04\uFE05\uFE06\uFE07\uFE08\uFE09\uFE0A\uFE0B\uFE0C\uFE0D\uFE0E\uFE0F\uFE20\uFE21\uFE22\uFE23\uFE24\uFE25\uFE26]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\u0300\\u0301\\u0302\\u0303\\u0304\\u0305\\u0306\\u0307\\u0308\\u0309\\u030A\\u030B\\u030C\\u030D\\u030E\\u030F\\u0310\\u0311\\u0312\\u0313\\u0314\\u0315\\u0316\\u0317\\u0318\\u0319\\u031A\\u031B\\u031C\\u031D\\u031E\\u031F\\u0320\\u0321\\u0322\\u0323\\u0324\\u0325\\u0326\\u0327\\u0328\\u0329\\u032A\\u032B\\u032C\\u032D\\u032E\\u032F\\u0330\\u0331\\u0332\\u0333\\u0334\\u0335\\u0336\\u0337\\u0338\\u0339\\u033A\\u033B\\u033C\\u033D\\u033E\\u033F\\u0340\\u0341\\u0342\\u0343\\u0344\\u0345\\u0346\\u0347\\u0348\\u0349\\u034A\\u034B\\u034C\\u034D\\u034E\\u034F\\u0350\\u0351\\u0352\\u0353\\u0354\\u0355\\u0356\\u0357\\u0358\\u0359\\u035A\\u035B\\u035C\\u035D\\u035E\\u035F\\u0360\\u0361\\u0362\\u0363\\u0364\\u0365\\u0366\\u0367\\u0368\\u0369\\u036A\\u036B\\u036C\\u036D\\u036E\\u036F\\u0483\\u0484\\u0485\\u0486\\u0487\\u0591\\u0592\\u0593\\u0594\\u0595\\u0596\\u0597\\u0598\\u0599\\u059A\\u059B\\u059C\\u059D\\u059E\\u059F\\u05A0\\u05A1\\u05A2\\u05A3\\u05A4\\u05A5\\u05A6\\u05A7\\u05A8\\u05A9\\u05AA\\u05AB\\u05AC\\u05AD\\u05AE\\u05AF\\u05B0\\u05B1\\u05B2\\u05B3\\u05B4\\u05B5\\u05B6\\u05B7\\u05B8\\u05B9\\u05BA\\u05BB\\u05BC\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610\\u0611\\u0612\\u0613\\u0614\\u0615\\u0616\\u0617\\u0618\\u0619\\u061A\\u064B\\u064C\\u064D\\u064E\\u064F\\u0650\\u0651\\u0652\\u0653\\u0654\\u0655\\u0656\\u0657\\u0658\\u0659\\u065A\\u065B\\u065C\\u065D\\u065E\\u0670\\u06D6\\u06D7\\u06D8\\u06D9\\u06DA\\u06DB\\u06DC\\u06DF\\u06E0\\u06E1\\u06E2\\u06E3\\u06E4\\u06E7\\u06E8\\u06EA\\u06EB\\u06EC\\u06ED\\u0711\\u0730\\u0731\\u0732\\u0733\\u0734\\u0735\\u0736\\u0737\\u0738\\u0739\\u073A\\u073B\\u073C\\u073D\\u073E\\u073F\\u0740\\u0741\\u0742\\u0743\\u0744\\u0745\\u0746\\u0747\\u0748\\u0749\\u074A\\u07A6\\u07A7\\u07A8\\u07A9\\u07AA\\u07AB\\u07AC\\u07AD\\u07AE\\u07AF\\u07B0\\u07EB\\u07EC\\u07ED\\u07EE\\u07EF\\u07F0\\u07F1\\u07F2\\u07F3\\u0901\\u0902\\u093C\\u0941\\u0942\\u0943\\u0944\\u0945\\u0946\\u0947\\u0948\\u094D\\u0951\\u0952\\u0953\\u0954\\u0962\\u0963\\u0981\\u09BC\\u09C1\\u09C2\\u09C3\\u09C4\\u09CD\\u09E2\\u09E3\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B\\u0A4C\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1\\u0AC2\\u0AC3\\u0AC4\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0B01\\u0B3C\\u0B3F\\u0B41\\u0B42\\u0B43\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C3E\\u0C3F\\u0C40\\u0C46\\u0C47\\u0C48\\u0C4A\\u0C4B\\u0C4C\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0CBC\\u0CBF\\u0CC6\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D41\\u0D42\\u0D43\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2\\u0DD3\\u0DD4\\u0DD6\\u0E31\\u0E34\\u0E35\\u0E36\\u0E37\\u0E38\\u0E39\\u0E3A\\u0E47\\u0E48\\u0E49\\u0E4A\\u0E4B\\u0E4C\\u0E4D\\u0E4E\\u0EB1\\u0EB4\\u0EB5\\u0EB6\\u0EB7\\u0EB8\\u0EB9\\u0EBB\\u0EBC\\u0EC8\\u0EC9\\u0ECA\\u0ECB\\u0ECC\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71\\u0F72\\u0F73\\u0F74\\u0F75\\u0F76\\u0F77\\u0F78\\u0F79\\u0F7A\\u0F7B\\u0F7C\\u0F7D\\u0F7E\\u0F80\\u0F81\\u0F82\\u0F83\\u0F84\\u0F86\\u0F87\\u0F90\\u0F91\\u0F92\\u0F93\\u0F94\\u0F95\\u0F96\\u0F97\\u0F99\\u0F9A\\u0F9B\\u0F9C\\u0F9D\\u0F9E\\u0F9F\\u0FA0\\u0FA1\\u0FA2\\u0FA3\\u0FA4\\u0FA5\\u0FA6\\u0FA7\\u0FA8\\u0FA9\\u0FAA\\u0FAB\\u0FAC\\u0FAD\\u0FAE\\u0FAF\\u0FB0\\u0FB1\\u0FB2\\u0FB3\\u0FB4\\u0FB5\\u0FB6\\u0FB7\\u0FB8\\u0FB9\\u0FBA\\u0FBB\\u0FBC\\u0FC6\\u102D\\u102E\\u102F\\u1030\\u1032\\u1033\\u1034\\u1035\\u1036\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E\\u105F\\u1060\\u1071\\u1072\\u1073\\u1074\\u1082\\u1085\\u1086\\u108D\\u135F\\u1712\\u1713\\u1714\\u1732\\u1733\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B7\\u17B8\\u17B9\\u17BA\\u17BB\\u17BC\\u17BD\\u17C6\\u17C9\\u17CA\\u17CB\\u17CC\\u17CD\\u17CE\\u17CF\\u17D0\\u17D1\\u17D2\\u17D3\\u17DD\\u180B\\u180C\\u180D\\u18A9\\u1920\\u1921\\u1922\\u1927\\u1928\\u1932\\u1939\\u193A\\u193B\\u1A17\\u1A18\\u1B00\\u1B01\\u1B02\\u1B03\\u1B34\\u1B36\\u1B37\\u1B38\\u1B39\\u1B3A\\u1B3C\\u1B42\\u1B6B\\u1B6C\\u1B6D\\u1B6E\\u1B6F\\u1B70\\u1B71\\u1B72\\u1B73\\u1B80\\u1B81\\u1BA2\\u1BA3\\u1BA4\\u1BA5\\u1BA8\\u1BA9\\u1C2C\\u1C2D\\u1C2E\\u1C2F\\u1C30\\u1C31\\u1C32\\u1C33\\u1C36\\u1C37\\u1DC0\\u1DC1\\u1DC2\\u1DC3\\u1DC4\\u1DC5\\u1DC6\\u1DC7\\u1DC8\\u1DC9\\u1DCA\\u1DCB\\u1DCC\\u1DCD\\u1DCE\\u1DCF\\u1DD0\\u1DD1\\u1DD2\\u1DD3\\u1DD4\\u1DD5\\u1DD6\\u1DD7\\u1DD8\\u1DD9\\u1DDA\\u1DDB\\u1DDC\\u1DDD\\u1DDE\\u1DDF\\u1DE0\\u1DE1\\u1DE2\\u1DE3\\u1DE4\\u1DE5\\u1DE6\\u1DFE\\u1DFF\\u20D0\\u20D1\\u20D2\\u20D3\\u20D4\\u20D5\\u20D6\\u20D7\\u20D8\\u20D9\\u20DA\\u20DB\\u20DC\\u20E1\\u20E5\\u20E6\\u20E7\\u20E8\\u20E9\\u20EA\\u20EB\\u20EC\\u20ED\\u20EE\\u20EF\\u20F0\\u2DE0\\u2DE1\\u2DE2\\u2DE3\\u2DE4\\u2DE5\\u2DE6\\u2DE7\\u2DE8\\u2DE9\\u2DEA\\u2DEB\\u2DEC\\u2DED\\u2DEE\\u2DEF\\u2DF0\\u2DF1\\u2DF2\\u2DF3\\u2DF4\\u2DF5\\u2DF6\\u2DF7\\u2DF8\\u2DF9\\u2DFA\\u2DFB\\u2DFC\\u2DFD\\u2DFE\\u2DFF\\u302A\\u302B\\u302C\\u302D\\u302E\\u302F\\u3099\\u309A\\uA66F\\uA67C\\uA67D\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA8C4\\uA926\\uA927\\uA928\\uA929\\uA92A\\uA92B\\uA92C\\uA92D\\uA947\\uA948\\uA949\\uA94A\\uA94B\\uA94C\\uA94D\\uA94E\\uA94F\\uA950\\uA951\\uAA29\\uAA2A\\uAA2B\\uAA2C\\uAA2D\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uFB1E\\uFE00\\uFE01\\uFE02\\uFE03\\uFE04\\uFE05\\uFE06\\uFE07\\uFE08\\uFE09\\uFE0A\\uFE0B\\uFE0C\\uFE0D\\uFE0E\\uFE0F\\uFE20\\uFE21\\uFE22\\uFE23\\uFE24\\uFE25\\uFE26]"); - } - } - return result0; - } - - function parse_Nd() { - var result0; - - if (/^[0123456789\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6\u06F7\u06F8\u06F9\u07C0\u07C1\u07C2\u07C3\u07C4\u07C5\u07C6\u07C7\u07C8\u07C9\u0966\u0967\u0968\u0969\u096A\u096B\u096C\u096D\u096E\u096F\u09E6\u09E7\u09E8\u09E9\u09EA\u09EB\u09EC\u09ED\u09EE\u09EF\u0A66\u0A67\u0A68\u0A69\u0A6A\u0A6B\u0A6C\u0A6D\u0A6E\u0A6F\u0AE6\u0AE7\u0AE8\u0AE9\u0AEA\u0AEB\u0AEC\u0AED\u0AEE\u0AEF\u0B66\u0B67\u0B68\u0B69\u0B6A\u0B6B\u0B6C\u0B6D\u0B6E\u0B6F\u0BE6\u0BE7\u0BE8\u0BE9\u0BEA\u0BEB\u0BEC\u0BED\u0BEE\u0BEF\u0C66\u0C67\u0C68\u0C69\u0C6A\u0C6B\u0C6C\u0C6D\u0C6E\u0C6F\u0CE6\u0CE7\u0CE8\u0CE9\u0CEA\u0CEB\u0CEC\u0CED\u0CEE\u0CEF\u0D66\u0D67\u0D68\u0D69\u0D6A\u0D6B\u0D6C\u0D6D\u0D6E\u0D6F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\u0F20\u0F21\u0F22\u0F23\u0F24\u0F25\u0F26\u0F27\u0F28\u0F29\u1040\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1090\u1091\u1092\u1093\u1094\u1095\u1096\u1097\u1098\u1099\u17E0\u17E1\u17E2\u17E3\u17E4\u17E5\u17E6\u17E7\u17E8\u17E9\u1810\u1811\u1812\u1813\u1814\u1815\u1816\u1817\u1818\u1819\u1946\u1947\u1948\u1949\u194A\u194B\u194C\u194D\u194E\u194F\u19D0\u19D1\u19D2\u19D3\u19D4\u19D5\u19D6\u19D7\u19D8\u19D9\u1B50\u1B51\u1B52\u1B53\u1B54\u1B55\u1B56\u1B57\u1B58\u1B59\u1BB0\u1BB1\u1BB2\u1BB3\u1BB4\u1BB5\u1BB6\u1BB7\u1BB8\u1BB9\u1C40\u1C41\u1C42\u1C43\u1C44\u1C45\u1C46\u1C47\u1C48\u1C49\u1C50\u1C51\u1C52\u1C53\u1C54\u1C55\u1C56\u1C57\u1C58\u1C59\uA620\uA621\uA622\uA623\uA624\uA625\uA626\uA627\uA628\uA629\uA8D0\uA8D1\uA8D2\uA8D3\uA8D4\uA8D5\uA8D6\uA8D7\uA8D8\uA8D9\uA900\uA901\uA902\uA903\uA904\uA905\uA906\uA907\uA908\uA909\uAA50\uAA51\uAA52\uAA53\uAA54\uAA55\uAA56\uAA57\uAA58\uAA59\uFF10\uFF11\uFF12\uFF13\uFF14\uFF15\uFF16\uFF17\uFF18\uFF19]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[0123456789\\u0660\\u0661\\u0662\\u0663\\u0664\\u0665\\u0666\\u0667\\u0668\\u0669\\u06F0\\u06F1\\u06F2\\u06F3\\u06F4\\u06F5\\u06F6\\u06F7\\u06F8\\u06F9\\u07C0\\u07C1\\u07C2\\u07C3\\u07C4\\u07C5\\u07C6\\u07C7\\u07C8\\u07C9\\u0966\\u0967\\u0968\\u0969\\u096A\\u096B\\u096C\\u096D\\u096E\\u096F\\u09E6\\u09E7\\u09E8\\u09E9\\u09EA\\u09EB\\u09EC\\u09ED\\u09EE\\u09EF\\u0A66\\u0A67\\u0A68\\u0A69\\u0A6A\\u0A6B\\u0A6C\\u0A6D\\u0A6E\\u0A6F\\u0AE6\\u0AE7\\u0AE8\\u0AE9\\u0AEA\\u0AEB\\u0AEC\\u0AED\\u0AEE\\u0AEF\\u0B66\\u0B67\\u0B68\\u0B69\\u0B6A\\u0B6B\\u0B6C\\u0B6D\\u0B6E\\u0B6F\\u0BE6\\u0BE7\\u0BE8\\u0BE9\\u0BEA\\u0BEB\\u0BEC\\u0BED\\u0BEE\\u0BEF\\u0C66\\u0C67\\u0C68\\u0C69\\u0C6A\\u0C6B\\u0C6C\\u0C6D\\u0C6E\\u0C6F\\u0CE6\\u0CE7\\u0CE8\\u0CE9\\u0CEA\\u0CEB\\u0CEC\\u0CED\\u0CEE\\u0CEF\\u0D66\\u0D67\\u0D68\\u0D69\\u0D6A\\u0D6B\\u0D6C\\u0D6D\\u0D6E\\u0D6F\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\\u0ED0\\u0ED1\\u0ED2\\u0ED3\\u0ED4\\u0ED5\\u0ED6\\u0ED7\\u0ED8\\u0ED9\\u0F20\\u0F21\\u0F22\\u0F23\\u0F24\\u0F25\\u0F26\\u0F27\\u0F28\\u0F29\\u1040\\u1041\\u1042\\u1043\\u1044\\u1045\\u1046\\u1047\\u1048\\u1049\\u1090\\u1091\\u1092\\u1093\\u1094\\u1095\\u1096\\u1097\\u1098\\u1099\\u17E0\\u17E1\\u17E2\\u17E3\\u17E4\\u17E5\\u17E6\\u17E7\\u17E8\\u17E9\\u1810\\u1811\\u1812\\u1813\\u1814\\u1815\\u1816\\u1817\\u1818\\u1819\\u1946\\u1947\\u1948\\u1949\\u194A\\u194B\\u194C\\u194D\\u194E\\u194F\\u19D0\\u19D1\\u19D2\\u19D3\\u19D4\\u19D5\\u19D6\\u19D7\\u19D8\\u19D9\\u1B50\\u1B51\\u1B52\\u1B53\\u1B54\\u1B55\\u1B56\\u1B57\\u1B58\\u1B59\\u1BB0\\u1BB1\\u1BB2\\u1BB3\\u1BB4\\u1BB5\\u1BB6\\u1BB7\\u1BB8\\u1BB9\\u1C40\\u1C41\\u1C42\\u1C43\\u1C44\\u1C45\\u1C46\\u1C47\\u1C48\\u1C49\\u1C50\\u1C51\\u1C52\\u1C53\\u1C54\\u1C55\\u1C56\\u1C57\\u1C58\\u1C59\\uA620\\uA621\\uA622\\uA623\\uA624\\uA625\\uA626\\uA627\\uA628\\uA629\\uA8D0\\uA8D1\\uA8D2\\uA8D3\\uA8D4\\uA8D5\\uA8D6\\uA8D7\\uA8D8\\uA8D9\\uA900\\uA901\\uA902\\uA903\\uA904\\uA905\\uA906\\uA907\\uA908\\uA909\\uAA50\\uAA51\\uAA52\\uAA53\\uAA54\\uAA55\\uAA56\\uAA57\\uAA58\\uAA59\\uFF10\\uFF11\\uFF12\\uFF13\\uFF14\\uFF15\\uFF16\\uFF17\\uFF18\\uFF19]"); - } - } - return result0; - } - - function parse_Nl() { - var result0; - - if (/^[\u16EE\u16EF\u16F0\u2160\u2161\u2162\u2163\u2164\u2165\u2166\u2167\u2168\u2169\u216A\u216B\u216C\u216D\u216E\u216F\u2170\u2171\u2172\u2173\u2174\u2175\u2176\u2177\u2178\u2179\u217A\u217B\u217C\u217D\u217E\u217F\u2180\u2181\u2182\u2185\u2186\u2187\u2188\u3007\u3021\u3022\u3023\u3024\u3025\u3026\u3027\u3028\u3029\u3038\u3039\u303A]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[\\u16EE\\u16EF\\u16F0\\u2160\\u2161\\u2162\\u2163\\u2164\\u2165\\u2166\\u2167\\u2168\\u2169\\u216A\\u216B\\u216C\\u216D\\u216E\\u216F\\u2170\\u2171\\u2172\\u2173\\u2174\\u2175\\u2176\\u2177\\u2178\\u2179\\u217A\\u217B\\u217C\\u217D\\u217E\\u217F\\u2180\\u2181\\u2182\\u2185\\u2186\\u2187\\u2188\\u3007\\u3021\\u3022\\u3023\\u3024\\u3025\\u3026\\u3027\\u3028\\u3029\\u3038\\u3039\\u303A]"); - } - } - return result0; - } - - function parse_Pc() { - var result0; - - if (/^[_\u203F\u2040\u2054\uFE33\uFE34\uFE4D\uFE4E\uFE4F\uFF3F]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[_\\u203F\\u2040\\u2054\\uFE33\\uFE34\\uFE4D\\uFE4E\\uFE4F\\uFF3F]"); - } - } - return result0; - } - - function parse_Zs() { - var result0; - - if (/^[ \xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000]/.test(input.charAt(pos))) { - result0 = input.charAt(pos); - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("[ \\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000]"); - } - } - return result0; - } - - function parse_blank() { - var result0, result1; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = []; - result1 = parse_Comment(); - if (result1 === null) { - if (/^[ \t]/.test(input.charAt(pos))) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("[ \\t]"); - } - } - } - while (result1 !== null) { - result0.push(result1); - result1 = parse_Comment(); - if (result1 === null) { - if (/^[ \t]/.test(input.charAt(pos))) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("[ \\t]"); - } - } - } - } - if (result0 !== null) { - result1 = parse_EOL(); - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset) { return undefined; })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_EOL() { - var result0; - - if (input.substr(pos, 2) === "\r\n") { - result0 = "\r\n"; - pos += 2; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\r\\n\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 10) { - result0 = "\n"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\n\""); - } - } - if (result0 === null) { - if (input.charCodeAt(pos) === 13) { - result0 = "\r"; - pos++; - } else { - result0 = null; - if (reportFailures === 0) { - matchFailed("\"\\r\""); - } - } - } - } - return result0; - } - - function parse_SAMEDENT() { - var result0, result1; - var pos0, pos1; - - pos0 = pos; - result0 = []; - if (/^[ \t]/.test(input.charAt(pos))) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("[ \\t]"); - } - } - if (result1 === null) { - pos1 = pos; - result1 = parse_Comment(); - if (result1 !== null) { - result1 = (function(offset) { return ""})(pos1); - } - if (result1 === null) { - pos = pos1; - } - } - while (result1 !== null) { - result0.push(result1); - if (/^[ \t]/.test(input.charAt(pos))) { - result1 = input.charAt(pos); - pos++; - } else { - result1 = null; - if (reportFailures === 0) { - matchFailed("[ \\t]"); - } - } - if (result1 === null) { - pos1 = pos; - result1 = parse_Comment(); - if (result1 !== null) { - result1 = (function(offset) { return ""})(pos1); - } - if (result1 === null) { - pos = pos1; - } - } - } - if (result0 !== null) { - result1 = (function(offset, i) { return i.join("") === indent; })(pos, result0) ? "" : null; - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos0; - } - } else { - result0 = null; - pos = pos0; - } - return result0; - } - - function parse_INDENT() { - var result0, result1, result2, result3, result4; - var pos0, pos1, pos2, pos3; - - pos0 = pos; - pos1 = pos; - pos2 = pos; - pos3 = pos; - result1 = []; - result2 = parse_Comment(); - while (result2 !== null) { - result1.push(result2); - result2 = parse_Comment(); - } - if (result1 !== null) { - if (/^[ \t]/.test(input.charAt(pos))) { - result2 = input.charAt(pos); - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("[ \\t]"); - } - } - if (result2 !== null) { - result3 = []; - result4 = parse_Comment(); - while (result4 !== null) { - result3.push(result4); - result4 = parse_Comment(); - } - if (result3 !== null) { - result1 = [result1, result2, result3]; - } else { - result1 = null; - pos = pos3; - } - } else { - result1 = null; - pos = pos3; - } - } else { - result1 = null; - pos = pos3; - } - if (result1 !== null) { - result1 = (function(offset, m) {return m[1]})(pos2, result1); - } - if (result1 === null) { - pos = pos2; - } - if (result1 !== null) { - result0 = []; - while (result1 !== null) { - result0.push(result1); - pos2 = pos; - pos3 = pos; - result1 = []; - result2 = parse_Comment(); - while (result2 !== null) { - result1.push(result2); - result2 = parse_Comment(); - } - if (result1 !== null) { - if (/^[ \t]/.test(input.charAt(pos))) { - result2 = input.charAt(pos); - pos++; - } else { - result2 = null; - if (reportFailures === 0) { - matchFailed("[ \\t]"); - } - } - if (result2 !== null) { - result3 = []; - result4 = parse_Comment(); - while (result4 !== null) { - result3.push(result4); - result4 = parse_Comment(); - } - if (result3 !== null) { - result1 = [result1, result2, result3]; - } else { - result1 = null; - pos = pos3; - } - } else { - result1 = null; - pos = pos3; - } - } else { - result1 = null; - pos = pos3; - } - if (result1 !== null) { - result1 = (function(offset, m) {return m[1]})(pos2, result1); - } - if (result1 === null) { - pos = pos2; - } - } - } else { - result0 = null; - } - if (result0 !== null) { - result1 = (function(offset, i) { return i.length > indent.length; })(pos, result0) ? "" : null; - if (result1 !== null) { - result0 = [result0, result1]; - } else { - result0 = null; - pos = pos1; - } - } else { - result0 = null; - pos = pos1; - } - if (result0 !== null) { - result0 = (function(offset, i) { indentStack.push(indent); indent = i.join(""); pos = offset; })(pos0, result0[0]); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - function parse_DEDENT() { - var result0; - var pos0, pos1; - - pos0 = pos; - pos1 = pos; - result0 = []; - if (result0 !== null) { - result0 = (function(offset) { indent = indentStack.pop(); })(pos0); - } - if (result0 === null) { - pos = pos0; - } - return result0; - } - - - function cleanupExpected(expected) { - expected.sort(); - - var lastExpected = null; - var cleanExpected = []; - for (var i = 0; i < expected.length; i++) { - if (expected[i] !== lastExpected) { - cleanExpected.push(expected[i]); - lastExpected = expected[i]; - } - } - return cleanExpected; - } - - function computeErrorPosition() { - /* - * The first idea was to use |String.split| to break the input up to the - * error position along newlines and derive the line and column from - * there. However IE's |split| implementation is so broken that it was - * enough to prevent it. - */ - - var line = 1; - var column = 1; - var seenCR = false; - - for (var i = 0; i < Math.max(pos, rightmostFailuresPos); i++) { - var ch = input.charAt(i); - if (ch === "\n") { - if (!seenCR) { line++; } - column = 1; - seenCR = false; - } else if (ch === "\r" || ch === "\u2028" || ch === "\u2029") { - line++; - column = 1; - seenCR = true; - } else { - column++; - seenCR = false; - } - } - - return { line: line, column: column }; - } - - var indentStack = [], indent = ""; - - var result = parseFunctions[startRule](); - - /* - * The parser is now in one of the following three states: - * - * 1. The parser successfully parsed the whole input. - * - * - |result !== null| - * - |pos === input.length| - * - |rightmostFailuresExpected| may or may not contain something - * - * 2. The parser successfully parsed only a part of the input. - * - * - |result !== null| - * - |pos < input.length| - * - |rightmostFailuresExpected| may or may not contain something - * - * 3. The parser did not successfully parse any part of the input. - * - * - |result === null| - * - |pos === 0| - * - |rightmostFailuresExpected| contains at least one failure - * - * All code following this comment (including called functions) must - * handle these states. - */ - if (result === null || pos !== input.length) { - var offset = Math.max(pos, rightmostFailuresPos); - var found = offset < input.length ? input.charAt(offset) : null; - var errorPosition = computeErrorPosition(); - - throw new this.SyntaxError( - cleanupExpected(rightmostFailuresExpected), - found, - offset, - errorPosition.line, - errorPosition.column - ); - } - - return result; - }, - - /* Returns the parser source code. */ - toSource: function() { return this._source; } - }; - - /* Thrown when a parser encounters a syntax error. */ - - result.SyntaxError = function(expected, found, offset, line, column) { - function buildMessage(expected, found) { - var expectedHumanized, foundHumanized; - - switch (expected.length) { - case 0: - expectedHumanized = "end of input"; - break; - case 1: - expectedHumanized = expected[0]; - break; - default: - expectedHumanized = expected.slice(0, expected.length - 1).join(", ") - + " or " - + expected[expected.length - 1]; - } - - foundHumanized = found ? quote(found) : "end of input"; - - return "Expected " + expectedHumanized + " but " + foundHumanized + " found."; - } - - this.name = "SyntaxError"; - this.expected = expected; - this.found = found; - this.message = buildMessage(expected, found); - this.offset = offset; - this.line = line; - this.column = column; - }; - - result.SyntaxError.prototype = Error.prototype; - - return result; -})(); \ No newline at end of file diff --git a/src/parser.pegjs b/src/parser.pegjs deleted file mode 100644 index 4c473a9..0000000 --- a/src/parser.pegjs +++ /dev/null @@ -1,1474 +0,0 @@ -{ var indentStack = [], indent = ""; } - -start - = (code_block / embedding)* - -/* ===== Embedding text or markup ===== */ -embedding - = body:embedding_TEXT_INNER+ { return {type:'embed', content:body.join('')}} - -embedding_TEXT_INNER - = !script_start !script_end c:. {return c} - -/* ===== Expression ===== */ -code_block - = script_start __ LineTerminator els:(statements) script_end { return {type:'block', elements:els}} - -PrimaryExpression - = ThisToken { return { type: "This" }; } - / NullLiteral - / name:(LeftHandSideExpressionWP) "?" { - return { - type: 'FunctionCall', - name: { - type: 'Variable', - name: 'isset' - }, - arguments: [ - name - ] - }; - } - / name:Identifier { return { type: "Variable", name: name }; } - / "@" name:Identifier { - return { - type: "PropertyAccess", - base: {type: "Variable", name: "this"}, - name: name - }; - } - / NamespaceId - / Literal - / ArrayLiteral - / "(" __ expression:Expression __ ")" { return expression; } - -PrimaryExpressionW - = ThisToken { return { type: "This" }; } - / NullLiteral - / name:Identifier { return { type: "Variable", name: name }; } - / "@" name:Identifier { - return { - type: "PropertyAccess", - base: {type: "Variable", name: "this"}, - name: name - }; - } - / NamespaceId - / Literal - / ArrayLiteral - / "(" __ expression:Expression __ ")" { return expression; } - -Expression - = head:AssignmentExpression - tail:(__ "," __ AssignmentExpression)* { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - } - -AssignmentExpression - = left:LeftHandSideExpression __ - operator:AssignmentOperator __ - right:(FunctionExpression/AssignmentExpression) { - return { - type: "AssignmentExpression", - operator: operator, - left: left, - right: right - }; - } - / FunctionExpression - / ConditionalExpression - -SliceExpression - = slicer:MemberExpression __ "[" __ start:Expression? __ ':' __ end:Expression? __ "]" { - return { - type: "SliceExpression", - slicer: slicer, - start: start !== '' ? start:0, - end: end !== '' ? end:null - }; - } - -SliceExpressionWP - = slicer:MemberExpressionWP __ "[" __ start:Expression? __ ':' __ end:Expression? __ "]" { - return { - type: "SliceExpression", - slicer: slicer, - start: start !== '' ? start:0, - end: end !== '' ? end:null - }; - } - -FunctionExpression - = params:( "(" __ prm:FormalParameterList? __ ")" {return prm;})? __ "->" __ - body:( b:blank* INDENT c:(n:statement)* DEDENT { return b.concat(c); })? { - if(params == '') { - params = [] - } - return { - type: "Function", - params: params, - body: body !== '' ? body:null - } - } - -FormalParameterList - = head:AssignmentExpressionOfFunction tail:(__ "," __ AssignmentExpressionOfFunction)* { - var result = [head]; - for (var i = 0; i < tail.length; i++) { - result.push(tail[i][3]); - } - return result; - } - -AssignmentExpressionOfFunction - = left:LeftHandSideAssignmentExpressionOfFunction __ - operator:("=" (!"=") { return "="; }) __ - right:AssignmentExpression { - return { - type: "AssignmentExpressionOfFunction", - operator: operator, - left: left, - right: right - }; - } - / LeftHandSideAssignmentExpressionOfFunction - -LeftHandSideAssignmentExpressionOfFunction - = '&' name:Identifier { return { type: "ReferenceVariable", name: name }; } - / name:Identifier { return { type: "Variable", name: name }; } - -AssignmentOperator - = "=" (!"=") { return "="; } - / "*=" - / "/=" - / "%=" - / "+=" - / ".=" - / "-=" - / "<<=" - / ">>=" - / ">>>=" - / "&=" - / "^=" - / "|=" - -LeftHandSideExpression - = CallExpression - / SliceExpression - / NewExpression - -LeftHandSideExpressionWP - = CallExpressionWP - / SliceExpressionWP - / NewExpressionWP - -NewExpression - = MemberExpression - / NewToken __ constructor:(NamespaceId/Identifier) { - return { - type: "NewOperator", - constructor: constructor, - arguments: [] - }; - } - -NewExpressionWP - = MemberExpressionWP - / NewToken __ constructor:(NamespaceId/Identifier) { - return { - type: "NewOperator", - constructor: constructor, - arguments: [] - }; - } - -MemberExpression - = base:( - PrimaryExpression - / NewToken __ constructor:(NamespaceId/Identifier) __ arguments:Arguments { - return { - type: "NewOperator", - constructor: constructor, - arguments: arguments - }; - } - ) - accessors:( - __ "[" __ "]" { return ['PushArray']; } - / __ "[" __ name:Expression __ "]" { return name; } - / __ "." __ name:(IdentifierName) { return name; } - / __ '{' __ name:Expression __ '}'{ - return { - type: 'PropertyFields', - name: name - } - } - / __ "::" __ name:IdentifierName { return [name, '::']; } - )* { - var result = base; - for (var i = 0; i < accessors.length; i++) { - result = { - type: "PropertyAccess", - base: result, - name: accessors[i] - }; - } - return result; - } - -MemberExpressionWP - = base:( - PrimaryExpressionW - / NewToken __ constructor:(NamespaceId/Identifier) __ arguments:Arguments { - return { - type: "NewOperator", - constructor: constructor, - arguments: arguments - }; - } - ) - accessors:( - __ "[" __ name:Expression __ "]" { return name; } - / __ "." __ name:(IdentifierName) { return name; } - / __ '{' __ name:Expression __ '}'{ - return { - type: 'PropertyFields', - name: name - } - } - / __ "::" __ name:IdentifierName { return [name, '::']; } - )* { - var result = base; - for (var i = 0; i < accessors.length; i++) { - result = { - type: "PropertyAccess", - base: result, - name: accessors[i] - }; - } - return result; - } - -CallExpression - = base:( - name:MemberExpression __ arguments:Arguments { - return { - type: "FunctionCall", - name: name, - arguments: arguments - }; - } - ) - argumentsOrAccessors:( - __ arguments:Arguments { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - } - / __ "[" __ name:Expression __ "]" { - return { - type: "PropertyAccessProperty", - name: name - }; - } - / __ "." __ name:(IdentifierName) { - return { - type: "PropertyAccessProperty", - name: name - }; - } - )* { - var result = base; - for (var i = 0; i < argumentsOrAccessors.length; i++) { - switch (argumentsOrAccessors[i].type) { - case "FunctionCallArguments": - result = { - type: "FunctionCall", - name: result, - arguments: argumentsOrAccessors[i].arguments - }; - break; - case "PropertyAccessProperty": - result = { - type: "PropertyAccess", - base: result, - name: argumentsOrAccessors[i].name - }; - break; - default: - throw new Error( - "Invalid expression type: " + argumentsOrAccessors[i].type - ); - } - } - return result; - } - -CallExpressionWP - = base:( - name:MemberExpressionWP __ arguments:Arguments { - return { - type: "FunctionCall", - name: name, - arguments: arguments - }; - } - ) - argumentsOrAccessors:( - __ arguments:Arguments { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - } - / __ "[" __ name:Expression __ "]" { - return { - type: "PropertyAccessProperty", - name: name - }; - } - / __ "." __ name:(IdentifierName) { - return { - type: "PropertyAccessProperty", - name: name - }; - } - )* { - var result = base; - for (var i = 0; i < argumentsOrAccessors.length; i++) { - switch (argumentsOrAccessors[i].type) { - case "FunctionCallArguments": - result = { - type: "FunctionCall", - name: result, - arguments: argumentsOrAccessors[i].arguments - }; - break; - case "PropertyAccessProperty": - result = { - type: "PropertyAccess", - base: result, - name: argumentsOrAccessors[i].name - }; - break; - default: - throw new Error( - "Invalid expression type: " + argumentsOrAccessors[i].type - ); - } - } - return result; - } - -Arguments - = "(" __ arguments:ArgumentList? __ ")" { - return arguments !== "" ? arguments : []; - } - -ArgumentList - = head:AssignmentExpression tail:(__ "," __ AssignmentExpression)* { - var result = [head]; - for (var i = 0; i < tail.length; i++) { - result.push(tail[i][3]); - } - return result; - } - -ConditionalExpression - = condition:LogicalORExpression __ - "?" __ trueExpression:AssignmentExpression __ - ":" __ falseExpression:AssignmentExpression { - return { - type: "ConditionalExpression", - condition: condition, - trueExpression: trueExpression, - falseExpression: falseExpression - }; - } - / LogicalORExpression - -LogicalORExpression - = head:LogicalANDExpression - tail:(__ LogicalOROperator __ LogicalANDExpression)* { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - } - -LogicalOROperator - = ("||"/"or") !"=" { return "||"; } - -LogicalANDExpression - = head:BitwiseORExpression - tail:(__ LogicalANDOperator __ BitwiseORExpression)* { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - } - -LogicalANDOperator - = ("&&"/'and') !"=" { return "&&"; } - -BitwiseORExpression - = head:BitwiseXORExpression - tail:(__ BitwiseOROperator __ BitwiseXORExpression)* { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - } - -BitwiseOROperator - = "|" !("|" / "=") { return "|"; } - -BitwiseXORExpression - = head:BitwiseANDExpression - tail:(__ BitwiseXOROperator __ BitwiseANDExpression)* { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - } - -BitwiseXOROperator - = "^" !("^" / "=") { return "^"; } - -BitwiseANDExpression - = head:EqualityExpression - tail:(__ BitwiseANDOperator __ EqualityExpression)* { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - } - -BitwiseANDOperator - = "&" !("&" / "=") { return "&"; } - -EqualityExpression - = head:RelationalExpression - tail:(__ EqualityOperator __ RelationalExpression)* { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - } - -EqualityOperator - = "===" - / "!==" - / "==" - / "!=" - -ShiftExpression - = head:DotAddExpression - tail:(__ ShiftOperator __ DotAddExpression)* { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - } - -ShiftOperator - = "<<" - / ">>>" - / ">>" - -RelationalExpression - = head:ShiftExpression - tail:(__ RelationalOperator __ ShiftExpression)* { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - } - -RelationalOperator - = "<=" - / ">=" - / "<" - / ">" - / OfToken - -PostfixExpression - = expression:LeftHandSideExpression _ operator:PostfixOperator { - return { - type: "PostfixExpression", - operator: operator, - expression: expression - }; - } - / LeftHandSideExpression - -PostfixOperator - = "++" - / "--" - -UnaryExpression - = PostfixExpression - / operator:UnaryOperator __ expression:UnaryExpression { - return { - type: "UnaryExpression", - operator: operator, - expression: expression - }; - } - -UnaryOperator - = "++" - / "--" - / "+" - / "-" - / "~" - / "!" - -MultiplicativeExpression - = head:UnaryExpression - tail:(__ MultiplicativeOperator __ UnaryExpression)* { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - } - -MultiplicativeOperator - = operator:("*" / "/" / "%") !"=" { return operator; } - -AdditiveExpression - = head:MultiplicativeExpression - tail:(__ AdditiveOperator __ MultiplicativeExpression)* { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: tail[i][1], - left: result, - right: tail[i][3] - }; - } - return result; - } - -DotAddExpression - = head:AdditiveExpression - tail:(WhiteSpace+ AdditiveExpression)* { - var result = head; - for (var i = 0; i < tail.length; i++) { - result = { - type: "BinaryExpression", - operator: '.', - left: result, - right: tail[i][1] - }; - } - return result; - } - -AdditiveOperator - = "+" !("+" / "=") { return "+"; } - / "-" !("-" / "=") { return "-"; } - -/* ===== Statements ===== */ -statements - = INDENT? m:(statement)* - {return m;} - -statement - = SAMEDENT m:SwitchStatement EOL? - { return m; } - / m:IfStatement - { return m; } - / m:ForStatement - { return m; } - / m:WhileStatement - { return m; } - / m:TryStatement - { return m; } - / FunctionInLineCall - / SAMEDENT m:FunctionDeclaration EOL? - { return m; } - / SAMEDENT m:NamespaceDeclaration EOL? - { return m; } - / SAMEDENT m:ClassDeclaration EOL? - { return m; } - / SAMEDENT m:ContinueStatement EOL? - { return m; } - / SAMEDENT m:BreakStatement EOL? - { return m; } - / SAMEDENT m:EchoStatement EOL? - { return m; } - / SAMEDENT m:ReturnStatement EOL? - { return m; } - / SAMEDENT m:Include_onceStatement EOL? - { return m; } - / SAMEDENT m:Require_onceStatement EOL? - { return m; } - / SAMEDENT m:RequireStatement EOL? - { return m; } - / SAMEDENT m:IncludeStatement EOL? - { return m; } - / ExpressionStatement - / blank - -statementNoSameDENT - = CallExpression - / Expression - -ExpressionStatement - = SAMEDENT m:Expression EOL? - { return m; } - -FunctionInLineCall - = SAMEDENT m:CallExpression EOL? - { return m; } - -CallExpression - = base:( - name:(Literal? n:MemberExpression) __ arguments:ArgumentsForInline { - return { - type: "FunctionCall", - name: name, - arguments: arguments - }; - } - ) - argumentsOrAccessors:( - __ arguments:Arguments { - return { - type: "FunctionCallArguments", - arguments: arguments - }; - } - / __ "[" __ name:Expression __ "]" { - return { - type: "PropertyAccessProperty", - name: name - }; - } - / __ "." __ name:IdentifierName { - return { - type: "PropertyAccessProperty", - name: name - }; - } - )* { - var result = base; - for (var i = 0; i < argumentsOrAccessors.length; i++) { - switch (argumentsOrAccessors[i].type) { - case "FunctionCallArguments": - result = { - type: "FunctionCall", - name: result, - arguments: argumentsOrAccessors[i].arguments - }; - break; - case "PropertyAccessProperty": - result = { - type: "PropertyAccess", - base: result, - name: argumentsOrAccessors[i].name - }; - break; - default: - throw new Error( - "Invalid expression type: " + argumentsOrAccessors[i].type - ); - } - } - return result; - } - -ArgumentsForInline - = "(" __ arguments:ArgumentList? __ ")" { - return arguments !== "" ? arguments : []; - } - - -IfStatement - = SAMEDENT IfToken __ "("? __ condition:Expression __ ")"? __ EOL? - ifStatement:( b:blank* INDENT c:(n:statement)* DEDENT { return b.concat(c); })? - elseifStatement:( - (SAMEDENT ElseIfToken __ "("? __ condition:Expression __ ")"? __ EOL? - statement:( b:blank* INDENT c:(n:statement)* DEDENT { return b.concat(c); })? {return { - condition: condition, - statement: statement, - } - })+ - )? - elseStatement:(SAMEDENT ElseToken __ EOL? (b:blank* INDENT c:(n:statement)* DEDENT { return b.concat(c); })? )? { - return { - type: "IfStatement", - condition: condition, - ifStatement: ifStatement !== "" ? ifStatement : null, - elseStatement: elseStatement !== "" ? elseStatement[4] : null, - elseifStatement: elseifStatement !== "" ? elseifStatement : null - }; - } - -ForStatement - = SAMEDENT ForToken __ - "("? __ - initializer:Expression? __ - (";" __ - test:Expression? __ - ";" __ - counter:Expression? __ - ")"?) __ EOL? - statement:(b:blank* INDENT c:(n:statement)* DEDENT { return b.concat(c); })? { - return { - type: "ForStatement", - initializer: initializer !== "" ? initializer : null, - test: test !== "" ? test : null, - counter: counter !== "" ? counter : null, - statement: statement - }; - } - / SAMEDENT ForToken __ - "("? __ - initializer:Expression? __ - (";" __ - test:Expression? __ - ";" __ - counter:Expression? __ - ")"?)? __ EOL? - statement:(b:blank* INDENT c:(n:statement)* DEDENT { return b.concat(c); })? { - if(typeof test == 'undefined') { - test = ''; - } - if(typeof counter == 'undefined') { - counter = ''; - } - return { - type: "ForStatement", - initializer: initializer !== "" ? initializer : null, - test: test !== "" ? test : null, - counter: counter !== "" ? counter : null, - statement: statement !== "" ? statement: null - }; - } - -WhileStatement - = SAMEDENT WhileToken __ "("? __ condition:Expression __ ")"? __ EOL? - statement:(b:blank* INDENT c:(n:statement)* DEDENT { return b.concat(c); })? { - return { - type: 'WhileStatement', - condition: condition, - statement: statement - }; - } - -SwitchStatement - = SwitchToken __ "("? __ variable:Expression __ ")"? __ - cases:(b:blank* INDENT c:(n:SwitchCase)* DEDENT { return b.concat(c); }) - elsed:(b:blank* INDENT c:(n:SwitchElse) DEDENT { return c; })? { - if(typeof elsed == 'undefined') { - elsed = ''; - } - return { - type: 'SwitchStatement', - variable: variable, - cases: cases, - elsed: elsed - }; - } - -SwitchCase - = SAMEDENT CaseToken __ value:Expression __ ThenToken? __ EOL? - statement:( b:blank* INDENT c:(statement)* DEDENT { return b.concat(c); })? { - return { - type: 'case', - value: value, - statement: statement - }; - } - -SwitchElse - = SAMEDENT ElseToken __ EOL? - statement:( b:blank* INDENT c:(statement)* DEDENT { return b.concat(c); })? { - return statement; - } - -BreakStatement - = BreakToken { - return { - type: 'break' - }; - } - -TryStatement - = SAMEDENT TryToken __ EOL? - TryStatement:( b:blank* INDENT c:(n:statement)* DEDENT { return b.concat(c); })? - CatchStatemnt:(SAMEDENT CatchToken __ CatchErrVar:CatchErrVar __ EOL? - ( b:blank* INDENT c:(n:statement)* DEDENT { return b.concat(c); })? - ) - FinallyStatemnt:(SAMEDENT finallyToken __ EOL? (b:blank* INDENT c:(n:statement)* DEDENT { return b.concat(c); })? )? { - return { - type: "TryStatement", - TryStatement: TryStatement !== "" ? TryStatement : null, - CatchStatement: CatchStatemnt[6] !== "" ? CatchStatemnt[6] : null, - CatchErrVar: CatchStatemnt[3], - FinallyStatemnt: FinallyStatemnt[4] !== "" ? FinallyStatemnt[4] : null - }; - } - -CatchErrVar - = Type:Identifier WhiteSpace+ name:Identifier { - return { - type: "VariableWithType", - name: { - type:"Variable", - name:name - }, - vtype: Type - }; - } - / name:Identifier { - return { - type: "VariableWithType", - name: { - type:"Variable", - name:name - }, - vtype: "Exception" - }; - } - -FunctionDeclaration - = name:(!('$') Identifier) __ params:( "(" __ prm:FormalParameterList? __ ")" {return prm;})? __ "->" __ - body:( b:blank* INDENT c:(n:statement)* DEDENT { return b.concat(c); })? { - if(params == '') { - params = [] - } - return { - type: "FunctionDeclaration", - name: name[1], - params: params, - body: body !== '' ? body: null - } - } - -NamespaceDeclaration - = NamespaceToken __ name:NamespaceId __ '->' __ - body:( b:blank* INDENT c:(n:statement)* DEDENT { return b.concat(c); })? { - return { - type:"NamespaceDeclaration", - name: name, - body: body !== '' ? body: null - } - } - / NamespaceToken __ name:NamespaceId __ { - return { - type:"NamespaceDeclaration", - name: name, - body: null - }; - } - -NamespaceId - = start:("\\"/"/")? - head:(Identifier) - tail:(("\\"/"/") (Identifier))* { - if(head != '') { - var array = [head]; - } else { - return ''; - } - for (var i = 0; i < tail.length; i++) { - array.push(tail[i][1]) - } - return { - type: "NamespaceIdentifier", - name: array, - start: start !== '' ? true : false - }; - } - -ClassDeclaration - = ClassToken __ name:Identifier __ '->' __ - body:( b:blank* INDENT c:(n:ClassStatement)* DEDENT { return b.concat(c); })? { - return { - type:"ClassDeclaration", - name: name, - body: body !== '' ? body: null - } - } - -ClassStatement - = m:ClassFunctionDeclaration - { return m; } - / SAMEDENT m:ClassConstPropertyDeclaration EOL? - { return m; } - / SAMEDENT m:ClassPropertyDeclaration EOL? - { return m; } - / blank - -ClassPropertyDeclaration - = Visibility:(PropertyVisibility)? __ - left:(name:Identifier { return { type: "Variable", name: name }; }) __ - m:(operator:AssignmentOperator __ - right:(!(EOTLiteral/EODLiteral) n:(AssignmentExpression/FunctionExpression)))? { - return { - type: "ClassPropertyDeclaration", - operator: m !== "" ? m[0]: false, - left: left, - right: m !== "" ? m[2][1]: false, - Visibility: Visibility !== "" ? Visibility : false, - }; - } - -ClassConstPropertyDeclaration - = ConstToken __ left:(name:Identifier { return { type: "Variable", name: name }; }) __ - m:(operator:AssignmentOperator __ - right:(!(EOTLiteral/EODLiteral) n:(AssignmentExpression/FunctionExpression)))? { - return { - type: "ClassConstPropertyDeclaration", - operator: m !== "" ? m[0]: false, - left: left, - right: m !== "" ? m[2][1]: false - }; - } - -ClassFunctionDeclaration - = SAMEDENT Visibility:(PropertyVisibility)? __ name:(!('$') Identifier) __ params:( "(" __ prm:FormalParameterList? __ ")" {return prm;})? __ "->" __ EOL? - body:( b:blank* INDENT c:(n:statement)* DEDENT { return b.concat(c); })? { - if(params == '') { - params = [] - } - return { - type: "ClassFunctionDeclaration", - name: name[1], - params: params, - body: body !== '' ? body: null, - Visibility: Visibility !== "" ? Visibility : false, - } - } - -PropertyVisibility - = PrivateToken - / ProtectedToken - / PublicToken - -ContinueStatement - = ContinueToken __ label:AssignmentExpression? { - return { - type: "ContinueStatement", - label: label !== "" ? label : null - }; - } - -BreakStatement - = BreakToken __ label:AssignmentExpression? { - return { - type: "BreakStatement", - label: label !== "" ? label : null - }; - } - -EchoStatement - = EchoToken __ label:AssignmentExpression? { - return { - type: "EchoStatement", - label: label !== "" ? label : null - }; - } - -ReturnStatement - = ReturnToken __ label:AssignmentExpression? { - return { - type: "ReturnStatement", - label: label !== "" ? label : null - }; - } - -RequireStatement - = RequireToken __ label:AssignmentExpression? { - return { - type: "RequireStatement", - label: label !== "" ? label : null - }; - } - -Require_onceStatement - = Require_onceToken __ label:AssignmentExpression? { - return { - type: "Require_onceStatement", - label: label !== "" ? label : null - }; - } - -Include_onceStatement - = Include_onceToken __ label:AssignmentExpression? { - return { - type: "Include_onceStatement", - label: label !== "" ? label : null - }; - } - -IncludeStatement - = IncludeToken __ label:AssignmentExpression? { - return { - type: "IncludeStatement", - label: label !== "" ? label : null - }; - } - -/* ===== Tokens ===== */ -AndToken = 'and' -BreakToken = 'break' -CaseToken = 'case' -CatchToken = 'catch' -ClassToken = "class" -ConstToken = "const" -ContinueToken = 'continue' -EchoToken = 'echo' -ElseToken = 'else' -ElseIfToken = 'else' __ 'if' -FalseToken = 'false' -finallyToken = 'finally' -ForToken = 'for' -IfToken = 'if' -IncludeToken = 'include' -Include_onceToken = 'include_once' -InToken = 'in' -NamespaceToken = 'namespace' -NewToken = 'new' -NullToken = 'NULL' / 'None' -OfToken = 'of' -OrToken = 'or' -ReturnToken = 'return' -RequireToken = 'require' -Require_onceToken = 'require_once' -PrivateToken = "private" -ProtectedToken = "protected" -PublicToken = "public" -script_start = '{{' -script_end = '}}' -StaticToken = 'static' -SwitchToken = 'switch' -ThenToken = 'then' -ThisToken = 'this' -TrueToken = 'true' -TryToken = 'try' -WhileToken = 'while' - -ReservedWord - = AndToken - / BreakToken - / CaseToken - / CatchToken - / ClassToken - / ConstToken - / ContinueToken - / ElseToken - / ElseToken - / FalseToken - / finallyToken - / ForToken - / IfToken - / Include_onceToken - / IncludeToken - / InToken - / NamespaceToken - / NewToken - / NullToken - / OfToken - / OrToken - / ReturnToken - / RequireToken - / Require_onceToken - / PrivateToken - / ProtectedToken - / PublicToken - / script_end - / script_start - / SwitchToken - / StaticToken - / ThenToken - / ThisToken - / TrueToken - / TryToken - / 'function' - / WhileToken - -SourceCharacter - = . - -WhiteSpace "whitespace" - = [\t\v\f \u00A0\uFEFF] - / Zs - -LineTerminator - = [\n\r\u2028\u2029] / LineTerminatorSequence - -LineTerminatorSequence "end of line" - = "\n" - / "\r\n" - / "\r" - / "\u2028" // line separator - / "\u2029" // paragraph separator - -Comment "comment" - = MultiLineComment - / SingleLineComment - -MultiLineComment - = "/*" (!"*/" SourceCharacter)* "*/" - / "###" (!"###" SourceCharacter)* "###" - -MultiLineCommentNoLineTerminator - = "/*" (!("*/" / LineTerminator) SourceCharacter)* "*/" - / "###" (!("###" / LineTerminator) SourceCharacter)* "###" - -SingleLineComment - = ("//"/'#') (!LineTerminator SourceCharacter)* - -Identifier "identifier" - = f:ReservedWord? name:IdentifierName { return f+name; } - -IdentifierName "identifier" - = start:IdentifierStart parts:IdentifierPart* { - return start + parts.join(""); - } - -IdentifierStart - = UnicodeLetter - / "_" - / '$' - -IdentifierPart - = IdentifierStart - / UnicodeCombiningMark - / UnicodeDigit - / UnicodeConnectorPunctuation - / "\u200C" { return "\u200C"; } // zero-width non-joiner - / "\u200D" { return "\u200D"; } // zero-width joiner - -UnicodeLetter - = Lu - / Ll - / Lt - / Lm - / Lo - / Nl - -UnicodeCombiningMark - = Mn - / Mc - -UnicodeDigit - = Nd - -UnicodeConnectorPunctuation - = Pc - -_ - = (WhiteSpace / MultiLineCommentNoLineTerminator / SingleLineComment)* - -__ - = (WhiteSpace / Comment)* -___ - = (WhiteSpace / LineTerminator / Comment)* - -Literal - = BooleanLiteral - / value:NumericLiteral { - return { - type: "NumericLiteral", - value: value - }; - } - / value:StringLiteral { - return { - type: "StringLiteral", - value: value - }; - } - / value:PHPLiteral { - return { - type: "PHPLiteral", - value: value - } - } - / value:EODLiteral { - return { - type: "EODLiteral", - value: value - } - } - / value:EOTLiteral { - return { - type: "EOTLiteral", - value: value - } - } - -NullLiteral - = NullToken { return { type: "NullLiteral" }; } - -BooleanLiteral - = TrueToken { return { type: "BooleanLiteral", value: true }; } - / FalseToken { return { type: "BooleanLiteral", value: false }; } - -NumericLiteral "number" - = literal:(HexIntegerLiteral / DecimalLiteral) { - return literal; - } - -DecimalLiteral - = before:DecimalIntegerLiteral - "." - after:DecimalDigits? - exponent:ExponentPart? { - return parseFloat(before + "." + after + exponent); - } - / "." after:DecimalDigits exponent:ExponentPart? { - return parseFloat("." + after + exponent); - } - / before:DecimalIntegerLiteral exponent:ExponentPart? { - return parseFloat(before + exponent); - } - -DecimalIntegerLiteral - = "0" / digit:NonZeroDigit digits:DecimalDigits? { return digit + digits; } - -DecimalDigits - = digits:DecimalDigit+ { return digits.join(""); } - -DecimalDigit - = [0-9] - -NonZeroDigit - = [1-9] - -ExponentPart - = indicator:ExponentIndicator integer:SignedInteger { - return indicator + integer; - } - -ExponentIndicator - = [eE] - -SignedInteger - = sign:[-+]? digits:DecimalDigits { return sign + digits; } - -HexIntegerLiteral - = "0" [xX] digits:HexDigit+ { return parseInt("0x" + digits.join("")); } - -HexDigit - = [0-9a-fA-F] - -StringLiteral "string" - = parts:('"' DoubleStringCharacters? '"' / "'" SingleStringCharacters? "'") { - return parts[1]; - } - -DoubleStringCharacters - = chars:DoubleStringCharacter+ { return chars.join(""); } - -SingleStringCharacters - = chars:SingleStringCharacter+ { return chars.join(""); } - -DoubleStringCharacter - = !('"' / "\\" / LineTerminator) char_:SourceCharacter { return char_; } - / m:("\\" .) { return "'.\"\\"+m[1]+"\".'"; } - -SingleStringCharacter - = !("'" / "\\" / LineTerminator) char_:SourceCharacter { return char_; } - / m:('\\' .) { return "'.\"\\"+m[1]+"\".'"; } - -EODLiteral - = '`' EODv:EODString+ '`' { - return EODv.join(""); - } - -EOTLiteral - = '`' EOTv:EOTString+ '`' { - return EOTv.join(""); - } - -EODString - = !("`" / '$') char_:SourceCharacter { return char_; } - -EOTString - = !("`") char_:SourceCharacter { return char_; } - -ArrayLiteral - = "[" ___ properties:(PropertyNameAndValueList ___ ("," ___)?)? "]" { - return { - type: "keyBasedArrayLiteral", - properties: properties !== "" ? properties[0] : [] - }; - } - / "[" ___ elements:ElementList? ___ (Elision ___)? "]" { - return { - type: "ArrayLiteral", - elements: elements !== "" ? elements : [] - }; - } - -ElementList - = (Elision ___)? - head:AssignmentExpression - tail:(___ "," __ Elision? ___ AssignmentExpression)* { - var result = [head]; - for (var i = 0; i < tail.length; i++) { - result.push(tail[i][5]); - } - return result; - } - -Elision - = "," (__ ",")* - -PropertyNameAndValueList - = head:(PropertyAssignment/AssignmentExpression) tail:(___ "," ___ (PropertyAssignment/AssignmentExpression))* { - var result = [head]; - for (var i = 0; i < tail.length; i++) { - result.push(tail[i][3]); - } - return result; - } - -PropertyAssignment - = name:PropertyName ___ ":" ___ value:AssignmentExpression { - return { - type: "PropertyAssignment", - name: name, - value: value - }; - } - -PropertyName - = IdentifierName - / StringLiteral - / NumericLiteral - -PHPLiteral - = '``' RAW:RAWString+ '``' { - return RAW.join(""); - } - -RAWString - = !("``") char_:SourceCharacter { return char_; } -/* - * Unicode Character Categories - * - * Source: http://www.fileformat.info/info/unicode/category/index.htm - */ - -// Letter, Lowercase -Ll = [\u0061\u0062\u0063\u0064\u0065\u0066\u0067\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077\u0078\u0079\u007A\u00AA\u00B5\u00BA\u00DF\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F8\u00F9\u00FA\u00FB\u00FC\u00FD\u00FE\u00FF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E\u017F\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199\u019A\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD\u01BE\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233\u0234\u0235\u0236\u0237\u0238\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F\u0250\u0251\u0252\u0253\u0254\u0255\u0256\u0257\u0258\u0259\u025A\u025B\u025C\u025D\u025E\u025F\u0260\u0261\u0262\u0263\u0264\u0265\u0266\u0267\u0268\u0269\u026A\u026B\u026C\u026D\u026E\u026F\u0270\u0271\u0272\u0273\u0274\u0275\u0276\u0277\u0278\u0279\u027A\u027B\u027C\u027D\u027E\u027F\u0280\u0281\u0282\u0283\u0284\u0285\u0286\u0287\u0288\u0289\u028A\u028B\u028C\u028D\u028E\u028F\u0290\u0291\u0292\u0293\u0295\u0296\u0297\u0298\u0299\u029A\u029B\u029C\u029D\u029E\u029F\u02A0\u02A1\u02A2\u02A3\u02A4\u02A5\u02A6\u02A7\u02A8\u02A9\u02AA\u02AB\u02AC\u02AD\u02AE\u02AF\u0371\u0373\u0377\u037B\u037C\u037D\u0390\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\u03D0\u03D1\u03D5\u03D6\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF\u03F0\u03F1\u03F2\u03F3\u03F5\u03F8\u03FB\u03FC\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0450\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\u045D\u045E\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0561\u0562\u0563\u0564\u0565\u0566\u0567\u0568\u0569\u056A\u056B\u056C\u056D\u056E\u056F\u0570\u0571\u0572\u0573\u0574\u0575\u0576\u0577\u0578\u0579\u057A\u057B\u057C\u057D\u057E\u057F\u0580\u0581\u0582\u0583\u0584\u0585\u0586\u0587\u1D00\u1D01\u1D02\u1D03\u1D04\u1D05\u1D06\u1D07\u1D08\u1D09\u1D0A\u1D0B\u1D0C\u1D0D\u1D0E\u1D0F\u1D10\u1D11\u1D12\u1D13\u1D14\u1D15\u1D16\u1D17\u1D18\u1D19\u1D1A\u1D1B\u1D1C\u1D1D\u1D1E\u1D1F\u1D20\u1D21\u1D22\u1D23\u1D24\u1D25\u1D26\u1D27\u1D28\u1D29\u1D2A\u1D2B\u1D62\u1D63\u1D64\u1D65\u1D66\u1D67\u1D68\u1D69\u1D6A\u1D6B\u1D6C\u1D6D\u1D6E\u1D6F\u1D70\u1D71\u1D72\u1D73\u1D74\u1D75\u1D76\u1D77\u1D79\u1D7A\u1D7B\u1D7C\u1D7D\u1D7E\u1D7F\u1D80\u1D81\u1D82\u1D83\u1D84\u1D85\u1D86\u1D87\u1D88\u1D89\u1D8A\u1D8B\u1D8C\u1D8D\u1D8E\u1D8F\u1D90\u1D91\u1D92\u1D93\u1D94\u1D95\u1D96\u1D97\u1D98\u1D99\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95\u1E96\u1E97\u1E98\u1E99\u1E9A\u1E9B\u1E9C\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF\u1F00\u1F01\u1F02\u1F03\u1F04\u1F05\u1F06\u1F07\u1F10\u1F11\u1F12\u1F13\u1F14\u1F15\u1F20\u1F21\u1F22\u1F23\u1F24\u1F25\u1F26\u1F27\u1F30\u1F31\u1F32\u1F33\u1F34\u1F35\u1F36\u1F37\u1F40\u1F41\u1F42\u1F43\u1F44\u1F45\u1F50\u1F51\u1F52\u1F53\u1F54\u1F55\u1F56\u1F57\u1F60\u1F61\u1F62\u1F63\u1F64\u1F65\u1F66\u1F67\u1F70\u1F71\u1F72\u1F73\u1F74\u1F75\u1F76\u1F77\u1F78\u1F79\u1F7A\u1F7B\u1F7C\u1F7D\u1F80\u1F81\u1F82\u1F83\u1F84\u1F85\u1F86\u1F87\u1F90\u1F91\u1F92\u1F93\u1F94\u1F95\u1F96\u1F97\u1FA0\u1FA1\u1FA2\u1FA3\u1FA4\u1FA5\u1FA6\u1FA7\u1FB0\u1FB1\u1FB2\u1FB3\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2\u1FC3\u1FC4\u1FC6\u1FC7\u1FD0\u1FD1\u1FD2\u1FD3\u1FD6\u1FD7\u1FE0\u1FE1\u1FE2\u1FE3\u1FE4\u1FE5\u1FE6\u1FE7\u1FF2\u1FF3\u1FF4\u1FF6\u1FF7\u2071\u207F\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146\u2147\u2148\u2149\u214E\u2184\u2C30\u2C31\u2C32\u2C33\u2C34\u2C35\u2C36\u2C37\u2C38\u2C39\u2C3A\u2C3B\u2C3C\u2C3D\u2C3E\u2C3F\u2C40\u2C41\u2C42\u2C43\u2C44\u2C45\u2C46\u2C47\u2C48\u2C49\u2C4A\u2C4B\u2C4C\u2C4D\u2C4E\u2C4F\u2C50\u2C51\u2C52\u2C53\u2C54\u2C55\u2C56\u2C57\u2C58\u2C59\u2C5A\u2C5B\u2C5C\u2C5D\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76\u2C77\u2C78\u2C79\u2C7A\u2C7B\u2C7C\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2D00\u2D01\u2D02\u2D03\u2D04\u2D05\u2D06\u2D07\u2D08\u2D09\u2D0A\u2D0B\u2D0C\u2D0D\u2D0E\u2D0F\u2D10\u2D11\u2D12\u2D13\u2D14\u2D15\u2D16\u2D17\u2D18\u2D19\u2D1A\u2D1B\u2D1C\u2D1D\u2D1E\u2D1F\u2D20\u2D21\u2D22\u2D23\u2D24\u2D25\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F\uA730\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771\uA772\uA773\uA774\uA775\uA776\uA777\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uFB00\uFB01\uFB02\uFB03\uFB04\uFB05\uFB06\uFB13\uFB14\uFB15\uFB16\uFB17\uFF41\uFF42\uFF43\uFF44\uFF45\uFF46\uFF47\uFF48\uFF49\uFF4A\uFF4B\uFF4C\uFF4D\uFF4E\uFF4F\uFF50\uFF51\uFF52\uFF53\uFF54\uFF55\uFF56\uFF57\uFF58\uFF59\uFF5A] - -// Letter, Modifier -Lm = [\u02B0\u02B1\u02B2\u02B3\u02B4\u02B5\u02B6\u02B7\u02B8\u02B9\u02BA\u02BB\u02BC\u02BD\u02BE\u02BF\u02C0\u02C1\u02C6\u02C7\u02C8\u02C9\u02CA\u02CB\u02CC\u02CD\u02CE\u02CF\u02D0\u02D1\u02E0\u02E1\u02E2\u02E3\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5\u06E6\u07F4\u07F5\u07FA\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1C78\u1C79\u1C7A\u1C7B\u1C7C\u1C7D\u1D2C\u1D2D\u1D2E\u1D2F\u1D30\u1D31\u1D32\u1D33\u1D34\u1D35\u1D36\u1D37\u1D38\u1D39\u1D3A\u1D3B\u1D3C\u1D3D\u1D3E\u1D3F\u1D40\u1D41\u1D42\u1D43\u1D44\u1D45\u1D46\u1D47\u1D48\u1D49\u1D4A\u1D4B\u1D4C\u1D4D\u1D4E\u1D4F\u1D50\u1D51\u1D52\u1D53\u1D54\u1D55\u1D56\u1D57\u1D58\u1D59\u1D5A\u1D5B\u1D5C\u1D5D\u1D5E\u1D5F\u1D60\u1D61\u1D78\u1D9B\u1D9C\u1D9D\u1D9E\u1D9F\u1DA0\u1DA1\u1DA2\u1DA3\u1DA4\u1DA5\u1DA6\u1DA7\u1DA8\u1DA9\u1DAA\u1DAB\u1DAC\u1DAD\u1DAE\u1DAF\u1DB0\u1DB1\u1DB2\u1DB3\u1DB4\u1DB5\u1DB6\u1DB7\u1DB8\u1DB9\u1DBA\u1DBB\u1DBC\u1DBD\u1DBE\u1DBF\u2090\u2091\u2092\u2093\u2094\u2C7D\u2D6F\u2E2F\u3005\u3031\u3032\u3033\u3034\u3035\u303B\u309D\u309E\u30FC\u30FD\u30FE\uA015\uA60C\uA67F\uA717\uA718\uA719\uA71A\uA71B\uA71C\uA71D\uA71E\uA71F\uA770\uA788\uFF70\uFF9E\uFF9F] - -// Letter, Other -Lo = [\u01BB\u01C0\u01C1\u01C2\u01C3\u0294\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\u05F0\u05F1\u05F2\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\u063B\u063C\u063D\u063E\u063F\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u066E\u066F\u0671\u0672\u0673\u0674\u0675\u0676\u0677\u0678\u0679\u067A\u067B\u067C\u067D\u067E\u067F\u0680\u0681\u0682\u0683\u0684\u0685\u0686\u0687\u0688\u0689\u068A\u068B\u068C\u068D\u068E\u068F\u0690\u0691\u0692\u0693\u0694\u0695\u0696\u0697\u0698\u0699\u069A\u069B\u069C\u069D\u069E\u069F\u06A0\u06A1\u06A2\u06A3\u06A4\u06A5\u06A6\u06A7\u06A8\u06A9\u06AA\u06AB\u06AC\u06AD\u06AE\u06AF\u06B0\u06B1\u06B2\u06B3\u06B4\u06B5\u06B6\u06B7\u06B8\u06B9\u06BA\u06BB\u06BC\u06BD\u06BE\u06BF\u06C0\u06C1\u06C2\u06C3\u06C4\u06C5\u06C6\u06C7\u06C8\u06C9\u06CA\u06CB\u06CC\u06CD\u06CE\u06CF\u06D0\u06D1\u06D2\u06D3\u06D5\u06EE\u06EF\u06FA\u06FB\u06FC\u06FF\u0710\u0712\u0713\u0714\u0715\u0716\u0717\u0718\u0719\u071A\u071B\u071C\u071D\u071E\u071F\u0720\u0721\u0722\u0723\u0724\u0725\u0726\u0727\u0728\u0729\u072A\u072B\u072C\u072D\u072E\u072F\u074D\u074E\u074F\u0750\u0751\u0752\u0753\u0754\u0755\u0756\u0757\u0758\u0759\u075A\u075B\u075C\u075D\u075E\u075F\u0760\u0761\u0762\u0763\u0764\u0765\u0766\u0767\u0768\u0769\u076A\u076B\u076C\u076D\u076E\u076F\u0770\u0771\u0772\u0773\u0774\u0775\u0776\u0777\u0778\u0779\u077A\u077B\u077C\u077D\u077E\u077F\u0780\u0781\u0782\u0783\u0784\u0785\u0786\u0787\u0788\u0789\u078A\u078B\u078C\u078D\u078E\u078F\u0790\u0791\u0792\u0793\u0794\u0795\u0796\u0797\u0798\u0799\u079A\u079B\u079C\u079D\u079E\u079F\u07A0\u07A1\u07A2\u07A3\u07A4\u07A5\u07B1\u07CA\u07CB\u07CC\u07CD\u07CE\u07CF\u07D0\u07D1\u07D2\u07D3\u07D4\u07D5\u07D6\u07D7\u07D8\u07D9\u07DA\u07DB\u07DC\u07DD\u07DE\u07DF\u07E0\u07E1\u07E2\u07E3\u07E4\u07E5\u07E6\u07E7\u07E8\u07E9\u07EA\u0904\u0905\u0906\u0907\u0908\u0909\u090A\u090B\u090C\u090D\u090E\u090F\u0910\u0911\u0912\u0913\u0914\u0915\u0916\u0917\u0918\u0919\u091A\u091B\u091C\u091D\u091E\u091F\u0920\u0921\u0922\u0923\u0924\u0925\u0926\u0927\u0928\u0929\u092A\u092B\u092C\u092D\u092E\u092F\u0930\u0931\u0932\u0933\u0934\u0935\u0936\u0937\u0938\u0939\u093D\u0950\u0958\u0959\u095A\u095B\u095C\u095D\u095E\u095F\u0960\u0961\u0972\u097B\u097C\u097D\u097E\u097F\u0985\u0986\u0987\u0988\u0989\u098A\u098B\u098C\u098F\u0990\u0993\u0994\u0995\u0996\u0997\u0998\u0999\u099A\u099B\u099C\u099D\u099E\u099F\u09A0\u09A1\u09A2\u09A3\u09A4\u09A5\u09A6\u09A7\u09A8\u09AA\u09AB\u09AC\u09AD\u09AE\u09AF\u09B0\u09B2\u09B6\u09B7\u09B8\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF\u09E0\u09E1\u09F0\u09F1\u0A05\u0A06\u0A07\u0A08\u0A09\u0A0A\u0A0F\u0A10\u0A13\u0A14\u0A15\u0A16\u0A17\u0A18\u0A19\u0A1A\u0A1B\u0A1C\u0A1D\u0A1E\u0A1F\u0A20\u0A21\u0A22\u0A23\u0A24\u0A25\u0A26\u0A27\u0A28\u0A2A\u0A2B\u0A2C\u0A2D\u0A2E\u0A2F\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5A\u0A5B\u0A5C\u0A5E\u0A72\u0A73\u0A74\u0A85\u0A86\u0A87\u0A88\u0A89\u0A8A\u0A8B\u0A8C\u0A8D\u0A8F\u0A90\u0A91\u0A93\u0A94\u0A95\u0A96\u0A97\u0A98\u0A99\u0A9A\u0A9B\u0A9C\u0A9D\u0A9E\u0A9F\u0AA0\u0AA1\u0AA2\u0AA3\u0AA4\u0AA5\u0AA6\u0AA7\u0AA8\u0AAA\u0AAB\u0AAC\u0AAD\u0AAE\u0AAF\u0AB0\u0AB2\u0AB3\u0AB5\u0AB6\u0AB7\u0AB8\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05\u0B06\u0B07\u0B08\u0B09\u0B0A\u0B0B\u0B0C\u0B0F\u0B10\u0B13\u0B14\u0B15\u0B16\u0B17\u0B18\u0B19\u0B1A\u0B1B\u0B1C\u0B1D\u0B1E\u0B1F\u0B20\u0B21\u0B22\u0B23\u0B24\u0B25\u0B26\u0B27\u0B28\u0B2A\u0B2B\u0B2C\u0B2D\u0B2E\u0B2F\u0B30\u0B32\u0B33\u0B35\u0B36\u0B37\u0B38\u0B39\u0B3D\u0B5C\u0B5D\u0B5F\u0B60\u0B61\u0B71\u0B83\u0B85\u0B86\u0B87\u0B88\u0B89\u0B8A\u0B8E\u0B8F\u0B90\u0B92\u0B93\u0B94\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BA9\u0BAA\u0BAE\u0BAF\u0BB0\u0BB1\u0BB2\u0BB3\u0BB4\u0BB5\u0BB6\u0BB7\u0BB8\u0BB9\u0BD0\u0C05\u0C06\u0C07\u0C08\u0C09\u0C0A\u0C0B\u0C0C\u0C0E\u0C0F\u0C10\u0C12\u0C13\u0C14\u0C15\u0C16\u0C17\u0C18\u0C19\u0C1A\u0C1B\u0C1C\u0C1D\u0C1E\u0C1F\u0C20\u0C21\u0C22\u0C23\u0C24\u0C25\u0C26\u0C27\u0C28\u0C2A\u0C2B\u0C2C\u0C2D\u0C2E\u0C2F\u0C30\u0C31\u0C32\u0C33\u0C35\u0C36\u0C37\u0C38\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85\u0C86\u0C87\u0C88\u0C89\u0C8A\u0C8B\u0C8C\u0C8E\u0C8F\u0C90\u0C92\u0C93\u0C94\u0C95\u0C96\u0C97\u0C98\u0C99\u0C9A\u0C9B\u0C9C\u0C9D\u0C9E\u0C9F\u0CA0\u0CA1\u0CA2\u0CA3\u0CA4\u0CA5\u0CA6\u0CA7\u0CA8\u0CAA\u0CAB\u0CAC\u0CAD\u0CAE\u0CAF\u0CB0\u0CB1\u0CB2\u0CB3\u0CB5\u0CB6\u0CB7\u0CB8\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0D05\u0D06\u0D07\u0D08\u0D09\u0D0A\u0D0B\u0D0C\u0D0E\u0D0F\u0D10\u0D12\u0D13\u0D14\u0D15\u0D16\u0D17\u0D18\u0D19\u0D1A\u0D1B\u0D1C\u0D1D\u0D1E\u0D1F\u0D20\u0D21\u0D22\u0D23\u0D24\u0D25\u0D26\u0D27\u0D28\u0D2A\u0D2B\u0D2C\u0D2D\u0D2E\u0D2F\u0D30\u0D31\u0D32\u0D33\u0D34\u0D35\u0D36\u0D37\u0D38\u0D39\u0D3D\u0D60\u0D61\u0D7A\u0D7B\u0D7C\u0D7D\u0D7E\u0D7F\u0D85\u0D86\u0D87\u0D88\u0D89\u0D8A\u0D8B\u0D8C\u0D8D\u0D8E\u0D8F\u0D90\u0D91\u0D92\u0D93\u0D94\u0D95\u0D96\u0D9A\u0D9B\u0D9C\u0D9D\u0D9E\u0D9F\u0DA0\u0DA1\u0DA2\u0DA3\u0DA4\u0DA5\u0DA6\u0DA7\u0DA8\u0DA9\u0DAA\u0DAB\u0DAC\u0DAD\u0DAE\u0DAF\u0DB0\u0DB1\u0DB3\u0DB4\u0DB5\u0DB6\u0DB7\u0DB8\u0DB9\u0DBA\u0DBB\u0DBD\u0DC0\u0DC1\u0DC2\u0DC3\u0DC4\u0DC5\u0DC6\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E32\u0E33\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EAF\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EDC\u0EDD\u0F00\u0F40\u0F41\u0F42\u0F43\u0F44\u0F45\u0F46\u0F47\u0F49\u0F4A\u0F4B\u0F4C\u0F4D\u0F4E\u0F4F\u0F50\u0F51\u0F52\u0F53\u0F54\u0F55\u0F56\u0F57\u0F58\u0F59\u0F5A\u0F5B\u0F5C\u0F5D\u0F5E\u0F5F\u0F60\u0F61\u0F62\u0F63\u0F64\u0F65\u0F66\u0F67\u0F68\u0F69\u0F6A\u0F6B\u0F6C\u0F88\u0F89\u0F8A\u0F8B\u1000\u1001\u1002\u1003\u1004\u1005\u1006\u1007\u1008\u1009\u100A\u100B\u100C\u100D\u100E\u100F\u1010\u1011\u1012\u1013\u1014\u1015\u1016\u1017\u1018\u1019\u101A\u101B\u101C\u101D\u101E\u101F\u1020\u1021\u1022\u1023\u1024\u1025\u1026\u1027\u1028\u1029\u102A\u103F\u1050\u1051\u1052\u1053\u1054\u1055\u105A\u105B\u105C\u105D\u1061\u1065\u1066\u106E\u106F\u1070\u1075\u1076\u1077\u1078\u1079\u107A\u107B\u107C\u107D\u107E\u107F\u1080\u1081\u108E\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\u10F7\u10F8\u10F9\u10FA\u1100\u1101\u1102\u1103\u1104\u1105\u1106\u1107\u1108\u1109\u110A\u110B\u110C\u110D\u110E\u110F\u1110\u1111\u1112\u1113\u1114\u1115\u1116\u1117\u1118\u1119\u111A\u111B\u111C\u111D\u111E\u111F\u1120\u1121\u1122\u1123\u1124\u1125\u1126\u1127\u1128\u1129\u112A\u112B\u112C\u112D\u112E\u112F\u1130\u1131\u1132\u1133\u1134\u1135\u1136\u1137\u1138\u1139\u113A\u113B\u113C\u113D\u113E\u113F\u1140\u1141\u1142\u1143\u1144\u1145\u1146\u1147\u1148\u1149\u114A\u114B\u114C\u114D\u114E\u114F\u1150\u1151\u1152\u1153\u1154\u1155\u1156\u1157\u1158\u1159\u115F\u1160\u1161\u1162\u1163\u1164\u1165\u1166\u1167\u1168\u1169\u116A\u116B\u116C\u116D\u116E\u116F\u1170\u1171\u1172\u1173\u1174\u1175\u1176\u1177\u1178\u1179\u117A\u117B\u117C\u117D\u117E\u117F\u1180\u1181\u1182\u1183\u1184\u1185\u1186\u1187\u1188\u1189\u118A\u118B\u118C\u118D\u118E\u118F\u1190\u1191\u1192\u1193\u1194\u1195\u1196\u1197\u1198\u1199\u119A\u119B\u119C\u119D\u119E\u119F\u11A0\u11A1\u11A2\u11A8\u11A9\u11AA\u11AB\u11AC\u11AD\u11AE\u11AF\u11B0\u11B1\u11B2\u11B3\u11B4\u11B5\u11B6\u11B7\u11B8\u11B9\u11BA\u11BB\u11BC\u11BD\u11BE\u11BF\u11C0\u11C1\u11C2\u11C3\u11C4\u11C5\u11C6\u11C7\u11C8\u11C9\u11CA\u11CB\u11CC\u11CD\u11CE\u11CF\u11D0\u11D1\u11D2\u11D3\u11D4\u11D5\u11D6\u11D7\u11D8\u11D9\u11DA\u11DB\u11DC\u11DD\u11DE\u11DF\u11E0\u11E1\u11E2\u11E3\u11E4\u11E5\u11E6\u11E7\u11E8\u11E9\u11EA\u11EB\u11EC\u11ED\u11EE\u11EF\u11F0\u11F1\u11F2\u11F3\u11F4\u11F5\u11F6\u11F7\u11F8\u11F9\u1200\u1201\u1202\u1203\u1204\u1205\u1206\u1207\u1208\u1209\u120A\u120B\u120C\u120D\u120E\u120F\u1210\u1211\u1212\u1213\u1214\u1215\u1216\u1217\u1218\u1219\u121A\u121B\u121C\u121D\u121E\u121F\u1220\u1221\u1222\u1223\u1224\u1225\u1226\u1227\u1228\u1229\u122A\u122B\u122C\u122D\u122E\u122F\u1230\u1231\u1232\u1233\u1234\u1235\u1236\u1237\u1238\u1239\u123A\u123B\u123C\u123D\u123E\u123F\u1240\u1241\u1242\u1243\u1244\u1245\u1246\u1247\u1248\u124A\u124B\u124C\u124D\u1250\u1251\u1252\u1253\u1254\u1255\u1256\u1258\u125A\u125B\u125C\u125D\u1260\u1261\u1262\u1263\u1264\u1265\u1266\u1267\u1268\u1269\u126A\u126B\u126C\u126D\u126E\u126F\u1270\u1271\u1272\u1273\u1274\u1275\u1276\u1277\u1278\u1279\u127A\u127B\u127C\u127D\u127E\u127F\u1280\u1281\u1282\u1283\u1284\u1285\u1286\u1287\u1288\u128A\u128B\u128C\u128D\u1290\u1291\u1292\u1293\u1294\u1295\u1296\u1297\u1298\u1299\u129A\u129B\u129C\u129D\u129E\u129F\u12A0\u12A1\u12A2\u12A3\u12A4\u12A5\u12A6\u12A7\u12A8\u12A9\u12AA\u12AB\u12AC\u12AD\u12AE\u12AF\u12B0\u12B2\u12B3\u12B4\u12B5\u12B8\u12B9\u12BA\u12BB\u12BC\u12BD\u12BE\u12C0\u12C2\u12C3\u12C4\u12C5\u12C8\u12C9\u12CA\u12CB\u12CC\u12CD\u12CE\u12CF\u12D0\u12D1\u12D2\u12D3\u12D4\u12D5\u12D6\u12D8\u12D9\u12DA\u12DB\u12DC\u12DD\u12DE\u12DF\u12E0\u12E1\u12E2\u12E3\u12E4\u12E5\u12E6\u12E7\u12E8\u12E9\u12EA\u12EB\u12EC\u12ED\u12EE\u12EF\u12F0\u12F1\u12F2\u12F3\u12F4\u12F5\u12F6\u12F7\u12F8\u12F9\u12FA\u12FB\u12FC\u12FD\u12FE\u12FF\u1300\u1301\u1302\u1303\u1304\u1305\u1306\u1307\u1308\u1309\u130A\u130B\u130C\u130D\u130E\u130F\u1310\u1312\u1313\u1314\u1315\u1318\u1319\u131A\u131B\u131C\u131D\u131E\u131F\u1320\u1321\u1322\u1323\u1324\u1325\u1326\u1327\u1328\u1329\u132A\u132B\u132C\u132D\u132E\u132F\u1330\u1331\u1332\u1333\u1334\u1335\u1336\u1337\u1338\u1339\u133A\u133B\u133C\u133D\u133E\u133F\u1340\u1341\u1342\u1343\u1344\u1345\u1346\u1347\u1348\u1349\u134A\u134B\u134C\u134D\u134E\u134F\u1350\u1351\u1352\u1353\u1354\u1355\u1356\u1357\u1358\u1359\u135A\u1380\u1381\u1382\u1383\u1384\u1385\u1386\u1387\u1388\u1389\u138A\u138B\u138C\u138D\u138E\u138F\u13A0\u13A1\u13A2\u13A3\u13A4\u13A5\u13A6\u13A7\u13A8\u13A9\u13AA\u13AB\u13AC\u13AD\u13AE\u13AF\u13B0\u13B1\u13B2\u13B3\u13B4\u13B5\u13B6\u13B7\u13B8\u13B9\u13BA\u13BB\u13BC\u13BD\u13BE\u13BF\u13C0\u13C1\u13C2\u13C3\u13C4\u13C5\u13C6\u13C7\u13C8\u13C9\u13CA\u13CB\u13CC\u13CD\u13CE\u13CF\u13D0\u13D1\u13D2\u13D3\u13D4\u13D5\u13D6\u13D7\u13D8\u13D9\u13DA\u13DB\u13DC\u13DD\u13DE\u13DF\u13E0\u13E1\u13E2\u13E3\u13E4\u13E5\u13E6\u13E7\u13E8\u13E9\u13EA\u13EB\u13EC\u13ED\u13EE\u13EF\u13F0\u13F1\u13F2\u13F3\u13F4\u1401\u1402\u1403\u1404\u1405\u1406\u1407\u1408\u1409\u140A\u140B\u140C\u140D\u140E\u140F\u1410\u1411\u1412\u1413\u1414\u1415\u1416\u1417\u1418\u1419\u141A\u141B\u141C\u141D\u141E\u141F\u1420\u1421\u1422\u1423\u1424\u1425\u1426\u1427\u1428\u1429\u142A\u142B\u142C\u142D\u142E\u142F\u1430\u1431\u1432\u1433\u1434\u1435\u1436\u1437\u1438\u1439\u143A\u143B\u143C\u143D\u143E\u143F\u1440\u1441\u1442\u1443\u1444\u1445\u1446\u1447\u1448\u1449\u144A\u144B\u144C\u144D\u144E\u144F\u1450\u1451\u1452\u1453\u1454\u1455\u1456\u1457\u1458\u1459\u145A\u145B\u145C\u145D\u145E\u145F\u1460\u1461\u1462\u1463\u1464\u1465\u1466\u1467\u1468\u1469\u146A\u146B\u146C\u146D\u146E\u146F\u1470\u1471\u1472\u1473\u1474\u1475\u1476\u1477\u1478\u1479\u147A\u147B\u147C\u147D\u147E\u147F\u1480\u1481\u1482\u1483\u1484\u1485\u1486\u1487\u1488\u1489\u148A\u148B\u148C\u148D\u148E\u148F\u1490\u1491\u1492\u1493\u1494\u1495\u1496\u1497\u1498\u1499\u149A\u149B\u149C\u149D\u149E\u149F\u14A0\u14A1\u14A2\u14A3\u14A4\u14A5\u14A6\u14A7\u14A8\u14A9\u14AA\u14AB\u14AC\u14AD\u14AE\u14AF\u14B0\u14B1\u14B2\u14B3\u14B4\u14B5\u14B6\u14B7\u14B8\u14B9\u14BA\u14BB\u14BC\u14BD\u14BE\u14BF\u14C0\u14C1\u14C2\u14C3\u14C4\u14C5\u14C6\u14C7\u14C8\u14C9\u14CA\u14CB\u14CC\u14CD\u14CE\u14CF\u14D0\u14D1\u14D2\u14D3\u14D4\u14D5\u14D6\u14D7\u14D8\u14D9\u14DA\u14DB\u14DC\u14DD\u14DE\u14DF\u14E0\u14E1\u14E2\u14E3\u14E4\u14E5\u14E6\u14E7\u14E8\u14E9\u14EA\u14EB\u14EC\u14ED\u14EE\u14EF\u14F0\u14F1\u14F2\u14F3\u14F4\u14F5\u14F6\u14F7\u14F8\u14F9\u14FA\u14FB\u14FC\u14FD\u14FE\u14FF\u1500\u1501\u1502\u1503\u1504\u1505\u1506\u1507\u1508\u1509\u150A\u150B\u150C\u150D\u150E\u150F\u1510\u1511\u1512\u1513\u1514\u1515\u1516\u1517\u1518\u1519\u151A\u151B\u151C\u151D\u151E\u151F\u1520\u1521\u1522\u1523\u1524\u1525\u1526\u1527\u1528\u1529\u152A\u152B\u152C\u152D\u152E\u152F\u1530\u1531\u1532\u1533\u1534\u1535\u1536\u1537\u1538\u1539\u153A\u153B\u153C\u153D\u153E\u153F\u1540\u1541\u1542\u1543\u1544\u1545\u1546\u1547\u1548\u1549\u154A\u154B\u154C\u154D\u154E\u154F\u1550\u1551\u1552\u1553\u1554\u1555\u1556\u1557\u1558\u1559\u155A\u155B\u155C\u155D\u155E\u155F\u1560\u1561\u1562\u1563\u1564\u1565\u1566\u1567\u1568\u1569\u156A\u156B\u156C\u156D\u156E\u156F\u1570\u1571\u1572\u1573\u1574\u1575\u1576\u1577\u1578\u1579\u157A\u157B\u157C\u157D\u157E\u157F\u1580\u1581\u1582\u1583\u1584\u1585\u1586\u1587\u1588\u1589\u158A\u158B\u158C\u158D\u158E\u158F\u1590\u1591\u1592\u1593\u1594\u1595\u1596\u1597\u1598\u1599\u159A\u159B\u159C\u159D\u159E\u159F\u15A0\u15A1\u15A2\u15A3\u15A4\u15A5\u15A6\u15A7\u15A8\u15A9\u15AA\u15AB\u15AC\u15AD\u15AE\u15AF\u15B0\u15B1\u15B2\u15B3\u15B4\u15B5\u15B6\u15B7\u15B8\u15B9\u15BA\u15BB\u15BC\u15BD\u15BE\u15BF\u15C0\u15C1\u15C2\u15C3\u15C4\u15C5\u15C6\u15C7\u15C8\u15C9\u15CA\u15CB\u15CC\u15CD\u15CE\u15CF\u15D0\u15D1\u15D2\u15D3\u15D4\u15D5\u15D6\u15D7\u15D8\u15D9\u15DA\u15DB\u15DC\u15DD\u15DE\u15DF\u15E0\u15E1\u15E2\u15E3\u15E4\u15E5\u15E6\u15E7\u15E8\u15E9\u15EA\u15EB\u15EC\u15ED\u15EE\u15EF\u15F0\u15F1\u15F2\u15F3\u15F4\u15F5\u15F6\u15F7\u15F8\u15F9\u15FA\u15FB\u15FC\u15FD\u15FE\u15FF\u1600\u1601\u1602\u1603\u1604\u1605\u1606\u1607\u1608\u1609\u160A\u160B\u160C\u160D\u160E\u160F\u1610\u1611\u1612\u1613\u1614\u1615\u1616\u1617\u1618\u1619\u161A\u161B\u161C\u161D\u161E\u161F\u1620\u1621\u1622\u1623\u1624\u1625\u1626\u1627\u1628\u1629\u162A\u162B\u162C\u162D\u162E\u162F\u1630\u1631\u1632\u1633\u1634\u1635\u1636\u1637\u1638\u1639\u163A\u163B\u163C\u163D\u163E\u163F\u1640\u1641\u1642\u1643\u1644\u1645\u1646\u1647\u1648\u1649\u164A\u164B\u164C\u164D\u164E\u164F\u1650\u1651\u1652\u1653\u1654\u1655\u1656\u1657\u1658\u1659\u165A\u165B\u165C\u165D\u165E\u165F\u1660\u1661\u1662\u1663\u1664\u1665\u1666\u1667\u1668\u1669\u166A\u166B\u166C\u166F\u1670\u1671\u1672\u1673\u1674\u1675\u1676\u1681\u1682\u1683\u1684\u1685\u1686\u1687\u1688\u1689\u168A\u168B\u168C\u168D\u168E\u168F\u1690\u1691\u1692\u1693\u1694\u1695\u1696\u1697\u1698\u1699\u169A\u16A0\u16A1\u16A2\u16A3\u16A4\u16A5\u16A6\u16A7\u16A8\u16A9\u16AA\u16AB\u16AC\u16AD\u16AE\u16AF\u16B0\u16B1\u16B2\u16B3\u16B4\u16B5\u16B6\u16B7\u16B8\u16B9\u16BA\u16BB\u16BC\u16BD\u16BE\u16BF\u16C0\u16C1\u16C2\u16C3\u16C4\u16C5\u16C6\u16C7\u16C8\u16C9\u16CA\u16CB\u16CC\u16CD\u16CE\u16CF\u16D0\u16D1\u16D2\u16D3\u16D4\u16D5\u16D6\u16D7\u16D8\u16D9\u16DA\u16DB\u16DC\u16DD\u16DE\u16DF\u16E0\u16E1\u16E2\u16E3\u16E4\u16E5\u16E6\u16E7\u16E8\u16E9\u16EA\u1700\u1701\u1702\u1703\u1704\u1705\u1706\u1707\u1708\u1709\u170A\u170B\u170C\u170E\u170F\u1710\u1711\u1720\u1721\u1722\u1723\u1724\u1725\u1726\u1727\u1728\u1729\u172A\u172B\u172C\u172D\u172E\u172F\u1730\u1731\u1740\u1741\u1742\u1743\u1744\u1745\u1746\u1747\u1748\u1749\u174A\u174B\u174C\u174D\u174E\u174F\u1750\u1751\u1760\u1761\u1762\u1763\u1764\u1765\u1766\u1767\u1768\u1769\u176A\u176B\u176C\u176E\u176F\u1770\u1780\u1781\u1782\u1783\u1784\u1785\u1786\u1787\u1788\u1789\u178A\u178B\u178C\u178D\u178E\u178F\u1790\u1791\u1792\u1793\u1794\u1795\u1796\u1797\u1798\u1799\u179A\u179B\u179C\u179D\u179E\u179F\u17A0\u17A1\u17A2\u17A3\u17A4\u17A5\u17A6\u17A7\u17A8\u17A9\u17AA\u17AB\u17AC\u17AD\u17AE\u17AF\u17B0\u17B1\u17B2\u17B3\u17DC\u1820\u1821\u1822\u1823\u1824\u1825\u1826\u1827\u1828\u1829\u182A\u182B\u182C\u182D\u182E\u182F\u1830\u1831\u1832\u1833\u1834\u1835\u1836\u1837\u1838\u1839\u183A\u183B\u183C\u183D\u183E\u183F\u1840\u1841\u1842\u1844\u1845\u1846\u1847\u1848\u1849\u184A\u184B\u184C\u184D\u184E\u184F\u1850\u1851\u1852\u1853\u1854\u1855\u1856\u1857\u1858\u1859\u185A\u185B\u185C\u185D\u185E\u185F\u1860\u1861\u1862\u1863\u1864\u1865\u1866\u1867\u1868\u1869\u186A\u186B\u186C\u186D\u186E\u186F\u1870\u1871\u1872\u1873\u1874\u1875\u1876\u1877\u1880\u1881\u1882\u1883\u1884\u1885\u1886\u1887\u1888\u1889\u188A\u188B\u188C\u188D\u188E\u188F\u1890\u1891\u1892\u1893\u1894\u1895\u1896\u1897\u1898\u1899\u189A\u189B\u189C\u189D\u189E\u189F\u18A0\u18A1\u18A2\u18A3\u18A4\u18A5\u18A6\u18A7\u18A8\u18AA\u1900\u1901\u1902\u1903\u1904\u1905\u1906\u1907\u1908\u1909\u190A\u190B\u190C\u190D\u190E\u190F\u1910\u1911\u1912\u1913\u1914\u1915\u1916\u1917\u1918\u1919\u191A\u191B\u191C\u1950\u1951\u1952\u1953\u1954\u1955\u1956\u1957\u1958\u1959\u195A\u195B\u195C\u195D\u195E\u195F\u1960\u1961\u1962\u1963\u1964\u1965\u1966\u1967\u1968\u1969\u196A\u196B\u196C\u196D\u1970\u1971\u1972\u1973\u1974\u1980\u1981\u1982\u1983\u1984\u1985\u1986\u1987\u1988\u1989\u198A\u198B\u198C\u198D\u198E\u198F\u1990\u1991\u1992\u1993\u1994\u1995\u1996\u1997\u1998\u1999\u199A\u199B\u199C\u199D\u199E\u199F\u19A0\u19A1\u19A2\u19A3\u19A4\u19A5\u19A6\u19A7\u19A8\u19A9\u19C1\u19C2\u19C3\u19C4\u19C5\u19C6\u19C7\u1A00\u1A01\u1A02\u1A03\u1A04\u1A05\u1A06\u1A07\u1A08\u1A09\u1A0A\u1A0B\u1A0C\u1A0D\u1A0E\u1A0F\u1A10\u1A11\u1A12\u1A13\u1A14\u1A15\u1A16\u1B05\u1B06\u1B07\u1B08\u1B09\u1B0A\u1B0B\u1B0C\u1B0D\u1B0E\u1B0F\u1B10\u1B11\u1B12\u1B13\u1B14\u1B15\u1B16\u1B17\u1B18\u1B19\u1B1A\u1B1B\u1B1C\u1B1D\u1B1E\u1B1F\u1B20\u1B21\u1B22\u1B23\u1B24\u1B25\u1B26\u1B27\u1B28\u1B29\u1B2A\u1B2B\u1B2C\u1B2D\u1B2E\u1B2F\u1B30\u1B31\u1B32\u1B33\u1B45\u1B46\u1B47\u1B48\u1B49\u1B4A\u1B4B\u1B83\u1B84\u1B85\u1B86\u1B87\u1B88\u1B89\u1B8A\u1B8B\u1B8C\u1B8D\u1B8E\u1B8F\u1B90\u1B91\u1B92\u1B93\u1B94\u1B95\u1B96\u1B97\u1B98\u1B99\u1B9A\u1B9B\u1B9C\u1B9D\u1B9E\u1B9F\u1BA0\u1BAE\u1BAF\u1C00\u1C01\u1C02\u1C03\u1C04\u1C05\u1C06\u1C07\u1C08\u1C09\u1C0A\u1C0B\u1C0C\u1C0D\u1C0E\u1C0F\u1C10\u1C11\u1C12\u1C13\u1C14\u1C15\u1C16\u1C17\u1C18\u1C19\u1C1A\u1C1B\u1C1C\u1C1D\u1C1E\u1C1F\u1C20\u1C21\u1C22\u1C23\u1C4D\u1C4E\u1C4F\u1C5A\u1C5B\u1C5C\u1C5D\u1C5E\u1C5F\u1C60\u1C61\u1C62\u1C63\u1C64\u1C65\u1C66\u1C67\u1C68\u1C69\u1C6A\u1C6B\u1C6C\u1C6D\u1C6E\u1C6F\u1C70\u1C71\u1C72\u1C73\u1C74\u1C75\u1C76\u1C77\u2135\u2136\u2137\u2138\u2D30\u2D31\u2D32\u2D33\u2D34\u2D35\u2D36\u2D37\u2D38\u2D39\u2D3A\u2D3B\u2D3C\u2D3D\u2D3E\u2D3F\u2D40\u2D41\u2D42\u2D43\u2D44\u2D45\u2D46\u2D47\u2D48\u2D49\u2D4A\u2D4B\u2D4C\u2D4D\u2D4E\u2D4F\u2D50\u2D51\u2D52\u2D53\u2D54\u2D55\u2D56\u2D57\u2D58\u2D59\u2D5A\u2D5B\u2D5C\u2D5D\u2D5E\u2D5F\u2D60\u2D61\u2D62\u2D63\u2D64\u2D65\u2D80\u2D81\u2D82\u2D83\u2D84\u2D85\u2D86\u2D87\u2D88\u2D89\u2D8A\u2D8B\u2D8C\u2D8D\u2D8E\u2D8F\u2D90\u2D91\u2D92\u2D93\u2D94\u2D95\u2D96\u2DA0\u2DA1\u2DA2\u2DA3\u2DA4\u2DA5\u2DA6\u2DA8\u2DA9\u2DAA\u2DAB\u2DAC\u2DAD\u2DAE\u2DB0\u2DB1\u2DB2\u2DB3\u2DB4\u2DB5\u2DB6\u2DB8\u2DB9\u2DBA\u2DBB\u2DBC\u2DBD\u2DBE\u2DC0\u2DC1\u2DC2\u2DC3\u2DC4\u2DC5\u2DC6\u2DC8\u2DC9\u2DCA\u2DCB\u2DCC\u2DCD\u2DCE\u2DD0\u2DD1\u2DD2\u2DD3\u2DD4\u2DD5\u2DD6\u2DD8\u2DD9\u2DDA\u2DDB\u2DDC\u2DDD\u2DDE\u3006\u303C\u3041\u3042\u3043\u3044\u3045\u3046\u3047\u3048\u3049\u304A\u304B\u304C\u304D\u304E\u304F\u3050\u3051\u3052\u3053\u3054\u3055\u3056\u3057\u3058\u3059\u305A\u305B\u305C\u305D\u305E\u305F\u3060\u3061\u3062\u3063\u3064\u3065\u3066\u3067\u3068\u3069\u306A\u306B\u306C\u306D\u306E\u306F\u3070\u3071\u3072\u3073\u3074\u3075\u3076\u3077\u3078\u3079\u307A\u307B\u307C\u307D\u307E\u307F\u3080\u3081\u3082\u3083\u3084\u3085\u3086\u3087\u3088\u3089\u308A\u308B\u308C\u308D\u308E\u308F\u3090\u3091\u3092\u3093\u3094\u3095\u3096\u309F\u30A1\u30A2\u30A3\u30A4\u30A5\u30A6\u30A7\u30A8\u30A9\u30AA\u30AB\u30AC\u30AD\u30AE\u30AF\u30B0\u30B1\u30B2\u30B3\u30B4\u30B5\u30B6\u30B7\u30B8\u30B9\u30BA\u30BB\u30BC\u30BD\u30BE\u30BF\u30C0\u30C1\u30C2\u30C3\u30C4\u30C5\u30C6\u30C7\u30C8\u30C9\u30CA\u30CB\u30CC\u30CD\u30CE\u30CF\u30D0\u30D1\u30D2\u30D3\u30D4\u30D5\u30D6\u30D7\u30D8\u30D9\u30DA\u30DB\u30DC\u30DD\u30DE\u30DF\u30E0\u30E1\u30E2\u30E3\u30E4\u30E5\u30E6\u30E7\u30E8\u30E9\u30EA\u30EB\u30EC\u30ED\u30EE\u30EF\u30F0\u30F1\u30F2\u30F3\u30F4\u30F5\u30F6\u30F7\u30F8\u30F9\u30FA\u30FF\u3105\u3106\u3107\u3108\u3109\u310A\u310B\u310C\u310D\u310E\u310F\u3110\u3111\u3112\u3113\u3114\u3115\u3116\u3117\u3118\u3119\u311A\u311B\u311C\u311D\u311E\u311F\u3120\u3121\u3122\u3123\u3124\u3125\u3126\u3127\u3128\u3129\u312A\u312B\u312C\u312D\u3131\u3132\u3133\u3134\u3135\u3136\u3137\u3138\u3139\u313A\u313B\u313C\u313D\u313E\u313F\u3140\u3141\u3142\u3143\u3144\u3145\u3146\u3147\u3148\u3149\u314A\u314B\u314C\u314D\u314E\u314F\u3150\u3151\u3152\u3153\u3154\u3155\u3156\u3157\u3158\u3159\u315A\u315B\u315C\u315D\u315E\u315F\u3160\u3161\u3162\u3163\u3164\u3165\u3166\u3167\u3168\u3169\u316A\u316B\u316C\u316D\u316E\u316F\u3170\u3171\u3172\u3173\u3174\u3175\u3176\u3177\u3178\u3179\u317A\u317B\u317C\u317D\u317E\u317F\u3180\u3181\u3182\u3183\u3184\u3185\u3186\u3187\u3188\u3189\u318A\u318B\u318C\u318D\u318E\u31A0\u31A1\u31A2\u31A3\u31A4\u31A5\u31A6\u31A7\u31A8\u31A9\u31AA\u31AB\u31AC\u31AD\u31AE\u31AF\u31B0\u31B1\u31B2\u31B3\u31B4\u31B5\u31B6\u31B7\u31F0\u31F1\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3400\u4DB5\u4E00\u9FC3\uA000\uA001\uA002\uA003\uA004\uA005\uA006\uA007\uA008\uA009\uA00A\uA00B\uA00C\uA00D\uA00E\uA00F\uA010\uA011\uA012\uA013\uA014\uA016\uA017\uA018\uA019\uA01A\uA01B\uA01C\uA01D\uA01E\uA01F\uA020\uA021\uA022\uA023\uA024\uA025\uA026\uA027\uA028\uA029\uA02A\uA02B\uA02C\uA02D\uA02E\uA02F\uA030\uA031\uA032\uA033\uA034\uA035\uA036\uA037\uA038\uA039\uA03A\uA03B\uA03C\uA03D\uA03E\uA03F\uA040\uA041\uA042\uA043\uA044\uA045\uA046\uA047\uA048\uA049\uA04A\uA04B\uA04C\uA04D\uA04E\uA04F\uA050\uA051\uA052\uA053\uA054\uA055\uA056\uA057\uA058\uA059\uA05A\uA05B\uA05C\uA05D\uA05E\uA05F\uA060\uA061\uA062\uA063\uA064\uA065\uA066\uA067\uA068\uA069\uA06A\uA06B\uA06C\uA06D\uA06E\uA06F\uA070\uA071\uA072\uA073\uA074\uA075\uA076\uA077\uA078\uA079\uA07A\uA07B\uA07C\uA07D\uA07E\uA07F\uA080\uA081\uA082\uA083\uA084\uA085\uA086\uA087\uA088\uA089\uA08A\uA08B\uA08C\uA08D\uA08E\uA08F\uA090\uA091\uA092\uA093\uA094\uA095\uA096\uA097\uA098\uA099\uA09A\uA09B\uA09C\uA09D\uA09E\uA09F\uA0A0\uA0A1\uA0A2\uA0A3\uA0A4\uA0A5\uA0A6\uA0A7\uA0A8\uA0A9\uA0AA\uA0AB\uA0AC\uA0AD\uA0AE\uA0AF\uA0B0\uA0B1\uA0B2\uA0B3\uA0B4\uA0B5\uA0B6\uA0B7\uA0B8\uA0B9\uA0BA\uA0BB\uA0BC\uA0BD\uA0BE\uA0BF\uA0C0\uA0C1\uA0C2\uA0C3\uA0C4\uA0C5\uA0C6\uA0C7\uA0C8\uA0C9\uA0CA\uA0CB\uA0CC\uA0CD\uA0CE\uA0CF\uA0D0\uA0D1\uA0D2\uA0D3\uA0D4\uA0D5\uA0D6\uA0D7\uA0D8\uA0D9\uA0DA\uA0DB\uA0DC\uA0DD\uA0DE\uA0DF\uA0E0\uA0E1\uA0E2\uA0E3\uA0E4\uA0E5\uA0E6\uA0E7\uA0E8\uA0E9\uA0EA\uA0EB\uA0EC\uA0ED\uA0EE\uA0EF\uA0F0\uA0F1\uA0F2\uA0F3\uA0F4\uA0F5\uA0F6\uA0F7\uA0F8\uA0F9\uA0FA\uA0FB\uA0FC\uA0FD\uA0FE\uA0FF\uA100\uA101\uA102\uA103\uA104\uA105\uA106\uA107\uA108\uA109\uA10A\uA10B\uA10C\uA10D\uA10E\uA10F\uA110\uA111\uA112\uA113\uA114\uA115\uA116\uA117\uA118\uA119\uA11A\uA11B\uA11C\uA11D\uA11E\uA11F\uA120\uA121\uA122\uA123\uA124\uA125\uA126\uA127\uA128\uA129\uA12A\uA12B\uA12C\uA12D\uA12E\uA12F\uA130\uA131\uA132\uA133\uA134\uA135\uA136\uA137\uA138\uA139\uA13A\uA13B\uA13C\uA13D\uA13E\uA13F\uA140\uA141\uA142\uA143\uA144\uA145\uA146\uA147\uA148\uA149\uA14A\uA14B\uA14C\uA14D\uA14E\uA14F\uA150\uA151\uA152\uA153\uA154\uA155\uA156\uA157\uA158\uA159\uA15A\uA15B\uA15C\uA15D\uA15E\uA15F\uA160\uA161\uA162\uA163\uA164\uA165\uA166\uA167\uA168\uA169\uA16A\uA16B\uA16C\uA16D\uA16E\uA16F\uA170\uA171\uA172\uA173\uA174\uA175\uA176\uA177\uA178\uA179\uA17A\uA17B\uA17C\uA17D\uA17E\uA17F\uA180\uA181\uA182\uA183\uA184\uA185\uA186\uA187\uA188\uA189\uA18A\uA18B\uA18C\uA18D\uA18E\uA18F\uA190\uA191\uA192\uA193\uA194\uA195\uA196\uA197\uA198\uA199\uA19A\uA19B\uA19C\uA19D\uA19E\uA19F\uA1A0\uA1A1\uA1A2\uA1A3\uA1A4\uA1A5\uA1A6\uA1A7\uA1A8\uA1A9\uA1AA\uA1AB\uA1AC\uA1AD\uA1AE\uA1AF\uA1B0\uA1B1\uA1B2\uA1B3\uA1B4\uA1B5\uA1B6\uA1B7\uA1B8\uA1B9\uA1BA\uA1BB\uA1BC\uA1BD\uA1BE\uA1BF\uA1C0\uA1C1\uA1C2\uA1C3\uA1C4\uA1C5\uA1C6\uA1C7\uA1C8\uA1C9\uA1CA\uA1CB\uA1CC\uA1CD\uA1CE\uA1CF\uA1D0\uA1D1\uA1D2\uA1D3\uA1D4\uA1D5\uA1D6\uA1D7\uA1D8\uA1D9\uA1DA\uA1DB\uA1DC\uA1DD\uA1DE\uA1DF\uA1E0\uA1E1\uA1E2\uA1E3\uA1E4\uA1E5\uA1E6\uA1E7\uA1E8\uA1E9\uA1EA\uA1EB\uA1EC\uA1ED\uA1EE\uA1EF\uA1F0\uA1F1\uA1F2\uA1F3\uA1F4\uA1F5\uA1F6\uA1F7\uA1F8\uA1F9\uA1FA\uA1FB\uA1FC\uA1FD\uA1FE\uA1FF\uA200\uA201\uA202\uA203\uA204\uA205\uA206\uA207\uA208\uA209\uA20A\uA20B\uA20C\uA20D\uA20E\uA20F\uA210\uA211\uA212\uA213\uA214\uA215\uA216\uA217\uA218\uA219\uA21A\uA21B\uA21C\uA21D\uA21E\uA21F\uA220\uA221\uA222\uA223\uA224\uA225\uA226\uA227\uA228\uA229\uA22A\uA22B\uA22C\uA22D\uA22E\uA22F\uA230\uA231\uA232\uA233\uA234\uA235\uA236\uA237\uA238\uA239\uA23A\uA23B\uA23C\uA23D\uA23E\uA23F\uA240\uA241\uA242\uA243\uA244\uA245\uA246\uA247\uA248\uA249\uA24A\uA24B\uA24C\uA24D\uA24E\uA24F\uA250\uA251\uA252\uA253\uA254\uA255\uA256\uA257\uA258\uA259\uA25A\uA25B\uA25C\uA25D\uA25E\uA25F\uA260\uA261\uA262\uA263\uA264\uA265\uA266\uA267\uA268\uA269\uA26A\uA26B\uA26C\uA26D\uA26E\uA26F\uA270\uA271\uA272\uA273\uA274\uA275\uA276\uA277\uA278\uA279\uA27A\uA27B\uA27C\uA27D\uA27E\uA27F\uA280\uA281\uA282\uA283\uA284\uA285\uA286\uA287\uA288\uA289\uA28A\uA28B\uA28C\uA28D\uA28E\uA28F\uA290\uA291\uA292\uA293\uA294\uA295\uA296\uA297\uA298\uA299\uA29A\uA29B\uA29C\uA29D\uA29E\uA29F\uA2A0\uA2A1\uA2A2\uA2A3\uA2A4\uA2A5\uA2A6\uA2A7\uA2A8\uA2A9\uA2AA\uA2AB\uA2AC\uA2AD\uA2AE\uA2AF\uA2B0\uA2B1\uA2B2\uA2B3\uA2B4\uA2B5\uA2B6\uA2B7\uA2B8\uA2B9\uA2BA\uA2BB\uA2BC\uA2BD\uA2BE\uA2BF\uA2C0\uA2C1\uA2C2\uA2C3\uA2C4\uA2C5\uA2C6\uA2C7\uA2C8\uA2C9\uA2CA\uA2CB\uA2CC\uA2CD\uA2CE\uA2CF\uA2D0\uA2D1\uA2D2\uA2D3\uA2D4\uA2D5\uA2D6\uA2D7\uA2D8\uA2D9\uA2DA\uA2DB\uA2DC\uA2DD\uA2DE\uA2DF\uA2E0\uA2E1\uA2E2\uA2E3\uA2E4\uA2E5\uA2E6\uA2E7\uA2E8\uA2E9\uA2EA\uA2EB\uA2EC\uA2ED\uA2EE\uA2EF\uA2F0\uA2F1\uA2F2\uA2F3\uA2F4\uA2F5\uA2F6\uA2F7\uA2F8\uA2F9\uA2FA\uA2FB\uA2FC\uA2FD\uA2FE\uA2FF\uA300\uA301\uA302\uA303\uA304\uA305\uA306\uA307\uA308\uA309\uA30A\uA30B\uA30C\uA30D\uA30E\uA30F\uA310\uA311\uA312\uA313\uA314\uA315\uA316\uA317\uA318\uA319\uA31A\uA31B\uA31C\uA31D\uA31E\uA31F\uA320\uA321\uA322\uA323\uA324\uA325\uA326\uA327\uA328\uA329\uA32A\uA32B\uA32C\uA32D\uA32E\uA32F\uA330\uA331\uA332\uA333\uA334\uA335\uA336\uA337\uA338\uA339\uA33A\uA33B\uA33C\uA33D\uA33E\uA33F\uA340\uA341\uA342\uA343\uA344\uA345\uA346\uA347\uA348\uA349\uA34A\uA34B\uA34C\uA34D\uA34E\uA34F\uA350\uA351\uA352\uA353\uA354\uA355\uA356\uA357\uA358\uA359\uA35A\uA35B\uA35C\uA35D\uA35E\uA35F\uA360\uA361\uA362\uA363\uA364\uA365\uA366\uA367\uA368\uA369\uA36A\uA36B\uA36C\uA36D\uA36E\uA36F\uA370\uA371\uA372\uA373\uA374\uA375\uA376\uA377\uA378\uA379\uA37A\uA37B\uA37C\uA37D\uA37E\uA37F\uA380\uA381\uA382\uA383\uA384\uA385\uA386\uA387\uA388\uA389\uA38A\uA38B\uA38C\uA38D\uA38E\uA38F\uA390\uA391\uA392\uA393\uA394\uA395\uA396\uA397\uA398\uA399\uA39A\uA39B\uA39C\uA39D\uA39E\uA39F\uA3A0\uA3A1\uA3A2\uA3A3\uA3A4\uA3A5\uA3A6\uA3A7\uA3A8\uA3A9\uA3AA\uA3AB\uA3AC\uA3AD\uA3AE\uA3AF\uA3B0\uA3B1\uA3B2\uA3B3\uA3B4\uA3B5\uA3B6\uA3B7\uA3B8\uA3B9\uA3BA\uA3BB\uA3BC\uA3BD\uA3BE\uA3BF\uA3C0\uA3C1\uA3C2\uA3C3\uA3C4\uA3C5\uA3C6\uA3C7\uA3C8\uA3C9\uA3CA\uA3CB\uA3CC\uA3CD\uA3CE\uA3CF\uA3D0\uA3D1\uA3D2\uA3D3\uA3D4\uA3D5\uA3D6\uA3D7\uA3D8\uA3D9\uA3DA\uA3DB\uA3DC\uA3DD\uA3DE\uA3DF\uA3E0\uA3E1\uA3E2\uA3E3\uA3E4\uA3E5\uA3E6\uA3E7\uA3E8\uA3E9\uA3EA\uA3EB\uA3EC\uA3ED\uA3EE\uA3EF\uA3F0\uA3F1\uA3F2\uA3F3\uA3F4\uA3F5\uA3F6\uA3F7\uA3F8\uA3F9\uA3FA\uA3FB\uA3FC\uA3FD\uA3FE\uA3FF\uA400\uA401\uA402\uA403\uA404\uA405\uA406\uA407\uA408\uA409\uA40A\uA40B\uA40C\uA40D\uA40E\uA40F\uA410\uA411\uA412\uA413\uA414\uA415\uA416\uA417\uA418\uA419\uA41A\uA41B\uA41C\uA41D\uA41E\uA41F\uA420\uA421\uA422\uA423\uA424\uA425\uA426\uA427\uA428\uA429\uA42A\uA42B\uA42C\uA42D\uA42E\uA42F\uA430\uA431\uA432\uA433\uA434\uA435\uA436\uA437\uA438\uA439\uA43A\uA43B\uA43C\uA43D\uA43E\uA43F\uA440\uA441\uA442\uA443\uA444\uA445\uA446\uA447\uA448\uA449\uA44A\uA44B\uA44C\uA44D\uA44E\uA44F\uA450\uA451\uA452\uA453\uA454\uA455\uA456\uA457\uA458\uA459\uA45A\uA45B\uA45C\uA45D\uA45E\uA45F\uA460\uA461\uA462\uA463\uA464\uA465\uA466\uA467\uA468\uA469\uA46A\uA46B\uA46C\uA46D\uA46E\uA46F\uA470\uA471\uA472\uA473\uA474\uA475\uA476\uA477\uA478\uA479\uA47A\uA47B\uA47C\uA47D\uA47E\uA47F\uA480\uA481\uA482\uA483\uA484\uA485\uA486\uA487\uA488\uA489\uA48A\uA48B\uA48C\uA500\uA501\uA502\uA503\uA504\uA505\uA506\uA507\uA508\uA509\uA50A\uA50B\uA50C\uA50D\uA50E\uA50F\uA510\uA511\uA512\uA513\uA514\uA515\uA516\uA517\uA518\uA519\uA51A\uA51B\uA51C\uA51D\uA51E\uA51F\uA520\uA521\uA522\uA523\uA524\uA525\uA526\uA527\uA528\uA529\uA52A\uA52B\uA52C\uA52D\uA52E\uA52F\uA530\uA531\uA532\uA533\uA534\uA535\uA536\uA537\uA538\uA539\uA53A\uA53B\uA53C\uA53D\uA53E\uA53F\uA540\uA541\uA542\uA543\uA544\uA545\uA546\uA547\uA548\uA549\uA54A\uA54B\uA54C\uA54D\uA54E\uA54F\uA550\uA551\uA552\uA553\uA554\uA555\uA556\uA557\uA558\uA559\uA55A\uA55B\uA55C\uA55D\uA55E\uA55F\uA560\uA561\uA562\uA563\uA564\uA565\uA566\uA567\uA568\uA569\uA56A\uA56B\uA56C\uA56D\uA56E\uA56F\uA570\uA571\uA572\uA573\uA574\uA575\uA576\uA577\uA578\uA579\uA57A\uA57B\uA57C\uA57D\uA57E\uA57F\uA580\uA581\uA582\uA583\uA584\uA585\uA586\uA587\uA588\uA589\uA58A\uA58B\uA58C\uA58D\uA58E\uA58F\uA590\uA591\uA592\uA593\uA594\uA595\uA596\uA597\uA598\uA599\uA59A\uA59B\uA59C\uA59D\uA59E\uA59F\uA5A0\uA5A1\uA5A2\uA5A3\uA5A4\uA5A5\uA5A6\uA5A7\uA5A8\uA5A9\uA5AA\uA5AB\uA5AC\uA5AD\uA5AE\uA5AF\uA5B0\uA5B1\uA5B2\uA5B3\uA5B4\uA5B5\uA5B6\uA5B7\uA5B8\uA5B9\uA5BA\uA5BB\uA5BC\uA5BD\uA5BE\uA5BF\uA5C0\uA5C1\uA5C2\uA5C3\uA5C4\uA5C5\uA5C6\uA5C7\uA5C8\uA5C9\uA5CA\uA5CB\uA5CC\uA5CD\uA5CE\uA5CF\uA5D0\uA5D1\uA5D2\uA5D3\uA5D4\uA5D5\uA5D6\uA5D7\uA5D8\uA5D9\uA5DA\uA5DB\uA5DC\uA5DD\uA5DE\uA5DF\uA5E0\uA5E1\uA5E2\uA5E3\uA5E4\uA5E5\uA5E6\uA5E7\uA5E8\uA5E9\uA5EA\uA5EB\uA5EC\uA5ED\uA5EE\uA5EF\uA5F0\uA5F1\uA5F2\uA5F3\uA5F4\uA5F5\uA5F6\uA5F7\uA5F8\uA5F9\uA5FA\uA5FB\uA5FC\uA5FD\uA5FE\uA5FF\uA600\uA601\uA602\uA603\uA604\uA605\uA606\uA607\uA608\uA609\uA60A\uA60B\uA610\uA611\uA612\uA613\uA614\uA615\uA616\uA617\uA618\uA619\uA61A\uA61B\uA61C\uA61D\uA61E\uA61F\uA62A\uA62B\uA66E\uA7FB\uA7FC\uA7FD\uA7FE\uA7FF\uA800\uA801\uA803\uA804\uA805\uA807\uA808\uA809\uA80A\uA80C\uA80D\uA80E\uA80F\uA810\uA811\uA812\uA813\uA814\uA815\uA816\uA817\uA818\uA819\uA81A\uA81B\uA81C\uA81D\uA81E\uA81F\uA820\uA821\uA822\uA840\uA841\uA842\uA843\uA844\uA845\uA846\uA847\uA848\uA849\uA84A\uA84B\uA84C\uA84D\uA84E\uA84F\uA850\uA851\uA852\uA853\uA854\uA855\uA856\uA857\uA858\uA859\uA85A\uA85B\uA85C\uA85D\uA85E\uA85F\uA860\uA861\uA862\uA863\uA864\uA865\uA866\uA867\uA868\uA869\uA86A\uA86B\uA86C\uA86D\uA86E\uA86F\uA870\uA871\uA872\uA873\uA882\uA883\uA884\uA885\uA886\uA887\uA888\uA889\uA88A\uA88B\uA88C\uA88D\uA88E\uA88F\uA890\uA891\uA892\uA893\uA894\uA895\uA896\uA897\uA898\uA899\uA89A\uA89B\uA89C\uA89D\uA89E\uA89F\uA8A0\uA8A1\uA8A2\uA8A3\uA8A4\uA8A5\uA8A6\uA8A7\uA8A8\uA8A9\uA8AA\uA8AB\uA8AC\uA8AD\uA8AE\uA8AF\uA8B0\uA8B1\uA8B2\uA8B3\uA90A\uA90B\uA90C\uA90D\uA90E\uA90F\uA910\uA911\uA912\uA913\uA914\uA915\uA916\uA917\uA918\uA919\uA91A\uA91B\uA91C\uA91D\uA91E\uA91F\uA920\uA921\uA922\uA923\uA924\uA925\uA930\uA931\uA932\uA933\uA934\uA935\uA936\uA937\uA938\uA939\uA93A\uA93B\uA93C\uA93D\uA93E\uA93F\uA940\uA941\uA942\uA943\uA944\uA945\uA946\uAA00\uAA01\uAA02\uAA03\uAA04\uAA05\uAA06\uAA07\uAA08\uAA09\uAA0A\uAA0B\uAA0C\uAA0D\uAA0E\uAA0F\uAA10\uAA11\uAA12\uAA13\uAA14\uAA15\uAA16\uAA17\uAA18\uAA19\uAA1A\uAA1B\uAA1C\uAA1D\uAA1E\uAA1F\uAA20\uAA21\uAA22\uAA23\uAA24\uAA25\uAA26\uAA27\uAA28\uAA40\uAA41\uAA42\uAA44\uAA45\uAA46\uAA47\uAA48\uAA49\uAA4A\uAA4B\uAC00\uD7A3\uF900\uF901\uF902\uF903\uF904\uF905\uF906\uF907\uF908\uF909\uF90A\uF90B\uF90C\uF90D\uF90E\uF90F\uF910\uF911\uF912\uF913\uF914\uF915\uF916\uF917\uF918\uF919\uF91A\uF91B\uF91C\uF91D\uF91E\uF91F\uF920\uF921\uF922\uF923\uF924\uF925\uF926\uF927\uF928\uF929\uF92A\uF92B\uF92C\uF92D\uF92E\uF92F\uF930\uF931\uF932\uF933\uF934\uF935\uF936\uF937\uF938\uF939\uF93A\uF93B\uF93C\uF93D\uF93E\uF93F\uF940\uF941\uF942\uF943\uF944\uF945\uF946\uF947\uF948\uF949\uF94A\uF94B\uF94C\uF94D\uF94E\uF94F\uF950\uF951\uF952\uF953\uF954\uF955\uF956\uF957\uF958\uF959\uF95A\uF95B\uF95C\uF95D\uF95E\uF95F\uF960\uF961\uF962\uF963\uF964\uF965\uF966\uF967\uF968\uF969\uF96A\uF96B\uF96C\uF96D\uF96E\uF96F\uF970\uF971\uF972\uF973\uF974\uF975\uF976\uF977\uF978\uF979\uF97A\uF97B\uF97C\uF97D\uF97E\uF97F\uF980\uF981\uF982\uF983\uF984\uF985\uF986\uF987\uF988\uF989\uF98A\uF98B\uF98C\uF98D\uF98E\uF98F\uF990\uF991\uF992\uF993\uF994\uF995\uF996\uF997\uF998\uF999\uF99A\uF99B\uF99C\uF99D\uF99E\uF99F\uF9A0\uF9A1\uF9A2\uF9A3\uF9A4\uF9A5\uF9A6\uF9A7\uF9A8\uF9A9\uF9AA\uF9AB\uF9AC\uF9AD\uF9AE\uF9AF\uF9B0\uF9B1\uF9B2\uF9B3\uF9B4\uF9B5\uF9B6\uF9B7\uF9B8\uF9B9\uF9BA\uF9BB\uF9BC\uF9BD\uF9BE\uF9BF\uF9C0\uF9C1\uF9C2\uF9C3\uF9C4\uF9C5\uF9C6\uF9C7\uF9C8\uF9C9\uF9CA\uF9CB\uF9CC\uF9CD\uF9CE\uF9CF\uF9D0\uF9D1\uF9D2\uF9D3\uF9D4\uF9D5\uF9D6\uF9D7\uF9D8\uF9D9\uF9DA\uF9DB\uF9DC\uF9DD\uF9DE\uF9DF\uF9E0\uF9E1\uF9E2\uF9E3\uF9E4\uF9E5\uF9E6\uF9E7\uF9E8\uF9E9\uF9EA\uF9EB\uF9EC\uF9ED\uF9EE\uF9EF\uF9F0\uF9F1\uF9F2\uF9F3\uF9F4\uF9F5\uF9F6\uF9F7\uF9F8\uF9F9\uF9FA\uF9FB\uF9FC\uF9FD\uF9FE\uF9FF\uFA00\uFA01\uFA02\uFA03\uFA04\uFA05\uFA06\uFA07\uFA08\uFA09\uFA0A\uFA0B\uFA0C\uFA0D\uFA0E\uFA0F\uFA10\uFA11\uFA12\uFA13\uFA14\uFA15\uFA16\uFA17\uFA18\uFA19\uFA1A\uFA1B\uFA1C\uFA1D\uFA1E\uFA1F\uFA20\uFA21\uFA22\uFA23\uFA24\uFA25\uFA26\uFA27\uFA28\uFA29\uFA2A\uFA2B\uFA2C\uFA2D\uFA30\uFA31\uFA32\uFA33\uFA34\uFA35\uFA36\uFA37\uFA38\uFA39\uFA3A\uFA3B\uFA3C\uFA3D\uFA3E\uFA3F\uFA40\uFA41\uFA42\uFA43\uFA44\uFA45\uFA46\uFA47\uFA48\uFA49\uFA4A\uFA4B\uFA4C\uFA4D\uFA4E\uFA4F\uFA50\uFA51\uFA52\uFA53\uFA54\uFA55\uFA56\uFA57\uFA58\uFA59\uFA5A\uFA5B\uFA5C\uFA5D\uFA5E\uFA5F\uFA60\uFA61\uFA62\uFA63\uFA64\uFA65\uFA66\uFA67\uFA68\uFA69\uFA6A\uFA70\uFA71\uFA72\uFA73\uFA74\uFA75\uFA76\uFA77\uFA78\uFA79\uFA7A\uFA7B\uFA7C\uFA7D\uFA7E\uFA7F\uFA80\uFA81\uFA82\uFA83\uFA84\uFA85\uFA86\uFA87\uFA88\uFA89\uFA8A\uFA8B\uFA8C\uFA8D\uFA8E\uFA8F\uFA90\uFA91\uFA92\uFA93\uFA94\uFA95\uFA96\uFA97\uFA98\uFA99\uFA9A\uFA9B\uFA9C\uFA9D\uFA9E\uFA9F\uFAA0\uFAA1\uFAA2\uFAA3\uFAA4\uFAA5\uFAA6\uFAA7\uFAA8\uFAA9\uFAAA\uFAAB\uFAAC\uFAAD\uFAAE\uFAAF\uFAB0\uFAB1\uFAB2\uFAB3\uFAB4\uFAB5\uFAB6\uFAB7\uFAB8\uFAB9\uFABA\uFABB\uFABC\uFABD\uFABE\uFABF\uFAC0\uFAC1\uFAC2\uFAC3\uFAC4\uFAC5\uFAC6\uFAC7\uFAC8\uFAC9\uFACA\uFACB\uFACC\uFACD\uFACE\uFACF\uFAD0\uFAD1\uFAD2\uFAD3\uFAD4\uFAD5\uFAD6\uFAD7\uFAD8\uFAD9\uFB1D\uFB1F\uFB20\uFB21\uFB22\uFB23\uFB24\uFB25\uFB26\uFB27\uFB28\uFB2A\uFB2B\uFB2C\uFB2D\uFB2E\uFB2F\uFB30\uFB31\uFB32\uFB33\uFB34\uFB35\uFB36\uFB38\uFB39\uFB3A\uFB3B\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46\uFB47\uFB48\uFB49\uFB4A\uFB4B\uFB4C\uFB4D\uFB4E\uFB4F\uFB50\uFB51\uFB52\uFB53\uFB54\uFB55\uFB56\uFB57\uFB58\uFB59\uFB5A\uFB5B\uFB5C\uFB5D\uFB5E\uFB5F\uFB60\uFB61\uFB62\uFB63\uFB64\uFB65\uFB66\uFB67\uFB68\uFB69\uFB6A\uFB6B\uFB6C\uFB6D\uFB6E\uFB6F\uFB70\uFB71\uFB72\uFB73\uFB74\uFB75\uFB76\uFB77\uFB78\uFB79\uFB7A\uFB7B\uFB7C\uFB7D\uFB7E\uFB7F\uFB80\uFB81\uFB82\uFB83\uFB84\uFB85\uFB86\uFB87\uFB88\uFB89\uFB8A\uFB8B\uFB8C\uFB8D\uFB8E\uFB8F\uFB90\uFB91\uFB92\uFB93\uFB94\uFB95\uFB96\uFB97\uFB98\uFB99\uFB9A\uFB9B\uFB9C\uFB9D\uFB9E\uFB9F\uFBA0\uFBA1\uFBA2\uFBA3\uFBA4\uFBA5\uFBA6\uFBA7\uFBA8\uFBA9\uFBAA\uFBAB\uFBAC\uFBAD\uFBAE\uFBAF\uFBB0\uFBB1\uFBD3\uFBD4\uFBD5\uFBD6\uFBD7\uFBD8\uFBD9\uFBDA\uFBDB\uFBDC\uFBDD\uFBDE\uFBDF\uFBE0\uFBE1\uFBE2\uFBE3\uFBE4\uFBE5\uFBE6\uFBE7\uFBE8\uFBE9\uFBEA\uFBEB\uFBEC\uFBED\uFBEE\uFBEF\uFBF0\uFBF1\uFBF2\uFBF3\uFBF4\uFBF5\uFBF6\uFBF7\uFBF8\uFBF9\uFBFA\uFBFB\uFBFC\uFBFD\uFBFE\uFBFF\uFC00\uFC01\uFC02\uFC03\uFC04\uFC05\uFC06\uFC07\uFC08\uFC09\uFC0A\uFC0B\uFC0C\uFC0D\uFC0E\uFC0F\uFC10\uFC11\uFC12\uFC13\uFC14\uFC15\uFC16\uFC17\uFC18\uFC19\uFC1A\uFC1B\uFC1C\uFC1D\uFC1E\uFC1F\uFC20\uFC21\uFC22\uFC23\uFC24\uFC25\uFC26\uFC27\uFC28\uFC29\uFC2A\uFC2B\uFC2C\uFC2D\uFC2E\uFC2F\uFC30\uFC31\uFC32\uFC33\uFC34\uFC35\uFC36\uFC37\uFC38\uFC39\uFC3A\uFC3B\uFC3C\uFC3D\uFC3E\uFC3F\uFC40\uFC41\uFC42\uFC43\uFC44\uFC45\uFC46\uFC47\uFC48\uFC49\uFC4A\uFC4B\uFC4C\uFC4D\uFC4E\uFC4F\uFC50\uFC51\uFC52\uFC53\uFC54\uFC55\uFC56\uFC57\uFC58\uFC59\uFC5A\uFC5B\uFC5C\uFC5D\uFC5E\uFC5F\uFC60\uFC61\uFC62\uFC63\uFC64\uFC65\uFC66\uFC67\uFC68\uFC69\uFC6A\uFC6B\uFC6C\uFC6D\uFC6E\uFC6F\uFC70\uFC71\uFC72\uFC73\uFC74\uFC75\uFC76\uFC77\uFC78\uFC79\uFC7A\uFC7B\uFC7C\uFC7D\uFC7E\uFC7F\uFC80\uFC81\uFC82\uFC83\uFC84\uFC85\uFC86\uFC87\uFC88\uFC89\uFC8A\uFC8B\uFC8C\uFC8D\uFC8E\uFC8F\uFC90\uFC91\uFC92\uFC93\uFC94\uFC95\uFC96\uFC97\uFC98\uFC99\uFC9A\uFC9B\uFC9C\uFC9D\uFC9E\uFC9F\uFCA0\uFCA1\uFCA2\uFCA3\uFCA4\uFCA5\uFCA6\uFCA7\uFCA8\uFCA9\uFCAA\uFCAB\uFCAC\uFCAD\uFCAE\uFCAF\uFCB0\uFCB1\uFCB2\uFCB3\uFCB4\uFCB5\uFCB6\uFCB7\uFCB8\uFCB9\uFCBA\uFCBB\uFCBC\uFCBD\uFCBE\uFCBF\uFCC0\uFCC1\uFCC2\uFCC3\uFCC4\uFCC5\uFCC6\uFCC7\uFCC8\uFCC9\uFCCA\uFCCB\uFCCC\uFCCD\uFCCE\uFCCF\uFCD0\uFCD1\uFCD2\uFCD3\uFCD4\uFCD5\uFCD6\uFCD7\uFCD8\uFCD9\uFCDA\uFCDB\uFCDC\uFCDD\uFCDE\uFCDF\uFCE0\uFCE1\uFCE2\uFCE3\uFCE4\uFCE5\uFCE6\uFCE7\uFCE8\uFCE9\uFCEA\uFCEB\uFCEC\uFCED\uFCEE\uFCEF\uFCF0\uFCF1\uFCF2\uFCF3\uFCF4\uFCF5\uFCF6\uFCF7\uFCF8\uFCF9\uFCFA\uFCFB\uFCFC\uFCFD\uFCFE\uFCFF\uFD00\uFD01\uFD02\uFD03\uFD04\uFD05\uFD06\uFD07\uFD08\uFD09\uFD0A\uFD0B\uFD0C\uFD0D\uFD0E\uFD0F\uFD10\uFD11\uFD12\uFD13\uFD14\uFD15\uFD16\uFD17\uFD18\uFD19\uFD1A\uFD1B\uFD1C\uFD1D\uFD1E\uFD1F\uFD20\uFD21\uFD22\uFD23\uFD24\uFD25\uFD26\uFD27\uFD28\uFD29\uFD2A\uFD2B\uFD2C\uFD2D\uFD2E\uFD2F\uFD30\uFD31\uFD32\uFD33\uFD34\uFD35\uFD36\uFD37\uFD38\uFD39\uFD3A\uFD3B\uFD3C\uFD3D\uFD50\uFD51\uFD52\uFD53\uFD54\uFD55\uFD56\uFD57\uFD58\uFD59\uFD5A\uFD5B\uFD5C\uFD5D\uFD5E\uFD5F\uFD60\uFD61\uFD62\uFD63\uFD64\uFD65\uFD66\uFD67\uFD68\uFD69\uFD6A\uFD6B\uFD6C\uFD6D\uFD6E\uFD6F\uFD70\uFD71\uFD72\uFD73\uFD74\uFD75\uFD76\uFD77\uFD78\uFD79\uFD7A\uFD7B\uFD7C\uFD7D\uFD7E\uFD7F\uFD80\uFD81\uFD82\uFD83\uFD84\uFD85\uFD86\uFD87\uFD88\uFD89\uFD8A\uFD8B\uFD8C\uFD8D\uFD8E\uFD8F\uFD92\uFD93\uFD94\uFD95\uFD96\uFD97\uFD98\uFD99\uFD9A\uFD9B\uFD9C\uFD9D\uFD9E\uFD9F\uFDA0\uFDA1\uFDA2\uFDA3\uFDA4\uFDA5\uFDA6\uFDA7\uFDA8\uFDA9\uFDAA\uFDAB\uFDAC\uFDAD\uFDAE\uFDAF\uFDB0\uFDB1\uFDB2\uFDB3\uFDB4\uFDB5\uFDB6\uFDB7\uFDB8\uFDB9\uFDBA\uFDBB\uFDBC\uFDBD\uFDBE\uFDBF\uFDC0\uFDC1\uFDC2\uFDC3\uFDC4\uFDC5\uFDC6\uFDC7\uFDF0\uFDF1\uFDF2\uFDF3\uFDF4\uFDF5\uFDF6\uFDF7\uFDF8\uFDF9\uFDFA\uFDFB\uFE70\uFE71\uFE72\uFE73\uFE74\uFE76\uFE77\uFE78\uFE79\uFE7A\uFE7B\uFE7C\uFE7D\uFE7E\uFE7F\uFE80\uFE81\uFE82\uFE83\uFE84\uFE85\uFE86\uFE87\uFE88\uFE89\uFE8A\uFE8B\uFE8C\uFE8D\uFE8E\uFE8F\uFE90\uFE91\uFE92\uFE93\uFE94\uFE95\uFE96\uFE97\uFE98\uFE99\uFE9A\uFE9B\uFE9C\uFE9D\uFE9E\uFE9F\uFEA0\uFEA1\uFEA2\uFEA3\uFEA4\uFEA5\uFEA6\uFEA7\uFEA8\uFEA9\uFEAA\uFEAB\uFEAC\uFEAD\uFEAE\uFEAF\uFEB0\uFEB1\uFEB2\uFEB3\uFEB4\uFEB5\uFEB6\uFEB7\uFEB8\uFEB9\uFEBA\uFEBB\uFEBC\uFEBD\uFEBE\uFEBF\uFEC0\uFEC1\uFEC2\uFEC3\uFEC4\uFEC5\uFEC6\uFEC7\uFEC8\uFEC9\uFECA\uFECB\uFECC\uFECD\uFECE\uFECF\uFED0\uFED1\uFED2\uFED3\uFED4\uFED5\uFED6\uFED7\uFED8\uFED9\uFEDA\uFEDB\uFEDC\uFEDD\uFEDE\uFEDF\uFEE0\uFEE1\uFEE2\uFEE3\uFEE4\uFEE5\uFEE6\uFEE7\uFEE8\uFEE9\uFEEA\uFEEB\uFEEC\uFEED\uFEEE\uFEEF\uFEF0\uFEF1\uFEF2\uFEF3\uFEF4\uFEF5\uFEF6\uFEF7\uFEF8\uFEF9\uFEFA\uFEFB\uFEFC\uFF66\uFF67\uFF68\uFF69\uFF6A\uFF6B\uFF6C\uFF6D\uFF6E\uFF6F\uFF71\uFF72\uFF73\uFF74\uFF75\uFF76\uFF77\uFF78\uFF79\uFF7A\uFF7B\uFF7C\uFF7D\uFF7E\uFF7F\uFF80\uFF81\uFF82\uFF83\uFF84\uFF85\uFF86\uFF87\uFF88\uFF89\uFF8A\uFF8B\uFF8C\uFF8D\uFF8E\uFF8F\uFF90\uFF91\uFF92\uFF93\uFF94\uFF95\uFF96\uFF97\uFF98\uFF99\uFF9A\uFF9B\uFF9C\uFF9D\uFFA0\uFFA1\uFFA2\uFFA3\uFFA4\uFFA5\uFFA6\uFFA7\uFFA8\uFFA9\uFFAA\uFFAB\uFFAC\uFFAD\uFFAE\uFFAF\uFFB0\uFFB1\uFFB2\uFFB3\uFFB4\uFFB5\uFFB6\uFFB7\uFFB8\uFFB9\uFFBA\uFFBB\uFFBC\uFFBD\uFFBE\uFFC2\uFFC3\uFFC4\uFFC5\uFFC6\uFFC7\uFFCA\uFFCB\uFFCC\uFFCD\uFFCE\uFFCF\uFFD2\uFFD3\uFFD4\uFFD5\uFFD6\uFFD7\uFFDA\uFFDB\uFFDC] - -// Letter, Titlecase -Lt = [\u01C5\u01C8\u01CB\u01F2\u1F88\u1F89\u1F8A\u1F8B\u1F8C\u1F8D\u1F8E\u1F8F\u1F98\u1F99\u1F9A\u1F9B\u1F9C\u1F9D\u1F9E\u1F9F\u1FA8\u1FA9\u1FAA\u1FAB\u1FAC\u1FAD\u1FAE\u1FAF\u1FBC\u1FCC\u1FFC] - -// Letter, Uppercase -Lu = [\u0041\u0042\u0043\u0044\u0045\u0046\u0047\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057\u0058\u0059\u005A\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D8\u00D9\u00DA\u00DB\u00DC\u00DD\u00DE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189\u018A\u018B\u018E\u018F\u0190\u0191\u0193\u0194\u0196\u0197\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1\u01B2\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6\u01F7\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243\u0244\u0245\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u0386\u0388\u0389\u038A\u038C\u038E\u038F\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03CF\u03D2\u03D3\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD\u03FE\u03FF\u0400\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\u040D\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0531\u0532\u0533\u0534\u0535\u0536\u0537\u0538\u0539\u053A\u053B\u053C\u053D\u053E\u053F\u0540\u0541\u0542\u0543\u0544\u0545\u0546\u0547\u0548\u0549\u054A\u054B\u054C\u054D\u054E\u054F\u0550\u0551\u0552\u0553\u0554\u0555\u0556\u10A0\u10A1\u10A2\u10A3\u10A4\u10A5\u10A6\u10A7\u10A8\u10A9\u10AA\u10AB\u10AC\u10AD\u10AE\u10AF\u10B0\u10B1\u10B2\u10B3\u10B4\u10B5\u10B6\u10B7\u10B8\u10B9\u10BA\u10BB\u10BC\u10BD\u10BE\u10BF\u10C0\u10C1\u10C2\u10C3\u10C4\u10C5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08\u1F09\u1F0A\u1F0B\u1F0C\u1F0D\u1F0E\u1F0F\u1F18\u1F19\u1F1A\u1F1B\u1F1C\u1F1D\u1F28\u1F29\u1F2A\u1F2B\u1F2C\u1F2D\u1F2E\u1F2F\u1F38\u1F39\u1F3A\u1F3B\u1F3C\u1F3D\u1F3E\u1F3F\u1F48\u1F49\u1F4A\u1F4B\u1F4C\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68\u1F69\u1F6A\u1F6B\u1F6C\u1F6D\u1F6E\u1F6F\u1FB8\u1FB9\u1FBA\u1FBB\u1FC8\u1FC9\u1FCA\u1FCB\u1FD8\u1FD9\u1FDA\u1FDB\u1FE8\u1FE9\u1FEA\u1FEB\u1FEC\u1FF8\u1FF9\u1FFA\u1FFB\u2102\u2107\u210B\u210C\u210D\u2110\u2111\u2112\u2115\u2119\u211A\u211B\u211C\u211D\u2124\u2126\u2128\u212A\u212B\u212C\u212D\u2130\u2131\u2132\u2133\u213E\u213F\u2145\u2183\u2C00\u2C01\u2C02\u2C03\u2C04\u2C05\u2C06\u2C07\u2C08\u2C09\u2C0A\u2C0B\u2C0C\u2C0D\u2C0E\u2C0F\u2C10\u2C11\u2C12\u2C13\u2C14\u2C15\u2C16\u2C17\u2C18\u2C19\u2C1A\u2C1B\u2C1C\u2C1D\u2C1E\u2C1F\u2C20\u2C21\u2C22\u2C23\u2C24\u2C25\u2C26\u2C27\u2C28\u2C29\u2C2A\u2C2B\u2C2C\u2C2D\u2C2E\u2C60\u2C62\u2C63\u2C64\u2C67\u2C69\u2C6B\u2C6D\u2C6E\u2C6F\u2C72\u2C75\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uFF21\uFF22\uFF23\uFF24\uFF25\uFF26\uFF27\uFF28\uFF29\uFF2A\uFF2B\uFF2C\uFF2D\uFF2E\uFF2F\uFF30\uFF31\uFF32\uFF33\uFF34\uFF35\uFF36\uFF37\uFF38\uFF39\uFF3A] - -// Mark, Spacing Combining -Mc = [\u0903\u093E\u093F\u0940\u0949\u094A\u094B\u094C\u0982\u0983\u09BE\u09BF\u09C0\u09C7\u09C8\u09CB\u09CC\u09D7\u0A03\u0A3E\u0A3F\u0A40\u0A83\u0ABE\u0ABF\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6\u0BC7\u0BC8\u0BCA\u0BCB\u0BCC\u0BD7\u0C01\u0C02\u0C03\u0C41\u0C42\u0C43\u0C44\u0C82\u0C83\u0CBE\u0CC0\u0CC1\u0CC2\u0CC3\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0D02\u0D03\u0D3E\u0D3F\u0D40\u0D46\u0D47\u0D48\u0D4A\u0D4B\u0D4C\u0D57\u0D82\u0D83\u0DCF\u0DD0\u0DD1\u0DD8\u0DD9\u0DDA\u0DDB\u0DDC\u0DDD\u0DDE\u0DDF\u0DF2\u0DF3\u0F3E\u0F3F\u0F7F\u102B\u102C\u1031\u1038\u103B\u103C\u1056\u1057\u1062\u1063\u1064\u1067\u1068\u1069\u106A\u106B\u106C\u106D\u1083\u1084\u1087\u1088\u1089\u108A\u108B\u108C\u108F\u17B6\u17BE\u17BF\u17C0\u17C1\u17C2\u17C3\u17C4\u17C5\u17C7\u17C8\u1923\u1924\u1925\u1926\u1929\u192A\u192B\u1930\u1931\u1933\u1934\u1935\u1936\u1937\u1938\u19B0\u19B1\u19B2\u19B3\u19B4\u19B5\u19B6\u19B7\u19B8\u19B9\u19BA\u19BB\u19BC\u19BD\u19BE\u19BF\u19C0\u19C8\u19C9\u1A19\u1A1A\u1A1B\u1B04\u1B35\u1B3B\u1B3D\u1B3E\u1B3F\u1B40\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1C24\u1C25\u1C26\u1C27\u1C28\u1C29\u1C2A\u1C2B\u1C34\u1C35\uA823\uA824\uA827\uA880\uA881\uA8B4\uA8B5\uA8B6\uA8B7\uA8B8\uA8B9\uA8BA\uA8BB\uA8BC\uA8BD\uA8BE\uA8BF\uA8C0\uA8C1\uA8C2\uA8C3\uA952\uA953\uAA2F\uAA30\uAA33\uAA34\uAA4D] - -// Mark, Nonspacing -Mn = [\u0300\u0301\u0302\u0303\u0304\u0305\u0306\u0307\u0308\u0309\u030A\u030B\u030C\u030D\u030E\u030F\u0310\u0311\u0312\u0313\u0314\u0315\u0316\u0317\u0318\u0319\u031A\u031B\u031C\u031D\u031E\u031F\u0320\u0321\u0322\u0323\u0324\u0325\u0326\u0327\u0328\u0329\u032A\u032B\u032C\u032D\u032E\u032F\u0330\u0331\u0332\u0333\u0334\u0335\u0336\u0337\u0338\u0339\u033A\u033B\u033C\u033D\u033E\u033F\u0340\u0341\u0342\u0343\u0344\u0345\u0346\u0347\u0348\u0349\u034A\u034B\u034C\u034D\u034E\u034F\u0350\u0351\u0352\u0353\u0354\u0355\u0356\u0357\u0358\u0359\u035A\u035B\u035C\u035D\u035E\u035F\u0360\u0361\u0362\u0363\u0364\u0365\u0366\u0367\u0368\u0369\u036A\u036B\u036C\u036D\u036E\u036F\u0483\u0484\u0485\u0486\u0487\u0591\u0592\u0593\u0594\u0595\u0596\u0597\u0598\u0599\u059A\u059B\u059C\u059D\u059E\u059F\u05A0\u05A1\u05A2\u05A3\u05A4\u05A5\u05A6\u05A7\u05A8\u05A9\u05AA\u05AB\u05AC\u05AD\u05AE\u05AF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610\u0611\u0612\u0613\u0614\u0615\u0616\u0617\u0618\u0619\u061A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\u0653\u0654\u0655\u0656\u0657\u0658\u0659\u065A\u065B\u065C\u065D\u065E\u0670\u06D6\u06D7\u06D8\u06D9\u06DA\u06DB\u06DC\u06DF\u06E0\u06E1\u06E2\u06E3\u06E4\u06E7\u06E8\u06EA\u06EB\u06EC\u06ED\u0711\u0730\u0731\u0732\u0733\u0734\u0735\u0736\u0737\u0738\u0739\u073A\u073B\u073C\u073D\u073E\u073F\u0740\u0741\u0742\u0743\u0744\u0745\u0746\u0747\u0748\u0749\u074A\u07A6\u07A7\u07A8\u07A9\u07AA\u07AB\u07AC\u07AD\u07AE\u07AF\u07B0\u07EB\u07EC\u07ED\u07EE\u07EF\u07F0\u07F1\u07F2\u07F3\u0901\u0902\u093C\u0941\u0942\u0943\u0944\u0945\u0946\u0947\u0948\u094D\u0951\u0952\u0953\u0954\u0962\u0963\u0981\u09BC\u09C1\u09C2\u09C3\u09C4\u09CD\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B\u0A4C\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1\u0AC2\u0AC3\u0AC4\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0B01\u0B3C\u0B3F\u0B41\u0B42\u0B43\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C3E\u0C3F\u0C40\u0C46\u0C47\u0C48\u0C4A\u0C4B\u0C4C\u0C4D\u0C55\u0C56\u0C62\u0C63\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D41\u0D42\u0D43\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2\u0DD3\u0DD4\u0DD6\u0E31\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0EB1\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBB\u0EBC\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71\u0F72\u0F73\u0F74\u0F75\u0F76\u0F77\u0F78\u0F79\u0F7A\u0F7B\u0F7C\u0F7D\u0F7E\u0F80\u0F81\u0F82\u0F83\u0F84\u0F86\u0F87\u0F90\u0F91\u0F92\u0F93\u0F94\u0F95\u0F96\u0F97\u0F99\u0F9A\u0F9B\u0F9C\u0F9D\u0F9E\u0F9F\u0FA0\u0FA1\u0FA2\u0FA3\u0FA4\u0FA5\u0FA6\u0FA7\u0FA8\u0FA9\u0FAA\u0FAB\u0FAC\u0FAD\u0FAE\u0FAF\u0FB0\u0FB1\u0FB2\u0FB3\u0FB4\u0FB5\u0FB6\u0FB7\u0FB8\u0FB9\u0FBA\u0FBB\u0FBC\u0FC6\u102D\u102E\u102F\u1030\u1032\u1033\u1034\u1035\u1036\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E\u105F\u1060\u1071\u1072\u1073\u1074\u1082\u1085\u1086\u108D\u135F\u1712\u1713\u1714\u1732\u1733\u1734\u1752\u1753\u1772\u1773\u17B7\u17B8\u17B9\u17BA\u17BB\u17BC\u17BD\u17C6\u17C9\u17CA\u17CB\u17CC\u17CD\u17CE\u17CF\u17D0\u17D1\u17D2\u17D3\u17DD\u180B\u180C\u180D\u18A9\u1920\u1921\u1922\u1927\u1928\u1932\u1939\u193A\u193B\u1A17\u1A18\u1B00\u1B01\u1B02\u1B03\u1B34\u1B36\u1B37\u1B38\u1B39\u1B3A\u1B3C\u1B42\u1B6B\u1B6C\u1B6D\u1B6E\u1B6F\u1B70\u1B71\u1B72\u1B73\u1B80\u1B81\u1BA2\u1BA3\u1BA4\u1BA5\u1BA8\u1BA9\u1C2C\u1C2D\u1C2E\u1C2F\u1C30\u1C31\u1C32\u1C33\u1C36\u1C37\u1DC0\u1DC1\u1DC2\u1DC3\u1DC4\u1DC5\u1DC6\u1DC7\u1DC8\u1DC9\u1DCA\u1DCB\u1DCC\u1DCD\u1DCE\u1DCF\u1DD0\u1DD1\u1DD2\u1DD3\u1DD4\u1DD5\u1DD6\u1DD7\u1DD8\u1DD9\u1DDA\u1DDB\u1DDC\u1DDD\u1DDE\u1DDF\u1DE0\u1DE1\u1DE2\u1DE3\u1DE4\u1DE5\u1DE6\u1DFE\u1DFF\u20D0\u20D1\u20D2\u20D3\u20D4\u20D5\u20D6\u20D7\u20D8\u20D9\u20DA\u20DB\u20DC\u20E1\u20E5\u20E6\u20E7\u20E8\u20E9\u20EA\u20EB\u20EC\u20ED\u20EE\u20EF\u20F0\u2DE0\u2DE1\u2DE2\u2DE3\u2DE4\u2DE5\u2DE6\u2DE7\u2DE8\u2DE9\u2DEA\u2DEB\u2DEC\u2DED\u2DEE\u2DEF\u2DF0\u2DF1\u2DF2\u2DF3\u2DF4\u2DF5\u2DF6\u2DF7\u2DF8\u2DF9\u2DFA\u2DFB\u2DFC\u2DFD\u2DFE\u2DFF\u302A\u302B\u302C\u302D\u302E\u302F\u3099\u309A\uA66F\uA67C\uA67D\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA926\uA927\uA928\uA929\uA92A\uA92B\uA92C\uA92D\uA947\uA948\uA949\uA94A\uA94B\uA94C\uA94D\uA94E\uA94F\uA950\uA951\uAA29\uAA2A\uAA2B\uAA2C\uAA2D\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uFB1E\uFE00\uFE01\uFE02\uFE03\uFE04\uFE05\uFE06\uFE07\uFE08\uFE09\uFE0A\uFE0B\uFE0C\uFE0D\uFE0E\uFE0F\uFE20\uFE21\uFE22\uFE23\uFE24\uFE25\uFE26] - -// Number, Decimal Digit -Nd = [\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0038\u0039\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6\u06F7\u06F8\u06F9\u07C0\u07C1\u07C2\u07C3\u07C4\u07C5\u07C6\u07C7\u07C8\u07C9\u0966\u0967\u0968\u0969\u096A\u096B\u096C\u096D\u096E\u096F\u09E6\u09E7\u09E8\u09E9\u09EA\u09EB\u09EC\u09ED\u09EE\u09EF\u0A66\u0A67\u0A68\u0A69\u0A6A\u0A6B\u0A6C\u0A6D\u0A6E\u0A6F\u0AE6\u0AE7\u0AE8\u0AE9\u0AEA\u0AEB\u0AEC\u0AED\u0AEE\u0AEF\u0B66\u0B67\u0B68\u0B69\u0B6A\u0B6B\u0B6C\u0B6D\u0B6E\u0B6F\u0BE6\u0BE7\u0BE8\u0BE9\u0BEA\u0BEB\u0BEC\u0BED\u0BEE\u0BEF\u0C66\u0C67\u0C68\u0C69\u0C6A\u0C6B\u0C6C\u0C6D\u0C6E\u0C6F\u0CE6\u0CE7\u0CE8\u0CE9\u0CEA\u0CEB\u0CEC\u0CED\u0CEE\u0CEF\u0D66\u0D67\u0D68\u0D69\u0D6A\u0D6B\u0D6C\u0D6D\u0D6E\u0D6F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\u0F20\u0F21\u0F22\u0F23\u0F24\u0F25\u0F26\u0F27\u0F28\u0F29\u1040\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1090\u1091\u1092\u1093\u1094\u1095\u1096\u1097\u1098\u1099\u17E0\u17E1\u17E2\u17E3\u17E4\u17E5\u17E6\u17E7\u17E8\u17E9\u1810\u1811\u1812\u1813\u1814\u1815\u1816\u1817\u1818\u1819\u1946\u1947\u1948\u1949\u194A\u194B\u194C\u194D\u194E\u194F\u19D0\u19D1\u19D2\u19D3\u19D4\u19D5\u19D6\u19D7\u19D8\u19D9\u1B50\u1B51\u1B52\u1B53\u1B54\u1B55\u1B56\u1B57\u1B58\u1B59\u1BB0\u1BB1\u1BB2\u1BB3\u1BB4\u1BB5\u1BB6\u1BB7\u1BB8\u1BB9\u1C40\u1C41\u1C42\u1C43\u1C44\u1C45\u1C46\u1C47\u1C48\u1C49\u1C50\u1C51\u1C52\u1C53\u1C54\u1C55\u1C56\u1C57\u1C58\u1C59\uA620\uA621\uA622\uA623\uA624\uA625\uA626\uA627\uA628\uA629\uA8D0\uA8D1\uA8D2\uA8D3\uA8D4\uA8D5\uA8D6\uA8D7\uA8D8\uA8D9\uA900\uA901\uA902\uA903\uA904\uA905\uA906\uA907\uA908\uA909\uAA50\uAA51\uAA52\uAA53\uAA54\uAA55\uAA56\uAA57\uAA58\uAA59\uFF10\uFF11\uFF12\uFF13\uFF14\uFF15\uFF16\uFF17\uFF18\uFF19] - -// Number, Letter -Nl = [\u16EE\u16EF\u16F0\u2160\u2161\u2162\u2163\u2164\u2165\u2166\u2167\u2168\u2169\u216A\u216B\u216C\u216D\u216E\u216F\u2170\u2171\u2172\u2173\u2174\u2175\u2176\u2177\u2178\u2179\u217A\u217B\u217C\u217D\u217E\u217F\u2180\u2181\u2182\u2185\u2186\u2187\u2188\u3007\u3021\u3022\u3023\u3024\u3025\u3026\u3027\u3028\u3029\u3038\u3039\u303A] - -// Punctuation, Connector -Pc = [\u005F\u203F\u2040\u2054\uFE33\uFE34\uFE4D\uFE4E\uFE4F\uFF3F] - -// Separator, Space -Zs = [\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000] - -/* ===== Python & CoffeeScript style rules */ -blank - = (Comment / [ \t])* EOL - { return undefined; } - -EOL - = "\r\n" / "\n" / "\r" - -SAMEDENT - = i:([ \t] / (Comment { return ""}))* &{ return i.join("") === indent; } - -INDENT - = i:(m:(Comment* [ \t] Comment*) {return m[1]})+ &{ return i.length > indent.length; } - { indentStack.push(indent); indent = i.join(""); pos = offset; } - -DEDENT - = { indent = indentStack.pop(); } \ No newline at end of file diff --git a/src/rewriter.coffee b/src/rewriter.coffee new file mode 100644 index 0000000..a2af650 --- /dev/null +++ b/src/rewriter.coffee @@ -0,0 +1,399 @@ +nodes = require './nodes' +helpers = require './helpers' + +exports.rewrite = (tree, context) -> + IdCounter = new helpers.IdCounter + UseSuperMammouth = false + php = '' + ADD = (string) -> + php += string + + compile = (element)-> + switch element.type + when 'Block' + if element.nodes[element.nodes.length - 1].type is 'BlankLine' + element.nodes.pop() + if element.nodes.length == 1 and element.nodes[0].type is 'Expression' + r = ' ' + compile(element.nodes[0]) + ' ' + return r + else + r = '' + for node, i in element.nodes + r += compile(node) + if i != element.nodes.length - 1 + r += '\n' + return '\n' + r + '\n' + when 'Expression' then return compile(element.expression) + ';' + + # Values + when 'Value' + if element.properties.length > 0 + r = compile element.value + for propertie in element.properties + switch propertie.method + when '->', '.' + r += "->" + propertie.value.name + when '::', '..' + r += '::' + propertie.value.name + when '[]' + r += '[' + compile(propertie.value) + ']' + return r + else + return compile element.value + when 'Parens' then return '(' + compile(element.expression) + ')' + when 'Identifier' + if element.as_arguments + r = '$' + element.name + else + r = context.Identify(element.name) + if element.passing + r = '&' + r + return r + when 'Literal' + if typeof element.value is 'number' + return element.value + else + return element.value + when 'Bool' + if element.value + return 'TRUE' + else + return 'FALSE' + when 'Null' + return 'NULL' + when 'Array' + r = 'array(' + for elem, i in element.elements + if elem.type is 'ArrayKey' + r += compile(elem.key) + ' => ' + compile(elem.value) + else + r += compile elem + if i != element.elements.length - 1 + r += ', ' + r += ')' + return r; + when 'Call' + r = compile(element.variable) + '(' + for arg, i in element.arguments + r += compile arg + if i != element.arguments.length - 1 + r += ', ' + r += ')' + return r; + when 'NewCall' + r = 'new ' + compile(element.variable) + if element.arguments isnt false + r += '(' + for arg, i in element.arguments + r += compile arg + if i != element.arguments.length - 1 + r += ', ' + r += ')' + return r; + when 'Code' + if element.normal + r = 'function ' + element.name + '(' + context.push({ + name: element.name + type: 'function' + }) + else + r = 'function(' + for parameter, i in element.parameters + if parameter.and is true + r += '&' + compile parameter + else + r += compile parameter + if i != element.parameters.length - 1 + r += ', ' + r += ')' + if element.body isnt false + r += ' {' + r += compile element.body + r += '}' + else + r += ';' + return r; + when 'Casting' + if element.foreach is true + return compile(new nodes.Identifier(element.typec)) + ' => ' + compile(element.variable) + else + return '(' + element.typec + ') ' + compile(element.variable) + when 'Exec' + return '`' + element.code + '`' + when 'HereDoc' + return '<<' + r = compile(element.left) + '.' + compile(element.right) + else if element.operator is '+' + UseSuperMammouth = true + r = '$Mammouth("+", ' + compile(element.left) + ', ' + compile(element.right) + ')' + else + r = compile(element.left) + ' ' + element.operator + ' ' + compile(element.right) + return r + when 'Assign' + r = compile(element.left) + ' ' + element.operator + ' ' + compile(element.right) + return r + when 'GetKeyAssign' + r = '' + for key, i in element.keys + value = new nodes.Value(element.source.value) + value.add(new nodes.Access(new nodes.Literal('"' + key.name + '"'), '[]')) + if i isnt (element.keys.length - 1) + r += compile(new nodes.Expression(new nodes.Assign("=", key, value))) + r += '\n' + else + r += compile(new nodes.Assign("=", key, value)) + return r + when 'Constant' + context.push({ + name: element.left.name + type: 'cte' + }) + return 'const ' + compile(element.left) + ' = ' + compile(element.right) + when 'Unary' + r = element.operator + r += compile element.expression + return r + when 'Update' + r = compile element.expression + r = if not element.prefix then r + element.operator else element.operator + r + return r + when 'Existence' + r = 'isset(' + compile(element.expression) + ')' + return r + when 'In' + r = '$Mammouth("in_array", ' + compile(element.left) + ', ' + compile(element.right) + ')' + return r + + # Simple Statements + when 'Echo' + return 'echo ' + compile(element.value) + when 'Delete' + return 'unset(' + compile(element.value) + ')' + when 'Include' + if element.once + r = 'include_once ' + else + r = 'include ' + r += compile(element.path) + return r + when 'Require' + if element.once + r = 'require_once ' + else + r = 'require ' + r += compile(element.path) + return r + when 'Break' + r = 'break' + if element.arg isnt false + r += ' ' + compile(element.arg) + return r + when 'Continue' + r = 'continue' + if element.arg isnt false + r += ' ' + compile(element.arg) + return r + when 'Return' + return 'return ' + compile(element.value) + when 'Declare' + r = 'declare(' + compile(element.expression) + ')' + if element.script isnt false + r += ' {' + r += compile(element.script) + r += '}' + return r + when 'Goto' + return 'goto ' + element.section + + # If + when 'If' + if element.as_expression + r = compile(element.condition) + ' ? ' + compile(element.body) + if element.Elses is false + r += ' : NULL' + else + r += ' : ' + compile(element.Elses) + return r + else + r = 'if(' + compile(element.condition) + ') {' + r += compile(element.body) + r += '}' + for elsei in element.Elses + if elsei.type is 'Else' + r += ' else {' + r += compile(elsei.body) + r += '}' + else if elsei.type is 'ElseIf' + r += ' elseif(' + compile(elsei.condition) + ') {' + r += compile(elsei.body) + r += '}' + return r + + # While + when 'While' + r = 'while(' + compile(element.test) + ') {' + r += compile(element.body) + r += '}' + return r + + # Do While + when 'DoWhile' + r = 'do {' + r += compile(element.body) + r += '} while (' + compile(element.test) + ');' + return r + + # Try + when 'Try' + r = 'try {' + r += compile(element.TryBody) + r += '}' + r += ' catch(Exception ' + compile(element.CatchIdentifier) + ') {' + r += compile(element.CatchBody) + r += '}' + if element.Finally + r += ' finally {' + r += compile(element.FinallyBody) + r += '}' + return r + + # Switch + when 'Switch' + r = 'switch (' + compile(element.variable) + ') {\n' + for Scase in element.cases + if Scase.type is 'When' + r += 'case ' + compile(Scase.condition) + ': {' + Scase.body.nodes.push(new nodes.Expression(new nodes.Break)) + r += compile(Scase.body) + r += '}' + else if Scase.type is 'SwitchElse' + r += 'default: {' + r += compile(Scase.body) + r += '}' + r += '\n' + r += '}' + return r + + # For + when 'For' + if element.method is 'normal' and element.expressions.length > 1 + r = 'for(' + for expression, i in element.expressions + if expression.type is 'In' + expression.each = true + r += compile(expression) + if i isnt element.expressions.length + r += '; ' + r += ') {' + r += compile(element.body) + r += '}' + else if element.method is 'normal' and element.expressions.length is 1 and element.expressions[0].type is 'In' + InElement = element.expressions[0] + r = 'for(' + ID = IdCounter.get() + r += compile(ID) + ' = 0; ' + r += compile(ID) + ' < count(' + compile(InElement.right) + '); ' + r += compile(ID) + '++' + r += ') {' + element.body.nodes.unshift(new nodes.Expression(new nodes.Assign('=', InElement.left, new nodes.Value(InElement.right, [new nodes.Access(ID, '[]')])))) + r += compile(element.body) + r += '}' + else if element.method is 'foreach' + r = 'foreach(' + r += compile(element.left) + r += ' as ' + r += compile(element.right) + r += ') {' + r += compile(element.body) + r += '}' + return r + + # Section + when 'Section' + return element.name + ':' + + # Classe + when 'Class' + r = 'class ' + element.name + context.push({ + name: element.name + type: 'class' + }) + if element.abstract is true + r = 'abstract ' + r + if element.extendable isnt false + r += ' extends ' + element.extendable + if element.implement isnt false + r += ' implements ' + element.implement + r += ' {\n' + for line, i in element.body + lr = '' + if line.visibility isnt false + lr += line.visibility + ' ' + if line.statically isnt false + lr += line.statically + ' ' + lr += compile(line.element) + if line.finaly is true + lr = 'final ' + lr + if line.abstract is true + lr = 'abstract ' + lr + r += lr + if i isnt (element.body.length - 1) + r += '\n' + r += '\n}' + return r + + # Interface + when 'Interface' + r = 'interface ' + element.name + context.push({ + name: element.name + type: 'interface' + }) + if element.extendable isnt false + r += ' extends ' + for ext, i in element.extendable + r += ext + if i isnt (element.extendable.length - 1) + r += ', ' + r += ' {\n' + for line, i in element.body + lr = '' + if line.type is 'Code' + lr += 'public ' + compile(line) + else + lr += compile(line) + r += lr + if i isnt (element.body.length - 1) + r += '\n' + r += '\n}' + + # Namespace + when 'Namespace' + r = 'namespace ' + element.name + if element.body isnt false + r += ' {' + r += compile(element.body) + r += '}' + return r + when 'NamespaceRef' + return element.path + + for doc in tree + switch doc.type + when 'PlainBlock' then ADD doc.toPHP() + when 'MammouthBlock' then ADD '' + return php \ No newline at end of file diff --git a/src/tokens.js b/src/tokens.js deleted file mode 100644 index 0bb1a9a..0000000 --- a/src/tokens.js +++ /dev/null @@ -1,24 +0,0 @@ -mammouth.Tokens = { - NewToken: 'new', - FunctionToken: 'function', - IfToken: 'if', - ElseToken: 'else', - ForToken: 'for', - WhileToken: 'while', - SwitchToken: 'switch', - CaseToken: 'case', - DefaultToken: 'default', - TryToken: 'try', - CatchToken: 'catch', - FinallyToken: 'finally', - NamespaceToken: 'namespace', - ClassToken: 'class', - ContinueToken: 'continue', - BreakToken: 'break', - EchoToken: 'echo', - ReturnToken: 'return', - IncludeToken: 'include', - Include_onceToken: 'include_once', - RequireToken: 'require', - Require_onceToken: 'require_once' -}; \ No newline at end of file diff --git a/test-browser/main.html b/test-browser/main.html index f1b3f5f..890fcbe 100644 --- a/test-browser/main.html +++ b/test-browser/main.html @@ -4,7 +4,7 @@ - +