[package]
name = "panproto-grammars"
description = "Pre-compiled tree-sitter grammars for panproto (248 languages)"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
# On crates.io, this crate provides zero built-in grammars (the vendored C
# sources are too large to include). Users add languages via
# panproto_parse::ParserRegistry::register() with individual grammar crates.
# Within the panproto workspace, build.rs compiles all 240+ vendored grammars.
build = "build.rs"

[dependencies]
tree-sitter = { workspace = true }
tree-sitter-language = "0.1"

[build-dependencies]
cc = "1"
toml = "0.8"
serde = { version = "1", features = ["derive"] }

[lints.rust]
unsafe_code = "allow"
missing_docs = "warn"

[lints.clippy]
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }
unwrap_used = "deny"
expect_used = "warn"

[features]
default = ["group-core"]

# Top 10 GitHub languages
group-core = ["lang-python", "lang-javascript", "lang-typescript", "lang-java", "lang-csharp", "lang-cpp", "lang-php", "lang-bash", "lang-c", "lang-go", "lang-rust"]

# Thematic groups
group-web = ["lang-html", "lang-css", "lang-javascript", "lang-typescript", "lang-tsx", "lang-json", "lang-vue", "lang-svelte", "lang-astro", "lang-graphql"]
group-systems = ["lang-c", "lang-cpp", "lang-rust", "lang-go", "lang-zig", "lang-d", "lang-nim", "lang-odin", "lang-v", "lang-hare"]
group-jvm = ["lang-java", "lang-kotlin", "lang-scala", "lang-groovy", "lang-clojure"]
group-scripting = ["lang-python", "lang-ruby", "lang-lua", "lang-bash", "lang-perl", "lang-r", "lang-julia", "lang-nushell", "lang-fish"]
group-data = ["lang-json", "lang-toml", "lang-xml", "lang-yaml", "lang-sql", "lang-csv", "lang-graphql", "lang-protobuf"]
group-functional = ["lang-haskell", "lang-ocaml", "lang-elm", "lang-gleam", "lang-erlang", "lang-elixir", "lang-purescript", "lang-fsharp", "lang-clojure", "lang-scheme", "lang-racket"]
group-devops = ["lang-dockerfile", "lang-terraform", "lang-hcl", "lang-nix", "lang-bash", "lang-yaml", "lang-toml", "lang-make", "lang-cmake"]
group-mobile = ["lang-swift", "lang-kotlin", "lang-dart", "lang-java", "lang-objc"]

# All 248 languages
group-all = ["lang-actionscript", "lang-ada", "lang-agda", "lang-al", "lang-angular", "lang-apex", "lang-arduino", "lang-asciidoc", "lang-asm", "lang-astro", "lang-awk", "lang-bash", "lang-bass", "lang-batch", "lang-beancount", "lang-bibtex", "lang-bicep", "lang-bitbake", "lang-blade", "lang-brightscript", "lang-bsl", "lang-c", "lang-caddy", "lang-cairo", "lang-capnp", "lang-cedar", "lang-cedarschema", "lang-chatito", "lang-circom", "lang-clarity", "lang-clojure", "lang-cmake", "lang-cobol", "lang-comment", "lang-commonlisp", "lang-cooklang", "lang-corn", "lang-cpon", "lang-cpp", "lang-crystal", "lang-csharp", "lang-css", "lang-csv", "lang-cuda", "lang-cue", "lang-cylc", "lang-d", "lang-dart", "lang-desktop", "lang-devicetree", "lang-diff", "lang-djot", "lang-dockerfile", "lang-dot", "lang-doxygen", "lang-dtd", "lang-earthfile", "lang-ebnf", "lang-editorconfig", "lang-eds", "lang-eex", "lang-elisp", "lang-elixir", "lang-elm", "lang-elsa", "lang-embedded_template", "lang-enforce", "lang-erlang", "lang-facility", "lang-faust", "lang-fennel", "lang-fidl", "lang-firrtl", "lang-fish", "lang-foam", "lang-forth", "lang-fortran", "lang-fsharp", "lang-fsharp_signature", "lang-func", "lang-gdscript", "lang-git_config", "lang-git_rebase", "lang-gitattributes", "lang-gitcommit", "lang-gitignore", "lang-gleam", "lang-glsl", "lang-gn", "lang-go", "lang-godot_resource", "lang-gomod", "lang-gosum", "lang-graphql", "lang-groovy", "lang-gstlaunch", "lang-hack", "lang-hare", "lang-haskell", "lang-haxe", "lang-hcl", "lang-heex", "lang-hlsl", "lang-html", "lang-http", "lang-hurl", "lang-hyprlang", "lang-idris", "lang-ini", "lang-ispc", "lang-janet", "lang-java", "lang-javascript", "lang-jinja2", "lang-jq", "lang-jsdoc", "lang-json", "lang-jsonnet", "lang-julia", "lang-just", "lang-kconfig", "lang-kdl", "lang-kotlin", "lang-latex", "lang-lean", "lang-ledger", "lang-less", "lang-linkerscript", "lang-liquid", "lang-llvm", "lang-lua", "lang-luadoc", "lang-luap", "lang-luau", "lang-magik", "lang-make", "lang-markdown", "lang-markdown_inline", "lang-matlab", "lang-mermaid", "lang-meson", "lang-mojo", "lang-move", "lang-netlinx", "lang-nginx", "lang-nickel", "lang-nim", "lang-ninja", "lang-nix", "lang-norg", "lang-nqc", "lang-nushell", "lang-objc", "lang-ocaml", "lang-ocaml_interface", "lang-odin", "lang-org", "lang-pascal", "lang-pem", "lang-perl", "lang-pgn", "lang-php", "lang-pkl", "lang-po", "lang-pony", "lang-postscript", "lang-powershell", "lang-printf", "lang-prisma", "lang-prolog", "lang-promql", "lang-properties", "lang-protobuf", "lang-psv", "lang-pug", "lang-puppet", "lang-purescript", "lang-pymanifest", "lang-python", "lang-ql", "lang-qml", "lang-qmldir", "lang-query", "lang-r", "lang-racket", "lang-re2c", "lang-readline", "lang-regex", "lang-rego", "lang-requirements", "lang-rescript", "lang-robot", "lang-ron", "lang-rst", "lang-ruby", "lang-rust", "lang-scala", "lang-scheme", "lang-scss", "lang-smali", "lang-smithy", "lang-solidity", "lang-sparql", "lang-sql", "lang-squirrel", "lang-ssh_config", "lang-starlark", "lang-svelte", "lang-swift", "lang-tablegen", "lang-tcl", "lang-teal", "lang-templ", "lang-terraform", "lang-test", "lang-textproto", "lang-thrift", "lang-tlaplus", "lang-tmux", "lang-todotxt", "lang-toml", "lang-tsv", "lang-tsx", "lang-turtle", "lang-twig", "lang-typescript", "lang-typst", "lang-udev", "lang-ungrammar", "lang-uxntal", "lang-v", "lang-vb", "lang-verilog", "lang-vhdl", "lang-vim", "lang-vimdoc", "lang-vue", "lang-wast", "lang-wat", "lang-wgsl", "lang-wit", "lang-wolfram", "lang-xcompose", "lang-xml", "lang-yaml", "lang-yuck", "lang-zig", "lang-zsh"]

# Individual language features
lang-actionscript = []
lang-ada = []
lang-agda = []
lang-al = []
lang-angular = []
lang-apex = []
lang-arduino = []
lang-asciidoc = []
lang-asm = []
lang-astro = []
lang-awk = []
lang-bash = []
lang-bass = []
lang-batch = []
lang-beancount = []
lang-bibtex = []
lang-bicep = []
lang-bitbake = []
lang-blade = []
lang-brightscript = []
lang-bsl = []
lang-c = []
lang-caddy = []
lang-cairo = []
lang-capnp = []
lang-cedar = []
lang-cedarschema = []
lang-chatito = []
lang-circom = []
lang-clarity = []
lang-clojure = []
lang-cmake = []
lang-cobol = []
lang-comment = []
lang-commonlisp = []
lang-cooklang = []
lang-corn = []
lang-cpon = []
lang-cpp = []
lang-crystal = []
lang-csharp = []
lang-css = []
lang-csv = []
lang-cuda = []
lang-cue = []
lang-cylc = []
lang-d = []
lang-dart = []
lang-desktop = []
lang-devicetree = []
lang-diff = []
lang-djot = []
lang-dockerfile = []
lang-dot = []
lang-doxygen = []
lang-dtd = []
lang-earthfile = []
lang-ebnf = []
lang-editorconfig = []
lang-eds = []
lang-eex = []
lang-elisp = []
lang-elixir = []
lang-elm = []
lang-elsa = []
lang-embedded_template = []
lang-enforce = []
lang-erlang = []
lang-facility = []
lang-faust = []
lang-fennel = []
lang-fidl = []
lang-firrtl = []
lang-fish = []
lang-foam = []
lang-forth = []
lang-fortran = []
lang-fsharp = []
lang-fsharp_signature = []
lang-func = []
lang-gdscript = []
lang-git_config = []
lang-git_rebase = []
lang-gitattributes = []
lang-gitcommit = []
lang-gitignore = []
lang-gleam = []
lang-glsl = []
lang-gn = []
lang-go = []
lang-godot_resource = []
lang-gomod = []
lang-gosum = []
lang-graphql = []
lang-groovy = []
lang-gstlaunch = []
lang-hack = []
lang-hare = []
lang-haskell = []
lang-haxe = []
lang-hcl = []
lang-heex = []
lang-hlsl = []
lang-html = []
lang-http = []
lang-hurl = []
lang-hyprlang = []
lang-idris = []
lang-ini = []
lang-ispc = []
lang-janet = []
lang-java = []
lang-javascript = []
lang-jinja2 = []
lang-jq = []
lang-jsdoc = []
lang-json = []
lang-jsonnet = []
lang-julia = []
lang-just = []
lang-kconfig = []
lang-kdl = []
lang-kotlin = []
lang-latex = []
lang-lean = []
lang-ledger = []
lang-less = []
lang-linkerscript = []
lang-liquid = []
lang-llvm = []
lang-lua = []
lang-luadoc = []
lang-luap = []
lang-luau = []
lang-magik = []
lang-make = []
lang-markdown = []
lang-markdown_inline = []
lang-matlab = []
lang-mermaid = []
lang-meson = []
lang-mojo = []
lang-move = []
lang-netlinx = []
lang-nginx = []
lang-nickel = []
lang-nim = []
lang-ninja = []
lang-nix = []
lang-norg = []
lang-nqc = []
lang-nushell = []
lang-objc = []
lang-ocaml = []
lang-ocaml_interface = []
lang-odin = []
lang-org = []
lang-pascal = []
lang-pem = []
lang-perl = []
lang-pgn = []
lang-php = []
lang-pkl = []
lang-po = []
lang-pony = []
lang-postscript = []
lang-powershell = []
lang-printf = []
lang-prisma = []
lang-prolog = []
lang-promql = []
lang-properties = []
lang-protobuf = []
lang-psv = []
lang-pug = []
lang-puppet = []
lang-purescript = []
lang-pymanifest = []
lang-python = []
lang-ql = []
lang-qml = []
lang-qmldir = []
lang-query = []
lang-r = []
lang-racket = []
lang-re2c = []
lang-readline = []
lang-regex = []
lang-rego = []
lang-requirements = []
lang-rescript = []
lang-robot = []
lang-ron = []
lang-rst = []
lang-ruby = []
lang-rust = []
lang-scala = []
lang-scheme = []
lang-scss = []
lang-smali = []
lang-smithy = []
lang-solidity = []
lang-sparql = []
lang-sql = []
lang-squirrel = []
lang-ssh_config = []
lang-starlark = []
lang-svelte = []
lang-swift = []
lang-tablegen = []
lang-tcl = []
lang-teal = []
lang-templ = []
lang-terraform = []
lang-test = []
lang-textproto = []
lang-thrift = []
lang-tlaplus = []
lang-tmux = []
lang-todotxt = []
lang-toml = []
lang-tsv = []
lang-tsx = []
lang-turtle = []
lang-twig = []
lang-typescript = []
lang-typst = []
lang-udev = []
lang-ungrammar = []
lang-uxntal = []
lang-v = []
lang-vb = []
lang-verilog = []
lang-vhdl = []
lang-vim = []
lang-vimdoc = []
lang-vue = []
lang-wast = []
lang-wat = []
lang-wgsl = []
lang-wit = []
lang-wolfram = []
lang-xcompose = []
lang-xml = []
lang-yaml = []
lang-yuck = []
lang-zig = []
lang-zsh = []
