0e7d8ddb4b1e64984234f1079156bceaec9f99cf
tree-sitter-hcl
tree-sitter grammar for the HCL language
Example
Highlighting example/example.hcl:
Developing
It is recommended to use nix to fulfill all development dependencies. To activate the development environment simply run nix-shell in the project root.
Running Tests
To run tests simply run nix-shell --run 'tree-sitter test'.
Compliance
The directory example/real_world_stuff contains a corpus of hcl files that I found with the github query language:HCL for users coreos, hashicorp, oracle and terraform-community-modules.
tree-sitter parse --quiet --stat example/real_world_stuff/*/*
Total parses: 1892; successful parses: 1892; failed parses: 0; success percentage: 100.00%
Fuzzing
The directory fuzz/crashers contains a set of crashes that were found with fuzzing. To fuzz the parser i used the instrumentation of tree-sitter
Todo
- add template expressions
- add template interpolations
- add template directives
- add quoted templates
- add heredoc templates
- fuzzing
- start with fuzzing the parser
- upload fuzzing instrumentation
- document fuzzing process
- quality
- add CI job that ensures the parser builds on different plattforms
- add CI job that parses crashers that were found during fuzzing
Description
Languages
HCL
82.1%
C
17.4%
C++
0.3%
JavaScript
0.2%
