summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilfred Hughes <me@wilfred.me.uk>2024-04-28 23:48:30 -0700
committerWilfred Hughes <me@wilfred.me.uk>2024-04-28 23:48:30 -0700
commit1dd7bbebe870949409c7e3361558f2bfb1269f6b (patch)
tree047de491a558f358d124e74f8c1ee88cc8074a0e
parentae77a9cdf717e88ec00fdf3791c5ba8d2f84fba7 (diff)
parent09dbf221d7491dc8d8839616b27c21b9c025c457 (diff)
-rw-r--r--vendored_parsers/tree-sitter-elm/.github/dependabot.yml4
-rw-r--r--vendored_parsers/tree-sitter-elm/.github/workflows/fuzz.yml22
-rw-r--r--vendored_parsers/tree-sitter-elm/.github/workflows/npm-publish.yml18
-rw-r--r--vendored_parsers/tree-sitter-elm/.github/workflows/publish.yml2
-rw-r--r--vendored_parsers/tree-sitter-elm/.github/workflows/test-full.yml11
-rw-r--r--vendored_parsers/tree-sitter-elm/.github/workflows/test.yml13
-rw-r--r--vendored_parsers/tree-sitter-elm/.github/workflows/validate-lsp.yml44
-rw-r--r--vendored_parsers/tree-sitter-elm/.gitignore1
-rw-r--r--vendored_parsers/tree-sitter-elm/Cargo.toml4
-rw-r--r--vendored_parsers/tree-sitter-elm/HOW_TO_RELEASE.md2
-rw-r--r--vendored_parsers/tree-sitter-elm/Package.swift43
-rw-r--r--vendored_parsers/tree-sitter-elm/binding.gyp2
-rw-r--r--vendored_parsers/tree-sitter-elm/bindings/rust/build.rs21
-rw-r--r--vendored_parsers/tree-sitter-elm/bindings/swift/TreeSitterElm/elm.h16
-rwxr-xr-xvendored_parsers/tree-sitter-elm/docs/js/tree-sitter-elm.wasmbin200794 -> 189901 bytes
-rw-r--r--vendored_parsers/tree-sitter-elm/docs/js/tree-sitter.js2
-rw-r--r--vendored_parsers/tree-sitter-elm/docs/js/tree-sitter.wasmbin208363 -> 190289 bytes
-rw-r--r--vendored_parsers/tree-sitter-elm/grammar.js2
-rw-r--r--vendored_parsers/tree-sitter-elm/index.d.ts882
-rw-r--r--vendored_parsers/tree-sitter-elm/package.json10
-rwxr-xr-xvendored_parsers/tree-sitter-elm/script/parse-examples4
-rw-r--r--vendored_parsers/tree-sitter-elm/script/search.json804
-rw-r--r--vendored_parsers/tree-sitter-elm/src/grammar.json13
-rw-r--r--vendored_parsers/tree-sitter-elm/src/node-types.json10
-rw-r--r--vendored_parsers/tree-sitter-elm/src/parser.c30949
-rw-r--r--vendored_parsers/tree-sitter-elm/src/scanner.c496
-rw-r--r--vendored_parsers/tree-sitter-elm/src/scanner.cc507
-rw-r--r--vendored_parsers/tree-sitter-elm/src/tree_sitter/parser.h1
-rw-r--r--vendored_parsers/tree-sitter-elm/test/corpus/comments.txt92
29 files changed, 17690 insertions, 16285 deletions
diff --git a/vendored_parsers/tree-sitter-elm/.github/dependabot.yml b/vendored_parsers/tree-sitter-elm/.github/dependabot.yml
index a2a81aed5..53cee07a5 100644
--- a/vendored_parsers/tree-sitter-elm/.github/dependabot.yml
+++ b/vendored_parsers/tree-sitter-elm/.github/dependabot.yml
@@ -13,3 +13,7 @@ updates:
directory: "/"
schedule:
interval: "daily"
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ interval: "daily"
diff --git a/vendored_parsers/tree-sitter-elm/.github/workflows/fuzz.yml b/vendored_parsers/tree-sitter-elm/.github/workflows/fuzz.yml
new file mode 100644
index 000000000..d2c2efc04
--- /dev/null
+++ b/vendored_parsers/tree-sitter-elm/.github/workflows/fuzz.yml
@@ -0,0 +1,22 @@
+name: Fuzz Parser
+
+on:
+ push:
+ paths:
+ - src/scanner.c
+ pull_request:
+ paths:
+ - src/scanner.c
+ workflow_dispatch:
+
+jobs:
+ test:
+ name: Parser fuzzing
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: vigoux/tree-sitter-fuzz-action@v1
+ with:
+ language: elm
+ external-scanner: src/scanner.c
+ time: 60
diff --git a/vendored_parsers/tree-sitter-elm/.github/workflows/npm-publish.yml b/vendored_parsers/tree-sitter-elm/.github/workflows/npm-publish.yml
index fd7177754..fb97f3e87 100644
--- a/vendored_parsers/tree-sitter-elm/.github/workflows/npm-publish.yml
+++ b/vendored_parsers/tree-sitter-elm/.github/workflows/npm-publish.yml
@@ -11,10 +11,10 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-node@v1
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
with:
- node-version: 14
+ node-version: 18
- run: npm i
- run: npm run build
- run: npm run test-only
@@ -23,10 +23,10 @@ jobs:
needs: build
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-node@v1
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
with:
- node-version: 14
+ node-version: 18
registry-url: https://registry.npmjs.org/
- run: npm i
- run: npm run build
@@ -38,10 +38,10 @@ jobs:
needs: build
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-node@v1
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
with:
- node-version: 14
+ node-version: 18
registry-url: https://npm.pkg.github.com/
- run: npm i
- run: npm run build
diff --git a/vendored_parsers/tree-sitter-elm/.github/workflows/publish.yml b/vendored_parsers/tree-sitter-elm/.github/workflows/publish.yml
index 5487ae0d5..dda28c22a 100644
--- a/vendored_parsers/tree-sitter-elm/.github/workflows/publish.yml
+++ b/vendored_parsers/tree-sitter-elm/.github/workflows/publish.yml
@@ -8,7 +8,7 @@ jobs:
cargo:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
diff --git a/vendored_parsers/tree-sitter-elm/.github/workflows/test-full.yml b/vendored_parsers/tree-sitter-elm/.github/workflows/test-full.yml
index 2959333c0..f54c2ea72 100644
--- a/vendored_parsers/tree-sitter-elm/.github/workflows/test-full.yml
+++ b/vendored_parsers/tree-sitter-elm/.github/workflows/test-full.yml
@@ -16,12 +16,15 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest]
- node-version: [14, 16]
+ node-version: [18, 20]
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
+ - uses: actions/setup-python@v5
+ with:
+ python-version: "3.12"
- name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v1
+ uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Npm install
@@ -29,7 +32,7 @@ jobs:
npm i
- name: Unit tests
run: |
- npx tree-sitter test
+ npm test
- name: Test examples
continue-on-error: true
run: |
diff --git a/vendored_parsers/tree-sitter-elm/.github/workflows/test.yml b/vendored_parsers/tree-sitter-elm/.github/workflows/test.yml
index e564807db..e15cb175e 100644
--- a/vendored_parsers/tree-sitter-elm/.github/workflows/test.yml
+++ b/vendored_parsers/tree-sitter-elm/.github/workflows/test.yml
@@ -16,12 +16,15 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest]
- node-version: [14, 16]
+ node-version: [18, 20]
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
+ - uses: actions/setup-python@v5
+ with:
+ python-version: "3.12"
- name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v1
+ uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Npm install
@@ -29,7 +32,7 @@ jobs:
npm i
- name: Unit tests
run: |
- npx tree-sitter test
+ npm test
- name: Test examples
run: |
script/parse-examples
@@ -44,7 +47,7 @@ jobs:
os: [ubuntu-latest]
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
diff --git a/vendored_parsers/tree-sitter-elm/.github/workflows/validate-lsp.yml b/vendored_parsers/tree-sitter-elm/.github/workflows/validate-lsp.yml
new file mode 100644
index 000000000..a220a1384
--- /dev/null
+++ b/vendored_parsers/tree-sitter-elm/.github/workflows/validate-lsp.yml
@@ -0,0 +1,44 @@
+name: Validate that changes doesn't break elm-language-server
+
+on:
+ push:
+ branches:
+ - main
+ pull_request:
+ branches:
+ - main
+
+jobs:
+ test:
+ runs-on: ${{ matrix.os }}
+
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [ubuntu-latest]
+ node-version: [18, 20]
+
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ path: "tree-sitter-elm"
+ - uses: actions/checkout@v4
+ name: Checkout main branch of elm-language-server
+ with:
+ repository: "elm-tooling/elm-language-server"
+ path: "elm-language-server"
+ - name: Install tree-sitter dependencies and generate wasm bundle
+ run: |
+ cd tree-sitter-elm/
+ npm i
+ npm run build
+ npx tree-sitter build-wasm
+ mv ./tree-sitter-elm.wasm ../elm-language-server/tree-sitter-elm.wasm -f
+
+ - name: Install elm-language-server dependencies, compile, and run tests
+ run: |
+ cd elm-language-server/
+ npm i
+ npm run compile
+ npm install -g elm-format
+ npm test
diff --git a/vendored_parsers/tree-sitter-elm/.gitignore b/vendored_parsers/tree-sitter-elm/.gitignore
index 2c3dbd16a..24fe21b0a 100644
--- a/vendored_parsers/tree-sitter-elm/.gitignore
+++ b/vendored_parsers/tree-sitter-elm/.gitignore
@@ -6,6 +6,7 @@ build
.idea
.vscode/ipch
target/
+/.build/
# Examples generated during automated tests
examples/**
diff --git a/vendored_parsers/tree-sitter-elm/Cargo.toml b/vendored_parsers/tree-sitter-elm/Cargo.toml
index a7abe5278..a8e07f27a 100644
--- a/vendored_parsers/tree-sitter-elm/Cargo.toml
+++ b/vendored_parsers/tree-sitter-elm/Cargo.toml
@@ -22,13 +22,13 @@ include = [
]
# Keep in sync with package.json
-version = "5.6.0"
+version = "5.7.0"
[lib]
path = "bindings/rust/lib.rs"
[dependencies]
-tree-sitter = "~0.20"
+tree-sitter = "0.20.10"
[build-dependencies]
cc = "1.0"
diff --git a/vendored_parsers/tree-sitter-elm/HOW_TO_RELEASE.md b/vendored_parsers/tree-sitter-elm/HOW_TO_RELEASE.md
index bf643904e..7a700816e 100644
--- a/vendored_parsers/tree-sitter-elm/HOW_TO_RELEASE.md
+++ b/vendored_parsers/tree-sitter-elm/HOW_TO_RELEASE.md
@@ -1,5 +1,5 @@
1. Increase the version number in the package.json and the Cargo.toml
-2. Run `npm run generate-types && npm run generate-wasm`
+2. Run `npm run generate-wasm`
3. Push the code to main
4. Wait for tests to be successful
5. Create a release on github with the name being the version number from before prefixed with `v` for e.g. `v1.1.0`
diff --git a/vendored_parsers/tree-sitter-elm/Package.swift b/vendored_parsers/tree-sitter-elm/Package.swift
new file mode 100644
index 000000000..93af452c4
--- /dev/null
+++ b/vendored_parsers/tree-sitter-elm/Package.swift
@@ -0,0 +1,43 @@
+// swift-tools-version:5.3
+
+import PackageDescription
+
+let package = Package(
+ name: "TreeSitterElm",
+ platforms: [.macOS(.v10_13), .iOS(.v11)],
+ products: [
+ .library(name: "TreeSitterElm", targets: ["TreeSitterElm"]),
+ ],
+ dependencies: [],
+ targets: [
+ .target(name: "TreeSitterElm",
+ path: ".",
+ exclude: [
+ "binding.gyp",
+ "bindings",
+ "Cargo.toml",
+ "docs",
+ "examples",
+ "grammar.js",
+ "HOW_TO_RELEASE.md",
+ "index.d.ts",
+ "LICENSE.md",
+ "package.json",
+ "README.md",
+ "script",
+ "src/grammar.json",
+ "src/node-types.json",
+ "test",
+ "tsconfig.json",
+ ],
+ sources: [
+ "src/parser.c",
+ "src/scanner.c",
+ ],
+ resources: [
+ .copy("queries")
+ ],
+ publicHeadersPath: "bindings/swift",
+ cSettings: [.headerSearchPath("src")])
+ ]
+)
diff --git a/vendored_parsers/tree-sitter-elm/binding.gyp b/vendored_parsers/tree-sitter-elm/binding.gyp
index 3a852f37d..3e098f6e4 100644
--- a/vendored_parsers/tree-sitter-elm/binding.gyp
+++ b/vendored_parsers/tree-sitter-elm/binding.gyp
@@ -9,7 +9,7 @@
"sources": [
"src/parser.c",
"bindings/node/binding.cc",
- "src/scanner.cc"
+ "src/scanner.c"
],
"cflags_c": [
"-std=c99",
diff --git a/vendored_parsers/tree-sitter-elm/bindings/rust/build.rs b/vendored_parsers/tree-sitter-elm/bindings/rust/build.rs
index 618e90a3a..8851fed13 100644
--- a/vendored_parsers/tree-sitter-elm/bindings/rust/build.rs
+++ b/vendored_parsers/tree-sitter-elm/bindings/rust/build.rs
@@ -2,7 +2,7 @@ fn main() {
let src_dir = std::path::Path::new("src");
let mut c_config = cc::Build::new();
- c_config.include(&src_dir);
+ c_config.include(src_dir);
c_config
.flag_if_supported("-Wno-unused-parameter")
.flag_if_supported("-Wno-unused-but-set-variable")
@@ -10,29 +10,10 @@ fn main() {
let parser_path = src_dir.join("parser.c");
c_config.file(&parser_path);
- // If your language uses an external scanner written in C,
- // then include this block of code:
-
- /*
let scanner_path = src_dir.join("scanner.c");
c_config.file(&scanner_path);
println!("cargo:rerun-if-changed={}", scanner_path.to_str().unwrap());
- */
c_config.compile("parser");
println!("cargo:rerun-if-changed={}", parser_path.to_str().unwrap());
-
- // If your language uses an external scanner written in C++,
- // then include this block of code:
-
- let mut cpp_config = cc::Build::new();
- cpp_config.cpp(true);
- cpp_config.include(&src_dir);
- cpp_config
- .flag_if_supported("-Wno-unused-parameter")
- .flag_if_supported("-Wno-unused-but-set-variable");
- let scanner_path = src_dir.join("scanner.cc");
- cpp_config.file(&scanner_path);
- cpp_config.compile("scanner");
- println!("cargo:rerun-if-changed={}", scanner_path.to_str().unwrap());
}
diff --git a/vendored_parsers/tree-sitter-elm/bindings/swift/TreeSitterElm/elm.h b/vendored_parsers/tree-sitter-elm/bindings/swift/TreeSitterElm/elm.h
new file mode 100644
index 000000000..80f7b49f5
--- /dev/null
+++ b/vendored_parsers/tree-sitter-elm/bindings/swift/TreeSitterElm/elm.h
@@ -0,0 +1,16 @@
+#ifndef TREE_SITTER_ELM_H_
+#define TREE_SITTER_ELM_H_
+
+typedef struct TSLanguage TSLanguage;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern TSLanguage *tree_sitter_elm();
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // TREE_SITTER_ELM_H_
diff --git a/vendored_parsers/tree-sitter-elm/docs/js/tree-sitter-elm.wasm b/vendored_parsers/tree-sitter-elm/docs/js/tree-sitter-elm.wasm
index b31bbc2f4..aa7cef58b 100755
--- a/vendored_parsers/tree-sitter-elm/docs/js/tree-sitter-elm.wasm
+++ b/vendored_parsers/tree-sitter-elm/docs/js/tree-sitter-elm.wasm
Binary files differ
diff --git a/vendored_parsers/tree-sitter-elm/docs/js/tree-sitter.js b/vendored_parsers/tree-sitter-elm/docs/js/tree-sitter.js
index d58803711..6ffc98766 100644
--- a/vendored_parsers/tree-sitter-elm/docs/js/tree-sitter.js
+++ b/vendored_parsers/tree-sitter-elm/docs/js/tree-sitter.js
@@ -1 +1 @@
-var Module=void 0!==Module?Module:{};!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():window.TreeSitter=t()}(0,function(){var e,t={};for(e in Module)Module.hasOwnProperty(e)&&(t[e]=Module[e]);var n,r,s=[],o="./this.program",_=function(e,t){throw t},a=!1,u=!1;a="object"==typeof window,u="function"==typeof importScripts,n="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,r=!a&&!n&&!u;var i,l,d,c,m,f="";n?(f=u?require("path").dirname(f)+"/":__dirname+"/",i=function(e,t){return c||(c=require("fs")),m||(m=require("path")),e=m.normalize(e),c.readFileSync(e,t?null:"utf8")},d=function(e){var t=i(e,!0);return t.buffer||(t=new Uint8Array(t)),N(t.buffer),t},process.argv.length>1&&(o=process.argv[1].replace(/\\/g,"/")),s=process.argv.slice(2),"undefined"!=typeof module&&(module.exports=Module),_=function(e){process.exit(e)},Module.inspect=function(){return"[Emscripten Module object]"}):r?("undefined"!=typeof read&&(i=function(e){return read(e)}),d=function(e){var t;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(N("object"==typeof(t=read(e,"binary"))),t)},"undefined"!=typeof scriptArgs?s=scriptArgs:void 0!==arguments&&(s=arguments),"function"==typeof quit&&(_=function(e){quit(e)}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(a||u)&&(u?f=self.location.href:"undefined"!=typeof document&&document.currentScript&&(f=document.currentScript.src),f=0!==f.indexOf("blob:")?f.substr(0,f.lastIndexOf("/")+1):"",i=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},u&&(d=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),l=function(e,t,n){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?t(r.response):n()},r.onerror=n,r.send(null)});Module.print||console.log.bind(console);var p=Module.printErr||console.warn.bind(console);for(e in t)t.hasOwnProperty(e)&&(Module[e]=t[e]);t=null,Module.arguments&&(s=Module.arguments),Module.thisProgram&&(o=Module.thisProgram),Module.quit&&(_=Module.quit);var h=16;var g,w=[];function y(e,t){if(!g){g=new WeakMap;for(var n=0;n<H.length;n++){var r=H.get(n);r&&g.set(r,n)}}if(g.has(e))return g.get(e);var s=function(){if(w.length)return w.pop();try{H.grow(1)}catch(e){if(!(e instanceof RangeError))throw e;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}return H.length-1}();try{H.set(s,e)}catch(n){if(!(n instanceof TypeError))throw n;var o=function(e,t){if("function"==typeof WebAssembly.Function){for(var n={i:"i32",j:"i64",f:"f32",d:"f64"},r={parameters:[],results:"v"==t[0]?[]:[n[t[0]]]},s=1;s<t.length;++s)r.parameters.push(n[t[s]]);return new WebAssembly.Function(r,e)}var o=[1,0,1,96],_=t.slice(0,1),a=t.slice(1),u={i:127,j:126,f:125,d:124};for(o.push(a.length),s=0;s<a.length;++s)o.push(u[a[s]]);"v"==_?o.push(0):o=o.concat([1,u[_]]),o[1]=o.length-2;var i=new Uint8Array([0,97,115,109,1,0,0,0].concat(o,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0])),l=new WebAssembly.Module(i);return new WebAssembly.Instance(l,{e:{f:e}}).exports.f}(e,t);H.set(s,o)}return g.set(e,s),s}var M,b=function(e){e},v=Module.dynamicLibraries||[];Module.wasmBinary&&(M=Module.wasmBinary);var E,I=Module.noExitRuntime||!0;function A(e,t,n,r){switch("*"===(n=n||"i8").charAt(n.length-1)&&(n="i32"),n){case"i1":case"i8":C[e>>0]=t;break;case"i16":R[e>>1]=t;break;case"i32":T[e>>2]=t;break;case"i64":ae=[t>>>0,(_e=t,+Math.abs(_e)>=1?_e>0?(0|Math.min(+Math.floor(_e/4294967296),4294967295))>>>0:~~+Math.ceil((_e-+(~~_e>>>0))/4294967296)>>>0:0)],T[e>>2]=ae[0],T[e+4>>2]=ae[1];break;case"float":L[e>>2]=t;break;case"double":W[e>>3]=t;break;default:re("invalid type for setValue: "+n)}}function S(e,t,n){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return C[e>>0];case"i16":return R[e>>1];case"i32":case"i64":return T[e>>2];case"float":return L[e>>2];case"double":return W[e>>3];default:re("invalid type for getValue: "+t)}return null}"object"!=typeof WebAssembly&&re("no native wasm support detected");var x=!1;function N(e,t){e||re("Assertion failed: "+t)}var P=1;var k,C,q,R,T,L,W,Z="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function F(e,t,n){for(var r=t+n,s=t;e[s]&&!(s>=r);)++s;if(s-t>16&&e.subarray&&Z)return Z.decode(e.subarray(t,s));for(var o="";t<s;){var _=e[t++];if(128&_){var a=63&e[t++];if(192!=(224&_)){var u=63&e[t++];if((_=224==(240&_)?(15&_)<<12|a<<6|u:(7&_)<<18|a<<12|u<<6|63&e[t++])<65536)o+=String.fromCharCode(_);else{var i=_-65536;o+=String.fromCharCode(55296|i>>10,56320|1023&i)}}else o+=String.fromCharCode((31&_)<<6|a)}else o+=String.fromCharCode(_)}return o}function $(e,t){return e?F(q,e,t):""}function O(e,t,n,r){if(!(r>0))return 0;for(var s=n,o=n+r-1,_=0;_<e.length;++_){var a=e.charCodeAt(_);if(a>=55296&&a<=57343)a=65536+((1023&a)<<10)|1023&e.charCodeAt(++_);if(a<=127){if(n>=o)break;t[n++]=a}else if(a<=2047){if(n+1>=o)break;t[n++]=192|a>>6,t[n++]=128|63&a}else if(a<=65535){if(n+2>=o)break;t[n++]=224|a>>12,t[n++]=128|a>>6&63,t[n++]=128|63&a}else{if(n+3>=o)break;t[n++]=240|a>>18,t[n++]=128|a>>12&63,t[n++]=128|a>>6&63,t[n++]=128|63&a}}return t[n]=0,n-s}function U(e,t,n){return O(e,q,t,n)}function j(e){for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);r>=55296&&r<=57343&&(r=65536+((1023&r)<<10)|1023&e.charCodeAt(++n)),r<=127?++t:t+=r<=2047?2:r<=65535?3:4}return t}function D(e){var t=j(e)+1,n=De(t);return O(e,C,n,t),n}function z(e){k=e,Module.HEAP8=C=new Int8Array(e),Module.HEAP16=R=new Int16Array(e),Module.HEAP32=T=new Int32Array(e),Module.HEAPU8=q=new Uint8Array(e),Module.HEAPU16=new Uint16Array(e),Module.HEAPU32=new Uint32Array(e),Module.HEAPF32=L=new Float32Array(e),Module.HEAPF64=W=new Float64Array(e)}var G=Module.INITIAL_MEMORY||33554432;(E=Module.wasmMemory?Module.wasmMemory:new WebAssembly.Memory({initial:G/65536,maximum:32768}))&&(k=E.buffer),G=k.byteLength,z(k);var H=new WebAssembly.Table({initial:13,element:"anyfunc"}),B=[],K=[],V=[],X=[],Q=!1;var Y=0,J=null,ee=null;function te(e){Y++,Module.monitorRunDependencies&&Module.monitorRunDependencies(Y)}function ne(e){if(Y--,Module.monitorRunDependencies&&Module.monitorRunDependencies(Y),0==Y&&(null!==J&&(clearInterval(J),J=null),ee)){var t=ee;ee=null,t()}}function re(e){throw Module.onAbort&&Module.onAbort(e),p(e+=""),x=!0,1,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(e)}Module.preloadedImages={},Module.preloadedAudios={},Module.preloadedWasm={};var se,oe,_e,ae,ue="data:application/octet-stream;base64,";function ie(e){return e.startsWith(ue)}function le(e){return e.startsWith("file://")}function de(e){try{if(e==se&&M)return new Uint8Array(M);if(d)return d(e);throw"both async and sync fetching of the wasm failed"}catch(e){re(e)}}ie(se="tree-sitter.wasm")||(oe=se,se=Module.locateFile?Module.locateFile(oe,f):f+oe);var ce={},me={get:function(e,t){return ce[t]||(ce[t]=new WebAssembly.Global({value:"i32",mutable:!0})),ce[t]}};function fe(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var n=t.func;"number"==typeof n?void 0===t.arg?H.get(n)():H.get(n)(t.arg):n(void 0===t.arg?null:t.arg)}else t(Module)}}function pe(e){var t=0;function n(){for(var n=0,r=1;;){var s=e[t++];if(n+=(127&s)*r,r*=128,!(128&s))break}return n}if(e instanceof WebAssembly.Module){var r=WebAssembly.Module.customSections(e,"dylink");N(0!=r.length,"need dylink section"),e=new Int8Array(r[0])}else{N(1836278016==new Uint32Array(new Uint8Array(e.subarray(0,24)).buffer)[0],"need to see wasm magic number"),N(0===e[8],"need the dylink section to be first"),t=9,n(),N(6===e[t]),N(e[++t]==="d".charCodeAt(0)),N(e[++t]==="y".charCodeAt(0)),N(e[++t]==="l".charCodeAt(0)),N(e[++t]==="i".charCodeAt(0)),N(e[++t]==="n".charCodeAt(0)),N(e[++t]==="k".charCodeAt(0)),t++}var s={};s.memorySize=n(),s.memoryAlign=n(),s.tableSize=n(),s.tableAlign=n();var o=n();s.neededDynlibs=[];for(var _=0;_<o;++_){var a=n(),u=e.subarray(t,t+a);t+=a;var i=F(u,0);s.neededDynlibs.push(i)}return s}var he=0;function ge(){return I||he>0}function we(e){return 0==e.indexOf("dynCall_")||["stackAlloc","stackSave","stackRestore"].includes(e)?e:"_"+e}function ye(e,t){for(var n in e)if(e.hasOwnProperty(n)){Fe.hasOwnProperty(n)||(Fe[n]=e[n]);var r=we(n);Module.hasOwnProperty(r)||(Module[r]=e[n])}}var Me={nextHandle:1,loadedLibs:{},loadedLibNames:{}};function be(e,t,n){return e.includes("j")?function(e,t,n){var r=Module["dynCall_"+e];return n&&n.length?r.apply(null,[t].concat(n)):r.call(null,t)}(e,t,n):H.get(t).apply(null,n)}var ve=5250816;function Ee(e){return["__cpp_exception","__wasm_apply_data_relocs","__dso_handle","__set_stack_limits"].includes(e)}function Ie(e,t){var n={};for(var r in e){var s=e[r];"object"==typeof s&&(s=s.value),"number"==typeof s&&(s+=t),n[r]=s}return function(e){for(var t in e)if(!Ee(t)){var n=!1,r=e[t];t.startsWith("orig$")&&(t=t.split("$")[1],n=!0),ce[t]||(ce[t]=new WebAssembly.Global({value:"i32",mutable:!0})),(n||0==ce[t].value)&&("function"==typeof r?ce[t].value=y(r):"number"==typeof r?ce[t].value=r:p("unhandled export type for `"+t+"`: "+typeof r))}}(n),n}function Ae(e,t){var n,r;return t&&(n=Fe["orig$"+e]),n||(n=Fe[e]),n||(n=Module[we(e)]),!n&&e.startsWith("invoke_")&&(r=e.split("_")[1],n=function(){var e=Ue();try{return be(r,arguments[0],Array.prototype.slice.call(arguments,1))}catch(t){if(je(e),t!==t+0&&"longjmp"!==t)throw t;ze(1,0)}}),n}function Se(e,t){var n=pe(e);function r(){var r=Math.pow(2,n.memoryAlign);r=Math.max(r,h);var s,o,_,a=(s=function(e){if(Q)return $e(e);var t=ve,n=t+e+15&-16;return ve=n,ce.__heap_base.value=n,t}(n.memorySize+r),(o=r)||(o=h),Math.ceil(s/o)*o),u=H.length;H.grow(n.tableSize);for(var i=a;i<a+n.memorySize;i++)C[i]=0;for(i=u;i<u+n.tableSize;i++)H.set(i,null);var l=new Proxy({},{get:function(e,t){switch(t){case"__memory_base":return a;case"__table_base":return u}if(t in Fe)return Fe[t];var n;t in e||(e[t]=function(){return n||(n=function(e){var t=Ae(e,!1);return t||(t=_[e]),t}(t)),n.apply(null,arguments)});return e[t]}}),d={"GOT.mem":new Proxy({},me),"GOT.func":new Proxy({},me),env:l,wasi_snapshot_preview1:l};function c(e){for(var r=0;r<n.tableSize;r++){var s=H.get(u+r);s&&g.set(s,u+r)}_=Ie(e.exports,a),t.allowUndefined||Ne();var o=_.__wasm_call_ctors;return o||(o=_.__post_instantiate),o&&(Q?o():K.push(o)),_}if(t.loadAsync){if(e instanceof WebAssembly.Module){var m=new WebAssembly.Instance(e,d);return Promise.resolve(c(m))}return WebAssembly.instantiate(e,d).then(function(e){return c(e.instance)})}var f=e instanceof WebAssembly.Module?e:new WebAssembly.Module(e);return c(m=new WebAssembly.Instance(f,d))}return t.loadAsync?n.neededDynlibs.reduce(function(e,n){return e.then(function(){return xe(n,t)})},Promise.resolve()).then(function(){return r()}):(n.neededDynlibs.forEach(function(e){xe(e,t)}),r())}function xe(e,t){"__main__"!=e||Me.loadedLibNames[e]||(Me.loadedLibs[-1]={refcount:1/0,name:"__main__",module:Module.asm,global:!0},Me.loadedLibNames.__main__=-1),t=t||{global:!0,nodelete:!0};var n,r=Me.loadedLibNames[e];if(r)return n=Me.loadedLibs[r],t.global&&!n.global&&(n.global=!0,"loading"!==n.module&&ye(n.module)),t.nodelete&&n.refcount!==1/0&&(n.refcount=1/0),n.refcount++,t.loadAsync?Promise.resolve(r):r;function s(e){if(t.fs){var n=t.fs.readFile(e,{encoding:"binary"});return n instanceof Uint8Array||(n=new Uint8Array(n)),t.loadAsync?Promise.resolve(n):n}return t.loadAsync?(r=e,fetch(r,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load binary file at '"+r+"'";return e.arrayBuffer()}).then(function(e){return new Uint8Array(e)})):d(e);var r}function o(){if(void 0!==Module.preloadedWasm&&void 0!==Module.preloadedWasm[e]){var n=Module.preloadedWasm[e];return t.loadAsync?Promise.resolve(n):n}return t.loadAsync?s(e).then(function(e){return Se(e,t)}):Se(s(e),t)}function _(e){n.global&&ye(e),n.module=e}return r=Me.nextHandle++,n={refcount:t.nodelete?1/0:1,name:e,module:"loading",global:t.global},Me.loadedLibNames[e]=r,Me.loadedLibs[r]=n,t.loadAsync?o().then(function(e){return _(e),r}):(_(o()),r)}function Ne(){for(var e in ce)if(0==ce[e].value){var t=Ae(e,!0);"function"==typeof t?ce[e].value=y(t,t.sig):"number"==typeof t?ce[e].value=t:N(!1,"bad export type for `"+e+"`: "+typeof t)}}Module.___heap_base=ve;var Pe,ke=new WebAssembly.Global({value:"i32",mutable:!0},5250816);function Ce(){re()}Module._abort=Ce,Ce.sig="v",Pe=n?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:"undefined"!=typeof dateNow?dateNow:function(){return performance.now()};var qe=!0;function Re(e,t){var n,r;if(0===e)n=Date.now();else{if(1!==e&&4!==e||!qe)return r=28,T[Oe()>>2]=r,-1;n=Pe()}return T[t>>2]=n/1e3|0,T[t+4>>2]=n%1e3*1e3*1e3|0,0}function Te(e){try{return E.grow(e-k.byteLength+65535>>>16),z(E.buffer),1}catch(e){}}function Le(e){Ke(e)}function We(e){b(e)}Re.sig="iii",Le.sig="vi",We.sig="vi";var Ze,Fe={__heap_base:ve,__indirect_function_table:H,__memory_base:1024,__stack_pointer:ke,__table_base:1,abort:Ce,clock_gettime:Re,emscripten_memcpy_big:function(e,t,n){q.copyWithin(e,t,t+n)},emscripten_resize_heap:function(e){var t,n,r=q.length;if((e>>>=0)>2147483648)return!1;for(var s=1;s<=4;s*=2){var o=r*(1+.2/s);if(o=Math.min(o,e+100663296),Te(Math.min(2147483648,((t=Math.max(e,o))%(n=65536)>0&&(t+=n-t%n),t))))return!0}return!1},exit:Le,memory:E,setTempRet0:We,tree_sitter_log_callback:function(e,t){if(dt){const n=$(t);dt(n,0!==e)}},tree_sitter_parse_callback:function(e,t,n,r,s){var o=lt(t,{row:n,column:r});"string"==typeof o?(A(s,o.length,"i32"),function(e,t,n){if(void 0===n&&(n=2147483647),n<2)return 0;for(var r=(n-=2)<2*e.length?n/2:e.length,s=0;s<r;++s){var o=e.charCodeAt(s);R[t>>1]=o,t+=2}R[t>>1]=0}(o,e,10240)):A(s,0,"i32")}},$e=(function(){var e={env:Fe,wasi_snapshot_preview1:Fe,"GOT.mem":new Proxy(Fe,me),"GOT.func":new Proxy(Fe,me)};function t(e,t){var n=e.exports;n=Ie(n,1024),Module.asm=n;var r,s=pe(t);s.neededDynlibs&&(v=s.neededDynlibs.concat(v)),ye(n),r=Module.asm.__wasm_call_ctors,K.unshift(r),ne()}function n(e){t(e.instance,e.module)}function r(t){return function(){if(!M&&(a||u)){if("function"==typeof fetch&&!le(se))return fetch(se,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+se+"'";return e.arrayBuffer()}).catch(function(){return de(se)});if(l)return new Promise(function(e,t){l(se,function(t){e(new Uint8Array(t))},t)})}return Promise.resolve().then(function(){return de(se)})}().then(function(t){return WebAssembly.instantiate(t,e)}).then(t,function(e){p("failed to asynchronously prepare wasm: "+e),re(e)})}if(te(),Module.instantiateWasm)try{return Module.instantiateWasm(e,t)}catch(e){return p("Module.instantiateWasm callback failed with error: "+e),!1}M||"function"!=typeof WebAssembly.instantiateStreaming||ie(se)||le(se)||"function"!=typeof fetch?r(n):fetch(se,{credentials:"same-origin"}).then(function(t){return WebAssembly.instantiateStreaming(t,e).then(n,function(e){return p("wasm streaming compile failed: "+e),p("falling back to ArrayBuffer instantiation"),r(n)})})}(),Module.___wasm_call_ctors=function(){return(Module.___wasm_call_ctors=Module.asm.__wasm_call_ctors).apply(null,arguments)},Module._malloc=function(){return($e=Module._malloc=Module.asm.malloc).apply(null,arguments)}),Oe=(Module._ts_language_symbol_count=function(){return(Module._ts_language_symbol_count=Module.asm.ts_language_symbol_count).apply(null,arguments)},Module._ts_language_version=function(){return(Module._ts_language_version=Module.asm.ts_language_version).apply(null,arguments)},Module._ts_language_field_count=function(){return(Module._ts_language_field_count=Module.asm.ts_language_field_count).apply(null,arguments)},Module._ts_language_symbol_name=function(){return(Module._ts_language_symbol_name=Module.asm.ts_language_symbol_name).apply(null,arguments)},Module._ts_language_symbol_for_name=function(){return(Module._ts_language_symbol_for_name=Module.asm.ts_language_symbol_for_name).apply(null,arguments)},Module._ts_language_symbol_type=function(){return(Module._ts_language_symbol_type=Module.asm.ts_language_symbol_type).apply(null,arguments)},Module._ts_language_field_name_for_id=function(){return(Module._ts_language_field_name_for_id=Module.asm.ts_language_field_name_for_id).apply(null,arguments)},Module._memcpy=function(){return(Module._memcpy=Module.asm.memcpy).apply(null,arguments)},Module._free=function(){return(Module._free=Module.asm.free).apply(null,arguments)},Module._calloc=function(){return(Module._calloc=Module.asm.calloc).apply(null,arguments)},Module._ts_parser_delete=function(){return(Module._ts_parser_delete=Module.asm.ts_parser_delete).apply(null,arguments)},Module._ts_parser_reset=function(){return(Module._ts_parser_reset=Module.asm.ts_parser_reset).apply(null,arguments)},Module._ts_parser_set_language=function(){return(Module._ts_parser_set_language=Module.asm.ts_parser_set_language).apply(null,arguments)},Module._ts_parser_timeout_micros=function(){return(Module._ts_parser_timeout_micros=Module.asm.ts_parser_timeout_micros).apply(null,arguments)},Module._ts_parser_set_timeout_micros=function(){return(Module._ts_parser_set_timeout_micros=Module.asm.ts_parser_set_timeout_micros).apply(null,arguments)},Module._memcmp=function(){return(Module._memcmp=Module.asm.memcmp).apply(null,arguments)},Module._ts_query_new=function(){return(Module._ts_query_new=Module.asm.ts_query_new).apply(null,arguments)},Module._ts_query_delete=function(){return(Module._ts_query_delete=Module.asm.ts_query_delete).apply(null,arguments)},Module._iswspace=function(){return(Module._iswspace=Module.asm.iswspace).apply(null,arguments)},Module._iswalnum=function(){return(Module._iswalnum=Module.asm.iswalnum).apply(null,arguments)},Module._ts_query_pattern_count=function(){return(Module._ts_query_pattern_count=Module.asm.ts_query_pattern_count).apply(null,arguments)},Module._ts_query_capture_count=function(){return(Module._ts_query_capture_count=Module.asm.ts_query_capture_count).apply(null,arguments)},Module._ts_query_string_count=function(){return(Module._ts_query_string_count=Module.asm.ts_query_string_count).apply(null,arguments)},Module._ts_query_capture_name_for_id=function(){return(Module._ts_query_capture_name_for_id=Module.asm.ts_query_capture_name_for_id).apply(null,arguments)},Module._ts_query_string_value_for_id=function(){return(Module._ts_query_string_value_for_id=Module.asm.ts_query_string_value_for_id).apply(null,arguments)},Module._ts_query_