[package]
name = "syn-grammar"
version = "0.1.0"
edition = "2021"
description = "A parser generator for Rust that compiles EBNF-like grammars into syn::parse::Parse implementations."
license = "MIT OR Apache-2.0"
repository = "https://github.com/keywan-ghadami/syn-grammar"
readme = "README.md"
keywords = ["parser", "syn", "grammar", "ebnf", "macro"]
categories = ["parsing", "development-tools"]
authors = ["Keywan Ghadami"]

# Wir definieren einen Workspace, damit Cargo das Makro-Unterverzeichnis korrekt mitbaut
[workspace]
members = ["macros"]
exclude = [
    ".devcontainer",                                                ".github",
    ".aider*",
    ".gitignore",
    ".github"
]


[dependencies]
# 1. Das Makro selbst (lokaler Pfad)
syn-grammar-macros = { path = "./macros", version = "0.1.0" }

# 2. Runtime-Abhängigkeiten
# Diese werden vom generierten Code verwendet (z.B. ParseStream, Token!, etc.)
# Wir aktivieren "full", damit der Generator (der Teil dieser Lib ist)
# Rust-Code-Blöcke in den Grammatik-Dateien parsen kann.
syn = { version = "2.0", features = ["full", "extra-traits"] }
proc-macro2 = "1.0"
quote = "1.0"

[dev-dependencies]
# Für die Tests brauchen wir "full", um komplexere Syntax (wie in den Actions) zu parsen
syn = { version = "2.0", features = ["full", "extra-traits"] }
