tree-sitter-ktav 0.6.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -7
- package/README.ru.md +11 -7
- package/README.zh.md +11 -7
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,8 +6,12 @@
|
|
|
6
6
|
|
|
7
7
|
**Languages:** **English** · [Русский](README.ru.md) · [简体中文](README.zh.md)
|
|
8
8
|
|
|
9
|
-
[
|
|
10
|
-
|
|
9
|
+
**Playground:** convert JSON / YAML / TOML / INI ⇄ Ktav in your browser at **[ktav-lang.github.io](https://ktav-lang.github.io/)**.
|
|
10
|
+
|
|
11
|
+
[](https://crates.io/crates/tree-sitter-ktav)
|
|
12
|
+
[](https://github.com/ktav-lang/tree-sitter-ktav/actions)
|
|
13
|
+

|
|
14
|
+
[](https://ktav-lang.github.io/)
|
|
11
15
|
[](https://www.npmjs.com/package/tree-sitter-ktav)
|
|
12
16
|
|
|
13
17
|
---
|
|
@@ -37,7 +41,7 @@ this crate / npm package is the one for Ktav.
|
|
|
37
41
|
```toml
|
|
38
42
|
[dependencies]
|
|
39
43
|
tree-sitter = "0.25"
|
|
40
|
-
tree-sitter-ktav = "0.
|
|
44
|
+
tree-sitter-ktav = "0.6.0"
|
|
41
45
|
```
|
|
42
46
|
|
|
43
47
|
```rust
|
|
@@ -45,7 +49,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
|
45
49
|
let mut parser = tree_sitter::Parser::new();
|
|
46
50
|
parser.set_language(&tree_sitter_ktav::LANGUAGE.into())?;
|
|
47
51
|
|
|
48
|
-
let source = "name: Russia\nport:
|
|
52
|
+
let source = "name: Russia\nport: 8080\n";
|
|
49
53
|
let tree = parser.parse(source, None).unwrap();
|
|
50
54
|
println!("{}", tree.root_node().to_sexp());
|
|
51
55
|
Ok(())
|
|
@@ -65,7 +69,7 @@ const Ktav = require("tree-sitter-ktav");
|
|
|
65
69
|
const parser = new Parser();
|
|
66
70
|
parser.setLanguage(Ktav);
|
|
67
71
|
|
|
68
|
-
const tree = parser.parse("name: Russia\nport:
|
|
72
|
+
const tree = parser.parse("name: Russia\nport: 8080\n");
|
|
69
73
|
console.log(tree.rootNode.toString());
|
|
70
74
|
```
|
|
71
75
|
|
|
@@ -161,8 +165,8 @@ so consumers do not need the CLI to build.
|
|
|
161
165
|
|
|
162
166
|
## Status
|
|
163
167
|
|
|
164
|
-
`0.
|
|
165
|
-
The grammar accepts every valid Ktav 0.
|
|
168
|
+
`0.6.0` — implements [Ktav 0.6.0](https://github.com/ktav-lang/spec/blob/main/versions/0.6/spec.md).
|
|
169
|
+
The grammar accepts every valid Ktav 0.6.0 document (verified against
|
|
166
170
|
all `tests/valid/*.ktav` fixtures from the spec repo). It is a
|
|
167
171
|
syntactic accepter, not a strict spec validator — see
|
|
168
172
|
[`CHANGELOG.md`](CHANGELOG.md) "Known limitations" for the small
|
package/README.ru.md
CHANGED
|
@@ -6,8 +6,12 @@
|
|
|
6
6
|
|
|
7
7
|
**Языки:** [English](README.md) · **Русский** · [简体中文](README.zh.md)
|
|
8
8
|
|
|
9
|
-
[
|
|
10
|
-
|
|
9
|
+
**Песочница:** конвертация JSON / YAML / TOML / INI ⇄ Ktav прямо в браузере — **[ktav-lang.github.io](https://ktav-lang.github.io/)**.
|
|
10
|
+
|
|
11
|
+
[](https://crates.io/crates/tree-sitter-ktav)
|
|
12
|
+
[](https://github.com/ktav-lang/tree-sitter-ktav/actions)
|
|
13
|
+

|
|
14
|
+
[](https://ktav-lang.github.io/)
|
|
11
15
|
[](https://www.npmjs.com/package/tree-sitter-ktav)
|
|
12
16
|
|
|
13
17
|
---
|
|
@@ -37,7 +41,7 @@ VS Code, Zed, …) используют его для подсветки син
|
|
|
37
41
|
```toml
|
|
38
42
|
[dependencies]
|
|
39
43
|
tree-sitter = "0.25"
|
|
40
|
-
tree-sitter-ktav = "0.
|
|
44
|
+
tree-sitter-ktav = "0.6.0"
|
|
41
45
|
```
|
|
42
46
|
|
|
43
47
|
```rust
|
|
@@ -45,7 +49,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
|
45
49
|
let mut parser = tree_sitter::Parser::new();
|
|
46
50
|
parser.set_language(&tree_sitter_ktav::LANGUAGE.into())?;
|
|
47
51
|
|
|
48
|
-
let source = "name: Russia\nport:
|
|
52
|
+
let source = "name: Russia\nport: 8080\n";
|
|
49
53
|
let tree = parser.parse(source, None).unwrap();
|
|
50
54
|
println!("{}", tree.root_node().to_sexp());
|
|
51
55
|
Ok(())
|
|
@@ -65,7 +69,7 @@ const Ktav = require("tree-sitter-ktav");
|
|
|
65
69
|
const parser = new Parser();
|
|
66
70
|
parser.setLanguage(Ktav);
|
|
67
71
|
|
|
68
|
-
const tree = parser.parse("name: Russia\nport:
|
|
72
|
+
const tree = parser.parse("name: Russia\nport: 8080\n");
|
|
69
73
|
console.log(tree.rootNode.toString());
|
|
70
74
|
```
|
|
71
75
|
|
|
@@ -161,8 +165,8 @@ npx tree-sitter test # запускает корпус
|
|
|
161
165
|
|
|
162
166
|
## Статус
|
|
163
167
|
|
|
164
|
-
`0.
|
|
165
|
-
Грамматика принимает любой валидный документ Ktav 0.
|
|
168
|
+
`0.6.0` — реализует [Ktav 0.6.0](https://github.com/ktav-lang/spec/blob/main/versions/0.6/spec.md).
|
|
169
|
+
Грамматика принимает любой валидный документ Ktav 0.6.0 (проверено на
|
|
166
170
|
всех фикстурах `tests/valid/*.ktav` из spec-репозитория). Это
|
|
167
171
|
синтаксический акцептор, а не строгий валидатор — небольшое число
|
|
168
172
|
патологических случаев, которые грамматика принимает, а спецификация
|
package/README.zh.md
CHANGED
|
@@ -5,8 +5,12 @@
|
|
|
5
5
|
|
|
6
6
|
**语言:** [English](README.md) · [Русский](README.ru.md) · **简体中文**
|
|
7
7
|
|
|
8
|
-
[
|
|
9
|
-
|
|
8
|
+
**演练场:** 在浏览器中互转 JSON / YAML / TOML / INI ⇄ Ktav — **[ktav-lang.github.io](https://ktav-lang.github.io/)**。
|
|
9
|
+
|
|
10
|
+
[](https://crates.io/crates/tree-sitter-ktav)
|
|
11
|
+
[](https://github.com/ktav-lang/tree-sitter-ktav/actions)
|
|
12
|
+

|
|
13
|
+
[](https://ktav-lang.github.io/)
|
|
10
14
|
[](https://www.npmjs.com/package/tree-sitter-ktav)
|
|
11
15
|
|
|
12
16
|
---
|
|
@@ -33,7 +37,7 @@ JSON 相同(标量、数组、对象、`null`、布尔值),但字符串无
|
|
|
33
37
|
```toml
|
|
34
38
|
[dependencies]
|
|
35
39
|
tree-sitter = "0.25"
|
|
36
|
-
tree-sitter-ktav = "0.
|
|
40
|
+
tree-sitter-ktav = "0.6.0"
|
|
37
41
|
```
|
|
38
42
|
|
|
39
43
|
```rust
|
|
@@ -41,7 +45,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
|
41
45
|
let mut parser = tree_sitter::Parser::new();
|
|
42
46
|
parser.set_language(&tree_sitter_ktav::LANGUAGE.into())?;
|
|
43
47
|
|
|
44
|
-
let source = "name: Russia\nport:
|
|
48
|
+
let source = "name: Russia\nport: 8080\n";
|
|
45
49
|
let tree = parser.parse(source, None).unwrap();
|
|
46
50
|
println!("{}", tree.root_node().to_sexp());
|
|
47
51
|
Ok(())
|
|
@@ -61,7 +65,7 @@ const Ktav = require("tree-sitter-ktav");
|
|
|
61
65
|
const parser = new Parser();
|
|
62
66
|
parser.setLanguage(Ktav);
|
|
63
67
|
|
|
64
|
-
const tree = parser.parse("name: Russia\nport:
|
|
68
|
+
const tree = parser.parse("name: Russia\nport: 8080\n");
|
|
65
69
|
console.log(tree.rootNode.toString());
|
|
66
70
|
```
|
|
67
71
|
|
|
@@ -157,8 +161,8 @@ CLI 即可构建。
|
|
|
157
161
|
|
|
158
162
|
## 状态
|
|
159
163
|
|
|
160
|
-
`0.
|
|
161
|
-
语法接受所有合法的 Ktav 0.
|
|
164
|
+
`0.6.0` — 实现 [Ktav 0.6.0](https://github.com/ktav-lang/spec/blob/main/versions/0.6/spec.md)。
|
|
165
|
+
语法接受所有合法的 Ktav 0.6.0 文档(对 spec 仓库下
|
|
162
166
|
`tests/valid/*.ktav` 全部用例验证通过)。它是一个语法接受器,而非
|
|
163
167
|
严格的规范校验器——少数语法接受但规范拒绝的边界情况(主要是 § 6.10
|
|
164
168
|
"标记后必须有空格")见 [`CHANGELOG.md`](CHANGELOG.md)。
|