tree-sitter-zig:
I was thinking about creating a tree-sitter grammar for zig before the college semester starts but it takes more time than a thought (3 weeks), not even full released yet.
I did some progress because of Programming Languages cource; Improved on emacs and jj-vcs , got mad a moment but worth it . Want to learn forgejo workflow now
https://codeberg.org/guifersv/tree-sitter-zig
2 Likes
There is a list of them on https://github.com/tree-sitter/tree-sitter/wiki/List-of-parsers , this one is more similar to mine. It even got great pull requests, but they aren’t merged.
I think I can learn from them to improve my implementation, that’s good
1 Like
I can now parse every .zig/.zon on zig source code excluding:
some on test/cases/compile_errors
doc/langref/var_must_be_initialized.zig
doc/langref/tldoc_comments.zig
doc/langref/unattached_doc-comment.zig
Tested some repos and the only thing I have found was a ambiguity on index expressions with range, block expression and sentinel like: const a = b[0.. blk: { break :blk 1; } :0];
Changed repo to github for workflows;
Parsed the following projects:
On zig source code it failed on (intentional syntax errors):
FAILED: ../zig/test/cases/compile_errors/empty_for_loop_body.zig
FAILED: ../zig/test/cases/compile_errors/const_is_a_statement_not_an_expression.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-block_statement.zig
FAILED: ../zig/test/cases/compile_errors/empty_char_lit.zig
FAILED: ../zig/test/cases/compile_errors/invalid_unicode_escape.zig
FAILED: ../zig/test/cases/compile_errors/normal_string_with_newline.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-for_statement.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-if-else_expression.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-while-continue_statement.zig
FAILED: ../zig/test/cases/compile_errors/empty_while_loop_body.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-for_expression.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-if-else_statement.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-while_statement.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-comptime_expression.zig
FAILED: ../zig/test/cases/compile_errors/invalid_float_literal.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-if-else-if_statement.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-comptime_statement.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-block_expr.zig
FAILED: ../zig/test/cases/compile_errors/reject_extern_variables_with_initializers.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-if_statement.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-if-else-if-else_expression.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-defer.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-while-continue_expression.zig
FAILED: ../zig/test/cases/compile_errors/non-extern_function_with_var_args.zig
FAILED: ../zig/test/cases/compile_errors/invalid_pointer_syntax.zig
FAILED: ../zig/test/cases/compile_errors/for_empty.zig
FAILED: ../zig/test/cases/compile_errors/reject_extern_function_definitions_with_body.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-if-else-if_expression.zig
FAILED: ../zig/test/cases/compile_errors/missing_function_proto_name.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-test_statement.zig
FAILED: ../zig/test/cases/compile_errors/extern_packed_on_opaque.zig
FAILED: ../zig/test/cases/compile_errors/invalid_legacy_unicode_escape.zig
FAILED: ../zig/test/cases/compile_errors/function_prototype_with_no_body.zig
FAILED: ../zig/test/cases/compile_errors/empty_if_body.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-test_expression.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-if-else-if-else_statement.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-if_expression.zig
FAILED: ../zig/test/cases/compile_errors/invalid_empty_unicode_escape.zig
FAILED: ../zig/test/cases/compile_errors/extra_comma_in_destructure.zig
FAILED: ../zig/test/cases/compile_errors/implicit_semicolon-while_expression.zig
FAILED: ../zig/doc/langref/var_must_be_initialized.zig
FAILED: ../zig/doc/langref/unattached_doc-comment.zig
glfmn
September 29, 2026, 8:28pm
6
As a side note, codeberg has CI/actions which are pretty similar to GitHub. You need to apply for it but since your project is GPL it’s likely to get auto approved.
1 Like