#solidity #incremental #parser

tree-sitter-solidity

Solidity grammar for the tree-sitter parsing library

11 releases (stable)

1.2.10 Dec 13, 2024
1.2.9 Nov 27, 2024
1.2.7 Jun 12, 2024
1.2.6 May 26, 2024
0.0.2 Jun 16, 2021

#252 in Magic Beans

Download history 13/week @ 2024-09-21 3/week @ 2024-09-28 2/week @ 2024-11-16 121/week @ 2024-11-23 38/week @ 2024-11-30 128/week @ 2024-12-07 56/week @ 2024-12-14

343 downloads per month

MIT license

2.5MB
70K SLoC

C 69K SLoC JavaScript 1K SLoC // 0.1% comments Scheme 415 SLoC // 0.1% comments Rust 31 SLoC // 0.4% comments

🌴 tree-sitter-solidity

Node.js CI npm version

💡 this grammar is still in development, the structure of the generated AST is not stable

This repository contains a grammar for tree-sitter.

The goal of this project is to provide an parser efficient low-dependency parser for solidity which targets most solidity versions in use and is designed for enabling metaprogramming.

Navigating this repository

The primary file in this repository is grammar.js which describes the tree-sitter grammar.

# Primary file:
grammar.js
# Tests:
/test/**/*

# Auto generated:
/src/**/*
index.js
binding.gyp

References

-> Ethereum solidity grammar:

-> Tree-sitter javascript grammar: https://github.com/tree-sitter/tree-sitter-javascript/blob/master/grammar.js

-> Solidity antlr grammar: https://github.com/ConsenSys/solidity-parser-antlr

Major inspriration & some structures have been taken from tree-sitter-javascript, a big thanks to the contributors to this repo!

Dependencies