ADA
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
Ada Preview.
At a glance
| Purpose | Ada source code: a package or subprogram specification (.ads) or a body. |
| Extensions | .ada |
| Poka parser | poka-ada |
| Viewer | poka-metadata-card-viewer |
| Depth tier | Metadata card (see Depth tiers) |
| Breadth tier | B4 Summary (see Breadth tiers) |
How much Poka reads
B4 Summary. The container and metadata are read and summarised (counts, properties, structure), but the main content is not rendered.
Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-26: read parsers/poka-ada/src/main.rs (336 lines) and plugin.json in full. The crate has no unit tests and no tests/samples.rs, and the corpus has no .ada and .ads sample, so the tier rests on reading the code. Covers .ada and .ads. The output is a metadata card of counts found by matching text line by line: with and use clauses, packages, procedures, functions, tasks and protected objects, generics, pragmas, types, subtypes and records, entries, renames and exceptions, return and raise statements, the maximum indent and line counts. Judgement: B4, because the structure is summarised but the source itself is never shown.
What Poka does not read
- The source text is not shown: the card carries only counts and a few sample names, with no code view or highlighting
- Constructs are found by matching text line by line, not by parsing, so multi-line declarations, nested or indented definitions and keywords inside strings or comments can be miscounted
- Counts of named items stop where their name list is capped (withs at 32, uses at 16, packages at 16, procedures at 32, functions at 32, tasks at 16, protected obj at 16), so a larger file under-reports them
- Files over 32 MiB are cut to the first 32 MiB (the card says so)
- Text that is not UTF-8 is decoded with replacement characters; no other encoding is tried
- The module comment names .adb (Ada bodies), but the manifest routes only .ada and .ads, so .adb files do not reach this module
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- Libadalang (candidate; Apache-2.0 WITH LLVM-exception; Ada, Python; https://github.com/adacore/libadalang) — AdaCore parser and semantic analysis library; also C API. Licence from LICENSE.txt (Apache 2.0 with LLVM exceptions).
- tree-sitter-ada (candidate; MIT; JavaScript; https://github.com/briot/tree-sitter-ada) — Tree-sitter grammar (C parser generated); repo contains Cargo.toml but a published Rust crate was not confirmed.
Sources
- parsers/poka-ada/src/main.rs
- parsers/poka-ada/plugin.json