yapp 5.1.262 → 5.1.264
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/example.js +2 -2
- package/lib/parser/javascript.js +2 -2
- package/package.json +1 -1
- package/src/parser/javascript.js +161 -161
package/lib/parser/javascript.js
CHANGED
|
@@ -97,7 +97,7 @@ function _is_native_reflect_construct() {
|
|
|
97
97
|
})();
|
|
98
98
|
}
|
|
99
99
|
var rulesFromBNF = _occamparsers.parserUtilities.rulesFromBNF, parserFromRules = _occamparsers.parserUtilities.parserFromRules;
|
|
100
|
-
var bnf = '\n\n javaScript
|
|
100
|
+
var bnf = '\n\n javaScript ::= preamble? ( statement | function | class | error )* ;\n\n\n preamble ::= "\\"use strict\\";" ;\n\n\n statement ::= statementBody... ";"\n \n | "{" ( statement | function )* "}"\n \n | "if" "(" expression... ")" statement ( "else" statement )?\n \n | "for" ( ( "(" initialiser ( ";" expression )? ( ";" expression )? ")" statement )\n \n | ( "(" variable "in" expression... ")" statement )\n \n | ( "await"? "(" variable "of" expression... ")" statement ) )\n \n | "do" statement "while" "(" expression... ")"\n \n | "while" "(" expression... ")" statement\n \n | "switch" "(" expression... ")" "{" case* defaultCase? "}"\n \n | try ( ( catch* finally ) | catch+ )\n \n ;\n\n\n class ::= ( "export" "default"? )? "class" name classBody\n \n | "export" "default" "class" classBody\n \n ;\n\n\n function ::= ( "export" "default"? )? "async"? "function" name functionBody \n \n | "export" "default" "async"? "function" functionBody\n \n ;\n\n\n statementBody ::= "import" ( [string-literal]\n\n | ( name "from" [string-literal] )\n \n | ( "{" names "}" "from" [string-literal] )\n \n | ( "*" "as" name "from" [string-literal] ) )\n \n | "export" ( ( "{" names "}" ( "from" [string-literal] )? )\n \n | ( "const" "{" fields "}" "=" expression )\n \n | ( "{" "default" "}" "from" [string-literal] )\n \n | ( "*" ( "as" name )? "from" [string-literal] ) )\n \n | "export"? ( ( "var" var ( "," var )* )\n \n | ( "let" let ( "," let )* )\n \n | ( "const" const ( "," const )* ) )\n \n | ( "export" "default" )? expression\n \n | "return" ( ( "(" expression ")" ) | expression? )\n \n | "throw" expression\n \n | "delete" expression\n \n | "break"\n \n | "continue"\n \n | "debugger"\n \n ;\n\n\n functionBody ::= "(" arguments? ")" "{" ( statement | function )* "}" ;\n\n\n classBody ::= ( "extends" name )? "{" ( classConstructor | classMethod | classField )* "}" ;\n\n\n classConstructor ::= "constructor" functionBody ;\n\n\n classMethod ::= "static"? name functionBody ;\n\n\n classField ::= "static"? name "=" expression... ";" ;\n\n\n var ::= variable ( "=" expression )? | destructure "=" expression ;\n\n\n let ::= variable ( "=" expression )? | destructure "=" expression ;\n\n\n const ::= ( variable | destructure ) "=" expression ;\n\n\n try ::= "try" "{" statement+ "}" ;\n\n\n catch ::= "catch" "(" [identifier] ")" "{" statement+ "}" ;\n\n\n finally ::= "finally" "{" statement+ "}" ;\n\n\n case ::= "case" expression ":" statement ( "break" ";" )? ;\n\n\n defaultCase ::= "default" ":" statement ( "break" ";" )? ;\n\n\n initialiser ::= expression | "var" var ( "," var )* | "let" let ( "," let )* ;\n\n\n destructure ::= "[" variable ( "=" expression )? ( "," variable ( "=" expression )? )* "]"\n\n | "{" variable ( "=" expression )? ( "," variable ( "=" expression )? )* "}"\n \n ;\n\n\n expression ::= jsx\n\n | json\n \n | arrowFunction\n \n | templateLiteral\n \n | anonymousFunction\n \n | "(" expression ")"\n \n | "{" ( property ( "," property )* )? "}"\n \n | "[" ( expression ( "," expression )* ","? )? "]"\n \n | "typeof" ( expression | ( "(" expression ")") )\n \n | "void" ( expression | ( "(" expression ")") )\n \n | "new" name<NO_WHITESPACE>"(" expressions? ")"\n \n | [operator]<NO_WHITESPACE>expression\n \n | expression<NO_WHITESPACE>( ( "."<NO_WHITESPACE>name )\n \n | ( "[" expressions "]" )\n \n | ( "(" expressions? ")" )\n \n | templateLiteral\n \n | [operator] )\n \n | expression ( ( [operator] expression )\n \n | ( "?" expression ":" expression )\n \n | ( "instanceof" expression )\n \n | ( "in" expression ) )\n \n | [number]\n \n | variable\n \n | primitive\n \n | importMeta\n \n | [string-literal]\n \n | "super" | "this" | "true" | "false" | "null" | "undefined"\n \n ;\n\n\n jsx ::= jsxCompleteTag | jsxStartTag ( jsx | ( "{" expression? "}" ) | string )* jsxEndTag ;\n\n\n jsxCompleteTag ::= "<"<NO_WHITESPACE>name jsxAttribute* "/>" ;\n\n\n jsxStartTag ::= "<"<NO_WHITESPACE>name jsxAttribute* ">" ;\n\n\n jsxEndTag ::= "</"<NO_WHITESPACE>name ">" ;\n\n\n jsxAttribute ::= name ( <NO_WHITESPACE>"=" ( ( <NO_WHITESPACE>[string-literal] ) | ( <NO_WHITESPACE>"{" expression "}" ) ) )? ;\n\n\n json ::= jsonArray | jsonObject ;\n\n\n jsonArray ::= "[" ( jsonElement ( "," jsonElement )* )? "]" ;\n\n\n jsonObject ::= "{" ( [string-literal] ":" jsonElement ( "," [string-literal] ":" jsonElement )* )? "}" ;\n\n\n jsonElement ::= json | [string-literal] | [number] | "true" | "false" | "null" ;\n\n\n arrowFunction ::= "(" arguments? ")" "=>" ( expression | ( "{" statement* "}" ) ) ;\n \n\n templateLiteral ::= "`" ( ( "${" expression? "}" ) | string )* "`" ;\n\n\n string ::= ( [number] | [special] | [operator]| [keyword] | [identifier] | [string-literal]| [broken-string-literal] | [unassigned] )+ ;\n\n\n property ::= ( ( ( name | [string-literal] ) ":" expression ) | variable ) ;\n\n\n importMeta ::= "import"<NO_WHITESPACE>"."<NO_WHITESPACE>"meta" ;\n\n\n expressions ::= expression ( "," expression )* ;\n\n\n arguments ::= spreadArgument | ( argument ( "," argument )* ( "," spreadArgument )? ) ;\n\n\n fields ::= name ( ":" name )? ( "," name ( ":" name )? )* ;\n\n\n names ::= name ( "as" name )? ( "," name ( "as" name )? )* ;\n\n\n spreadArgument ::= "..."<NO_WHITESPACE>variable ;\n\n \n argument ::= variable ( "=" expression )? ;\n\n\n variable ::= [identifier] ;\n\n\n label ::= [identifier] ;\n\n\n name ::= [identifier] ;\n\n\n error. ::= . ;\n \n';
|
|
101
101
|
var rules = rulesFromBNF(bnf);
|
|
102
102
|
rules = (0, _occamgrammarutilities.eliminateLeftRecursion)(rules); ///
|
|
103
103
|
var JavaScriptParser = /*#__PURE__*/ function(CommonParser) {
|
|
@@ -125,4 +125,4 @@ var JavaScriptParser = /*#__PURE__*/ function(CommonParser) {
|
|
|
125
125
|
}(_occamparsers.CommonParser);
|
|
126
126
|
_define_property(JavaScriptParser, "bnf", bnf);
|
|
127
127
|
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXIvamF2YXNjcmlwdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgQ29tbW9uUGFyc2VyIH0gZnJvbSBcIm9jY2FtLXBhcnNlcnNcIjtcbmltcG9ydCB7IHBhcnNlclV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1wYXJzZXJzXCI7XG5pbXBvcnQgeyBlbGltaW5hdGVMZWZ0UmVjdXJzaW9uIH0gZnJvbSBcIm9jY2FtLWdyYW1tYXItdXRpbGl0aWVzXCI7XG5cbmNvbnN0IHsgcnVsZXNGcm9tQk5GLCBwYXJzZXJGcm9tUnVsZXMgfSA9IHBhcnNlclV0aWxpdGllcztcblxuY29uc3QgYm5mID0gYFxuXG4gIGphdmFTY3JpcHQgICAgICA6Oj0gIHByZWFtYmxlPyAoIHN0YXRlbWVudCB8IGZ1bmN0aW9uIHwgY2xhc3MgfCBlcnJvciApKiA7XG5cblxuICBwcmVhbWJsZSAgICAgICAgOjo9ICBcIlxcXFxcInVzZSBzdHJpY3RcXFxcXCI7XCIgO1xuXG5cbiAgc3RhdGVtZW50ICAgICAgIDo6PSAgc3RhdGVtZW50Qm9keS4uLiBcIjtcIlxuICBcbiAgICAgICAgICAgICAgICAgICAgfCAgXCJ7XCIgKCBzdGF0ZW1lbnQgfCBmdW5jdGlvbiApKiBcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICB8ICBcImlmXCIgXCIoXCIgZXhwcmVzc2lvbi4uLiBcIilcIiBzdGF0ZW1lbnQgKCBcImVsc2VcIiBzdGF0ZW1lbnQgKT9cblxuICAgICAgICAgICAgICAgICAgICB8ICBcImZvclwiICggKCBcIihcIiBpbml0aWFsaXNlciAoIFwiO1wiIGV4cHJlc3Npb24gKT8gKCBcIjtcIiBleHByZXNzaW9uICk/IFwiKVwiIHN0YXRlbWVudCApXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiKFwiIHZhcmlhYmxlIFwiaW5cIiBleHByZXNzaW9uLi4uIFwiKVwiIHN0YXRlbWVudCApXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiYXdhaXRcIj8gXCIoXCIgdmFyaWFibGUgXCJvZlwiIGV4cHJlc3Npb24uLi4gXCIpXCIgc3RhdGVtZW50ICkgKVxuXG4gICAgICAgICAgICAgICAgICAgIHwgIFwiZG9cIiBzdGF0ZW1lbnQgXCJ3aGlsZVwiIFwiKFwiIGV4cHJlc3Npb24uLi4gXCIpXCJcblxuICAgICAgICAgICAgICAgICAgICB8ICBcIndoaWxlXCIgXCIoXCIgZXhwcmVzc2lvbi4uLiBcIilcIiBzdGF0ZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgfCAgXCJzd2l0Y2hcIiBcIihcIiBleHByZXNzaW9uLi4uIFwiKVwiIFwie1wiIGNhc2UqIGRlZmF1bHRDYXNlPyBcIn1cIlxuXG4gICAgICAgICAgICAgICAgICAgIHwgIHRyeSAoICggY2F0Y2gqIGZpbmFsbHkgKSB8IGNhdGNoKyApXG5cbiAgICAgICAgICAgICAgICAgICAgO1xuXG5cbiAgY2xhc3MgICAgICAgICAgIDo6PSAgKCBcImV4cG9ydFwiIFwiZGVmYXVsdFwiPyApPyBcImNsYXNzXCIgbmFtZSBjbGFzc0JvZHlcbiAgXG4gICAgICAgICAgICAgICAgICAgIHwgIFwiZXhwb3J0XCIgXCJkZWZhdWx0XCIgXCJjbGFzc1wiIGNsYXNzQm9keVxuICBcbiAgICAgICAgICAgICAgICAgICAgO1xuXG5cbiAgZnVuY3Rpb24gICAgICAgIDo6PSAgKCBcImV4cG9ydFwiIFwiZGVmYXVsdFwiPyApPyBcImFzeW5jXCI/IFwiZnVuY3Rpb25cIiBuYW1lIGZ1bmN0aW9uQm9keSBcbiAgXG4gICAgICAgICAgICAgICAgICAgIHwgIFwiZXhwb3J0XCIgXCJkZWZhdWx0XCIgXCJhc3luY1wiPyBcImZ1bmN0aW9uXCIgZnVuY3Rpb25Cb2R5XG5cbiAgICAgICAgICAgICAgICAgICAgO1xuXG5cbiAgc3RhdGVtZW50Qm9keSAgIDo6PSAgXCJpbXBvcnRcIiAoIFtzdHJpbmctbGl0ZXJhbF1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggbmFtZSBcImZyb21cIiBbc3RyaW5nLWxpdGVyYWxdIClcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCJ7XCIgbmFtZXMgXCJ9XCIgXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiKlwiIFwiYXNcIiBuYW1lIFwiZnJvbVwiIFtzdHJpbmctbGl0ZXJhbF0gKSApXG5cbiAgICAgICAgICAgICAgICAgICAgfCAgXCJleHBvcnRcIiAoICggXCJ7XCIgbmFtZXMgXCJ9XCIgKCBcImZyb21cIiBbc3RyaW5nLWxpdGVyYWxdICk/IClcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCJjb25zdFwiIFwie1wiIGZpZWxkcyBcIn1cIiBcIj1cIiBleHByZXNzaW9uIClcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCJ7XCIgXCJkZWZhdWx0XCIgXCJ9XCIgXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiKlwiICggXCJhc1wiIG5hbWUgKT8gXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApIClcblxuICAgICAgICAgICAgICAgICAgICB8ICBcImV4cG9ydFwiPyAoICggXCJ2YXJcIiB2YXIgKCBcIixcIiB2YXIgKSogKVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCJsZXRcIiBsZXQgKCBcIixcIiBsZXQgKSogKVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCJjb25zdFwiIGNvbnN0ICggXCIsXCIgY29uc3QgKSogKSApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICB8ICAoIFwiZXhwb3J0XCIgXCJkZWZhdWx0XCIgKT8gZXhwcmVzc2lvblxuXG4gICAgICAgICAgICAgICAgICAgIHwgIFwicmV0dXJuXCIgKCAoIFwiKFwiIGV4cHJlc3Npb24gXCIpXCIgKSB8IGV4cHJlc3Npb24/IClcblxuICAgICAgICAgICAgICAgICAgICB8ICBcInRocm93XCIgZXhwcmVzc2lvblxuXG4gICAgICAgICAgICAgICAgICAgIHwgIFwiZGVsZXRlXCIgZXhwcmVzc2lvblxuXG4gICAgICAgICAgICAgICAgICAgIHwgIFwiYnJlYWtcIlxuXG4gICAgICAgICAgICAgICAgICAgIHwgIFwiY29udGludWVcIlxuXG4gICAgICAgICAgICAgICAgICAgIHwgIFwiZGVidWdnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA7XG5cblxuICBmdW5jdGlvbkJvZHkgICAgOjo9ICBcIihcIiBhcmd1bWVudHM/IFwiKVwiIFwie1wiICggc3RhdGVtZW50IHwgZnVuY3Rpb24gKSogXCJ9XCIgO1xuXG5cbiAgY2xhc3NCb2R5ICAgICAgIDo6PSAgKCBcImV4dGVuZHNcIiBuYW1lICk/IFwie1wiICggY29uc3RydWN0b3IgfCBtZXRob2QgfCBmaWVsZCApKiBcIn1cIiA7XG5cblxuICBjb25zdHJ1Y3RvciAgICAgOjo9ICBcImNvbnN0cnVjdG9yXCIgZnVuY3Rpb25Cb2R5IDtcblxuXG4gIG1ldGhvZCAgICAgICAgICA6Oj0gIFwic3RhdGljXCI/IG5hbWUgZnVuY3Rpb25Cb2R5IDtcblxuXG4gIGZpZWxkICAgICAgICAgICA6Oj0gIFwic3RhdGljXCI/IG5hbWUgXCI9XCIgZXhwcmVzc2lvbi4uLiBcIjtcIiA7XG5cblxuICB2YXIgICAgICAgICAgICAgOjo9ICB2YXJpYWJsZSAoIFwiPVwiIGV4cHJlc3Npb24gKT8gfCBkZXN0cnVjdHVyZSBcIj1cIiBleHByZXNzaW9uIDtcblxuXG4gIGxldCAgICAgICAgICAgICA6Oj0gIHZhcmlhYmxlICggXCI9XCIgZXhwcmVzc2lvbiApPyB8IGRlc3RydWN0dXJlIFwiPVwiIGV4cHJlc3Npb24gO1xuXG5cbiAgY29uc3QgICAgICAgICAgIDo6PSAgKCB2YXJpYWJsZSB8IGRlc3RydWN0dXJlICkgXCI9XCIgZXhwcmVzc2lvbiA7XG5cblxuICB0cnkgICAgICAgICAgICAgOjo9ICBcInRyeVwiIFwie1wiIHN0YXRlbWVudCsgXCJ9XCIgO1xuXG5cbiAgY2F0Y2ggICAgICAgICAgIDo6PSAgXCJjYXRjaFwiIFwiKFwiIFtpZGVudGlmaWVyXSBcIilcIiBcIntcIiBzdGF0ZW1lbnQrIFwifVwiIDtcblxuXG4gIGZpbmFsbHkgICAgICAgICA6Oj0gIFwiZmluYWxseVwiIFwie1wiIHN0YXRlbWVudCsgXCJ9XCIgO1xuXG5cbiAgY2FzZSAgICAgICAgICAgIDo6PSAgXCJjYXNlXCIgZXhwcmVzc2lvbiBcIjpcIiBzdGF0ZW1lbnQgKCBcImJyZWFrXCIgXCI7XCIgKT8gO1xuXG5cbiAgZGVmYXVsdENhc2UgICAgIDo6PSAgXCJkZWZhdWx0XCIgXCI6XCIgc3RhdGVtZW50ICggXCJicmVha1wiIFwiO1wiICk/IDtcblxuXG4gIGluaXRpYWxpc2VyICAgICA6Oj0gIGV4cHJlc3Npb24gfCBcInZhclwiIHZhciAoIFwiLFwiIHZhciApKiB8IFwibGV0XCIgbGV0ICggXCIsXCIgbGV0ICkqIDtcblxuXG4gIGRlc3RydWN0dXJlICAgICA6Oj0gIFwiW1wiIHZhcmlhYmxlICggXCI9XCIgZXhwcmVzc2lvbiApPyAoIFwiLFwiIHZhcmlhYmxlICggXCI9XCIgZXhwcmVzc2lvbiApPyApKiBcIl1cIlxuXG4gICAgICAgICAgICAgICAgICAgIHwgIFwie1wiIHZhcmlhYmxlICggXCI9XCIgZXhwcmVzc2lvbiApPyAoIFwiLFwiIHZhcmlhYmxlICggXCI9XCIgZXhwcmVzc2lvbiApPyApKiBcIn1cIlxuXG4gICAgICAgICAgICAgICAgICAgIDtcblxuXG4gIGV4cHJlc3Npb24gICAgICA6Oj0gIGpzeFxuXG4gICAgICAgICAgICAgICAgICAgIHwgIGpzb25cblxuICAgICAgICAgICAgICAgICAgICB8ICBhcnJvd0Z1bmN0aW9uXG5cbiAgICAgICAgICAgICAgICAgICAgfCAgdGVtcGxhdGVMaXRlcmFsXG5cbiAgICAgICAgICAgICAgICAgICAgfCAgYW5vbnltb3VzRnVuY3Rpb25cblxuICAgICAgICAgICAgICAgICAgICB8ICBcIihcIiBleHByZXNzaW9uIFwiKVwiXG5cbiAgICAgICAgICAgICAgICAgICAgfCAgXCJ7XCIgKCBwcm9wZXJ0eSAoIFwiLFwiIHByb3BlcnR5ICkqICk/IFwifVwiXG5cbiAgICAgICAgICAgICAgICAgICAgfCAgXCJbXCIgKCBleHByZXNzaW9uICggXCIsXCIgZXhwcmVzc2lvbiApKiBcIixcIj8gKT8gXCJdXCJcblxuICAgICAgICAgICAgICAgICAgICB8ICBcInR5cGVvZlwiICggZXhwcmVzc2lvbiB8ICggXCIoXCIgZXhwcmVzc2lvbiBcIilcIikgKVxuXG4gICAgICAgICAgICAgICAgICAgIHwgIFwidm9pZFwiICggZXhwcmVzc2lvbiB8ICggXCIoXCIgZXhwcmVzc2lvbiBcIilcIikgKVxuXG4gICAgICAgICAgICAgICAgICAgIHwgIFwibmV3XCIgbmFtZTxOT19XSElURVNQQUNFPlwiKFwiIGV4cHJlc3Npb25zPyBcIilcIlxuXG4gICAgICAgICAgICAgICAgICAgIHwgIFtvcGVyYXRvcl08Tk9fV0hJVEVTUEFDRT5leHByZXNzaW9uXG5cbiAgICAgICAgICAgICAgICAgICAgfCAgZXhwcmVzc2lvbjxOT19XSElURVNQQUNFPiggKCBcIi5cIjxOT19XSElURVNQQUNFPm5hbWUgKVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCJbXCIgZXhwcmVzc2lvbnMgXCJdXCIgKVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCIoXCIgZXhwcmVzc2lvbnM/IFwiKVwiIClcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0ZW1wbGF0ZUxpdGVyYWxcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbb3BlcmF0b3JdIClcblxuICAgICAgICAgICAgICAgICAgICB8ICBleHByZXNzaW9uICggKCBbb3BlcmF0b3JdIGV4cHJlc3Npb24gKVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiP1wiIGV4cHJlc3Npb24gXCI6XCIgZXhwcmVzc2lvbiApXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCJpbnN0YW5jZW9mXCIgZXhwcmVzc2lvbiApXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCJpblwiIGV4cHJlc3Npb24gKSApXG5cbiAgICAgICAgICAgICAgICAgICAgfCAgW251bWJlcl1cblxuICAgICAgICAgICAgICAgICAgICB8ICB2YXJpYWJsZVxuXG4gICAgICAgICAgICAgICAgICAgIHwgIHByaW1pdGl2ZVxuXG4gICAgICAgICAgICAgICAgICAgIHwgIGltcG9ydE1ldGFcblxuICAgICAgICAgICAgICAgICAgICB8ICBbc3RyaW5nLWxpdGVyYWxdXG5cbiAgICAgICAgICAgICAgICAgICAgfCAgXCJzdXBlclwiIHwgXCJ0aGlzXCIgfCBcInRydWVcIiB8IFwiZmFsc2VcIiB8IFwibnVsbFwiIHwgXCJ1bmRlZmluZWRcIlxuXG4gICAgICAgICAgICAgICAgICAgIDtcblxuXG4gIGpzeCAgICAgICAgICAgICA6Oj0gIGpzeENvbXBsZXRlVGFnIHwganN4U3RhcnRUYWcgKCBqc3ggfCAoIFwie1wiIGV4cHJlc3Npb24/IFwifVwiICkgfCBzdHJpbmcgKSoganN4RW5kVGFnIDtcblxuXG4gIGpzeENvbXBsZXRlVGFnICA6Oj0gIFwiPFwiPE5PX1dISVRFU1BBQ0U+bmFtZSBqc3hBdHRyaWJ1dGUqIFwiLz5cIiA7XG5cblxuICBqc3hTdGFydFRhZyAgICAgOjo9ICBcIjxcIjxOT19XSElURVNQQUNFPm5hbWUganN4QXR0cmlidXRlKiBcIj5cIiA7XG5cblxuICBqc3hFbmRUYWcgICAgICAgOjo9ICBcIjwvXCI8Tk9fV0hJVEVTUEFDRT5uYW1lIFwiPlwiIDtcblxuXG4gIGpzeEF0dHJpYnV0ZSAgICA6Oj0gIG5hbWUgKCA8Tk9fV0hJVEVTUEFDRT5cIj1cIiAoICggPE5PX1dISVRFU1BBQ0U+W3N0cmluZy1saXRlcmFsXSApIHwgKCA8Tk9fV0hJVEVTUEFDRT5cIntcIiBleHByZXNzaW9uIFwifVwiICkgKSApPyA7XG5cblxuICBqc29uICAgICAgICAgICAgOjo9ICBqc29uQXJyYXkgfCBqc29uT2JqZWN0IDtcblxuXG4gIGpzb25BcnJheSAgICAgICA6Oj0gIFwiW1wiICgganNvbkVsZW1lbnQgKCBcIixcIiBqc29uRWxlbWVudCApKiApPyBcIl1cIiA7XG5cblxuICBqc29uT2JqZWN0ICAgICAgOjo9ICBcIntcIiAoIFtzdHJpbmctbGl0ZXJhbF0gXCI6XCIganNvbkVsZW1lbnQgKCBcIixcIiBbc3RyaW5nLWxpdGVyYWxdIFwiOlwiIGpzb25FbGVtZW50ICkqICk/IFwifVwiIDtcblxuXG4gIGpzb25FbGVtZW50ICAgICA6Oj0gIGpzb24gfCBbc3RyaW5nLWxpdGVyYWxdIHwgW251bWJlcl0gfCBcInRydWVcIiB8IFwiZmFsc2VcIiB8IFwibnVsbFwiIDtcblxuXG4gIGFycm93RnVuY3Rpb24gICA6Oj0gIFwiKFwiIGFyZ3VtZW50cz8gXCIpXCIgXCI9PlwiICggZXhwcmVzc2lvbiB8ICggXCJ7XCIgc3RhdGVtZW50KiBcIn1cIiApICkgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXG4gIHRlbXBsYXRlTGl0ZXJhbCA6Oj0gIFwiXFxgXCIgKCAoIFwiXFwke1wiIGV4cHJlc3Npb24/IFwifVwiICkgfCBzdHJpbmcgKSogXCJcXGBcIiA7XG5cblxuICBzdHJpbmcgICAgICAgICAgOjo9ICAoIFtudW1iZXJdIHwgW3NwZWNpYWxdIHwgW29wZXJhdG9yXXwgW2tleXdvcmRdIHwgW2lkZW50aWZpZXJdIHwgW3N0cmluZy1saXRlcmFsXXwgW2Jyb2tlbi1zdHJpbmctbGl0ZXJhbF0gfCBbdW5hc3NpZ25lZF0gKSsgO1xuXG5cbiAgcHJvcGVydHkgICAgICAgIDo6PSAgKCAoICggbmFtZSB8IFtzdHJpbmctbGl0ZXJhbF0gKSBcIjpcIiBleHByZXNzaW9uICkgfCB2YXJpYWJsZSApIDtcblxuXG4gIGltcG9ydE1ldGEgICAgICA6Oj0gIFwiaW1wb3J0XCI8Tk9fV0hJVEVTUEFDRT5cIi5cIjxOT19XSElURVNQQUNFPlwibWV0YVwiIDtcblxuXG4gIGV4cHJlc3Npb25zICAgICA6Oj0gIGV4cHJlc3Npb24gKCBcIixcIiBleHByZXNzaW9uICkqIDtcblxuXG4gIGFyZ3VtZW50cyAgICAgICA6Oj0gIHNwcmVhZEFyZ3VtZW50IHwgKCBhcmd1bWVudCAoIFwiLFwiIGFyZ3VtZW50ICkqICggXCIsXCIgc3ByZWFkQXJndW1lbnQgKT8gKSA7XG5cblxuICBmaWVsZHMgICAgICAgICAgOjo9ICBuYW1lICggXCI6XCIgbmFtZSApPyAoIFwiLFwiIG5hbWUgKCBcIjpcIiBuYW1lICk/ICkqIDtcblxuXG4gIG5hbWVzICAgICAgICAgICA6Oj0gIG5hbWUgKCBcImFzXCIgbmFtZSApPyAoIFwiLFwiIG5hbWUgKCBcImFzXCIgbmFtZSApPyApKiA7XG5cblxuICBzcHJlYWRBcmd1bWVudCAgOjo9ICBcIi4uLlwiPE5PX1dISVRFU1BBQ0U+dmFyaWFibGUgO1xuXG4gIFxuICBhcmd1bWVudCAgICAgICAgOjo9ICB2YXJpYWJsZSAoIFwiPVwiIGV4cHJlc3Npb24gKT8gO1xuXG5cbiAgdmFyaWFibGUgICAgICAgIDo6PSAgW2lkZW50aWZpZXJdIDtcblxuXG4gIGxhYmVsICAgICAgICAgICA6Oj0gIFtpZGVudGlmaWVyXSA7XG5cblxuICBuYW1lICAgICAgICAgICAgOjo9ICBbaWRlbnRpZmllcl0gO1xuXG5cbiAgZXJyb3IuICAgICAgICAgIDo6PSAgLiA7XG4gICAgXG5gO1xuXG5sZXQgcnVsZXMgPSBydWxlc0Zyb21CTkYoYm5mKTtcblxucnVsZXMgPSBlbGltaW5hdGVMZWZ0UmVjdXJzaW9uKHJ1bGVzKTsgIC8vL1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBKYXZhU2NyaXB0UGFyc2VyIGV4dGVuZHMgQ29tbW9uUGFyc2VyIHtcbiAgc3RhdGljIGJuZiA9IGJuZjtcblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7IHJldHVybiBwYXJzZXJGcm9tUnVsZXMoSmF2YVNjcmlwdFBhcnNlciwgcnVsZXMpOyB9XG5cbiAgc3RhdGljIGZyb21SdWxlcyhydWxlcykge1xuICAgIHJ1bGVzID0gZWxpbWluYXRlTGVmdFJlY3Vyc2lvbihydWxlcyk7ICAvLy9cblxuICAgIHJldHVybiBDb21tb25QYXJzZXIuZnJvbVJ1bGVzKEphdmFTY3JpcHRQYXJzZXIsIHJ1bGVzKTsgfVxufVxuIl0sIm5hbWVzIjpbIkphdmFTY3JpcHRQYXJzZXIiLCJydWxlc0Zyb21CTkYiLCJwYXJzZXJVdGlsaXRpZXMiLCJwYXJzZXJGcm9tUnVsZXMiLCJibmYiLCJydWxlcyIsImVsaW1pbmF0ZUxlZnRSZWN1cnNpb24iLCJmcm9tTm90aGluZyIsImZyb21SdWxlcyIsIkNvbW1vblBhcnNlciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFtUnFCQTs7OzRCQWpSUTtxQ0FFVTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXZDLElBQVFDLGVBQWtDQyw2QkFBZSxDQUFqREQsY0FBY0Usa0JBQW9CRCw2QkFBZSxDQUFuQ0M7QUFFdEIsSUFBTUMsTUFBTztBQXVRYixJQUFJQyxRQUFRSixhQUFhRztBQUV6QkMsUUFBUUMsSUFBQUEsNkNBQXNCLEVBQUNELFFBQVMsR0FBRztBQUU1QixJQUFBLEFBQU1MLGlDQUFOO2NBQU1BO2FBQUFBO2dDQUFBQTtRQUFOLE9BQUEsa0JBQU1BOztrQkFBQUE7O1lBR1pPLEtBQUFBO21CQUFQLFNBQU9BO2dCQUFnQixPQUFPSixnQkFIWEgsa0JBRzZDSztZQUFROzs7WUFFakVHLEtBQUFBO21CQUFQLFNBQU9BLFVBQVVILEtBQUs7Z0JBQ3BCQSxRQUFRQyxJQUFBQSw2Q0FBc0IsRUFBQ0QsUUFBUyxHQUFHO2dCQUUzQyxPQUFPSSwwQkFBWSxDQUFDRCxTQUFTLENBUlpSLGtCQVErQks7WUFBUTs7O1dBUnZDTDtFQUF5QlMsMEJBQVk7QUFDeEQsaUJBRG1CVCxrQkFDWkksT0FBTUEifQ==
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXIvamF2YXNjcmlwdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgQ29tbW9uUGFyc2VyIH0gZnJvbSBcIm9jY2FtLXBhcnNlcnNcIjtcbmltcG9ydCB7IHBhcnNlclV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1wYXJzZXJzXCI7XG5pbXBvcnQgeyBlbGltaW5hdGVMZWZ0UmVjdXJzaW9uIH0gZnJvbSBcIm9jY2FtLWdyYW1tYXItdXRpbGl0aWVzXCI7XG5cbmNvbnN0IHsgcnVsZXNGcm9tQk5GLCBwYXJzZXJGcm9tUnVsZXMgfSA9IHBhcnNlclV0aWxpdGllcztcblxuY29uc3QgYm5mID0gYFxuXG4gIGphdmFTY3JpcHQgICAgICAgIDo6PSAgcHJlYW1ibGU/ICggc3RhdGVtZW50IHwgZnVuY3Rpb24gfCBjbGFzcyB8IGVycm9yICkqIDtcblxuXG4gIHByZWFtYmxlICAgICAgICAgIDo6PSAgXCJcXFxcXCJ1c2Ugc3RyaWN0XFxcXFwiO1wiIDtcblxuXG4gIHN0YXRlbWVudCAgICAgICAgIDo6PSAgc3RhdGVtZW50Qm9keS4uLiBcIjtcIlxuICBcbiAgICAgICAgICAgICAgICAgICAgICB8ICBcIntcIiAoIHN0YXRlbWVudCB8IGZ1bmN0aW9uICkqIFwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICB8ICBcImlmXCIgXCIoXCIgZXhwcmVzc2lvbi4uLiBcIilcIiBzdGF0ZW1lbnQgKCBcImVsc2VcIiBzdGF0ZW1lbnQgKT9cbiAgXG4gICAgICAgICAgICAgICAgICAgICAgfCAgXCJmb3JcIiAoICggXCIoXCIgaW5pdGlhbGlzZXIgKCBcIjtcIiBleHByZXNzaW9uICk/ICggXCI7XCIgZXhwcmVzc2lvbiApPyBcIilcIiBzdGF0ZW1lbnQgKVxuICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCIoXCIgdmFyaWFibGUgXCJpblwiIGV4cHJlc3Npb24uLi4gXCIpXCIgc3RhdGVtZW50IClcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiYXdhaXRcIj8gXCIoXCIgdmFyaWFibGUgXCJvZlwiIGV4cHJlc3Npb24uLi4gXCIpXCIgc3RhdGVtZW50ICkgKVxuICBcbiAgICAgICAgICAgICAgICAgICAgICB8ICBcImRvXCIgc3RhdGVtZW50IFwid2hpbGVcIiBcIihcIiBleHByZXNzaW9uLi4uIFwiKVwiXG4gIFxuICAgICAgICAgICAgICAgICAgICAgIHwgIFwid2hpbGVcIiBcIihcIiBleHByZXNzaW9uLi4uIFwiKVwiIHN0YXRlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgfCAgXCJzd2l0Y2hcIiBcIihcIiBleHByZXNzaW9uLi4uIFwiKVwiIFwie1wiIGNhc2UqIGRlZmF1bHRDYXNlPyBcIn1cIlxuICBcbiAgICAgICAgICAgICAgICAgICAgICB8ICB0cnkgKCAoIGNhdGNoKiBmaW5hbGx5ICkgfCBjYXRjaCsgKVxuICBcbiAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuICBjbGFzcyAgICAgICAgICAgICA6Oj0gICggXCJleHBvcnRcIiBcImRlZmF1bHRcIj8gKT8gXCJjbGFzc1wiIG5hbWUgY2xhc3NCb2R5XG4gIFxuICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZXhwb3J0XCIgXCJkZWZhdWx0XCIgXCJjbGFzc1wiIGNsYXNzQm9keVxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgIDtcblxuXG4gIGZ1bmN0aW9uICAgICAgICAgIDo6PSAgKCBcImV4cG9ydFwiIFwiZGVmYXVsdFwiPyApPyBcImFzeW5jXCI/IFwiZnVuY3Rpb25cIiBuYW1lIGZ1bmN0aW9uQm9keSBcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgfCAgXCJleHBvcnRcIiBcImRlZmF1bHRcIiBcImFzeW5jXCI/IFwiZnVuY3Rpb25cIiBmdW5jdGlvbkJvZHlcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgO1xuXG5cbiAgc3RhdGVtZW50Qm9keSAgICAgOjo9ICBcImltcG9ydFwiICggW3N0cmluZy1saXRlcmFsXVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIG5hbWUgXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApXG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKCBcIntcIiBuYW1lcyBcIn1cIiBcImZyb21cIiBbc3RyaW5nLWxpdGVyYWxdIClcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiKlwiIFwiYXNcIiBuYW1lIFwiZnJvbVwiIFtzdHJpbmctbGl0ZXJhbF0gKSApXG4gIFxuICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZXhwb3J0XCIgKCAoIFwie1wiIG5hbWVzIFwifVwiICggXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApPyApXG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKCBcImNvbnN0XCIgXCJ7XCIgZmllbGRzIFwifVwiIFwiPVwiIGV4cHJlc3Npb24gKVxuICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCJ7XCIgXCJkZWZhdWx0XCIgXCJ9XCIgXCJmcm9tXCIgW3N0cmluZy1saXRlcmFsXSApXG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKCBcIipcIiAoIFwiYXNcIiBuYW1lICk/IFwiZnJvbVwiIFtzdHJpbmctbGl0ZXJhbF0gKSApXG4gIFxuICAgICAgICAgICAgICAgICAgICAgIHwgIFwiZXhwb3J0XCI/ICggKCBcInZhclwiIHZhciAoIFwiLFwiIHZhciApKiApXG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICggXCJsZXRcIiBsZXQgKCBcIixcIiBsZXQgKSogKVxuICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiY29uc3RcIiBjb25zdCAoIFwiLFwiIGNvbnN0ICkqICkgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgIHwgICggXCJleHBvcnRcIiBcImRlZmF1bHRcIiApPyBleHByZXNzaW9uXG4gIFxuICAgICAgICAgICAgICAgICAgICAgIHwgIFwicmV0dXJuXCIgKCAoIFwiKFwiIGV4cHJlc3Npb24gXCIpXCIgKSB8IGV4cHJlc3Npb24/IClcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgfCAgXCJ0aHJvd1wiIGV4cHJlc3Npb25cbiAgXG4gICAgICAgICAgICAgICAgICAgICAgfCAgXCJkZWxldGVcIiBleHByZXNzaW9uXG4gIFxuICAgICAgICAgICAgICAgICAgICAgIHwgIFwiYnJlYWtcIlxuICBcbiAgICAgICAgICAgICAgICAgICAgICB8ICBcImNvbnRpbnVlXCJcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgfCAgXCJkZWJ1Z2dlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuICBmdW5jdGlvbkJvZHkgICAgICA6Oj0gIFwiKFwiIGFyZ3VtZW50cz8gXCIpXCIgXCJ7XCIgKCBzdGF0ZW1lbnQgfCBmdW5jdGlvbiApKiBcIn1cIiA7XG5cblxuICBjbGFzc0JvZHkgICAgICAgICA6Oj0gICggXCJleHRlbmRzXCIgbmFtZSApPyBcIntcIiAoIGNsYXNzQ29uc3RydWN0b3IgfCBjbGFzc01ldGhvZCB8IGNsYXNzRmllbGQgKSogXCJ9XCIgO1xuXG5cbiAgY2xhc3NDb25zdHJ1Y3RvciAgOjo9ICBcImNvbnN0cnVjdG9yXCIgZnVuY3Rpb25Cb2R5IDtcblxuXG4gIGNsYXNzTWV0aG9kICAgICAgIDo6PSAgXCJzdGF0aWNcIj8gbmFtZSBmdW5jdGlvbkJvZHkgO1xuXG5cbiAgY2xhc3NGaWVsZCAgICAgICAgOjo9ICBcInN0YXRpY1wiPyBuYW1lIFwiPVwiIGV4cHJlc3Npb24uLi4gXCI7XCIgO1xuXG5cbiAgdmFyICAgICAgICAgICAgICAgOjo9ICB2YXJpYWJsZSAoIFwiPVwiIGV4cHJlc3Npb24gKT8gfCBkZXN0cnVjdHVyZSBcIj1cIiBleHByZXNzaW9uIDtcblxuXG4gIGxldCAgICAgICAgICAgICAgIDo6PSAgdmFyaWFibGUgKCBcIj1cIiBleHByZXNzaW9uICk/IHwgZGVzdHJ1Y3R1cmUgXCI9XCIgZXhwcmVzc2lvbiA7XG5cblxuICBjb25zdCAgICAgICAgICAgICA6Oj0gICggdmFyaWFibGUgfCBkZXN0cnVjdHVyZSApIFwiPVwiIGV4cHJlc3Npb24gO1xuXG5cbiAgdHJ5ICAgICAgICAgICAgICAgOjo9ICBcInRyeVwiIFwie1wiIHN0YXRlbWVudCsgXCJ9XCIgO1xuXG5cbiAgY2F0Y2ggICAgICAgICAgICAgOjo9ICBcImNhdGNoXCIgXCIoXCIgW2lkZW50aWZpZXJdIFwiKVwiIFwie1wiIHN0YXRlbWVudCsgXCJ9XCIgO1xuXG5cbiAgZmluYWxseSAgICAgICAgICAgOjo9ICBcImZpbmFsbHlcIiBcIntcIiBzdGF0ZW1lbnQrIFwifVwiIDtcblxuXG4gIGNhc2UgICAgICAgICAgICAgIDo6PSAgXCJjYXNlXCIgZXhwcmVzc2lvbiBcIjpcIiBzdGF0ZW1lbnQgKCBcImJyZWFrXCIgXCI7XCIgKT8gO1xuXG5cbiAgZGVmYXVsdENhc2UgICAgICAgOjo9ICBcImRlZmF1bHRcIiBcIjpcIiBzdGF0ZW1lbnQgKCBcImJyZWFrXCIgXCI7XCIgKT8gO1xuXG5cbiAgaW5pdGlhbGlzZXIgICAgICAgOjo9ICBleHByZXNzaW9uIHwgXCJ2YXJcIiB2YXIgKCBcIixcIiB2YXIgKSogfCBcImxldFwiIGxldCAoIFwiLFwiIGxldCApKiA7XG5cblxuICBkZXN0cnVjdHVyZSAgICAgICA6Oj0gIFwiW1wiIHZhcmlhYmxlICggXCI9XCIgZXhwcmVzc2lvbiApPyAoIFwiLFwiIHZhcmlhYmxlICggXCI9XCIgZXhwcmVzc2lvbiApPyApKiBcIl1cIlxuXG4gICAgICAgICAgICAgICAgICAgICAgfCAgXCJ7XCIgdmFyaWFibGUgKCBcIj1cIiBleHByZXNzaW9uICk/ICggXCIsXCIgdmFyaWFibGUgKCBcIj1cIiBleHByZXNzaW9uICk/ICkqIFwifVwiXG4gIFxuICAgICAgICAgICAgICAgICAgICAgIDtcblxuXG4gIGV4cHJlc3Npb24gICAgICAgIDo6PSAganN4XG5cbiAgICAgICAgICAgICAgICAgICAgICB8ICBqc29uXG4gIFxuICAgICAgICAgICAgICAgICAgICAgIHwgIGFycm93RnVuY3Rpb25cbiAgXG4gICAgICAgICAgICAgICAgICAgICAgfCAgdGVtcGxhdGVMaXRlcmFsXG4gIFxuICAgICAgICAgICAgICAgICAgICAgIHwgIGFub255bW91c0Z1bmN0aW9uXG4gIFxuICAgICAgICAgICAgICAgICAgICAgIHwgIFwiKFwiIGV4cHJlc3Npb24gXCIpXCJcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgfCAgXCJ7XCIgKCBwcm9wZXJ0eSAoIFwiLFwiIHByb3BlcnR5ICkqICk/IFwifVwiXG4gIFxuICAgICAgICAgICAgICAgICAgICAgIHwgIFwiW1wiICggZXhwcmVzc2lvbiAoIFwiLFwiIGV4cHJlc3Npb24gKSogXCIsXCI/ICk/IFwiXVwiXG4gIFxuICAgICAgICAgICAgICAgICAgICAgIHwgIFwidHlwZW9mXCIgKCBleHByZXNzaW9uIHwgKCBcIihcIiBleHByZXNzaW9uIFwiKVwiKSApXG4gIFxuICAgICAgICAgICAgICAgICAgICAgIHwgIFwidm9pZFwiICggZXhwcmVzc2lvbiB8ICggXCIoXCIgZXhwcmVzc2lvbiBcIilcIikgKVxuICBcbiAgICAgICAgICAgICAgICAgICAgICB8ICBcIm5ld1wiIG5hbWU8Tk9fV0hJVEVTUEFDRT5cIihcIiBleHByZXNzaW9ucz8gXCIpXCJcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgfCAgW29wZXJhdG9yXTxOT19XSElURVNQQUNFPmV4cHJlc3Npb25cbiAgXG4gICAgICAgICAgICAgICAgICAgICAgfCAgZXhwcmVzc2lvbjxOT19XSElURVNQQUNFPiggKCBcIi5cIjxOT19XSElURVNQQUNFPm5hbWUgKVxuICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiW1wiIGV4cHJlc3Npb25zIFwiXVwiIClcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKCBcIihcIiBleHByZXNzaW9ucz8gXCIpXCIgKVxuICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0ZW1wbGF0ZUxpdGVyYWxcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW29wZXJhdG9yXSApXG4gIFxuICAgICAgICAgICAgICAgICAgICAgIHwgIGV4cHJlc3Npb24gKCAoIFtvcGVyYXRvcl0gZXhwcmVzc2lvbiApXG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiP1wiIGV4cHJlc3Npb24gXCI6XCIgZXhwcmVzc2lvbiApXG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFwiaW5zdGFuY2VvZlwiIGV4cHJlc3Npb24gKVxuICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKCBcImluXCIgZXhwcmVzc2lvbiApIClcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgfCAgW251bWJlcl1cbiAgXG4gICAgICAgICAgICAgICAgICAgICAgfCAgdmFyaWFibGVcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgfCAgcHJpbWl0aXZlXG4gIFxuICAgICAgICAgICAgICAgICAgICAgIHwgIGltcG9ydE1ldGFcbiAgXG4gICAgICAgICAgICAgICAgICAgICAgfCAgW3N0cmluZy1saXRlcmFsXVxuICBcbiAgICAgICAgICAgICAgICAgICAgICB8ICBcInN1cGVyXCIgfCBcInRoaXNcIiB8IFwidHJ1ZVwiIHwgXCJmYWxzZVwiIHwgXCJudWxsXCIgfCBcInVuZGVmaW5lZFwiXG4gIFxuICAgICAgICAgICAgICAgICAgICAgIDtcblxuXG4gIGpzeCAgICAgICAgICAgICAgIDo6PSAganN4Q29tcGxldGVUYWcgfCBqc3hTdGFydFRhZyAoIGpzeCB8ICggXCJ7XCIgZXhwcmVzc2lvbj8gXCJ9XCIgKSB8IHN0cmluZyApKiBqc3hFbmRUYWcgO1xuXG5cbiAganN4Q29tcGxldGVUYWcgICAgOjo9ICBcIjxcIjxOT19XSElURVNQQUNFPm5hbWUganN4QXR0cmlidXRlKiBcIi8+XCIgO1xuXG5cbiAganN4U3RhcnRUYWcgICAgICAgOjo9ICBcIjxcIjxOT19XSElURVNQQUNFPm5hbWUganN4QXR0cmlidXRlKiBcIj5cIiA7XG5cblxuICBqc3hFbmRUYWcgICAgICAgICA6Oj0gIFwiPC9cIjxOT19XSElURVNQQUNFPm5hbWUgXCI+XCIgO1xuXG5cbiAganN4QXR0cmlidXRlICAgICAgOjo9ICBuYW1lICggPE5PX1dISVRFU1BBQ0U+XCI9XCIgKCAoIDxOT19XSElURVNQQUNFPltzdHJpbmctbGl0ZXJhbF0gKSB8ICggPE5PX1dISVRFU1BBQ0U+XCJ7XCIgZXhwcmVzc2lvbiBcIn1cIiApICkgKT8gO1xuXG5cbiAganNvbiAgICAgICAgICAgICAgOjo9ICBqc29uQXJyYXkgfCBqc29uT2JqZWN0IDtcblxuXG4gIGpzb25BcnJheSAgICAgICAgIDo6PSAgXCJbXCIgKCBqc29uRWxlbWVudCAoIFwiLFwiIGpzb25FbGVtZW50ICkqICk/IFwiXVwiIDtcblxuXG4gIGpzb25PYmplY3QgICAgICAgIDo6PSAgXCJ7XCIgKCBbc3RyaW5nLWxpdGVyYWxdIFwiOlwiIGpzb25FbGVtZW50ICggXCIsXCIgW3N0cmluZy1saXRlcmFsXSBcIjpcIiBqc29uRWxlbWVudCApKiApPyBcIn1cIiA7XG5cblxuICBqc29uRWxlbWVudCAgICAgICA6Oj0gIGpzb24gfCBbc3RyaW5nLWxpdGVyYWxdIHwgW251bWJlcl0gfCBcInRydWVcIiB8IFwiZmFsc2VcIiB8IFwibnVsbFwiIDtcblxuXG4gIGFycm93RnVuY3Rpb24gICAgIDo6PSAgXCIoXCIgYXJndW1lbnRzPyBcIilcIiBcIj0+XCIgKCBleHByZXNzaW9uIHwgKCBcIntcIiBzdGF0ZW1lbnQqIFwifVwiICkgKSA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cbiAgdGVtcGxhdGVMaXRlcmFsICAgOjo9ICBcIlxcYFwiICggKCBcIlxcJHtcIiBleHByZXNzaW9uPyBcIn1cIiApIHwgc3RyaW5nICkqIFwiXFxgXCIgO1xuXG5cbiAgc3RyaW5nICAgICAgICAgICAgOjo9ICAoIFtudW1iZXJdIHwgW3NwZWNpYWxdIHwgW29wZXJhdG9yXXwgW2tleXdvcmRdIHwgW2lkZW50aWZpZXJdIHwgW3N0cmluZy1saXRlcmFsXXwgW2Jyb2tlbi1zdHJpbmctbGl0ZXJhbF0gfCBbdW5hc3NpZ25lZF0gKSsgO1xuXG5cbiAgcHJvcGVydHkgICAgICAgICAgOjo9ICAoICggKCBuYW1lIHwgW3N0cmluZy1saXRlcmFsXSApIFwiOlwiIGV4cHJlc3Npb24gKSB8IHZhcmlhYmxlICkgO1xuXG5cbiAgaW1wb3J0TWV0YSAgICAgICAgOjo9ICBcImltcG9ydFwiPE5PX1dISVRFU1BBQ0U+XCIuXCI8Tk9fV0hJVEVTUEFDRT5cIm1ldGFcIiA7XG5cblxuICBleHByZXNzaW9ucyAgICAgICA6Oj0gIGV4cHJlc3Npb24gKCBcIixcIiBleHByZXNzaW9uICkqIDtcblxuXG4gIGFyZ3VtZW50cyAgICAgICAgIDo6PSAgc3ByZWFkQXJndW1lbnQgfCAoIGFyZ3VtZW50ICggXCIsXCIgYXJndW1lbnQgKSogKCBcIixcIiBzcHJlYWRBcmd1bWVudCApPyApIDtcblxuXG4gIGZpZWxkcyAgICAgICAgICAgIDo6PSAgbmFtZSAoIFwiOlwiIG5hbWUgKT8gKCBcIixcIiBuYW1lICggXCI6XCIgbmFtZSApPyApKiA7XG5cblxuICBuYW1lcyAgICAgICAgICAgICA6Oj0gIG5hbWUgKCBcImFzXCIgbmFtZSApPyAoIFwiLFwiIG5hbWUgKCBcImFzXCIgbmFtZSApPyApKiA7XG5cblxuICBzcHJlYWRBcmd1bWVudCAgICA6Oj0gIFwiLi4uXCI8Tk9fV0hJVEVTUEFDRT52YXJpYWJsZSA7XG5cbiAgXG4gIGFyZ3VtZW50ICAgICAgICAgIDo6PSAgdmFyaWFibGUgKCBcIj1cIiBleHByZXNzaW9uICk/IDtcblxuXG4gIHZhcmlhYmxlICAgICAgICAgIDo6PSAgW2lkZW50aWZpZXJdIDtcblxuXG4gIGxhYmVsICAgICAgICAgICAgIDo6PSAgW2lkZW50aWZpZXJdIDtcblxuXG4gIG5hbWUgICAgICAgICAgICAgIDo6PSAgW2lkZW50aWZpZXJdIDtcblxuXG4gIGVycm9yLiAgICAgICAgICAgIDo6PSAgLiA7XG4gICAgXG5gO1xuXG5sZXQgcnVsZXMgPSBydWxlc0Zyb21CTkYoYm5mKTtcblxucnVsZXMgPSBlbGltaW5hdGVMZWZ0UmVjdXJzaW9uKHJ1bGVzKTsgIC8vL1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBKYXZhU2NyaXB0UGFyc2VyIGV4dGVuZHMgQ29tbW9uUGFyc2VyIHtcbiAgc3RhdGljIGJuZiA9IGJuZjtcblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7IHJldHVybiBwYXJzZXJGcm9tUnVsZXMoSmF2YVNjcmlwdFBhcnNlciwgcnVsZXMpOyB9XG5cbiAgc3RhdGljIGZyb21SdWxlcyhydWxlcykge1xuICAgIHJ1bGVzID0gZWxpbWluYXRlTGVmdFJlY3Vyc2lvbihydWxlcyk7ICAvLy9cblxuICAgIHJldHVybiBDb21tb25QYXJzZXIuZnJvbVJ1bGVzKEphdmFTY3JpcHRQYXJzZXIsIHJ1bGVzKTsgfVxufVxuIl0sIm5hbWVzIjpbIkphdmFTY3JpcHRQYXJzZXIiLCJydWxlc0Zyb21CTkYiLCJwYXJzZXJVdGlsaXRpZXMiLCJwYXJzZXJGcm9tUnVsZXMiLCJibmYiLCJydWxlcyIsImVsaW1pbmF0ZUxlZnRSZWN1cnNpb24iLCJmcm9tTm90aGluZyIsImZyb21SdWxlcyIsIkNvbW1vblBhcnNlciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFtUnFCQTs7OzRCQWpSUTtxQ0FFVTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXZDLElBQVFDLGVBQWtDQyw2QkFBZSxDQUFqREQsY0FBY0Usa0JBQW9CRCw2QkFBZSxDQUFuQ0M7QUFFdEIsSUFBTUMsTUFBTztBQXVRYixJQUFJQyxRQUFRSixhQUFhRztBQUV6QkMsUUFBUUMsSUFBQUEsNkNBQXNCLEVBQUNELFFBQVMsR0FBRztBQUU1QixJQUFBLEFBQU1MLGlDQUFOO2NBQU1BO2FBQUFBO2dDQUFBQTtRQUFOLE9BQUEsa0JBQU1BOztrQkFBQUE7O1lBR1pPLEtBQUFBO21CQUFQLFNBQU9BO2dCQUFnQixPQUFPSixnQkFIWEgsa0JBRzZDSztZQUFROzs7WUFFakVHLEtBQUFBO21CQUFQLFNBQU9BLFVBQVVILEtBQUs7Z0JBQ3BCQSxRQUFRQyxJQUFBQSw2Q0FBc0IsRUFBQ0QsUUFBUyxHQUFHO2dCQUUzQyxPQUFPSSwwQkFBWSxDQUFDRCxTQUFTLENBUlpSLGtCQVErQks7WUFBUTs7O1dBUnZDTDtFQUF5QlMsMEJBQVk7QUFDeEQsaUJBRG1CVCxrQkFDWkksT0FBTUEifQ==
|
package/package.json
CHANGED
package/src/parser/javascript.js
CHANGED
|
@@ -8,264 +8,264 @@ const { rulesFromBNF, parserFromRules } = parserUtilities;
|
|
|
8
8
|
|
|
9
9
|
const bnf = `
|
|
10
10
|
|
|
11
|
-
javaScript
|
|
11
|
+
javaScript ::= preamble? ( statement | function | class | error )* ;
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
preamble
|
|
14
|
+
preamble ::= "\\"use strict\\";" ;
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
statement
|
|
17
|
+
statement ::= statementBody... ";"
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
| "for" ( ( "(" initialiser ( ";" expression )? ( ";" expression )? ")" statement )
|
|
24
|
-
|
|
25
|
-
| ( "(" variable "in" expression... ")" statement )
|
|
26
|
-
|
|
27
|
-
| ( "await"? "(" variable "of" expression... ")" statement ) )
|
|
28
|
-
|
|
29
|
-
| "do" statement "while" "(" expression... ")"
|
|
30
|
-
|
|
31
|
-
| "while" "(" expression... ")" statement
|
|
32
|
-
|
|
33
|
-
| "switch" "(" expression... ")" "{" case* defaultCase? "}"
|
|
34
|
-
|
|
35
|
-
| try ( ( catch* finally ) | catch+ )
|
|
36
|
-
|
|
37
|
-
;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
class ::= ( "export" "default"? )? "class" name classBody
|
|
19
|
+
| "{" ( statement | function )* "}"
|
|
20
|
+
|
|
21
|
+
| "if" "(" expression... ")" statement ( "else" statement )?
|
|
41
22
|
|
|
42
|
-
|
|
23
|
+
| "for" ( ( "(" initialiser ( ";" expression )? ( ";" expression )? ")" statement )
|
|
43
24
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
function ::= ( "export" "default"? )? "async"? "function" name functionBody
|
|
25
|
+
| ( "(" variable "in" expression... ")" statement )
|
|
48
26
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
| ( "*" "as" name "from" [string-literal] ) )
|
|
61
|
-
|
|
62
|
-
| "export" ( ( "{" names "}" ( "from" [string-literal] )? )
|
|
63
|
-
|
|
64
|
-
| ( "const" "{" fields "}" "=" expression )
|
|
65
|
-
|
|
66
|
-
| ( "{" "default" "}" "from" [string-literal] )
|
|
67
|
-
|
|
68
|
-
| ( "*" ( "as" name )? "from" [string-literal] ) )
|
|
69
|
-
|
|
70
|
-
| "export"? ( ( "var" var ( "," var )* )
|
|
71
|
-
|
|
72
|
-
| ( "let" let ( "," let )* )
|
|
73
|
-
|
|
74
|
-
| ( "const" const ( "," const )* ) )
|
|
75
|
-
|
|
76
|
-
| ( "export" "default" )? expression
|
|
77
|
-
|
|
78
|
-
| "return" ( ( "(" expression ")" ) | expression? )
|
|
79
|
-
|
|
80
|
-
| "throw" expression
|
|
81
|
-
|
|
82
|
-
| "delete" expression
|
|
83
|
-
|
|
84
|
-
| "break"
|
|
85
|
-
|
|
86
|
-
| "continue"
|
|
87
|
-
|
|
88
|
-
| "debugger"
|
|
89
|
-
|
|
90
|
-
;
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
functionBody ::= "(" arguments? ")" "{" ( statement | function )* "}" ;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
classBody ::= ( "extends" name )? "{" ( constructor | method | field )* "}" ;
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
constructor ::= "constructor" functionBody ;
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
method ::= "static"? name functionBody ;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
field ::= "static"? name "=" expression... ";" ;
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
var ::= variable ( "=" expression )? | destructure "=" expression ;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
let ::= variable ( "=" expression )? | destructure "=" expression ;
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
const ::= ( variable | destructure ) "=" expression ;
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
try ::= "try" "{" statement+ "}" ;
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
catch ::= "catch" "(" [identifier] ")" "{" statement+ "}" ;
|
|
27
|
+
| ( "await"? "(" variable "of" expression... ")" statement ) )
|
|
28
|
+
|
|
29
|
+
| "do" statement "while" "(" expression... ")"
|
|
30
|
+
|
|
31
|
+
| "while" "(" expression... ")" statement
|
|
32
|
+
|
|
33
|
+
| "switch" "(" expression... ")" "{" case* defaultCase? "}"
|
|
34
|
+
|
|
35
|
+
| try ( ( catch* finally ) | catch+ )
|
|
36
|
+
|
|
37
|
+
;
|
|
121
38
|
|
|
122
39
|
|
|
123
|
-
|
|
40
|
+
class ::= ( "export" "default"? )? "class" name classBody
|
|
41
|
+
|
|
42
|
+
| "export" "default" "class" classBody
|
|
43
|
+
|
|
44
|
+
;
|
|
124
45
|
|
|
125
46
|
|
|
126
|
-
|
|
47
|
+
function ::= ( "export" "default"? )? "async"? "function" name functionBody
|
|
48
|
+
|
|
49
|
+
| "export" "default" "async"? "function" functionBody
|
|
50
|
+
|
|
51
|
+
;
|
|
127
52
|
|
|
128
53
|
|
|
129
|
-
|
|
54
|
+
statementBody ::= "import" ( [string-literal]
|
|
130
55
|
|
|
56
|
+
| ( name "from" [string-literal] )
|
|
57
|
+
|
|
58
|
+
| ( "{" names "}" "from" [string-literal] )
|
|
59
|
+
|
|
60
|
+
| ( "*" "as" name "from" [string-literal] ) )
|
|
61
|
+
|
|
62
|
+
| "export" ( ( "{" names "}" ( "from" [string-literal] )? )
|
|
63
|
+
|
|
64
|
+
| ( "const" "{" fields "}" "=" expression )
|
|
65
|
+
|
|
66
|
+
| ( "{" "default" "}" "from" [string-literal] )
|
|
67
|
+
|
|
68
|
+
| ( "*" ( "as" name )? "from" [string-literal] ) )
|
|
69
|
+
|
|
70
|
+
| "export"? ( ( "var" var ( "," var )* )
|
|
71
|
+
|
|
72
|
+
| ( "let" let ( "," let )* )
|
|
73
|
+
|
|
74
|
+
| ( "const" const ( "," const )* ) )
|
|
75
|
+
|
|
76
|
+
| ( "export" "default" )? expression
|
|
77
|
+
|
|
78
|
+
| "return" ( ( "(" expression ")" ) | expression? )
|
|
79
|
+
|
|
80
|
+
| "throw" expression
|
|
81
|
+
|
|
82
|
+
| "delete" expression
|
|
83
|
+
|
|
84
|
+
| "break"
|
|
85
|
+
|
|
86
|
+
| "continue"
|
|
87
|
+
|
|
88
|
+
| "debugger"
|
|
89
|
+
|
|
90
|
+
;
|
|
131
91
|
|
|
132
|
-
initialiser ::= expression | "var" var ( "," var )* | "let" let ( "," let )* ;
|
|
133
92
|
|
|
93
|
+
functionBody ::= "(" arguments? ")" "{" ( statement | function )* "}" ;
|
|
134
94
|
|
|
135
|
-
destructure ::= "[" variable ( "=" expression )? ( "," variable ( "=" expression )? )* "]"
|
|
136
95
|
|
|
137
|
-
|
|
96
|
+
classBody ::= ( "extends" name )? "{" ( classConstructor | classMethod | classField )* "}" ;
|
|
138
97
|
|
|
139
|
-
;
|
|
140
98
|
|
|
99
|
+
classConstructor ::= "constructor" functionBody ;
|
|
141
100
|
|
|
142
|
-
expression ::= jsx
|
|
143
101
|
|
|
144
|
-
|
|
102
|
+
classMethod ::= "static"? name functionBody ;
|
|
145
103
|
|
|
146
|
-
| arrowFunction
|
|
147
104
|
|
|
148
|
-
|
|
105
|
+
classField ::= "static"? name "=" expression... ";" ;
|
|
149
106
|
|
|
150
|
-
| anonymousFunction
|
|
151
107
|
|
|
152
|
-
|
|
108
|
+
var ::= variable ( "=" expression )? | destructure "=" expression ;
|
|
153
109
|
|
|
154
|
-
| "{" ( property ( "," property )* )? "}"
|
|
155
110
|
|
|
156
|
-
|
|
111
|
+
let ::= variable ( "=" expression )? | destructure "=" expression ;
|
|
157
112
|
|
|
158
|
-
| "typeof" ( expression | ( "(" expression ")") )
|
|
159
113
|
|
|
160
|
-
|
|
114
|
+
const ::= ( variable | destructure ) "=" expression ;
|
|
161
115
|
|
|
162
|
-
| "new" name<NO_WHITESPACE>"(" expressions? ")"
|
|
163
116
|
|
|
164
|
-
|
|
117
|
+
try ::= "try" "{" statement+ "}" ;
|
|
165
118
|
|
|
166
|
-
| expression<NO_WHITESPACE>( ( "."<NO_WHITESPACE>name )
|
|
167
119
|
|
|
168
|
-
|
|
120
|
+
catch ::= "catch" "(" [identifier] ")" "{" statement+ "}" ;
|
|
169
121
|
|
|
170
|
-
| ( "(" expressions? ")" )
|
|
171
122
|
|
|
172
|
-
|
|
123
|
+
finally ::= "finally" "{" statement+ "}" ;
|
|
173
124
|
|
|
174
|
-
| [operator] )
|
|
175
125
|
|
|
176
|
-
|
|
126
|
+
case ::= "case" expression ":" statement ( "break" ";" )? ;
|
|
177
127
|
|
|
178
|
-
| ( "?" expression ":" expression )
|
|
179
128
|
|
|
180
|
-
|
|
129
|
+
defaultCase ::= "default" ":" statement ( "break" ";" )? ;
|
|
181
130
|
|
|
182
|
-
| ( "in" expression ) )
|
|
183
131
|
|
|
184
|
-
|
|
132
|
+
initialiser ::= expression | "var" var ( "," var )* | "let" let ( "," let )* ;
|
|
185
133
|
|
|
186
|
-
| variable
|
|
187
134
|
|
|
188
|
-
|
|
135
|
+
destructure ::= "[" variable ( "=" expression )? ( "," variable ( "=" expression )? )* "]"
|
|
189
136
|
|
|
190
|
-
|
|
137
|
+
| "{" variable ( "=" expression )? ( "," variable ( "=" expression )? )* "}"
|
|
138
|
+
|
|
139
|
+
;
|
|
191
140
|
|
|
192
|
-
| [string-literal]
|
|
193
141
|
|
|
194
|
-
|
|
142
|
+
expression ::= jsx
|
|
195
143
|
|
|
196
|
-
|
|
144
|
+
| json
|
|
145
|
+
|
|
146
|
+
| arrowFunction
|
|
147
|
+
|
|
148
|
+
| templateLiteral
|
|
149
|
+
|
|
150
|
+
| anonymousFunction
|
|
151
|
+
|
|
152
|
+
| "(" expression ")"
|
|
153
|
+
|
|
154
|
+
| "{" ( property ( "," property )* )? "}"
|
|
155
|
+
|
|
156
|
+
| "[" ( expression ( "," expression )* ","? )? "]"
|
|
157
|
+
|
|
158
|
+
| "typeof" ( expression | ( "(" expression ")") )
|
|
159
|
+
|
|
160
|
+
| "void" ( expression | ( "(" expression ")") )
|
|
161
|
+
|
|
162
|
+
| "new" name<NO_WHITESPACE>"(" expressions? ")"
|
|
163
|
+
|
|
164
|
+
| [operator]<NO_WHITESPACE>expression
|
|
165
|
+
|
|
166
|
+
| expression<NO_WHITESPACE>( ( "."<NO_WHITESPACE>name )
|
|
167
|
+
|
|
168
|
+
| ( "[" expressions "]" )
|
|
169
|
+
|
|
170
|
+
| ( "(" expressions? ")" )
|
|
171
|
+
|
|
172
|
+
| templateLiteral
|
|
173
|
+
|
|
174
|
+
| [operator] )
|
|
175
|
+
|
|
176
|
+
| expression ( ( [operator] expression )
|
|
177
|
+
|
|
178
|
+
| ( "?" expression ":" expression )
|
|
179
|
+
|
|
180
|
+
| ( "instanceof" expression )
|
|
181
|
+
|
|
182
|
+
| ( "in" expression ) )
|
|
183
|
+
|
|
184
|
+
| [number]
|
|
185
|
+
|
|
186
|
+
| variable
|
|
187
|
+
|
|
188
|
+
| primitive
|
|
189
|
+
|
|
190
|
+
| importMeta
|
|
191
|
+
|
|
192
|
+
| [string-literal]
|
|
193
|
+
|
|
194
|
+
| "super" | "this" | "true" | "false" | "null" | "undefined"
|
|
195
|
+
|
|
196
|
+
;
|
|
197
197
|
|
|
198
198
|
|
|
199
|
-
jsx
|
|
199
|
+
jsx ::= jsxCompleteTag | jsxStartTag ( jsx | ( "{" expression? "}" ) | string )* jsxEndTag ;
|
|
200
200
|
|
|
201
201
|
|
|
202
|
-
jsxCompleteTag
|
|
202
|
+
jsxCompleteTag ::= "<"<NO_WHITESPACE>name jsxAttribute* "/>" ;
|
|
203
203
|
|
|
204
204
|
|
|
205
|
-
jsxStartTag
|
|
205
|
+
jsxStartTag ::= "<"<NO_WHITESPACE>name jsxAttribute* ">" ;
|
|
206
206
|
|
|
207
207
|
|
|
208
|
-
jsxEndTag
|
|
208
|
+
jsxEndTag ::= "</"<NO_WHITESPACE>name ">" ;
|
|
209
209
|
|
|
210
210
|
|
|
211
|
-
jsxAttribute
|
|
211
|
+
jsxAttribute ::= name ( <NO_WHITESPACE>"=" ( ( <NO_WHITESPACE>[string-literal] ) | ( <NO_WHITESPACE>"{" expression "}" ) ) )? ;
|
|
212
212
|
|
|
213
213
|
|
|
214
|
-
json
|
|
214
|
+
json ::= jsonArray | jsonObject ;
|
|
215
215
|
|
|
216
216
|
|
|
217
|
-
jsonArray
|
|
217
|
+
jsonArray ::= "[" ( jsonElement ( "," jsonElement )* )? "]" ;
|
|
218
218
|
|
|
219
219
|
|
|
220
|
-
jsonObject
|
|
220
|
+
jsonObject ::= "{" ( [string-literal] ":" jsonElement ( "," [string-literal] ":" jsonElement )* )? "}" ;
|
|
221
221
|
|
|
222
222
|
|
|
223
|
-
jsonElement
|
|
223
|
+
jsonElement ::= json | [string-literal] | [number] | "true" | "false" | "null" ;
|
|
224
224
|
|
|
225
225
|
|
|
226
|
-
arrowFunction
|
|
226
|
+
arrowFunction ::= "(" arguments? ")" "=>" ( expression | ( "{" statement* "}" ) ) ;
|
|
227
227
|
|
|
228
228
|
|
|
229
|
-
templateLiteral
|
|
229
|
+
templateLiteral ::= "\`" ( ( "\${" expression? "}" ) | string )* "\`" ;
|
|
230
230
|
|
|
231
231
|
|
|
232
|
-
string
|
|
232
|
+
string ::= ( [number] | [special] | [operator]| [keyword] | [identifier] | [string-literal]| [broken-string-literal] | [unassigned] )+ ;
|
|
233
233
|
|
|
234
234
|
|
|
235
|
-
property
|
|
235
|
+
property ::= ( ( ( name | [string-literal] ) ":" expression ) | variable ) ;
|
|
236
236
|
|
|
237
237
|
|
|
238
|
-
importMeta
|
|
238
|
+
importMeta ::= "import"<NO_WHITESPACE>"."<NO_WHITESPACE>"meta" ;
|
|
239
239
|
|
|
240
240
|
|
|
241
|
-
expressions
|
|
241
|
+
expressions ::= expression ( "," expression )* ;
|
|
242
242
|
|
|
243
243
|
|
|
244
|
-
arguments
|
|
244
|
+
arguments ::= spreadArgument | ( argument ( "," argument )* ( "," spreadArgument )? ) ;
|
|
245
245
|
|
|
246
246
|
|
|
247
|
-
fields
|
|
247
|
+
fields ::= name ( ":" name )? ( "," name ( ":" name )? )* ;
|
|
248
248
|
|
|
249
249
|
|
|
250
|
-
names
|
|
250
|
+
names ::= name ( "as" name )? ( "," name ( "as" name )? )* ;
|
|
251
251
|
|
|
252
252
|
|
|
253
|
-
spreadArgument
|
|
253
|
+
spreadArgument ::= "..."<NO_WHITESPACE>variable ;
|
|
254
254
|
|
|
255
255
|
|
|
256
|
-
argument
|
|
256
|
+
argument ::= variable ( "=" expression )? ;
|
|
257
257
|
|
|
258
258
|
|
|
259
|
-
variable
|
|
259
|
+
variable ::= [identifier] ;
|
|
260
260
|
|
|
261
261
|
|
|
262
|
-
label
|
|
262
|
+
label ::= [identifier] ;
|
|
263
263
|
|
|
264
264
|
|
|
265
|
-
name
|
|
265
|
+
name ::= [identifier] ;
|
|
266
266
|
|
|
267
267
|
|
|
268
|
-
error.
|
|
268
|
+
error. ::= . ;
|
|
269
269
|
|
|
270
270
|
`;
|
|
271
271
|
|