diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index fa21414..0000000 --- a/package-lock.json +++ /dev/null @@ -1,191 +0,0 @@ -{ - "name": "antlr4-vensim", - "version": "0.6.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "antlr4-vensim", - "version": "0.6.0", - "license": "MIT", - "dependencies": { - "antlr4": "4.9.2" - }, - "devDependencies": { - "bufx": "^1.0.5", - "get-stdin": "^6.0.0" - } - }, - "node_modules/antlr4": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.9.2.tgz", - "integrity": "sha512-UjMSlenUORL+a+6g4RNZxRh5LcFWybRi2g0ASDBpgXBY6nlavg0BRVAVEQF0dz8jH6SyX3lV7uP5y/krJzc+Hw==", - "engines": { - "node": ">=14" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/bufx": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bufx/-/bufx-1.0.5.tgz", - "integrity": "sha512-AzOd+vXDVhRAIR4k0ZopOLef+XjqLU6h3buAqVXTUrZ5IYWmoPqLtIoITeye174Uq5qiDS+83Rx9U9ItXgNE+A==", - "dev": true, - "dependencies": { - "js-yaml": "^3.13.1", - "prettier": "^2.0.4", - "ramda": "^0.27.0", - "strip-bom": "^4.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/prettier": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", - "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/ramda": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", - "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", - "dev": true - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - } - }, - "dependencies": { - "antlr4": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.9.2.tgz", - "integrity": "sha512-UjMSlenUORL+a+6g4RNZxRh5LcFWybRi2g0ASDBpgXBY6nlavg0BRVAVEQF0dz8jH6SyX3lV7uP5y/krJzc+Hw==" - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "bufx": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bufx/-/bufx-1.0.5.tgz", - "integrity": "sha512-AzOd+vXDVhRAIR4k0ZopOLef+XjqLU6h3buAqVXTUrZ5IYWmoPqLtIoITeye174Uq5qiDS+83Rx9U9ItXgNE+A==", - "dev": true, - "requires": { - "js-yaml": "^3.13.1", - "prettier": "^2.0.4", - "ramda": "^0.27.0", - "strip-bom": "^4.0.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "prettier": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", - "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", - "dev": true - }, - "ramda": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", - "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - } - } -} diff --git a/package.json b/package.json index 47b9ce1..8ceca12 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,10 @@ { "name": "antlr4-vensim", - "version": "0.6.0", + "version": "0.6.1", "type": "module", "description": "Vensim grammar built in ANTLR 4", "scripts": { - "build": "rm -rf parser && java -jar /usr/local/lib/antlr-4.9.2-complete.jar -Dlanguage=JavaScript -visitor -no-listener -Xexact-output-dir -o parser grammar/Model.g4" + "build": "rm -rf parser && java -jar /usr/local/lib/antlr-4.12.0-complete.jar -Dlanguage=JavaScript -visitor -no-listener -Xexact-output-dir -o parser grammar/Model.g4" }, "main": "index.js", "author": "Climate Interactive", @@ -17,7 +17,7 @@ "url": "https://github.com/climateinteractive/antlr4-vensim/issues" }, "dependencies": { - "antlr4": "4.9.2" + "antlr4": "4.12.0" }, "devDependencies": { "bufx": "^1.0.5", diff --git a/parser/ModelLexer.js b/parser/ModelLexer.js index a92cf55..1cf679b 100644 --- a/parser/ModelLexer.js +++ b/parser/ModelLexer.js @@ -1,231 +1,120 @@ -// Generated from grammar/Model.g4 by ANTLR 4.9.2 +// Generated from grammar/Model.g4 by ANTLR 4.12.0 // jshint ignore: start import antlr4 from 'antlr4'; - -const serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786", - "\u5964\u0002(\u015d\b\u0001\u0004\u0002\t\u0002\u0004\u0003\t\u0003", - "\u0004\u0004\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007", - "\t\u0007\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004", - "\f\t\f\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010", - "\t\u0010\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013", - "\u0004\u0014\t\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017", - "\t\u0017\u0004\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a", - "\u0004\u001b\t\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e", - "\t\u001e\u0004\u001f\t\u001f\u0004 \t \u0004!\t!\u0004\"\t\"\u0004#", - "\t#\u0004$\t$\u0004%\t%\u0004&\t&\u0004\'\t\'\u0004(\t(\u0004)\t)\u0004", - "*\t*\u0004+\t+\u0004,\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u0004", - "1\t1\u00042\t2\u00043\t3\u0003\u0002\u0003\u0002\u0003\u0003\u0003\u0003", - "\u0003\u0003\u0003\u0003\u0003\u0004\u0003\u0004\u0003\u0005\u0003\u0005", - "\u0003\u0006\u0003\u0006\u0003\u0007\u0003\u0007\u0003\u0007\u0003\b", - "\u0003\b\u0003\t\u0003\t\u0003\t\u0003\n\u0003\n\u0003\u000b\u0003\u000b", - "\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003", - "\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\r\u0003\r\u0003\r\u0003", - "\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\u000e\u0003\u000e\u0003", - "\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000f\u0003\u000f\u0003", - "\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003", - "\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0012\u0003", - "\u0012\u0003\u0013\u0003\u0013\u0006\u0013\u00ae\n\u0013\r\u0013\u000e", - "\u0013\u00af\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0014", - "\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0007\u0014", - "\u00bc\n\u0014\f\u0014\u000e\u0014\u00bf\u000b\u0014\u0003\u0014\u0003", - "\u0014\u0003\u0014\u0003\u0014\u0003\u0015\u0003\u0015\u0007\u0015\u00c7", - "\n\u0015\f\u0015\u000e\u0015\u00ca\u000b\u0015\u0003\u0015\u0003\u0015", - "\u0003\u0016\u0003\u0016\u0003\u0017\u0003\u0017\u0003\u0018\u0003\u0018", - "\u0003\u0019\u0003\u0019\u0003\u001a\u0003\u001a\u0003\u001b\u0003\u001b", - "\u0003\u001b\u0003\u001c\u0003\u001c\u0003\u001d\u0003\u001d\u0003\u001d", - "\u0003\u001e\u0003\u001e\u0003\u001f\u0003\u001f\u0003\u001f\u0003 ", - "\u0003 \u0003 \u0003!\u0003!\u0003\"\u0003\"\u0007\"\u00ec\n\"\f\"\u000e", - "\"\u00ef\u000b\"\u0003\"\u0003\"\u0003\"\u0007\"\u00f4\n\"\f\"\u000e", - "\"\u00f7\u000b\"\u0003\"\u0003\"\u0003\"\u0005\"\u00fc\n\"\u0003\"\u0007", - "\"\u00ff\n\"\f\"\u000e\"\u0102\u000b\"\u0003\"\u0005\"\u0105\n\"\u0003", - "#\u0003#\u0003$\u0003$\u0003%\u0003%\u0003&\u0003&\u0003&\u0005&\u0110", - "\n&\u0003\'\u0006\'\u0113\n\'\r\'\u000e\'\u0114\u0003(\u0003(\u0003", - ")\u0003)\u0005)\u011b\n)\u0003)\u0003)\u0003)\u0005)\u0120\n)\u0003", - "*\u0005*\u0123\n*\u0003*\u0003*\u0003*\u0003*\u0003*\u0005*\u012a\n", - "*\u0003+\u0003+\u0005+\u012e\n+\u0003+\u0003+\u0003+\u0005+\u0133\n", - "+\u0003+\u0005+\u0136\n+\u0003,\u0003,\u0003-\u0006-\u013b\n-\r-\u000e", - "-\u013c\u0003.\u0003.\u0005.\u0141\n.\u0003.\u0003.\u0003/\u0003/\u0005", - "/\u0147\n/\u0003/\u0003/\u00030\u00060\u014c\n0\r0\u000e0\u014d\u0003", - "1\u00031\u00032\u00032\u00032\u00032\u00032\u00033\u00063\u0158\n3\r", - "3\u000e3\u0159\u00033\u00033\u0003\u00bd\u00024\u0003\u0003\u0005\u0004", - "\u0007\u0005\t\u0006\u000b\u0007\r\b\u000f\t\u0011\n\u0013\u000b\u0015", - "\f\u0017\r\u0019\u000e\u001b\u000f\u001d\u0010\u001f\u0011!\u0012#\u0013", - "%\u0014\'\u0015)\u0016+\u0017-\u0018/\u00191\u001a3\u001b5\u001c7\u001d", - "9\u001e;\u001f= ?!A\"C#E\u0002G\u0002I\u0002K$M\u0002O\u0002Q\u0002", - "S\u0002U\u0002W\u0002Y\u0002[%]&_\u0002a\u0002c\'e(\u0003\u0002\u000b", - "\u0006\u0002//2;C\\c|\u0003\u0002~~\u0007\u0002&)2;C\\aac|\u0005\u0002", - "C\\aac|\u0003\u00022;\u0003\u00023;\u0004\u0002--//\u0007\u0002\f\f", - "\u000f\u000f$$))^^\u0005\u0002\u000b\f\u000f\u000f\"\"\u0002\u0169\u0002", - "\u0003\u0003\u0002\u0002\u0002\u0002\u0005\u0003\u0002\u0002\u0002\u0002", - "\u0007\u0003\u0002\u0002\u0002\u0002\t\u0003\u0002\u0002\u0002\u0002", - "\u000b\u0003\u0002\u0002\u0002\u0002\r\u0003\u0002\u0002\u0002\u0002", - "\u000f\u0003\u0002\u0002\u0002\u0002\u0011\u0003\u0002\u0002\u0002\u0002", - "\u0013\u0003\u0002\u0002\u0002\u0002\u0015\u0003\u0002\u0002\u0002\u0002", - "\u0017\u0003\u0002\u0002\u0002\u0002\u0019\u0003\u0002\u0002\u0002\u0002", - "\u001b\u0003\u0002\u0002\u0002\u0002\u001d\u0003\u0002\u0002\u0002\u0002", - "\u001f\u0003\u0002\u0002\u0002\u0002!\u0003\u0002\u0002\u0002\u0002", - "#\u0003\u0002\u0002\u0002\u0002%\u0003\u0002\u0002\u0002\u0002\'\u0003", - "\u0002\u0002\u0002\u0002)\u0003\u0002\u0002\u0002\u0002+\u0003\u0002", - "\u0002\u0002\u0002-\u0003\u0002\u0002\u0002\u0002/\u0003\u0002\u0002", - "\u0002\u00021\u0003\u0002\u0002\u0002\u00023\u0003\u0002\u0002\u0002", - "\u00025\u0003\u0002\u0002\u0002\u00027\u0003\u0002\u0002\u0002\u0002", - "9\u0003\u0002\u0002\u0002\u0002;\u0003\u0002\u0002\u0002\u0002=\u0003", - "\u0002\u0002\u0002\u0002?\u0003\u0002\u0002\u0002\u0002A\u0003\u0002", - "\u0002\u0002\u0002C\u0003\u0002\u0002\u0002\u0002K\u0003\u0002\u0002", - "\u0002\u0002[\u0003\u0002\u0002\u0002\u0002]\u0003\u0002\u0002\u0002", - "\u0002c\u0003\u0002\u0002\u0002\u0002e\u0003\u0002\u0002\u0002\u0003", - "g\u0003\u0002\u0002\u0002\u0005i\u0003\u0002\u0002\u0002\u0007m\u0003", - "\u0002\u0002\u0002\to\u0003\u0002\u0002\u0002\u000bq\u0003\u0002\u0002", - "\u0002\rs\u0003\u0002\u0002\u0002\u000fv\u0003\u0002\u0002\u0002\u0011", - "x\u0003\u0002\u0002\u0002\u0013{\u0003\u0002\u0002\u0002\u0015}\u0003", - "\u0002\u0002\u0002\u0017\u007f\u0003\u0002\u0002\u0002\u0019\u008d\u0003", - "\u0002\u0002\u0002\u001b\u0096\u0003\u0002\u0002\u0002\u001d\u009c\u0003", - "\u0002\u0002\u0002\u001f\u009e\u0003\u0002\u0002\u0002!\u00a4\u0003", - "\u0002\u0002\u0002#\u00a9\u0003\u0002\u0002\u0002%\u00ab\u0003\u0002", - "\u0002\u0002\'\u00b5\u0003\u0002\u0002\u0002)\u00c4\u0003\u0002\u0002", - "\u0002+\u00cd\u0003\u0002\u0002\u0002-\u00cf\u0003\u0002\u0002\u0002", - "/\u00d1\u0003\u0002\u0002\u00021\u00d3\u0003\u0002\u0002\u00023\u00d5", - "\u0003\u0002\u0002\u00025\u00d7\u0003\u0002\u0002\u00027\u00da\u0003", - "\u0002\u0002\u00029\u00dc\u0003\u0002\u0002\u0002;\u00df\u0003\u0002", - "\u0002\u0002=\u00e1\u0003\u0002\u0002\u0002?\u00e4\u0003\u0002\u0002", - "\u0002A\u00e7\u0003\u0002\u0002\u0002C\u00fb\u0003\u0002\u0002\u0002", - "E\u0106\u0003\u0002\u0002\u0002G\u0108\u0003\u0002\u0002\u0002I\u010a", - "\u0003\u0002\u0002\u0002K\u010f\u0003\u0002\u0002\u0002M\u0112\u0003", - "\u0002\u0002\u0002O\u0116\u0003\u0002\u0002\u0002Q\u011f\u0003\u0002", - "\u0002\u0002S\u0129\u0003\u0002\u0002\u0002U\u0135\u0003\u0002\u0002", - "\u0002W\u0137\u0003\u0002\u0002\u0002Y\u013a\u0003\u0002\u0002\u0002", - "[\u013e\u0003\u0002\u0002\u0002]\u0144\u0003\u0002\u0002\u0002_\u014b", - "\u0003\u0002\u0002\u0002a\u014f\u0003\u0002\u0002\u0002c\u0151\u0003", - "\u0002\u0002\u0002e\u0157\u0003\u0002\u0002\u0002gh\u0007<\u0002\u0002", - "h\u0004\u0003\u0002\u0002\u0002ij\u0007>\u0002\u0002jk\u0007/\u0002", - "\u0002kl\u0007@\u0002\u0002l\u0006\u0003\u0002\u0002\u0002mn\u0007~", - "\u0002\u0002n\b\u0003\u0002\u0002\u0002op\u0007*\u0002\u0002p\n\u0003", - "\u0002\u0002\u0002qr\u0007+\u0002\u0002r\f\u0003\u0002\u0002\u0002s", - "t\u0007/\u0002\u0002tu\u0007@\u0002\u0002u\u000e\u0003\u0002\u0002\u0002", - "vw\u0007.\u0002\u0002w\u0010\u0003\u0002\u0002\u0002xy\u0007<\u0002", - "\u0002yz\u0007?\u0002\u0002z\u0012\u0003\u0002\u0002\u0002{|\u0007]", - "\u0002\u0002|\u0014\u0003\u0002\u0002\u0002}~\u0007_\u0002\u0002~\u0016", - "\u0003\u0002\u0002\u0002\u007f\u0080\u0007<\u0002\u0002\u0080\u0081", - "\u0007K\u0002\u0002\u0081\u0082\u0007P\u0002\u0002\u0082\u0083\u0007", - "V\u0002\u0002\u0083\u0084\u0007G\u0002\u0002\u0084\u0085\u0007T\u0002", - "\u0002\u0085\u0086\u0007R\u0002\u0002\u0086\u0087\u0007Q\u0002\u0002", - "\u0087\u0088\u0007N\u0002\u0002\u0088\u0089\u0007C\u0002\u0002\u0089", - "\u008a\u0007V\u0002\u0002\u008a\u008b\u0007G\u0002\u0002\u008b\u008c", - "\u0007<\u0002\u0002\u008c\u0018\u0003\u0002\u0002\u0002\u008d\u008e", - "\u0007<\u0002\u0002\u008e\u008f\u0007G\u0002\u0002\u008f\u0090\u0007", - "Z\u0002\u0002\u0090\u0091\u0007E\u0002\u0002\u0091\u0092\u0007G\u0002", - "\u0002\u0092\u0093\u0007R\u0002\u0002\u0093\u0094\u0007V\u0002\u0002", - "\u0094\u0095\u0007<\u0002\u0002\u0095\u001a\u0003\u0002\u0002\u0002", - "\u0096\u0097\u0007<\u0002\u0002\u0097\u0098\u0007P\u0002\u0002\u0098", - "\u0099\u0007Q\u0002\u0002\u0099\u009a\u0007V\u0002\u0002\u009a\u009b", - "\u0007<\u0002\u0002\u009b\u001c\u0003\u0002\u0002\u0002\u009c\u009d", - "\u0007`\u0002\u0002\u009d\u001e\u0003\u0002\u0002\u0002\u009e\u009f", - "\u0007<\u0002\u0002\u009f\u00a0\u0007C\u0002\u0002\u00a0\u00a1\u0007", - "P\u0002\u0002\u00a1\u00a2\u0007F\u0002\u0002\u00a2\u00a3\u0007<\u0002", - "\u0002\u00a3 \u0003\u0002\u0002\u0002\u00a4\u00a5\u0007<\u0002\u0002", - "\u00a5\u00a6\u0007Q\u0002\u0002\u00a6\u00a7\u0007T\u0002\u0002\u00a7", - "\u00a8\u0007<\u0002\u0002\u00a8\"\u0003\u0002\u0002\u0002\u00a9\u00aa", - "\u0007=\u0002\u0002\u00aa$\u0003\u0002\u0002\u0002\u00ab\u00ad\u0007", - "}\u0002\u0002\u00ac\u00ae\t\u0002\u0002\u0002\u00ad\u00ac\u0003\u0002", - "\u0002\u0002\u00ae\u00af\u0003\u0002\u0002\u0002\u00af\u00ad\u0003\u0002", - "\u0002\u0002\u00af\u00b0\u0003\u0002\u0002\u0002\u00b0\u00b1\u0003\u0002", - "\u0002\u0002\u00b1\u00b2\u0007\u007f\u0002\u0002\u00b2\u00b3\u0003\u0002", - "\u0002\u0002\u00b3\u00b4\b\u0013\u0002\u0002\u00b4&\u0003\u0002\u0002", - "\u0002\u00b5\u00b6\u0007,\u0002\u0002\u00b6\u00b7\u0007,\u0002\u0002", - "\u00b7\u00b8\u0007,\u0002\u0002\u00b8\u00b9\u0007,\u0002\u0002\u00b9", - "\u00bd\u0003\u0002\u0002\u0002\u00ba\u00bc\u000b\u0002\u0002\u0002\u00bb", - "\u00ba\u0003\u0002\u0002\u0002\u00bc\u00bf\u0003\u0002\u0002\u0002\u00bd", - "\u00be\u0003\u0002\u0002\u0002\u00bd\u00bb\u0003\u0002\u0002\u0002\u00be", - "\u00c0\u0003\u0002\u0002\u0002\u00bf\u00bd\u0003\u0002\u0002\u0002\u00c0", - "\u00c1\u0007~\u0002\u0002\u00c1\u00c2\u0003\u0002\u0002\u0002\u00c2", - "\u00c3\b\u0014\u0002\u0002\u00c3(\u0003\u0002\u0002\u0002\u00c4\u00c8", - "\u0007\u0080\u0002\u0002\u00c5\u00c7\n\u0003\u0002\u0002\u00c6\u00c5", - "\u0003\u0002\u0002\u0002\u00c7\u00ca\u0003\u0002\u0002\u0002\u00c8\u00c6", - "\u0003\u0002\u0002\u0002\u00c8\u00c9\u0003\u0002\u0002\u0002\u00c9\u00cb", - "\u0003\u0002\u0002\u0002\u00ca\u00c8\u0003\u0002\u0002\u0002\u00cb\u00cc", - "\b\u0015\u0002\u0002\u00cc*\u0003\u0002\u0002\u0002\u00cd\u00ce\u0007", - ",\u0002\u0002\u00ce,\u0003\u0002\u0002\u0002\u00cf\u00d0\u00071\u0002", - "\u0002\u00d0.\u0003\u0002\u0002\u0002\u00d1\u00d2\u0007-\u0002\u0002", - "\u00d20\u0003\u0002\u0002\u0002\u00d3\u00d4\u0007/\u0002\u0002\u00d4", - "2\u0003\u0002\u0002\u0002\u00d5\u00d6\u0007>\u0002\u0002\u00d64\u0003", - "\u0002\u0002\u0002\u00d7\u00d8\u0007>\u0002\u0002\u00d8\u00d9\u0007", - "?\u0002\u0002\u00d96\u0003\u0002\u0002\u0002\u00da\u00db\u0007@\u0002", - "\u0002\u00db8\u0003\u0002\u0002\u0002\u00dc\u00dd\u0007@\u0002\u0002", - "\u00dd\u00de\u0007?\u0002\u0002\u00de:\u0003\u0002\u0002\u0002\u00df", - "\u00e0\u0007?\u0002\u0002\u00e0<\u0003\u0002\u0002\u0002\u00e1\u00e2", - "\u0007?\u0002\u0002\u00e2\u00e3\u0007?\u0002\u0002\u00e3>\u0003\u0002", - "\u0002\u0002\u00e4\u00e5\u0007>\u0002\u0002\u00e5\u00e6\u0007@\u0002", - "\u0002\u00e6@\u0003\u0002\u0002\u0002\u00e7\u00e8\u0007#\u0002\u0002", - "\u00e8B\u0003\u0002\u0002\u0002\u00e9\u00ed\u0005G$\u0002\u00ea\u00ec", - "\u0005E#\u0002\u00eb\u00ea\u0003\u0002\u0002\u0002\u00ec\u00ef\u0003", - "\u0002\u0002\u0002\u00ed\u00eb\u0003\u0002\u0002\u0002\u00ed\u00ee\u0003", - "\u0002\u0002\u0002\u00ee\u00fc\u0003\u0002\u0002\u0002\u00ef\u00ed\u0003", - "\u0002\u0002\u0002\u00f0\u00f5\u0005G$\u0002\u00f1\u00f4\u0005E#\u0002", - "\u00f2\u00f4\u0007\"\u0002\u0002\u00f3\u00f1\u0003\u0002\u0002\u0002", - "\u00f3\u00f2\u0003\u0002\u0002\u0002\u00f4\u00f7\u0003\u0002\u0002\u0002", - "\u00f5\u00f3\u0003\u0002\u0002\u0002\u00f5\u00f6\u0003\u0002\u0002\u0002", - "\u00f6\u00f8\u0003\u0002\u0002\u0002\u00f7\u00f5\u0003\u0002\u0002\u0002", - "\u00f8\u00f9\u0005E#\u0002\u00f9\u00fc\u0003\u0002\u0002\u0002\u00fa", - "\u00fc\u0005[.\u0002\u00fb\u00e9\u0003\u0002\u0002\u0002\u00fb\u00f0", - "\u0003\u0002\u0002\u0002\u00fb\u00fa\u0003\u0002\u0002\u0002\u00fc\u0104", - "\u0003\u0002\u0002\u0002\u00fd\u00ff\u0005e3\u0002\u00fe\u00fd\u0003", - "\u0002\u0002\u0002\u00ff\u0102\u0003\u0002\u0002\u0002\u0100\u00fe\u0003", - "\u0002\u0002\u0002\u0100\u0101\u0003\u0002\u0002\u0002\u0101\u0103\u0003", - "\u0002\u0002\u0002\u0102\u0100\u0003\u0002\u0002\u0002\u0103\u0105\u0005", - "A!\u0002\u0104\u0100\u0003\u0002\u0002\u0002\u0104\u0105\u0003\u0002", - "\u0002\u0002\u0105D\u0003\u0002\u0002\u0002\u0106\u0107\t\u0004\u0002", - "\u0002\u0107F\u0003\u0002\u0002\u0002\u0108\u0109\t\u0005\u0002\u0002", - "\u0109H\u0003\u0002\u0002\u0002\u010a\u010b\t\u0006\u0002\u0002\u010b", - "J\u0003\u0002\u0002\u0002\u010c\u0110\u0005M\'\u0002\u010d\u0110\u0005", - "Q)\u0002\u010e\u0110\u0005]/\u0002\u010f\u010c\u0003\u0002\u0002\u0002", - "\u010f\u010d\u0003\u0002\u0002\u0002\u010f\u010e\u0003\u0002\u0002\u0002", - "\u0110L\u0003\u0002\u0002\u0002\u0111\u0113\u0005I%\u0002\u0112\u0111", - "\u0003\u0002\u0002\u0002\u0113\u0114\u0003\u0002\u0002\u0002\u0114\u0112", - "\u0003\u0002\u0002\u0002\u0114\u0115\u0003\u0002\u0002\u0002\u0115N", - "\u0003\u0002\u0002\u0002\u0116\u0117\t\u0007\u0002\u0002\u0117P\u0003", - "\u0002\u0002\u0002\u0118\u011a\u0005S*\u0002\u0119\u011b\u0005U+\u0002", - "\u011a\u0119\u0003\u0002\u0002\u0002\u011a\u011b\u0003\u0002\u0002\u0002", - "\u011b\u0120\u0003\u0002\u0002\u0002\u011c\u011d\u0005Y-\u0002\u011d", - "\u011e\u0005U+\u0002\u011e\u0120\u0003\u0002\u0002\u0002\u011f\u0118", - "\u0003\u0002\u0002\u0002\u011f\u011c\u0003\u0002\u0002\u0002\u0120R", - "\u0003\u0002\u0002\u0002\u0121\u0123\u0005Y-\u0002\u0122\u0121\u0003", - "\u0002\u0002\u0002\u0122\u0123\u0003\u0002\u0002\u0002\u0123\u0124\u0003", - "\u0002\u0002\u0002\u0124\u0125\u00070\u0002\u0002\u0125\u012a\u0005", - "Y-\u0002\u0126\u0127\u0005Y-\u0002\u0127\u0128\u00070\u0002\u0002\u0128", - "\u012a\u0003\u0002\u0002\u0002\u0129\u0122\u0003\u0002\u0002\u0002\u0129", - "\u0126\u0003\u0002\u0002\u0002\u012aT\u0003\u0002\u0002\u0002\u012b", - "\u012d\u0007g\u0002\u0002\u012c\u012e\u0005W,\u0002\u012d\u012c\u0003", - "\u0002\u0002\u0002\u012d\u012e\u0003\u0002\u0002\u0002\u012e\u012f\u0003", - "\u0002\u0002\u0002\u012f\u0136\u0005Y-\u0002\u0130\u0132\u0007G\u0002", - "\u0002\u0131\u0133\u0005W,\u0002\u0132\u0131\u0003\u0002\u0002\u0002", - "\u0132\u0133\u0003\u0002\u0002\u0002\u0133\u0134\u0003\u0002\u0002\u0002", - "\u0134\u0136\u0005Y-\u0002\u0135\u012b\u0003\u0002\u0002\u0002\u0135", - "\u0130\u0003\u0002\u0002\u0002\u0136V\u0003\u0002\u0002\u0002\u0137", - "\u0138\t\b\u0002\u0002\u0138X\u0003\u0002\u0002\u0002\u0139\u013b\u0005", - "I%\u0002\u013a\u0139\u0003\u0002\u0002\u0002\u013b\u013c\u0003\u0002", - "\u0002\u0002\u013c\u013a\u0003\u0002\u0002\u0002\u013c\u013d\u0003\u0002", - "\u0002\u0002\u013dZ\u0003\u0002\u0002\u0002\u013e\u0140\u0007$\u0002", - "\u0002\u013f\u0141\u0005_0\u0002\u0140\u013f\u0003\u0002\u0002\u0002", - "\u0140\u0141\u0003\u0002\u0002\u0002\u0141\u0142\u0003\u0002\u0002\u0002", - "\u0142\u0143\u0007$\u0002\u0002\u0143\\\u0003\u0002\u0002\u0002\u0144", - "\u0146\u0007)\u0002\u0002\u0145\u0147\u0005_0\u0002\u0146\u0145\u0003", - "\u0002\u0002\u0002\u0146\u0147\u0003\u0002\u0002\u0002\u0147\u0148\u0003", - "\u0002\u0002\u0002\u0148\u0149\u0007)\u0002\u0002\u0149^\u0003\u0002", - "\u0002\u0002\u014a\u014c\u0005a1\u0002\u014b\u014a\u0003\u0002\u0002", - "\u0002\u014c\u014d\u0003\u0002\u0002\u0002\u014d\u014b\u0003\u0002\u0002", - "\u0002\u014d\u014e\u0003\u0002\u0002\u0002\u014e`\u0003\u0002\u0002", - "\u0002\u014f\u0150\n\t\u0002\u0002\u0150b\u0003\u0002\u0002\u0002\u0151", - "\u0152\u0007<\u0002\u0002\u0152\u0153\u0007P\u0002\u0002\u0153\u0154", - "\u0007C\u0002\u0002\u0154\u0155\u0007<\u0002\u0002\u0155d\u0003\u0002", - "\u0002\u0002\u0156\u0158\t\n\u0002\u0002\u0157\u0156\u0003\u0002\u0002", - "\u0002\u0158\u0159\u0003\u0002\u0002\u0002\u0159\u0157\u0003\u0002\u0002", - "\u0002\u0159\u015a\u0003\u0002\u0002\u0002\u015a\u015b\u0003\u0002\u0002", - "\u0002\u015b\u015c\b3\u0002\u0002\u015cf\u0003\u0002\u0002\u0002\u001a", - "\u0002\u00af\u00bd\u00c8\u00ed\u00f3\u00f5\u00fb\u0100\u0104\u010f\u0114", - "\u011a\u011f\u0122\u0129\u012d\u0132\u0135\u013c\u0140\u0146\u014d\u0159", - "\u0003\b\u0002\u0002"].join(""); +const serializedATN = [4,0,38,347,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2, +4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7, +12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19, +2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2, +27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34, +7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7, +41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48, +2,49,7,49,1,0,1,0,1,1,1,1,1,1,1,1,1,2,1,2,1,3,1,3,1,4,1,4,1,5,1,5,1,5,1, +6,1,6,1,7,1,7,1,7,1,8,1,8,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10, +1,10,1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1, +11,1,12,1,12,1,12,1,12,1,12,1,12,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,14, +1,15,1,15,1,15,1,15,1,15,1,16,1,16,1,17,1,17,4,17,172,8,17,11,17,12,17,173, +1,17,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,18,5,18,186,8,18,10,18,12, +18,189,9,18,1,18,1,18,1,18,1,18,1,19,1,19,5,19,197,8,19,10,19,12,19,200, +9,19,1,19,1,19,1,20,1,20,1,21,1,21,1,22,1,22,1,23,1,23,1,24,1,24,1,25,1, +25,1,25,1,26,1,26,1,27,1,27,1,27,1,28,1,28,1,29,1,29,1,29,1,30,1,30,1,30, +1,31,1,31,1,32,1,32,5,32,234,8,32,10,32,12,32,237,9,32,1,32,1,32,1,32,5, +32,242,8,32,10,32,12,32,245,9,32,1,32,1,32,1,32,3,32,250,8,32,1,32,5,32, +253,8,32,10,32,12,32,256,9,32,1,32,3,32,259,8,32,1,33,1,33,1,34,1,34,1,35, +1,35,1,36,1,36,1,36,3,36,270,8,36,1,37,4,37,273,8,37,11,37,12,37,274,1,38, +1,38,1,39,1,39,3,39,281,8,39,1,39,1,39,1,39,3,39,286,8,39,1,40,3,40,289, +8,40,1,40,1,40,1,40,1,40,1,40,3,40,296,8,40,1,41,1,41,3,41,300,8,41,1,41, +1,41,1,41,3,41,305,8,41,1,41,3,41,308,8,41,1,42,1,42,1,43,4,43,313,8,43, +11,43,12,43,314,1,44,1,44,3,44,319,8,44,1,44,1,44,1,45,1,45,3,45,325,8,45, +1,45,1,45,1,46,4,46,330,8,46,11,46,12,46,331,1,47,1,47,1,48,1,48,1,48,1, +48,1,48,1,49,4,49,342,8,49,11,49,12,49,343,1,49,1,49,1,187,0,50,1,1,3,2, +5,3,7,4,9,5,11,6,13,7,15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16, +33,17,35,18,37,19,39,20,41,21,43,22,45,23,47,24,49,25,51,26,53,27,55,28, +57,29,59,30,61,31,63,32,65,33,67,0,69,0,71,0,73,34,75,0,77,0,79,0,81,0,83, +0,85,0,87,0,89,35,91,36,93,0,95,0,97,37,99,38,1,0,9,4,0,45,45,48,57,65,90, +97,122,1,0,124,124,5,0,36,39,48,57,65,90,95,95,97,122,3,0,65,90,95,95,97, +122,1,0,48,57,1,0,49,57,2,0,43,43,45,45,5,0,10,10,13,13,34,34,39,39,92,92, +3,0,9,10,13,13,32,32,359,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0, +0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0, +0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31, +1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0, +0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1, +0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0, +65,1,0,0,0,0,73,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,97,1,0,0,0,0,99,1,0, +0,0,1,101,1,0,0,0,3,103,1,0,0,0,5,107,1,0,0,0,7,109,1,0,0,0,9,111,1,0,0, +0,11,113,1,0,0,0,13,116,1,0,0,0,15,118,1,0,0,0,17,121,1,0,0,0,19,123,1,0, +0,0,21,125,1,0,0,0,23,139,1,0,0,0,25,148,1,0,0,0,27,154,1,0,0,0,29,156,1, +0,0,0,31,162,1,0,0,0,33,167,1,0,0,0,35,169,1,0,0,0,37,179,1,0,0,0,39,194, +1,0,0,0,41,203,1,0,0,0,43,205,1,0,0,0,45,207,1,0,0,0,47,209,1,0,0,0,49,211, +1,0,0,0,51,213,1,0,0,0,53,216,1,0,0,0,55,218,1,0,0,0,57,221,1,0,0,0,59,223, +1,0,0,0,61,226,1,0,0,0,63,229,1,0,0,0,65,249,1,0,0,0,67,260,1,0,0,0,69,262, +1,0,0,0,71,264,1,0,0,0,73,269,1,0,0,0,75,272,1,0,0,0,77,276,1,0,0,0,79,285, +1,0,0,0,81,295,1,0,0,0,83,307,1,0,0,0,85,309,1,0,0,0,87,312,1,0,0,0,89,316, +1,0,0,0,91,322,1,0,0,0,93,329,1,0,0,0,95,333,1,0,0,0,97,335,1,0,0,0,99,341, +1,0,0,0,101,102,5,58,0,0,102,2,1,0,0,0,103,104,5,60,0,0,104,105,5,45,0,0, +105,106,5,62,0,0,106,4,1,0,0,0,107,108,5,124,0,0,108,6,1,0,0,0,109,110,5, +40,0,0,110,8,1,0,0,0,111,112,5,41,0,0,112,10,1,0,0,0,113,114,5,45,0,0,114, +115,5,62,0,0,115,12,1,0,0,0,116,117,5,44,0,0,117,14,1,0,0,0,118,119,5,58, +0,0,119,120,5,61,0,0,120,16,1,0,0,0,121,122,5,91,0,0,122,18,1,0,0,0,123, +124,5,93,0,0,124,20,1,0,0,0,125,126,5,58,0,0,126,127,5,73,0,0,127,128,5, +78,0,0,128,129,5,84,0,0,129,130,5,69,0,0,130,131,5,82,0,0,131,132,5,80,0, +0,132,133,5,79,0,0,133,134,5,76,0,0,134,135,5,65,0,0,135,136,5,84,0,0,136, +137,5,69,0,0,137,138,5,58,0,0,138,22,1,0,0,0,139,140,5,58,0,0,140,141,5, +69,0,0,141,142,5,88,0,0,142,143,5,67,0,0,143,144,5,69,0,0,144,145,5,80,0, +0,145,146,5,84,0,0,146,147,5,58,0,0,147,24,1,0,0,0,148,149,5,58,0,0,149, +150,5,78,0,0,150,151,5,79,0,0,151,152,5,84,0,0,152,153,5,58,0,0,153,26,1, +0,0,0,154,155,5,94,0,0,155,28,1,0,0,0,156,157,5,58,0,0,157,158,5,65,0,0, +158,159,5,78,0,0,159,160,5,68,0,0,160,161,5,58,0,0,161,30,1,0,0,0,162,163, +5,58,0,0,163,164,5,79,0,0,164,165,5,82,0,0,165,166,5,58,0,0,166,32,1,0,0, +0,167,168,5,59,0,0,168,34,1,0,0,0,169,171,5,123,0,0,170,172,7,0,0,0,171, +170,1,0,0,0,172,173,1,0,0,0,173,171,1,0,0,0,173,174,1,0,0,0,174,175,1,0, +0,0,175,176,5,125,0,0,176,177,1,0,0,0,177,178,6,17,0,0,178,36,1,0,0,0,179, +180,5,42,0,0,180,181,5,42,0,0,181,182,5,42,0,0,182,183,5,42,0,0,183,187, +1,0,0,0,184,186,9,0,0,0,185,184,1,0,0,0,186,189,1,0,0,0,187,188,1,0,0,0, +187,185,1,0,0,0,188,190,1,0,0,0,189,187,1,0,0,0,190,191,5,124,0,0,191,192, +1,0,0,0,192,193,6,18,0,0,193,38,1,0,0,0,194,198,5,126,0,0,195,197,8,1,0, +0,196,195,1,0,0,0,197,200,1,0,0,0,198,196,1,0,0,0,198,199,1,0,0,0,199,201, +1,0,0,0,200,198,1,0,0,0,201,202,6,19,0,0,202,40,1,0,0,0,203,204,5,42,0,0, +204,42,1,0,0,0,205,206,5,47,0,0,206,44,1,0,0,0,207,208,5,43,0,0,208,46,1, +0,0,0,209,210,5,45,0,0,210,48,1,0,0,0,211,212,5,60,0,0,212,50,1,0,0,0,213, +214,5,60,0,0,214,215,5,61,0,0,215,52,1,0,0,0,216,217,5,62,0,0,217,54,1,0, +0,0,218,219,5,62,0,0,219,220,5,61,0,0,220,56,1,0,0,0,221,222,5,61,0,0,222, +58,1,0,0,0,223,224,5,61,0,0,224,225,5,61,0,0,225,60,1,0,0,0,226,227,5,60, +0,0,227,228,5,62,0,0,228,62,1,0,0,0,229,230,5,33,0,0,230,64,1,0,0,0,231, +235,3,69,34,0,232,234,3,67,33,0,233,232,1,0,0,0,234,237,1,0,0,0,235,233, +1,0,0,0,235,236,1,0,0,0,236,250,1,0,0,0,237,235,1,0,0,0,238,243,3,69,34, +0,239,242,3,67,33,0,240,242,5,32,0,0,241,239,1,0,0,0,241,240,1,0,0,0,242, +245,1,0,0,0,243,241,1,0,0,0,243,244,1,0,0,0,244,246,1,0,0,0,245,243,1,0, +0,0,246,247,3,67,33,0,247,250,1,0,0,0,248,250,3,89,44,0,249,231,1,0,0,0, +249,238,1,0,0,0,249,248,1,0,0,0,250,258,1,0,0,0,251,253,3,99,49,0,252,251, +1,0,0,0,253,256,1,0,0,0,254,252,1,0,0,0,254,255,1,0,0,0,255,257,1,0,0,0, +256,254,1,0,0,0,257,259,3,63,31,0,258,254,1,0,0,0,258,259,1,0,0,0,259,66, +1,0,0,0,260,261,7,2,0,0,261,68,1,0,0,0,262,263,7,3,0,0,263,70,1,0,0,0,264, +265,7,4,0,0,265,72,1,0,0,0,266,270,3,75,37,0,267,270,3,79,39,0,268,270,3, +91,45,0,269,266,1,0,0,0,269,267,1,0,0,0,269,268,1,0,0,0,270,74,1,0,0,0,271, +273,3,71,35,0,272,271,1,0,0,0,273,274,1,0,0,0,274,272,1,0,0,0,274,275,1, +0,0,0,275,76,1,0,0,0,276,277,7,5,0,0,277,78,1,0,0,0,278,280,3,81,40,0,279, +281,3,83,41,0,280,279,1,0,0,0,280,281,1,0,0,0,281,286,1,0,0,0,282,283,3, +87,43,0,283,284,3,83,41,0,284,286,1,0,0,0,285,278,1,0,0,0,285,282,1,0,0, +0,286,80,1,0,0,0,287,289,3,87,43,0,288,287,1,0,0,0,288,289,1,0,0,0,289,290, +1,0,0,0,290,291,5,46,0,0,291,296,3,87,43,0,292,293,3,87,43,0,293,294,5,46, +0,0,294,296,1,0,0,0,295,288,1,0,0,0,295,292,1,0,0,0,296,82,1,0,0,0,297,299, +5,101,0,0,298,300,3,85,42,0,299,298,1,0,0,0,299,300,1,0,0,0,300,301,1,0, +0,0,301,308,3,87,43,0,302,304,5,69,0,0,303,305,3,85,42,0,304,303,1,0,0,0, +304,305,1,0,0,0,305,306,1,0,0,0,306,308,3,87,43,0,307,297,1,0,0,0,307,302, +1,0,0,0,308,84,1,0,0,0,309,310,7,6,0,0,310,86,1,0,0,0,311,313,3,71,35,0, +312,311,1,0,0,0,313,314,1,0,0,0,314,312,1,0,0,0,314,315,1,0,0,0,315,88,1, +0,0,0,316,318,5,34,0,0,317,319,3,93,46,0,318,317,1,0,0,0,318,319,1,0,0,0, +319,320,1,0,0,0,320,321,5,34,0,0,321,90,1,0,0,0,322,324,5,39,0,0,323,325, +3,93,46,0,324,323,1,0,0,0,324,325,1,0,0,0,325,326,1,0,0,0,326,327,5,39,0, +0,327,92,1,0,0,0,328,330,3,95,47,0,329,328,1,0,0,0,330,331,1,0,0,0,331,329, +1,0,0,0,331,332,1,0,0,0,332,94,1,0,0,0,333,334,8,7,0,0,334,96,1,0,0,0,335, +336,5,58,0,0,336,337,5,78,0,0,337,338,5,65,0,0,338,339,5,58,0,0,339,98,1, +0,0,0,340,342,7,8,0,0,341,340,1,0,0,0,342,343,1,0,0,0,343,341,1,0,0,0,343, +344,1,0,0,0,344,345,1,0,0,0,345,346,6,49,0,0,346,100,1,0,0,0,24,0,173,187, +198,235,241,243,249,254,258,269,274,280,285,288,295,299,304,307,314,318, +324,331,343,1,6,0,0]; const atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); @@ -263,11 +152,7 @@ export default class ModelLexer extends antlr4.Lexer { constructor(input) { super(input) - this._interp = new antlr4.atn.LexerATNSimulator(this, atn, decisionsToDFA, new antlr4.PredictionContextCache()); - } - - get atn() { - return atn; + this._interp = new antlr4.atn.LexerATNSimulator(this, atn, decisionsToDFA, new antlr4.atn.PredictionContextCache()); } } diff --git a/parser/ModelParser.js b/parser/ModelParser.js index e93ee36..4c63ef0 100644 --- a/parser/ModelParser.js +++ b/parser/ModelParser.js @@ -1,176 +1,94 @@ -// Generated from grammar/Model.g4 by ANTLR 4.9.2 +// Generated from grammar/Model.g4 by ANTLR 4.12.0 // jshint ignore: start import antlr4 from 'antlr4'; import ModelVisitor from './ModelVisitor.js'; - -const serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786", - "\u5964\u0003(\u00f9\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004\u0004", - "\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t\u0007", - "\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004\f\t\f", - "\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010\t\u0010", - "\u0003\u0002\u0003\u0002\u0006\u0002#\n\u0002\r\u0002\u000e\u0002$\u0003", - "\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0005\u0003,", - "\n\u0003\u0003\u0003\u0005\u0003/\n\u0003\u0003\u0003\u0003\u0003\u0003", - "\u0003\u0005\u00034\n\u0003\u0003\u0003\u0003\u0003\u0003\u0004\u0003", - "\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0005\u0003", - "\u0005\u0003\u0005\u0003\u0005\u0007\u0005B\n\u0005\f\u0005\u000e\u0005", - "E\u000b\u0005\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", - "\u0006\u0003\u0006\u0003\u0006\u0005\u0006N\n\u0006\u0003\u0007\u0003", - "\u0007\u0003\u0007\u0003\u0007\u0005\u0007T\n\u0007\u0003\u0007\u0005", - "\u0007W\n\u0007\u0003\u0007\u0003\u0007\u0003\b\u0003\b\u0003\b\u0003", - "\b\u0003\b\u0005\b`\n\b\u0003\b\u0005\bc\n\b\u0003\b\u0003\b\u0003\b", - "\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0007\bn\n\b\f\b\u000e", - "\bq\u000b\b\u0005\bs\n\b\u0003\t\u0003\t\u0003\t\u0003\t\u0005\ty\n", - "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0005\t\u0081\n\t", - "\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", - "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0005\t\u0092\n\t", - "\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0005\t\u009b", - "\n\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t", - "\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", - "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0007\t\u00b2\n\t\f\t\u000e\t\u00b5", - "\u000b\t\u0003\n\u0003\n\u0003\n\u0007\n\u00ba\n\n\f\n\u000e\n\u00bd", - "\u000b\n\u0003\u000b\u0003\u000b\u0003\u000b\u0007\u000b\u00c2\n\u000b", - "\f\u000b\u000e\u000b\u00c5\u000b\u000b\u0003\f\u0003\f\u0005\f\u00c9", - "\n\f\u0003\f\u0003\f\u0003\f\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r", - "\u0003\r\u0003\r\u0003\u000e\u0003\u000e\u0003\u000e\u0007\u000e\u00d8", - "\n\u000e\f\u000e\u000e\u000e\u00db\u000b\u000e\u0003\u000f\u0003\u000f", - "\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u0010\u0003\u0010", - "\u0003\u0010\u0006\u0010\u00e6\n\u0010\r\u0010\u000e\u0010\u00e7\u0003", - "\u0010\u0003\u0010\u0003\u0010\u0006\u0010\u00ed\n\u0010\r\u0010\u000e", - "\u0010\u00ee\u0003\u0010\u0003\u0010\u0006\u0010\u00f3\n\u0010\r\u0010", - "\u000e\u0010\u00f4\u0005\u0010\u00f7\n\u0010\u0003\u0010\u0002\u0003", - "\u0010\u0011\u0002\u0004\u0006\b\n\f\u000e\u0010\u0012\u0014\u0016\u0018", - "\u001a\u001c\u001e\u0002\u0007\u0004\u0002\n\n\u001f \u0003\u0002\u0017", - "\u0018\u0003\u0002\u0019\u001a\u0003\u0002\u001b\u001e\u0004\u0002\u001f", - "\u001f!!\u0002\u0113\u0002\"\u0003\u0002\u0002\u0002\u00043\u0003\u0002", - "\u0002\u0002\u00067\u0003\u0002\u0002\u0002\b=\u0003\u0002\u0002\u0002", - "\nM\u0003\u0002\u0002\u0002\fO\u0003\u0002\u0002\u0002\u000eZ\u0003", - "\u0002\u0002\u0002\u0010\u009a\u0003\u0002\u0002\u0002\u0012\u00b6\u0003", - "\u0002\u0002\u0002\u0014\u00be\u0003\u0002\u0002\u0002\u0016\u00c6\u0003", - "\u0002\u0002\u0002\u0018\u00cd\u0003\u0002\u0002\u0002\u001a\u00d4\u0003", - "\u0002\u0002\u0002\u001c\u00dc\u0003\u0002\u0002\u0002\u001e\u00f6\u0003", - "\u0002\u0002\u0002 #\u0005\u0004\u0003\u0002!#\u0005\f\u0007\u0002\"", - " \u0003\u0002\u0002\u0002\"!\u0003\u0002\u0002\u0002#$\u0003\u0002\u0002", - "\u0002$\"\u0003\u0002\u0002\u0002$%\u0003\u0002\u0002\u0002%\u0003\u0003", - "\u0002\u0002\u0002&\'\u0007#\u0002\u0002\'+\u0007\u0003\u0002\u0002", - "(,\u0005\u0014\u000b\u0002),\u0005\u0006\u0004\u0002*,\u0005\u0010\t", - "\u0002+(\u0003\u0002\u0002\u0002+)\u0003\u0002\u0002\u0002+*\u0003\u0002", - "\u0002\u0002,.\u0003\u0002\u0002\u0002-/\u0005\b\u0005\u0002.-\u0003", - "\u0002\u0002\u0002./\u0003\u0002\u0002\u0002/4\u0003\u0002\u0002\u0002", - "01\u0007#\u0002\u000212\u0007\u0004\u0002\u000224\u0007#\u0002\u0002", - "3&\u0003\u0002\u0002\u000230\u0003\u0002\u0002\u000245\u0003\u0002\u0002", - "\u000256\u0007\u0005\u0002\u00026\u0005\u0003\u0002\u0002\u000278\u0007", - "\u0006\u0002\u000289\u0007#\u0002\u00029:\u0007\u001a\u0002\u0002:;", - "\u0007#\u0002\u0002;<\u0007\u0007\u0002\u0002<\u0007\u0003\u0002\u0002", - "\u0002=>\u0007\b\u0002\u0002>C\u0005\n\u0006\u0002?@\u0007\t\u0002\u0002", - "@B\u0005\n\u0006\u0002A?\u0003\u0002\u0002\u0002BE\u0003\u0002\u0002", - "\u0002CA\u0003\u0002\u0002\u0002CD\u0003\u0002\u0002\u0002D\t\u0003", - "\u0002\u0002\u0002EC\u0003\u0002\u0002\u0002FN\u0007#\u0002\u0002GH", - "\u0007\u0006\u0002\u0002HI\u0007#\u0002\u0002IJ\u0007\u0003\u0002\u0002", - "JK\u0005\u0014\u000b\u0002KL\u0007\u0007\u0002\u0002LN\u0003\u0002\u0002", - "\u0002MF\u0003\u0002\u0002\u0002MG\u0003\u0002\u0002\u0002N\u000b\u0003", - "\u0002\u0002\u0002OV\u0005\u000e\b\u0002PS\t\u0002\u0002\u0002QT\u0005", - "\u0010\t\u0002RT\u0005\u001e\u0010\u0002SQ\u0003\u0002\u0002\u0002S", - "R\u0003\u0002\u0002\u0002TW\u0003\u0002\u0002\u0002UW\u0005\u0016\f", - "\u0002VP\u0003\u0002\u0002\u0002VU\u0003\u0002\u0002\u0002VW\u0003\u0002", - "\u0002\u0002WX\u0003\u0002\u0002\u0002XY\u0007\u0005\u0002\u0002Y\r", - "\u0003\u0002\u0002\u0002Z_\u0007#\u0002\u0002[\\\u0007\u000b\u0002\u0002", - "\\]\u0005\u0014\u000b\u0002]^\u0007\f\u0002\u0002^`\u0003\u0002\u0002", - "\u0002_[\u0003\u0002\u0002\u0002_`\u0003\u0002\u0002\u0002`b\u0003\u0002", - "\u0002\u0002ac\u0007\r\u0002\u0002ba\u0003\u0002\u0002\u0002bc\u0003", - "\u0002\u0002\u0002cr\u0003\u0002\u0002\u0002de\u0007\u000e\u0002\u0002", - "ef\u0007\u000b\u0002\u0002fg\u0005\u0014\u000b\u0002go\u0007\f\u0002", - "\u0002hi\u0007\t\u0002\u0002ij\u0007\u000b\u0002\u0002jk\u0005\u0014", - "\u000b\u0002kl\u0007\f\u0002\u0002ln\u0003\u0002\u0002\u0002mh\u0003", - "\u0002\u0002\u0002nq\u0003\u0002\u0002\u0002om\u0003\u0002\u0002\u0002", - "op\u0003\u0002\u0002\u0002ps\u0003\u0002\u0002\u0002qo\u0003\u0002\u0002", - "\u0002rd\u0003\u0002\u0002\u0002rs\u0003\u0002\u0002\u0002s\u000f\u0003", - "\u0002\u0002\u0002tu\b\t\u0001\u0002uv\u0007#\u0002\u0002vx\u0007\u0006", - "\u0002\u0002wy\u0005\u0012\n\u0002xw\u0003\u0002\u0002\u0002xy\u0003", - "\u0002\u0002\u0002yz\u0003\u0002\u0002\u0002z\u009b\u0007\u0007\u0002", - "\u0002{\u0080\u0007#\u0002\u0002|}\u0007\u000b\u0002\u0002}~\u0005\u0014", - "\u000b\u0002~\u007f\u0007\f\u0002\u0002\u007f\u0081\u0003\u0002\u0002", - "\u0002\u0080|\u0003\u0002\u0002\u0002\u0080\u0081\u0003\u0002\u0002", - "\u0002\u0081\u0082\u0003\u0002\u0002\u0002\u0082\u0083\u0007\u0006\u0002", - "\u0002\u0083\u0084\u0005\u0010\t\u0002\u0084\u0085\u0007\u0007\u0002", - "\u0002\u0085\u009b\u0003\u0002\u0002\u0002\u0086\u0087\u0007\u000f\u0002", - "\u0002\u0087\u009b\u0005\u0010\t\u0011\u0088\u0089\u0007\u001a\u0002", - "\u0002\u0089\u009b\u0005\u0010\t\u0010\u008a\u008b\u0007\u0019\u0002", - "\u0002\u008b\u009b\u0005\u0010\t\u000f\u008c\u0091\u0007#\u0002\u0002", - "\u008d\u008e\u0007\u000b\u0002\u0002\u008e\u008f\u0005\u0014\u000b\u0002", - "\u008f\u0090\u0007\f\u0002\u0002\u0090\u0092\u0003\u0002\u0002\u0002", - "\u0091\u008d\u0003\u0002\u0002\u0002\u0091\u0092\u0003\u0002\u0002\u0002", - "\u0092\u009b\u0003\u0002\u0002\u0002\u0093\u009b\u0007$\u0002\u0002", - "\u0094\u009b\u0007\'\u0002\u0002\u0095\u009b\u0005\u0016\f\u0002\u0096", - "\u0097\u0007\u0006\u0002\u0002\u0097\u0098\u0005\u0010\t\u0002\u0098", - "\u0099\u0007\u0007\u0002\u0002\u0099\u009b\u0003\u0002\u0002\u0002\u009a", - "t\u0003\u0002\u0002\u0002\u009a{\u0003\u0002\u0002\u0002\u009a\u0086", - "\u0003\u0002\u0002\u0002\u009a\u0088\u0003\u0002\u0002\u0002\u009a\u008a", - "\u0003\u0002\u0002\u0002\u009a\u008c\u0003\u0002\u0002\u0002\u009a\u0093", - "\u0003\u0002\u0002\u0002\u009a\u0094\u0003\u0002\u0002\u0002\u009a\u0095", - "\u0003\u0002\u0002\u0002\u009a\u0096\u0003\u0002\u0002\u0002\u009b\u00b3", - "\u0003\u0002\u0002\u0002\u009c\u009d\f\u000e\u0002\u0002\u009d\u009e", - "\u0007\u0010\u0002\u0002\u009e\u00b2\u0005\u0010\t\u000f\u009f\u00a0", - "\f\r\u0002\u0002\u00a0\u00a1\t\u0003\u0002\u0002\u00a1\u00b2\u0005\u0010", - "\t\u000e\u00a2\u00a3\f\f\u0002\u0002\u00a3\u00a4\t\u0004\u0002\u0002", - "\u00a4\u00b2\u0005\u0010\t\r\u00a5\u00a6\f\u000b\u0002\u0002\u00a6\u00a7", - "\t\u0005\u0002\u0002\u00a7\u00b2\u0005\u0010\t\f\u00a8\u00a9\f\n\u0002", - "\u0002\u00a9\u00aa\t\u0006\u0002\u0002\u00aa\u00b2\u0005\u0010\t\u000b", - "\u00ab\u00ac\f\t\u0002\u0002\u00ac\u00ad\u0007\u0011\u0002\u0002\u00ad", - "\u00b2\u0005\u0010\t\n\u00ae\u00af\f\b\u0002\u0002\u00af\u00b0\u0007", - "\u0012\u0002\u0002\u00b0\u00b2\u0005\u0010\t\t\u00b1\u009c\u0003\u0002", - "\u0002\u0002\u00b1\u009f\u0003\u0002\u0002\u0002\u00b1\u00a2\u0003\u0002", - "\u0002\u0002\u00b1\u00a5\u0003\u0002\u0002\u0002\u00b1\u00a8\u0003\u0002", - "\u0002\u0002\u00b1\u00ab\u0003\u0002\u0002\u0002\u00b1\u00ae\u0003\u0002", - "\u0002\u0002\u00b2\u00b5\u0003\u0002\u0002\u0002\u00b3\u00b1\u0003\u0002", - "\u0002\u0002\u00b3\u00b4\u0003\u0002\u0002\u0002\u00b4\u0011\u0003\u0002", - "\u0002\u0002\u00b5\u00b3\u0003\u0002\u0002\u0002\u00b6\u00bb\u0005\u0010", - "\t\u0002\u00b7\u00b8\u0007\t\u0002\u0002\u00b8\u00ba\u0005\u0010\t\u0002", - "\u00b9\u00b7\u0003\u0002\u0002\u0002\u00ba\u00bd\u0003\u0002\u0002\u0002", - "\u00bb\u00b9\u0003\u0002\u0002\u0002\u00bb\u00bc\u0003\u0002\u0002\u0002", - "\u00bc\u0013\u0003\u0002\u0002\u0002\u00bd\u00bb\u0003\u0002\u0002\u0002", - "\u00be\u00c3\u0007#\u0002\u0002\u00bf\u00c0\u0007\t\u0002\u0002\u00c0", - "\u00c2\u0007#\u0002\u0002\u00c1\u00bf\u0003\u0002\u0002\u0002\u00c2", - "\u00c5\u0003\u0002\u0002\u0002\u00c3\u00c1\u0003\u0002\u0002\u0002\u00c3", - "\u00c4\u0003\u0002\u0002\u0002\u00c4\u0015\u0003\u0002\u0002\u0002\u00c5", - "\u00c3\u0003\u0002\u0002\u0002\u00c6\u00c8\u0007\u0006\u0002\u0002\u00c7", - "\u00c9\u0005\u0018\r\u0002\u00c8\u00c7\u0003\u0002\u0002\u0002\u00c8", - "\u00c9\u0003\u0002\u0002\u0002\u00c9\u00ca\u0003\u0002\u0002\u0002\u00ca", - "\u00cb\u0005\u001a\u000e\u0002\u00cb\u00cc\u0007\u0007\u0002\u0002\u00cc", - "\u0017\u0003\u0002\u0002\u0002\u00cd\u00ce\u0007\u000b\u0002\u0002\u00ce", - "\u00cf\u0005\u001c\u000f\u0002\u00cf\u00d0\u0007\u001a\u0002\u0002\u00d0", - "\u00d1\u0005\u001c\u000f\u0002\u00d1\u00d2\u0007\f\u0002\u0002\u00d2", - "\u00d3\u0007\t\u0002\u0002\u00d3\u0019\u0003\u0002\u0002\u0002\u00d4", - "\u00d9\u0005\u001c\u000f\u0002\u00d5\u00d6\u0007\t\u0002\u0002\u00d6", - "\u00d8\u0005\u001c\u000f\u0002\u00d7\u00d5\u0003\u0002\u0002\u0002\u00d8", - "\u00db\u0003\u0002\u0002\u0002\u00d9\u00d7\u0003\u0002\u0002\u0002\u00d9", - "\u00da\u0003\u0002\u0002\u0002\u00da\u001b\u0003\u0002\u0002\u0002\u00db", - "\u00d9\u0003\u0002\u0002\u0002\u00dc\u00dd\u0007\u0006\u0002\u0002\u00dd", - "\u00de\u0005\u0010\t\u0002\u00de\u00df\u0007\t\u0002\u0002\u00df\u00e0", - "\u0005\u0010\t\u0002\u00e0\u00e1\u0007\u0007\u0002\u0002\u00e1\u001d", - "\u0003\u0002\u0002\u0002\u00e2\u00e5\u0005\u0010\t\u0002\u00e3\u00e4", - "\u0007\t\u0002\u0002\u00e4\u00e6\u0005\u0010\t\u0002\u00e5\u00e3\u0003", - "\u0002\u0002\u0002\u00e6\u00e7\u0003\u0002\u0002\u0002\u00e7\u00e5\u0003", - "\u0002\u0002\u0002\u00e7\u00e8\u0003\u0002\u0002\u0002\u00e8\u00f7\u0003", - "\u0002\u0002\u0002\u00e9\u00ec\u0005\u0010\t\u0002\u00ea\u00eb\u0007", - "\t\u0002\u0002\u00eb\u00ed\u0005\u0010\t\u0002\u00ec\u00ea\u0003\u0002", - "\u0002\u0002\u00ed\u00ee\u0003\u0002\u0002\u0002\u00ee\u00ec\u0003\u0002", - "\u0002\u0002\u00ee\u00ef\u0003\u0002\u0002\u0002\u00ef\u00f0\u0003\u0002", - "\u0002\u0002\u00f0\u00f1\u0007\u0013\u0002\u0002\u00f1\u00f3\u0003\u0002", - "\u0002\u0002\u00f2\u00e9\u0003\u0002\u0002\u0002\u00f3\u00f4\u0003\u0002", - "\u0002\u0002\u00f4\u00f2\u0003\u0002\u0002\u0002\u00f4\u00f5\u0003\u0002", - "\u0002\u0002\u00f5\u00f7\u0003\u0002\u0002\u0002\u00f6\u00e2\u0003\u0002", - "\u0002\u0002\u00f6\u00f2\u0003\u0002\u0002\u0002\u00f7\u001f\u0003\u0002", - "\u0002\u0002\u001d\"$+.3CMSV_borx\u0080\u0091\u009a\u00b1\u00b3\u00bb", - "\u00c3\u00c8\u00d9\u00e7\u00ee\u00f4\u00f6"].join(""); +const serializedATN = [4,1,38,247,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7, +4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12, +2,13,7,13,2,14,7,14,1,0,1,0,4,0,33,8,0,11,0,12,0,34,1,1,1,1,1,1,1,1,1,1, +3,1,42,8,1,1,1,3,1,45,8,1,1,1,1,1,1,1,3,1,50,8,1,1,1,1,1,1,2,1,2,1,2,1,2, +1,2,1,2,1,3,1,3,1,3,1,3,5,3,64,8,3,10,3,12,3,67,9,3,1,4,1,4,1,4,1,4,1,4, +1,4,1,4,3,4,76,8,4,1,5,1,5,1,5,1,5,3,5,82,8,5,1,5,3,5,85,8,5,1,5,1,5,1,6, +1,6,1,6,1,6,1,6,3,6,94,8,6,1,6,3,6,97,8,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1, +6,1,6,5,6,108,8,6,10,6,12,6,111,9,6,3,6,113,8,6,1,7,1,7,1,7,1,7,3,7,119, +8,7,1,7,1,7,1,7,1,7,1,7,1,7,3,7,127,8,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7, +1,7,1,7,1,7,1,7,1,7,1,7,1,7,3,7,144,8,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,3,7, +153,8,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7, +1,7,1,7,1,7,1,7,1,7,5,7,176,8,7,10,7,12,7,179,9,7,1,8,1,8,1,8,5,8,184,8, +8,10,8,12,8,187,9,8,1,9,1,9,1,9,5,9,192,8,9,10,9,12,9,195,9,9,1,10,1,10, +3,10,199,8,10,1,10,1,10,1,10,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,12,1,12, +1,12,5,12,214,8,12,10,12,12,12,217,9,12,1,13,1,13,1,13,1,13,1,13,1,13,1, +14,1,14,1,14,4,14,228,8,14,11,14,12,14,229,1,14,1,14,1,14,4,14,235,8,14, +11,14,12,14,236,1,14,1,14,4,14,241,8,14,11,14,12,14,242,3,14,245,8,14,1, +14,0,1,14,15,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,0,5,2,0,8,8,29,30,1, +0,21,22,1,0,23,24,1,0,25,28,2,0,29,29,31,31,273,0,32,1,0,0,0,2,49,1,0,0, +0,4,53,1,0,0,0,6,59,1,0,0,0,8,75,1,0,0,0,10,77,1,0,0,0,12,88,1,0,0,0,14, +152,1,0,0,0,16,180,1,0,0,0,18,188,1,0,0,0,20,196,1,0,0,0,22,203,1,0,0,0, +24,210,1,0,0,0,26,218,1,0,0,0,28,244,1,0,0,0,30,33,3,2,1,0,31,33,3,10,5, +0,32,30,1,0,0,0,32,31,1,0,0,0,33,34,1,0,0,0,34,32,1,0,0,0,34,35,1,0,0,0, +35,1,1,0,0,0,36,37,5,33,0,0,37,41,5,1,0,0,38,42,3,18,9,0,39,42,3,4,2,0,40, +42,3,14,7,0,41,38,1,0,0,0,41,39,1,0,0,0,41,40,1,0,0,0,42,44,1,0,0,0,43,45, +3,6,3,0,44,43,1,0,0,0,44,45,1,0,0,0,45,50,1,0,0,0,46,47,5,33,0,0,47,48,5, +2,0,0,48,50,5,33,0,0,49,36,1,0,0,0,49,46,1,0,0,0,50,51,1,0,0,0,51,52,5,3, +0,0,52,3,1,0,0,0,53,54,5,4,0,0,54,55,5,33,0,0,55,56,5,24,0,0,56,57,5,33, +0,0,57,58,5,5,0,0,58,5,1,0,0,0,59,60,5,6,0,0,60,65,3,8,4,0,61,62,5,7,0,0, +62,64,3,8,4,0,63,61,1,0,0,0,64,67,1,0,0,0,65,63,1,0,0,0,65,66,1,0,0,0,66, +7,1,0,0,0,67,65,1,0,0,0,68,76,5,33,0,0,69,70,5,4,0,0,70,71,5,33,0,0,71,72, +5,1,0,0,72,73,3,18,9,0,73,74,5,5,0,0,74,76,1,0,0,0,75,68,1,0,0,0,75,69,1, +0,0,0,76,9,1,0,0,0,77,84,3,12,6,0,78,81,7,0,0,0,79,82,3,14,7,0,80,82,3,28, +14,0,81,79,1,0,0,0,81,80,1,0,0,0,82,85,1,0,0,0,83,85,3,20,10,0,84,78,1,0, +0,0,84,83,1,0,0,0,84,85,1,0,0,0,85,86,1,0,0,0,86,87,5,3,0,0,87,11,1,0,0, +0,88,93,5,33,0,0,89,90,5,9,0,0,90,91,3,18,9,0,91,92,5,10,0,0,92,94,1,0,0, +0,93,89,1,0,0,0,93,94,1,0,0,0,94,96,1,0,0,0,95,97,5,11,0,0,96,95,1,0,0,0, +96,97,1,0,0,0,97,112,1,0,0,0,98,99,5,12,0,0,99,100,5,9,0,0,100,101,3,18, +9,0,101,109,5,10,0,0,102,103,5,7,0,0,103,104,5,9,0,0,104,105,3,18,9,0,105, +106,5,10,0,0,106,108,1,0,0,0,107,102,1,0,0,0,108,111,1,0,0,0,109,107,1,0, +0,0,109,110,1,0,0,0,110,113,1,0,0,0,111,109,1,0,0,0,112,98,1,0,0,0,112,113, +1,0,0,0,113,13,1,0,0,0,114,115,6,7,-1,0,115,116,5,33,0,0,116,118,5,4,0,0, +117,119,3,16,8,0,118,117,1,0,0,0,118,119,1,0,0,0,119,120,1,0,0,0,120,153, +5,5,0,0,121,126,5,33,0,0,122,123,5,9,0,0,123,124,3,18,9,0,124,125,5,10,0, +0,125,127,1,0,0,0,126,122,1,0,0,0,126,127,1,0,0,0,127,128,1,0,0,0,128,129, +5,4,0,0,129,130,3,14,7,0,130,131,5,5,0,0,131,153,1,0,0,0,132,133,5,13,0, +0,133,153,3,14,7,15,134,135,5,24,0,0,135,153,3,14,7,14,136,137,5,23,0,0, +137,153,3,14,7,13,138,143,5,33,0,0,139,140,5,9,0,0,140,141,3,18,9,0,141, +142,5,10,0,0,142,144,1,0,0,0,143,139,1,0,0,0,143,144,1,0,0,0,144,153,1,0, +0,0,145,153,5,34,0,0,146,153,5,37,0,0,147,153,3,20,10,0,148,149,5,4,0,0, +149,150,3,14,7,0,150,151,5,5,0,0,151,153,1,0,0,0,152,114,1,0,0,0,152,121, +1,0,0,0,152,132,1,0,0,0,152,134,1,0,0,0,152,136,1,0,0,0,152,138,1,0,0,0, +152,145,1,0,0,0,152,146,1,0,0,0,152,147,1,0,0,0,152,148,1,0,0,0,153,177, +1,0,0,0,154,155,10,12,0,0,155,156,5,14,0,0,156,176,3,14,7,13,157,158,10, +11,0,0,158,159,7,1,0,0,159,176,3,14,7,12,160,161,10,10,0,0,161,162,7,2,0, +0,162,176,3,14,7,11,163,164,10,9,0,0,164,165,7,3,0,0,165,176,3,14,7,10,166, +167,10,8,0,0,167,168,7,4,0,0,168,176,3,14,7,9,169,170,10,7,0,0,170,171,5, +15,0,0,171,176,3,14,7,8,172,173,10,6,0,0,173,174,5,16,0,0,174,176,3,14,7, +7,175,154,1,0,0,0,175,157,1,0,0,0,175,160,1,0,0,0,175,163,1,0,0,0,175,166, +1,0,0,0,175,169,1,0,0,0,175,172,1,0,0,0,176,179,1,0,0,0,177,175,1,0,0,0, +177,178,1,0,0,0,178,15,1,0,0,0,179,177,1,0,0,0,180,185,3,14,7,0,181,182, +5,7,0,0,182,184,3,14,7,0,183,181,1,0,0,0,184,187,1,0,0,0,185,183,1,0,0,0, +185,186,1,0,0,0,186,17,1,0,0,0,187,185,1,0,0,0,188,193,5,33,0,0,189,190, +5,7,0,0,190,192,5,33,0,0,191,189,1,0,0,0,192,195,1,0,0,0,193,191,1,0,0,0, +193,194,1,0,0,0,194,19,1,0,0,0,195,193,1,0,0,0,196,198,5,4,0,0,197,199,3, +22,11,0,198,197,1,0,0,0,198,199,1,0,0,0,199,200,1,0,0,0,200,201,3,24,12, +0,201,202,5,5,0,0,202,21,1,0,0,0,203,204,5,9,0,0,204,205,3,26,13,0,205,206, +5,24,0,0,206,207,3,26,13,0,207,208,5,10,0,0,208,209,5,7,0,0,209,23,1,0,0, +0,210,215,3,26,13,0,211,212,5,7,0,0,212,214,3,26,13,0,213,211,1,0,0,0,214, +217,1,0,0,0,215,213,1,0,0,0,215,216,1,0,0,0,216,25,1,0,0,0,217,215,1,0,0, +0,218,219,5,4,0,0,219,220,3,14,7,0,220,221,5,7,0,0,221,222,3,14,7,0,222, +223,5,5,0,0,223,27,1,0,0,0,224,227,3,14,7,0,225,226,5,7,0,0,226,228,3,14, +7,0,227,225,1,0,0,0,228,229,1,0,0,0,229,227,1,0,0,0,229,230,1,0,0,0,230, +245,1,0,0,0,231,234,3,14,7,0,232,233,5,7,0,0,233,235,3,14,7,0,234,232,1, +0,0,0,235,236,1,0,0,0,236,234,1,0,0,0,236,237,1,0,0,0,237,238,1,0,0,0,238, +239,5,17,0,0,239,241,1,0,0,0,240,231,1,0,0,0,241,242,1,0,0,0,242,240,1,0, +0,0,242,243,1,0,0,0,243,245,1,0,0,0,244,224,1,0,0,0,244,240,1,0,0,0,245, +29,1,0,0,0,27,32,34,41,44,49,65,75,81,84,93,96,109,112,118,126,143,152,175, +177,185,193,198,215,229,236,242,244]; const atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); const decisionsToDFA = atn.decisionToState.map( (ds, index) => new antlr4.dfa.DFA(ds, index) ); -const sharedContextCache = new antlr4.PredictionContextCache(); +const sharedContextCache = new antlr4.atn.PredictionContextCache(); export default class ModelParser extends antlr4.Parser { @@ -203,10 +121,6 @@ export default class ModelParser extends antlr4.Parser { this.symbolicNames = ModelParser.symbolicNames; } - get atn() { - return atn; - } - sempred(localctx, ruleIndex, predIndex) { switch(ruleIndex) { case 7: @@ -243,7 +157,7 @@ export default class ModelParser extends antlr4.Parser { model() { let localctx = new ModelContext(this, this._ctx, this.state); this.enterRule(localctx, 0, ModelParser.RULE_model); - var _la = 0; // Token type + var _la = 0; try { this.enterOuterAlt(localctx, 1); this.state = 32; @@ -268,7 +182,7 @@ export default class ModelParser extends antlr4.Parser { this.state = 34; this._errHandler.sync(this); _la = this._input.LA(1); - } while(_la===ModelParser.Id); + } while(_la===33); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -288,7 +202,7 @@ export default class ModelParser extends antlr4.Parser { subscriptRange() { let localctx = new SubscriptRangeContext(this, this._ctx, this.state); this.enterRule(localctx, 2, ModelParser.RULE_subscriptRange); - var _la = 0; // Token type + var _la = 0; try { this.enterOuterAlt(localctx, 1); this.state = 49; @@ -323,7 +237,7 @@ export default class ModelParser extends antlr4.Parser { this.state = 44; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===ModelParser.T__5) { + if(_la===6) { this.state = 43; this.subscriptMappingList(); } @@ -392,7 +306,7 @@ export default class ModelParser extends antlr4.Parser { subscriptMappingList() { let localctx = new SubscriptMappingListContext(this, this._ctx, this.state); this.enterRule(localctx, 6, ModelParser.RULE_subscriptMappingList); - var _la = 0; // Token type + var _la = 0; try { this.enterOuterAlt(localctx, 1); this.state = 59; @@ -402,7 +316,7 @@ export default class ModelParser extends antlr4.Parser { this.state = 65; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===ModelParser.T__6) { + while(_la===7) { this.state = 61; this.match(ModelParser.T__6); this.state = 62; @@ -434,12 +348,12 @@ export default class ModelParser extends antlr4.Parser { this.state = 75; this._errHandler.sync(this); switch(this._input.LA(1)) { - case ModelParser.Id: + case 33: this.enterOuterAlt(localctx, 1); this.state = 68; this.match(ModelParser.Id); break; - case ModelParser.T__3: + case 4: this.enterOuterAlt(localctx, 2); this.state = 69; this.match(ModelParser.T__3); @@ -474,7 +388,7 @@ export default class ModelParser extends antlr4.Parser { equation() { let localctx = new EquationContext(this, this._ctx, this.state); this.enterRule(localctx, 10, ModelParser.RULE_equation); - var _la = 0; // Token type + var _la = 0; try { this.enterOuterAlt(localctx, 1); this.state = 77; @@ -482,12 +396,12 @@ export default class ModelParser extends antlr4.Parser { this.state = 84; this._errHandler.sync(this); switch (this._input.LA(1)) { - case ModelParser.T__7: - case ModelParser.Equal: - case ModelParser.TwoEqual: + case 8: + case 29: + case 30: this.state = 78; _la = this._input.LA(1); - if(!((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << ModelParser.T__7) | (1 << ModelParser.Equal) | (1 << ModelParser.TwoEqual))) !== 0))) { + if(!((((_la) & ~0x1f) === 0 && ((1 << _la) & 1610612992) !== 0))) { this._errHandler.recoverInline(this); } else { @@ -510,11 +424,11 @@ export default class ModelParser extends antlr4.Parser { } break; - case ModelParser.T__3: + case 4: this.state = 83; this.lookup(); break; - case ModelParser.T__2: + case 3: break; default: break; @@ -540,7 +454,7 @@ export default class ModelParser extends antlr4.Parser { lhs() { let localctx = new LhsContext(this, this._ctx, this.state); this.enterRule(localctx, 12, ModelParser.RULE_lhs); - var _la = 0; // Token type + var _la = 0; try { this.enterOuterAlt(localctx, 1); this.state = 88; @@ -548,7 +462,7 @@ export default class ModelParser extends antlr4.Parser { this.state = 93; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===ModelParser.T__8) { + if(_la===9) { this.state = 89; this.match(ModelParser.T__8); this.state = 90; @@ -560,7 +474,7 @@ export default class ModelParser extends antlr4.Parser { this.state = 96; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===ModelParser.T__10) { + if(_la===11) { this.state = 95; this.match(ModelParser.T__10); } @@ -568,7 +482,7 @@ export default class ModelParser extends antlr4.Parser { this.state = 112; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===ModelParser.T__11) { + if(_la===12) { this.state = 98; this.match(ModelParser.T__11); this.state = 99; @@ -580,7 +494,7 @@ export default class ModelParser extends antlr4.Parser { this.state = 109; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===ModelParser.T__6) { + while(_la===7) { this.state = 102; this.match(ModelParser.T__6); this.state = 103; @@ -620,7 +534,7 @@ export default class ModelParser extends antlr4.Parser { let _prevctx = localctx; const _startState = 14; this.enterRecursionRule(localctx, 14, ModelParser.RULE_expr, _p); - var _la = 0; // Token type + var _la = 0; try { this.enterOuterAlt(localctx, 1); this.state = 152; @@ -639,7 +553,7 @@ export default class ModelParser extends antlr4.Parser { this.state = 118; this._errHandler.sync(this); _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << ModelParser.T__3) | (1 << ModelParser.T__12) | (1 << ModelParser.Plus) | (1 << ModelParser.Minus))) !== 0) || ((((_la - 33)) & ~0x1f) == 0 && ((1 << (_la - 33)) & ((1 << (ModelParser.Id - 33)) | (1 << (ModelParser.Const - 33)) | (1 << (ModelParser.Keyword - 33)))) !== 0)) { + if((((_la) & ~0x1f) === 0 && ((1 << _la) & 25174032) !== 0) || ((((_la - 33)) & ~0x1f) === 0 && ((1 << (_la - 33)) & 19) !== 0)) { this.state = 117; this.exprList(); } @@ -657,7 +571,7 @@ export default class ModelParser extends antlr4.Parser { this.state = 126; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===ModelParser.T__8) { + if(_la===9) { this.state = 122; this.match(ModelParser.T__8); this.state = 123; @@ -798,7 +712,7 @@ export default class ModelParser extends antlr4.Parser { this.state = 158; localctx.op = this._input.LT(1); _la = this._input.LA(1); - if(!(_la===ModelParser.Star || _la===ModelParser.Div)) { + if(!(_la===21 || _la===22)) { localctx.op = this._errHandler.recoverInline(this); } else { @@ -819,7 +733,7 @@ export default class ModelParser extends antlr4.Parser { this.state = 161; localctx.op = this._input.LT(1); _la = this._input.LA(1); - if(!(_la===ModelParser.Plus || _la===ModelParser.Minus)) { + if(!(_la===23 || _la===24)) { localctx.op = this._errHandler.recoverInline(this); } else { @@ -840,7 +754,7 @@ export default class ModelParser extends antlr4.Parser { this.state = 164; localctx.op = this._input.LT(1); _la = this._input.LA(1); - if(!((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << ModelParser.Less) | (1 << ModelParser.LessEqual) | (1 << ModelParser.Greater) | (1 << ModelParser.GreaterEqual))) !== 0))) { + if(!((((_la) & ~0x1f) === 0 && ((1 << _la) & 503316480) !== 0))) { localctx.op = this._errHandler.recoverInline(this); } else { @@ -861,7 +775,7 @@ export default class ModelParser extends antlr4.Parser { this.state = 167; localctx.op = this._input.LT(1); _la = this._input.LA(1); - if(!(_la===ModelParser.Equal || _la===ModelParser.NotEqual)) { + if(!(_la===29 || _la===31)) { localctx.op = this._errHandler.recoverInline(this); } else { @@ -924,7 +838,7 @@ export default class ModelParser extends antlr4.Parser { exprList() { let localctx = new ExprListContext(this, this._ctx, this.state); this.enterRule(localctx, 16, ModelParser.RULE_exprList); - var _la = 0; // Token type + var _la = 0; try { this.enterOuterAlt(localctx, 1); this.state = 180; @@ -932,7 +846,7 @@ export default class ModelParser extends antlr4.Parser { this.state = 185; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===ModelParser.T__6) { + while(_la===7) { this.state = 181; this.match(ModelParser.T__6); this.state = 182; @@ -960,7 +874,7 @@ export default class ModelParser extends antlr4.Parser { subscriptList() { let localctx = new SubscriptListContext(this, this._ctx, this.state); this.enterRule(localctx, 18, ModelParser.RULE_subscriptList); - var _la = 0; // Token type + var _la = 0; try { this.enterOuterAlt(localctx, 1); this.state = 188; @@ -968,7 +882,7 @@ export default class ModelParser extends antlr4.Parser { this.state = 193; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===ModelParser.T__6) { + while(_la===7) { this.state = 189; this.match(ModelParser.T__6); this.state = 190; @@ -996,7 +910,7 @@ export default class ModelParser extends antlr4.Parser { lookup() { let localctx = new LookupContext(this, this._ctx, this.state); this.enterRule(localctx, 20, ModelParser.RULE_lookup); - var _la = 0; // Token type + var _la = 0; try { this.enterOuterAlt(localctx, 1); this.state = 196; @@ -1004,7 +918,7 @@ export default class ModelParser extends antlr4.Parser { this.state = 198; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===ModelParser.T__8) { + if(_la===9) { this.state = 197; this.lookupRange(); } @@ -1065,7 +979,7 @@ export default class ModelParser extends antlr4.Parser { lookupPointList() { let localctx = new LookupPointListContext(this, this._ctx, this.state); this.enterRule(localctx, 24, ModelParser.RULE_lookupPointList); - var _la = 0; // Token type + var _la = 0; try { this.enterOuterAlt(localctx, 1); this.state = 210; @@ -1073,7 +987,7 @@ export default class ModelParser extends antlr4.Parser { this.state = 215; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===ModelParser.T__6) { + while(_la===7) { this.state = 211; this.match(ModelParser.T__6); this.state = 212; @@ -1132,7 +1046,7 @@ export default class ModelParser extends antlr4.Parser { constList() { let localctx = new ConstListContext(this, this._ctx, this.state); this.enterRule(localctx, 28, ModelParser.RULE_constList); - var _la = 0; // Token type + var _la = 0; try { this.enterOuterAlt(localctx, 1); this.state = 244; @@ -1153,7 +1067,7 @@ export default class ModelParser extends antlr4.Parser { this.state = 229; this._errHandler.sync(this); _la = this._input.LA(1); - } while(_la===ModelParser.T__6); + } while(_la===7); break; case 2: @@ -1174,13 +1088,13 @@ export default class ModelParser extends antlr4.Parser { this.state = 236; this._errHandler.sync(this); _la = this._input.LA(1); - } while(_la===ModelParser.T__6); + } while(_la===7); this.state = 238; this.match(ModelParser.T__16); this.state = 242; this._errHandler.sync(this); _la = this._input.LA(1); - } while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << ModelParser.T__3) | (1 << ModelParser.T__12) | (1 << ModelParser.Plus) | (1 << ModelParser.Minus))) !== 0) || ((((_la - 33)) & ~0x1f) == 0 && ((1 << (_la - 33)) & ((1 << (ModelParser.Id - 33)) | (1 << (ModelParser.Const - 33)) | (1 << (ModelParser.Keyword - 33)))) !== 0)); + } while((((_la) & ~0x1f) === 0 && ((1 << _la) & 25174032) !== 0) || ((((_la - 33)) & ~0x1f) === 0 && ((1 << (_la - 33)) & 19) !== 0)); break; } @@ -1680,7 +1594,7 @@ class MulDivContext extends ExprContext { constructor(parser, ctx) { super(parser); - this.op = null; // Token; + this.op = null;; super.copyFrom(ctx); } @@ -1720,7 +1634,7 @@ class AddSubContext extends ExprContext { constructor(parser, ctx) { super(parser); - this.op = null; // Token; + this.op = null;; super.copyFrom(ctx); } @@ -1836,7 +1750,7 @@ class RelationalContext extends ExprContext { constructor(parser, ctx) { super(parser); - this.op = null; // Token; + this.op = null;; super.copyFrom(ctx); } @@ -2027,7 +1941,7 @@ class EqualityContext extends ExprContext { constructor(parser, ctx) { super(parser); - this.op = null; // Token; + this.op = null;; super.copyFrom(ctx); } diff --git a/parser/ModelVisitor.js b/parser/ModelVisitor.js index 6040eb7..b0accf0 100644 --- a/parser/ModelVisitor.js +++ b/parser/ModelVisitor.js @@ -1,4 +1,4 @@ -// Generated from grammar/Model.g4 by ANTLR 4.9.2 +// Generated from grammar/Model.g4 by ANTLR 4.12.0 // jshint ignore: start import antlr4 from 'antlr4'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..41981c0 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,74 @@ +lockfileVersion: '6.0' + +dependencies: + antlr4: + specifier: 4.12.0 + version: 4.12.0 + +devDependencies: + bufx: + specifier: ^1.0.5 + version: 1.0.5 + get-stdin: + specifier: ^6.0.0 + version: 6.0.0 + +packages: + + /antlr4@4.12.0: + resolution: {integrity: sha512-23iB5IzXJZRZeK9TigzUyrNc9pSmNqAerJRBcNq1ETrmttMWRgaYZzC561IgEO3ygKsDJTYDTozABXa4b/fTQQ==} + engines: {node: '>=16'} + dev: false + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /bufx@1.0.5: + resolution: {integrity: sha512-AzOd+vXDVhRAIR4k0ZopOLef+XjqLU6h3buAqVXTUrZ5IYWmoPqLtIoITeye174Uq5qiDS+83Rx9U9ItXgNE+A==} + dependencies: + js-yaml: 3.14.1 + prettier: 2.8.8 + ramda: 0.27.2 + strip-bom: 4.0.0 + dev: true + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /get-stdin@6.0.0: + resolution: {integrity: sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==} + engines: {node: '>=4'} + dev: true + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: true + + /ramda@0.27.2: + resolution: {integrity: sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==} + dev: true + + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true + + /strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + dev: true diff --git a/tools/a4 b/tools/a4 index d3ab61d..5fd9328 100755 --- a/tools/a4 +++ b/tools/a4 @@ -1,6 +1,6 @@ #!/usr/bin/env sh TOOLS_DIR=$(pwd) -ANTLR_VERSION=4.9.2 +ANTLR_VERSION=4.12.0 antlr4="java -jar /usr/local/lib/antlr-$ANTLR_VERSION-complete.jar" grun='java org.antlr.v4.gui.TestRig' help() {