├── .eslintrc.js
├── .gitignore
├── .vscode
├── extensions.json
├── launch.json
├── settings.json
└── tasks.json
├── .vscodeignore
├── Gen.py
├── LICENSE
├── README.md
├── language-configuration.json
├── package-lock.json
├── package.json
├── sample
├── .vscode
│ └── settings.json
├── sample.diana
└── sigs.diana.json
├── src
├── DianaScript.g4
├── DianaScript.interp
├── DianaScript.tokens
├── DianaScriptLexer.interp
├── DianaScriptLexer.tokens
├── DianaScriptLexer.ts
├── completion.ts
├── extension.ts
└── hightlight.ts
├── static
├── icon.png
└── static.png
└── tsconfig.json
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | /**@type {import('eslint').Linter.Config} */
2 | // eslint-disable-next-line no-undef
3 | module.exports = {
4 | root: true,
5 | parser: '@typescript-eslint/parser',
6 | plugins: [
7 | '@typescript-eslint',
8 | ],
9 | extends: [
10 | 'eslint:recommended',
11 | 'plugin:@typescript-eslint/recommended',
12 | ],
13 | rules: {
14 | 'semi': [2, "always"],
15 | '@typescript-eslint/no-unused-vars': 0,
16 | '@typescript-eslint/no-explicit-any': 0,
17 | '@typescript-eslint/explicit-module-boundary-types': 0,
18 | '@typescript-eslint/no-non-null-assertion': 0,
19 | "no-constant-condition": 0
20 | }
21 | };
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | out
2 | node_modules
3 | .vscode-test/
4 | *.vsix
5 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
3 | // Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
4 |
5 | // List of extensions which should be recommended for users of this workspace.
6 | "recommendations": [
7 | "dbaeumer.vscode-eslint"
8 | ]
9 | }
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | // A launch configuration that compiles the extension and then opens it inside a new window
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | {
6 | "version": "0.2.0",
7 | "configurations": [{
8 | "name": "Run Extension",
9 | "type": "extensionHost",
10 | "request": "launch",
11 | "runtimeExecutable": "${execPath}",
12 | "args": [
13 | "--extensionDevelopmentPath=${workspaceFolder}",
14 | "${workspaceFolder}/sample",
15 | ],
16 | "outFiles": [
17 | "${workspaceFolder}/out/**/*.js"
18 | ],
19 | "preLaunchTask": "npm: watch"
20 | },
21 | {
22 | "name": "Run Extension Tests",
23 | "type": "extensionHost",
24 | "request": "launch",
25 | "runtimeExecutable": "${execPath}",
26 | "args": [
27 | "--extensionDevelopmentPath=${workspaceFolder}",
28 | "--extensionTestsPath=${workspaceFolder}/out/test"
29 | ],
30 | "outFiles": [
31 | "${workspaceFolder}/out/test/**/*.js"
32 | ],
33 | "preLaunchTask": "npm: watch"
34 | }
35 | ]
36 | }
37 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "editor.insertSpaces": false
3 | }
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | // See https://go.microsoft.com/fwlink/?LinkId=733558
2 | // for the documentation about the tasks.json format
3 | {
4 | "version": "2.0.0",
5 | "tasks": [
6 | {
7 | "type": "npm",
8 | "script": "watch",
9 | "problemMatcher": "$tsc-watch",
10 | "isBackground": true,
11 | "presentation": {
12 | "reveal": "never"
13 | },
14 | "group": {
15 | "kind": "build",
16 | "isDefault": true
17 | }
18 | }
19 | ]
20 | }
--------------------------------------------------------------------------------
/.vscodeignore:
--------------------------------------------------------------------------------
1 | .vscode/**
2 | .vscode-test/**
3 | out/test/**
4 | out/**/*.map
5 | src/**
6 | static/static.png
7 | .gitignore
8 | tsconfig.json
9 | vsc-extension-quickstart.md
10 | tslint.json
--------------------------------------------------------------------------------
/Gen.py:
--------------------------------------------------------------------------------
1 | from pathlib import Path
2 | from jinja2 import Environment
3 | from jinja2.loaders import BaseLoader
4 | from pathlib import Path
5 | import requests
6 | import json
7 |
8 | req = requests.get(r"https://raw.githubusercontent.com/thautwarm/DianaScript-JIT/master/sigs-for-builtin-modules.json")
9 | if req.status_code != 200:
10 | raise IOError("cannot read json spec from remote repo")
11 |
12 | SPEC = json.loads(req.text)
13 |
14 | env = Environment(
15 | loader = BaseLoader(),
16 | extensions=['jinja2.ext.do'],
17 | trim_blocks=True,
18 | lstrip_blocks=True
19 | )
20 |
21 | def find_paths(p: Path):
22 | if not p.is_dir():
23 | if p.suffix == ".in":
24 | yield p
25 | else:
26 | for i in p.iterdir():
27 | if i == p:
28 | continue
29 | yield from find_paths(i)
30 |
31 |
32 | py_map = {
33 | 'Tuple': 'tuple',
34 | 'string': 'str'
35 | }
36 |
37 |
38 |
39 | env.filters['each'] = lambda f: lambda seq: map(f, seq)
40 |
41 | def assert_(x):
42 | assert x
43 |
44 | import builtins
45 |
46 | namespace = {**builtins.__dict__, **globals()}
47 | for FROM, TO in [
48 | (path, path.with_suffix("")) for path in find_paths(Path(__file__).parent.parent)
49 | ]:
50 | try:
51 | template = env.from_string(FROM.open(encoding='utf8').read())
52 | s = template.render(**namespace)
53 | TO.open('w', encoding='utf8').write(s)
54 | print(TO, "written")
55 | except:
56 | print("error ocurred at", FROM)
57 | raise
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 |
2 | The MIT License (MIT)
3 | Copyright (c) 2021 thautwarm
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
19 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
20 | OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
21 | OR OTHER DEALINGS IN THE SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | # VSCode-Diana
6 |
7 | VSCode extension for [DianaScript](https://github.com/thautwarm/DianaScript-JIT); syntax highlighting support is generated by [Typed-BNF](https://github.com/thautwarm/typed-bnf).
8 |
9 | You can create a [`sigs.diana.json`](https://raw.githubusercontent.com/thautwarm/vscode-diana/master/sample/sigs.diana.json) in the root directory, to define auto-completion for your own modules:
10 |
11 | ```javascript
12 | [ // ...
13 | {
14 | "module": "MyModule",
15 | "doc": "...",
16 | "methods": [
17 | {
18 | "name": "my_method",
19 | "type": "my_method : (Int) -> Int", // optional
20 | "doc" : "an int-to-int function" // optional
21 | },
22 | // ...
23 | ]
24 | },
25 | // ...
26 | ]
27 | ```
28 |
--------------------------------------------------------------------------------
/language-configuration.json:
--------------------------------------------------------------------------------
1 | {
2 | "comments": {
3 | "lineComment": "#"
4 | },
5 | "brackets": [
6 | ["{", "}"],
7 | ["[", "]"],
8 | ["(", ")"]
9 | ],
10 | "surroundingPairs": [
11 | ["{", "}"],
12 | ["[", "]"],
13 | ["(", ")"],
14 | ["'", "'"],
15 | ["\"", "\""],
16 | ["`", "`"]
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vscode-diana",
3 | "version": "0.0.1",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@babel/code-frame": {
8 | "version": "7.12.11",
9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
10 | "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
11 | "dev": true,
12 | "requires": {
13 | "@babel/highlight": "^7.10.4"
14 | }
15 | },
16 | "@babel/helper-validator-identifier": {
17 | "version": "7.12.11",
18 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz",
19 | "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==",
20 | "dev": true
21 | },
22 | "@babel/highlight": {
23 | "version": "7.13.8",
24 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.8.tgz",
25 | "integrity": "sha512-4vrIhfJyfNf+lCtXC2ck1rKSzDwciqF7IWFhXXrSOUC2O5DrVp+w4c6ed4AllTxhTkUP5x2tYj41VaxdVMMRDw==",
26 | "dev": true,
27 | "requires": {
28 | "@babel/helper-validator-identifier": "^7.12.11",
29 | "chalk": "^2.0.0",
30 | "js-tokens": "^4.0.0"
31 | },
32 | "dependencies": {
33 | "chalk": {
34 | "version": "2.4.2",
35 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
36 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
37 | "dev": true,
38 | "requires": {
39 | "ansi-styles": "^3.2.1",
40 | "escape-string-regexp": "^1.0.5",
41 | "supports-color": "^5.3.0"
42 | }
43 | }
44 | }
45 | },
46 | "@eslint/eslintrc": {
47 | "version": "0.4.0",
48 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz",
49 | "integrity": "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==",
50 | "dev": true,
51 | "requires": {
52 | "ajv": "^6.12.4",
53 | "debug": "^4.1.1",
54 | "espree": "^7.3.0",
55 | "globals": "^12.1.0",
56 | "ignore": "^4.0.6",
57 | "import-fresh": "^3.2.1",
58 | "js-yaml": "^3.13.1",
59 | "minimatch": "^3.0.4",
60 | "strip-json-comments": "^3.1.1"
61 | }
62 | },
63 | "@nodelib/fs.scandir": {
64 | "version": "2.1.4",
65 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz",
66 | "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==",
67 | "dev": true,
68 | "requires": {
69 | "@nodelib/fs.stat": "2.0.4",
70 | "run-parallel": "^1.1.9"
71 | }
72 | },
73 | "@nodelib/fs.stat": {
74 | "version": "2.0.4",
75 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz",
76 | "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==",
77 | "dev": true
78 | },
79 | "@nodelib/fs.walk": {
80 | "version": "1.2.6",
81 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz",
82 | "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==",
83 | "dev": true,
84 | "requires": {
85 | "@nodelib/fs.scandir": "2.1.4",
86 | "fastq": "^1.6.0"
87 | }
88 | },
89 | "@types/json-schema": {
90 | "version": "7.0.7",
91 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz",
92 | "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==",
93 | "dev": true
94 | },
95 | "@types/node": {
96 | "version": "12.12.37",
97 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.37.tgz",
98 | "integrity": "sha512-4mXKoDptrXAwZErQHrLzpe0FN/0Wmf5JRniSVIdwUrtDf9wnmEV1teCNLBo/TwuXhkK/bVegoEn/wmb+x0AuPg==",
99 | "dev": true
100 | },
101 | "@types/vscode": {
102 | "version": "1.45.1",
103 | "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.45.1.tgz",
104 | "integrity": "sha512-0NO9qrrEJBO8FsqHCrFMgR2suKnwCsKBWvRSb2OzH5gs4i3QO5AhEMQYrSzDbU/wLPt7N617/rN9lPY213gmwg==",
105 | "dev": true
106 | },
107 | "@typescript-eslint/eslint-plugin": {
108 | "version": "4.16.1",
109 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.16.1.tgz",
110 | "integrity": "sha512-SK777klBdlkUZpZLC1mPvyOWk9yAFCWmug13eAjVQ4/Q1LATE/NbcQL1xDHkptQkZOLnPmLUA1Y54m8dqYwnoQ==",
111 | "dev": true,
112 | "requires": {
113 | "@typescript-eslint/experimental-utils": "4.16.1",
114 | "@typescript-eslint/scope-manager": "4.16.1",
115 | "debug": "^4.1.1",
116 | "functional-red-black-tree": "^1.0.1",
117 | "lodash": "^4.17.15",
118 | "regexpp": "^3.0.0",
119 | "semver": "^7.3.2",
120 | "tsutils": "^3.17.1"
121 | }
122 | },
123 | "@typescript-eslint/experimental-utils": {
124 | "version": "4.16.1",
125 | "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.16.1.tgz",
126 | "integrity": "sha512-0Hm3LSlMYFK17jO4iY3un1Ve9x1zLNn4EM50Lia+0EV99NdbK+cn0er7HC7IvBA23mBg3P+8dUkMXy4leL33UQ==",
127 | "dev": true,
128 | "requires": {
129 | "@types/json-schema": "^7.0.3",
130 | "@typescript-eslint/scope-manager": "4.16.1",
131 | "@typescript-eslint/types": "4.16.1",
132 | "@typescript-eslint/typescript-estree": "4.16.1",
133 | "eslint-scope": "^5.0.0",
134 | "eslint-utils": "^2.0.0"
135 | }
136 | },
137 | "@typescript-eslint/parser": {
138 | "version": "4.16.1",
139 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.16.1.tgz",
140 | "integrity": "sha512-/c0LEZcDL5y8RyI1zLcmZMvJrsR6SM1uetskFkoh3dvqDKVXPsXI+wFB/CbVw7WkEyyTKobC1mUNp/5y6gRvXg==",
141 | "dev": true,
142 | "requires": {
143 | "@typescript-eslint/scope-manager": "4.16.1",
144 | "@typescript-eslint/types": "4.16.1",
145 | "@typescript-eslint/typescript-estree": "4.16.1",
146 | "debug": "^4.1.1"
147 | }
148 | },
149 | "@typescript-eslint/scope-manager": {
150 | "version": "4.16.1",
151 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.16.1.tgz",
152 | "integrity": "sha512-6IlZv9JaurqV0jkEg923cV49aAn8V6+1H1DRfhRcvZUrptQ+UtSKHb5kwTayzOYTJJ/RsYZdcvhOEKiBLyc0Cw==",
153 | "dev": true,
154 | "requires": {
155 | "@typescript-eslint/types": "4.16.1",
156 | "@typescript-eslint/visitor-keys": "4.16.1"
157 | }
158 | },
159 | "@typescript-eslint/types": {
160 | "version": "4.16.1",
161 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.16.1.tgz",
162 | "integrity": "sha512-nnKqBwMgRlhzmJQF8tnFDZWfunXmJyuXj55xc8Kbfup4PbkzdoDXZvzN8//EiKR27J6vUSU8j4t37yUuYPiLqA==",
163 | "dev": true
164 | },
165 | "@typescript-eslint/typescript-estree": {
166 | "version": "4.16.1",
167 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.16.1.tgz",
168 | "integrity": "sha512-m8I/DKHa8YbeHt31T+UGd/l8Kwr0XCTCZL3H4HMvvLCT7HU9V7yYdinTOv1gf/zfqNeDcCgaFH2BMsS8x6NvJg==",
169 | "dev": true,
170 | "requires": {
171 | "@typescript-eslint/types": "4.16.1",
172 | "@typescript-eslint/visitor-keys": "4.16.1",
173 | "debug": "^4.1.1",
174 | "globby": "^11.0.1",
175 | "is-glob": "^4.0.1",
176 | "semver": "^7.3.2",
177 | "tsutils": "^3.17.1"
178 | }
179 | },
180 | "@typescript-eslint/visitor-keys": {
181 | "version": "4.16.1",
182 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.16.1.tgz",
183 | "integrity": "sha512-s/aIP1XcMkEqCNcPQtl60ogUYjSM8FU2mq1O7y5cFf3Xcob1z1iXWNB6cC43Op+NGRTFgGolri6s8z/efA9i1w==",
184 | "dev": true,
185 | "requires": {
186 | "@typescript-eslint/types": "4.16.1",
187 | "eslint-visitor-keys": "^2.0.0"
188 | },
189 | "dependencies": {
190 | "eslint-visitor-keys": {
191 | "version": "2.0.0",
192 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz",
193 | "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==",
194 | "dev": true
195 | }
196 | }
197 | },
198 | "acorn": {
199 | "version": "7.4.1",
200 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
201 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
202 | "dev": true
203 | },
204 | "acorn-jsx": {
205 | "version": "5.3.1",
206 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz",
207 | "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==",
208 | "dev": true
209 | },
210 | "ajv": {
211 | "version": "6.12.6",
212 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
213 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
214 | "dev": true,
215 | "requires": {
216 | "fast-deep-equal": "^3.1.1",
217 | "fast-json-stable-stringify": "^2.0.0",
218 | "json-schema-traverse": "^0.4.1",
219 | "uri-js": "^4.2.2"
220 | }
221 | },
222 | "ansi-colors": {
223 | "version": "4.1.1",
224 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
225 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
226 | "dev": true
227 | },
228 | "ansi-regex": {
229 | "version": "5.0.0",
230 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
231 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
232 | "dev": true
233 | },
234 | "ansi-styles": {
235 | "version": "3.2.1",
236 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
237 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
238 | "dev": true,
239 | "requires": {
240 | "color-convert": "^1.9.0"
241 | }
242 | },
243 | "antlr4ts": {
244 | "version": "0.5.0-alpha.4",
245 | "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz",
246 | "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ=="
247 | },
248 | "antlr4ts-cli": {
249 | "version": "0.5.0-alpha.4",
250 | "resolved": "https://registry.npmjs.org/antlr4ts-cli/-/antlr4ts-cli-0.5.0-alpha.4.tgz",
251 | "integrity": "sha512-lVPVBTA2CVHRYILSKilL6Jd4hAumhSZZWA7UbQNQrmaSSj7dPmmYaN4bOmZG79cOy0lS00i4LY68JZZjZMWVrw==",
252 | "dev": true
253 | },
254 | "argparse": {
255 | "version": "1.0.10",
256 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
257 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
258 | "dev": true,
259 | "requires": {
260 | "sprintf-js": "~1.0.2"
261 | }
262 | },
263 | "array-union": {
264 | "version": "2.1.0",
265 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
266 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
267 | "dev": true
268 | },
269 | "astral-regex": {
270 | "version": "2.0.0",
271 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
272 | "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
273 | "dev": true
274 | },
275 | "balanced-match": {
276 | "version": "1.0.0",
277 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
278 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
279 | "dev": true
280 | },
281 | "brace-expansion": {
282 | "version": "1.1.11",
283 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
284 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
285 | "dev": true,
286 | "requires": {
287 | "balanced-match": "^1.0.0",
288 | "concat-map": "0.0.1"
289 | }
290 | },
291 | "braces": {
292 | "version": "3.0.2",
293 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
294 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
295 | "dev": true,
296 | "requires": {
297 | "fill-range": "^7.0.1"
298 | }
299 | },
300 | "callsites": {
301 | "version": "3.1.0",
302 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
303 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
304 | "dev": true
305 | },
306 | "chalk": {
307 | "version": "4.1.0",
308 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
309 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
310 | "dev": true,
311 | "requires": {
312 | "ansi-styles": "^4.1.0",
313 | "supports-color": "^7.1.0"
314 | },
315 | "dependencies": {
316 | "ansi-styles": {
317 | "version": "4.3.0",
318 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
319 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
320 | "dev": true,
321 | "requires": {
322 | "color-convert": "^2.0.1"
323 | }
324 | },
325 | "color-convert": {
326 | "version": "2.0.1",
327 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
328 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
329 | "dev": true,
330 | "requires": {
331 | "color-name": "~1.1.4"
332 | }
333 | },
334 | "color-name": {
335 | "version": "1.1.4",
336 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
337 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
338 | "dev": true
339 | },
340 | "has-flag": {
341 | "version": "4.0.0",
342 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
343 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
344 | "dev": true
345 | },
346 | "supports-color": {
347 | "version": "7.2.0",
348 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
349 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
350 | "dev": true,
351 | "requires": {
352 | "has-flag": "^4.0.0"
353 | }
354 | }
355 | }
356 | },
357 | "color-convert": {
358 | "version": "1.9.3",
359 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
360 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
361 | "dev": true,
362 | "requires": {
363 | "color-name": "1.1.3"
364 | }
365 | },
366 | "color-name": {
367 | "version": "1.1.3",
368 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
369 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
370 | "dev": true
371 | },
372 | "concat-map": {
373 | "version": "0.0.1",
374 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
375 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
376 | "dev": true
377 | },
378 | "cross-spawn": {
379 | "version": "7.0.3",
380 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
381 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
382 | "dev": true,
383 | "requires": {
384 | "path-key": "^3.1.0",
385 | "shebang-command": "^2.0.0",
386 | "which": "^2.0.1"
387 | }
388 | },
389 | "debug": {
390 | "version": "4.1.1",
391 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
392 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
393 | "dev": true,
394 | "requires": {
395 | "ms": "^2.1.1"
396 | }
397 | },
398 | "deep-is": {
399 | "version": "0.1.3",
400 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
401 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
402 | "dev": true
403 | },
404 | "dir-glob": {
405 | "version": "3.0.1",
406 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
407 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
408 | "dev": true,
409 | "requires": {
410 | "path-type": "^4.0.0"
411 | }
412 | },
413 | "doctrine": {
414 | "version": "3.0.0",
415 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
416 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
417 | "dev": true,
418 | "requires": {
419 | "esutils": "^2.0.2"
420 | }
421 | },
422 | "emoji-regex": {
423 | "version": "8.0.0",
424 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
425 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
426 | "dev": true
427 | },
428 | "enquirer": {
429 | "version": "2.3.6",
430 | "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
431 | "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
432 | "dev": true,
433 | "requires": {
434 | "ansi-colors": "^4.1.1"
435 | }
436 | },
437 | "escape-string-regexp": {
438 | "version": "1.0.5",
439 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
440 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
441 | "dev": true
442 | },
443 | "eslint": {
444 | "version": "7.21.0",
445 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.21.0.tgz",
446 | "integrity": "sha512-W2aJbXpMNofUp0ztQaF40fveSsJBjlSCSWpy//gzfTvwC+USs/nceBrKmlJOiM8r1bLwP2EuYkCqArn/6QTIgg==",
447 | "dev": true,
448 | "requires": {
449 | "@babel/code-frame": "7.12.11",
450 | "@eslint/eslintrc": "^0.4.0",
451 | "ajv": "^6.10.0",
452 | "chalk": "^4.0.0",
453 | "cross-spawn": "^7.0.2",
454 | "debug": "^4.0.1",
455 | "doctrine": "^3.0.0",
456 | "enquirer": "^2.3.5",
457 | "eslint-scope": "^5.1.1",
458 | "eslint-utils": "^2.1.0",
459 | "eslint-visitor-keys": "^2.0.0",
460 | "espree": "^7.3.1",
461 | "esquery": "^1.4.0",
462 | "esutils": "^2.0.2",
463 | "file-entry-cache": "^6.0.1",
464 | "functional-red-black-tree": "^1.0.1",
465 | "glob-parent": "^5.0.0",
466 | "globals": "^12.1.0",
467 | "ignore": "^4.0.6",
468 | "import-fresh": "^3.0.0",
469 | "imurmurhash": "^0.1.4",
470 | "is-glob": "^4.0.0",
471 | "js-yaml": "^3.13.1",
472 | "json-stable-stringify-without-jsonify": "^1.0.1",
473 | "levn": "^0.4.1",
474 | "lodash": "^4.17.20",
475 | "minimatch": "^3.0.4",
476 | "natural-compare": "^1.4.0",
477 | "optionator": "^0.9.1",
478 | "progress": "^2.0.0",
479 | "regexpp": "^3.1.0",
480 | "semver": "^7.2.1",
481 | "strip-ansi": "^6.0.0",
482 | "strip-json-comments": "^3.1.0",
483 | "table": "^6.0.4",
484 | "text-table": "^0.2.0",
485 | "v8-compile-cache": "^2.0.3"
486 | },
487 | "dependencies": {
488 | "eslint-scope": {
489 | "version": "5.1.1",
490 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
491 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
492 | "dev": true,
493 | "requires": {
494 | "esrecurse": "^4.3.0",
495 | "estraverse": "^4.1.1"
496 | }
497 | },
498 | "eslint-utils": {
499 | "version": "2.1.0",
500 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
501 | "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
502 | "dev": true,
503 | "requires": {
504 | "eslint-visitor-keys": "^1.1.0"
505 | },
506 | "dependencies": {
507 | "eslint-visitor-keys": {
508 | "version": "1.3.0",
509 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
510 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
511 | "dev": true
512 | }
513 | }
514 | },
515 | "eslint-visitor-keys": {
516 | "version": "2.0.0",
517 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz",
518 | "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==",
519 | "dev": true
520 | },
521 | "esrecurse": {
522 | "version": "4.3.0",
523 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
524 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
525 | "dev": true,
526 | "requires": {
527 | "estraverse": "^5.2.0"
528 | },
529 | "dependencies": {
530 | "estraverse": {
531 | "version": "5.2.0",
532 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
533 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
534 | "dev": true
535 | }
536 | }
537 | }
538 | }
539 | },
540 | "eslint-scope": {
541 | "version": "5.0.0",
542 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz",
543 | "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==",
544 | "dev": true,
545 | "requires": {
546 | "esrecurse": "^4.1.0",
547 | "estraverse": "^4.1.1"
548 | }
549 | },
550 | "eslint-utils": {
551 | "version": "2.0.0",
552 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz",
553 | "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==",
554 | "dev": true,
555 | "requires": {
556 | "eslint-visitor-keys": "^1.1.0"
557 | }
558 | },
559 | "eslint-visitor-keys": {
560 | "version": "1.1.0",
561 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
562 | "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
563 | "dev": true
564 | },
565 | "espree": {
566 | "version": "7.3.1",
567 | "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
568 | "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
569 | "dev": true,
570 | "requires": {
571 | "acorn": "^7.4.0",
572 | "acorn-jsx": "^5.3.1",
573 | "eslint-visitor-keys": "^1.3.0"
574 | },
575 | "dependencies": {
576 | "eslint-visitor-keys": {
577 | "version": "1.3.0",
578 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
579 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
580 | "dev": true
581 | }
582 | }
583 | },
584 | "esprima": {
585 | "version": "4.0.1",
586 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
587 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
588 | "dev": true
589 | },
590 | "esquery": {
591 | "version": "1.4.0",
592 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
593 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
594 | "dev": true,
595 | "requires": {
596 | "estraverse": "^5.1.0"
597 | },
598 | "dependencies": {
599 | "estraverse": {
600 | "version": "5.2.0",
601 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
602 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
603 | "dev": true
604 | }
605 | }
606 | },
607 | "esrecurse": {
608 | "version": "4.2.1",
609 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
610 | "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
611 | "dev": true,
612 | "requires": {
613 | "estraverse": "^4.1.0"
614 | }
615 | },
616 | "estraverse": {
617 | "version": "4.3.0",
618 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
619 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
620 | "dev": true
621 | },
622 | "esutils": {
623 | "version": "2.0.3",
624 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
625 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
626 | "dev": true
627 | },
628 | "fast-deep-equal": {
629 | "version": "3.1.3",
630 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
631 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
632 | "dev": true
633 | },
634 | "fast-glob": {
635 | "version": "3.2.5",
636 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz",
637 | "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==",
638 | "dev": true,
639 | "requires": {
640 | "@nodelib/fs.stat": "^2.0.2",
641 | "@nodelib/fs.walk": "^1.2.3",
642 | "glob-parent": "^5.1.0",
643 | "merge2": "^1.3.0",
644 | "micromatch": "^4.0.2",
645 | "picomatch": "^2.2.1"
646 | }
647 | },
648 | "fast-json-stable-stringify": {
649 | "version": "2.1.0",
650 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
651 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
652 | "dev": true
653 | },
654 | "fast-levenshtein": {
655 | "version": "2.0.6",
656 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
657 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
658 | "dev": true
659 | },
660 | "fastq": {
661 | "version": "1.11.0",
662 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz",
663 | "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==",
664 | "dev": true,
665 | "requires": {
666 | "reusify": "^1.0.4"
667 | }
668 | },
669 | "file-entry-cache": {
670 | "version": "6.0.1",
671 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
672 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
673 | "dev": true,
674 | "requires": {
675 | "flat-cache": "^3.0.4"
676 | }
677 | },
678 | "fill-range": {
679 | "version": "7.0.1",
680 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
681 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
682 | "dev": true,
683 | "requires": {
684 | "to-regex-range": "^5.0.1"
685 | }
686 | },
687 | "flat-cache": {
688 | "version": "3.0.4",
689 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
690 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
691 | "dev": true,
692 | "requires": {
693 | "flatted": "^3.1.0",
694 | "rimraf": "^3.0.2"
695 | }
696 | },
697 | "flatted": {
698 | "version": "3.1.1",
699 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz",
700 | "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==",
701 | "dev": true
702 | },
703 | "fs.realpath": {
704 | "version": "1.0.0",
705 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
706 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
707 | "dev": true
708 | },
709 | "functional-red-black-tree": {
710 | "version": "1.0.1",
711 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
712 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
713 | "dev": true
714 | },
715 | "glob": {
716 | "version": "7.1.6",
717 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
718 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
719 | "dev": true,
720 | "requires": {
721 | "fs.realpath": "^1.0.0",
722 | "inflight": "^1.0.4",
723 | "inherits": "2",
724 | "minimatch": "^3.0.4",
725 | "once": "^1.3.0",
726 | "path-is-absolute": "^1.0.0"
727 | }
728 | },
729 | "glob-parent": {
730 | "version": "5.1.2",
731 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
732 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
733 | "dev": true,
734 | "requires": {
735 | "is-glob": "^4.0.1"
736 | }
737 | },
738 | "globals": {
739 | "version": "12.4.0",
740 | "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
741 | "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
742 | "dev": true,
743 | "requires": {
744 | "type-fest": "^0.8.1"
745 | }
746 | },
747 | "globby": {
748 | "version": "11.0.2",
749 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz",
750 | "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==",
751 | "dev": true,
752 | "requires": {
753 | "array-union": "^2.1.0",
754 | "dir-glob": "^3.0.1",
755 | "fast-glob": "^3.1.1",
756 | "ignore": "^5.1.4",
757 | "merge2": "^1.3.0",
758 | "slash": "^3.0.0"
759 | },
760 | "dependencies": {
761 | "ignore": {
762 | "version": "5.1.8",
763 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
764 | "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
765 | "dev": true
766 | }
767 | }
768 | },
769 | "has-flag": {
770 | "version": "3.0.0",
771 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
772 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
773 | "dev": true
774 | },
775 | "ignore": {
776 | "version": "4.0.6",
777 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
778 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
779 | "dev": true
780 | },
781 | "import-fresh": {
782 | "version": "3.3.0",
783 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
784 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
785 | "dev": true,
786 | "requires": {
787 | "parent-module": "^1.0.0",
788 | "resolve-from": "^4.0.0"
789 | }
790 | },
791 | "imurmurhash": {
792 | "version": "0.1.4",
793 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
794 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
795 | "dev": true
796 | },
797 | "inflight": {
798 | "version": "1.0.6",
799 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
800 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
801 | "dev": true,
802 | "requires": {
803 | "once": "^1.3.0",
804 | "wrappy": "1"
805 | }
806 | },
807 | "inherits": {
808 | "version": "2.0.4",
809 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
810 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
811 | "dev": true
812 | },
813 | "is-extglob": {
814 | "version": "2.1.1",
815 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
816 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
817 | "dev": true
818 | },
819 | "is-fullwidth-code-point": {
820 | "version": "3.0.0",
821 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
822 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
823 | "dev": true
824 | },
825 | "is-glob": {
826 | "version": "4.0.1",
827 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
828 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
829 | "dev": true,
830 | "requires": {
831 | "is-extglob": "^2.1.1"
832 | }
833 | },
834 | "is-number": {
835 | "version": "7.0.0",
836 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
837 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
838 | "dev": true
839 | },
840 | "isexe": {
841 | "version": "2.0.0",
842 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
843 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
844 | "dev": true
845 | },
846 | "js-tokens": {
847 | "version": "4.0.0",
848 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
849 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
850 | "dev": true
851 | },
852 | "js-yaml": {
853 | "version": "3.14.1",
854 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
855 | "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
856 | "dev": true,
857 | "requires": {
858 | "argparse": "^1.0.7",
859 | "esprima": "^4.0.0"
860 | }
861 | },
862 | "json-schema-traverse": {
863 | "version": "0.4.1",
864 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
865 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
866 | "dev": true
867 | },
868 | "json-stable-stringify-without-jsonify": {
869 | "version": "1.0.1",
870 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
871 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
872 | "dev": true
873 | },
874 | "levn": {
875 | "version": "0.4.1",
876 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
877 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
878 | "dev": true,
879 | "requires": {
880 | "prelude-ls": "^1.2.1",
881 | "type-check": "~0.4.0"
882 | }
883 | },
884 | "lodash": {
885 | "version": "4.17.21",
886 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
887 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
888 | "dev": true
889 | },
890 | "lru-cache": {
891 | "version": "6.0.0",
892 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
893 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
894 | "dev": true,
895 | "requires": {
896 | "yallist": "^4.0.0"
897 | }
898 | },
899 | "merge2": {
900 | "version": "1.4.1",
901 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
902 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
903 | "dev": true
904 | },
905 | "micromatch": {
906 | "version": "4.0.2",
907 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
908 | "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
909 | "dev": true,
910 | "requires": {
911 | "braces": "^3.0.1",
912 | "picomatch": "^2.0.5"
913 | }
914 | },
915 | "minimatch": {
916 | "version": "3.0.4",
917 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
918 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
919 | "dev": true,
920 | "requires": {
921 | "brace-expansion": "^1.1.7"
922 | }
923 | },
924 | "ms": {
925 | "version": "2.1.2",
926 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
927 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
928 | "dev": true
929 | },
930 | "natural-compare": {
931 | "version": "1.4.0",
932 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
933 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
934 | "dev": true
935 | },
936 | "once": {
937 | "version": "1.4.0",
938 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
939 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
940 | "dev": true,
941 | "requires": {
942 | "wrappy": "1"
943 | }
944 | },
945 | "optionator": {
946 | "version": "0.9.1",
947 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
948 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
949 | "dev": true,
950 | "requires": {
951 | "deep-is": "^0.1.3",
952 | "fast-levenshtein": "^2.0.6",
953 | "levn": "^0.4.1",
954 | "prelude-ls": "^1.2.1",
955 | "type-check": "^0.4.0",
956 | "word-wrap": "^1.2.3"
957 | }
958 | },
959 | "parent-module": {
960 | "version": "1.0.1",
961 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
962 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
963 | "dev": true,
964 | "requires": {
965 | "callsites": "^3.0.0"
966 | }
967 | },
968 | "path-is-absolute": {
969 | "version": "1.0.1",
970 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
971 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
972 | "dev": true
973 | },
974 | "path-key": {
975 | "version": "3.1.1",
976 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
977 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
978 | "dev": true
979 | },
980 | "path-type": {
981 | "version": "4.0.0",
982 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
983 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
984 | "dev": true
985 | },
986 | "picomatch": {
987 | "version": "2.2.2",
988 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
989 | "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
990 | "dev": true
991 | },
992 | "prelude-ls": {
993 | "version": "1.2.1",
994 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
995 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
996 | "dev": true
997 | },
998 | "progress": {
999 | "version": "2.0.3",
1000 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
1001 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
1002 | "dev": true
1003 | },
1004 | "punycode": {
1005 | "version": "2.1.1",
1006 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1007 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
1008 | "dev": true
1009 | },
1010 | "queue-microtask": {
1011 | "version": "1.2.2",
1012 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz",
1013 | "integrity": "sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==",
1014 | "dev": true
1015 | },
1016 | "regexpp": {
1017 | "version": "3.1.0",
1018 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz",
1019 | "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==",
1020 | "dev": true
1021 | },
1022 | "require-from-string": {
1023 | "version": "2.0.2",
1024 | "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
1025 | "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
1026 | "dev": true
1027 | },
1028 | "resolve-from": {
1029 | "version": "4.0.0",
1030 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
1031 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
1032 | "dev": true
1033 | },
1034 | "reusify": {
1035 | "version": "1.0.4",
1036 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
1037 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
1038 | "dev": true
1039 | },
1040 | "rimraf": {
1041 | "version": "3.0.2",
1042 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
1043 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
1044 | "dev": true,
1045 | "requires": {
1046 | "glob": "^7.1.3"
1047 | }
1048 | },
1049 | "run-parallel": {
1050 | "version": "1.2.0",
1051 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
1052 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
1053 | "dev": true,
1054 | "requires": {
1055 | "queue-microtask": "^1.2.2"
1056 | }
1057 | },
1058 | "semver": {
1059 | "version": "7.3.4",
1060 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz",
1061 | "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==",
1062 | "dev": true,
1063 | "requires": {
1064 | "lru-cache": "^6.0.0"
1065 | }
1066 | },
1067 | "shebang-command": {
1068 | "version": "2.0.0",
1069 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
1070 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
1071 | "dev": true,
1072 | "requires": {
1073 | "shebang-regex": "^3.0.0"
1074 | }
1075 | },
1076 | "shebang-regex": {
1077 | "version": "3.0.0",
1078 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
1079 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
1080 | "dev": true
1081 | },
1082 | "slash": {
1083 | "version": "3.0.0",
1084 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
1085 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
1086 | "dev": true
1087 | },
1088 | "slice-ansi": {
1089 | "version": "4.0.0",
1090 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
1091 | "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
1092 | "dev": true,
1093 | "requires": {
1094 | "ansi-styles": "^4.0.0",
1095 | "astral-regex": "^2.0.0",
1096 | "is-fullwidth-code-point": "^3.0.0"
1097 | },
1098 | "dependencies": {
1099 | "ansi-styles": {
1100 | "version": "4.3.0",
1101 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1102 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1103 | "dev": true,
1104 | "requires": {
1105 | "color-convert": "^2.0.1"
1106 | }
1107 | },
1108 | "color-convert": {
1109 | "version": "2.0.1",
1110 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1111 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1112 | "dev": true,
1113 | "requires": {
1114 | "color-name": "~1.1.4"
1115 | }
1116 | },
1117 | "color-name": {
1118 | "version": "1.1.4",
1119 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1120 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1121 | "dev": true
1122 | }
1123 | }
1124 | },
1125 | "sprintf-js": {
1126 | "version": "1.0.3",
1127 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
1128 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
1129 | "dev": true
1130 | },
1131 | "string-width": {
1132 | "version": "4.2.2",
1133 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
1134 | "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
1135 | "dev": true,
1136 | "requires": {
1137 | "emoji-regex": "^8.0.0",
1138 | "is-fullwidth-code-point": "^3.0.0",
1139 | "strip-ansi": "^6.0.0"
1140 | }
1141 | },
1142 | "strip-ansi": {
1143 | "version": "6.0.0",
1144 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
1145 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
1146 | "dev": true,
1147 | "requires": {
1148 | "ansi-regex": "^5.0.0"
1149 | }
1150 | },
1151 | "strip-json-comments": {
1152 | "version": "3.1.1",
1153 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
1154 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
1155 | "dev": true
1156 | },
1157 | "supports-color": {
1158 | "version": "5.5.0",
1159 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1160 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1161 | "dev": true,
1162 | "requires": {
1163 | "has-flag": "^3.0.0"
1164 | }
1165 | },
1166 | "table": {
1167 | "version": "6.0.7",
1168 | "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz",
1169 | "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==",
1170 | "dev": true,
1171 | "requires": {
1172 | "ajv": "^7.0.2",
1173 | "lodash": "^4.17.20",
1174 | "slice-ansi": "^4.0.0",
1175 | "string-width": "^4.2.0"
1176 | },
1177 | "dependencies": {
1178 | "ajv": {
1179 | "version": "7.1.1",
1180 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.1.1.tgz",
1181 | "integrity": "sha512-ga/aqDYnUy/o7vbsRTFhhTsNeXiYb5JWDIcRIeZfwRNCefwjNTVYCGdGSUrEmiu3yDK3vFvNbgJxvrQW4JXrYQ==",
1182 | "dev": true,
1183 | "requires": {
1184 | "fast-deep-equal": "^3.1.1",
1185 | "json-schema-traverse": "^1.0.0",
1186 | "require-from-string": "^2.0.2",
1187 | "uri-js": "^4.2.2"
1188 | }
1189 | },
1190 | "json-schema-traverse": {
1191 | "version": "1.0.0",
1192 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
1193 | "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
1194 | "dev": true
1195 | }
1196 | }
1197 | },
1198 | "text-table": {
1199 | "version": "0.2.0",
1200 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
1201 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
1202 | "dev": true
1203 | },
1204 | "to-regex-range": {
1205 | "version": "5.0.1",
1206 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1207 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1208 | "dev": true,
1209 | "requires": {
1210 | "is-number": "^7.0.0"
1211 | }
1212 | },
1213 | "tslib": {
1214 | "version": "1.10.0",
1215 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
1216 | "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
1217 | "dev": true
1218 | },
1219 | "tsutils": {
1220 | "version": "3.20.0",
1221 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz",
1222 | "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==",
1223 | "dev": true,
1224 | "requires": {
1225 | "tslib": "^1.8.1"
1226 | }
1227 | },
1228 | "type-check": {
1229 | "version": "0.4.0",
1230 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
1231 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
1232 | "dev": true,
1233 | "requires": {
1234 | "prelude-ls": "^1.2.1"
1235 | }
1236 | },
1237 | "type-fest": {
1238 | "version": "0.8.1",
1239 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
1240 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
1241 | "dev": true
1242 | },
1243 | "typescript": {
1244 | "version": "4.4.3",
1245 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz",
1246 | "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==",
1247 | "dev": true
1248 | },
1249 | "uri-js": {
1250 | "version": "4.4.1",
1251 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
1252 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
1253 | "dev": true,
1254 | "requires": {
1255 | "punycode": "^2.1.0"
1256 | }
1257 | },
1258 | "v8-compile-cache": {
1259 | "version": "2.2.0",
1260 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz",
1261 | "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==",
1262 | "dev": true
1263 | },
1264 | "which": {
1265 | "version": "2.0.2",
1266 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
1267 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
1268 | "dev": true,
1269 | "requires": {
1270 | "isexe": "^2.0.0"
1271 | }
1272 | },
1273 | "word-wrap": {
1274 | "version": "1.2.3",
1275 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
1276 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
1277 | "dev": true
1278 | },
1279 | "wrappy": {
1280 | "version": "1.0.2",
1281 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1282 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1283 | "dev": true
1284 | },
1285 | "yallist": {
1286 | "version": "4.0.0",
1287 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
1288 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
1289 | "dev": true
1290 | }
1291 | }
1292 | }
1293 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vscode-diana",
3 | "displayName": "vscode-diana",
4 | "description": "Basic language support for DianaScript",
5 | "version": "0.0.1",
6 | "publisher": "GReSummer",
7 | "private": true,
8 | "license": "MIT",
9 | "icon": "static/icon.png",
10 | "repository": {
11 | "type": "git",
12 | "url": "https://github.com/thautwarm/vscode-diana"
13 | },
14 | "engines": {
15 | "vscode": "^1.42.0"
16 | },
17 | "categories": [
18 | "Other"
19 | ],
20 | "activationEvents": [
21 | "onLanguage:diana"
22 | ],
23 | "main": "./out/extension.js",
24 | "contributes": {
25 | "languages": [
26 | {
27 | "id": "diana",
28 | "extensions": [
29 | ".diana"
30 | ],
31 | "configuration": "./language-configuration.json"
32 | }
33 | ]
34 | },
35 | "scripts": {
36 | "vscode:prepublish": "npm run compile",
37 | "compile": "tsc -p ./",
38 | "antlr4ts": "antlr4ts -visitor src/DianaScript.g4",
39 | "lint": "eslint . --ext .ts,.tsx",
40 | "watch": "tsc -watch -p ./"
41 | },
42 | "devDependencies": {
43 | "@types/node": "^12.12.0",
44 | "@types/vscode": "^1.42.0",
45 | "@typescript-eslint/eslint-plugin": "^4.16.0",
46 | "@typescript-eslint/parser": "^4.16.0",
47 | "antlr4ts-cli": "^0.5.0-alpha.4",
48 | "eslint": "^7.21.0",
49 | "typescript": "^4.4.3"
50 | },
51 | "dependencies": {
52 | "antlr4ts": "^0.5.0-alpha.4"
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/sample/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "editor.semanticTokenColorCustomizations": {
3 | "enabled": true, // enable for all themes
4 | }
5 | }
--------------------------------------------------------------------------------
/sample/sample.diana:
--------------------------------------------------------------------------------
1 | variable = fun ()
2 | var x = 1
3 | x + 1
4 | str = "关注嘉然,顿顿解馋😅"
5 | 0x123
6 | a + b
7 | a + b > c and break
8 | for i in Enum.range(Int.of("10"), 20) do
9 | log(i)
10 | end
11 | end
12 |
13 | workflow {
14 | xpos 0b123
15 | ypos 123
16 | on_click fun (self, pos)
17 | (x, y) = pos
18 | self.xpos = x
19 | self.ypos = x
20 | end
21 | }
22 |
--------------------------------------------------------------------------------
/sample/sigs.diana.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "module": "Int",
4 | "doc": "64-bit integer/C# long",
5 | "methods": [
6 | {
7 | "name": "get_max",
8 | "type": "get_max : () -> Int",
9 | "doc": "get max value of int64"
10 | },
11 | {
12 | "name": "get_min",
13 | "type": "get_min : () -> Int",
14 | "doc": "get min value of int64"
15 | },
16 | {
17 | "name": "of",
18 | "type": "of : (Int | Str | Num) -> Int",
19 | "doc": "convert to `Int`, from `Str`, `Int` or `Num`"
20 | }
21 | ]
22 | },
23 | {
24 | "module": "Num",
25 | "doc": "32-bit float/C# float",
26 | "methods": [
27 | {
28 | "name": "get_max",
29 | "type": "get_max : () -> Num",
30 | "doc": "get max value of float32"
31 | },
32 | {
33 | "name": "get_min",
34 | "type": "get_min : () -> Num",
35 | "doc": "get min value of float32"
36 | },
37 | {
38 | "name": "of",
39 | "type": "of : (Int | Str | Num) -> Num",
40 | "doc": "convert to `Num`, from `Str`, `Int` or `Num`"
41 | }
42 | ]
43 | },
44 | {
45 | "module": "Str",
46 | "doc": "Unicode-16 strings",
47 | "methods": [
48 | {
49 | "name": "of",
50 | "type": "of : any -> Str",
51 | "doc": "convert any to `Str`"
52 | },
53 | {
54 | "name": "join",
55 | "type": "join : (Str, Enum) -> Str"
56 | },
57 | {
58 | "name": "concat",
59 | "type": "concat : (Enum) -> Str"
60 | },
61 | {
62 | "name": "endswith",
63 | "type": "endswith : (Str, Str) -> Str"
64 | },
65 | {
66 | "name": "startswith",
67 | "type": "startswith : (Str, Str) -> Str"
68 | },
69 | {
70 | "name": "len",
71 | "type": "len : (Str) -> Int"
72 | },
73 | {
74 | "name": "strip",
75 | "type": "strip : (Str, Str) -> Str"
76 | },
77 | {
78 | "name": "lstrip",
79 | "type": "lstrip : (Str, Str) -> Str"
80 | },
81 | {
82 | "name": "rstrip",
83 | "type": "rstrip : (Str, Str) -> Str"
84 | },
85 | {
86 | "name": "lower",
87 | "type": "lower : (Str) -> Str"
88 | },
89 | {
90 | "name": "upper",
91 | "type": "upper : (Str) -> Str"
92 | },
93 | {
94 | "name": "contains",
95 | "type": "contains : (Str) -> Int"
96 | },
97 | {
98 | "name": "format",
99 | "type": "format : (Str, any...) -> Str"
100 | },
101 | {
102 | "name": "substr",
103 | "type": "substr : (Str, Int start, Int len) -> Str"
104 | },
105 | {
106 | "name": "insert",
107 | "type": "insert : (Str, Int pos, Str) -> Str"
108 | },
109 | {
110 | "name": "remove_at",
111 | "type": "remove_at : (Str, Int pos, Str) -> Str"
112 | },
113 | {
114 | "name": "index",
115 | "type": "index : (Str, Str, Int? startindex=0, Int? count=1) -> Str"
116 | },
117 | {
118 | "name": "forkey",
119 | "type": "forkey : (Str, (Int key) -> any)) -> None"
120 | }
121 | ]
122 | },
123 | {
124 | "module": "Tuple",
125 | "doc": "array of Diana objects; immutable",
126 | "methods": [
127 | {
128 | "name": "of",
129 | "type": "of : (Enum) -> Tuple",
130 | "doc": "convert any enumerable of diana objects to a tuple"
131 | },
132 | {
133 | "name": "len",
134 | "type": "len : (Tuple) -> Int"
135 | },
136 | {
137 | "name": "forkey",
138 | "type": "forkey : (Tuple, (Int key) -> any)) -> None"
139 | }
140 | ]
141 | },
142 | {
143 | "module": "List",
144 | "doc": "System.Collections.Generic",
145 | "methods": [
146 | {
147 | "name": "of",
148 | "type": "of : (Enum) -> List"
149 | },
150 | {
151 | "name": "push",
152 | "type": "push : (List, any) -> None"
153 | },
154 | {
155 | "name": "pop",
156 | "type": "pop : (List) -> any"
157 | },
158 | {
159 | "name": "extend",
160 | "type": "extend : (List, Enum) -> None"
161 | },
162 | {
163 | "name": "clear",
164 | "type": "clear : (List) -> None"
165 | },
166 | {
167 | "name": "find",
168 | "type": "clear : (List, (any) -> any) -> None",
169 | "doc": "List.find([1, 6, 3], x -> x % 2 == 0)\n# 6\nList.find([1, 6, 3], x -> x > 20)\n# None"
170 | },
171 | {
172 | "name": "index",
173 | "type": "index : (List, any, Int?) -> Int"
174 | },
175 | {
176 | "name": "remove_at",
177 | "type": "remove_at : (List, Int) -> None"
178 | },
179 | {
180 | "name": "forkey",
181 | "type": "forkey : (List, (Int) => any) -> None"
182 | },
183 | {
184 | "name": "copy"
185 | }
186 | ]
187 | },
188 | {
189 | "module": "Dict",
190 | "doc": "module for Dictionaries and sets; when converting `Dict` to an enumerable, you get `Dict` keys.",
191 | "methods": [
192 | {
193 | "name": "of",
194 | "type": "of : (Enum<(any, any)>) -> Dict"
195 | },
196 | {
197 | "name": "setOf",
198 | "type": "setOf : Enum<(any)> -> Dict"
199 | },
200 | {
201 | "name": "remove",
202 | "type": "remove : (Dict, key) -> None"
203 | },
204 | {
205 | "name": "contains"
206 | },
207 | {
208 | "name": "union"
209 | },
210 | {
211 | "name": "intersect"
212 | },
213 | {
214 | "name": "update"
215 | },
216 | {
217 | "name": "forkey"
218 | },
219 | {
220 | "name": "copy"
221 | }
222 | ]
223 | },
224 | {
225 | "module": "Enum",
226 | "doc": "Enumerables",
227 | "methods": [
228 | {
229 | "name": "foreach"
230 | },
231 | {
232 | "name": "map"
233 | },
234 | {
235 | "name": "mapi",
236 | "doc": "the function should take 2 arguements, the first of which is the integer index of the enumerable."
237 | },
238 | {
239 | "name": "range",
240 | "type": "range : (Int start, Int end, Int sep = 1) -> Enum"
241 | }
242 | ]
243 | }
244 | ]
--------------------------------------------------------------------------------
/src/DianaScript.g4:
--------------------------------------------------------------------------------
1 | grammar DianaScript;
2 | options { language = CSharp; }
3 | expr returns [ImmediateAST result] :
4 | '__META' local__2_expr_case0=INT_10 ':' local__4_expr_case0=INT_10 ':' local__6_expr_case0=INT_10 'in' local__8_expr_case0=expr {
5 | ImmediateAST tmp__5 ;
6 | ImmediateAST tmp__4 ;
7 | CommonToken tmp__3 ;
8 | CommonToken tmp__2 ;
9 | CommonToken tmp__1 ;
10 | tmp__1 = ( CommonToken ) _localctx.local__2_expr_case0 ;
11 | tmp__2 = ( CommonToken ) _localctx.local__4_expr_case0 ;
12 | tmp__3 = ( CommonToken ) _localctx.local__6_expr_case0 ;
13 | tmp__4 = ( ImmediateAST ) _localctx.local__8_expr_case0.result ;
14 | tmp__5 = (ImmediateAST) mkMeta( tmp__1.Text, tmp__2.Text, tmp__3.Text, tmp__4 );
15 | $result = tmp__5;
16 | }
17 | | local__1_expr_case1=or_expr {
18 | ImmediateAST tmp__6 ;
19 | tmp__6 = ( ImmediateAST ) _localctx.local__1_expr_case1.result ;
20 | $result = tmp__6;
21 | }
22 | ;
23 | stmt returns [ImmediateAST result] :
24 | local__1_stmt_case0='raise' local__2_stmt_case0=expr {
25 | ImmediateAST tmp__9 ;
26 | ImmediateAST tmp__8 ;
27 | CommonToken tmp__7 ;
28 | tmp__7 = ( CommonToken ) _localctx.local__1_stmt_case0 ;
29 | tmp__8 = ( ImmediateAST ) _localctx.local__2_stmt_case0.result ;
30 | tmp__9 = (ImmediateAST) mkRaise( tmp__7, tmp__8 );
31 | $result = tmp__9;
32 | }
33 | | local__1_stmt_case1='__SETMETA' local__2_stmt_case1=INT_10 local__3_stmt_case1=STR_4 {
34 | ImmediateAST tmp__13 ;
35 | CommonToken tmp__12 ;
36 | CommonToken tmp__11 ;
37 | CommonToken tmp__10 ;
38 | tmp__10 = ( CommonToken ) _localctx.local__1_stmt_case1 ;
39 | tmp__11 = ( CommonToken ) _localctx.local__2_stmt_case1 ;
40 | tmp__12 = ( CommonToken ) _localctx.local__3_stmt_case1 ;
41 | tmp__13 = (ImmediateAST) mkSetMeta( tmp__10, tmp__11.Text, tmp__12.Text );
42 | $result = tmp__13;
43 | }
44 | | '__META' local__2_stmt_case2=INT_10 ':' local__4_stmt_case2=INT_10 ':' local__6_stmt_case2=INT_10 'do' local__8_stmt_case2=stmt {
45 | ImmediateAST tmp__18 ;
46 | ImmediateAST tmp__17 ;
47 | CommonToken tmp__16 ;
48 | CommonToken tmp__15 ;
49 | CommonToken tmp__14 ;
50 | tmp__14 = ( CommonToken ) _localctx.local__2_stmt_case2 ;
51 | tmp__15 = ( CommonToken ) _localctx.local__4_stmt_case2 ;
52 | tmp__16 = ( CommonToken ) _localctx.local__6_stmt_case2 ;
53 | tmp__17 = ( ImmediateAST ) _localctx.local__8_stmt_case2.result ;
54 | tmp__18 = (ImmediateAST) mkMeta( tmp__14.Text, tmp__15.Text, tmp__16.Text, tmp__17 );
55 | $result = tmp__18;
56 | }
57 | | local__1_stmt_case3=gen__line_wrap_begin local__2_stmt_case3=block gen__line_wrap_end {
58 | ImmediateAST tmp__21 ;
59 | System.Collections.Generic.List tmp__20 ;
60 | CommonToken tmp__19 ;
61 | tmp__19 = ( CommonToken ) _localctx.local__1_stmt_case3.result ;
62 | tmp__20 = ( System.Collections.Generic.List ) _localctx.local__2_stmt_case3.result ;
63 | tmp__21 = (ImmediateAST) mkBlock( tmp__19, tmp__20 );
64 | $result = tmp__21;
65 | }
66 | | local__1_stmt_case4=lhs_seq local__2_stmt_case4=expr {
67 | ImmediateAST tmp__24 ;
68 | ImmediateAST tmp__23 ;
69 | System.Collections.Generic.List<(ImmediateAST, string)> tmp__22 ;
70 | tmp__22 = ( System.Collections.Generic.List<(ImmediateAST, string)> ) _localctx.local__1_stmt_case4.result ;
71 | tmp__23 = ( ImmediateAST ) _localctx.local__2_stmt_case4.result ;
72 | tmp__24 = (ImmediateAST) mkStoreMany( tmp__22, tmp__23 );
73 | $result = tmp__24;
74 | }
75 | | local__1_stmt_case5='loop' local__2_stmt_case5=block 'end' {
76 | ImmediateAST tmp__29 ;
77 | ImmediateAST tmp__28 ;
78 | System.Collections.Generic.List tmp__27 ;
79 | CommonToken tmp__26 ;
80 | CommonToken tmp__25 ;
81 | tmp__25 = ( CommonToken ) _localctx.local__1_stmt_case5 ;
82 | tmp__26 = ( CommonToken ) _localctx.local__1_stmt_case5 ;
83 | tmp__27 = ( System.Collections.Generic.List ) _localctx.local__2_stmt_case5.result ;
84 | tmp__28 = (ImmediateAST) mkBlock( tmp__26, tmp__27 );
85 | tmp__29 = (ImmediateAST) mkLoop( tmp__25, tmp__28 );
86 | $result = tmp__29;
87 | }
88 | | local__1_stmt_case6='while' local__2_stmt_case6=expr local__3_stmt_case6=gen__blockOf_do 'end' {
89 | ImmediateAST tmp__33 ;
90 | ImmediateAST tmp__32 ;
91 | ImmediateAST tmp__31 ;
92 | CommonToken tmp__30 ;
93 | tmp__30 = ( CommonToken ) _localctx.local__1_stmt_case6 ;
94 | tmp__31 = ( ImmediateAST ) _localctx.local__2_stmt_case6.result ;
95 | tmp__32 = ( ImmediateAST ) _localctx.local__3_stmt_case6.result ;
96 | tmp__33 = (ImmediateAST) mkWhile( tmp__30, tmp__31, tmp__32 );
97 | $result = tmp__33;
98 | }
99 | | local__1_stmt_case7='for' local__2_stmt_case7=NAME_13 'in' local__4_stmt_case7=expr local__5_stmt_case7=gen__blockOf_do 'end' {
100 | ImmediateAST tmp__38 ;
101 | ImmediateAST tmp__37 ;
102 | ImmediateAST tmp__36 ;
103 | CommonToken tmp__35 ;
104 | CommonToken tmp__34 ;
105 | tmp__34 = ( CommonToken ) _localctx.local__1_stmt_case7 ;
106 | tmp__35 = ( CommonToken ) _localctx.local__2_stmt_case7 ;
107 | tmp__36 = ( ImmediateAST ) _localctx.local__4_stmt_case7.result ;
108 | tmp__37 = ( ImmediateAST ) _localctx.local__5_stmt_case7.result ;
109 | tmp__38 = (ImmediateAST) mkFor( tmp__34, tmp__35.Text, tmp__36, tmp__37 );
110 | $result = tmp__38;
111 | }
112 | | local__1_stmt_case8='break' {
113 | ImmediateAST tmp__40 ;
114 | CommonToken tmp__39 ;
115 | tmp__39 = ( CommonToken ) _localctx.local__1_stmt_case8 ;
116 | tmp__40 = (ImmediateAST) mkBreak( tmp__39 );
117 | $result = tmp__40;
118 | }
119 | | local__1_stmt_case9='continue' {
120 | ImmediateAST tmp__42 ;
121 | CommonToken tmp__41 ;
122 | tmp__41 = ( CommonToken ) _localctx.local__1_stmt_case9 ;
123 | tmp__42 = (ImmediateAST) mkContinue( tmp__41 );
124 | $result = tmp__42;
125 | }
126 | | local__1_stmt_case10='return' local__2_stmt_case10=expr {
127 | ImmediateAST tmp__45 ;
128 | ImmediateAST tmp__44 ;
129 | CommonToken tmp__43 ;
130 | tmp__43 = ( CommonToken ) _localctx.local__1_stmt_case10 ;
131 | tmp__44 = ( ImmediateAST ) _localctx.local__2_stmt_case10.result ;
132 | tmp__45 = (ImmediateAST) mkReturn( tmp__43, tmp__44 );
133 | $result = tmp__45;
134 | }
135 | | local__1_stmt_case11='return' {
136 | ImmediateAST tmp__47 ;
137 | CommonToken tmp__46 ;
138 | tmp__46 = ( CommonToken ) _localctx.local__1_stmt_case11 ;
139 | tmp__47 = (ImmediateAST) mkReturn( tmp__46, null );
140 | $result = tmp__47;
141 | }
142 | | local__1_stmt_case12='var' local__2_stmt_case12=gen__seplist__L44__name {
143 | ImmediateAST tmp__50 ;
144 | System.Collections.Generic.List tmp__49 ;
145 | CommonToken tmp__48 ;
146 | tmp__48 = ( CommonToken ) _localctx.local__1_stmt_case12 ;
147 | tmp__49 = ( System.Collections.Generic.List ) _localctx.local__2_stmt_case12.result ;
148 | tmp__50 = (ImmediateAST) mkDecl( tmp__48, tmp__49 );
149 | $result = tmp__50;
150 | }
151 | | local__1_stmt_case13=expr {
152 | ImmediateAST tmp__51 ;
153 | tmp__51 = ( ImmediateAST ) _localctx.local__1_stmt_case13.result ;
154 | $result = tmp__51;
155 | }
156 | ;
157 | gen__line_wrap_end returns [CommonToken result] :
158 | gen__optional_newline local__2_gen__line_wrap_end_case0='end' gen__optional_newline {
159 | CommonToken tmp__52 ;
160 | tmp__52 = ( CommonToken ) _localctx.local__2_gen__line_wrap_end_case0 ;
161 | $result = tmp__52;
162 | }
163 | ;
164 | gen__optional_newline returns [CommonToken result] :
165 | local__1_gen__optional_newline_case0=newline {
166 | CommonToken tmp__53 ;
167 | tmp__53 = ( CommonToken ) _localctx.local__1_gen__optional_newline_case0.result ;
168 | $result = tmp__53;
169 | }
170 | | {
171 | $result = null;
172 | }
173 | ;
174 | gen__line_wrap_begin returns [CommonToken result] :
175 | gen__optional_newline local__2_gen__line_wrap_begin_case0='begin' gen__optional_newline {
176 | CommonToken tmp__54 ;
177 | tmp__54 = ( CommonToken ) _localctx.local__2_gen__line_wrap_begin_case0 ;
178 | $result = tmp__54;
179 | }
180 | ;
181 | newline returns [CommonToken result] :
182 | local__1_newline_case0=NEWLINE_17 {
183 | CommonToken tmp__55 ;
184 | tmp__55 = ( CommonToken ) _localctx.local__1_newline_case0 ;
185 | $result = tmp__55;
186 | }
187 | | newline local__2_newline_case1=NEWLINE_17 {
188 | CommonToken tmp__56 ;
189 | tmp__56 = ( CommonToken ) _localctx.local__2_newline_case1 ;
190 | $result = tmp__56;
191 | }
192 | ;
193 | atom returns [ImmediateAST result] :
194 | local__1_atom_case0=atom local__2_atom_case0='.' '[' local__4_atom_case0=expr ']' {
195 | ImmediateAST tmp__60 ;
196 | ImmediateAST tmp__59 ;
197 | ImmediateAST tmp__58 ;
198 | CommonToken tmp__57 ;
199 | tmp__57 = ( CommonToken ) _localctx.local__2_atom_case0 ;
200 | tmp__58 = ( ImmediateAST ) _localctx.local__1_atom_case0.result ;
201 | tmp__59 = ( ImmediateAST ) _localctx.local__4_atom_case0.result ;
202 | tmp__60 = (ImmediateAST) mkOGet( tmp__57, tmp__58, tmp__59 );
203 | $result = tmp__60;
204 | }
205 | | local__1_atom_case1=atom local__2_atom_case1='.' local__3_atom_case1=NAME_13 {
206 | ImmediateAST tmp__67 ;
207 | ImmediateAST tmp__66 ;
208 | DObj tmp__65 ;
209 | CommonToken tmp__64 ;
210 | CommonToken tmp__63 ;
211 | ImmediateAST tmp__62 ;
212 | CommonToken tmp__61 ;
213 | tmp__61 = ( CommonToken ) _localctx.local__2_atom_case1 ;
214 | tmp__62 = ( ImmediateAST ) _localctx.local__1_atom_case1.result ;
215 | tmp__63 = ( CommonToken ) _localctx.local__3_atom_case1 ;
216 | tmp__64 = ( CommonToken ) _localctx.local__3_atom_case1 ;
217 | tmp__65 = (DObj) mkstr( tmp__64.Text );
218 | tmp__66 = (ImmediateAST) mkVal( tmp__63, tmp__65 );
219 | tmp__67 = (ImmediateAST) mkOGet( tmp__61, tmp__62, tmp__66 );
220 | $result = tmp__67;
221 | }
222 | | ':' local__2_atom_case2=NAME_13 {
223 | ImmediateAST tmp__70 ;
224 | CommonToken tmp__69 ;
225 | CommonToken tmp__68 ;
226 | tmp__68 = ( CommonToken ) _localctx.local__2_atom_case2 ;
227 | tmp__69 = ( CommonToken ) _localctx.local__2_atom_case2 ;
228 | tmp__70 = (ImmediateAST) mkSymbol( tmp__68, tmp__69.Text );
229 | $result = tmp__70;
230 | }
231 | | ':' local__2_atom_case3=STR_4 {
232 | ImmediateAST tmp__74 ;
233 | string tmp__73 ;
234 | CommonToken tmp__72 ;
235 | CommonToken tmp__71 ;
236 | tmp__71 = ( CommonToken ) _localctx.local__2_atom_case3 ;
237 | tmp__72 = ( CommonToken ) _localctx.local__2_atom_case3 ;
238 | tmp__73 = (string) unesc( tmp__72.Text );
239 | tmp__74 = (ImmediateAST) mkSymbol( tmp__71, tmp__73 );
240 | $result = tmp__74;
241 | }
242 | | local__1_atom_case4=atom local__2_atom_case4='(' local__3_atom_case4=gen__closelist__L44__expr ')' {
243 | ImmediateAST tmp__78 ;
244 | System.Collections.Generic.List tmp__77 ;
245 | ImmediateAST tmp__76 ;
246 | CommonToken tmp__75 ;
247 | tmp__75 = ( CommonToken ) _localctx.local__2_atom_case4 ;
248 | tmp__76 = ( ImmediateAST ) _localctx.local__1_atom_case4.result ;
249 | tmp__77 = ( System.Collections.Generic.List ) _localctx.local__3_atom_case4.result ;
250 | tmp__78 = (ImmediateAST) mkApp( tmp__75, tmp__76, tmp__77 );
251 | $result = tmp__78;
252 | }
253 | | local__1_atom_case5='[' local__2_atom_case5=gen__closelist__L44__expr ']' {
254 | ImmediateAST tmp__81 ;
255 | System.Collections.Generic.List tmp__80 ;
256 | CommonToken tmp__79 ;
257 | tmp__79 = ( CommonToken ) _localctx.local__1_atom_case5 ;
258 | tmp__80 = ( System.Collections.Generic.List ) _localctx.local__2_atom_case5.result ;
259 | tmp__81 = (ImmediateAST) mkList( tmp__79, tmp__80 );
260 | $result = tmp__81;
261 | }
262 | | local__1_atom_case6='(' local__2_atom_case6=gen__closelist__L44__expr local__3_atom_case6=trailer ')' {
263 | ImmediateAST tmp__85 ;
264 | bool tmp__84 ;
265 | System.Collections.Generic.List tmp__83 ;
266 | CommonToken tmp__82 ;
267 | tmp__82 = ( CommonToken ) _localctx.local__1_atom_case6 ;
268 | tmp__83 = ( System.Collections.Generic.List ) _localctx.local__2_atom_case6.result ;
269 | tmp__84 = ( bool ) _localctx.local__3_atom_case6.result ;
270 | tmp__85 = (ImmediateAST) mkTuple( tmp__82, tmp__83, tmp__84 );
271 | $result = tmp__85;
272 | }
273 | | local__1_atom_case7='{' local__2_atom_case7=gen__closelist__L44__pair trailer '}' {
274 | ImmediateAST tmp__88 ;
275 | System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> tmp__87 ;
276 | CommonToken tmp__86 ;
277 | tmp__86 = ( CommonToken ) _localctx.local__1_atom_case7 ;
278 | tmp__87 = ( System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> ) _localctx.local__2_atom_case7.result ;
279 | tmp__88 = (ImmediateAST) mkDict( tmp__86, tmp__87 );
280 | $result = tmp__88;
281 | }
282 | | local__1_atom_case8='{' local__2_atom_case8=gen__closelist__L44__expr '}' {
283 | ImmediateAST tmp__91 ;
284 | System.Collections.Generic.List tmp__90 ;
285 | CommonToken tmp__89 ;
286 | tmp__89 = ( CommonToken ) _localctx.local__1_atom_case8 ;
287 | tmp__90 = ( System.Collections.Generic.List ) _localctx.local__2_atom_case8.result ;
288 | tmp__91 = (ImmediateAST) mkSet( tmp__89, tmp__90 );
289 | $result = tmp__91;
290 | }
291 | | local__1_atom_case9=STR_4 {
292 | ImmediateAST tmp__96 ;
293 | DObj tmp__95 ;
294 | string tmp__94 ;
295 | CommonToken tmp__93 ;
296 | CommonToken tmp__92 ;
297 | tmp__92 = ( CommonToken ) _localctx.local__1_atom_case9 ;
298 | tmp__93 = ( CommonToken ) _localctx.local__1_atom_case9 ;
299 | tmp__94 = (string) unesc( tmp__93.Text );
300 | tmp__95 = (DObj) mkstr( tmp__94 );
301 | tmp__96 = (ImmediateAST) mkVal( tmp__92, tmp__95 );
302 | $result = tmp__96;
303 | }
304 | | local__1_atom_case10=INT_10 {
305 | ImmediateAST tmp__101 ;
306 | DObj tmp__100 ;
307 | int tmp__99 ;
308 | CommonToken tmp__98 ;
309 | CommonToken tmp__97 ;
310 | tmp__97 = ( CommonToken ) _localctx.local__1_atom_case10 ;
311 | tmp__98 = ( CommonToken ) _localctx.local__1_atom_case10 ;
312 | tmp__99 = 0 ;
313 | tmp__100 = (DObj) mkint( tmp__98.Text, tmp__99 );
314 | tmp__101 = (ImmediateAST) mkVal( tmp__97, tmp__100 );
315 | $result = tmp__101;
316 | }
317 | | local__1_atom_case11=HEX_7 {
318 | ImmediateAST tmp__106 ;
319 | DObj tmp__105 ;
320 | int tmp__104 ;
321 | CommonToken tmp__103 ;
322 | CommonToken tmp__102 ;
323 | tmp__102 = ( CommonToken ) _localctx.local__1_atom_case11 ;
324 | tmp__103 = ( CommonToken ) _localctx.local__1_atom_case11 ;
325 | tmp__104 = 16 ;
326 | tmp__105 = (DObj) mkint( tmp__103.Text, tmp__104 );
327 | tmp__106 = (ImmediateAST) mkVal( tmp__102, tmp__105 );
328 | $result = tmp__106;
329 | }
330 | | local__1_atom_case12=OCT_8 {
331 | ImmediateAST tmp__111 ;
332 | DObj tmp__110 ;
333 | int tmp__109 ;
334 | CommonToken tmp__108 ;
335 | CommonToken tmp__107 ;
336 | tmp__107 = ( CommonToken ) _localctx.local__1_atom_case12 ;
337 | tmp__108 = ( CommonToken ) _localctx.local__1_atom_case12 ;
338 | tmp__109 = 8 ;
339 | tmp__110 = (DObj) mkint( tmp__108.Text, tmp__109 );
340 | tmp__111 = (ImmediateAST) mkVal( tmp__107, tmp__110 );
341 | $result = tmp__111;
342 | }
343 | | local__1_atom_case13=BIN_9 {
344 | ImmediateAST tmp__116 ;
345 | DObj tmp__115 ;
346 | int tmp__114 ;
347 | CommonToken tmp__113 ;
348 | CommonToken tmp__112 ;
349 | tmp__112 = ( CommonToken ) _localctx.local__1_atom_case13 ;
350 | tmp__113 = ( CommonToken ) _localctx.local__1_atom_case13 ;
351 | tmp__114 = 2 ;
352 | tmp__115 = (DObj) mkint( tmp__113.Text, tmp__114 );
353 | tmp__116 = (ImmediateAST) mkVal( tmp__112, tmp__115 );
354 | $result = tmp__116;
355 | }
356 | | local__1_atom_case14=FLOAT_11 {
357 | ImmediateAST tmp__120 ;
358 | DObj tmp__119 ;
359 | CommonToken tmp__118 ;
360 | CommonToken tmp__117 ;
361 | tmp__117 = ( CommonToken ) _localctx.local__1_atom_case14 ;
362 | tmp__118 = ( CommonToken ) _localctx.local__1_atom_case14 ;
363 | tmp__119 = (DObj) mkfloat( tmp__118.Text );
364 | tmp__120 = (ImmediateAST) mkVal( tmp__117, tmp__119 );
365 | $result = tmp__120;
366 | }
367 | | local__1_atom_case15='None' {
368 | ImmediateAST tmp__123 ;
369 | DObj tmp__122 ;
370 | CommonToken tmp__121 ;
371 | tmp__121 = ( CommonToken ) _localctx.local__1_atom_case15 ;
372 | tmp__122 = (DObj) mknone( );
373 | tmp__123 = (ImmediateAST) mkVal( tmp__121, tmp__122 );
374 | $result = tmp__123;
375 | }
376 | | local__1_atom_case16=NAME_13 {
377 | ImmediateAST tmp__126 ;
378 | CommonToken tmp__125 ;
379 | CommonToken tmp__124 ;
380 | tmp__124 = ( CommonToken ) _localctx.local__1_atom_case16 ;
381 | tmp__125 = ( CommonToken ) _localctx.local__1_atom_case16 ;
382 | tmp__126 = (ImmediateAST) mkVar( tmp__124, tmp__125.Text );
383 | $result = tmp__126;
384 | }
385 | | local__1_atom_case17='-' local__2_atom_case17=atom {
386 | ImmediateAST tmp__129 ;
387 | ImmediateAST tmp__128 ;
388 | CommonToken tmp__127 ;
389 | tmp__127 = ( CommonToken ) _localctx.local__1_atom_case17 ;
390 | tmp__128 = ( ImmediateAST ) _localctx.local__2_atom_case17.result ;
391 | tmp__129 = (ImmediateAST) mkNeg( tmp__127, tmp__128 );
392 | $result = tmp__129;
393 | }
394 | | local__1_atom_case18='~' local__2_atom_case18=atom {
395 | ImmediateAST tmp__132 ;
396 | ImmediateAST tmp__131 ;
397 | CommonToken tmp__130 ;
398 | tmp__130 = ( CommonToken ) _localctx.local__1_atom_case18 ;
399 | tmp__131 = ( ImmediateAST ) _localctx.local__2_atom_case18.result ;
400 | tmp__132 = (ImmediateAST) mkInv( tmp__130, tmp__131 );
401 | $result = tmp__132;
402 | }
403 | | local__1_atom_case19='if' local__2_atom_case19=expr local__3_atom_case19=then local__4_atom_case19=block 'end' {
404 | ImmediateAST tmp__138 ;
405 | ImmediateAST tmp__137 ;
406 | System.Collections.Generic.List tmp__136 ;
407 | CommonToken tmp__135 ;
408 | ImmediateAST tmp__134 ;
409 | CommonToken tmp__133 ;
410 | tmp__133 = ( CommonToken ) _localctx.local__1_atom_case19 ;
411 | tmp__134 = ( ImmediateAST ) _localctx.local__2_atom_case19.result ;
412 | tmp__135 = ( CommonToken ) _localctx.local__3_atom_case19.result ;
413 | tmp__136 = ( System.Collections.Generic.List ) _localctx.local__4_atom_case19.result ;
414 | tmp__137 = (ImmediateAST) mkBlock( tmp__135, tmp__136 );
415 | tmp__138 = (ImmediateAST) mkIfThen( tmp__133, tmp__134, tmp__137 );
416 | $result = tmp__138;
417 | }
418 | | local__1_atom_case20='if' local__2_atom_case20=expr local__3_atom_case20=then local__4_atom_case20=block local__5_atom_case20=gen__nullable_gen__list_gen__snd_elif__elifBlock local__6_atom_case20=gen__optional_gen__blockOf_else 'end' {
419 | ImmediateAST tmp__150 ;
420 | ImmediateAST tmp__149 ;
421 | CommonToken tmp__148 ;
422 | System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> elifs__146 ;
423 | System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> tmp__147 ;
424 | System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> elifs__144 ;
425 | System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> tmp__145 ;
426 | ImmediateAST tmp__143 ;
427 | System.Collections.Generic.List tmp__142 ;
428 | CommonToken tmp__141 ;
429 | ImmediateAST tmp__140 ;
430 | (ImmediateAST, ImmediateAST) elif__139 ;
431 | tmp__140 = ( ImmediateAST ) _localctx.local__2_atom_case20.result ;
432 | tmp__141 = ( CommonToken ) _localctx.local__3_atom_case20.result ;
433 | tmp__142 = ( System.Collections.Generic.List ) _localctx.local__4_atom_case20.result ;
434 | tmp__143 = (ImmediateAST) mkBlock( tmp__141, tmp__142 );
435 | elif__139 = ( tmp__140 , tmp__143 );
436 | tmp__145 = (System.Collections.Generic.List<(ImmediateAST, ImmediateAST)>) empty<(ImmediateAST, ImmediateAST)>( );
437 | elifs__144 = (System.Collections.Generic.List<(ImmediateAST, ImmediateAST)>) append<(ImmediateAST, ImmediateAST)>( tmp__145, elif__139 );
438 | tmp__147 = ( System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> ) _localctx.local__5_atom_case20.result ;
439 | elifs__146 = (System.Collections.Generic.List<(ImmediateAST, ImmediateAST)>) extend<(ImmediateAST, ImmediateAST)>( elifs__144, tmp__147 );
440 | tmp__148 = ( CommonToken ) _localctx.local__1_atom_case20 ;
441 | tmp__149 = ( ImmediateAST ) _localctx.local__6_atom_case20.result ;
442 | tmp__150 = (ImmediateAST) mkNestedIf( tmp__148, elifs__144, tmp__149 );
443 | $result = tmp__150;
444 | }
445 | | local__1_atom_case21='fun' local__2_atom_case21=name '(' local__4_atom_case21=gen__nullable_gen__seplist__L44__name ')' local__6_atom_case21=block 'end' {
446 | ImmediateAST tmp__155 ;
447 | System.Collections.Generic.List tmp__154 ;
448 | System.Collections.Generic.List tmp__153 ;
449 | string tmp__152 ;
450 | CommonToken tmp__151 ;
451 | tmp__151 = ( CommonToken ) _localctx.local__1_atom_case21 ;
452 | tmp__152 = ( string ) _localctx.local__2_atom_case21.result ;
453 | tmp__153 = ( System.Collections.Generic.List ) _localctx.local__4_atom_case21.result ;
454 | tmp__154 = ( System.Collections.Generic.List ) _localctx.local__6_atom_case21.result ;
455 | tmp__155 = (ImmediateAST) mkFunc( tmp__151, tmp__152, tmp__153, tmp__154 );
456 | $result = tmp__155;
457 | }
458 | | local__1_atom_case22='fun' '(' local__3_atom_case22=gen__nullable_gen__seplist__L44__name ')' local__5_atom_case22=block 'end' {
459 | ImmediateAST tmp__160 ;
460 | System.Collections.Generic.List tmp__159 ;
461 | System.Collections.Generic.List tmp__158 ;
462 | string tmp__157 ;
463 | CommonToken tmp__156 ;
464 | tmp__156 = ( CommonToken ) _localctx.local__1_atom_case22 ;
465 | tmp__157 = "" ;
466 | tmp__158 = ( System.Collections.Generic.List ) _localctx.local__3_atom_case22.result ;
467 | tmp__159 = ( System.Collections.Generic.List ) _localctx.local__5_atom_case22.result ;
468 | tmp__160 = (ImmediateAST) mkFunc( tmp__156, tmp__157, tmp__158, tmp__159 );
469 | $result = tmp__160;
470 | }
471 | | local__1_atom_case23='(' local__2_atom_case23=gen__nullable_gen__seplist__L44__name ')' '->' local__5_atom_case23=gen__line_wrap_expr {
472 | ImmediateAST tmp__166 ;
473 | ImmediateAST tmp__165 ;
474 | System.Collections.Generic.List tmp__164 ;
475 | System.Collections.Generic.List tmp__163 ;
476 | string tmp__162 ;
477 | CommonToken tmp__161 ;
478 | tmp__161 = ( CommonToken ) _localctx.local__1_atom_case23 ;
479 | tmp__162 = "" ;
480 | tmp__163 = ( System.Collections.Generic.List ) _localctx.local__2_atom_case23.result ;
481 | tmp__165 = ( ImmediateAST ) _localctx.local__5_atom_case23.result ;
482 | tmp__164 = new System.Collections.Generic.List { tmp__165 };
483 | tmp__166 = (ImmediateAST) mkFunc( tmp__161, tmp__162, tmp__163, tmp__164 );
484 | $result = tmp__166;
485 | }
486 | | local__1_atom_case24=NAME_13 '->' local__3_atom_case24=gen__line_wrap_expr {
487 | ImmediateAST tmp__173 ;
488 | ImmediateAST tmp__172 ;
489 | System.Collections.Generic.List tmp__171 ;
490 | CommonToken tmp__170 ;
491 | System.Collections.Generic.List tmp__169 ;
492 | string tmp__168 ;
493 | CommonToken tmp__167 ;
494 | tmp__167 = ( CommonToken ) _localctx.local__1_atom_case24 ;
495 | tmp__168 = "" ;
496 | tmp__170 = ( CommonToken ) _localctx.local__1_atom_case24 ;
497 | tmp__169 = new System.Collections.Generic.List { tmp__170.Text };
498 | tmp__172 = ( ImmediateAST ) _localctx.local__3_atom_case24.result ;
499 | tmp__171 = new System.Collections.Generic.List { tmp__172 };
500 | tmp__173 = (ImmediateAST) mkFunc( tmp__167, tmp__168, tmp__169, tmp__171 );
501 | $result = tmp__173;
502 | }
503 | ;
504 | gen__line_wrap_expr returns [ImmediateAST result] :
505 | gen__optional_newline local__2_gen__line_wrap_expr_case0=expr gen__optional_newline {
506 | ImmediateAST tmp__174 ;
507 | tmp__174 = ( ImmediateAST ) _localctx.local__2_gen__line_wrap_expr_case0.result ;
508 | $result = tmp__174;
509 | }
510 | ;
511 | gen__nullable_gen__seplist__L44__name returns [System.Collections.Generic.List result] :
512 | local__1_gen__nullable_gen__seplist__L44__name_case0=gen__seplist__L44__name {
513 | System.Collections.Generic.List tmp__175 ;
514 | tmp__175 = ( System.Collections.Generic.List ) _localctx.local__1_gen__nullable_gen__seplist__L44__name_case0.result ;
515 | $result = tmp__175;
516 | }
517 | | {
518 | System.Collections.Generic.List tmp__176 ;
519 | tmp__176 = (System.Collections.Generic.List) empty( );
520 | $result = tmp__176;
521 | }
522 | ;
523 | gen__seplist__L44__name returns [System.Collections.Generic.List result] :
524 | local__1_gen__seplist__L44__name_case0=name {
525 | string tmp__178 ;
526 | System.Collections.Generic.List tmp__177 ;
527 | tmp__178 = ( string ) _localctx.local__1_gen__seplist__L44__name_case0.result ;
528 | tmp__177 = new System.Collections.Generic.List { tmp__178 };
529 | $result = tmp__177;
530 | }
531 | | local__1_gen__seplist__L44__name_case1=gen__seplist__L44__name ',' local__3_gen__seplist__L44__name_case1=name {
532 | System.Collections.Generic.List tmp__181 ;
533 | string tmp__180 ;
534 | System.Collections.Generic.List tmp__179 ;
535 | tmp__179 = ( System.Collections.Generic.List ) _localctx.local__1_gen__seplist__L44__name_case1.result ;
536 | tmp__180 = ( string ) _localctx.local__3_gen__seplist__L44__name_case1.result ;
537 | tmp__181 = (System.Collections.Generic.List) append( tmp__179, tmp__180 );
538 | $result = tmp__181;
539 | }
540 | ;
541 | gen__optional_gen__blockOf_else returns [ImmediateAST result] :
542 | local__1_gen__optional_gen__blockOf_else_case0=gen__blockOf_else {
543 | ImmediateAST tmp__182 ;
544 | tmp__182 = ( ImmediateAST ) _localctx.local__1_gen__optional_gen__blockOf_else_case0.result ;
545 | $result = tmp__182;
546 | }
547 | | {
548 | $result = null;
549 | }
550 | ;
551 | gen__blockOf_else returns [ImmediateAST result] :
552 | local__1_gen__blockOf_else_case0='else' local__2_gen__blockOf_else_case0=block {
553 | ImmediateAST tmp__185 ;
554 | System.Collections.Generic.List tmp__184 ;
555 | CommonToken tmp__183 ;
556 | tmp__183 = ( CommonToken ) _localctx.local__1_gen__blockOf_else_case0 ;
557 | tmp__184 = ( System.Collections.Generic.List ) _localctx.local__2_gen__blockOf_else_case0.result ;
558 | tmp__185 = (ImmediateAST) mkBlock( tmp__183, tmp__184 );
559 | $result = tmp__185;
560 | }
561 | ;
562 | gen__nullable_gen__list_gen__snd_elif__elifBlock returns [System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> result] :
563 | local__1_gen__nullable_gen__list_gen__snd_elif__elifBlock_case0=gen__list_gen__snd_elif__elifBlock {
564 | System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> tmp__186 ;
565 | tmp__186 = ( System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> ) _localctx.local__1_gen__nullable_gen__list_gen__snd_elif__elifBlock_case0.result ;
566 | $result = tmp__186;
567 | }
568 | | {
569 | System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> tmp__187 ;
570 | tmp__187 = (System.Collections.Generic.List<(ImmediateAST, ImmediateAST)>) empty<(ImmediateAST, ImmediateAST)>( );
571 | $result = tmp__187;
572 | }
573 | ;
574 | gen__list_gen__snd_elif__elifBlock returns [System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> result] :
575 | local__1_gen__list_gen__snd_elif__elifBlock_case0=gen__snd_elif__elifBlock {
576 | (ImmediateAST, ImmediateAST) tmp__189 ;
577 | System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> tmp__188 ;
578 | tmp__189 = ( (ImmediateAST, ImmediateAST) ) _localctx.local__1_gen__list_gen__snd_elif__elifBlock_case0.result ;
579 | tmp__188 = new System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> { tmp__189 };
580 | $result = tmp__188;
581 | }
582 | | local__1_gen__list_gen__snd_elif__elifBlock_case1=gen__list_gen__snd_elif__elifBlock local__2_gen__list_gen__snd_elif__elifBlock_case1=gen__snd_elif__elifBlock {
583 | System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> tmp__192 ;
584 | (ImmediateAST, ImmediateAST) tmp__191 ;
585 | System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> tmp__190 ;
586 | tmp__190 = ( System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> ) _localctx.local__1_gen__list_gen__snd_elif__elifBlock_case1.result ;
587 | tmp__191 = ( (ImmediateAST, ImmediateAST) ) _localctx.local__2_gen__list_gen__snd_elif__elifBlock_case1.result ;
588 | tmp__192 = (System.Collections.Generic.List<(ImmediateAST, ImmediateAST)>) append<(ImmediateAST, ImmediateAST)>( tmp__190, tmp__191 );
589 | $result = tmp__192;
590 | }
591 | ;
592 | gen__snd_elif__elifBlock returns [(ImmediateAST, ImmediateAST) result] :
593 | 'elif' local__2_gen__snd_elif__elifBlock_case0=elifBlock {
594 | (ImmediateAST, ImmediateAST) tmp__193 ;
595 | tmp__193 = ( (ImmediateAST, ImmediateAST) ) _localctx.local__2_gen__snd_elif__elifBlock_case0.result ;
596 | $result = tmp__193;
597 | }
598 | ;
599 | gen__closelist__L44__pair returns [System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> result] :
600 | gen__optional_newline local__2_gen__closelist__L44__pair_case0=gen___closelist__L44__pair {
601 | System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> tmp__194 ;
602 | tmp__194 = ( System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> ) _localctx.local__2_gen__closelist__L44__pair_case0.result ;
603 | $result = tmp__194;
604 | }
605 | ;
606 | gen___closelist__L44__pair returns [System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> result] :
607 | local__1_gen___closelist__L44__pair_case0=gen___closelist__L44__pair newline {
608 | System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> tmp__195 ;
609 | tmp__195 = ( System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> ) _localctx.local__1_gen___closelist__L44__pair_case0.result ;
610 | $result = tmp__195;
611 | }
612 | | local__1_gen___closelist__L44__pair_case1=gen___closelist__L44__pair ',' newline local__4_gen___closelist__L44__pair_case1=pair {
613 | System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> tmp__198 ;
614 | (ImmediateAST, ImmediateAST) tmp__197 ;
615 | System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> tmp__196 ;
616 | tmp__196 = ( System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> ) _localctx.local__1_gen___closelist__L44__pair_case1.result ;
617 | tmp__197 = ( (ImmediateAST, ImmediateAST) ) _localctx.local__4_gen___closelist__L44__pair_case1.result ;
618 | tmp__198 = (System.Collections.Generic.List<(ImmediateAST, ImmediateAST)>) append<(ImmediateAST, ImmediateAST)>( tmp__196, tmp__197 );
619 | $result = tmp__198;
620 | }
621 | | local__1_gen___closelist__L44__pair_case2=gen___closelist__L44__pair ',' local__3_gen___closelist__L44__pair_case2=pair {
622 | System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> tmp__201 ;
623 | (ImmediateAST, ImmediateAST) tmp__200 ;
624 | System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> tmp__199 ;
625 | tmp__199 = ( System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> ) _localctx.local__1_gen___closelist__L44__pair_case2.result ;
626 | tmp__200 = ( (ImmediateAST, ImmediateAST) ) _localctx.local__3_gen___closelist__L44__pair_case2.result ;
627 | tmp__201 = (System.Collections.Generic.List<(ImmediateAST, ImmediateAST)>) append<(ImmediateAST, ImmediateAST)>( tmp__199, tmp__200 );
628 | $result = tmp__201;
629 | }
630 | | local__1_gen___closelist__L44__pair_case3=pair {
631 | (ImmediateAST, ImmediateAST) tmp__203 ;
632 | System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> tmp__202 ;
633 | tmp__203 = ( (ImmediateAST, ImmediateAST) ) _localctx.local__1_gen___closelist__L44__pair_case3.result ;
634 | tmp__202 = new System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> { tmp__203 };
635 | $result = tmp__202;
636 | }
637 | | {
638 | System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> tmp__204 ;
639 | tmp__204 = new System.Collections.Generic.List<(ImmediateAST, ImmediateAST)> { };
640 | $result = tmp__204;
641 | }
642 | ;
643 | gen__closelist__L44__expr returns [System.Collections.Generic.List result] :
644 | gen__optional_newline local__2_gen__closelist__L44__expr_case0=gen___closelist__L44__expr {
645 | System.Collections.Generic.List tmp__205 ;
646 | tmp__205 = ( System.Collections.Generic.List ) _localctx.local__2_gen__closelist__L44__expr_case0.result ;
647 | $result = tmp__205;
648 | }
649 | ;
650 | gen___closelist__L44__expr returns [System.Collections.Generic.List result] :
651 | local__1_gen___closelist__L44__expr_case0=gen___closelist__L44__expr newline {
652 | System.Collections.Generic.List tmp__206 ;
653 | tmp__206 = ( System.Collections.Generic.List ) _localctx.local__1_gen___closelist__L44__expr_case0.result ;
654 | $result = tmp__206;
655 | }
656 | | local__1_gen___closelist__L44__expr_case1=gen___closelist__L44__expr ',' newline local__4_gen___closelist__L44__expr_case1=expr {
657 | System.Collections.Generic.List tmp__209 ;
658 | ImmediateAST tmp__208 ;
659 | System.Collections.Generic.List tmp__207 ;
660 | tmp__207 = ( System.Collections.Generic.List ) _localctx.local__1_gen___closelist__L44__expr_case1.result ;
661 | tmp__208 = ( ImmediateAST ) _localctx.local__4_gen___closelist__L44__expr_case1.result ;
662 | tmp__209 = (System.Collections.Generic.List) append( tmp__207, tmp__208 );
663 | $result = tmp__209;
664 | }
665 | | local__1_gen___closelist__L44__expr_case2=gen___closelist__L44__expr ',' local__3_gen___closelist__L44__expr_case2=expr {
666 | System.Collections.Generic.List tmp__212 ;
667 | ImmediateAST tmp__211 ;
668 | System.Collections.Generic.List tmp__210 ;
669 | tmp__210 = ( System.Collections.Generic.List ) _localctx.local__1_gen___closelist__L44__expr_case2.result ;
670 | tmp__211 = ( ImmediateAST ) _localctx.local__3_gen___closelist__L44__expr_case2.result ;
671 | tmp__212 = (System.Collections.Generic.List) append( tmp__210, tmp__211 );
672 | $result = tmp__212;
673 | }
674 | | local__1_gen___closelist__L44__expr_case3=expr {
675 | ImmediateAST tmp__214 ;
676 | System.Collections.Generic.List tmp__213 ;
677 | tmp__214 = ( ImmediateAST ) _localctx.local__1_gen___closelist__L44__expr_case3.result ;
678 | tmp__213 = new System.Collections.Generic.List { tmp__214 };
679 | $result = tmp__213;
680 | }
681 | | {
682 | System.Collections.Generic.List tmp__215 ;
683 | tmp__215 = new System.Collections.Generic.List { };
684 | $result = tmp__215;
685 | }
686 | ;
687 | pair returns [(ImmediateAST, ImmediateAST) result] :
688 | local__1_pair_case0=expr gen__line_wrap__L58 local__3_pair_case0=expr {
689 | ImmediateAST tmp__218 ;
690 | ImmediateAST tmp__217 ;
691 | (ImmediateAST, ImmediateAST) tmp__216 ;
692 | tmp__217 = ( ImmediateAST ) _localctx.local__1_pair_case0.result ;
693 | tmp__218 = ( ImmediateAST ) _localctx.local__3_pair_case0.result ;
694 | tmp__216 = ( tmp__217 , tmp__218 );
695 | $result = tmp__216;
696 | }
697 | ;
698 | gen__line_wrap__L58 returns [CommonToken result] :
699 | gen__optional_newline local__2_gen__line_wrap__L58_case0=':' gen__optional_newline {
700 | CommonToken tmp__219 ;
701 | tmp__219 = ( CommonToken ) _localctx.local__2_gen__line_wrap__L58_case0 ;
702 | $result = tmp__219;
703 | }
704 | ;
705 | trailer returns [bool result] :
706 | ',' {
707 | $result = true;
708 | }
709 | | {
710 | $result = false;
711 | }
712 | ;
713 | bin returns [ImmediateAST result] :
714 | local__1_bin_case0=binseq {
715 | ImmediateAST tmp__221 ;
716 | System.Collections.Generic.List