fix: align project with upstream layout

This commit is contained in:
maunzCache
2025-03-30 14:02:12 +02:00
committed by Michael Hoffmann
parent 91ab40725d
commit 3a58dc8928
19 changed files with 575 additions and 123 deletions

6
.gitattributes vendored
View File

@@ -6,7 +6,7 @@ src/parser.c linguist-generated
src/tree_sitter/* linguist-generated src/tree_sitter/* linguist-generated
# C bindings # C bindings
bindings/c/* linguist-generated bindings/c/** linguist-generated
CMakeLists.txt linguist-generated CMakeLists.txt linguist-generated
Makefile linguist-generated Makefile linguist-generated
@@ -35,3 +35,7 @@ go.sum linguist-generated
bindings/swift/** linguist-generated bindings/swift/** linguist-generated
Package.swift linguist-generated Package.swift linguist-generated
Package.resolved linguist-generated Package.resolved linguist-generated
# Zig bindings
build.zig linguist-generated
build.zig.zon linguist-generated

53
.gitignore vendored
View File

@@ -1,9 +1,54 @@
node_modules # Rust artifacts
target/
# Node artifacts
build/
prebuilds/
node_modules/
# Swift artifacts
.build/
# Go artifacts
_obj/
# Python artifacts
.venv/
dist/
*.egg-info
*.whl
# C artifacts
*.a
*.so
*.so.*
*.dylib
*.dll
*.pc
*.exp
*.lib
# Zig artifacts
.zig-cache/
zig-cache/
zig-out/
# Example dirs
/examples/*/
# Grammar volatiles
*.wasm
*.obj
*.o
# Archives
*.tar.gz
*.tgz
*.zip
# Project misc.
queries queries
build
target
npm-debug.log npm-debug.log
log.html log.html
.env .env
.DS_Store .DS_Store
/.build

1
Cargo.lock generated
View File

@@ -183,6 +183,7 @@ version = "0.0.1"
dependencies = [ dependencies = [
"cc", "cc",
"tree-sitter", "tree-sitter",
"tree-sitter-language",
] ]
[[package]] [[package]]

30
Cargo.toml generated
View File

@@ -1,21 +1,33 @@
[package] [package]
name = "tree-sitter-hcl" name = "tree-sitter-hcl"
description = "hcl grammar for the tree-sitter parsing library" description = "HCL grammar for tree-sitter"
version = "0.0.1" version = "0.0.1"
keywords = ["incremental", "parsing", "hcl"] license = "Apache-2.0"
categories = ["parsing", "text-editors"] readme = "README.md"
repository = "https://github.com/MichaHoffmann/tree-sitter-hcl" keywords = ["incremental", "parsing", "tree-sitter", "hcl"]
edition = "2018" categories = ["parser-implementations", "parsing", "text-editors"]
license = "Apache" repository = "https://github.com/tree-sitter-grammars/tree-sitter-hcl"
edition = "2021"
autoexamples = false
build = "bindings/rust/build.rs" build = "bindings/rust/build.rs"
include = ["bindings/rust/*", "grammar.js", "queries/*", "src/*"] include = [
"bindings/rust/*",
"grammar.js",
"queries/*",
"src/*",
"tree-sitter.json",
"LICENSE",
]
[lib] [lib]
path = "bindings/rust/lib.rs" path = "bindings/rust/lib.rs"
[dependencies] [dependencies]
tree-sitter = "0.25" tree-sitter-language = "0.1"
[build-dependencies] [build-dependencies]
cc = "1.0" cc = "1.2"
[dev-dependencies]
tree-sitter = "0.25"

26
binding.gyp generated
View File

@@ -2,18 +2,34 @@
"targets": [ "targets": [
{ {
"target_name": "tree_sitter_hcl_binding", "target_name": "tree_sitter_hcl_binding",
"dependencies": [
"<!(node -p \"require('node-addon-api').targets\"):node_addon_api_except",
],
"include_dirs": [ "include_dirs": [
"<!(node -e \"require('nan')\")", "src",
"src"
], ],
"sources": [ "sources": [
"bindings/node/binding.cc", "bindings/node/binding.cc",
"src/parser.c", "src/parser.c",
"src/scanner.c",
], ],
"variables": {
"has_scanner": "<!(node -p \"fs.existsSync('src/scanner.c')\")"
},
"conditions": [
["has_scanner=='true'", {
"sources+": ["src/scanner.c"],
}],
["OS!='win'", {
"cflags_c": [ "cflags_c": [
"-std=c99", "-std=c11",
] ],
}, { # OS == "win"
"cflags_c": [
"/std:c11",
"/utf-8",
],
}],
],
} }
] ]
} }

View File

@@ -1,28 +1,19 @@
#include "tree_sitter/parser.h" #include <napi.h>
#include <node.h>
#include "nan.h"
using namespace v8; typedef struct TSLanguage TSLanguage;
extern "C" TSLanguage * tree_sitter_hcl(); extern "C" TSLanguage *tree_sitter_hcl();
namespace { // "tree-sitter", "language" hashed with BLAKE2
const napi_type_tag LANGUAGE_TYPE_TAG = {
0x8AF2E5212AD58ABF, 0xD5006CAD83ABBA16
};
NAN_METHOD(New) {} Napi::Object Init(Napi::Env env, Napi::Object exports) {
auto language = Napi::External<TSLanguage>::New(env, tree_sitter_hcl());
void Init(Local<Object> exports, Local<Object> module) { language.TypeTag(&LANGUAGE_TYPE_TAG);
Local<FunctionTemplate> tpl = Nan::New<FunctionTemplate>(New); exports["language"] = language;
tpl->SetClassName(Nan::New("Language").ToLocalChecked()); return exports;
tpl->InstanceTemplate()->SetInternalFieldCount(1);
Local<Function> constructor = Nan::GetFunction(tpl).ToLocalChecked();
Local<Object> instance = constructor->NewInstance(Nan::GetCurrentContext()).ToLocalChecked();
Nan::SetInternalFieldPointer(instance, 0, tree_sitter_hcl());
Nan::Set(instance, Nan::New("name").ToLocalChecked(), Nan::New("hcl").ToLocalChecked());
Nan::Set(module, Nan::New("exports").ToLocalChecked(), instance);
} }
NODE_MODULE(tree_sitter_hcl_binding, Init) NODE_API_MODULE(tree_sitter_PARSER_NAME_binding, Init)
} // namespace

View File

@@ -1,9 +1,9 @@
/// <reference types="node" />
const assert = require("node:assert"); const assert = require("node:assert");
const { test } = require("node:test"); const { test } = require("node:test");
const Parser = require("tree-sitter");
test("can load grammar", () => { test("can load grammar", () => {
const parser = new Parser(); const parser = new (require("tree-sitter"))();
assert.doesNotThrow(() => parser.setLanguage(require("."))); assert.doesNotThrow(() => parser.setLanguage(require(".")));
}); });

1
bindings/node/index.d.ts generated vendored
View File

@@ -19,7 +19,6 @@ type NodeInfo =
}); });
type Language = { type Language = {
name: string;
language: unknown; language: unknown;
nodeTypeInfo: NodeInfo[]; nodeTypeInfo: NodeInfo[];
}; };

18
bindings/node/index.js generated
View File

@@ -1,18 +1,6 @@
try { const root = require("path").join(__dirname, "..", "..");
module.exports = require("../../build/Release/tree_sitter_hcl_binding");
} catch (error1) { module.exports = require("node-gyp-build")(root);
if (error1.code !== 'MODULE_NOT_FOUND') {
throw error1;
}
try {
module.exports = require("../../build/Debug/tree_sitter_hcl_binding");
} catch (error2) {
if (error2.code !== 'MODULE_NOT_FOUND') {
throw error2;
}
throw error1
}
}
try { try {
module.exports.nodeTypeInfo = require("../../src/node-types.json"); module.exports.nodeTypeInfo = require("../../src/node-types.json");

13
bindings/rust/build.rs generated
View File

@@ -2,18 +2,25 @@ fn main() {
let src_dir = std::path::Path::new("src"); let src_dir = std::path::Path::new("src");
let mut c_config = cc::Build::new(); let mut c_config = cc::Build::new();
c_config.include(src_dir); c_config.std("c11").include(src_dir);
#[cfg(target_env = "msvc")]
c_config.flag("-utf-8");
c_config c_config
.flag_if_supported("-Wno-unused-parameter") .flag_if_supported("-Wno-unused-parameter")
.flag_if_supported("-Wno-unused-but-set-variable") .flag_if_supported("-Wno-unused-but-set-variable")
.flag_if_supported("-Wno-trigraphs"); .flag_if_supported("-Wno-trigraphs");
let parser_path = src_dir.join("parser.c"); let parser_path = src_dir.join("parser.c");
c_config.file(&parser_path); c_config.file(&parser_path);
println!("cargo:rerun-if-changed={}", parser_path.to_str().unwrap());
let scanner_path = src_dir.join("scanner.c"); let scanner_path = src_dir.join("scanner.c");
if scanner_path.exists() {
c_config.file(&scanner_path); c_config.file(&scanner_path);
println!("cargo:rerun-if-changed={}", scanner_path.to_str().unwrap()); println!("cargo:rerun-if-changed={}", scanner_path.to_str().unwrap());
}
c_config.compile("parser"); c_config.compile("tree-sitter-hcl");
println!("cargo:rerun-if-changed={}", parser_path.to_str().unwrap());
} }

43
bindings/rust/lib.rs generated
View File

@@ -1,44 +1,45 @@
//! This crate provides hcl language support for the [tree-sitter][] parsing library. //! This crate provides hcl language support for the [tree-sitter][] parsing library.
//! //!
//! Typically, you will use the [language][language func] function to add this language to a //! Typically, you will use the [LANGUAGE][] constant to add this language to a
//! tree-sitter [Parser][], and then use the parser to parse some code: //! tree-sitter [Parser][], and then use the parser to parse some code:
//! //!
//! ``` //! ```
//! let code = ""; //! let code = r#"
//! "#;
//! let mut parser = tree_sitter::Parser::new(); //! let mut parser = tree_sitter::Parser::new();
//! parser.set_language(tree_sitter_hcl::language()).expect("Error loading hcl grammar"); //! let language = tree_sitter_PARSER_NAME::LANGUAGE;
//! parser
//! .set_language(&language.into())
//! .expect("Error loading TITLE_PARSER_NAME parser");
//! let tree = parser.parse(code, None).unwrap(); //! let tree = parser.parse(code, None).unwrap();
//! assert!(!tree.root_node().has_error());
//! ``` //! ```
//! //!
//! [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html
//! [language func]: fn.language.html
//! [Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html //! [Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html
//! [tree-sitter]: https://tree-sitter.github.io/ //! [tree-sitter]: https://tree-sitter.github.io/
use tree_sitter::Language; use tree_sitter_language::LanguageFn;
extern "C" { extern "C" {
fn tree_sitter_hcl() -> Language; fn tree_sitter_hcl() -> *const ();
} }
/// Get the tree-sitter [Language][] for this grammar. /// The tree-sitter [`LanguageFn`][LanguageFn] for this grammar.
/// ///
/// [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html /// [LanguageFn]: https://docs.rs/tree-sitter-language/*/tree_sitter_language/struct.LanguageFn.html
pub fn language() -> Language { pub const LANGUAGE: LanguageFn = unsafe { LanguageFn::from_raw(tree_sitter_hcl) };
unsafe { tree_sitter_hcl() }
}
/// The content of the [`node-types.json`][] file for this grammar. /// The content of the [`node-types.json`][] file for this grammar.
/// ///
/// [`node-types.json`]: https://tree-sitter.github.io/tree-sitter/using-parsers#static-node-types /// [`node-types.json`]: https://tree-sitter.github.io/tree-sitter/using-parsers/6-static-node-types
pub const NODE_TYPES: &'static str = include_str!("../../src/node-types.json"); pub const NODE_TYPES: &str = include_str!("../../src/node-types.json");
// Uncomment these to include any queries that this grammar contains // NOTE: uncomment these to include any queries that this grammar contains:
// pub const HIGHLIGHTS_QUERY: &'static str = include_str!("../../queries/highlights.scm"); // pub const HIGHLIGHTS_QUERY: &str = include_str!("../../queries/highlights.scm");
// pub const INJECTIONS_QUERY: &'static str = include_str!("../../queries/injections.scm"); // pub const INJECTIONS_QUERY: &str = include_str!("../../queries/injections.scm");
// pub const LOCALS_QUERY: &'static str = include_str!("../../queries/locals.scm"); // pub const LOCALS_QUERY: &str = include_str!("../../queries/locals.scm");
// pub const TAGS_QUERY: &'static str = include_str!("../../queries/tags.scm"); // pub const TAGS_QUERY: &str = include_str!("../../queries/tags.scm");
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
@@ -46,7 +47,7 @@ mod tests {
fn test_can_load_grammar() { fn test_can_load_grammar() {
let mut parser = tree_sitter::Parser::new(); let mut parser = tree_sitter::Parser::new();
parser parser
.set_language(&super::language()) .set_language(&super::LANGUAGE.into())
.expect("Error loading hcl language"); .expect("Error loading hcl parser");
} }
} }

View File

@@ -1,3 +1,11 @@
/**
* @file HCL grammar for tree-sitter
* @license Apache-2.0
*/
/// <reference types="tree-sitter-cli/dsl" />
// @ts-check
const make_grammar = require('../../make_grammar'); const make_grammar = require('../../make_grammar');
module.exports = make_grammar('terraform'); module.exports = make_grammar('terraform');

View File

@@ -1,9 +1,9 @@
{ {
"name": "tree-sitter-terraform", "name": "@tree-sitter-grammars/tree-sitter-terraform",
"version": "0.0.1", "version": "0.0.1",
"description": "Terraform grammar for tree-sitter", "description": "Terraform grammar for tree-sitter",
"repository": "github:tree-sitter/tree-sitter-terraform", "repository": "github:tree-sitter/tree-sitter-hcl",
"license": "MIT", "license": "Apache-2.0",
"main": "bindings/node", "main": "bindings/node",
"types": "bindings/node", "types": "bindings/node",
"keywords": [ "keywords": [
@@ -14,22 +14,24 @@
], ],
"files": [ "files": [
"grammar.js", "grammar.js",
"tree-sitter.json",
"binding.gyp", "binding.gyp",
"prebuilds/**", "prebuilds/**",
"bindings/node/*", "bindings/node/*",
"queries/*", "queries/*",
"src/**" "src/**",
"*.wasm"
], ],
"dependencies": { "dependencies": {
"node-addon-api": "^7.1.0", "node-addon-api": "^8.2.1",
"node-gyp-build": "^4.8.0" "node-gyp-build": "^4.8.2"
}, },
"devDependencies": { "devDependencies": {
"prebuildify": "^6.0.0", "prebuildify": "^6.0.1",
"tree-sitter-cli": "^0.24" "tree-sitter-cli": "^0.25"
}, },
"peerDependencies": { "peerDependencies": {
"tree-sitter": "^0.24" "tree-sitter": "^0.21.1"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
"tree-sitter": { "tree-sitter": {
@@ -38,10 +40,8 @@
}, },
"scripts": { "scripts": {
"install": "node-gyp-build", "install": "node-gyp-build",
"prebuildify": "prebuildify --napi --strip", "prestart": "tree-sitter build --wasm",
"build": "tree-sitter generate", "start": "tree-sitter playground",
"build-wasm": "tree-sitter build --wasm", "test": "node --test bindings/node/*_test.js"
"test": "tree-sitter test",
"parse": "tree-sitter parse"
} }
} }

View File

@@ -11,10 +11,10 @@
], ],
"metadata": { "metadata": {
"version": "0.0.1", "version": "0.0.1",
"license": "MIT", "license": "Apache-2.0",
"description": "Terraform grammar for tree-sitter", "description": "Terraform grammar for tree-sitter",
"links": { "links": {
"repository": "https://github.com/tree-sitter/tree-sitter-terraform" "repository": "https://github.com/tree-sitter/tree-sitter-hcl"
} }
}, },
"bindings": { "bindings": {
@@ -23,6 +23,7 @@
"node": false, "node": false,
"python": false, "python": false,
"rust": false, "rust": false,
"swift": false "swift": false,
"zig": false
} }
} }

View File

@@ -1,3 +1,11 @@
/**
* @file HCL grammar for tree-sitter
* @license Apache-2.0
*/
/// <reference types="tree-sitter-cli/dsl" />
// @ts-check
const make_grammar = require('./make_grammar'); const make_grammar = require('./make_grammar');
module.exports = make_grammar('hcl'); module.exports = make_grammar('hcl');

View File

@@ -12,6 +12,7 @@ module.exports = function make_grammar(dialect) {
string_lit: 2, string_lit: 2,
quoted_template: 1, quoted_template: 1,
}; };
return grammar({ return grammar({
name: dialect, name: dialect,

349
package-lock.json generated
View File

@@ -1,28 +1,347 @@
{ {
"name": "tree-sitter-hcl", "name": "@tree-sitter-grammars/tree-sitter-hcl",
"version": "0.2.0-snapshot", "version": "0.2.0-snapshot",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "tree-sitter-hcl", "name": "@tree-sitter-grammars/tree-sitter-hcl",
"version": "0.2.0-snapshot", "version": "0.2.0-snapshot",
"license": "ISC", "hasInstallScript": true,
"license": "Apache-2.0",
"dependencies": { "dependencies": {
"nan": "^2.14.2", "node-addon-api": "^8.2.1",
"node-gyp-build": "^4.8.2"
},
"devDependencies": {
"prebuildify": "^6.0.1",
"tree-sitter-cli": "^0.25" "tree-sitter-cli": "^0.25"
},
"peerDependencies": {
"tree-sitter": "^0.21.1"
},
"peerDependenciesMeta": {
"tree-sitter": {
"optional": true
}
} }
}, },
"node_modules/nan": { "node_modules/base64-js": {
"version": "2.22.0", "version": "1.5.1",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"license": "MIT" "license": "MIT"
}, },
"node_modules/bl": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
"dev": true,
"license": "MIT",
"dependencies": {
"buffer": "^5.5.0",
"inherits": "^2.0.4",
"readable-stream": "^3.4.0"
}
},
"node_modules/buffer": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"license": "MIT",
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
}
},
"node_modules/chownr": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
"dev": true,
"license": "ISC"
},
"node_modules/end-of-stream": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"once": "^1.4.0"
}
},
"node_modules/fs-constants": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
"dev": true,
"license": "MIT"
},
"node_modules/ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"license": "BSD-3-Clause"
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true,
"license": "ISC"
},
"node_modules/minimist": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/mkdirp-classic": {
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
"dev": true,
"license": "MIT"
},
"node_modules/node-abi": {
"version": "3.74.0",
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.74.0.tgz",
"integrity": "sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==",
"dev": true,
"license": "MIT",
"dependencies": {
"semver": "^7.3.5"
},
"engines": {
"node": ">=10"
}
},
"node_modules/node-addon-api": {
"version": "8.3.1",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.3.1.tgz",
"integrity": "sha512-lytcDEdxKjGJPTLEfW4mYMigRezMlyJY8W4wxJK8zE533Jlb8L8dRuObJFWg2P+AuOIxoCgKF+2Oq4d4Zd0OUA==",
"license": "MIT",
"engines": {
"node": "^18 || ^20 || >= 21"
}
},
"node_modules/node-gyp-build": {
"version": "4.8.4",
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz",
"integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==",
"license": "MIT",
"bin": {
"node-gyp-build": "bin.js",
"node-gyp-build-optional": "optional.js",
"node-gyp-build-test": "build-test.js"
}
},
"node_modules/npm-run-path": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz",
"integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==",
"dev": true,
"license": "MIT",
"dependencies": {
"path-key": "^3.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
"license": "ISC",
"dependencies": {
"wrappy": "1"
}
},
"node_modules/path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/prebuildify": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/prebuildify/-/prebuildify-6.0.1.tgz",
"integrity": "sha512-8Y2oOOateom/s8dNBsGIcnm6AxPmLH4/nanQzL5lQMU+sC0CMhzARZHizwr36pUPLdvBnOkCNQzxg4djuFSgIw==",
"dev": true,
"license": "MIT",
"dependencies": {
"minimist": "^1.2.5",
"mkdirp-classic": "^0.5.3",
"node-abi": "^3.3.0",
"npm-run-path": "^3.1.0",
"pump": "^3.0.0",
"tar-fs": "^2.1.0"
},
"bin": {
"prebuildify": "bin.js"
}
},
"node_modules/pump": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
"integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
"dev": true,
"license": "MIT",
"dependencies": {
"end-of-stream": "^1.1.0",
"once": "^1.3.1"
}
},
"node_modules/readable-stream": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dev": true,
"license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"license": "MIT"
},
"node_modules/semver": {
"version": "7.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
"integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
"dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dev": true,
"license": "MIT",
"dependencies": {
"safe-buffer": "~5.2.0"
}
},
"node_modules/tar-fs": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz",
"integrity": "sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==",
"dev": true,
"license": "MIT",
"dependencies": {
"chownr": "^1.1.1",
"mkdirp-classic": "^0.5.2",
"pump": "^3.0.0",
"tar-stream": "^2.1.4"
}
},
"node_modules/tar-stream": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"bl": "^4.0.3",
"end-of-stream": "^1.4.1",
"fs-constants": "^1.0.0",
"inherits": "^2.0.3",
"readable-stream": "^3.1.1"
},
"engines": {
"node": ">=6"
}
},
"node_modules/tree-sitter-cli": { "node_modules/tree-sitter-cli": {
"version": "0.25.3", "version": "0.25.3",
"resolved": "https://registry.npmjs.org/tree-sitter-cli/-/tree-sitter-cli-0.25.3.tgz", "resolved": "https://registry.npmjs.org/tree-sitter-cli/-/tree-sitter-cli-0.25.3.tgz",
"integrity": "sha512-Bk6ZUXG+cKnwZpfR/te4NDrKld90p6350eqWlbLwSpV9/8vmL/x8LCw+3k7quY9oMDaYoMXHMvokXJbkM5A7bA==", "integrity": "sha512-Bk6ZUXG+cKnwZpfR/te4NDrKld90p6350eqWlbLwSpV9/8vmL/x8LCw+3k7quY9oMDaYoMXHMvokXJbkM5A7bA==",
"dev": true,
"hasInstallScript": true, "hasInstallScript": true,
"license": "MIT", "license": "MIT",
"bin": { "bin": {
@@ -31,6 +350,20 @@
"engines": { "engines": {
"node": ">=12.0.0" "node": ">=12.0.0"
} }
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
"dev": true,
"license": "MIT"
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true,
"license": "ISC"
} }
} }
} }

46
package.json generated
View File

@@ -1,12 +1,48 @@
{ {
"name": "tree-sitter-hcl", "name": "@tree-sitter-grammars/tree-sitter-hcl",
"version": "0.2.0-snapshot", "version": "0.2.0-snapshot",
"description": "", "description": "HCL grammar for tree-sitter",
"main": "bindings/node", "repository": "github:tree-sitter-grammars/tree-sitter-hcl",
"license": "Apache-2.0",
"author": "", "author": "",
"license": "ISC", "main": "bindings/node",
"types": "bindings/node",
"keywords": [
"incremental",
"parsing",
"tree-sitter",
"hcl"
],
"files": [
"grammar.js",
"tree-sitter.json",
"binding.gyp",
"prebuilds/**",
"bindings/node/*",
"queries/*",
"src/**",
"*.wasm"
],
"dependencies": { "dependencies": {
"nan": "^2.14.2", "node-addon-api": "^8.2.1",
"node-gyp-build": "^4.8.2"
},
"devDependencies": {
"prebuildify": "^6.0.1",
"tree-sitter-cli": "^0.25" "tree-sitter-cli": "^0.25"
},
"peerDependencies": {
"tree-sitter": "^0.21.1"
},
"peerDependenciesMeta": {
"tree-sitter": {
"optional": true
}
},
"scripts": {
"install": "node-gyp-build",
"prestart": "tree-sitter build --wasm",
"start": "tree-sitter playground",
"test": "node --test bindings/node/*_test.js"
} }
} }

View File

@@ -14,8 +14,8 @@
], ],
"metadata": { "metadata": {
"version": "0.2.0-snapshot", "version": "0.2.0-snapshot",
"license": "ISC", "license": "Apache-2.0",
"description": "", "description": "HCL grammar for tree-sitter",
"links": { "links": {
"repository": "https://github.com/tree-sitter/tree-sitter-hcl" "repository": "https://github.com/tree-sitter/tree-sitter-hcl"
} }
@@ -26,6 +26,7 @@
"node": true, "node": true,
"python": false, "python": false,
"rust": true, "rust": true,
"swift": true "swift": true,
"zig": false
} }
} }