difftastic/vendor/tree-sitter-kotlin
Wilfred Hughes 600a4fb039 Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569'
git-subtree-dir: vendor/tree-sitter-kotlin
git-subtree-mainline: cbd93bc2ea
git-subtree-split: a4f71eb9b8
2022-04-14 00:05:02 +07:00
..
.github/workflows Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569' 2022-04-14 00:05:02 +07:00
bindings Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569' 2022-04-14 00:05:02 +07:00
examples Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569' 2022-04-14 00:05:02 +07:00
src Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569' 2022-04-14 00:05:02 +07:00
test/corpus Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569' 2022-04-14 00:05:02 +07:00
.editorconfig Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569' 2022-04-14 00:05:02 +07:00
.gitattributes Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569' 2022-04-14 00:05:02 +07:00
.gitignore Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569' 2022-04-14 00:05:02 +07:00
Cargo.lock Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569' 2022-04-14 00:05:02 +07:00
Cargo.toml Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569' 2022-04-14 00:05:02 +07:00
Icon128.png Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569' 2022-04-14 00:05:02 +07:00
LICENSE Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569' 2022-04-14 00:05:02 +07:00
README.md Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569' 2022-04-14 00:05:02 +07:00
binding.gyp Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569' 2022-04-14 00:05:02 +07:00
grammar-reference.js Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569' 2022-04-14 00:05:02 +07:00
grammar.js Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569' 2022-04-14 00:05:02 +07:00
package-lock.json Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569' 2022-04-14 00:05:02 +07:00
package.json Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569' 2022-04-14 00:05:02 +07:00
playground-screenshot.png Add 'vendor/tree-sitter-kotlin/' from commit 'a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569' 2022-04-14 00:05:02 +07:00

README.md

Kotlin Grammar for Tree-Sitter

Build

Kotlin language grammar for Tree-Sitter. You can try it out directly on the web.

Icon

The grammar is based on the official language grammar.

Project Structure

File Description
grammar.js The Tree-Sitter grammar
grammar-reference.js A direct translation of the Kotlin language grammar that is, however, ambiguous to Tree-Sitter
src The generated parser

Setup

npm install

Development

Compilation

To (re-)compile the grammar, run:

npm run generate

Note that the grammar is written completely in JavaScript (grammar.js), the other source files are generated by tree-sitter.

Testing

To run the unit tests, run:

npm run test

WebAssembly

Compilation

First make sure to have Emscripten installed. If you use Homebrew, you can brew install emscripten. Then run:

npm run build-wasm

Playground

After compiling the grammar to WebAssembly, you can invoke

npm run playground

to launch an interactive editing environment that displays the parsed syntax tree on-the-fly in the browser. You can also view a deployed version of this playground on the web.

Screenshot

Documentation

More documentation on how to create Tree-Sitter grammars can be found here.

See also