1 unstable release

new 0.1.0 Jun 2, 2025

#92 in #tree-sitter-grammar

MIT license

2MB
73K SLoC

C 73K SLoC JavaScript 333 SLoC // 0.0% comments Rust 27 SLoC // 0.3% comments

tree-sitter-onescript

tree-sitter-onescript — полноценная грамматика Tree-sitter, для языка OneScript.


Быстрый старт

# 0. Требования
#    ───────────
#    • Rust ≥ 1.77 (edition 2024)  • tree-sitter-cli ≥ 0.25  • Node.js — по желанию

# 1. Подключаем зависимость
cargo add tree-sitter-onescript      # или path-зависимость, пока не выложено на crates.io

# 2. Мини-пример на Rust
use tree_sitter::{Parser};
use tree_sitter_onescript::language;

let mut parser = Parser::new();
parser.set_language(language()).unwrap();
let tree = parser.parse("Перем x; x = 1;", None).unwrap();
println!("{}", tree.root_node().to_sexp());

Сборка из исходников

git clone https://github.com/tree-sitter-onescript
cd tree-sitter-onescript
tree-sitter generate   # генерирует src/parser.c
cargo build            # собирает rlib + cdylib

Структура проекта

├── grammar.js          # грамматика
├── src/
│   ├── parser.c        # автогенерируемый C-парсер
│   └── lib.rs          # безопасная обёртка (pub fn language())
└── test/corpus         # corpus-тесты (tree-sitter test …)

TODO

  • highlights.scm

  • Автоматическое тестирование на популярных библиотеках OneScript

Dependencies

~4–280KB