# `zerodds-idl-parse`
OMG IDL 4.2 in, a lossless tree and a diagnostic list out.
The lexer, the preprocessor — `#include`, conditionals, macro expansion,
`#pragma once` — and a recovering parser that produces a tree for a file
it could not read, so a later stage can still point at what was there.
A diagnostic names its clause. `IDL0007` is not a number this project
chose to mean something; it carries the section of the specification
that refuses the construct, and the tests assert the clause, not the
number.
Safety classification is **STANDARD**, not SAFE, and that is the
architecture's own line: `docs/architecture/04_safety_by_architecture.md`
§2 puts the `zerodds-idl*` tools outside the safe subset. They run at
build time and never in a participant.