[package]
name = "big-code-analysis-ast"
version.workspace = true
authors.workspace = true
edition.workspace = true
rust-version.workspace = true
repository.workspace = true
license.workspace = true
documentation = "https://docs.rs/big-code-analysis-ast/"
readme = "README.md"
keywords = ["metrics", "tree-sitter"]
description = "Parse and classification layer behind big-code-analysis (internal, version-locked)"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
aho-corasick = "^1.0"
num-derive = "^0.5"
num-format = "^0.4"
num-traits = "^0.2"
petgraph = "^0.8"
regex = "^1.7"
serde.workspace = true
tree-sitter.workspace = true
tree-sitter-bash = { workspace = true, optional = true }
tree-sitter-c-sharp = { workspace = true, optional = true }
tree-sitter-elixir = { workspace = true, optional = true }
tree-sitter-go = { workspace = true, optional = true }
dekobon-tree-sitter-groovy = { workspace = true, optional = true }
tree-sitter-irules = { workspace = true, optional = true }
tree-sitter-java = { workspace = true, optional = true }
tree-sitter-javascript = { workspace = true, optional = true }
tree-sitter-kotlin-ng = { workspace = true, optional = true }
tree-sitter-lua = { workspace = true, optional = true }
tree-sitter-objc = { workspace = true, optional = true }
tree-sitter-perl = { workspace = true, optional = true }
tree-sitter-php = { workspace = true, optional = true }
tree-sitter-python = { workspace = true, optional = true }
tree-sitter-ruby = { workspace = true, optional = true }
tree-sitter-rust = { workspace = true, optional = true }
tree-sitter-typescript = { workspace = true, optional = true }
tree-sitter-ccomment = { workspace = true, optional = true }
tree-sitter-mozcpp = { workspace = true, optional = true }
tree-sitter-cpp = { workspace = true, optional = true }
tree-sitter-c = { workspace = true, optional = true }
tree-sitter-mozjs = { workspace = true, optional = true }
tree-sitter-preproc = { workspace = true, optional = true }
tree-sitter-tcl = { workspace = true, optional = true }
[features]
default = ["all-languages"]
test-support = []
all-languages = [
"bash",
"c",
"cpp",
"csharp",
"elixir",
"go",
"groovy",
"irules",
"java",
"javascript",
"kotlin",
"lua",
"mozcpp",
"mozjs",
"objc",
"perl",
"php",
"python",
"ruby",
"rust",
"tcl",
"typescript",
]
bash = ["dep:tree-sitter-bash"]
c-family-helpers = ["dep:tree-sitter-ccomment", "dep:tree-sitter-preproc"]
cpp = ["dep:tree-sitter-cpp", "c-family-helpers"]
c = ["dep:tree-sitter-c", "c-family-helpers"]
mozcpp = ["dep:tree-sitter-mozcpp", "c-family-helpers"]
csharp = ["dep:tree-sitter-c-sharp"]
elixir = ["dep:tree-sitter-elixir"]
go = ["dep:tree-sitter-go"]
groovy = ["dep:dekobon-tree-sitter-groovy"]
irules = ["dep:tree-sitter-irules"]
java = ["dep:tree-sitter-java"]
javascript = ["dep:tree-sitter-javascript"]
kotlin = ["dep:tree-sitter-kotlin-ng"]
lua = ["dep:tree-sitter-lua"]
mozjs = ["dep:tree-sitter-mozjs"]
objc = ["dep:tree-sitter-objc"]
perl = ["dep:tree-sitter-perl"]
php = ["dep:tree-sitter-php"]
python = ["dep:tree-sitter-python"]
ruby = ["dep:tree-sitter-ruby"]
rust = ["dep:tree-sitter-rust"]
tcl = ["dep:tree-sitter-tcl"]
typescript = ["dep:tree-sitter-typescript"]
[lints]
workspace = true
[dev-dependencies]
pretty_assertions = "^1.3"
serde_json.workspace = true
tempfile.workspace = true