2021-09-19 12:00:18 +02:00
2021-09-16 00:12:41 +02:00
2021-09-19 12:00:18 +02:00
2021-09-19 12:00:18 +02:00
2021-09-19 12:00:18 +02:00
2021-06-22 23:40:31 +02:00
2021-07-01 02:22:02 +02:00
2021-07-01 02:22:02 +02:00
2021-09-19 12:00:18 +02:00
2021-09-19 12:00:18 +02:00
2021-06-07 20:38:42 +02:00
2021-09-19 12:00:18 +02:00

tree-sitter-hcl

tree-sitter grammar for the HCL language

Example

Highlighting example/example.hcl:

Highlighting Example

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.

Todo

  • add template expressions
    • add template interpolations
    • add template directives
      • add template for expressions
      • add template if expressions
    • 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
No description provided
Readme Apache-2.0 3.9 MiB
Languages
HCL 82.1%
C 17.4%
C++ 0.3%
JavaScript 0.2%