{"id":50962748,"url":"https://github.com/sei40kr/tree-sitter-fstar","last_synced_at":"2026-06-18T16:02:44.405Z","repository":{"id":344341331,"uuid":"1180544491","full_name":"sei40kr/tree-sitter-fstar","owner":"sei40kr","description":"Tree-sitter grammar for F*","archived":false,"fork":false,"pushed_at":"2026-03-14T06:57:04.000Z","size":239,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-11T23:42:16.305Z","etag":null,"topics":["fstar","parser","syntax-highlighting","tree-sitter"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sei40kr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-13T06:32:20.000Z","updated_at":"2026-03-14T06:57:07.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sei40kr/tree-sitter-fstar","commit_stats":null,"previous_names":["sei40kr/tree-sitter-fstar"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sei40kr/tree-sitter-fstar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sei40kr%2Ftree-sitter-fstar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sei40kr%2Ftree-sitter-fstar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sei40kr%2Ftree-sitter-fstar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sei40kr%2Ftree-sitter-fstar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sei40kr","download_url":"https://codeload.github.com/sei40kr/tree-sitter-fstar/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sei40kr%2Ftree-sitter-fstar/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34497372,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-18T02:00:06.871Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fstar","parser","syntax-highlighting","tree-sitter"],"created_at":"2026-06-18T16:02:43.556Z","updated_at":"2026-06-18T16:02:44.397Z","avatar_url":"https://github.com/sei40kr.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tree-sitter-fstar\n\nA [tree-sitter](https://tree-sitter.github.io/tree-sitter/) grammar for [F\\*](https://fstar-lang.org/), a proof-oriented programming language.\n\n## Features\n\n- Module declarations (`module`, `open`, `include`, `friend`, module abbreviations)\n- Declarations (`val`, `let`/`let rec`, `type` with inductive/record/abbreviation bodies, `exception`, `assume`, `effect`, `class`)\n- Expressions with full operator precedence (23 levels)\n- Pattern matching (constructor, cons, or, as, typed, tuple, list, record)\n- Types (refinement, dependent arrow, effect-annotated)\n- Binders (explicit, implicit `#`, typeclass `{|...|}`), refinement types\n- Literals (integers with hex/octal/binary/suffixes, strings, chars, booleans, unit)\n- Nested block comments `(* (* ... *) *)` via external scanner\n- Pragmas (`#set-options`, `#push-options`, `#pop-options`, `#reset-options`, `#restart-solver`)\n- Syntax highlighting queries for Neovim\n\n## Development\n\nThis project uses [Nix](https://nixos.org/) with [numtide/blueprint](https://github.com/numtide/blueprint) for development.\n\n### Prerequisites\n\n- [Nix](https://nixos.org/) with flakes enabled\n\n### Getting started\n\n```sh\n# Enter the development shell\nnix develop\n\n# Generate the parser from grammar.js\ntree-sitter generate\n\n# Run tests\ntree-sitter test\n\n# Parse an example file\ntree-sitter parse examples/HelloWorld.fst\n```\n\n### Testing with Neovim\n\nThe devshell includes a Neovim instance pre-configured with the F\\* parser and [catppuccin](https://github.com/catppuccin/nvim) colorscheme:\n\n```sh\nnix develop\nnvim examples/Factorial.fst\n```\n\n### Project structure\n\n```\ngrammar.js                    # Grammar definition\nsrc/scanner.c                 # External scanner for nested block comments\nqueries/highlights.scm        # Syntax highlighting queries (Neovim style)\ntest/corpus/                  # Test cases\nexamples/                     # Sample F* files\nnix/                          # Nix configuration\n  devshell.nix                # Development shell\n  packages/tree-sitter-fstar.nix  # Nix package\n  treefmt.nix                 # Formatter configuration\n```\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsei40kr%2Ftree-sitter-fstar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsei40kr%2Ftree-sitter-fstar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsei40kr%2Ftree-sitter-fstar/lists"}