tree-sitter
Incremental parsers for node
Installation
npm install tree-sitter
Usage
Make a document:
var treeSitter = require("tree-sitter");
var document = new treeSitter.Document();
Create a language module using tree-sitter-compiler. See the javascript module for an example.
Set the document's language:
document.setLanguage(require("tree-sitter-javascript"));
Set the document's text:
document.setInputString("var inc = function(n) { return n + 1; }; inc(5);");
Access the document's AST:
document.rootNode.toString()
/*
* (program
* (var_declaration
* (identifier)
* (function (formal_parameters (identifier)) (statement_block
* (return_statement (math_op (identifier) (number))))))
* (expression_statement (function_call
* (identifier) (number))))
*/
var program = document.children[0];
program.children[0];
/*
* { name: 'var_declaration',
* row: 0,
* column: 0,
* start: 0,
* end: 40,
* children: { length: 2 } }
*/