Wasm file generation note in readme (#368)
* readme .wasm file generate and usage in node.js * generate wasm language files readme note
This commit is contained in:
parent
70dc79b412
commit
bd97ad5c4c
1 changed files with 38 additions and 1 deletions
|
|
@ -33,7 +33,7 @@ First, create a parser:
|
|||
const parser = new Parser;
|
||||
```
|
||||
|
||||
Then assign a language to the parser. Tree-sitter languages are packaged as individual `.wasm` files:
|
||||
Then assign a language to the parser. Tree-sitter languages are packaged as individual `.wasm` files (more on this below):
|
||||
|
||||
```js
|
||||
const JavaScript = await Parser.Language.load('/path/to/tree-sitter-javascript.wasm');
|
||||
|
|
@ -105,3 +105,40 @@ const tree = parser.parse((index, position) => {
|
|||
if (line) return line.slice(position.column);
|
||||
});
|
||||
```
|
||||
|
||||
### Generate .wasm language files
|
||||
|
||||
The following example shows how to generate `.wasm` file for tree-sitter JavaScript grammar.
|
||||
|
||||
**IMPORTANT**: [emscripten](https://emscripten.org/docs/getting_started/downloads.html) or [docker](https://www.docker.com/) need to be installed.
|
||||
|
||||
First install `tree-sitter-cli` and the tree-sitter language for which to generate `.wasm` (`tree-sitter-javascript` in this example):
|
||||
|
||||
```sh
|
||||
npm install --save-dev tree-sitter-cli tree-sitter-javascript
|
||||
```
|
||||
|
||||
Then just use tree-sitter cli tool to generate the `.wasm`.
|
||||
|
||||
```sh
|
||||
npx tree-sitter build-wasm node_modules/tree-sitter-javascript
|
||||
```
|
||||
|
||||
If everything is fine, file `tree-sitter-javascript.wasm` should be generated in current directory.
|
||||
|
||||
#### Running .wasm in Node.js
|
||||
|
||||
Notice that executing `.wasm` files in node.js is considerably slower than running [node.js bindings](https://github.com/tree-sitter/node-tree-sitter). However could be useful for testing purposes:
|
||||
|
||||
```javascript
|
||||
const Parser = require('web-tree-sitter');
|
||||
|
||||
(async () => {
|
||||
await Parser.init();
|
||||
const parser = new Parser();
|
||||
const Lang = await Parser.Language.load('tree-sitter-javascript.wasm');
|
||||
parser.setLanguage(Lang);
|
||||
const tree = parser.parse('let x = 1;');
|
||||
console.log(tree.rootNode.toString());
|
||||
})();
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue