pubid 2.0.30 → 2.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/data/parg/iec.json +1 -1
- data/lib/pubid/iec/CLAUDE.md +4 -0
- data/lib/pubid/iec/builder.rb +15 -0
- data/lib/pubid/iec/identifier.rb +35 -0
- data/lib/pubid/iec/identifiers/base.rb +6 -0
- data/lib/pubid/iec/renderer.rb +5 -0
- data/lib/pubid/iec/supplement_identifier.rb +9 -0
- data/lib/pubid/iec/urn_generator.rb +11 -1
- data/lib/pubid/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cf1af3c60d0d620d92b5b8393d2c246628a8fc71c87484ad53a5d75335254644
|
|
4
|
+
data.tar.gz: 7da19312a43e892d150bc517dbc8dd9882174a3bae6e6284c10c5950b30b34f6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8e7430bf08502334e07d742cbf529a2b2c9381d5f1f58dac93d70a822623cafe6f77caad2b3b2a17aafb7c18a8a55bf196dcf082cdd9024c82f722b0cbc014f2
|
|
7
|
+
data.tar.gz: e85be66ebca3178f9adc7514f477032e3551122de76c4e8055dc6b75e4cfbc684e61161ba9763eca454a36619dd75d98bdcf79e0cd06a30ac9b120de59e3305e
|
data/data/parg/iec.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"bindings":null,"version":"0.1.0","grammar":"PubidIec","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":156}},{"Str":{"pattern":"PWI"}},{"Str":{"pattern":"PNW"}},{"Alternative":{"atoms":[1,2]}},{"Named":{"name":"wp_stage","atom":3}},{"Entity":{"atom":6}},{"Str":{"pattern":" "}},{"Entity":{"atom":14}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Str":{"pattern":"SRD"}},{"Alternative":{"atoms":[8,9,10]}},{"Entity":{"atom":6}},{"Sequence":{"atoms":[11,12]}},{"Named":{"name":"wp_type","atom":13}},{"Repetition":{"atom":7,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":131}},{"Entity":{"atom":18}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Entity":{"atom":20}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[17,19]}},{"Repetition":{"atom":21,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Alternative":{"atoms":[23,24,25]}},{"Repetition":{"atom":27,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Str":{"pattern":"-"}},{"Str":{"pattern":"‑"}},{"Str":{"pattern":"‐"}},{"Alternative":{"atoms":[30,31,32]}},{"Entity":{"atom":26}},{"Repetition":{"atom":34,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[29,35]}},{"Repetition":{"atom":36,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[22,28,37]}},{"Named":{"name":"number_with_part","atom":38}},{"Entity":{"atom":130}},{"Str":{"pattern":"DIR"}},{"Entity":{"atom":6}},{"Entity":{"atom":18}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[43,44]}},{"Repetition":{"atom":45,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[42,46]}},{"Repetition":{"atom":47,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[41,48]}},{"Str":{"pattern":"VIM"}},{"Str":{"pattern":"SYMBOL"}},{"Entity":{"atom":26}},{"Repetition":{"atom":52,"min":1,"max":6,"tag":"Repetition"}},{"Str":{"pattern":"v"}},{"Entity":{"atom":26}},{"Repetition":{"atom":55,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[57,58]}},{"Repetition":{"atom":59,"min":0,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"_"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[62,63]}},{"Repetition":{"atom":64,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[61,65]}},{"Repetition":{"atom":66,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[53,54,56,60,67]}},{"Entity":{"atom":18}},{"Repetition":{"atom":69,"min":2,"max":4,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":72,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[71,73]}},{"Repetition":{"atom":74,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":18}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[76,77]}},{"Repetition":{"atom":78,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[70,75,79]}},{"Entity":{"atom":26}},{"Repetition":{"atom":81,"min":1,"max":6,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[83,84]}},{"Repetition":{"atom":85,"min":0,"max":1,"tag":"Repetition"}},{"Str":{"pattern":"_"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[88,89]}},{"Repetition":{"atom":90,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[87,91]}},{"Repetition":{"atom":92,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[86,93]}},{"Repetition":{"atom":94,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[82,95]}},{"Alternative":{"atoms":[49,50,51,68,80,96]}},{"Entity":{"atom":33}},{"Entity":{"atom":100}},{"Str":{"pattern":","}},{"Alternative":{"atoms":[98,99]}},{"Entity":{"atom":6}},{"Repetition":{"atom":102,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[104,105,106]}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[&]"}},{"Re":{"pattern":"[,]"}},{"Alternative":{"atoms":[107,108,109,110]}},{"Repetition":{"atom":111,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Entity":{"atom":100}},{"Alternative":{"atoms":[113,114]}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[116,117,118]}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[&]"}},{"Re":{"pattern":"[,]"}},{"Alternative":{"atoms":[119,120,121,122]}},{"Repetition":{"atom":123,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[115,124]}},{"Repetition":{"atom":125,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[101,103,112,126]}},{"Repetition":{"atom":127,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[97,128]}},{"Named":{"name":"number_with_part","atom":129}},{"Alternative":{"atoms":[39,40]}},{"Entity":{"atom":6}},{"Entity":{"atom":153}},{"Entity":{"atom":139}},{"Str":{"pattern":"Edition"}},{"Str":{"pattern":"Ed."}},{"Str":{"pattern":"ED"}},{"Str":{"pattern":"Ed"}},{"Alternative":{"atoms":[135,136,137,138]}},{"Named":{"name":"edition_str","atom":134}},{"Entity":{"atom":6}},{"Repetition":{"atom":141,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":26}},{"Repetition":{"atom":143,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":146}},{"Str":{"pattern":"."}},{"Entity":{"atom":26}},{"Repetition":{"atom":147,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[145,148]}},{"Repetition":{"atom":149,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[144,150]}},{"Named":{"name":"edition","atom":151}},{"Sequence":{"atoms":[140,142,152]}},{"Sequence":{"atoms":[132,133]}},{"Repetition":{"atom":154,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[4,5,15,16,155]}},{"Entity":{"atom":267}},{"Entity":{"atom":235}},{"Entity":{"atom":173}},{"Str":{"pattern":"IECQ OD"}},{"Str":{"pattern":"IECQ CS"}},{"Str":{"pattern":"IEC CAB"}},{"Str":{"pattern":"IEC CA"}},{"Str":{"pattern":"IECRE"}},{"Str":{"pattern":"CISPR"}},{"Str":{"pattern":"IECEE"}},{"Str":{"pattern":"IECEx"}},{"Str":{"pattern":"IECQ"}},{"Str":{"pattern":"IEC"}},{"Str":{"pattern":"ISO"}},{"Str":{"pattern":"CEI"}},{"Alternative":{"atoms":[160,161,162,163,164,165,166,167,168,169,170,171]}},{"Named":{"name":"publisher","atom":172}},{"Entity":{"atom":196}},{"Entity":{"atom":195}},{"Entity":{"atom":177}},{"Str":{"pattern":"/"}},{"Entity":{"atom":6}},{"Repetition":{"atom":178,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":193}},{"Str":{"pattern":"IEC"}},{"Str":{"pattern":"ISO"}},{"Str":{"pattern":"IEEE"}},{"Str":{"pattern":"CIW"}},{"Str":{"pattern":"SAE"}},{"Str":{"pattern":"CIE"}},{"Str":{"pattern":"ASME"}},{"Str":{"pattern":"ASTM"}},{"Str":{"pattern":"OECD"}},{"Str":{"pattern":"HL7"}},{"Str":{"pattern":"CEI"}},{"Str":{"pattern":"UNDP"}},{"Alternative":{"atoms":[181,182,183,184,185,186,187,188,189,190,191,192]}},{"Named":{"name":"copublisher","atom":180}},{"Sequence":{"atoms":[176,179,194]}},{"Repetition":{"atom":175,"min":0,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":174,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Str":{"pattern":"CISPR"}},{"Str":{"pattern":"CIS"}},{"Entity":{"atom":177}},{"Entity":{"atom":18}},{"Sequence":{"atoms":[200,201,202]}},{"Entity":{"atom":210}},{"Str":{"pattern":"JTC"}},{"Str":{"pattern":"JPC"}},{"Str":{"pattern":"TC"}},{"Str":{"pattern":"SC"}},{"Str":{"pattern":"PC"}},{"Alternative":{"atoms":[205,206,207,208,209]}},{"Entity":{"atom":6}},{"Entity":{"atom":26}},{"Repetition":{"atom":212,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Repetition":{"atom":214,"min":0,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":215,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[204,211,213,216]}},{"Alternative":{"atoms":[199,203,217]}},{"Named":{"name":"technical_committee","atom":218}},{"Entity":{"atom":177}},{"Entity":{"atom":6}},{"Repetition":{"atom":221,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"SC"}},{"Entity":{"atom":6}},{"Entity":{"atom":26}},{"Repetition":{"atom":225,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Repetition":{"atom":227,"min":0,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":228,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[223,224,226,229]}},{"Sequence":{"atoms":[220,222,230]}},{"Named":{"name":"subcommittee","atom":231}},{"Repetition":{"atom":232,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[219,233]}},{"Sequence":{"atoms":[159,197,198,234]}},{"Entity":{"atom":266}},{"Str":{"pattern":"CISPR"}},{"Str":{"pattern":"CIS"}},{"Entity":{"atom":177}},{"Entity":{"atom":18}},{"Sequence":{"atoms":[238,239,240]}},{"Entity":{"atom":210}},{"Entity":{"atom":6}},{"Entity":{"atom":26}},{"Repetition":{"atom":244,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Repetition":{"atom":246,"min":0,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":247,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[242,243,245,248]}},{"Alternative":{"atoms":[237,241,249]}},{"Named":{"name":"technical_committee","atom":250}},{"Entity":{"atom":177}},{"Entity":{"atom":6}},{"Repetition":{"atom":253,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"SC"}},{"Entity":{"atom":6}},{"Entity":{"atom":26}},{"Repetition":{"atom":257,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Repetition":{"atom":259,"min":0,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":260,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[255,256,258,261]}},{"Sequence":{"atoms":[252,254,262]}},{"Named":{"name":"subcommittee","atom":263}},{"Repetition":{"atom":264,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[251,265]}},{"Alternative":{"atoms":[158,236]}},{"Entity":{"atom":305}},{"Str":{"pattern":"JTC1-SC"}},{"Entity":{"atom":26}},{"Repetition":{"atom":270,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[269,271]}},{"Entity":{"atom":18}},{"Repetition":{"atom":273,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":177}},{"Entity":{"atom":18}},{"Repetition":{"atom":276,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[274,275,277]}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[279,280,281]}},{"Repetition":{"atom":282,"min":1,"max":null,"tag":"Repetition"}},{"Alternative":{"atoms":[272,278,283]}},{"Named":{"name":"technical_committee","atom":284}},{"Entity":{"atom":177}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[287,288,289]}},{"Repetition":{"atom":290,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"wd_number","atom":291}},{"Str":{"pattern":"("}},{"Entity":{"atom":18}},{"Named":{"name":"wd_language","atom":294}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[293,295,296]}},{"Repetition":{"atom":297,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":177}},{"Entity":{"atom":18}},{"Repetition":{"atom":300,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"wd_stage","atom":301}},{"Sequence":{"atoms":[299,302]}},{"Repetition":{"atom":303,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[285,286,292,298,304]}},{"Entity":{"atom":518}},{"Entity":{"atom":173}},{"Entity":{"atom":6}},{"Repetition":{"atom":308,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":316}},{"Entity":{"atom":177}},{"Entity":{"atom":6}},{"Repetition":{"atom":312,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":193}},{"Named":{"name":"legacy_copublisher","atom":314}},{"Sequence":{"atoms":[311,313,315]}},{"Repetition":{"atom":310,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Repetition":{"atom":318,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":177}},{"Repetition":{"atom":320,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":327}},{"Str":{"pattern":"FPDAM"}},{"Str":{"pattern":"PDAM"}},{"Str":{"pattern":"FDAM"}},{"Str":{"pattern":"DAM"}},{"Alternative":{"atoms":[323,324,325,326]}},{"Named":{"name":"legacy_stage","atom":322}},{"Entity":{"atom":6}},{"Entity":{"atom":26}},{"Repetition":{"atom":330,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"legacy_supplement_number","atom":331}},{"Entity":{"atom":6}},{"Sequence":{"atoms":[332,333]}},{"Repetition":{"atom":334,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":26}},{"Repetition":{"atom":336,"min":1,"max":6,"tag":"Repetition"}},{"Named":{"name":"legacy_base_number","atom":337}},{"Entity":{"atom":177}},{"Entity":{"atom":26}},{"Repetition":{"atom":340,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"legacy_base_part","atom":341}},{"Sequence":{"atoms":[338,339,342]}},{"Str":{"pattern":"DIR"}},{"Entity":{"atom":6}},{"Entity":{"atom":18}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[346,347]}},{"Repetition":{"atom":348,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[345,349]}},{"Repetition":{"atom":350,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[344,351]}},{"Str":{"pattern":"VIM"}},{"Str":{"pattern":"SYMBOL"}},{"Entity":{"atom":26}},{"Repetition":{"atom":355,"min":1,"max":6,"tag":"Repetition"}},{"Str":{"pattern":"v"}},{"Entity":{"atom":26}},{"Repetition":{"atom":358,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[360,361]}},{"Repetition":{"atom":362,"min":0,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"_"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[365,366]}},{"Repetition":{"atom":367,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[364,368]}},{"Repetition":{"atom":369,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[356,357,359,363,370]}},{"Entity":{"atom":18}},{"Repetition":{"atom":372,"min":2,"max":4,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":375,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[374,376]}},{"Repetition":{"atom":377,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":18}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[379,380]}},{"Repetition":{"atom":381,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[373,378,382]}},{"Entity":{"atom":26}},{"Repetition":{"atom":384,"min":1,"max":6,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[386,387]}},{"Repetition":{"atom":388,"min":0,"max":1,"tag":"Repetition"}},{"Str":{"pattern":"_"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[391,392]}},{"Repetition":{"atom":393,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[390,394]}},{"Repetition":{"atom":395,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[389,396]}},{"Repetition":{"atom":397,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[385,398]}},{"Alternative":{"atoms":[352,353,354,371,383,399]}},{"Entity":{"atom":33}},{"Entity":{"atom":100}},{"Alternative":{"atoms":[401,402]}},{"Entity":{"atom":6}},{"Repetition":{"atom":404,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[406,407,408]}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[&]"}},{"Re":{"pattern":"[,]"}},{"Alternative":{"atoms":[409,410,411,412]}},{"Repetition":{"atom":413,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Entity":{"atom":100}},{"Alternative":{"atoms":[415,416]}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[418,419,420]}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[&]"}},{"Re":{"pattern":"[,]"}},{"Alternative":{"atoms":[421,422,423,424]}},{"Repetition":{"atom":425,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[417,426]}},{"Repetition":{"atom":427,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[403,405,414,428]}},{"Repetition":{"atom":429,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[400,430]}},{"Named":{"name":"legacy_base_number_with_part","atom":431}},{"Alternative":{"atoms":[343,432]}},{"Entity":{"atom":6}},{"Repetition":{"atom":434,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":437}},{"Str":{"pattern":":"}},{"Named":{"name":"colon","atom":436}},{"Entity":{"atom":33}},{"Alternative":{"atoms":[438,439]}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[441,442]}},{"Entity":{"atom":26}},{"Repetition":{"atom":444,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":26}},{"Lookahead":{"atom":446,"positive":false}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":449,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[448,450]}},{"Repetition":{"atom":451,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":454,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[453,455]}},{"Repetition":{"atom":456,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[443,445,447,452,457]}},{"Named":{"name":"date","atom":458}},{"Str":{"pattern":"--"}},{"Named":{"name":"undated_marker","atom":460}},{"Str":{"pattern":"—"}},{"Named":{"name":"undated_marker","atom":462}},{"Alternative":{"atoms":[459,461,463]}},{"Sequence":{"atoms":[440,464]}},{"Sequence":{"atoms":[435,465]}},{"Repetition":{"atom":466,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":517}},{"Entity":{"atom":474}},{"Entity":{"atom":6}},{"Repetition":{"atom":470,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":153}},{"Repetition":{"atom":472,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[471,473]}},{"Entity":{"atom":500}},{"Str":{"pattern":"("}},{"Entity":{"atom":498}},{"Entity":{"atom":20}},{"Repetition":{"atom":478,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":","}},{"Str":{"pattern":"-"}},{"Alternative":{"atoms":[480,481]}},{"Repetition":{"atom":482,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[479,483]}},{"Entity":{"atom":492}},{"Re":{"pattern":"[E]"}},{"Re":{"pattern":"[F]"}},{"Re":{"pattern":"[A]"}},{"Re":{"pattern":"[R]"}},{"Re":{"pattern":"[D]"}},{"Re":{"pattern":"[S]"}},{"Alternative":{"atoms":[486,487,488,489,490,491]}},{"Entity":{"atom":177}},{"Repetition":{"atom":493,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[485,494]}},{"Alternative":{"atoms":[484,495]}},{"Repetition":{"atom":496,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"languages","atom":497}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[476,477,499]}},{"Repetition":{"atom":475,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":511}},{"Entity":{"atom":177}},{"Str":{"pattern":"FRAGC"}},{"Str":{"pattern":"FRAG"}},{"Alternative":{"atoms":[504,505]}},{"Named":{"name":"fragment_type","atom":506}},{"Entity":{"atom":26}},{"Repetition":{"atom":508,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"fragment_number","atom":509}},{"Sequence":{"atoms":[503,507,510]}},{"Repetition":{"atom":502,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":515}},{"Str":{"pattern":"(all parts)"}},{"Named":{"name":"all_parts","atom":514}},{"Repetition":{"atom":513,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[469,501,512,516]}},{"Sequence":{"atoms":[307,309,317,319,321,328,329,335,433,467,468]}},{"Entity":{"atom":1126}},{"Entity":{"atom":796}},{"Entity":{"atom":524}},{"Str":{"pattern":"Guide"}},{"Str":{"pattern":"GUIDE"}},{"Alternative":{"atoms":[522,523]}},{"Named":{"name":"type_with_stage_fr","atom":521}},{"Entity":{"atom":6}},{"Sequence":{"atoms":[525,526]}},{"Repetition":{"atom":527,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":535}},{"Entity":{"atom":173}},{"Entity":{"atom":6}},{"Repetition":{"atom":531,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":196}},{"Repetition":{"atom":533,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[530,532,534]}},{"Repetition":{"atom":529,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Repetition":{"atom":537,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":177}},{"Repetition":{"atom":539,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":682}},{"Str":{"pattern":"Technology Report"}},{"Str":{"pattern":"Trend Report"}},{"Str":{"pattern":"White Paper"}},{"Str":{"pattern":"ANW Guide"}},{"Str":{"pattern":"PRF Guide"}},{"Str":{"pattern":"PWI Guide"}},{"Str":{"pattern":"ANW Frag"}},{"Str":{"pattern":"CD Guide"}},{"Str":{"pattern":"NP Guide"}},{"Str":{"pattern":"PRF Frag"}},{"Str":{"pattern":"PWI Frag"}},{"Str":{"pattern":"WD Guide"}},{"Str":{"pattern":"ANW Amd"}},{"Str":{"pattern":"ANW Cor"}},{"Str":{"pattern":"ANW ISH"}},{"Str":{"pattern":"ANW PAS"}},{"Str":{"pattern":"FDGuide"}},{"Str":{"pattern":"NP Frag"}},{"Str":{"pattern":"PRF Amd"}},{"Str":{"pattern":"PRF Cor"}},{"Str":{"pattern":"PWI Amd"}},{"Str":{"pattern":"PWI Cor"}},{"Str":{"pattern":"PWI ISH"}},{"Str":{"pattern":"PWI PAS"}},{"Str":{"pattern":"WD Frag"}},{"Str":{"pattern":"ANW TR"}},{"Str":{"pattern":"ANW TS"}},{"Str":{"pattern":"CDFRAG"}},{"Str":{"pattern":"DELPUB"}},{"Str":{"pattern":"DGuide"}},{"Str":{"pattern":"FDFRAG"}},{"Str":{"pattern":"NP Amd"}},{"Str":{"pattern":"NP Cor"}},{"Str":{"pattern":"NP ISH"}},{"Str":{"pattern":"NP PAS"}},{"Str":{"pattern":"PWI TR"}},{"Str":{"pattern":"PWI TS"}},{"Str":{"pattern":"WD Amd"}},{"Str":{"pattern":"WD ISH"}},{"Str":{"pattern":"WD PAS"}},{"Str":{"pattern":"CD TR"}},{"Str":{"pattern":"CD TS"}},{"Str":{"pattern":"CDCOR"}},{"Str":{"pattern":"CDCor"}},{"Str":{"pattern":"CDISH"}},{"Str":{"pattern":"CDPAS"}},{"Str":{"pattern":"CFDIS"}},{"Str":{"pattern":"DFRAG"}},{"Str":{"pattern":"FDCOR"}},{"Str":{"pattern":"FPDAM"}},{"Str":{"pattern":"GUIDE"}},{"Str":{"pattern":"Guide"}},{"Str":{"pattern":"NADIS"}},{"Str":{"pattern":"NFDIS"}},{"Str":{"pattern":"NP TR"}},{"Str":{"pattern":"NP TS"}},{"Str":{"pattern":"RDISH"}},{"Str":{"pattern":"RFDIS"}},{"Str":{"pattern":"WD TR"}},{"Str":{"pattern":"WD TS"}},{"Str":{"pattern":"WDCor"}},{"Str":{"pattern":"A2CD"}},{"Str":{"pattern":"A3CD"}},{"Str":{"pattern":"A4CD"}},{"Str":{"pattern":"A5CD"}},{"Str":{"pattern":"A6CD"}},{"Str":{"pattern":"A7CD"}},{"Str":{"pattern":"A8CD"}},{"Str":{"pattern":"A9CD"}},{"Str":{"pattern":"ACDV"}},{"Str":{"pattern":"ADTR"}},{"Str":{"pattern":"ADTS"}},{"Str":{"pattern":"APUB"}},{"Str":{"pattern":"AWIN"}},{"Str":{"pattern":"BPUB"}},{"Str":{"pattern":"CCDV"}},{"Str":{"pattern":"CDAM"}},{"Str":{"pattern":"CDTR"}},{"Str":{"pattern":"CDTS"}},{"Str":{"pattern":"CDVM"}},{"Str":{"pattern":"DCOR"}},{"Str":{"pattern":"DISH"}},{"Str":{"pattern":"DPAS"}},{"Str":{"pattern":"DTRM"}},{"Str":{"pattern":"DTSM"}},{"Str":{"pattern":"FDAM"}},{"Str":{"pattern":"FDIS"}},{"Str":{"pattern":"FRAG"}},{"Str":{"pattern":"NCDV"}},{"Str":{"pattern":"NDTR"}},{"Str":{"pattern":"NDTS"}},{"Str":{"pattern":"NWIP"}},{"Str":{"pattern":"PDAM"}},{"Str":{"pattern":"PPUB"}},{"Str":{"pattern":"WPUB"}},{"Str":{"pattern":"2CD"}},{"Str":{"pattern":"3CD"}},{"Str":{"pattern":"4CD"}},{"Str":{"pattern":"5CD"}},{"Str":{"pattern":"6CD"}},{"Str":{"pattern":"7CD"}},{"Str":{"pattern":"8CD"}},{"Str":{"pattern":"9CD"}},{"Str":{"pattern":"ACD"}},{"Str":{"pattern":"AMD"}},{"Str":{"pattern":"AMW"}},{"Str":{"pattern":"ANW"}},{"Str":{"pattern":"Amd"}},{"Str":{"pattern":"BWG"}},{"Str":{"pattern":"CAN"}},{"Str":{"pattern":"CDM"}},{"Str":{"pattern":"CDV"}},{"Str":{"pattern":"COR"}},{"Str":{"pattern":"Cor"}},{"Str":{"pattern":"DAM"}},{"Str":{"pattern":"DTR"}},{"Str":{"pattern":"DTS"}},{"Str":{"pattern":"ISH"}},{"Str":{"pattern":"PAS"}},{"Str":{"pattern":"PNW"}},{"Str":{"pattern":"PRF"}},{"Str":{"pattern":"PWI"}},{"Str":{"pattern":"SRD"}},{"Str":{"pattern":"TRF"}},{"Str":{"pattern":"CA"}},{"Str":{"pattern":"CD"}},{"Str":{"pattern":"CS"}},{"Str":{"pattern":"NP"}},{"Str":{"pattern":"OD"}},{"Str":{"pattern":"RR"}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Str":{"pattern":"WD"}},{"Alternative":{"atoms":[542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674]}},{"Named":{"name":"type_with_stage","atom":675}},{"Entity":{"atom":26}},{"Named":{"name":"stage_iteration","atom":677}},{"Entity":{"atom":6}},{"Sequence":{"atoms":[678,679]}},{"Repetition":{"atom":680,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[676,681]}},{"Repetition":{"atom":541,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Repetition":{"atom":684,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":794}},{"Entity":{"atom":693}},{"Str":{"pattern":"CISPR"}},{"Entity":{"atom":6}},{"Sequence":{"atoms":[688,689]}},{"Named":{"name":"trf_org","atom":690}},{"Entity":{"atom":130}},{"Sequence":{"atoms":[691,692]}},{"Entity":{"atom":130}},{"Alternative":{"atoms":[687,694]}},{"Entity":{"atom":700}},{"Entity":{"atom":146}},{"Entity":{"atom":26}},{"Named":{"name":"stage_iteration","atom":698}},{"Sequence":{"atoms":[697,699]}},{"Repetition":{"atom":696,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Repetition":{"atom":702,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":736}},{"Entity":{"atom":437}},{"Named":{"name":"colon","atom":705}},{"Entity":{"atom":33}},{"Alternative":{"atoms":[706,707]}},{"Entity":{"atom":735}},{"Entity":{"atom":713}},{"Str":{"pattern":"--"}},{"Str":{"pattern":"—"}},{"Alternative":{"atoms":[711,712]}},{"Named":{"name":"undated_marker","atom":710}},{"Entity":{"atom":734}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[716,717]}},{"Entity":{"atom":26}},{"Repetition":{"atom":719,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":26}},{"Lookahead":{"atom":721,"positive":false}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":724,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[723,725]}},{"Repetition":{"atom":726,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":729,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[728,730]}},{"Repetition":{"atom":731,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[718,720,722,727,732]}},{"Named":{"name":"date","atom":733}},{"Alternative":{"atoms":[714,715]}},{"Sequence":{"atoms":[708,709]}},{"Sequence":{"atoms":[703,704]}},{"Repetition":{"atom":737,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":766}},{"Entity":{"atom":765}},{"Str":{"pattern":"+"}},{"Str":{"pattern":"AMD"}},{"Str":{"pattern":"COR"}},{"Alternative":{"atoms":[742,743]}},{"Named":{"name":"supplement_type","atom":744}},{"Entity":{"atom":26}},{"Repetition":{"atom":746,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"supplement_number","atom":747}},{"Entity":{"atom":437}},{"Named":{"name":"colon","atom":749}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[751,752]}},{"Entity":{"atom":26}},{"Repetition":{"atom":754,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":26}},{"Lookahead":{"atom":756,"positive":false}},{"Sequence":{"atoms":[753,755,757]}},{"Named":{"name":"supplement_year","atom":758}},{"Sequence":{"atoms":[748,750,759]}},{"Entity":{"atom":26}},{"Repetition":{"atom":761,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"supplement_number","atom":762}},{"Alternative":{"atoms":[760,763]}},{"Sequence":{"atoms":[741,745,764]}},{"Repetition":{"atom":740,"min":1,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":739,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":786}},{"Entity":{"atom":6}},{"Entity":{"atom":778}},{"Str":{"pattern":"CSV"}},{"Str":{"pattern":"CMV"}},{"Str":{"pattern":"RLV"}},{"Str":{"pattern":"SER"}},{"Str":{"pattern":"EXV"}},{"Str":{"pattern":"PAC"}},{"Str":{"pattern":"PRV"}},{"Alternative":{"atoms":[771,772,773,774,775,776,777]}},{"Entity":{"atom":33}},{"Entity":{"atom":778}},{"Sequence":{"atoms":[779,780]}},{"Repetition":{"atom":781,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[770,782]}},{"Repetition":{"atom":783,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"vap_suffix","atom":784}},{"Sequence":{"atoms":[769,785]}},{"Entity":{"atom":791}},{"Entity":{"atom":6}},{"Str":{"pattern":"DB"}},{"Named":{"name":"database","atom":789}},{"Sequence":{"atoms":[788,790]}},{"Alternative":{"atoms":[768,787]}},{"Repetition":{"atom":792,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[695,701,738,767,793]}},{"Entity":{"atom":474}},{"Sequence":{"atoms":[528,536,538,540,683,685,686,795]}},{"Entity":{"atom":813}},{"Entity":{"atom":177}},{"Entity":{"atom":26}},{"Repetition":{"atom":799,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"sheet_number","atom":800}},{"Entity":{"atom":437}},{"Named":{"name":"colon","atom":802}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[804,805]}},{"Entity":{"atom":26}},{"Repetition":{"atom":807,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":26}},{"Lookahead":{"atom":809,"positive":false}},{"Sequence":{"atoms":[806,808,810]}},{"Named":{"name":"sheet_year","atom":811}},{"Sequence":{"atoms":[798,801,803,812]}},{"Entity":{"atom":177}},{"Entity":{"atom":953}},{"Str":{"pattern":"Technology Report"}},{"Str":{"pattern":"Trend Report"}},{"Str":{"pattern":"White Paper"}},{"Str":{"pattern":"ANW Guide"}},{"Str":{"pattern":"PRF Guide"}},{"Str":{"pattern":"PWI Guide"}},{"Str":{"pattern":"ANW Frag"}},{"Str":{"pattern":"CD Guide"}},{"Str":{"pattern":"NP Guide"}},{"Str":{"pattern":"PRF Frag"}},{"Str":{"pattern":"PWI Frag"}},{"Str":{"pattern":"WD Guide"}},{"Str":{"pattern":"ANW Amd"}},{"Str":{"pattern":"ANW Cor"}},{"Str":{"pattern":"ANW ISH"}},{"Str":{"pattern":"ANW PAS"}},{"Str":{"pattern":"FDGuide"}},{"Str":{"pattern":"NP Frag"}},{"Str":{"pattern":"PRF Amd"}},{"Str":{"pattern":"PRF Cor"}},{"Str":{"pattern":"PWI Amd"}},{"Str":{"pattern":"PWI Cor"}},{"Str":{"pattern":"PWI ISH"}},{"Str":{"pattern":"PWI PAS"}},{"Str":{"pattern":"WD Frag"}},{"Str":{"pattern":"ANW TR"}},{"Str":{"pattern":"ANW TS"}},{"Str":{"pattern":"CDFRAG"}},{"Str":{"pattern":"DELPUB"}},{"Str":{"pattern":"DGuide"}},{"Str":{"pattern":"FDFRAG"}},{"Str":{"pattern":"NP Amd"}},{"Str":{"pattern":"NP Cor"}},{"Str":{"pattern":"NP ISH"}},{"Str":{"pattern":"NP PAS"}},{"Str":{"pattern":"PWI TR"}},{"Str":{"pattern":"PWI TS"}},{"Str":{"pattern":"WD Amd"}},{"Str":{"pattern":"WD ISH"}},{"Str":{"pattern":"WD PAS"}},{"Str":{"pattern":"CD TR"}},{"Str":{"pattern":"CD TS"}},{"Str":{"pattern":"CDCOR"}},{"Str":{"pattern":"CDCor"}},{"Str":{"pattern":"CDISH"}},{"Str":{"pattern":"CDPAS"}},{"Str":{"pattern":"CFDIS"}},{"Str":{"pattern":"DFRAG"}},{"Str":{"pattern":"FDCOR"}},{"Str":{"pattern":"FPDAM"}},{"Str":{"pattern":"GUIDE"}},{"Str":{"pattern":"Guide"}},{"Str":{"pattern":"NADIS"}},{"Str":{"pattern":"NFDIS"}},{"Str":{"pattern":"NP TR"}},{"Str":{"pattern":"NP TS"}},{"Str":{"pattern":"RDISH"}},{"Str":{"pattern":"RFDIS"}},{"Str":{"pattern":"WD TR"}},{"Str":{"pattern":"WD TS"}},{"Str":{"pattern":"WDCor"}},{"Str":{"pattern":"A2CD"}},{"Str":{"pattern":"A3CD"}},{"Str":{"pattern":"A4CD"}},{"Str":{"pattern":"A5CD"}},{"Str":{"pattern":"A6CD"}},{"Str":{"pattern":"A7CD"}},{"Str":{"pattern":"A8CD"}},{"Str":{"pattern":"A9CD"}},{"Str":{"pattern":"ACDV"}},{"Str":{"pattern":"ADTR"}},{"Str":{"pattern":"ADTS"}},{"Str":{"pattern":"APUB"}},{"Str":{"pattern":"AWIN"}},{"Str":{"pattern":"BPUB"}},{"Str":{"pattern":"CCDV"}},{"Str":{"pattern":"CDAM"}},{"Str":{"pattern":"CDTR"}},{"Str":{"pattern":"CDTS"}},{"Str":{"pattern":"CDVM"}},{"Str":{"pattern":"DCOR"}},{"Str":{"pattern":"DISH"}},{"Str":{"pattern":"DPAS"}},{"Str":{"pattern":"DTRM"}},{"Str":{"pattern":"DTSM"}},{"Str":{"pattern":"FDAM"}},{"Str":{"pattern":"FDIS"}},{"Str":{"pattern":"FRAG"}},{"Str":{"pattern":"NCDV"}},{"Str":{"pattern":"NDTR"}},{"Str":{"pattern":"NDTS"}},{"Str":{"pattern":"NWIP"}},{"Str":{"pattern":"PDAM"}},{"Str":{"pattern":"PPUB"}},{"Str":{"pattern":"WPUB"}},{"Str":{"pattern":"2CD"}},{"Str":{"pattern":"3CD"}},{"Str":{"pattern":"4CD"}},{"Str":{"pattern":"5CD"}},{"Str":{"pattern":"6CD"}},{"Str":{"pattern":"7CD"}},{"Str":{"pattern":"8CD"}},{"Str":{"pattern":"9CD"}},{"Str":{"pattern":"ACD"}},{"Str":{"pattern":"AMD"}},{"Str":{"pattern":"AMW"}},{"Str":{"pattern":"ANW"}},{"Str":{"pattern":"Amd"}},{"Str":{"pattern":"BWG"}},{"Str":{"pattern":"CAN"}},{"Str":{"pattern":"CDM"}},{"Str":{"pattern":"CDV"}},{"Str":{"pattern":"COR"}},{"Str":{"pattern":"Cor"}},{"Str":{"pattern":"DAM"}},{"Str":{"pattern":"DTR"}},{"Str":{"pattern":"DTS"}},{"Str":{"pattern":"ISH"}},{"Str":{"pattern":"PAS"}},{"Str":{"pattern":"PNW"}},{"Str":{"pattern":"PRF"}},{"Str":{"pattern":"PWI"}},{"Str":{"pattern":"SRD"}},{"Str":{"pattern":"TRF"}},{"Str":{"pattern":"CA"}},{"Str":{"pattern":"CD"}},{"Str":{"pattern":"CS"}},{"Str":{"pattern":"NP"}},{"Str":{"pattern":"OD"}},{"Str":{"pattern":"RR"}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Str":{"pattern":"WD"}},{"Alternative":{"atoms":[816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948]}},{"Str":{"pattern":"FRAGC"}},{"Str":{"pattern":"FRAG"}},{"Alternative":{"atoms":[949,950,951]}},{"Named":{"name":"supp_type_with_stage","atom":952}},{"Entity":{"atom":6}},{"Repetition":{"atom":954,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":1092}},{"Entity":{"atom":693}},{"Str":{"pattern":"DIR"}},{"Entity":{"atom":6}},{"Entity":{"atom":18}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[960,961]}},{"Repetition":{"atom":962,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[959,963]}},{"Repetition":{"atom":964,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[958,965]}},{"Str":{"pattern":"VIM"}},{"Str":{"pattern":"SYMBOL"}},{"Entity":{"atom":26}},{"Repetition":{"atom":969,"min":1,"max":6,"tag":"Repetition"}},{"Str":{"pattern":"v"}},{"Entity":{"atom":26}},{"Repetition":{"atom":972,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[974,975]}},{"Repetition":{"atom":976,"min":0,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"_"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[979,980]}},{"Repetition":{"atom":981,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[978,982]}},{"Repetition":{"atom":983,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[970,971,973,977,984]}},{"Entity":{"atom":18}},{"Repetition":{"atom":986,"min":2,"max":4,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":989,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[988,990]}},{"Repetition":{"atom":991,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":18}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[993,994]}},{"Repetition":{"atom":995,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[987,992,996]}},{"Entity":{"atom":26}},{"Repetition":{"atom":998,"min":1,"max":6,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[1000,1001]}},{"Repetition":{"atom":1002,"min":0,"max":1,"tag":"Repetition"}},{"Str":{"pattern":"_"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[1005,1006]}},{"Repetition":{"atom":1007,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1004,1008]}},{"Repetition":{"atom":1009,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1003,1010]}},{"Repetition":{"atom":1011,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[999,1012]}},{"Alternative":{"atoms":[966,967,968,985,997,1013]}},{"Entity":{"atom":33}},{"Entity":{"atom":100}},{"Alternative":{"atoms":[1015,1016]}},{"Entity":{"atom":6}},{"Repetition":{"atom":1018,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[1020,1021,1022]}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[&]"}},{"Re":{"pattern":"[,]"}},{"Alternative":{"atoms":[1023,1024,1025,1026]}},{"Repetition":{"atom":1027,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Entity":{"atom":100}},{"Alternative":{"atoms":[1029,1030]}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[1032,1033,1034]}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[&]"}},{"Re":{"pattern":"[,]"}},{"Alternative":{"atoms":[1035,1036,1037,1038]}},{"Repetition":{"atom":1039,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1031,1040]}},{"Repetition":{"atom":1041,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1017,1019,1028,1042]}},{"Repetition":{"atom":1043,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1014,1044]}},{"Named":{"name":"supp_number_with_part","atom":1045}},{"Alternative":{"atoms":[957,1046]}},{"Entity":{"atom":146}},{"Entity":{"atom":26}},{"Named":{"name":"supp_stage_iteration","atom":1049}},{"Sequence":{"atoms":[1048,1050]}},{"Repetition":{"atom":1051,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Repetition":{"atom":1053,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":437}},{"Named":{"name":"colon","atom":1055}},{"Entity":{"atom":33}},{"Alternative":{"atoms":[1056,1057]}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[1059,1060]}},{"Entity":{"atom":26}},{"Repetition":{"atom":1062,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":26}},{"Lookahead":{"atom":1064,"positive":false}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":1067,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1066,1068]}},{"Repetition":{"atom":1069,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":1072,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1071,1073]}},{"Repetition":{"atom":1074,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1061,1063,1065,1070,1075]}},{"Named":{"name":"supp_date","atom":1076}},{"Str":{"pattern":"--"}},{"Named":{"name":"supp_undated_marker","atom":1078}},{"Str":{"pattern":"—"}},{"Named":{"name":"supp_undated_marker","atom":1080}},{"Alternative":{"atoms":[1077,1079,1081]}},{"Sequence":{"atoms":[1058,1082]}},{"Sequence":{"atoms":[1054,1083]}},{"Repetition":{"atom":1084,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":766}},{"Repetition":{"atom":1086,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":786}},{"Entity":{"atom":791}},{"Alternative":{"atoms":[1088,1089]}},{"Repetition":{"atom":1090,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1047,1052,1085,1087,1091]}},{"Entity":{"atom":1125}},{"Entity":{"atom":1118}},{"Entity":{"atom":6}},{"Repetition":{"atom":1095,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":1116}},{"Entity":{"atom":1103}},{"Str":{"pattern":"Edition"}},{"Str":{"pattern":"Ed."}},{"Str":{"pattern":"ED"}},{"Str":{"pattern":"Ed"}},{"Alternative":{"atoms":[1099,1100,1101,1102]}},{"Named":{"name":"supp_edition_str","atom":1098}},{"Entity":{"atom":6}},{"Repetition":{"atom":1105,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":26}},{"Repetition":{"atom":1107,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":146}},{"Entity":{"atom":26}},{"Repetition":{"atom":1110,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1109,1111]}},{"Repetition":{"atom":1112,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1108,1113]}},{"Named":{"name":"supp_edition","atom":1114}},{"Sequence":{"atoms":[1104,1106,1115]}},{"Repetition":{"atom":1097,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1096,1117]}},{"Entity":{"atom":500}},{"Repetition":{"atom":1119,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":511}},{"Repetition":{"atom":1121,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":515}},{"Repetition":{"atom":1123,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1094,1120,1122,1124]}},{"Sequence":{"atoms":[520,797,814,815,955,956,1093]}},{"Entity":{"atom":1137}},{"Entity":{"atom":796}},{"Entity":{"atom":813}},{"Entity":{"atom":1135}},{"Entity":{"atom":177}},{"Entity":{"atom":26}},{"Repetition":{"atom":1132,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"sheet_number","atom":1133}},{"Sequence":{"atoms":[1131,1134]}},{"Alternative":{"atoms":[1129,1130]}},{"Sequence":{"atoms":[1128,1136]}},{"Entity":{"atom":1455}},{"Entity":{"atom":1148}},{"Entity":{"atom":796}},{"Entity":{"atom":500}},{"Repetition":{"atom":1141,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":177}},{"Entity":{"atom":953}},{"Entity":{"atom":6}},{"Repetition":{"atom":1145,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":1092}},{"Sequence":{"atoms":[1140,1142,1143,1144,1146,1147]}},{"Entity":{"atom":177}},{"Entity":{"atom":1288}},{"Str":{"pattern":"Technology Report"}},{"Str":{"pattern":"Trend Report"}},{"Str":{"pattern":"White Paper"}},{"Str":{"pattern":"ANW Guide"}},{"Str":{"pattern":"PRF Guide"}},{"Str":{"pattern":"PWI Guide"}},{"Str":{"pattern":"ANW Frag"}},{"Str":{"pattern":"CD Guide"}},{"Str":{"pattern":"NP Guide"}},{"Str":{"pattern":"PRF Frag"}},{"Str":{"pattern":"PWI Frag"}},{"Str":{"pattern":"WD Guide"}},{"Str":{"pattern":"ANW Amd"}},{"Str":{"pattern":"ANW Cor"}},{"Str":{"pattern":"ANW ISH"}},{"Str":{"pattern":"ANW PAS"}},{"Str":{"pattern":"FDGuide"}},{"Str":{"pattern":"NP Frag"}},{"Str":{"pattern":"PRF Amd"}},{"Str":{"pattern":"PRF Cor"}},{"Str":{"pattern":"PWI Amd"}},{"Str":{"pattern":"PWI Cor"}},{"Str":{"pattern":"PWI ISH"}},{"Str":{"pattern":"PWI PAS"}},{"Str":{"pattern":"WD Frag"}},{"Str":{"pattern":"ANW TR"}},{"Str":{"pattern":"ANW TS"}},{"Str":{"pattern":"CDFRAG"}},{"Str":{"pattern":"DELPUB"}},{"Str":{"pattern":"DGuide"}},{"Str":{"pattern":"FDFRAG"}},{"Str":{"pattern":"NP Amd"}},{"Str":{"pattern":"NP Cor"}},{"Str":{"pattern":"NP ISH"}},{"Str":{"pattern":"NP PAS"}},{"Str":{"pattern":"PWI TR"}},{"Str":{"pattern":"PWI TS"}},{"Str":{"pattern":"WD Amd"}},{"Str":{"pattern":"WD ISH"}},{"Str":{"pattern":"WD PAS"}},{"Str":{"pattern":"CD TR"}},{"Str":{"pattern":"CD TS"}},{"Str":{"pattern":"CDCOR"}},{"Str":{"pattern":"CDCor"}},{"Str":{"pattern":"CDISH"}},{"Str":{"pattern":"CDPAS"}},{"Str":{"pattern":"CFDIS"}},{"Str":{"pattern":"DFRAG"}},{"Str":{"pattern":"FDCOR"}},{"Str":{"pattern":"FPDAM"}},{"Str":{"pattern":"GUIDE"}},{"Str":{"pattern":"Guide"}},{"Str":{"pattern":"NADIS"}},{"Str":{"pattern":"NFDIS"}},{"Str":{"pattern":"NP TR"}},{"Str":{"pattern":"NP TS"}},{"Str":{"pattern":"RDISH"}},{"Str":{"pattern":"RFDIS"}},{"Str":{"pattern":"WD TR"}},{"Str":{"pattern":"WD TS"}},{"Str":{"pattern":"WDCor"}},{"Str":{"pattern":"A2CD"}},{"Str":{"pattern":"A3CD"}},{"Str":{"pattern":"A4CD"}},{"Str":{"pattern":"A5CD"}},{"Str":{"pattern":"A6CD"}},{"Str":{"pattern":"A7CD"}},{"Str":{"pattern":"A8CD"}},{"Str":{"pattern":"A9CD"}},{"Str":{"pattern":"ACDV"}},{"Str":{"pattern":"ADTR"}},{"Str":{"pattern":"ADTS"}},{"Str":{"pattern":"APUB"}},{"Str":{"pattern":"AWIN"}},{"Str":{"pattern":"BPUB"}},{"Str":{"pattern":"CCDV"}},{"Str":{"pattern":"CDAM"}},{"Str":{"pattern":"CDTR"}},{"Str":{"pattern":"CDTS"}},{"Str":{"pattern":"CDVM"}},{"Str":{"pattern":"DCOR"}},{"Str":{"pattern":"DISH"}},{"Str":{"pattern":"DPAS"}},{"Str":{"pattern":"DTRM"}},{"Str":{"pattern":"DTSM"}},{"Str":{"pattern":"FDAM"}},{"Str":{"pattern":"FDIS"}},{"Str":{"pattern":"FRAG"}},{"Str":{"pattern":"NCDV"}},{"Str":{"pattern":"NDTR"}},{"Str":{"pattern":"NDTS"}},{"Str":{"pattern":"NWIP"}},{"Str":{"pattern":"PDAM"}},{"Str":{"pattern":"PPUB"}},{"Str":{"pattern":"WPUB"}},{"Str":{"pattern":"2CD"}},{"Str":{"pattern":"3CD"}},{"Str":{"pattern":"4CD"}},{"Str":{"pattern":"5CD"}},{"Str":{"pattern":"6CD"}},{"Str":{"pattern":"7CD"}},{"Str":{"pattern":"8CD"}},{"Str":{"pattern":"9CD"}},{"Str":{"pattern":"ACD"}},{"Str":{"pattern":"AMD"}},{"Str":{"pattern":"AMW"}},{"Str":{"pattern":"ANW"}},{"Str":{"pattern":"Amd"}},{"Str":{"pattern":"BWG"}},{"Str":{"pattern":"CAN"}},{"Str":{"pattern":"CDM"}},{"Str":{"pattern":"CDV"}},{"Str":{"pattern":"COR"}},{"Str":{"pattern":"Cor"}},{"Str":{"pattern":"DAM"}},{"Str":{"pattern":"DTR"}},{"Str":{"pattern":"DTS"}},{"Str":{"pattern":"ISH"}},{"Str":{"pattern":"PAS"}},{"Str":{"pattern":"PNW"}},{"Str":{"pattern":"PRF"}},{"Str":{"pattern":"PWI"}},{"Str":{"pattern":"SRD"}},{"Str":{"pattern":"TRF"}},{"Str":{"pattern":"CA"}},{"Str":{"pattern":"CD"}},{"Str":{"pattern":"CS"}},{"Str":{"pattern":"NP"}},{"Str":{"pattern":"OD"}},{"Str":{"pattern":"RR"}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Str":{"pattern":"WD"}},{"Alternative":{"atoms":[1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283]}},{"Str":{"pattern":"FRAGC"}},{"Str":{"pattern":"FRAG"}},{"Alternative":{"atoms":[1284,1285,1286]}},{"Named":{"name":"supp2_type_with_stage","atom":1287}},{"Entity":{"atom":6}},{"Repetition":{"atom":1289,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":1427}},{"Entity":{"atom":693}},{"Str":{"pattern":"DIR"}},{"Entity":{"atom":6}},{"Entity":{"atom":18}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[1295,1296]}},{"Repetition":{"atom":1297,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1294,1298]}},{"Repetition":{"atom":1299,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1293,1300]}},{"Str":{"pattern":"VIM"}},{"Str":{"pattern":"SYMBOL"}},{"Entity":{"atom":26}},{"Repetition":{"atom":1304,"min":1,"max":6,"tag":"Repetition"}},{"Str":{"pattern":"v"}},{"Entity":{"atom":26}},{"Repetition":{"atom":1307,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[1309,1310]}},{"Repetition":{"atom":1311,"min":0,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"_"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[1314,1315]}},{"Repetition":{"atom":1316,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1313,1317]}},{"Repetition":{"atom":1318,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1305,1306,1308,1312,1319]}},{"Entity":{"atom":18}},{"Repetition":{"atom":1321,"min":2,"max":4,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":1324,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1323,1325]}},{"Repetition":{"atom":1326,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":18}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[1328,1329]}},{"Repetition":{"atom":1330,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1322,1327,1331]}},{"Entity":{"atom":26}},{"Repetition":{"atom":1333,"min":1,"max":6,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[1335,1336]}},{"Repetition":{"atom":1337,"min":0,"max":1,"tag":"Repetition"}},{"Str":{"pattern":"_"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[1340,1341]}},{"Repetition":{"atom":1342,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1339,1343]}},{"Repetition":{"atom":1344,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1338,1345]}},{"Repetition":{"atom":1346,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1334,1347]}},{"Alternative":{"atoms":[1301,1302,1303,1320,1332,1348]}},{"Entity":{"atom":33}},{"Entity":{"atom":100}},{"Alternative":{"atoms":[1350,1351]}},{"Entity":{"atom":6}},{"Repetition":{"atom":1353,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[1355,1356,1357]}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[&]"}},{"Re":{"pattern":"[,]"}},{"Alternative":{"atoms":[1358,1359,1360,1361]}},{"Repetition":{"atom":1362,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Entity":{"atom":100}},{"Alternative":{"atoms":[1364,1365]}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[1367,1368,1369]}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[&]"}},{"Re":{"pattern":"[,]"}},{"Alternative":{"atoms":[1370,1371,1372,1373]}},{"Repetition":{"atom":1374,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1366,1375]}},{"Repetition":{"atom":1376,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1352,1354,1363,1377]}},{"Repetition":{"atom":1378,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1349,1379]}},{"Named":{"name":"supp2_number_with_part","atom":1380}},{"Alternative":{"atoms":[1292,1381]}},{"Entity":{"atom":146}},{"Entity":{"atom":26}},{"Named":{"name":"supp2_stage_iteration","atom":1384}},{"Sequence":{"atoms":[1383,1385]}},{"Repetition":{"atom":1386,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Repetition":{"atom":1388,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":437}},{"Named":{"name":"colon","atom":1390}},{"Entity":{"atom":33}},{"Alternative":{"atoms":[1391,1392]}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[1394,1395]}},{"Entity":{"atom":26}},{"Repetition":{"atom":1397,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":26}},{"Lookahead":{"atom":1399,"positive":false}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":1402,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1401,1403]}},{"Repetition":{"atom":1404,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":1407,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1406,1408]}},{"Repetition":{"atom":1409,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1396,1398,1400,1405,1410]}},{"Named":{"name":"supp2_date","atom":1411}},{"Str":{"pattern":"--"}},{"Named":{"name":"supp2_undated_marker","atom":1413}},{"Str":{"pattern":"—"}},{"Named":{"name":"supp2_undated_marker","atom":1415}},{"Alternative":{"atoms":[1412,1414,1416]}},{"Sequence":{"atoms":[1393,1417]}},{"Sequence":{"atoms":[1389,1418]}},{"Repetition":{"atom":1419,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":766}},{"Repetition":{"atom":1421,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":786}},{"Entity":{"atom":791}},{"Alternative":{"atoms":[1423,1424]}},{"Repetition":{"atom":1425,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1382,1387,1420,1422,1426]}},{"Entity":{"atom":1454}},{"Entity":{"atom":1447}},{"Entity":{"atom":6}},{"Repetition":{"atom":1430,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":1103}},{"Named":{"name":"supp_edition_str","atom":1432}},{"Entity":{"atom":6}},{"Repetition":{"atom":1434,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":26}},{"Repetition":{"atom":1436,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":146}},{"Entity":{"atom":26}},{"Repetition":{"atom":1439,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1438,1440]}},{"Repetition":{"atom":1441,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1437,1442]}},{"Named":{"name":"supp2_edition","atom":1443}},{"Sequence":{"atoms":[1433,1435,1444]}},{"Repetition":{"atom":1445,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1431,1446]}},{"Entity":{"atom":500}},{"Repetition":{"atom":1448,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":511}},{"Repetition":{"atom":1450,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":515}},{"Repetition":{"atom":1452,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1429,1449,1451,1453]}},{"Sequence":{"atoms":[1139,1149,1150,1290,1291,1428]}},{"Entity":{"atom":1463}},{"Entity":{"atom":535}},{"Entity":{"atom":177}},{"Entity":{"atom":953}},{"Entity":{"atom":6}},{"Entity":{"atom":1092}},{"Entity":{"atom":1125}},{"Sequence":{"atoms":[1457,1458,1459,1460,1461,1462]}},{"Entity":{"atom":1467}},{"Entity":{"atom":1148}},{"Entity":{"atom":1125}},{"Sequence":{"atoms":[1465,1466]}},{"Entity":{"atom":1471}},{"Entity":{"atom":796}},{"Entity":{"atom":517}},{"Sequence":{"atoms":[1469,1470]}},{"Alternative":{"atoms":[0,157,268,306,519,1127,1138,1456,1464,1468]}}],"root":1472},"bindings":[{"capture":"publisher","path":"publisher","type":"string","card":null,"preprocess":null},{"capture":"technical_committee","path":"technical_committee","type":"string","card":null,"preprocess":null},{"capture":"subcommittee","path":"subcommittee","type":"string","card":null,"preprocess":null},{"capture":"wd_number","path":"wd_number","type":"string","card":null,"preprocess":null},{"capture":"wd_language","path":"wd_language","type":"string","card":null,"preprocess":null},{"capture":"wd_stage","path":"wd_stage","type":"string","card":null,"preprocess":null},{"capture":"wp_stage","path":"wp_stage","type":"string","card":null,"preprocess":null},{"capture":"wp_type","path":"wp_type","type":"string","card":null,"preprocess":null},{"capture":"number_with_part","path":"number_with_part","type":"string","card":null,"preprocess":null},{"capture":"supp_number_with_part","path":"supp_number_with_part","type":"string","card":null,"preprocess":null},{"capture":"supp2_number_with_part","path":"supp2_number_with_part","type":"string","card":null,"preprocess":null},{"capture":"trf_org","path":"trf_org","type":"string","card":null,"preprocess":null},{"capture":"stage_iteration","path":"stage_iteration","type":"string","card":null,"preprocess":null},{"capture":"supp_stage_iteration","path":"supp_stage_iteration","type":"string","card":null,"preprocess":null},{"capture":"supp2_stage_iteration","path":"supp2_stage_iteration","type":"string","card":null,"preprocess":null},{"capture":"undated_marker","path":"undated_marker","type":"string","card":null,"preprocess":null},{"capture":"supp_undated_marker","path":"supp_undated_marker","type":"string","card":null,"preprocess":null},{"capture":"supp2_undated_marker","path":"supp2_undated_marker","type":"string","card":null,"preprocess":null},{"capture":"date","path":"date","type":"string","card":null,"preprocess":null},{"capture":"supp_date","path":"supp_date","type":"string","card":null,"preprocess":null},{"capture":"supp2_date","path":"supp2_date","type":"string","card":null,"preprocess":null},{"capture":"edition","path":"edition","type":"string","card":null,"preprocess":null},{"capture":"supp_edition","path":"supp_edition","type":"string","card":null,"preprocess":null},{"capture":"supp2_edition","path":"supp2_edition","type":"string","card":null,"preprocess":null},{"capture":"supplement_type","path":"consolidated_supplements[].supplement_type","type":"string","card":null,"preprocess":null},{"capture":"supplement_number","path":"consolidated_supplements[].supplement_number","type":"string","card":null,"preprocess":null},{"capture":"supplement_year","path":"consolidated_supplements[].supplement_year","type":"string","card":null,"preprocess":null},{"capture":"vap_suffix","path":"vap_suffix","type":"string","card":null,"preprocess":null},{"capture":"database","path":"database","type":"string","card":null,"preprocess":null},{"capture":"type_with_stage","path":"type_with_stage","type":"string","card":null,"preprocess":null},{"capture":"legacy_stage","path":"legacy_stage","type":"string","card":null,"preprocess":null},{"capture":"legacy_supplement_number","path":"legacy_supplement_number","type":"string","card":null,"preprocess":null},{"capture":"legacy_base_number_with_part","path":"legacy_base_number_with_part","type":"string","card":null,"preprocess":null},{"capture":"legacy_base_number","path":"legacy_base_number","type":"string","card":null,"preprocess":null},{"capture":"legacy_base_part","path":"legacy_base_part","type":"string","card":null,"preprocess":null},{"capture":"legacy_copublisher","path":"legacy_copublisher","type":"string","card":null,"preprocess":null},{"capture":"supp_type_with_stage","path":"supp_type_with_stage","type":"string","card":null,"preprocess":null},{"capture":"supp2_type_with_stage","path":"supp2_type_with_stage","type":"string","card":null,"preprocess":null},{"capture":"type_with_stage_fr","path":"type_with_stage_fr","type":"string","card":null,"preprocess":null},{"capture":"fragment_type","path":"fragment_type","type":"string","card":null,"preprocess":null},{"capture":"fragment_number","path":"fragment_number","type":"string","card":null,"preprocess":null},{"capture":"sheet_number","path":"sheet_number","type":"string","card":null,"preprocess":null},{"capture":"sheet_year","path":"sheet_year","type":"string","card":null,"preprocess":null},{"capture":"all_parts","path":"all_parts","type":"string","card":null,"preprocess":null},{"capture":"languages","path":"languages","type":"string","card":null,"preprocess":null},{"capture":"copublisher","path":"copublishers[].copublisher","type":"string","card":null,"preprocess":null}]}},"preprocess":{},"tables":{"iec_typed_stages":{"file":"iec_typed_stages.yaml","rows":[{"abbr":"TRF"},{"abbr":"PWI Amd"},{"abbr":"NP Amd"},{"abbr":"ANW Amd"},{"abbr":"WD Amd"},{"abbr":"CDAM"},{"abbr":"PDAM"},{"abbr":"DAM"},{"abbr":"FDAM"},{"abbr":"FPDAM"},{"abbr":"PRF Amd"},{"abbr":"Amd"},{"abbr":"AMD"},{"abbr":"PWI Cor"},{"abbr":"NP Cor"},{"abbr":"ANW Cor"},{"abbr":"WDCor"},{"abbr":"CDCor"},{"abbr":"CDCOR"},{"abbr":"DCOR"},{"abbr":"FDCOR"},{"abbr":"PRF Cor"},{"abbr":"Cor"},{"abbr":"COR"},{"abbr":"CS"},{"abbr":"CA"},{"abbr":"PWI Guide"},{"abbr":"NP Guide"},{"abbr":"ANW Guide"},{"abbr":"WD Guide"},{"abbr":"CD Guide"},{"abbr":"DGuide"},{"abbr":"FDGuide"},{"abbr":"PRF Guide"},{"abbr":"GUIDE"},{"abbr":"Guide"},{"abbr":"PWI"},{"abbr":"NWIP"},{"abbr":"BWG"},{"abbr":"AWIN"},{"abbr":"AMW"},{"abbr":"NP"},{"abbr":"PNW"},{"abbr":"ANW"},{"abbr":"WD"},{"abbr":"CD"},{"abbr":"2CD"},{"abbr":"3CD"},{"abbr":"4CD"},{"abbr":"5CD"},{"abbr":"6CD"},{"abbr":"7CD"},{"abbr":"8CD"},{"abbr":"9CD"},{"abbr":"ACD"},{"abbr":"A2CD"},{"abbr":"A3CD"},{"abbr":"A4CD"},{"abbr":"A5CD"},{"abbr":"A6CD"},{"abbr":"A7CD"},{"abbr":"A8CD"},{"abbr":"A9CD"},{"abbr":"CDM"},{"abbr":"CDV"},{"abbr":"ACDV"},{"abbr":"CCDV"},{"abbr":"CDVM"},{"abbr":"NCDV"},{"abbr":"FDIS"},{"abbr":"PRF"},{"abbr":"NFDIS"},{"abbr":"NADIS"},{"abbr":"RDISH"},{"abbr":"RFDIS"},{"abbr":"CFDIS"},{"abbr":"BPUB"},{"abbr":"PPUB"},{"abbr":"APUB"},{"abbr":"WPUB"},{"abbr":"DELPUB"},{"abbr":"RR"},{"abbr":"CAN"},{"abbr":"PWI ISH"},{"abbr":"NP ISH"},{"abbr":"ANW ISH"},{"abbr":"WD ISH"},{"abbr":"CDISH"},{"abbr":"DISH"},{"abbr":"ISH"},{"abbr":"OD"},{"abbr":"PWI PAS"},{"abbr":"NP PAS"},{"abbr":"ANW PAS"},{"abbr":"WD PAS"},{"abbr":"CDPAS"},{"abbr":"DPAS"},{"abbr":"PAS"},{"abbr":"Trend Report"},{"abbr":"PWI TR"},{"abbr":"NP TR"},{"abbr":"ANW TR"},{"abbr":"WD TR"},{"abbr":"CD TR"},{"abbr":"DTR"},{"abbr":"ADTR"},{"abbr":"CDTR"},{"abbr":"DTRM"},{"abbr":"NDTR"},{"abbr":"DTSM"},{"abbr":"TR"},{"abbr":"SRD"},{"abbr":"Technology Report"},{"abbr":"PWI TS"},{"abbr":"NP TS"},{"abbr":"ANW TS"},{"abbr":"WD TS"},{"abbr":"CD TS"},{"abbr":"DTS"},{"abbr":"ADTS"},{"abbr":"CDTS"},{"abbr":"NDTS"},{"abbr":"TS"},{"abbr":"White Paper"},{"abbr":"PWI Frag"},{"abbr":"NP Frag"},{"abbr":"ANW Frag"},{"abbr":"WD Frag"},{"abbr":"CDFRAG"},{"abbr":"DFRAG"},{"abbr":"FDFRAG"},{"abbr":"PRF Frag"},{"abbr":"FRAG"}]}},"lint":{"order_warnings":["rule dash: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule organization: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule organization: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule organization: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule organization: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule organization: branches 4 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule organization: branches 6 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule organization: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule tc_type: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule technical_group: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule wp_number: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule number: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule number: branches 2 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule number: branches 3 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule number: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule vap_code: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule vap_code: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition_str: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition_str: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition_str: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition_str: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition_str: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition_str: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule supp_edition_str: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule supp_edition_str: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule supp_edition_str: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule supp_edition_str: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule supp_edition_str: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule supp_edition_str: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule guide_prefix: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule legacy_dam_token: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 10 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"IEC 60050","expect":{}},{"entry":"identifier","kind":"accept","input":"IEC 8601-1:2019","expect":{}},{"entry":"identifier","kind":"accept","input":"CISPR 16-1-1","expect":{}},{"entry":"identifier","kind":"accept","input":"IECQ OD 1234","expect":{}},{"entry":"identifier","kind":"accept","input":"IEC/TS 80000-1","expect":{}},{"entry":"identifier","kind":"accept","input":"IEC/FDAM 60038-1","expect":{}},{"entry":"identifier","kind":"accept","input":"IEC FDAM 60038-1","expect":{}},{"entry":"identifier","kind":"accept","input":"IEC DAM 60038-1","expect":{}},{"entry":"identifier","kind":"accept","input":"ISO/IEC PDAM 12207","expect":{}},{"entry":"identifier","kind":"accept","input":"ISO/IEC PDAM 2 10646:2012","expect":{}},{"entry":"identifier","kind":"accept","input":"ISO/IEC FPDAM 9075/1","expect":{}},{"entry":"identifier","kind":"accept","input":"ISO/IEC FDAM 1 14496-12:2004","expect":{}},{"entry":"identifier","kind":"accept","input":"IEC DCOR 60038-1","expect":{}},{"entry":"identifier","kind":"accept","input":"IEC 60038-1/FDAM 1","expect":{}},{"entry":"identifier","kind":"accept","input":"ISO/IEC 19772:2009(en)/DAM1:2019","expect":{}},{"entry":"identifier","kind":"example","input":"ISO/IEC 19772:2009(en)/DAM1:2019","expect":{"publisher":"ISO","languages":"en","supp_type_with_stage":"DAM","supp_number_with_part":"1","date":"2009","supp_date":"2019"}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}},{"entry":"identifier","kind":"example","input":"IEC/FDAM 60038-1","expect":{"publisher":"IEC","legacy_stage":"FDAM","legacy_base_number_with_part":"60038-1"}},{"entry":"identifier","kind":"example","input":"ISO/IEC PDAM 2 10646:2012","expect":{"publisher":"ISO","legacy_stage":"PDAM","legacy_supplement_number":"2","legacy_base_number_with_part":"10646","date":"2012"}},{"entry":"identifier","kind":"example","input":"ISO/IEC FPDAM 9075/1","expect":{"publisher":"ISO","legacy_stage":"FPDAM","legacy_base_number":"9075","legacy_base_part":"1"}},{"entry":"identifier","kind":"example","input":"ISO/IEC FDAM 1 14496-12:2004","expect":{"publisher":"ISO","legacy_stage":"FDAM","legacy_supplement_number":"1","legacy_base_number_with_part":"14496-12","date":"2004"}}],"docs":{"prefix_sole_publisher":"IEC publishers, longest-first: the qualified forms must precede\nthe bare \"IEC\".","legacy_dam_token":"The legacy DAM-family prefix face (the JTC1 ballot spelling): the\nstage token precedes the base designation — \"IEC/FDAM 60038-1\",\n\"ISO/IEC PDAM 12207\", \"ISO/IEC PDAM 2 10646:2012\",\n\"ISO/IEC FPDAM 9075/1\", \"ISO/IEC FDAM 1 14496-12:2004\". A number\nbetween the token and the designation is the SUPPLEMENT number; the\ndesignation is the base's and is kept whole (the owner's 2026-11-12\nruling, reversing #693: unnumbered DAM/PDAM/FDAM/FPDAM means\nAmendment 1, and the old slash-part spelling \"9075/1\" carries the\nbase's part). The date rides with the designation — old notation\nprints the base's year, and the draft supplement carries none of\nits own. Longest tokens first: FPDAM before PDAM, FDAM before DAM.\nThe slash-part alternative precedes the dash-part one: the\nnumber_with_part body also matches a bare \"9075\" (its part terms\nare optional), so a slash-part input must be claimed first or the\n\"/1\" would dangle unclaimed.","supplement_identifier":"The [language] slot between the base designation and the supplement\ntoken: the renderer prints the BASE document's languages right after\nits date (\"ISO/IEC 19772:2009(en)/DAM1:2019\"), and without the slot\nthe canonical face could not re-parse (the input's (E) rides the\nsupplement's third part; the rendered (en) rides the base). The\ncapture lands on the base: the builder's supplement branch rejects\nonly the supp_* keys into the base hash."},"source":"# Port of lib/pubid/iec/parser.rb. Deviations:\n# - joint_identifier (IEC x | ISO y) awaits PG cross-file imports; the\n# ISO joint grammar cannot be inlined at reasonable size. Noted here;\n# slots back into the root ahead of identifier_copublishers.\n# - the IEV → \"IEC 60050\" input shorthand is pre-parse normalization and\n# stays binder-side.\n# - Supplement layers capture into position-scoped names (supp_* on the\n# first supplement, supp2_* on the second): the base's and the\n# supplements' second_parts carry the same shapes, and captures are\n# collected globally by name, so shared names would collapse the\n# supplement's number/date onto the base's.\n\ngrammar PubidIec version \"0.1.0\" edition 2 {\n digit = %x30-39\n upper = %x41-5A\n lower = %x61-7A\n letter = upper / lower\n alnum_char = upper / lower / digit\n word_ext_char = alnum_char / %x5F / %x26 / %x2C\n space = \" \"\n dash = \"-\" / \"‑\" / \"‐\"\n dot = \".\"\n slash = \"/\"\n colon = \":\"\n comma = \",\"\n century = \"19\" / \"20\"\n year_digits = century 2*digit !digit\n month_digits = 2*digit\n day_digits = 2*digit\n digits = 1*digit\n\n ## IEC publishers, longest-first: the qualified forms must precede\n ## the bare \"IEC\".\n # CEI is IEC's French spelling (pubid#488): French-language IEC\n # documents print \"CEI ...\" identifiers; it parses as the IEC publisher.\n prefix_sole_publisher = {\n (\n \"IECQ OD\" / \"IECQ CS\" / \"IEC CAB\" / \"IEC CA\" / \"IECRE\"\n / \"CISPR\" / \"IECEE\" / \"IECEx\" / \"IECQ\" / \"IEC\" / \"ISO\" / \"CEI\"\n ) as publisher\n }\n organization = {\n \"IEC\" / \"ISO\" / \"IEEE\" / \"CIW\" / \"SAE\" / \"CIE\" / \"ASME\" / \"ASTM\"\n / \"OECD\" / \"HL7\" / \"CEI\" / \"UNDP\"\n }\n copublishers_item = slash [space] organization as copublisher\n copublishers = *copublishers_item\n prefix_with_copublishers = prefix_sole_publisher [space] [copublishers]\n\n tc_type = \"JTC\" / \"JPC\" / \"TC\" / \"SC\" / \"PC\"\n sc_body = \"SC\" space digits [*upper]\n technical_group_with_publisher = {\n prefix_sole_publisher [copublishers] space\n (\n (\n \"CISPR\" / (\"CIS\" slash upper)\n / (tc_type space (1*digit) [*upper])\n ) as technical_committee\n [\n (\n (slash [space] (\"SC\" space (1*digit) [*upper]))\n as subcommittee\n )\n ]\n )\n }\n technical_group_bare = {\n (\n (\n \"CISPR\" / (\"CIS\" slash upper)\n / (tc_type space (1*digit) [*upper])\n ) as technical_committee\n [\n (\n (slash [space] (\"SC\" space (1*digit) [*upper]))\n as subcommittee\n )\n ]\n )\n }\n technical_group = technical_group_with_publisher / technical_group_bare\n\n wp_type = ((\"TR\" / \"TS\" / \"SRD\") space) as wp_type\n wp_number = {\n (\n (\n (1*(upper / lower))\n (*(upper / lower / digit))\n [(dash 1*digit)]\n ) as number_with_part\n ) / number_with_part\n }\n working_programme = {\n (\"PWI\" / \"PNW\") as wp_stage\n space [wp_type] wp_number [(space edition)]\n }\n\n working_document = {\n (\n ( \"JTC1-SC\" 1*digit )\n / ( 1*upper slash 1*upper )\n / 1*(upper / lower / digit)\n ) as technical_committee\n slash\n ( 1*(upper / lower / digit) ) as wd_number\n [ ( \"(\" upper as wd_language \")\" ) ]\n [ ( slash (1*upper) as wd_stage ) ]\n }\n\n number = {\n (\n (\"DIR\" *(space 1*upper_digit))\n / \"VIM\"\n / \"SYMBOL\"\n / (1*6digit \"v\" 1*digit *letter [(\"_\" 1*letter)])\n / (2*4upper [(dash 1*digit)] *upper_digit)\n / (1*6digit [*1letter [(\"_\" 1*letter)]])\n )\n }\n upper_digit = upper / digit\n part_and_subpart = {\n (dash / comma) [space]\n 1*word_ext_char\n *((dash / comma) 1*word_ext_char)\n }\n # number and part_and_subpart are inlined fully to raw terms at every\n # capture site: a capture wrapping a bare rule ref expands to a list\n # of element hashes, while the inlined body binds as one scalar\n # string.\n number_with_part = {\n (\n (\n (\"DIR\" *(space 1*(upper / digit)))\n / \"VIM\"\n / \"SYMBOL\"\n / ( 1*6digit \"v\" 1*digit *(upper / lower) [(\"_\" 1*(upper / lower))] )\n / ( 2*4upper [(dash 1*digit)] *(upper / digit) )\n / ( 1*6digit [*1(upper / lower) [(\"_\" 1*(upper / lower))]] )\n )\n [\n (\n (dash / comma) [space]\n 1*((upper / lower / digit) / %x5F / %x26 / %x2C)\n *( (dash / comma) 1*((upper / lower / digit) / %x5F / %x26 / %x2C) )\n )\n ]\n ) as number_with_part\n }\n trf_org_number = (\"CISPR\" space) as trf_org number_with_part\n stage_iteration = dot digit as stage_iteration\n\n undated = \"--\" / \"—\"\n # year_digits is inlined (\"19\" / \"20\" 2*digit !digit) at every capture\n # site for the same expansion reason as number_with_part.\n full_date = {\n (\n (\"19\" / \"20\") 2*digit !digit\n [(dash 2*digit)]\n [(dash 2*digit)]\n ) as date\n }\n date_body = undated as undated_marker / full_date\n date = (colon / dash) date_body\n\n vap_code = \"CSV\" / \"CMV\" / \"RLV\" / \"SER\" / \"EXV\" / \"PAC\" / \"PRV\"\n vap_suffix = {\n space\n (\n ( 1*( ( vap_code ) ( *( dash ( vap_code ) ) ) ) as vap_suffix )\n )\n }\n database_suffix = space \"DB\" as database\n consolidated_supplement = {\n \"+\"\n (\"AMD\" / \"COR\") as supplement_type\n (\n # Refs adjacent to a capture must be parenthesized: a bare ref's\n # named node makes the neighbouring capture drop from the tree.\n ( (1*digit) as supplement_number (colon) ( (\"19\" / \"20\") 2*digit !digit ) as supplement_year )\n / ( (1*digit) as supplement_number )\n )\n }\n consolidated_supplements = 1*consolidated_supplement\n second_part = {\n (trf_org_number / number_with_part)\n [stage_iteration]\n [[space] date]\n [consolidated_supplements]\n [vap_suffix / database_suffix]\n }\n\n edition_str = \"Edition\" / \"Ed.\" / \"ED\" / \"Ed\"\n edition = edition_str [space] (1*digit [(dot 1*digit)]) as edition\n\n # Supplement-side second_part: same shapes as second_part, captured\n # under supp_* names so the supplement's number/date/edition never\n # collapse onto the base's.\n supplement_second_part = {\n (\n trf_org_number\n / (\n (\n (\n (\"DIR\" *(space 1*(upper / digit)))\n / \"VIM\"\n / \"SYMBOL\"\n / ( 1*6digit \"v\" 1*digit *(upper / lower) [(\"_\" 1*(upper / lower))] )\n / ( 2*4upper [(dash 1*digit)] *(upper / digit) )\n / ( 1*6digit [*1(upper / lower) [(\"_\" 1*(upper / lower))]] )\n )\n [\n (\n (dash / comma) [space]\n 1*((upper / lower / digit) / %x5F / %x26 / %x2C)\n *( (dash / comma) 1*((upper / lower / digit) / %x5F / %x26 / %x2C) )\n )\n ]\n ) as supp_number_with_part\n )\n )\n [ dot digit as supp_stage_iteration ]\n [\n [space] (\n (colon / dash) (\n (\n (\"19\" / \"20\") 2*digit !digit\n [(dash 2*digit)]\n [(dash 2*digit)]\n ) as supp_date\n / \"--\" as supp_undated_marker\n / \"—\" as supp_undated_marker\n )\n )\n ]\n [consolidated_supplements]\n [vap_suffix / database_suffix]\n }\n\n supp_edition_str = \"Edition\" / \"Ed.\" / \"ED\" / \"Ed\"\n supp_edition_rule = supp_edition_str [space] (1*digit [(dot 1*digit)]) as supp_edition\n\n # Second-supplement layer (/AMD1:2018/COR1:2019): supp2_* names.\n supp2_type_with_stage = {\n (\n alt from_table \"iec_typed_stages\" column \"abbr\" / \"FRAGC\" / \"FRAG\"\n ) as supp2_type_with_stage\n }\n supplement_second_part2 = {\n (\n trf_org_number\n / (\n (\n (\n (\"DIR\" *(space 1*(upper / digit)))\n / \"VIM\"\n / \"SYMBOL\"\n / ( 1*6digit \"v\" 1*digit *(upper / lower) [(\"_\" 1*(upper / lower))] )\n / ( 2*4upper [(dash 1*digit)] *(upper / digit) )\n / ( 1*6digit [*1(upper / lower) [(\"_\" 1*(upper / lower))]] )\n )\n [\n (\n (dash / comma) [space]\n 1*((upper / lower / digit) / %x5F / %x26 / %x2C)\n *( (dash / comma) 1*((upper / lower / digit) / %x5F / %x26 / %x2C) )\n )\n ]\n ) as supp2_number_with_part\n )\n )\n [ dot digit as supp2_stage_iteration ]\n [\n [space] (\n (colon / dash) (\n (\n (\"19\" / \"20\") 2*digit !digit\n [(dash 2*digit)]\n [(dash 2*digit)]\n ) as supp2_date\n / \"--\" as supp2_undated_marker\n / \"—\" as supp2_undated_marker\n )\n )\n ]\n [consolidated_supplements]\n [vap_suffix / database_suffix]\n }\n\n one_of_efards = %x45 / %x46 / %x41 / %x52 / %x44 / %x53\n lower_char = lower\n # The house-style separator is \"-\" (pubid#491); \",\" stays accepted.\n languages = {\n (\n *( 1*(lower) [(\",\" / \"-\")] / (one_of_efards [slash]) )\n ) as languages\n }\n language = \"(\" languages \")\"\n all_parts = \"(all parts)\" as all_parts\n fragment_notation = {\n slash\n (\"FRAGC\" / \"FRAG\") as fragment_type\n (1*digit) as fragment_number\n }\n third_part_edition = [space] [edition]\n third_part = third_part_edition [language] [fragment_notation] [all_parts]\n supplement_third_part_edition = [space] [supp_edition_rule]\n supplement_third_part = {\n supplement_third_part_edition\n [language]\n [fragment_notation]\n [all_parts]\n }\n supplement_third_part2_edition = {\n [space]\n [ ( supp_edition_str [space] (1*digit [(dot 1*digit)]) as supp2_edition ) ]\n }\n supplement_third_part2 = {\n supplement_third_part2_edition\n [language]\n [fragment_notation]\n [all_parts]\n }\n\n type_with_stage = {\n (\n alt from_table \"iec_typed_stages\" column \"abbr\"\n ) as type_with_stage\n [digit as stage_iteration space]\n }\n supplement_type_with_stage = {\n (\n alt from_table \"iec_typed_stages\" column \"abbr\" / \"FRAGC\" / \"FRAG\"\n ) as supp_type_with_stage\n }\n\n guide_prefix = \"Guide\" / \"GUIDE\"\n identifier_copublishers_no_third = {\n [ ( guide_prefix as type_with_stage_fr space ) ]\n [prefix_with_copublishers]\n [space]\n [slash]\n [type_with_stage]\n [space]\n second_part\n third_part_edition\n }\n identifier_copublishers = identifier_copublishers_no_third third_part\n\n sheet_notation = {\n (slash)\n (1*digit) as sheet_number\n (colon) ( (\"19\" / \"20\") 2*digit !digit ) as sheet_year\n }\n sheet_notation_no_year = slash (1*digit) as sheet_number\n sheet_identifier = {\n identifier_copublishers_no_third\n (sheet_notation / sheet_notation_no_year)\n }\n sheet_supplement_identifier = {\n identifier_copublishers_no_third\n sheet_notation\n slash supplement_type_with_stage\n [space] supplement_second_part\n supplement_third_part\n }\n standalone_supplement = {\n prefix_with_copublishers\n slash supplement_type_with_stage\n space supplement_second_part\n supplement_third_part\n }\n\n ## The legacy DAM-family prefix face (the JTC1 ballot spelling): the\n ## stage token precedes the base designation — \"IEC/FDAM 60038-1\",\n ## \"ISO/IEC PDAM 12207\", \"ISO/IEC PDAM 2 10646:2012\",\n ## \"ISO/IEC FPDAM 9075/1\", \"ISO/IEC FDAM 1 14496-12:2004\". A number\n ## between the token and the designation is the SUPPLEMENT number; the\n ## designation is the base's and is kept whole (the owner's 2026-11-12\n ## ruling, reversing #693: unnumbered DAM/PDAM/FDAM/FPDAM means\n ## Amendment 1, and the old slash-part spelling \"9075/1\" carries the\n ## base's part). The date rides with the designation — old notation\n ## prints the base's year, and the draft supplement carries none of\n ## its own. Longest tokens first: FPDAM before PDAM, FDAM before DAM.\n ## The slash-part alternative precedes the dash-part one: the\n ## number_with_part body also matches a bare \"9075\" (its part terms\n ## are optional), so a slash-part input must be claimed first or the\n ## \"/1\" would dangle unclaimed.\n legacy_dam_token = \"FPDAM\" / \"PDAM\" / \"FDAM\" / \"DAM\"\n # The legacy rule captures a copublisher as its own TOP-LEVEL scalar\n # instead of reusing prefix_with_copublishers: the wasm binder\n # scatters every unresolved array binding (copublishers[],\n # consolidated_supplements[]) over the enclosing node list when the\n # shape carries a bare `copublisher` node with no `copublishers`\n # wrapper (the known phantom-array trap), which the legacy rule's\n # flat shape triggered on every copublished row. A distinct scalar\n # capture binds by name on both engines; the builder attaches it.\n legacy_copublisher_item = slash [space] organization as legacy_copublisher\n legacy_supplement = {\n prefix_sole_publisher\n [space]\n [legacy_copublisher_item]\n [space]\n [slash]\n legacy_dam_token as legacy_stage\n space\n [\n ( 1*digit ) as legacy_supplement_number\n space\n ]\n (\n (\n ( 1*6digit ) as legacy_base_number\n slash\n ( 1*digit ) as legacy_base_part\n )\n / (\n (\n (\"DIR\" *(space 1*(upper / digit)))\n / \"VIM\"\n / \"SYMBOL\"\n / ( 1*6digit \"v\" 1*digit *(upper / lower) [(\"_\" 1*(upper / lower))] )\n / ( 2*4upper [(dash 1*digit)] *(upper / digit) )\n / ( 1*6digit [*1(upper / lower) [(\"_\" 1*(upper / lower))]] )\n )\n [\n (\n (dash / comma) [space]\n 1*((upper / lower / digit) / %x5F / %x26 / %x2C)\n *( (dash / comma) 1*((upper / lower / digit) / %x5F / %x26 / %x2C) )\n )\n ]\n ) as legacy_base_number_with_part\n )\n [\n [space] (\n (colon / dash) (\n (\n (\"19\" / \"20\") 2*digit !digit\n [(dash 2*digit)]\n [(dash 2*digit)]\n ) as date\n / \"--\" as undated_marker\n / \"—\" as undated_marker\n )\n )\n ]\n third_part\n }\n supplement_identifier_no_third = {\n identifier_copublishers_no_third\n [language]\n slash supplement_type_with_stage\n [space] supplement_second_part\n }\n ## The [language] slot between the base designation and the supplement\n ## token: the renderer prints the BASE document's languages right after\n ## its date (\"ISO/IEC 19772:2009(en)/DAM1:2019\"), and without the slot\n ## the canonical face could not re-parse (the input's (E) rides the\n ## supplement's third part; the rendered (en) rides the base). The\n ## capture lands on the base: the builder's supplement branch rejects\n ## only the supp_* keys into the base hash.\n supplement_identifier = supplement_identifier_no_third supplement_third_part\n supplement_supplement_identifier = {\n supplement_identifier_no_third\n slash supp2_type_with_stage\n [space] supplement_second_part2\n supplement_third_part2\n }\n\n identifier = {\n working_programme\n / technical_group\n / working_document\n / legacy_supplement\n / sheet_supplement_identifier\n / sheet_identifier\n / supplement_supplement_identifier\n / standalone_supplement\n / supplement_identifier\n / identifier_copublishers\n }\n\n entry identifier: identifier\n\n bindings identifier {\n publisher -> publisher (string)\n technical_committee -> technical_committee (string)\n subcommittee -> subcommittee (string)\n wd_number -> wd_number (string)\n wd_language -> wd_language (string)\n wd_stage -> wd_stage (string)\n wp_stage -> wp_stage (string)\n wp_type -> wp_type (string)\n number_with_part -> number_with_part (string)\n supp_number_with_part -> supp_number_with_part (string)\n supp2_number_with_part -> supp2_number_with_part (string)\n trf_org -> trf_org (string)\n stage_iteration -> stage_iteration (string)\n supp_stage_iteration -> supp_stage_iteration (string)\n supp2_stage_iteration -> supp2_stage_iteration (string)\n undated_marker -> undated_marker (string)\n supp_undated_marker -> supp_undated_marker (string)\n supp2_undated_marker -> supp2_undated_marker (string)\n date -> date (string)\n supp_date -> supp_date (string)\n supp2_date -> supp2_date (string)\n edition -> edition (string)\n supp_edition -> supp_edition (string)\n supp2_edition -> supp2_edition (string)\n supplement_type -> consolidated_supplements[].supplement_type (string)\n supplement_number -> consolidated_supplements[].supplement_number (string)\n supplement_year -> consolidated_supplements[].supplement_year (string)\n vap_suffix -> vap_suffix (string)\n database -> database (string)\n type_with_stage -> type_with_stage (string)\n legacy_stage -> legacy_stage (string)\n legacy_supplement_number -> legacy_supplement_number (string)\n legacy_base_number_with_part -> legacy_base_number_with_part (string)\n legacy_base_number -> legacy_base_number (string)\n legacy_base_part -> legacy_base_part (string)\n legacy_copublisher -> legacy_copublisher (string)\n supp_type_with_stage -> supp_type_with_stage (string)\n supp2_type_with_stage -> supp2_type_with_stage (string)\n type_with_stage_fr -> type_with_stage_fr (string)\n fragment_type -> fragment_type (string)\n fragment_number -> fragment_number (string)\n sheet_number -> sheet_number (string)\n sheet_year -> sheet_year (string)\n all_parts -> all_parts (string)\n languages -> languages (string)\n copublisher -> copublishers[].copublisher (string)\n }\n\n test {\n accept \"IEC 60050\"\n accept \"IEC 8601-1:2019\"\n accept \"CISPR 16-1-1\"\n accept \"IECQ OD 1234\"\n accept \"IEC/TS 80000-1\"\n accept \"IEC/FDAM 60038-1\"\n accept \"IEC FDAM 60038-1\"\n accept \"IEC DAM 60038-1\"\n accept \"ISO/IEC PDAM 12207\"\n accept \"ISO/IEC PDAM 2 10646:2012\"\n accept \"ISO/IEC FPDAM 9075/1\"\n accept \"ISO/IEC FDAM 1 14496-12:2004\"\n accept \"IEC DCOR 60038-1\"\n accept \"IEC 60038-1/FDAM 1\"\n accept \"ISO/IEC 19772:2009(en)/DAM1:2019\"\n example \"ISO/IEC 19772:2009(en)/DAM1:2019\" { publisher: \"ISO\", languages: \"en\", supp_type_with_stage: \"DAM\", supp_number_with_part: \"1\", date: \"2009\", supp_date: \"2019\" }\n reject \"nonsense\"\n example \"IEC/FDAM 60038-1\" { publisher: \"IEC\", legacy_stage: \"FDAM\", legacy_base_number_with_part: \"60038-1\" }\n example \"ISO/IEC PDAM 2 10646:2012\" { publisher: \"ISO\", legacy_stage: \"PDAM\", legacy_supplement_number: \"2\", legacy_base_number_with_part: \"10646\", date: \"2012\" }\n example \"ISO/IEC FPDAM 9075/1\" { publisher: \"ISO\", legacy_stage: \"FPDAM\", legacy_base_number: \"9075\", legacy_base_part: \"1\" }\n example \"ISO/IEC FDAM 1 14496-12:2004\" { publisher: \"ISO\", legacy_stage: \"FDAM\", legacy_supplement_number: \"1\", legacy_base_number_with_part: \"14496-12\", date: \"2004\" }\n }\n}\n","source_hash":"8e6ce76b205aad9845b4b668da9fd30736f5c3d3e1ebfa74b914606ad8ef9141","unicode_tables":"onigmo (Ruby 3.4.8)","compiler_version":"1.3.126","edition":2,"semantics_hash":"sha256:e89df6ea64c92b6d500ec6c582349ab04da9594c9df91687ca6174e941284f65","checksum":"sha256:15f0f7f62ec6b114e9a2b98de6980b9c54bff6e6816b9be242f31438fc14a356"}
|
|
1
|
+
{"bindings":null,"version":"0.1.0","grammar":"PubidIec","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":156}},{"Str":{"pattern":"PWI"}},{"Str":{"pattern":"PNW"}},{"Alternative":{"atoms":[1,2]}},{"Named":{"name":"wp_stage","atom":3}},{"Entity":{"atom":6}},{"Str":{"pattern":" "}},{"Entity":{"atom":14}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Str":{"pattern":"SRD"}},{"Alternative":{"atoms":[8,9,10]}},{"Entity":{"atom":6}},{"Sequence":{"atoms":[11,12]}},{"Named":{"name":"wp_type","atom":13}},{"Repetition":{"atom":7,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":131}},{"Entity":{"atom":18}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Entity":{"atom":20}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[17,19]}},{"Repetition":{"atom":21,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Alternative":{"atoms":[23,24,25]}},{"Repetition":{"atom":27,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Str":{"pattern":"-"}},{"Str":{"pattern":"‑"}},{"Str":{"pattern":"‐"}},{"Alternative":{"atoms":[30,31,32]}},{"Entity":{"atom":26}},{"Repetition":{"atom":34,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[29,35]}},{"Repetition":{"atom":36,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[22,28,37]}},{"Named":{"name":"number_with_part","atom":38}},{"Entity":{"atom":130}},{"Str":{"pattern":"DIR"}},{"Entity":{"atom":6}},{"Entity":{"atom":18}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[43,44]}},{"Repetition":{"atom":45,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[42,46]}},{"Repetition":{"atom":47,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[41,48]}},{"Str":{"pattern":"VIM"}},{"Str":{"pattern":"SYMBOL"}},{"Entity":{"atom":26}},{"Repetition":{"atom":52,"min":1,"max":6,"tag":"Repetition"}},{"Str":{"pattern":"v"}},{"Entity":{"atom":26}},{"Repetition":{"atom":55,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[57,58]}},{"Repetition":{"atom":59,"min":0,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"_"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[62,63]}},{"Repetition":{"atom":64,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[61,65]}},{"Repetition":{"atom":66,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[53,54,56,60,67]}},{"Entity":{"atom":18}},{"Repetition":{"atom":69,"min":2,"max":4,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":72,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[71,73]}},{"Repetition":{"atom":74,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":18}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[76,77]}},{"Repetition":{"atom":78,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[70,75,79]}},{"Entity":{"atom":26}},{"Repetition":{"atom":81,"min":1,"max":6,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[83,84]}},{"Repetition":{"atom":85,"min":0,"max":1,"tag":"Repetition"}},{"Str":{"pattern":"_"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[88,89]}},{"Repetition":{"atom":90,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[87,91]}},{"Repetition":{"atom":92,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[86,93]}},{"Repetition":{"atom":94,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[82,95]}},{"Alternative":{"atoms":[49,50,51,68,80,96]}},{"Entity":{"atom":33}},{"Entity":{"atom":100}},{"Str":{"pattern":","}},{"Alternative":{"atoms":[98,99]}},{"Entity":{"atom":6}},{"Repetition":{"atom":102,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[104,105,106]}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[&]"}},{"Re":{"pattern":"[,]"}},{"Alternative":{"atoms":[107,108,109,110]}},{"Repetition":{"atom":111,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Entity":{"atom":100}},{"Alternative":{"atoms":[113,114]}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[116,117,118]}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[&]"}},{"Re":{"pattern":"[,]"}},{"Alternative":{"atoms":[119,120,121,122]}},{"Repetition":{"atom":123,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[115,124]}},{"Repetition":{"atom":125,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[101,103,112,126]}},{"Repetition":{"atom":127,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[97,128]}},{"Named":{"name":"number_with_part","atom":129}},{"Alternative":{"atoms":[39,40]}},{"Entity":{"atom":6}},{"Entity":{"atom":153}},{"Entity":{"atom":139}},{"Str":{"pattern":"Edition"}},{"Str":{"pattern":"Ed."}},{"Str":{"pattern":"ED"}},{"Str":{"pattern":"Ed"}},{"Alternative":{"atoms":[135,136,137,138]}},{"Named":{"name":"edition_str","atom":134}},{"Entity":{"atom":6}},{"Repetition":{"atom":141,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":26}},{"Repetition":{"atom":143,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":146}},{"Str":{"pattern":"."}},{"Entity":{"atom":26}},{"Repetition":{"atom":147,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[145,148]}},{"Repetition":{"atom":149,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[144,150]}},{"Named":{"name":"edition","atom":151}},{"Sequence":{"atoms":[140,142,152]}},{"Sequence":{"atoms":[132,133]}},{"Repetition":{"atom":154,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[4,5,15,16,155]}},{"Entity":{"atom":267}},{"Entity":{"atom":235}},{"Entity":{"atom":173}},{"Str":{"pattern":"IECQ OD"}},{"Str":{"pattern":"IECQ CS"}},{"Str":{"pattern":"IEC CAB"}},{"Str":{"pattern":"IEC CA"}},{"Str":{"pattern":"IECRE"}},{"Str":{"pattern":"CISPR"}},{"Str":{"pattern":"IECEE"}},{"Str":{"pattern":"IECEx"}},{"Str":{"pattern":"IECQ"}},{"Str":{"pattern":"IEC"}},{"Str":{"pattern":"ISO"}},{"Str":{"pattern":"CEI"}},{"Alternative":{"atoms":[160,161,162,163,164,165,166,167,168,169,170,171]}},{"Named":{"name":"publisher","atom":172}},{"Entity":{"atom":196}},{"Entity":{"atom":195}},{"Entity":{"atom":177}},{"Str":{"pattern":"/"}},{"Entity":{"atom":6}},{"Repetition":{"atom":178,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":193}},{"Str":{"pattern":"IEC"}},{"Str":{"pattern":"ISO"}},{"Str":{"pattern":"IEEE"}},{"Str":{"pattern":"CIW"}},{"Str":{"pattern":"SAE"}},{"Str":{"pattern":"CIE"}},{"Str":{"pattern":"ASME"}},{"Str":{"pattern":"ASTM"}},{"Str":{"pattern":"OECD"}},{"Str":{"pattern":"HL7"}},{"Str":{"pattern":"CEI"}},{"Str":{"pattern":"UNDP"}},{"Alternative":{"atoms":[181,182,183,184,185,186,187,188,189,190,191,192]}},{"Named":{"name":"copublisher","atom":180}},{"Sequence":{"atoms":[176,179,194]}},{"Repetition":{"atom":175,"min":0,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":174,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Str":{"pattern":"CISPR"}},{"Str":{"pattern":"CIS"}},{"Entity":{"atom":177}},{"Entity":{"atom":18}},{"Sequence":{"atoms":[200,201,202]}},{"Entity":{"atom":210}},{"Str":{"pattern":"JTC"}},{"Str":{"pattern":"JPC"}},{"Str":{"pattern":"TC"}},{"Str":{"pattern":"SC"}},{"Str":{"pattern":"PC"}},{"Alternative":{"atoms":[205,206,207,208,209]}},{"Entity":{"atom":6}},{"Entity":{"atom":26}},{"Repetition":{"atom":212,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Repetition":{"atom":214,"min":0,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":215,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[204,211,213,216]}},{"Alternative":{"atoms":[199,203,217]}},{"Named":{"name":"technical_committee","atom":218}},{"Entity":{"atom":177}},{"Entity":{"atom":6}},{"Repetition":{"atom":221,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"SC"}},{"Entity":{"atom":6}},{"Entity":{"atom":26}},{"Repetition":{"atom":225,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Repetition":{"atom":227,"min":0,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":228,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[223,224,226,229]}},{"Sequence":{"atoms":[220,222,230]}},{"Named":{"name":"subcommittee","atom":231}},{"Repetition":{"atom":232,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[219,233]}},{"Sequence":{"atoms":[159,197,198,234]}},{"Entity":{"atom":266}},{"Str":{"pattern":"CISPR"}},{"Str":{"pattern":"CIS"}},{"Entity":{"atom":177}},{"Entity":{"atom":18}},{"Sequence":{"atoms":[238,239,240]}},{"Entity":{"atom":210}},{"Entity":{"atom":6}},{"Entity":{"atom":26}},{"Repetition":{"atom":244,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Repetition":{"atom":246,"min":0,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":247,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[242,243,245,248]}},{"Alternative":{"atoms":[237,241,249]}},{"Named":{"name":"technical_committee","atom":250}},{"Entity":{"atom":177}},{"Entity":{"atom":6}},{"Repetition":{"atom":253,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"SC"}},{"Entity":{"atom":6}},{"Entity":{"atom":26}},{"Repetition":{"atom":257,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Repetition":{"atom":259,"min":0,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":260,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[255,256,258,261]}},{"Sequence":{"atoms":[252,254,262]}},{"Named":{"name":"subcommittee","atom":263}},{"Repetition":{"atom":264,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[251,265]}},{"Alternative":{"atoms":[158,236]}},{"Entity":{"atom":305}},{"Str":{"pattern":"JTC1-SC"}},{"Entity":{"atom":26}},{"Repetition":{"atom":270,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[269,271]}},{"Entity":{"atom":18}},{"Repetition":{"atom":273,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":177}},{"Entity":{"atom":18}},{"Repetition":{"atom":276,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[274,275,277]}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[279,280,281]}},{"Repetition":{"atom":282,"min":1,"max":null,"tag":"Repetition"}},{"Alternative":{"atoms":[272,278,283]}},{"Named":{"name":"technical_committee","atom":284}},{"Entity":{"atom":177}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[287,288,289]}},{"Repetition":{"atom":290,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"wd_number","atom":291}},{"Str":{"pattern":"("}},{"Entity":{"atom":18}},{"Named":{"name":"wd_language","atom":294}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[293,295,296]}},{"Repetition":{"atom":297,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":177}},{"Entity":{"atom":18}},{"Repetition":{"atom":300,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"wd_stage","atom":301}},{"Sequence":{"atoms":[299,302]}},{"Repetition":{"atom":303,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[285,286,292,298,304]}},{"Entity":{"atom":524}},{"Entity":{"atom":173}},{"Entity":{"atom":6}},{"Repetition":{"atom":308,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":316}},{"Entity":{"atom":177}},{"Entity":{"atom":6}},{"Repetition":{"atom":312,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":193}},{"Named":{"name":"legacy_copublisher","atom":314}},{"Sequence":{"atoms":[311,313,315]}},{"Repetition":{"atom":310,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Repetition":{"atom":318,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":177}},{"Repetition":{"atom":320,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":327}},{"Str":{"pattern":"FPDAM"}},{"Str":{"pattern":"PDAM"}},{"Str":{"pattern":"FDAM"}},{"Str":{"pattern":"DAM"}},{"Alternative":{"atoms":[323,324,325,326]}},{"Named":{"name":"legacy_stage","atom":322}},{"Entity":{"atom":6}},{"Entity":{"atom":26}},{"Repetition":{"atom":330,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"legacy_supplement_number","atom":331}},{"Entity":{"atom":6}},{"Sequence":{"atoms":[332,333]}},{"Repetition":{"atom":334,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":26}},{"Repetition":{"atom":336,"min":1,"max":6,"tag":"Repetition"}},{"Named":{"name":"legacy_base_number","atom":337}},{"Entity":{"atom":177}},{"Entity":{"atom":26}},{"Repetition":{"atom":340,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"legacy_base_part","atom":341}},{"Sequence":{"atoms":[338,339,342]}},{"Str":{"pattern":"DIR"}},{"Entity":{"atom":6}},{"Entity":{"atom":18}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[346,347]}},{"Repetition":{"atom":348,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[345,349]}},{"Repetition":{"atom":350,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[344,351]}},{"Str":{"pattern":"VIM"}},{"Str":{"pattern":"SYMBOL"}},{"Entity":{"atom":26}},{"Repetition":{"atom":355,"min":1,"max":6,"tag":"Repetition"}},{"Str":{"pattern":"v"}},{"Entity":{"atom":26}},{"Repetition":{"atom":358,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[360,361]}},{"Repetition":{"atom":362,"min":0,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"_"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[365,366]}},{"Repetition":{"atom":367,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[364,368]}},{"Repetition":{"atom":369,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[356,357,359,363,370]}},{"Entity":{"atom":18}},{"Repetition":{"atom":372,"min":2,"max":4,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":375,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[374,376]}},{"Repetition":{"atom":377,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":18}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[379,380]}},{"Repetition":{"atom":381,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[373,378,382]}},{"Entity":{"atom":26}},{"Repetition":{"atom":384,"min":1,"max":6,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[386,387]}},{"Repetition":{"atom":388,"min":0,"max":1,"tag":"Repetition"}},{"Str":{"pattern":"_"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[391,392]}},{"Repetition":{"atom":393,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[390,394]}},{"Repetition":{"atom":395,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[389,396]}},{"Repetition":{"atom":397,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[385,398]}},{"Alternative":{"atoms":[352,353,354,371,383,399]}},{"Entity":{"atom":33}},{"Entity":{"atom":100}},{"Alternative":{"atoms":[401,402]}},{"Entity":{"atom":6}},{"Repetition":{"atom":404,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[406,407,408]}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[&]"}},{"Re":{"pattern":"[,]"}},{"Alternative":{"atoms":[409,410,411,412]}},{"Repetition":{"atom":413,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Entity":{"atom":100}},{"Alternative":{"atoms":[415,416]}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[418,419,420]}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[&]"}},{"Re":{"pattern":"[,]"}},{"Alternative":{"atoms":[421,422,423,424]}},{"Repetition":{"atom":425,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[417,426]}},{"Repetition":{"atom":427,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[403,405,414,428]}},{"Repetition":{"atom":429,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[400,430]}},{"Named":{"name":"legacy_base_number_with_part","atom":431}},{"Alternative":{"atoms":[343,432]}},{"Entity":{"atom":146}},{"Entity":{"atom":26}},{"Repetition":{"atom":435,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"stage_iteration","atom":436}},{"Sequence":{"atoms":[434,437]}},{"Repetition":{"atom":438,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Repetition":{"atom":440,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":443}},{"Str":{"pattern":":"}},{"Named":{"name":"colon","atom":442}},{"Entity":{"atom":33}},{"Alternative":{"atoms":[444,445]}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[447,448]}},{"Entity":{"atom":26}},{"Repetition":{"atom":450,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":26}},{"Lookahead":{"atom":452,"positive":false}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":455,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[454,456]}},{"Repetition":{"atom":457,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":460,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[459,461]}},{"Repetition":{"atom":462,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[449,451,453,458,463]}},{"Named":{"name":"date","atom":464}},{"Str":{"pattern":"--"}},{"Named":{"name":"undated_marker","atom":466}},{"Str":{"pattern":"—"}},{"Named":{"name":"undated_marker","atom":468}},{"Alternative":{"atoms":[465,467,469]}},{"Sequence":{"atoms":[446,470]}},{"Sequence":{"atoms":[441,471]}},{"Repetition":{"atom":472,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":523}},{"Entity":{"atom":480}},{"Entity":{"atom":6}},{"Repetition":{"atom":476,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":153}},{"Repetition":{"atom":478,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[477,479]}},{"Entity":{"atom":506}},{"Str":{"pattern":"("}},{"Entity":{"atom":504}},{"Entity":{"atom":20}},{"Repetition":{"atom":484,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":","}},{"Str":{"pattern":"-"}},{"Alternative":{"atoms":[486,487]}},{"Repetition":{"atom":488,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[485,489]}},{"Entity":{"atom":498}},{"Re":{"pattern":"[E]"}},{"Re":{"pattern":"[F]"}},{"Re":{"pattern":"[A]"}},{"Re":{"pattern":"[R]"}},{"Re":{"pattern":"[D]"}},{"Re":{"pattern":"[S]"}},{"Alternative":{"atoms":[492,493,494,495,496,497]}},{"Entity":{"atom":177}},{"Repetition":{"atom":499,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[491,500]}},{"Alternative":{"atoms":[490,501]}},{"Repetition":{"atom":502,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"languages","atom":503}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[482,483,505]}},{"Repetition":{"atom":481,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":517}},{"Entity":{"atom":177}},{"Str":{"pattern":"FRAGC"}},{"Str":{"pattern":"FRAG"}},{"Alternative":{"atoms":[510,511]}},{"Named":{"name":"fragment_type","atom":512}},{"Entity":{"atom":26}},{"Repetition":{"atom":514,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"fragment_number","atom":515}},{"Sequence":{"atoms":[509,513,516]}},{"Repetition":{"atom":508,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":521}},{"Str":{"pattern":"(all parts)"}},{"Named":{"name":"all_parts","atom":520}},{"Repetition":{"atom":519,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[475,507,518,522]}},{"Sequence":{"atoms":[307,309,317,319,321,328,329,335,433,439,473,474]}},{"Entity":{"atom":1134}},{"Entity":{"atom":803}},{"Entity":{"atom":530}},{"Str":{"pattern":"Guide"}},{"Str":{"pattern":"GUIDE"}},{"Alternative":{"atoms":[528,529]}},{"Named":{"name":"type_with_stage_fr","atom":527}},{"Entity":{"atom":6}},{"Sequence":{"atoms":[531,532]}},{"Repetition":{"atom":533,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":541}},{"Entity":{"atom":173}},{"Entity":{"atom":6}},{"Repetition":{"atom":537,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":196}},{"Repetition":{"atom":539,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[536,538,540]}},{"Repetition":{"atom":535,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Repetition":{"atom":543,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":177}},{"Repetition":{"atom":545,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":688}},{"Str":{"pattern":"Technology Report"}},{"Str":{"pattern":"Trend Report"}},{"Str":{"pattern":"White Paper"}},{"Str":{"pattern":"ANW Guide"}},{"Str":{"pattern":"PRF Guide"}},{"Str":{"pattern":"PWI Guide"}},{"Str":{"pattern":"ANW Frag"}},{"Str":{"pattern":"CD Guide"}},{"Str":{"pattern":"NP Guide"}},{"Str":{"pattern":"PRF Frag"}},{"Str":{"pattern":"PWI Frag"}},{"Str":{"pattern":"WD Guide"}},{"Str":{"pattern":"ANW Amd"}},{"Str":{"pattern":"ANW Cor"}},{"Str":{"pattern":"ANW ISH"}},{"Str":{"pattern":"ANW PAS"}},{"Str":{"pattern":"FDGuide"}},{"Str":{"pattern":"NP Frag"}},{"Str":{"pattern":"PRF Amd"}},{"Str":{"pattern":"PRF Cor"}},{"Str":{"pattern":"PWI Amd"}},{"Str":{"pattern":"PWI Cor"}},{"Str":{"pattern":"PWI ISH"}},{"Str":{"pattern":"PWI PAS"}},{"Str":{"pattern":"WD Frag"}},{"Str":{"pattern":"ANW TR"}},{"Str":{"pattern":"ANW TS"}},{"Str":{"pattern":"CDFRAG"}},{"Str":{"pattern":"DELPUB"}},{"Str":{"pattern":"DGuide"}},{"Str":{"pattern":"FDFRAG"}},{"Str":{"pattern":"NP Amd"}},{"Str":{"pattern":"NP Cor"}},{"Str":{"pattern":"NP ISH"}},{"Str":{"pattern":"NP PAS"}},{"Str":{"pattern":"PWI TR"}},{"Str":{"pattern":"PWI TS"}},{"Str":{"pattern":"WD Amd"}},{"Str":{"pattern":"WD ISH"}},{"Str":{"pattern":"WD PAS"}},{"Str":{"pattern":"CD TR"}},{"Str":{"pattern":"CD TS"}},{"Str":{"pattern":"CDCOR"}},{"Str":{"pattern":"CDCor"}},{"Str":{"pattern":"CDISH"}},{"Str":{"pattern":"CDPAS"}},{"Str":{"pattern":"CFDIS"}},{"Str":{"pattern":"DFRAG"}},{"Str":{"pattern":"FDCOR"}},{"Str":{"pattern":"FPDAM"}},{"Str":{"pattern":"GUIDE"}},{"Str":{"pattern":"Guide"}},{"Str":{"pattern":"NADIS"}},{"Str":{"pattern":"NFDIS"}},{"Str":{"pattern":"NP TR"}},{"Str":{"pattern":"NP TS"}},{"Str":{"pattern":"RDISH"}},{"Str":{"pattern":"RFDIS"}},{"Str":{"pattern":"WD TR"}},{"Str":{"pattern":"WD TS"}},{"Str":{"pattern":"WDCor"}},{"Str":{"pattern":"A2CD"}},{"Str":{"pattern":"A3CD"}},{"Str":{"pattern":"A4CD"}},{"Str":{"pattern":"A5CD"}},{"Str":{"pattern":"A6CD"}},{"Str":{"pattern":"A7CD"}},{"Str":{"pattern":"A8CD"}},{"Str":{"pattern":"A9CD"}},{"Str":{"pattern":"ACDV"}},{"Str":{"pattern":"ADTR"}},{"Str":{"pattern":"ADTS"}},{"Str":{"pattern":"APUB"}},{"Str":{"pattern":"AWIN"}},{"Str":{"pattern":"BPUB"}},{"Str":{"pattern":"CCDV"}},{"Str":{"pattern":"CDAM"}},{"Str":{"pattern":"CDTR"}},{"Str":{"pattern":"CDTS"}},{"Str":{"pattern":"CDVM"}},{"Str":{"pattern":"DCOR"}},{"Str":{"pattern":"DISH"}},{"Str":{"pattern":"DPAS"}},{"Str":{"pattern":"DTRM"}},{"Str":{"pattern":"DTSM"}},{"Str":{"pattern":"FDAM"}},{"Str":{"pattern":"FDIS"}},{"Str":{"pattern":"FRAG"}},{"Str":{"pattern":"NCDV"}},{"Str":{"pattern":"NDTR"}},{"Str":{"pattern":"NDTS"}},{"Str":{"pattern":"NWIP"}},{"Str":{"pattern":"PDAM"}},{"Str":{"pattern":"PPUB"}},{"Str":{"pattern":"WPUB"}},{"Str":{"pattern":"2CD"}},{"Str":{"pattern":"3CD"}},{"Str":{"pattern":"4CD"}},{"Str":{"pattern":"5CD"}},{"Str":{"pattern":"6CD"}},{"Str":{"pattern":"7CD"}},{"Str":{"pattern":"8CD"}},{"Str":{"pattern":"9CD"}},{"Str":{"pattern":"ACD"}},{"Str":{"pattern":"AMD"}},{"Str":{"pattern":"AMW"}},{"Str":{"pattern":"ANW"}},{"Str":{"pattern":"Amd"}},{"Str":{"pattern":"BWG"}},{"Str":{"pattern":"CAN"}},{"Str":{"pattern":"CDM"}},{"Str":{"pattern":"CDV"}},{"Str":{"pattern":"COR"}},{"Str":{"pattern":"Cor"}},{"Str":{"pattern":"DAM"}},{"Str":{"pattern":"DTR"}},{"Str":{"pattern":"DTS"}},{"Str":{"pattern":"ISH"}},{"Str":{"pattern":"PAS"}},{"Str":{"pattern":"PNW"}},{"Str":{"pattern":"PRF"}},{"Str":{"pattern":"PWI"}},{"Str":{"pattern":"SRD"}},{"Str":{"pattern":"TRF"}},{"Str":{"pattern":"CA"}},{"Str":{"pattern":"CD"}},{"Str":{"pattern":"CS"}},{"Str":{"pattern":"NP"}},{"Str":{"pattern":"OD"}},{"Str":{"pattern":"RR"}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Str":{"pattern":"WD"}},{"Alternative":{"atoms":[548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680]}},{"Named":{"name":"type_with_stage","atom":681}},{"Entity":{"atom":26}},{"Named":{"name":"stage_iteration","atom":683}},{"Entity":{"atom":6}},{"Sequence":{"atoms":[684,685]}},{"Repetition":{"atom":686,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[682,687]}},{"Repetition":{"atom":547,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Repetition":{"atom":690,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":801}},{"Entity":{"atom":699}},{"Str":{"pattern":"CISPR"}},{"Entity":{"atom":6}},{"Sequence":{"atoms":[694,695]}},{"Named":{"name":"trf_org","atom":696}},{"Entity":{"atom":130}},{"Sequence":{"atoms":[697,698]}},{"Entity":{"atom":130}},{"Alternative":{"atoms":[693,700]}},{"Entity":{"atom":707}},{"Entity":{"atom":146}},{"Entity":{"atom":26}},{"Repetition":{"atom":704,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"stage_iteration","atom":705}},{"Sequence":{"atoms":[703,706]}},{"Repetition":{"atom":702,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Repetition":{"atom":709,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":743}},{"Entity":{"atom":443}},{"Named":{"name":"colon","atom":712}},{"Entity":{"atom":33}},{"Alternative":{"atoms":[713,714]}},{"Entity":{"atom":742}},{"Entity":{"atom":720}},{"Str":{"pattern":"--"}},{"Str":{"pattern":"—"}},{"Alternative":{"atoms":[718,719]}},{"Named":{"name":"undated_marker","atom":717}},{"Entity":{"atom":741}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[723,724]}},{"Entity":{"atom":26}},{"Repetition":{"atom":726,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":26}},{"Lookahead":{"atom":728,"positive":false}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":731,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[730,732]}},{"Repetition":{"atom":733,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":736,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[735,737]}},{"Repetition":{"atom":738,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[725,727,729,734,739]}},{"Named":{"name":"date","atom":740}},{"Alternative":{"atoms":[721,722]}},{"Sequence":{"atoms":[715,716]}},{"Sequence":{"atoms":[710,711]}},{"Repetition":{"atom":744,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":773}},{"Entity":{"atom":772}},{"Str":{"pattern":"+"}},{"Str":{"pattern":"AMD"}},{"Str":{"pattern":"COR"}},{"Alternative":{"atoms":[749,750]}},{"Named":{"name":"supplement_type","atom":751}},{"Entity":{"atom":26}},{"Repetition":{"atom":753,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"supplement_number","atom":754}},{"Entity":{"atom":443}},{"Named":{"name":"colon","atom":756}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[758,759]}},{"Entity":{"atom":26}},{"Repetition":{"atom":761,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":26}},{"Lookahead":{"atom":763,"positive":false}},{"Sequence":{"atoms":[760,762,764]}},{"Named":{"name":"supplement_year","atom":765}},{"Sequence":{"atoms":[755,757,766]}},{"Entity":{"atom":26}},{"Repetition":{"atom":768,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"supplement_number","atom":769}},{"Alternative":{"atoms":[767,770]}},{"Sequence":{"atoms":[748,752,771]}},{"Repetition":{"atom":747,"min":1,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":746,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":793}},{"Entity":{"atom":6}},{"Entity":{"atom":785}},{"Str":{"pattern":"CSV"}},{"Str":{"pattern":"CMV"}},{"Str":{"pattern":"RLV"}},{"Str":{"pattern":"SER"}},{"Str":{"pattern":"EXV"}},{"Str":{"pattern":"PAC"}},{"Str":{"pattern":"PRV"}},{"Alternative":{"atoms":[778,779,780,781,782,783,784]}},{"Entity":{"atom":33}},{"Entity":{"atom":785}},{"Sequence":{"atoms":[786,787]}},{"Repetition":{"atom":788,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[777,789]}},{"Repetition":{"atom":790,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"vap_suffix","atom":791}},{"Sequence":{"atoms":[776,792]}},{"Entity":{"atom":798}},{"Entity":{"atom":6}},{"Str":{"pattern":"DB"}},{"Named":{"name":"database","atom":796}},{"Sequence":{"atoms":[795,797]}},{"Alternative":{"atoms":[775,794]}},{"Repetition":{"atom":799,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[701,708,745,774,800]}},{"Entity":{"atom":480}},{"Sequence":{"atoms":[534,542,544,546,689,691,692,802]}},{"Entity":{"atom":820}},{"Entity":{"atom":177}},{"Entity":{"atom":26}},{"Repetition":{"atom":806,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"sheet_number","atom":807}},{"Entity":{"atom":443}},{"Named":{"name":"colon","atom":809}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[811,812]}},{"Entity":{"atom":26}},{"Repetition":{"atom":814,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":26}},{"Lookahead":{"atom":816,"positive":false}},{"Sequence":{"atoms":[813,815,817]}},{"Named":{"name":"sheet_year","atom":818}},{"Sequence":{"atoms":[805,808,810,819]}},{"Entity":{"atom":177}},{"Entity":{"atom":960}},{"Str":{"pattern":"Technology Report"}},{"Str":{"pattern":"Trend Report"}},{"Str":{"pattern":"White Paper"}},{"Str":{"pattern":"ANW Guide"}},{"Str":{"pattern":"PRF Guide"}},{"Str":{"pattern":"PWI Guide"}},{"Str":{"pattern":"ANW Frag"}},{"Str":{"pattern":"CD Guide"}},{"Str":{"pattern":"NP Guide"}},{"Str":{"pattern":"PRF Frag"}},{"Str":{"pattern":"PWI Frag"}},{"Str":{"pattern":"WD Guide"}},{"Str":{"pattern":"ANW Amd"}},{"Str":{"pattern":"ANW Cor"}},{"Str":{"pattern":"ANW ISH"}},{"Str":{"pattern":"ANW PAS"}},{"Str":{"pattern":"FDGuide"}},{"Str":{"pattern":"NP Frag"}},{"Str":{"pattern":"PRF Amd"}},{"Str":{"pattern":"PRF Cor"}},{"Str":{"pattern":"PWI Amd"}},{"Str":{"pattern":"PWI Cor"}},{"Str":{"pattern":"PWI ISH"}},{"Str":{"pattern":"PWI PAS"}},{"Str":{"pattern":"WD Frag"}},{"Str":{"pattern":"ANW TR"}},{"Str":{"pattern":"ANW TS"}},{"Str":{"pattern":"CDFRAG"}},{"Str":{"pattern":"DELPUB"}},{"Str":{"pattern":"DGuide"}},{"Str":{"pattern":"FDFRAG"}},{"Str":{"pattern":"NP Amd"}},{"Str":{"pattern":"NP Cor"}},{"Str":{"pattern":"NP ISH"}},{"Str":{"pattern":"NP PAS"}},{"Str":{"pattern":"PWI TR"}},{"Str":{"pattern":"PWI TS"}},{"Str":{"pattern":"WD Amd"}},{"Str":{"pattern":"WD ISH"}},{"Str":{"pattern":"WD PAS"}},{"Str":{"pattern":"CD TR"}},{"Str":{"pattern":"CD TS"}},{"Str":{"pattern":"CDCOR"}},{"Str":{"pattern":"CDCor"}},{"Str":{"pattern":"CDISH"}},{"Str":{"pattern":"CDPAS"}},{"Str":{"pattern":"CFDIS"}},{"Str":{"pattern":"DFRAG"}},{"Str":{"pattern":"FDCOR"}},{"Str":{"pattern":"FPDAM"}},{"Str":{"pattern":"GUIDE"}},{"Str":{"pattern":"Guide"}},{"Str":{"pattern":"NADIS"}},{"Str":{"pattern":"NFDIS"}},{"Str":{"pattern":"NP TR"}},{"Str":{"pattern":"NP TS"}},{"Str":{"pattern":"RDISH"}},{"Str":{"pattern":"RFDIS"}},{"Str":{"pattern":"WD TR"}},{"Str":{"pattern":"WD TS"}},{"Str":{"pattern":"WDCor"}},{"Str":{"pattern":"A2CD"}},{"Str":{"pattern":"A3CD"}},{"Str":{"pattern":"A4CD"}},{"Str":{"pattern":"A5CD"}},{"Str":{"pattern":"A6CD"}},{"Str":{"pattern":"A7CD"}},{"Str":{"pattern":"A8CD"}},{"Str":{"pattern":"A9CD"}},{"Str":{"pattern":"ACDV"}},{"Str":{"pattern":"ADTR"}},{"Str":{"pattern":"ADTS"}},{"Str":{"pattern":"APUB"}},{"Str":{"pattern":"AWIN"}},{"Str":{"pattern":"BPUB"}},{"Str":{"pattern":"CCDV"}},{"Str":{"pattern":"CDAM"}},{"Str":{"pattern":"CDTR"}},{"Str":{"pattern":"CDTS"}},{"Str":{"pattern":"CDVM"}},{"Str":{"pattern":"DCOR"}},{"Str":{"pattern":"DISH"}},{"Str":{"pattern":"DPAS"}},{"Str":{"pattern":"DTRM"}},{"Str":{"pattern":"DTSM"}},{"Str":{"pattern":"FDAM"}},{"Str":{"pattern":"FDIS"}},{"Str":{"pattern":"FRAG"}},{"Str":{"pattern":"NCDV"}},{"Str":{"pattern":"NDTR"}},{"Str":{"pattern":"NDTS"}},{"Str":{"pattern":"NWIP"}},{"Str":{"pattern":"PDAM"}},{"Str":{"pattern":"PPUB"}},{"Str":{"pattern":"WPUB"}},{"Str":{"pattern":"2CD"}},{"Str":{"pattern":"3CD"}},{"Str":{"pattern":"4CD"}},{"Str":{"pattern":"5CD"}},{"Str":{"pattern":"6CD"}},{"Str":{"pattern":"7CD"}},{"Str":{"pattern":"8CD"}},{"Str":{"pattern":"9CD"}},{"Str":{"pattern":"ACD"}},{"Str":{"pattern":"AMD"}},{"Str":{"pattern":"AMW"}},{"Str":{"pattern":"ANW"}},{"Str":{"pattern":"Amd"}},{"Str":{"pattern":"BWG"}},{"Str":{"pattern":"CAN"}},{"Str":{"pattern":"CDM"}},{"Str":{"pattern":"CDV"}},{"Str":{"pattern":"COR"}},{"Str":{"pattern":"Cor"}},{"Str":{"pattern":"DAM"}},{"Str":{"pattern":"DTR"}},{"Str":{"pattern":"DTS"}},{"Str":{"pattern":"ISH"}},{"Str":{"pattern":"PAS"}},{"Str":{"pattern":"PNW"}},{"Str":{"pattern":"PRF"}},{"Str":{"pattern":"PWI"}},{"Str":{"pattern":"SRD"}},{"Str":{"pattern":"TRF"}},{"Str":{"pattern":"CA"}},{"Str":{"pattern":"CD"}},{"Str":{"pattern":"CS"}},{"Str":{"pattern":"NP"}},{"Str":{"pattern":"OD"}},{"Str":{"pattern":"RR"}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Str":{"pattern":"WD"}},{"Alternative":{"atoms":[823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955]}},{"Str":{"pattern":"FRAGC"}},{"Str":{"pattern":"FRAG"}},{"Alternative":{"atoms":[956,957,958]}},{"Named":{"name":"supp_type_with_stage","atom":959}},{"Entity":{"atom":6}},{"Repetition":{"atom":961,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":1100}},{"Entity":{"atom":699}},{"Str":{"pattern":"DIR"}},{"Entity":{"atom":6}},{"Entity":{"atom":18}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[967,968]}},{"Repetition":{"atom":969,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[966,970]}},{"Repetition":{"atom":971,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[965,972]}},{"Str":{"pattern":"VIM"}},{"Str":{"pattern":"SYMBOL"}},{"Entity":{"atom":26}},{"Repetition":{"atom":976,"min":1,"max":6,"tag":"Repetition"}},{"Str":{"pattern":"v"}},{"Entity":{"atom":26}},{"Repetition":{"atom":979,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[981,982]}},{"Repetition":{"atom":983,"min":0,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"_"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[986,987]}},{"Repetition":{"atom":988,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[985,989]}},{"Repetition":{"atom":990,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[977,978,980,984,991]}},{"Entity":{"atom":18}},{"Repetition":{"atom":993,"min":2,"max":4,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":996,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[995,997]}},{"Repetition":{"atom":998,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":18}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[1000,1001]}},{"Repetition":{"atom":1002,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[994,999,1003]}},{"Entity":{"atom":26}},{"Repetition":{"atom":1005,"min":1,"max":6,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[1007,1008]}},{"Repetition":{"atom":1009,"min":0,"max":1,"tag":"Repetition"}},{"Str":{"pattern":"_"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[1012,1013]}},{"Repetition":{"atom":1014,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1011,1015]}},{"Repetition":{"atom":1016,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1010,1017]}},{"Repetition":{"atom":1018,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1006,1019]}},{"Alternative":{"atoms":[973,974,975,992,1004,1020]}},{"Entity":{"atom":33}},{"Entity":{"atom":100}},{"Alternative":{"atoms":[1022,1023]}},{"Entity":{"atom":6}},{"Repetition":{"atom":1025,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[1027,1028,1029]}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[&]"}},{"Re":{"pattern":"[,]"}},{"Alternative":{"atoms":[1030,1031,1032,1033]}},{"Repetition":{"atom":1034,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Entity":{"atom":100}},{"Alternative":{"atoms":[1036,1037]}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[1039,1040,1041]}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[&]"}},{"Re":{"pattern":"[,]"}},{"Alternative":{"atoms":[1042,1043,1044,1045]}},{"Repetition":{"atom":1046,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1038,1047]}},{"Repetition":{"atom":1048,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1024,1026,1035,1049]}},{"Repetition":{"atom":1050,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1021,1051]}},{"Named":{"name":"supp_number_with_part","atom":1052}},{"Alternative":{"atoms":[964,1053]}},{"Entity":{"atom":146}},{"Entity":{"atom":26}},{"Repetition":{"atom":1056,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"supp_stage_iteration","atom":1057}},{"Sequence":{"atoms":[1055,1058]}},{"Repetition":{"atom":1059,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Repetition":{"atom":1061,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":443}},{"Named":{"name":"colon","atom":1063}},{"Entity":{"atom":33}},{"Alternative":{"atoms":[1064,1065]}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[1067,1068]}},{"Entity":{"atom":26}},{"Repetition":{"atom":1070,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":26}},{"Lookahead":{"atom":1072,"positive":false}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":1075,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1074,1076]}},{"Repetition":{"atom":1077,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":1080,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1079,1081]}},{"Repetition":{"atom":1082,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1069,1071,1073,1078,1083]}},{"Named":{"name":"supp_date","atom":1084}},{"Str":{"pattern":"--"}},{"Named":{"name":"supp_undated_marker","atom":1086}},{"Str":{"pattern":"—"}},{"Named":{"name":"supp_undated_marker","atom":1088}},{"Alternative":{"atoms":[1085,1087,1089]}},{"Sequence":{"atoms":[1066,1090]}},{"Sequence":{"atoms":[1062,1091]}},{"Repetition":{"atom":1092,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":773}},{"Repetition":{"atom":1094,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":793}},{"Entity":{"atom":798}},{"Alternative":{"atoms":[1096,1097]}},{"Repetition":{"atom":1098,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1054,1060,1093,1095,1099]}},{"Entity":{"atom":1133}},{"Entity":{"atom":1126}},{"Entity":{"atom":6}},{"Repetition":{"atom":1103,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":1124}},{"Entity":{"atom":1111}},{"Str":{"pattern":"Edition"}},{"Str":{"pattern":"Ed."}},{"Str":{"pattern":"ED"}},{"Str":{"pattern":"Ed"}},{"Alternative":{"atoms":[1107,1108,1109,1110]}},{"Named":{"name":"supp_edition_str","atom":1106}},{"Entity":{"atom":6}},{"Repetition":{"atom":1113,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":26}},{"Repetition":{"atom":1115,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":146}},{"Entity":{"atom":26}},{"Repetition":{"atom":1118,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1117,1119]}},{"Repetition":{"atom":1120,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1116,1121]}},{"Named":{"name":"supp_edition","atom":1122}},{"Sequence":{"atoms":[1112,1114,1123]}},{"Repetition":{"atom":1105,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1104,1125]}},{"Entity":{"atom":506}},{"Repetition":{"atom":1127,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":517}},{"Repetition":{"atom":1129,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":521}},{"Repetition":{"atom":1131,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1102,1128,1130,1132]}},{"Sequence":{"atoms":[526,804,821,822,962,963,1101]}},{"Entity":{"atom":1145}},{"Entity":{"atom":803}},{"Entity":{"atom":820}},{"Entity":{"atom":1143}},{"Entity":{"atom":177}},{"Entity":{"atom":26}},{"Repetition":{"atom":1140,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"sheet_number","atom":1141}},{"Sequence":{"atoms":[1139,1142]}},{"Alternative":{"atoms":[1137,1138]}},{"Sequence":{"atoms":[1136,1144]}},{"Entity":{"atom":1464}},{"Entity":{"atom":1156}},{"Entity":{"atom":803}},{"Entity":{"atom":506}},{"Repetition":{"atom":1149,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":177}},{"Entity":{"atom":960}},{"Entity":{"atom":6}},{"Repetition":{"atom":1153,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":1100}},{"Sequence":{"atoms":[1148,1150,1151,1152,1154,1155]}},{"Entity":{"atom":177}},{"Entity":{"atom":1296}},{"Str":{"pattern":"Technology Report"}},{"Str":{"pattern":"Trend Report"}},{"Str":{"pattern":"White Paper"}},{"Str":{"pattern":"ANW Guide"}},{"Str":{"pattern":"PRF Guide"}},{"Str":{"pattern":"PWI Guide"}},{"Str":{"pattern":"ANW Frag"}},{"Str":{"pattern":"CD Guide"}},{"Str":{"pattern":"NP Guide"}},{"Str":{"pattern":"PRF Frag"}},{"Str":{"pattern":"PWI Frag"}},{"Str":{"pattern":"WD Guide"}},{"Str":{"pattern":"ANW Amd"}},{"Str":{"pattern":"ANW Cor"}},{"Str":{"pattern":"ANW ISH"}},{"Str":{"pattern":"ANW PAS"}},{"Str":{"pattern":"FDGuide"}},{"Str":{"pattern":"NP Frag"}},{"Str":{"pattern":"PRF Amd"}},{"Str":{"pattern":"PRF Cor"}},{"Str":{"pattern":"PWI Amd"}},{"Str":{"pattern":"PWI Cor"}},{"Str":{"pattern":"PWI ISH"}},{"Str":{"pattern":"PWI PAS"}},{"Str":{"pattern":"WD Frag"}},{"Str":{"pattern":"ANW TR"}},{"Str":{"pattern":"ANW TS"}},{"Str":{"pattern":"CDFRAG"}},{"Str":{"pattern":"DELPUB"}},{"Str":{"pattern":"DGuide"}},{"Str":{"pattern":"FDFRAG"}},{"Str":{"pattern":"NP Amd"}},{"Str":{"pattern":"NP Cor"}},{"Str":{"pattern":"NP ISH"}},{"Str":{"pattern":"NP PAS"}},{"Str":{"pattern":"PWI TR"}},{"Str":{"pattern":"PWI TS"}},{"Str":{"pattern":"WD Amd"}},{"Str":{"pattern":"WD ISH"}},{"Str":{"pattern":"WD PAS"}},{"Str":{"pattern":"CD TR"}},{"Str":{"pattern":"CD TS"}},{"Str":{"pattern":"CDCOR"}},{"Str":{"pattern":"CDCor"}},{"Str":{"pattern":"CDISH"}},{"Str":{"pattern":"CDPAS"}},{"Str":{"pattern":"CFDIS"}},{"Str":{"pattern":"DFRAG"}},{"Str":{"pattern":"FDCOR"}},{"Str":{"pattern":"FPDAM"}},{"Str":{"pattern":"GUIDE"}},{"Str":{"pattern":"Guide"}},{"Str":{"pattern":"NADIS"}},{"Str":{"pattern":"NFDIS"}},{"Str":{"pattern":"NP TR"}},{"Str":{"pattern":"NP TS"}},{"Str":{"pattern":"RDISH"}},{"Str":{"pattern":"RFDIS"}},{"Str":{"pattern":"WD TR"}},{"Str":{"pattern":"WD TS"}},{"Str":{"pattern":"WDCor"}},{"Str":{"pattern":"A2CD"}},{"Str":{"pattern":"A3CD"}},{"Str":{"pattern":"A4CD"}},{"Str":{"pattern":"A5CD"}},{"Str":{"pattern":"A6CD"}},{"Str":{"pattern":"A7CD"}},{"Str":{"pattern":"A8CD"}},{"Str":{"pattern":"A9CD"}},{"Str":{"pattern":"ACDV"}},{"Str":{"pattern":"ADTR"}},{"Str":{"pattern":"ADTS"}},{"Str":{"pattern":"APUB"}},{"Str":{"pattern":"AWIN"}},{"Str":{"pattern":"BPUB"}},{"Str":{"pattern":"CCDV"}},{"Str":{"pattern":"CDAM"}},{"Str":{"pattern":"CDTR"}},{"Str":{"pattern":"CDTS"}},{"Str":{"pattern":"CDVM"}},{"Str":{"pattern":"DCOR"}},{"Str":{"pattern":"DISH"}},{"Str":{"pattern":"DPAS"}},{"Str":{"pattern":"DTRM"}},{"Str":{"pattern":"DTSM"}},{"Str":{"pattern":"FDAM"}},{"Str":{"pattern":"FDIS"}},{"Str":{"pattern":"FRAG"}},{"Str":{"pattern":"NCDV"}},{"Str":{"pattern":"NDTR"}},{"Str":{"pattern":"NDTS"}},{"Str":{"pattern":"NWIP"}},{"Str":{"pattern":"PDAM"}},{"Str":{"pattern":"PPUB"}},{"Str":{"pattern":"WPUB"}},{"Str":{"pattern":"2CD"}},{"Str":{"pattern":"3CD"}},{"Str":{"pattern":"4CD"}},{"Str":{"pattern":"5CD"}},{"Str":{"pattern":"6CD"}},{"Str":{"pattern":"7CD"}},{"Str":{"pattern":"8CD"}},{"Str":{"pattern":"9CD"}},{"Str":{"pattern":"ACD"}},{"Str":{"pattern":"AMD"}},{"Str":{"pattern":"AMW"}},{"Str":{"pattern":"ANW"}},{"Str":{"pattern":"Amd"}},{"Str":{"pattern":"BWG"}},{"Str":{"pattern":"CAN"}},{"Str":{"pattern":"CDM"}},{"Str":{"pattern":"CDV"}},{"Str":{"pattern":"COR"}},{"Str":{"pattern":"Cor"}},{"Str":{"pattern":"DAM"}},{"Str":{"pattern":"DTR"}},{"Str":{"pattern":"DTS"}},{"Str":{"pattern":"ISH"}},{"Str":{"pattern":"PAS"}},{"Str":{"pattern":"PNW"}},{"Str":{"pattern":"PRF"}},{"Str":{"pattern":"PWI"}},{"Str":{"pattern":"SRD"}},{"Str":{"pattern":"TRF"}},{"Str":{"pattern":"CA"}},{"Str":{"pattern":"CD"}},{"Str":{"pattern":"CS"}},{"Str":{"pattern":"NP"}},{"Str":{"pattern":"OD"}},{"Str":{"pattern":"RR"}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Str":{"pattern":"WD"}},{"Alternative":{"atoms":[1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291]}},{"Str":{"pattern":"FRAGC"}},{"Str":{"pattern":"FRAG"}},{"Alternative":{"atoms":[1292,1293,1294]}},{"Named":{"name":"supp2_type_with_stage","atom":1295}},{"Entity":{"atom":6}},{"Repetition":{"atom":1297,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":1436}},{"Entity":{"atom":699}},{"Str":{"pattern":"DIR"}},{"Entity":{"atom":6}},{"Entity":{"atom":18}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[1303,1304]}},{"Repetition":{"atom":1305,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1302,1306]}},{"Repetition":{"atom":1307,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1301,1308]}},{"Str":{"pattern":"VIM"}},{"Str":{"pattern":"SYMBOL"}},{"Entity":{"atom":26}},{"Repetition":{"atom":1312,"min":1,"max":6,"tag":"Repetition"}},{"Str":{"pattern":"v"}},{"Entity":{"atom":26}},{"Repetition":{"atom":1315,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[1317,1318]}},{"Repetition":{"atom":1319,"min":0,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"_"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[1322,1323]}},{"Repetition":{"atom":1324,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1321,1325]}},{"Repetition":{"atom":1326,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1313,1314,1316,1320,1327]}},{"Entity":{"atom":18}},{"Repetition":{"atom":1329,"min":2,"max":4,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":1332,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1331,1333]}},{"Repetition":{"atom":1334,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":18}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[1336,1337]}},{"Repetition":{"atom":1338,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1330,1335,1339]}},{"Entity":{"atom":26}},{"Repetition":{"atom":1341,"min":1,"max":6,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[1343,1344]}},{"Repetition":{"atom":1345,"min":0,"max":1,"tag":"Repetition"}},{"Str":{"pattern":"_"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Alternative":{"atoms":[1348,1349]}},{"Repetition":{"atom":1350,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1347,1351]}},{"Repetition":{"atom":1352,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1346,1353]}},{"Repetition":{"atom":1354,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1342,1355]}},{"Alternative":{"atoms":[1309,1310,1311,1328,1340,1356]}},{"Entity":{"atom":33}},{"Entity":{"atom":100}},{"Alternative":{"atoms":[1358,1359]}},{"Entity":{"atom":6}},{"Repetition":{"atom":1361,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[1363,1364,1365]}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[&]"}},{"Re":{"pattern":"[,]"}},{"Alternative":{"atoms":[1366,1367,1368,1369]}},{"Repetition":{"atom":1370,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Entity":{"atom":100}},{"Alternative":{"atoms":[1372,1373]}},{"Entity":{"atom":18}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[1375,1376,1377]}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[&]"}},{"Re":{"pattern":"[,]"}},{"Alternative":{"atoms":[1378,1379,1380,1381]}},{"Repetition":{"atom":1382,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1374,1383]}},{"Repetition":{"atom":1384,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1360,1362,1371,1385]}},{"Repetition":{"atom":1386,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1357,1387]}},{"Named":{"name":"supp2_number_with_part","atom":1388}},{"Alternative":{"atoms":[1300,1389]}},{"Entity":{"atom":146}},{"Entity":{"atom":26}},{"Repetition":{"atom":1392,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"supp2_stage_iteration","atom":1393}},{"Sequence":{"atoms":[1391,1394]}},{"Repetition":{"atom":1395,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Repetition":{"atom":1397,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":443}},{"Named":{"name":"colon","atom":1399}},{"Entity":{"atom":33}},{"Alternative":{"atoms":[1400,1401]}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[1403,1404]}},{"Entity":{"atom":26}},{"Repetition":{"atom":1406,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":26}},{"Lookahead":{"atom":1408,"positive":false}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":1411,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1410,1412]}},{"Repetition":{"atom":1413,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":33}},{"Entity":{"atom":26}},{"Repetition":{"atom":1416,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1415,1417]}},{"Repetition":{"atom":1418,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1405,1407,1409,1414,1419]}},{"Named":{"name":"supp2_date","atom":1420}},{"Str":{"pattern":"--"}},{"Named":{"name":"supp2_undated_marker","atom":1422}},{"Str":{"pattern":"—"}},{"Named":{"name":"supp2_undated_marker","atom":1424}},{"Alternative":{"atoms":[1421,1423,1425]}},{"Sequence":{"atoms":[1402,1426]}},{"Sequence":{"atoms":[1398,1427]}},{"Repetition":{"atom":1428,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":773}},{"Repetition":{"atom":1430,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":793}},{"Entity":{"atom":798}},{"Alternative":{"atoms":[1432,1433]}},{"Repetition":{"atom":1434,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1390,1396,1429,1431,1435]}},{"Entity":{"atom":1463}},{"Entity":{"atom":1456}},{"Entity":{"atom":6}},{"Repetition":{"atom":1439,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":1111}},{"Named":{"name":"supp_edition_str","atom":1441}},{"Entity":{"atom":6}},{"Repetition":{"atom":1443,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":26}},{"Repetition":{"atom":1445,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":146}},{"Entity":{"atom":26}},{"Repetition":{"atom":1448,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1447,1449]}},{"Repetition":{"atom":1450,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1446,1451]}},{"Named":{"name":"supp2_edition","atom":1452}},{"Sequence":{"atoms":[1442,1444,1453]}},{"Repetition":{"atom":1454,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1440,1455]}},{"Entity":{"atom":506}},{"Repetition":{"atom":1457,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":517}},{"Repetition":{"atom":1459,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":521}},{"Repetition":{"atom":1461,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1438,1458,1460,1462]}},{"Sequence":{"atoms":[1147,1157,1158,1298,1299,1437]}},{"Entity":{"atom":1472}},{"Entity":{"atom":541}},{"Entity":{"atom":177}},{"Entity":{"atom":960}},{"Entity":{"atom":6}},{"Entity":{"atom":1100}},{"Entity":{"atom":1133}},{"Sequence":{"atoms":[1466,1467,1468,1469,1470,1471]}},{"Entity":{"atom":1476}},{"Entity":{"atom":1156}},{"Entity":{"atom":1133}},{"Sequence":{"atoms":[1474,1475]}},{"Entity":{"atom":1480}},{"Entity":{"atom":803}},{"Entity":{"atom":523}},{"Sequence":{"atoms":[1478,1479]}},{"Alternative":{"atoms":[0,157,268,306,525,1135,1146,1465,1473,1477]}}],"root":1481},"bindings":[{"capture":"publisher","path":"publisher","type":"string","card":null,"preprocess":null},{"capture":"technical_committee","path":"technical_committee","type":"string","card":null,"preprocess":null},{"capture":"subcommittee","path":"subcommittee","type":"string","card":null,"preprocess":null},{"capture":"wd_number","path":"wd_number","type":"string","card":null,"preprocess":null},{"capture":"wd_language","path":"wd_language","type":"string","card":null,"preprocess":null},{"capture":"wd_stage","path":"wd_stage","type":"string","card":null,"preprocess":null},{"capture":"wp_stage","path":"wp_stage","type":"string","card":null,"preprocess":null},{"capture":"wp_type","path":"wp_type","type":"string","card":null,"preprocess":null},{"capture":"number_with_part","path":"number_with_part","type":"string","card":null,"preprocess":null},{"capture":"supp_number_with_part","path":"supp_number_with_part","type":"string","card":null,"preprocess":null},{"capture":"supp2_number_with_part","path":"supp2_number_with_part","type":"string","card":null,"preprocess":null},{"capture":"trf_org","path":"trf_org","type":"string","card":null,"preprocess":null},{"capture":"stage_iteration","path":"stage_iteration","type":"string","card":null,"preprocess":null},{"capture":"supp_stage_iteration","path":"supp_stage_iteration","type":"string","card":null,"preprocess":null},{"capture":"supp2_stage_iteration","path":"supp2_stage_iteration","type":"string","card":null,"preprocess":null},{"capture":"undated_marker","path":"undated_marker","type":"string","card":null,"preprocess":null},{"capture":"supp_undated_marker","path":"supp_undated_marker","type":"string","card":null,"preprocess":null},{"capture":"supp2_undated_marker","path":"supp2_undated_marker","type":"string","card":null,"preprocess":null},{"capture":"date","path":"date","type":"string","card":null,"preprocess":null},{"capture":"supp_date","path":"supp_date","type":"string","card":null,"preprocess":null},{"capture":"supp2_date","path":"supp2_date","type":"string","card":null,"preprocess":null},{"capture":"edition","path":"edition","type":"string","card":null,"preprocess":null},{"capture":"supp_edition","path":"supp_edition","type":"string","card":null,"preprocess":null},{"capture":"supp2_edition","path":"supp2_edition","type":"string","card":null,"preprocess":null},{"capture":"supplement_type","path":"consolidated_supplements[].supplement_type","type":"string","card":null,"preprocess":null},{"capture":"supplement_number","path":"consolidated_supplements[].supplement_number","type":"string","card":null,"preprocess":null},{"capture":"supplement_year","path":"consolidated_supplements[].supplement_year","type":"string","card":null,"preprocess":null},{"capture":"vap_suffix","path":"vap_suffix","type":"string","card":null,"preprocess":null},{"capture":"database","path":"database","type":"string","card":null,"preprocess":null},{"capture":"type_with_stage","path":"type_with_stage","type":"string","card":null,"preprocess":null},{"capture":"legacy_stage","path":"legacy_stage","type":"string","card":null,"preprocess":null},{"capture":"legacy_supplement_number","path":"legacy_supplement_number","type":"string","card":null,"preprocess":null},{"capture":"legacy_base_number_with_part","path":"legacy_base_number_with_part","type":"string","card":null,"preprocess":null},{"capture":"legacy_base_number","path":"legacy_base_number","type":"string","card":null,"preprocess":null},{"capture":"legacy_base_part","path":"legacy_base_part","type":"string","card":null,"preprocess":null},{"capture":"legacy_copublisher","path":"legacy_copublisher","type":"string","card":null,"preprocess":null},{"capture":"supp_type_with_stage","path":"supp_type_with_stage","type":"string","card":null,"preprocess":null},{"capture":"supp2_type_with_stage","path":"supp2_type_with_stage","type":"string","card":null,"preprocess":null},{"capture":"type_with_stage_fr","path":"type_with_stage_fr","type":"string","card":null,"preprocess":null},{"capture":"fragment_type","path":"fragment_type","type":"string","card":null,"preprocess":null},{"capture":"fragment_number","path":"fragment_number","type":"string","card":null,"preprocess":null},{"capture":"sheet_number","path":"sheet_number","type":"string","card":null,"preprocess":null},{"capture":"sheet_year","path":"sheet_year","type":"string","card":null,"preprocess":null},{"capture":"all_parts","path":"all_parts","type":"string","card":null,"preprocess":null},{"capture":"languages","path":"languages","type":"string","card":null,"preprocess":null},{"capture":"copublisher","path":"copublishers[].copublisher","type":"string","card":null,"preprocess":null}]}},"preprocess":{},"tables":{"iec_typed_stages":{"file":"iec_typed_stages.yaml","rows":[{"abbr":"TRF"},{"abbr":"PWI Amd"},{"abbr":"NP Amd"},{"abbr":"ANW Amd"},{"abbr":"WD Amd"},{"abbr":"CDAM"},{"abbr":"PDAM"},{"abbr":"DAM"},{"abbr":"FDAM"},{"abbr":"FPDAM"},{"abbr":"PRF Amd"},{"abbr":"Amd"},{"abbr":"AMD"},{"abbr":"PWI Cor"},{"abbr":"NP Cor"},{"abbr":"ANW Cor"},{"abbr":"WDCor"},{"abbr":"CDCor"},{"abbr":"CDCOR"},{"abbr":"DCOR"},{"abbr":"FDCOR"},{"abbr":"PRF Cor"},{"abbr":"Cor"},{"abbr":"COR"},{"abbr":"CS"},{"abbr":"CA"},{"abbr":"PWI Guide"},{"abbr":"NP Guide"},{"abbr":"ANW Guide"},{"abbr":"WD Guide"},{"abbr":"CD Guide"},{"abbr":"DGuide"},{"abbr":"FDGuide"},{"abbr":"PRF Guide"},{"abbr":"GUIDE"},{"abbr":"Guide"},{"abbr":"PWI"},{"abbr":"NWIP"},{"abbr":"BWG"},{"abbr":"AWIN"},{"abbr":"AMW"},{"abbr":"NP"},{"abbr":"PNW"},{"abbr":"ANW"},{"abbr":"WD"},{"abbr":"CD"},{"abbr":"2CD"},{"abbr":"3CD"},{"abbr":"4CD"},{"abbr":"5CD"},{"abbr":"6CD"},{"abbr":"7CD"},{"abbr":"8CD"},{"abbr":"9CD"},{"abbr":"ACD"},{"abbr":"A2CD"},{"abbr":"A3CD"},{"abbr":"A4CD"},{"abbr":"A5CD"},{"abbr":"A6CD"},{"abbr":"A7CD"},{"abbr":"A8CD"},{"abbr":"A9CD"},{"abbr":"CDM"},{"abbr":"CDV"},{"abbr":"ACDV"},{"abbr":"CCDV"},{"abbr":"CDVM"},{"abbr":"NCDV"},{"abbr":"FDIS"},{"abbr":"PRF"},{"abbr":"NFDIS"},{"abbr":"NADIS"},{"abbr":"RDISH"},{"abbr":"RFDIS"},{"abbr":"CFDIS"},{"abbr":"BPUB"},{"abbr":"PPUB"},{"abbr":"APUB"},{"abbr":"WPUB"},{"abbr":"DELPUB"},{"abbr":"RR"},{"abbr":"CAN"},{"abbr":"PWI ISH"},{"abbr":"NP ISH"},{"abbr":"ANW ISH"},{"abbr":"WD ISH"},{"abbr":"CDISH"},{"abbr":"DISH"},{"abbr":"ISH"},{"abbr":"OD"},{"abbr":"PWI PAS"},{"abbr":"NP PAS"},{"abbr":"ANW PAS"},{"abbr":"WD PAS"},{"abbr":"CDPAS"},{"abbr":"DPAS"},{"abbr":"PAS"},{"abbr":"Trend Report"},{"abbr":"PWI TR"},{"abbr":"NP TR"},{"abbr":"ANW TR"},{"abbr":"WD TR"},{"abbr":"CD TR"},{"abbr":"DTR"},{"abbr":"ADTR"},{"abbr":"CDTR"},{"abbr":"DTRM"},{"abbr":"NDTR"},{"abbr":"DTSM"},{"abbr":"TR"},{"abbr":"SRD"},{"abbr":"Technology Report"},{"abbr":"PWI TS"},{"abbr":"NP TS"},{"abbr":"ANW TS"},{"abbr":"WD TS"},{"abbr":"CD TS"},{"abbr":"DTS"},{"abbr":"ADTS"},{"abbr":"CDTS"},{"abbr":"NDTS"},{"abbr":"TS"},{"abbr":"White Paper"},{"abbr":"PWI Frag"},{"abbr":"NP Frag"},{"abbr":"ANW Frag"},{"abbr":"WD Frag"},{"abbr":"CDFRAG"},{"abbr":"DFRAG"},{"abbr":"FDFRAG"},{"abbr":"PRF Frag"},{"abbr":"FRAG"}]}},"lint":{"order_warnings":["rule dash: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule organization: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule organization: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule organization: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule organization: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule organization: branches 4 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule organization: branches 6 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule organization: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule tc_type: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule technical_group: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule wp_number: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule number: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule number: branches 2 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule number: branches 3 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule number: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule vap_code: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule vap_code: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition_str: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition_str: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition_str: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition_str: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition_str: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition_str: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule supp_edition_str: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule supp_edition_str: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule supp_edition_str: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule supp_edition_str: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule supp_edition_str: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule supp_edition_str: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule guide_prefix: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule legacy_dam_token: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 10 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"IEC 60050","expect":{}},{"entry":"identifier","kind":"accept","input":"IEC 8601-1:2019","expect":{}},{"entry":"identifier","kind":"accept","input":"CISPR 16-1-1","expect":{}},{"entry":"identifier","kind":"accept","input":"IECQ OD 1234","expect":{}},{"entry":"identifier","kind":"accept","input":"IEC/TS 80000-1","expect":{}},{"entry":"identifier","kind":"accept","input":"IEC/FDAM 60038-1","expect":{}},{"entry":"identifier","kind":"accept","input":"IEC FDAM 60038-1","expect":{}},{"entry":"identifier","kind":"accept","input":"IEC DAM 60038-1","expect":{}},{"entry":"identifier","kind":"accept","input":"ISO/IEC PDAM 12207","expect":{}},{"entry":"identifier","kind":"accept","input":"ISO/IEC PDAM 2 10646:2012","expect":{}},{"entry":"identifier","kind":"accept","input":"ISO/IEC FPDAM 9075/1","expect":{}},{"entry":"identifier","kind":"accept","input":"ISO/IEC FDAM 1 14496-12:2004","expect":{}},{"entry":"identifier","kind":"accept","input":"IEC DCOR 60038-1","expect":{}},{"entry":"identifier","kind":"accept","input":"IEC 60038-1/FDAM 1","expect":{}},{"entry":"identifier","kind":"accept","input":"ISO/IEC 19772:2009(en)/DAM1:2019","expect":{}},{"entry":"identifier","kind":"accept","input":"IEC 60038-2/DAM 2.3:2022","expect":{}},{"entry":"identifier","kind":"accept","input":"IEC 60038-2/DCOR 1.3","expect":{}},{"entry":"identifier","kind":"accept","input":"IEC/FDAM 60038-2.3","expect":{}},{"entry":"identifier","kind":"accept","input":"IEC 60038-2.3","expect":{}},{"entry":"identifier","kind":"example","input":"ISO/IEC 19772:2009(en)/DAM1:2019","expect":{"publisher":"ISO","languages":"en","supp_type_with_stage":"DAM","supp_number_with_part":"1","date":"2009","supp_date":"2019"}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}},{"entry":"identifier","kind":"example","input":"IEC/FDAM 60038-1","expect":{"publisher":"IEC","legacy_stage":"FDAM","legacy_base_number_with_part":"60038-1"}},{"entry":"identifier","kind":"example","input":"ISO/IEC PDAM 2 10646:2012","expect":{"publisher":"ISO","legacy_stage":"PDAM","legacy_supplement_number":"2","legacy_base_number_with_part":"10646","date":"2012"}},{"entry":"identifier","kind":"example","input":"ISO/IEC FPDAM 9075/1","expect":{"publisher":"ISO","legacy_stage":"FPDAM","legacy_base_number":"9075","legacy_base_part":"1"}},{"entry":"identifier","kind":"example","input":"ISO/IEC FDAM 1 14496-12:2004","expect":{"publisher":"ISO","legacy_stage":"FDAM","legacy_supplement_number":"1","legacy_base_number_with_part":"14496-12","date":"2004"}},{"entry":"identifier","kind":"example","input":"IEC 60038-2/DAM 2.3:2022","expect":{"publisher":"IEC","number_with_part":"60038-2","supp_type_with_stage":"DAM","supp_number_with_part":"2","supp_stage_iteration":"3","supp_date":"2022"}},{"entry":"identifier","kind":"example","input":"IEC/FDAM 60038-2.3","expect":{"publisher":"IEC","legacy_stage":"FDAM","legacy_base_number_with_part":"60038-2","stage_iteration":"3"}},{"entry":"identifier","kind":"example","input":"IEC 60038-2.3","expect":{"publisher":"IEC","number_with_part":"60038-2","stage_iteration":"3"}}],"docs":{"prefix_sole_publisher":"IEC publishers, longest-first: the qualified forms must precede\nthe bare \"IEC\".","legacy_dam_token":"The legacy DAM-family prefix face (the JTC1 ballot spelling): the\nstage token precedes the base designation — \"IEC/FDAM 60038-1\",\n\"ISO/IEC PDAM 12207\", \"ISO/IEC PDAM 2 10646:2012\",\n\"ISO/IEC FPDAM 9075/1\", \"ISO/IEC FDAM 1 14496-12:2004\". A number\nbetween the token and the designation is the SUPPLEMENT number; the\ndesignation is the base's and is kept whole (the owner's 2026-11-12\nruling, reversing #693: unnumbered DAM/PDAM/FDAM/FPDAM means\nAmendment 1, and the old slash-part spelling \"9075/1\" carries the\nbase's part). The date rides with the designation — old notation\nprints the base's year, and the draft supplement carries none of\nits own. Longest tokens first: FPDAM before PDAM, FDAM before DAM.\nThe slash-part alternative precedes the dash-part one: the\nnumber_with_part body also matches a bare \"9075\" (its part terms\nare optional), so a slash-part input must be claimed first or the\n\"/1\" would dangle unclaimed.","supplement_identifier":"The [language] slot between the base designation and the supplement\ntoken: the renderer prints the BASE document's languages right after\nits date (\"ISO/IEC 19772:2009(en)/DAM1:2019\"), and without the slot\nthe canonical face could not re-parse (the input's (E) rides the\nsupplement's third part; the rendered (en) rides the base). The\ncapture lands on the base: the builder's supplement branch rejects\nonly the supp_* keys into the base hash."},"source":"# Port of lib/pubid/iec/parser.rb. Deviations:\n# - joint_identifier (IEC x | ISO y) awaits PG cross-file imports; the\n# ISO joint grammar cannot be inlined at reasonable size. Noted here;\n# slots back into the root ahead of identifier_copublishers.\n# - the IEV → \"IEC 60050\" input shorthand is pre-parse normalization and\n# stays binder-side.\n# - Supplement layers capture into position-scoped names (supp_* on the\n# first supplement, supp2_* on the second): the base's and the\n# supplements' second_parts carry the same shapes, and captures are\n# collected globally by name, so shared names would collapse the\n# supplement's number/date onto the base's.\n\ngrammar PubidIec version \"0.1.0\" edition 2 {\n digit = %x30-39\n upper = %x41-5A\n lower = %x61-7A\n letter = upper / lower\n alnum_char = upper / lower / digit\n word_ext_char = alnum_char / %x5F / %x26 / %x2C\n space = \" \"\n dash = \"-\" / \"‑\" / \"‐\"\n dot = \".\"\n slash = \"/\"\n colon = \":\"\n comma = \",\"\n century = \"19\" / \"20\"\n year_digits = century 2*digit !digit\n month_digits = 2*digit\n day_digits = 2*digit\n digits = 1*digit\n\n ## IEC publishers, longest-first: the qualified forms must precede\n ## the bare \"IEC\".\n # CEI is IEC's French spelling (pubid#488): French-language IEC\n # documents print \"CEI ...\" identifiers; it parses as the IEC publisher.\n prefix_sole_publisher = {\n (\n \"IECQ OD\" / \"IECQ CS\" / \"IEC CAB\" / \"IEC CA\" / \"IECRE\"\n / \"CISPR\" / \"IECEE\" / \"IECEx\" / \"IECQ\" / \"IEC\" / \"ISO\" / \"CEI\"\n ) as publisher\n }\n organization = {\n \"IEC\" / \"ISO\" / \"IEEE\" / \"CIW\" / \"SAE\" / \"CIE\" / \"ASME\" / \"ASTM\"\n / \"OECD\" / \"HL7\" / \"CEI\" / \"UNDP\"\n }\n copublishers_item = slash [space] organization as copublisher\n copublishers = *copublishers_item\n prefix_with_copublishers = prefix_sole_publisher [space] [copublishers]\n\n tc_type = \"JTC\" / \"JPC\" / \"TC\" / \"SC\" / \"PC\"\n sc_body = \"SC\" space digits [*upper]\n technical_group_with_publisher = {\n prefix_sole_publisher [copublishers] space\n (\n (\n \"CISPR\" / (\"CIS\" slash upper)\n / (tc_type space (1*digit) [*upper])\n ) as technical_committee\n [\n (\n (slash [space] (\"SC\" space (1*digit) [*upper]))\n as subcommittee\n )\n ]\n )\n }\n technical_group_bare = {\n (\n (\n \"CISPR\" / (\"CIS\" slash upper)\n / (tc_type space (1*digit) [*upper])\n ) as technical_committee\n [\n (\n (slash [space] (\"SC\" space (1*digit) [*upper]))\n as subcommittee\n )\n ]\n )\n }\n technical_group = technical_group_with_publisher / technical_group_bare\n\n wp_type = ((\"TR\" / \"TS\" / \"SRD\") space) as wp_type\n wp_number = {\n (\n (\n (1*(upper / lower))\n (*(upper / lower / digit))\n [(dash 1*digit)]\n ) as number_with_part\n ) / number_with_part\n }\n working_programme = {\n (\"PWI\" / \"PNW\") as wp_stage\n space [wp_type] wp_number [(space edition)]\n }\n\n working_document = {\n (\n ( \"JTC1-SC\" 1*digit )\n / ( 1*upper slash 1*upper )\n / 1*(upper / lower / digit)\n ) as technical_committee\n slash\n ( 1*(upper / lower / digit) ) as wd_number\n [ ( \"(\" upper as wd_language \")\" ) ]\n [ ( slash (1*upper) as wd_stage ) ]\n }\n\n number = {\n (\n (\"DIR\" *(space 1*upper_digit))\n / \"VIM\"\n / \"SYMBOL\"\n / (1*6digit \"v\" 1*digit *letter [(\"_\" 1*letter)])\n / (2*4upper [(dash 1*digit)] *upper_digit)\n / (1*6digit [*1letter [(\"_\" 1*letter)]])\n )\n }\n upper_digit = upper / digit\n part_and_subpart = {\n (dash / comma) [space]\n 1*word_ext_char\n *((dash / comma) 1*word_ext_char)\n }\n # The dot sub-number run is 1*digit (pubid#725): the draft ballot faces\n # print dotted supplement numbers (\"/DAM 2.3:2022\", \"/DCOR 1.3\") and the\n # ballot-prefix faces print dotted base designations (\"IEC/FDAM\n # 60038-2.3\"); a single digit lost every sub-number past \".3\"-style\n # shapes and rejected the multi-digit ones outright. The run is safe to\n # leave unguarded: every segment that may follow (date, third_part,\n # consolidated/vap tails) starts with a non-digit.\n # number and part_and_subpart are inlined fully to raw terms at every\n # capture site: a capture wrapping a bare rule ref expands to a list\n # of element hashes, while the inlined body binds as one scalar\n # string.\n number_with_part = {\n (\n (\n (\"DIR\" *(space 1*(upper / digit)))\n / \"VIM\"\n / \"SYMBOL\"\n / ( 1*6digit \"v\" 1*digit *(upper / lower) [(\"_\" 1*(upper / lower))] )\n / ( 2*4upper [(dash 1*digit)] *(upper / digit) )\n / ( 1*6digit [*1(upper / lower) [(\"_\" 1*(upper / lower))]] )\n )\n [\n (\n (dash / comma) [space]\n 1*((upper / lower / digit) / %x5F / %x26 / %x2C)\n *( (dash / comma) 1*((upper / lower / digit) / %x5F / %x26 / %x2C) )\n )\n ]\n ) as number_with_part\n }\n trf_org_number = (\"CISPR\" space) as trf_org number_with_part\n stage_iteration = dot 1*digit as stage_iteration\n\n undated = \"--\" / \"—\"\n # year_digits is inlined (\"19\" / \"20\" 2*digit !digit) at every capture\n # site for the same expansion reason as number_with_part.\n full_date = {\n (\n (\"19\" / \"20\") 2*digit !digit\n [(dash 2*digit)]\n [(dash 2*digit)]\n ) as date\n }\n date_body = undated as undated_marker / full_date\n date = (colon / dash) date_body\n\n vap_code = \"CSV\" / \"CMV\" / \"RLV\" / \"SER\" / \"EXV\" / \"PAC\" / \"PRV\"\n vap_suffix = {\n space\n (\n ( 1*( ( vap_code ) ( *( dash ( vap_code ) ) ) ) as vap_suffix )\n )\n }\n database_suffix = space \"DB\" as database\n consolidated_supplement = {\n \"+\"\n (\"AMD\" / \"COR\") as supplement_type\n (\n # Refs adjacent to a capture must be parenthesized: a bare ref's\n # named node makes the neighbouring capture drop from the tree.\n ( (1*digit) as supplement_number (colon) ( (\"19\" / \"20\") 2*digit !digit ) as supplement_year )\n / ( (1*digit) as supplement_number )\n )\n }\n consolidated_supplements = 1*consolidated_supplement\n second_part = {\n (trf_org_number / number_with_part)\n [stage_iteration]\n [[space] date]\n [consolidated_supplements]\n [vap_suffix / database_suffix]\n }\n\n edition_str = \"Edition\" / \"Ed.\" / \"ED\" / \"Ed\"\n edition = edition_str [space] (1*digit [(dot 1*digit)]) as edition\n\n # Supplement-side second_part: same shapes as second_part, captured\n # under supp_* names so the supplement's number/date/edition never\n # collapse onto the base's.\n supplement_second_part = {\n (\n trf_org_number\n / (\n (\n (\n (\"DIR\" *(space 1*(upper / digit)))\n / \"VIM\"\n / \"SYMBOL\"\n / ( 1*6digit \"v\" 1*digit *(upper / lower) [(\"_\" 1*(upper / lower))] )\n / ( 2*4upper [(dash 1*digit)] *(upper / digit) )\n / ( 1*6digit [*1(upper / lower) [(\"_\" 1*(upper / lower))]] )\n )\n [\n (\n (dash / comma) [space]\n 1*((upper / lower / digit) / %x5F / %x26 / %x2C)\n *( (dash / comma) 1*((upper / lower / digit) / %x5F / %x26 / %x2C) )\n )\n ]\n ) as supp_number_with_part\n )\n )\n [ dot 1*digit as supp_stage_iteration ]\n [\n [space] (\n (colon / dash) (\n (\n (\"19\" / \"20\") 2*digit !digit\n [(dash 2*digit)]\n [(dash 2*digit)]\n ) as supp_date\n / \"--\" as supp_undated_marker\n / \"—\" as supp_undated_marker\n )\n )\n ]\n [consolidated_supplements]\n [vap_suffix / database_suffix]\n }\n\n supp_edition_str = \"Edition\" / \"Ed.\" / \"ED\" / \"Ed\"\n supp_edition_rule = supp_edition_str [space] (1*digit [(dot 1*digit)]) as supp_edition\n\n # Second-supplement layer (/AMD1:2018/COR1:2019): supp2_* names.\n supp2_type_with_stage = {\n (\n alt from_table \"iec_typed_stages\" column \"abbr\" / \"FRAGC\" / \"FRAG\"\n ) as supp2_type_with_stage\n }\n supplement_second_part2 = {\n (\n trf_org_number\n / (\n (\n (\n (\"DIR\" *(space 1*(upper / digit)))\n / \"VIM\"\n / \"SYMBOL\"\n / ( 1*6digit \"v\" 1*digit *(upper / lower) [(\"_\" 1*(upper / lower))] )\n / ( 2*4upper [(dash 1*digit)] *(upper / digit) )\n / ( 1*6digit [*1(upper / lower) [(\"_\" 1*(upper / lower))]] )\n )\n [\n (\n (dash / comma) [space]\n 1*((upper / lower / digit) / %x5F / %x26 / %x2C)\n *( (dash / comma) 1*((upper / lower / digit) / %x5F / %x26 / %x2C) )\n )\n ]\n ) as supp2_number_with_part\n )\n )\n [ dot 1*digit as supp2_stage_iteration ]\n [\n [space] (\n (colon / dash) (\n (\n (\"19\" / \"20\") 2*digit !digit\n [(dash 2*digit)]\n [(dash 2*digit)]\n ) as supp2_date\n / \"--\" as supp2_undated_marker\n / \"—\" as supp2_undated_marker\n )\n )\n ]\n [consolidated_supplements]\n [vap_suffix / database_suffix]\n }\n\n one_of_efards = %x45 / %x46 / %x41 / %x52 / %x44 / %x53\n lower_char = lower\n # The house-style separator is \"-\" (pubid#491); \",\" stays accepted.\n languages = {\n (\n *( 1*(lower) [(\",\" / \"-\")] / (one_of_efards [slash]) )\n ) as languages\n }\n language = \"(\" languages \")\"\n all_parts = \"(all parts)\" as all_parts\n fragment_notation = {\n slash\n (\"FRAGC\" / \"FRAG\") as fragment_type\n (1*digit) as fragment_number\n }\n third_part_edition = [space] [edition]\n third_part = third_part_edition [language] [fragment_notation] [all_parts]\n supplement_third_part_edition = [space] [supp_edition_rule]\n supplement_third_part = {\n supplement_third_part_edition\n [language]\n [fragment_notation]\n [all_parts]\n }\n supplement_third_part2_edition = {\n [space]\n [ ( supp_edition_str [space] (1*digit [(dot 1*digit)]) as supp2_edition ) ]\n }\n supplement_third_part2 = {\n supplement_third_part2_edition\n [language]\n [fragment_notation]\n [all_parts]\n }\n\n type_with_stage = {\n (\n alt from_table \"iec_typed_stages\" column \"abbr\"\n ) as type_with_stage\n [digit as stage_iteration space]\n }\n supplement_type_with_stage = {\n (\n alt from_table \"iec_typed_stages\" column \"abbr\" / \"FRAGC\" / \"FRAG\"\n ) as supp_type_with_stage\n }\n\n guide_prefix = \"Guide\" / \"GUIDE\"\n identifier_copublishers_no_third = {\n [ ( guide_prefix as type_with_stage_fr space ) ]\n [prefix_with_copublishers]\n [space]\n [slash]\n [type_with_stage]\n [space]\n second_part\n third_part_edition\n }\n identifier_copublishers = identifier_copublishers_no_third third_part\n\n sheet_notation = {\n (slash)\n (1*digit) as sheet_number\n (colon) ( (\"19\" / \"20\") 2*digit !digit ) as sheet_year\n }\n sheet_notation_no_year = slash (1*digit) as sheet_number\n sheet_identifier = {\n identifier_copublishers_no_third\n (sheet_notation / sheet_notation_no_year)\n }\n sheet_supplement_identifier = {\n identifier_copublishers_no_third\n sheet_notation\n slash supplement_type_with_stage\n [space] supplement_second_part\n supplement_third_part\n }\n standalone_supplement = {\n prefix_with_copublishers\n slash supplement_type_with_stage\n space supplement_second_part\n supplement_third_part\n }\n\n ## The legacy DAM-family prefix face (the JTC1 ballot spelling): the\n ## stage token precedes the base designation — \"IEC/FDAM 60038-1\",\n ## \"ISO/IEC PDAM 12207\", \"ISO/IEC PDAM 2 10646:2012\",\n ## \"ISO/IEC FPDAM 9075/1\", \"ISO/IEC FDAM 1 14496-12:2004\". A number\n ## between the token and the designation is the SUPPLEMENT number; the\n ## designation is the base's and is kept whole (the owner's 2026-11-12\n ## ruling, reversing #693: unnumbered DAM/PDAM/FDAM/FPDAM means\n ## Amendment 1, and the old slash-part spelling \"9075/1\" carries the\n ## base's part). The date rides with the designation — old notation\n ## prints the base's year, and the draft supplement carries none of\n ## its own. Longest tokens first: FPDAM before PDAM, FDAM before DAM.\n ## The slash-part alternative precedes the dash-part one: the\n ## number_with_part body also matches a bare \"9075\" (its part terms\n ## are optional), so a slash-part input must be claimed first or the\n ## \"/1\" would dangle unclaimed.\n legacy_dam_token = \"FPDAM\" / \"PDAM\" / \"FDAM\" / \"DAM\"\n # The legacy rule captures a copublisher as its own TOP-LEVEL scalar\n # instead of reusing prefix_with_copublishers: the wasm binder\n # scatters every unresolved array binding (copublishers[],\n # consolidated_supplements[]) over the enclosing node list when the\n # shape carries a bare `copublisher` node with no `copublishers`\n # wrapper (the known phantom-array trap), which the legacy rule's\n # flat shape triggered on every copublished row. A distinct scalar\n # capture binds by name on both engines; the builder attaches it.\n legacy_copublisher_item = slash [space] organization as legacy_copublisher\n legacy_supplement = {\n prefix_sole_publisher\n [space]\n [legacy_copublisher_item]\n [space]\n [slash]\n legacy_dam_token as legacy_stage\n space\n [\n ( 1*digit ) as legacy_supplement_number\n space\n ]\n (\n (\n ( 1*6digit ) as legacy_base_number\n slash\n ( 1*digit ) as legacy_base_part\n )\n / (\n (\n (\"DIR\" *(space 1*(upper / digit)))\n / \"VIM\"\n / \"SYMBOL\"\n / ( 1*6digit \"v\" 1*digit *(upper / lower) [(\"_\" 1*(upper / lower))] )\n / ( 2*4upper [(dash 1*digit)] *(upper / digit) )\n / ( 1*6digit [*1(upper / lower) [(\"_\" 1*(upper / lower))]] )\n )\n [\n (\n (dash / comma) [space]\n 1*((upper / lower / digit) / %x5F / %x26 / %x2C)\n *( (dash / comma) 1*((upper / lower / digit) / %x5F / %x26 / %x2C) )\n )\n ]\n ) as legacy_base_number_with_part\n )\n # The ballot face's base designation carries the same dotted\n # sub-number the plain base does (\"IEC/FDAM 60038-2.3\" — base 60038-2,\n # stage iteration 3; pubid#725): without it the dot fell to the\n # standalone/typed branches' supplement-number token and the\n # designation did not stay whole on the ballot rule.\n [ dot 1*digit as stage_iteration ]\n [\n [space] (\n (colon / dash) (\n (\n (\"19\" / \"20\") 2*digit !digit\n [(dash 2*digit)]\n [(dash 2*digit)]\n ) as date\n / \"--\" as undated_marker\n / \"—\" as undated_marker\n )\n )\n ]\n third_part\n }\n supplement_identifier_no_third = {\n identifier_copublishers_no_third\n [language]\n slash supplement_type_with_stage\n [space] supplement_second_part\n }\n ## The [language] slot between the base designation and the supplement\n ## token: the renderer prints the BASE document's languages right after\n ## its date (\"ISO/IEC 19772:2009(en)/DAM1:2019\"), and without the slot\n ## the canonical face could not re-parse (the input's (E) rides the\n ## supplement's third part; the rendered (en) rides the base). The\n ## capture lands on the base: the builder's supplement branch rejects\n ## only the supp_* keys into the base hash.\n supplement_identifier = supplement_identifier_no_third supplement_third_part\n supplement_supplement_identifier = {\n supplement_identifier_no_third\n slash supp2_type_with_stage\n [space] supplement_second_part2\n supplement_third_part2\n }\n\n identifier = {\n working_programme\n / technical_group\n / working_document\n / legacy_supplement\n / sheet_supplement_identifier\n / sheet_identifier\n / supplement_supplement_identifier\n / standalone_supplement\n / supplement_identifier\n / identifier_copublishers\n }\n\n entry identifier: identifier\n\n bindings identifier {\n publisher -> publisher (string)\n technical_committee -> technical_committee (string)\n subcommittee -> subcommittee (string)\n wd_number -> wd_number (string)\n wd_language -> wd_language (string)\n wd_stage -> wd_stage (string)\n wp_stage -> wp_stage (string)\n wp_type -> wp_type (string)\n number_with_part -> number_with_part (string)\n supp_number_with_part -> supp_number_with_part (string)\n supp2_number_with_part -> supp2_number_with_part (string)\n trf_org -> trf_org (string)\n stage_iteration -> stage_iteration (string)\n supp_stage_iteration -> supp_stage_iteration (string)\n supp2_stage_iteration -> supp2_stage_iteration (string)\n undated_marker -> undated_marker (string)\n supp_undated_marker -> supp_undated_marker (string)\n supp2_undated_marker -> supp2_undated_marker (string)\n date -> date (string)\n supp_date -> supp_date (string)\n supp2_date -> supp2_date (string)\n edition -> edition (string)\n supp_edition -> supp_edition (string)\n supp2_edition -> supp2_edition (string)\n supplement_type -> consolidated_supplements[].supplement_type (string)\n supplement_number -> consolidated_supplements[].supplement_number (string)\n supplement_year -> consolidated_supplements[].supplement_year (string)\n vap_suffix -> vap_suffix (string)\n database -> database (string)\n type_with_stage -> type_with_stage (string)\n legacy_stage -> legacy_stage (string)\n legacy_supplement_number -> legacy_supplement_number (string)\n legacy_base_number_with_part -> legacy_base_number_with_part (string)\n legacy_base_number -> legacy_base_number (string)\n legacy_base_part -> legacy_base_part (string)\n legacy_copublisher -> legacy_copublisher (string)\n supp_type_with_stage -> supp_type_with_stage (string)\n supp2_type_with_stage -> supp2_type_with_stage (string)\n type_with_stage_fr -> type_with_stage_fr (string)\n fragment_type -> fragment_type (string)\n fragment_number -> fragment_number (string)\n sheet_number -> sheet_number (string)\n sheet_year -> sheet_year (string)\n all_parts -> all_parts (string)\n languages -> languages (string)\n copublisher -> copublishers[].copublisher (string)\n }\n\n test {\n accept \"IEC 60050\"\n accept \"IEC 8601-1:2019\"\n accept \"CISPR 16-1-1\"\n accept \"IECQ OD 1234\"\n accept \"IEC/TS 80000-1\"\n accept \"IEC/FDAM 60038-1\"\n accept \"IEC FDAM 60038-1\"\n accept \"IEC DAM 60038-1\"\n accept \"ISO/IEC PDAM 12207\"\n accept \"ISO/IEC PDAM 2 10646:2012\"\n accept \"ISO/IEC FPDAM 9075/1\"\n accept \"ISO/IEC FDAM 1 14496-12:2004\"\n accept \"IEC DCOR 60038-1\"\n accept \"IEC 60038-1/FDAM 1\"\n accept \"ISO/IEC 19772:2009(en)/DAM1:2019\"\n accept \"IEC 60038-2/DAM 2.3:2022\"\n accept \"IEC 60038-2/DCOR 1.3\"\n accept \"IEC/FDAM 60038-2.3\"\n accept \"IEC 60038-2.3\"\n example \"ISO/IEC 19772:2009(en)/DAM1:2019\" { publisher: \"ISO\", languages: \"en\", supp_type_with_stage: \"DAM\", supp_number_with_part: \"1\", date: \"2009\", supp_date: \"2019\" }\n reject \"nonsense\"\n example \"IEC/FDAM 60038-1\" { publisher: \"IEC\", legacy_stage: \"FDAM\", legacy_base_number_with_part: \"60038-1\" }\n example \"ISO/IEC PDAM 2 10646:2012\" { publisher: \"ISO\", legacy_stage: \"PDAM\", legacy_supplement_number: \"2\", legacy_base_number_with_part: \"10646\", date: \"2012\" }\n example \"ISO/IEC FPDAM 9075/1\" { publisher: \"ISO\", legacy_stage: \"FPDAM\", legacy_base_number: \"9075\", legacy_base_part: \"1\" }\n example \"ISO/IEC FDAM 1 14496-12:2004\" { publisher: \"ISO\", legacy_stage: \"FDAM\", legacy_supplement_number: \"1\", legacy_base_number_with_part: \"14496-12\", date: \"2004\" }\n example \"IEC 60038-2/DAM 2.3:2022\" { publisher: \"IEC\", number_with_part: \"60038-2\", supp_type_with_stage: \"DAM\", supp_number_with_part: \"2\", supp_stage_iteration: \"3\", supp_date: \"2022\" }\n example \"IEC/FDAM 60038-2.3\" { publisher: \"IEC\", legacy_stage: \"FDAM\", legacy_base_number_with_part: \"60038-2\", stage_iteration: \"3\" }\n example \"IEC 60038-2.3\" { publisher: \"IEC\", number_with_part: \"60038-2\", stage_iteration: \"3\" }\n }\n}\n","source_hash":"abe788a467e99d68b67e2a41ca6d69f5f6cfb936c2d6bed793d13cce15405217","unicode_tables":"onigmo (Ruby 3.4.8)","compiler_version":"1.3.126","edition":2,"semantics_hash":"sha256:34e28a8e5676b84cd51533bc165a1716ecf0bf0bc90e1db282d0defbc7828df2","checksum":"sha256:e8fcac2f434cdc6712b1efafe9d3cc3ce9ef4037cf6dfe44eb5255417677e828"}
|
data/lib/pubid/iec/CLAUDE.md
CHANGED
|
@@ -45,6 +45,10 @@ These notes were part of the root `CLAUDE.md`. Read them before you change `lib/
|
|
|
45
45
|
**Two grammar halves.** The DAM-family prefix faces (`DAM`/`PDAM`/`FDAM`/`FPDAM`, spelled literally in the rule so the typed_stages table stays put for them) raised on main; the new `legacy_supplement` rule in `pubid-grammar` captures `legacy_stage`, the optional `legacy_supplement_number` (N before the base), and the base designation — including the old slash-part spelling (`FPDAM 9075/1` = base 9075, part 1; captured as `legacy_base_number` + `legacy_base_part`, and ordered BEFORE the dash-part alternative because `number_with_part` also matches a bare "9075", which would have left the "/1" dangling). The rule sits ahead of `standalone_supplement` in the ordered choice so both the slash and space faces reach it, and its date rides with the designation. PDAM/FPDAM joined the `iec_typed_stages` table and `Amendment::TYPED_STAGES` (stage codes mirror ISO's entries: PDAM at the CD level, FPDAM at the FDIS level; the LEAD harmonized codes are the circulation slots 30.20/50.20 — ISO's 30.00/50.00 are CDAM's and FDAM's (type, leading code) URN keys). The non-DAM draft faces (DCOR, FDCOR, CDISH, DISH, and any typed standalone with a designation-shaped token) already parsed; they are corrected by `ensure_base`, so the two paths converge on one decode. **The discriminator between a legacy face and a true standalone is the PART:** a designation token (`60038-1`, `9075/1`) moves whole onto the base; a bare ordinal (`IEC/AMD 1:2017`) is the supplement's own number and keeps the synthetic self-base (`IEC Amd 1-1:2017`, unchanged). Under the JTC1 reading a bare number after a DAM-family token is a base designation (`IEC FDAM 60038` → `IEC 60038/FDAM 1`), not a self-base mangle — that residue from the #693 bullet is gone.
|
|
46
46
|
**Measured by the replay gate, not the suite alone:** over all 26,838 full-fixture inputs, `to_s`/`to_urn`/`to_mr_string`/`to_hash`/class/`root.number` are byte-identical to the `main` baseline EXCEPT exactly the 6 #693-era standalone rows (both faces of FDAM/DCOR/DISH `60038-1`), which re-resolve to the corrected identities; 0 inputs stopped parsing; the prefix faces go raise→parse (12,491 full entries → 12,359 pass, fail steady at 132). #693's equality invariant (`parse == from_hash(to_hash)`) holds on every corrected identity. Locked by `spec/pubid/iec/standalone_supplement_round_trip_spec.rb` (rewritten: legacy faces decode and equal their modern parses, the self-base standalone keeps its form), `stage_separator_spec.rb`, `amendment_spec.rb`, `corrigendum_spec.rb`, `interpretation_sheet_spec.rb`, and the pass fixtures re-pinned by `validation:classify`. **Remaining gaps, deliberately open:** the dotted on-base `/Amd.1` spelling still raises in the IEC flavor (ISO accepts it), and the stamped prefix faces (`ISO/IEC FPDAM 10373-6/Amd 9:2001`, `ISO/IEC PDAM 9541-1/Amd.4`, `ISO/IEC FDAM 19776-2:2005/Am1:2006`, `ISO/IEC PDAM TR 9573-11/Amd.1`) stay raising — their on-base amendment stamps need the dotted/ISO stamp spellings the IEC flavor does not carry (gap 4 of the draft); the ISO-side agent owns that study.
|
|
47
47
|
|
|
48
|
+
- **The dotted supplement sub-number survives (issue #725 — the gap the #724 wave recorded).** The ballot faces print it — `/DAM 2.3:2022`, `/DCOR 1.3` on the base, and the dotted base designation `60038-2.3` in the ballot-prefix faces — and the ISO flavor has always kept its dot (its declared field is `stage_iteration`, a `Components::Iteration`; the issue's "`sub_number`" label is prose for this facet). The IEC losses were NOT grammar-shaped: the raw bound hash already carried `supp_stage_iteration`/`stage_iteration` on every dotted shape — they were **build-side and render-side**: `Builder#build_supplement` dropped the peeled `stage_iteration` (so `/DAM 2.3:2022` silently renumbered to `DAM 2`), `ensure_base`'s designation-move left the dot on the supplement (so `IEC/FDAM 60038-2.3` held it as a facet of the implied FDAM 1 instead of the base), and both `Base#number_portion` and `render_supplement_attached` dropped the facet at print time (so even the losslessly-parsed `IEC 60038-2.3` rendered as its sub-number-less twin). The facet rides the layer whose designation carries the dot: the SUPPLEMENT for the on-base draft faces, the BASE for the ballot-prefix faces and the plain dotted base (`parse("IEC/FDAM 60038-2.3") == parse("IEC 60038-2.3/FDAM 1")` still holds — the legacy rule now claims the dotted designation itself, so the ballot face and the on-base face are the same identifier). The grammar change is width only: the three dot-sites (base `stage_iteration`, `supp_stage_iteration`, `supp2_stage_iteration`) admit `1*digit` instead of one digit (`\.\d+`; nothing downstream starts with a digit, so no guard), baked at the CI-pinned compiler. **Surfaces:** `to_s` renders the dot on both layers (`/DAM 2.3:2022`, `IEC 60038-2.3`), `to_hash` serializes it (the flat `stage_iteration` scalar), the pubid-scheme URN already had the `iter-` atom, and the official URN rides the dotted number in the supplement's number slot (`amd:2.3:2022`; ISO keeps the facet in its version atom — this scheme has none, so the number slot carries the designation as printed). The MR string stays iteration-less, matching ISO (`iso.10646_amd.2.2022` is also iteration-less). **Unattested shapes deliberately stay raising:** a dotted ballot NUMBER in the prefix faces (`IEC/DCOR 1.3 60038-2`, `ISO/IEC PDAM 2.3 10646:2012`) — no source prints it, so no identity is guessed for it. **Measured by the replay gate:** over all 26,861 full-fixture inputs, `to_s`/`to_hash`/`to_urn`/`to_mr_string`/class are byte-identical to the 2.0.30 baseline — 0 diffs (no corpus row carried the facet). Locked by `spec/pubid/iec/dot_subnumber_spec.rb` (the on-base, ballot-prefix, plain-base and raising rows) and the testsuite corpus round (pass rows in `pass/`, never `full/`). (hand-off: iec-dot-subnumber.)
|
|
49
|
+
|
|
50
|
+
- **The standalone no-part dotted face is rejected at parse (issue #727).** `IEC/AMD 1.2:2017` parsed and then LOST the dot at render: `render_supplement_standalone` prints the base number and the supplement's own number only, so the stored `stage_iteration` was dropped and `parse(to_s) != parse` — the URN (`amd:1.2:2017`) and `to_hash` carried a facet the canonical face cannot print. No IEC source prints a no-part standalone face with a dotted number (the facet is attested only on the on-base draft faces; 0 rows in the gem fixtures, the testsuite ledger or `relaton-data-iec`), so the shape is **rejected at parse** — the #726 ruling for unattested dotted shapes — rather than built unrenderable. **The crash the issue reported does not reproduce on the Ruby side, and that finding shaped the fix**: the Ruby renderer nil-guards `copublishers` (`copublishers&.any?`) and the parse path always materializes the publisher (the attribute default fills it; the only `publisher_portion` crash needs a hand-set `publisher = nil`, unreachable from parse and from_hash — verified at 2.0.29, the released 2.0.31 and main over a ~40-shape probe matrix); the crash in the issue came from pubid-ts#184's note, where the TS `publisherPortion` reads `copublishers` off a supplement whose table does not materialize the empty collection. So the nil-guard branch of the issue's suggested direction had nothing to guard, and the live Ruby defect was the lossy render on the same face. **The check is the SHAPE, not a grammar route**: `Identifier.parse` walks the built object's `base` chain after `ensure_base` and raises `ParseError` (with `input:`/`flavor:` set, `parse_failure_cause` nil — the synthetic-raise shape) when a `SupplementIdentifier` layer holds both a `stage_iteration` and a synthetic self-base. One condition covers all three parse routes — the `supp_*` standalone branch (`IEC/AMD 1.2:2017`), the publisher-less plain route (`AMD 1.2:2017`, bound as `type_with_stage` + `stage_iteration`, no `supp_` keys) and a dotted layer under an undotted second supplement (`IEC/AMD 1.2:2017/COR 1:2018`) — and none of the neighbours that keep the dot on a printable layer: the single-document draft faces (`IEC CD 1.2:2017`, `IEC/DTR 1.2:2017` — not supplements, the dot rides the base and `parse(to_s) == parse` holds), the DAM-family decodes (`IEC/DAM 1.2` → `IEC 1.2/DAM 1`, dot on the base designation) and the on-base faces (a real base, `synthetic_base?` false). The undotted standalone faces keep parsing with their #693 residue renders (`IEC/AMD 1:2017` → `IEC Amd 1-1:2017`). BSI's delegation (`bsi/single_identifier.rb` → `Pubid::Iec.parse`) and `Pubid.parse` routing raise through the same entry. **`from_hash` deliberately still deserializes the shape** (rendering the undotted face as it always did): parse can no longer produce the hash, no stored row carries it, and rejecting deserialization would hard-break a consumer cache holding a pre-#727 parse — the residue is pinned, not chased. **No corpus round follows** (the shape is unattested; nothing moves to `pass/`). Locked by the new blocks in `spec/pubid/iec/dot_subnumber_spec.rb`: the 11 raising rows with the message, the input/flavor/cause shape of the synthetic raise, the keep-parsing rows (render + `from_hash(to_hash) ==` + re-parse idempotence), the undotted residue rows, and the deserialization residue. (hand-off: iec-standalone-dotted-reject.)
|
|
51
|
+
|
|
48
52
|
## pubid-scheme URN (issue #670; gaps closed by #687)
|
|
49
53
|
|
|
50
54
|
`lib/pubid/iec/pubid_urn_schema.rb` completes the partial schema the IEEE
|
data/lib/pubid/iec/builder.rb
CHANGED
|
@@ -83,6 +83,10 @@ module Pubid
|
|
|
83
83
|
undated_marker: :undated_marker,
|
|
84
84
|
edition: :edition,
|
|
85
85
|
languages: :languages,
|
|
86
|
+
# The designation's dotted sub-number is the base's
|
|
87
|
+
# ("IEC/FDAM 60038-2.3" — base 60038-2, stage iteration 3;
|
|
88
|
+
# pubid#725), the same facet the plain on-base parse carries.
|
|
89
|
+
stage_iteration: :stage_iteration,
|
|
86
90
|
}.each do |source, target|
|
|
87
91
|
base_hash[target] = parsed_hash[source] if parsed_hash[source]
|
|
88
92
|
end
|
|
@@ -414,6 +418,17 @@ module Pubid
|
|
|
414
418
|
supplement.date = Pubid::Components::Date.new(undated: true)
|
|
415
419
|
end
|
|
416
420
|
end
|
|
421
|
+
# The dotted sub-number of the supplement's own designation
|
|
422
|
+
# ("/DAM 2.3:2022" — number 2, stage iteration 3; pubid#725). The
|
|
423
|
+
# ISO flavor carries the same facet as a `stage_iteration`
|
|
424
|
+
# attribute, and the supplement layer's grammar capture
|
|
425
|
+
# (supp_stage_iteration) peels to `stage_iteration` through
|
|
426
|
+
# supplement_fields, so the supplement holds it the same way the
|
|
427
|
+
# ISO one does.
|
|
428
|
+
if supp_attrs.key?(:stage_iteration) && fields[:stage_iteration]
|
|
429
|
+
supplement.stage_iteration = cast(:stage_iteration,
|
|
430
|
+
fields[:stage_iteration])
|
|
431
|
+
end
|
|
417
432
|
if supp_attrs.key?(:edition) && fields[:edition]
|
|
418
433
|
supplement.edition = Pubid::Components::Edition.new(number: fields[:edition].to_s)
|
|
419
434
|
end
|
data/lib/pubid/iec/identifier.rb
CHANGED
|
@@ -275,9 +275,44 @@ module Pubid
|
|
|
275
275
|
# parse holds that layout before any reader runs
|
|
276
276
|
# (SupplementIdentifier#number).
|
|
277
277
|
id.ensure_base if id.is_a?(SupplementIdentifier)
|
|
278
|
+
reject_standalone_dotted_supplement(id, string)
|
|
278
279
|
id
|
|
279
280
|
end
|
|
280
281
|
|
|
282
|
+
# A supplement's OWN dotted sub-number has nowhere to print on the
|
|
283
|
+
# standalone (self-base) face: render_supplement_standalone prints the
|
|
284
|
+
# base number and the supplement number only, so the parsed dot was
|
|
285
|
+
# dropped at render and parse(to_s) != parse. No IEC source prints a
|
|
286
|
+
# no-part standalone face with a dotted sub-number — the facet is
|
|
287
|
+
# attested only on the on-base draft faces ("IEC 60038-2/DAM 2.3:2022")
|
|
288
|
+
# — so the shape is rejected here instead of being built unrenderable
|
|
289
|
+
# (pubid#727; the same ruling as the prefix-face dotted ballot numbers,
|
|
290
|
+
# which the grammar keeps raising). The walk reaches the dotted layer
|
|
291
|
+
# when it sits under an undotted second supplement ("/AMD 1.2:2017" as
|
|
292
|
+
# the base of a "/COR 1" chain). The single-document draft faces
|
|
293
|
+
# ("IEC CD 1.2:2017") and the DAM-family decodes ("IEC/DAM 1.2") keep
|
|
294
|
+
# their dot on a non-supplement layer and pass; the on-base faces have
|
|
295
|
+
# a real base, so synthetic_base? is false and they pass too.
|
|
296
|
+
STANDALONE_DOTTED_SUPPLEMENT_MESSAGE =
|
|
297
|
+
"the standalone no-part supplement face carries a dotted sub-number " \
|
|
298
|
+
"(e.g. \"IEC/AMD 1.2:2017\"): no IEC source prints one, and the " \
|
|
299
|
+
"standalone face has no layer to print the dot on, so the stored " \
|
|
300
|
+
"sub-number would be dropped at render — the dotted sub-number is " \
|
|
301
|
+
"attested only on the on-base draft forms"
|
|
302
|
+
|
|
303
|
+
def self.reject_standalone_dotted_supplement(id, input)
|
|
304
|
+
node = id
|
|
305
|
+
while node.is_a?(SupplementIdentifier)
|
|
306
|
+
if node.stage_iteration && node.synthetic_base?
|
|
307
|
+
raise Pubid::Errors::ParseError.new(
|
|
308
|
+
STANDALONE_DOTTED_SUPPLEMENT_MESSAGE, nil,
|
|
309
|
+
input: input, flavor: "iec"
|
|
310
|
+
)
|
|
311
|
+
end
|
|
312
|
+
node = node.base
|
|
313
|
+
end
|
|
314
|
+
end
|
|
315
|
+
|
|
281
316
|
# from_hash is the shared polymorphic dispatch on Pubid::Identifier.
|
|
282
317
|
# IEC_TYPE_MAP remains as the key_value polymorphic_map.
|
|
283
318
|
end
|
|
@@ -31,6 +31,12 @@ module Pubid
|
|
|
31
31
|
# Add subpart if present
|
|
32
32
|
result += "-#{subpart}" if subpart && subpart.to_s != ""
|
|
33
33
|
|
|
34
|
+
# The dotted sub-number rides the designation ("IEC 60038-2.3";
|
|
35
|
+
# pubid#725). SingleIdentifier#number_portion already prints it;
|
|
36
|
+
# this override dropped it, so the dotted base lost its sub-number
|
|
37
|
+
# at render while to_hash and the pubid URN carried it.
|
|
38
|
+
result += ".#{stage_iteration}" if stage_iteration
|
|
39
|
+
|
|
34
40
|
# Render the date (year[-month[-day]], or `--` for undated).
|
|
35
41
|
result += ":#{date.render}" if date
|
|
36
42
|
|
data/lib/pubid/iec/renderer.rb
CHANGED
|
@@ -120,6 +120,11 @@ module Pubid
|
|
|
120
120
|
|
|
121
121
|
abbr = id.typed_stage.abbr.first.upcase
|
|
122
122
|
supp_part = "/#{abbr}#{ballot_number_separator(id)}#{id.number}"
|
|
123
|
+
# The dotted sub-number rides the supplement's own designation,
|
|
124
|
+
# before the date ("/DAM 2.3:2022"; pubid#725) — the spaced ballot
|
|
125
|
+
# faces the #724 ruling named print it, and dropping it here would
|
|
126
|
+
# silently renumber the supplement again.
|
|
127
|
+
supp_part += ".#{id.stage_iteration.render(context:)}" if id.stage_iteration
|
|
123
128
|
supp_part += ":#{id.date.render(context:)}" if id.date
|
|
124
129
|
parts << supp_part
|
|
125
130
|
|
|
@@ -130,9 +130,18 @@ module Pubid
|
|
|
130
130
|
base.part = @part
|
|
131
131
|
base.subpart = @subpart if @subpart
|
|
132
132
|
base.date = date if date
|
|
133
|
+
# The designation's dotted sub-part moves with it (pubid#725):
|
|
134
|
+
# "IEC/FDAM 60038-2.3" is base 60038-2 with stage iteration 3 —
|
|
135
|
+
# the same identity the plain on-base parse of "IEC 60038-2.3"
|
|
136
|
+
# holds — not a facet of the implied FDAM 1. Only the
|
|
137
|
+
# designation-shaped layout (@part present) carries it; a true
|
|
138
|
+
# standalone's own iteration ("IEC/AMD 1.2:2017", no part) stays
|
|
139
|
+
# where it is.
|
|
140
|
+
base.stage_iteration = @stage_iteration if @stage_iteration
|
|
133
141
|
@number = LEGACY_STANDALONE_SUPPLEMENT_NUMBER
|
|
134
142
|
@part = nil
|
|
135
143
|
@date = nil
|
|
144
|
+
@stage_iteration = nil
|
|
136
145
|
else
|
|
137
146
|
base = SingleIdentifier.new
|
|
138
147
|
base.publisher = publisher
|
|
@@ -230,7 +230,17 @@ module Pubid
|
|
|
230
230
|
token = ADJUNCT_TOKENS[id.class.name.split("::").last]
|
|
231
231
|
return adjunct_slots(id.respond_to?(:base) ? id.base : nil) unless token
|
|
232
232
|
|
|
233
|
-
|
|
233
|
+
# The supplement's dotted sub-number rides its number slot
|
|
234
|
+
# ("amd:2.3:2022"; pubid#725): ISO's official URN keeps the facet
|
|
235
|
+
# through its version atom, and this scheme has no version slot,
|
|
236
|
+
# so the number slot carries the designation as printed. The
|
|
237
|
+
# parser rebuilds "/AMD2.3:2022" from the slot, which re-parses
|
|
238
|
+
# losslessly.
|
|
239
|
+
number = id.number.to_s
|
|
240
|
+
iteration = maybe_of(id, :stage_iteration)
|
|
241
|
+
number += ".#{iteration}" if iteration
|
|
242
|
+
|
|
243
|
+
[plus ? "plus" : "", token, number,
|
|
234
244
|
maybe_of(id, :date)&.render(context: URN_CONTEXT).to_s]
|
|
235
245
|
end
|
|
236
246
|
|
data/lib/pubid/version.rb
CHANGED