normalize-surface-syntax 0.3.1

Surface-level syntax translation between languages via a common IR
Documentation
[package]
name = "normalize-surface-syntax"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
description = "Surface-level syntax translation between languages via a common IR"

[features]
default = ["read-typescript", "write-lua"]

# Readers — grammars are loaded dynamically via `normalize-languages` at runtime.
# These flags now only gate the reader source code (the grammar itself loads
# uniformly through `GrammarLoader`).
read-typescript = ["dep:tree-sitter", "dep:normalize-languages"]
read-javascript = ["read-typescript"]
read-lua = ["dep:tree-sitter", "dep:normalize-languages"]
read-python = ["dep:tree-sitter", "dep:normalize-languages"]

# Writers
write-lua = []
write-typescript = []
write-javascript = ["write-typescript"]
write-python = []

# S-expression serialization format
sexpr = []

[dependencies]
serde = { workspace = true }
serde_json = { workspace = true }
thiserror = "2"
tree-sitter = { version = "0.26", optional = true }
normalize-languages = { path = "../normalize-languages", version = "0.3.1", default-features = false, optional = true }

[dev-dependencies]
insta = { version = "1", features = ["json"] }