Skip to content

Commit cf36b03

Browse files
committed
feat: add Zig bindings
1 parent f10e84f commit cf36b03

File tree

5 files changed

+121
-1
lines changed

5 files changed

+121
-1
lines changed

.gitattributes

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,7 @@ go.sum linguist-generated
3535
bindings/swift/** linguist-generated
3636
Package.swift linguist-generated
3737
Package.resolved linguist-generated
38+
39+
# Zig bindings
40+
build.zig linguist-generated
41+
build.zig.zon linguist-generated

bindings/zig/root.zig

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
const testing = @import("std").testing;
2+
3+
const ts = @import("tree-sitter");
4+
const Language = ts.Language;
5+
const Parser = ts.Parser;
6+
7+
pub extern fn tree_sitter_c() callconv(.C) *const Language;
8+
9+
pub export fn language() *const Language {
10+
return tree_sitter_c();
11+
}
12+
13+
test "can load grammar" {
14+
const parser = Parser.create();
15+
defer parser.destroy();
16+
try testing.expectEqual(parser.setLanguage(language()), void{});
17+
try testing.expectEqual(parser.getLanguage(), tree_sitter_c());
18+
}
19+

build.zig

Lines changed: 79 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build.zig.zon

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tree-sitter.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
"node": true,
3939
"python": true,
4040
"rust": true,
41-
"swift": true
41+
"swift": true,
42+
"zig": true
4243
}
4344
}

0 commit comments

Comments
 (0)