#parser #openscad #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

#96 in Text editors

Download history 14/week @ 2023-12-22 12/week @ 2023-12-29 27/week @ 2024-01-05 29/week @ 2024-01-12 13/week @ 2024-01-19 8/week @ 2024-01-26 3/week @ 2024-02-02 11/week @ 2024-02-09 32/week @ 2024-02-16 196/week @ 2024-02-23 77/week @ 2024-03-01 212/week @ 2024-03-08 33/week @ 2024-03-15 65/week @ 2024-03-22 87/week @ 2024-03-29 21/week @ 2024-04-05

217 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
~71K SLoC