Skip to content

ieee: full parseUrn parity with the reference (9,502/9,502) - #86

Merged
ronaldtse merged 1 commit into
mainfrom
urn-parity
Oct 11, 2026
Merged

ronaldtse merged 1 commit into
mainfrom
urn-parity

Conversation

@ronaldtse

Copy link
Copy Markdown
Contributor

Closes the ieee parseUrn parity gap - the flavor leaves the urn-parity KNOWN-DIVERGENT set at 9,502/9,502 rows.

The 26 misses were three grammar divergences from the artifact:

  • Adoption faces (~19 rows, urn:ieee:iso-iec-ieee:8802-1AB:2014): the number rule carried a ts-only dash-digits group that swallowed -1 and stranded letter parts; the artifact's number leaves dash continuations to the part rule, so IEEE Std 8802-1AB-2014 now parses. The group's real job (dashed codes rendering dotted) moved to where it belongs: the part rule captures its separator (part_sep) beside the bare token, and the builder joins the code with the original separator - 62271-37-082 stays dashed, 802.3 stays dotted (both the flat and the corrigendum-base builder paths).
  • draft.D= tails (6 rows, urn:ieee:iec-ieee:P61850-9-3:draft.D=FDIS): draft_version gains the artifact's dot-led alternative (dot !(year) (alnum / dot)), so the reconstruction /Ddraft.D=FDIS parses and round-trips the reference's own render byte-for-byte.
  • Glued (E) (1 row): already handled by the year rule's silent ["(E)"] consumption - it worked once the dashed part stopped breaking the route.

Also: 11 pends unmarked (the separator fix made them pass; 424 remain), and the urn-parity test asserts ieee strictly now (nist stays KNOWN-DIVERGENT on the reference's own render defect).

Full suite green locally: 188/188.

The 26 urn-parity misses close in three grammar alignments:

- the number rule drops its ts-only dash-digits group (the artifact's
  number leaves dash continuations to the part rule), so the ISO/IEC/IEEE
  adoption faces parse through the IEEE reconstruction
  ('IEEE Std 8802-1AB-2014')
- the part rule captures its separator (part_sep) beside the bare token
  and the builder joins the code with the ORIGINAL separator - dashed
  codes stay dashed ('62271-37-082'), dotted stay dotted ('802.3')
- draft_version gains the artifact's dot-led alternative ('.D' in
  '/Ddraft.D=FDIS'), so the draft.D= urn tails round-trip the
  reference's own render verbatim; the glued '(E)' edition marker is
  already consumed silently by the year rule

ieee leaves the urn-parity KNOWN-DIVERGENT set (nist remains, on the
reference's own render defect). 11 pends unmarked (424 remain); full
suite 188/188.
@ronaldtse
ronaldtse merged commit a9132ef into main Oct 11, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant