#tree-sitter #openscad #parser #incremental

tree-sitter-openscad

openscad grammar for the tree-sitter parsing library

9 unstable releases

0.5.1 Feb 24, 2024
0.5.0 Feb 4, 2024
0.4.2 Oct 30, 2022
0.4.0 May 7, 2022
0.1.0 Aug 1, 2021

#124 in Text editors

Download history 34/week @ 2024-08-03 23/week @ 2024-08-10 11/week @ 2024-08-17 25/week @ 2024-08-24 155/week @ 2024-08-31 44/week @ 2024-09-07 31/week @ 2024-09-14 80/week @ 2024-09-21 63/week @ 2024-09-28 36/week @ 2024-10-05 19/week @ 2024-10-12 21/week @ 2024-10-19 27/week @ 2024-10-26 88/week @ 2024-11-02 19/week @ 2024-11-09 29/week @ 2024-11-16

164 downloads per month
Used in 2 crates

MIT license

270KB
10K SLoC

C 10K SLoC JavaScript 250 SLoC // 0.3% comments Scheme 58 SLoC // 0.2% comments Rust 31 SLoC // 0.5% comments

tree-sitter-openscad

OpenSCAD grammar for the tree-sitter parsing library

Developer quickstart

Most development of tree-sitter parsers is done using nodejs and npm. You can find the instructions on how to set that up here: https://tree-sitter.github.io/tree-sitter/creating-parsers

The TLDR would be:

  1. Install npm (there are many ways, pick your poison)
  2. From the source directory, run npm install to get all the dependencies
  3. export PATH=$PATH:./node_modules/.bin to get the tree-sitter CLI command
  4. tree-sitter generate to build your changes
  5. tree-sitter test to make sure you didn't unintentionally break any of the existing test cases
  6. Add a new test case covering your change (instructions here: https://tree-sitter.github.io/tree-sitter/creating-parsers#command-test)

lib.rs:

This crate provides openscad language support for the tree-sitter parsing library.

Typically, you will use the language function to add this language to a tree-sitter Parser, and then use the parser to parse some code:

let code = "";
let mut parser = tree_sitter::Parser::new();
parser.set_language(tree_sitter_openscad::language()).expect("Error loading openscad grammar");
let tree = parser.parse(code, None).unwrap();

Dependencies

~2.7–4MB
~75K SLoC