#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

#110 in Text editors

Download history 10/week @ 2024-01-22 8/week @ 2024-01-29 23/week @ 2024-02-12 159/week @ 2024-02-19 90/week @ 2024-02-26 211/week @ 2024-03-04 58/week @ 2024-03-11 30/week @ 2024-03-18 97/week @ 2024-03-25 62/week @ 2024-04-01 27/week @ 2024-04-08 39/week @ 2024-04-15 106/week @ 2024-04-22 21/week @ 2024-04-29 19/week @ 2024-05-06

190 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