[package]
name = "dmc-parser"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
keywords.workspace = true
categories.workspace = true
description = "Typed AST parser for the dmc MDX compiler"
readme = "README.md"

[dependencies]
dmc-lexer.workspace = true
dmc-diagnostic = { workspace = true, features = ["lexer", "parser"] }
duck-diagnostic.workspace = true
serde.workspace = true
serde_json.workspace = true
slug.workspace = true
htmlentity = "1.3"
unicode-general-category = "1.1.0"

[dev-dependencies]
pretty_assertions.workspace = true
# Path-only (no `version =`): used only by the in-workspace spec-suite
# tests. Keeping a version req here would form a publish cycle with
# `dmc-codegen` (which has a normal dep on `dmc-parser`); cargo strips a
# path-only dev-dep from the published manifest, which breaks the cycle.
dmc-codegen = { path = "../dmc-codegen" }
criterion.workspace = true

[[bin]]
name = "parse"
path = "./parse-samples/parse.rs"

[[bench]]
name = "parse"
harness = false
