[package]
name = "perl-parser"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
description = "Native Perl parser (v3) — recursive descent with Tree-sitter-compatible AST, semantic analysis, and LSP provider engine"
license.workspace = true
repository.workspace = true
homepage.workspace = true
readme = "README.md"
documentation = "https://docs.rs/perl-parser"
keywords = ["perl", "parser", "ast", "lsp", "semantic-analysis"]
categories = ["parsing", "development-tools", "text-editors"]
include = [
"src/**",
"features_sot.toml",
"Cargo.toml",
"README.md",
"LICENSE*"
]
[lib]
doctest = false
[dependencies]
perl-lexer = { workspace = true }
perl-parser-core = { workspace = true }
perl-semantic-analyzer = { workspace = true }
perl-workspace = { workspace = true }
perl-module = { workspace = true }
serde = { workspace = true }
perl-line-index = { workspace = true, optional = true }
tracing = { workspace = true, optional = true }
perl-tdd-support = { workspace = true }
perl-ast = { workspace = true }
thiserror.workspace = true
serde_json.workspace = true
regex.workspace = true
lsp-types = { workspace = true, optional = true }
url.workspace = true
rustc-hash = "2.1.2"
ropey = "1.6.1"
anyhow = { workspace = true, optional = true }
[[bin]]
name = "perl-parse"
required-features = ["cli"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[lints]
workspace = true
[features]
default = ["workspace", "lsp-compat", "workspace_refactor"]
cli = []
incremental = ["anyhow", "perl-line-index", "tracing"]
lsp-compat = [
"lsp-types",
"perl-workspace/lsp-compat",
"perl-tdd-support/lsp-compat",
]
workspace = ["perl-workspace/workspace"]
test-performance = []
lsp-ga-lock = []
experimental-features = []
constant-advanced = []
qw-variants = []
package-qualified = []
error-classifier-v2 = []
lsp-advanced = []
expose_lsp_test_api = []
workspace_refactor = []
modernize = []
substitution-advanced = []
utf16-complete = []
semantic-phase2 = []
parser-extras = []
crash-repros = []
slow_tests = []
doc-coverage = []
[[bench]]
name = "parser_benchmark"
harness = false
[[bench]]
name = "incremental_benchmark"
harness = false
required-features = ["incremental"]
[[bench]]
name = "scope_benchmark"
harness = false
[[bench]]
name = "cpan_patterns_benchmark"
harness = false
[[example]]
name = "test_incremental_v2"
required-features = ["incremental"]