tree-sitter-verilog
Verilog grammar for tree-sitter
What it is and what it does
tree-sitter-verilog is a language grammar binding that integrates SystemVerilog parsing into the tree-sitter incremental parsing framework. It allows developers to parse Verilog and SystemVerilog code into abstract syntax trees, enabling static analysis, code generation, linting, and other language-aware tooling for hardware description languages.
The package ships as precompiled binaries for major platforms (macOS, Linux, Windows; x86_64 and ARM64 architectures), reducing installation friction. It has no runtime dependencies and requires Python 3.9 or later. The project is maintained by the tree-sitter community but is currently dormant, with the last commit in November 2024.
Use it for:
- Build static analysis tools or linters that understand Verilog syntax and structure.
- Generate code from Verilog templates or perform automated refactoring on hardware designs.
- Implement IDE features like syntax highlighting or symbol navigation for Verilog.
- Parse and analyze Verilog test suites or design specifications programmatically.
- Integrate Verilog parsing into hardware verification or simulation workflows.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a SystemVerilog grammar parser for tree-sitter, enabling incremental parsing and syntax tree analysis of Verilog hardware description language code.
Yes, if you need to parse SystemVerilog code and are comfortable with a dormant but stable package. The permissive MIT license, zero runtime dependencies, and broad platform support make it low-risk. Install friction is medium due to compiled binaries, but prebuilt wheels for common platforms mitigate this. No known security vulnerabilities. Suitable for hardware design tooling, static analysis, and code generation workflows.
Install
tree-sitter-verilog on PyPI
pip
pip install tree-sitter-veriloguv
uv add tree-sitter-verilogpoetry
poetry add tree-sitter-verilogInstalling tree-sitter-verilog
Before you install
Medium install friction due to compiled binary wheels; however, wheels are provided for common platforms (x86_64, ARM64, macOS, Linux, Windows). Package is dormant (last commit 2024-11-11, 642 days since release) but appears stable.
License in practice
MIT license is permissive; you can use, modify, and distribute this package with minimal restrictions, making it suitable for both open-source and commercial projects.
Quickstart
pip install tree-sitter-verilog
import tree_sitter_verilog
# tree-sitter-verilog provides a SystemVerilog grammar for use with tree-sitter
Requires Python 3.9 or later; compiled binary wheels are platform-specific.
Verify before relying
- How to instantiate and use the grammar with tree-sitter in Python (the package's public API).
- Whether the SystemVerilog grammar covers all language features or has known limitations.
- Performance characteristics for parsing large or complex Verilog files.
- Compatibility with specific tree-sitter versions or other Python ecosystem tools.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | dormant — 642 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,512,247/month — #3,825 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: tree_sitter_verilog-1.0.3-cp39-abi3-macosx_10_9_x86_64.whl; tree_sitter_verilog-1.0.3-cp39-abi3-macosx_11_0_arm64.whl; tree_sitter_verilog-1.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; tree_sitter_verilog-1.0.3-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl; tree_sitter_verilog-1.0.3-cp39-abi3-musllinux_1_2_x86_64.whl; tree_sitter_verilog-1.0.3-cp39-abi3-win_amd64.whl; tree_sitter_verilog-1.0.3-cp39-abi3-win_arm64.whl
Keywords: incremental, parsing, tree-sitter, verilog
Tags
More Linguistic packages
Detects and normalizes text encoding from…
permissive · top 100 on PyPI
tiktokentiktoken is a fast BPE tokenizer that converts…
permissive · top 1,000 on PyPI
chardetDetects character encoding and language in byte…
permissive · top 1,000 on PyPI
text-unidecodeConverts Unicode text to ASCII by…
copyleft · top 1,000 on PyPI
larkLark is a parsing library that builds abstract…
permissive · top 1,000 on PyPI
tree-sitterPython bindings to the tree-sitter parsing…
permissive · top 1,000 on PyPI
pyslangpyslang provides Python bindings to parse,…
permissive · top 15,000 on PyPI
tree-sitter-javaProvides a Java language grammar for…
permissive · top 5,000 on PyPI
tree-sitter-goProvides a Go language grammar for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-pythonProvides a Python grammar for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-cProvides a C language grammar for tree-sitter,…
permissive · top 5,000 on PyPI
svqlParses SystemVerilog modules and exposes their…
permissive · top 15,000 on PyPI
tree-sitter-jsonProvides a JSON grammar parser for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-kotlinProvides a Kotlin language grammar for…
permissive · top 5,000 on PyPI
tree-sitter-phpProvides a PHP language grammar for…
permissive · top 5,000 on PyPI
vcdvcdParses Verilog value change dump (VCD) files…
unclear · top 15,000 on PyPI