[package]
name = "bynkc"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
description = "The Bynk compiler — a typed function-then-context DSL that compiles to TypeScript."
keywords = ["compiler", "dsl", "typescript", "language"]
categories = ["compilers"]

[lib]
path = "src/lib.rs"

[[bin]]
name = "bynkc"
path = "src/main.rs"

[dependencies]
# The syntax foundation (lexer, parser, ast, span, keywords, error, diagnostics)
# — extracted to its own leaf crate (crate-decomposition slice 1).
bynk-syntax.workspace = true
# The semantic-analysis layer (resolver, checker, registries, firstparty,
# actors, captured index/hints tables) — extracted in slice 3. `bynkc` depends
# on it and re-exports its modules.
bynk-check.workspace = true
# Build orchestration + TS emission (emitter, project) — extracted in slice 4.
# `bynkc` depends on it and re-exports its modules; the CLI/glue drive it.
bynk-emit.workspace = true
# The IDE/LSP analysis surface (diagnose, diagnose_project) — extracted in
# slice 5. `bynkc` re-exports it for API + test continuity (the binary itself
# doesn't use it).
bynk-ide.workspace = true
# The diagnostic renderers (ariadne human + short/json) — extracted in slice 6.
# `bynkc` re-exports them; its ProjectFailure flatteners delegate to them.
bynk-render.workspace = true
# The formatter, now a real leaf over bynk-syntax (slice 2). `bynkc` depends on
# it for the `bynkc fmt` command and re-exports it as `bynkc::fmt`.
bynk-fmt.workspace = true
clap.workspace = true
# Serialises the `bynkc test --format json` document (test_json.rs).
serde.workspace = true
serde_json.workspace = true

[dev-dependencies]
regex.workspace = true
# The grammar reference (tests/grammar_reference.rs) is rendered by this crate.
bynk-grammar.workspace = true
