Sha256: 5e3c6796e7b64e29fd7fb0af6c68e626a406808f1893394e28e89b5c0cbff602
Contents?: true
Size: 1.94 KB
Versions: 1
Compression:
Stored size: 1.94 KB
Contents
# TreeSitter This gem wraps around [tree-sitter](https://github.com/tree-sitter/tree-sitter). ## Installation Add this line to your application's Gemfile: ```ruby gem 'tree-sitter' ``` And then execute: $ bundle Or install it yourself as: $ gem install tree-sitter ## Usage Tree-sitter performs [two different operations](https://github.com/tree-sitter/tree-sitter#overview): compiling grammars and parsing text with those grammars. This gem is only concerned with parsing a blob of text, given the appropriate grammars. Compiling grammars from JSON is trivial and can just be kept as an executable generated from C. ### Running the parser The libruntime static library needs to make use of the C code generated by the libcompile executable. Once you've got those, you'll need to provide an absolute path to the directory containing the C files that the library can incorporate. For example: ``` bash # if you've installed this gem $ TREE_SITTER_PARSER_DIR=/somewhere/code bundle install # if you're using this gem locally $ TREE_SITTER_PARSER_DIR=/somewhere/code bundle exec rake compile ``` This directory is appended with the glob suffix `**/*.{c,cc}`, so it can contain as many nested parser files as necessary. Then, you can start making use of the parser: ``` ruby # first argument is the string to parse # second argument is a set of options; currently, only one is available, `language:`, # which identifies the text's language document = TreeSitter::Document.new('a + b * 5', language: 'tree_sitter_arithmetic') # you can change any of these values whenever you want, just remember to call `parse` # provide the function name document.input_string = '12 * 12' document.language = "tree_sitter_python" document.parse ``` ## Development After checking out the repo, run `script/bootstrap` to install dependencies. Then, run `script/test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tree-sitter-0.1.0 | README.md |