pubid 2.0.0.pre.alpha.14 → 2.0.0.pre.alpha.16

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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/data/parg/adobe.json +1 -0
  3. data/data/parg/aiee.parg +37 -0
  4. data/data/parg/amca.json +1 -0
  5. data/data/parg/ansi.json +1 -0
  6. data/data/parg/api.json +1 -0
  7. data/data/parg/ashrae.json +1 -0
  8. data/data/parg/asme.json +1 -0
  9. data/data/parg/astm.json +1 -0
  10. data/data/parg/bipm.json +1 -0
  11. data/data/parg/bsi.json +1 -0
  12. data/data/parg/calconnect.json +1 -0
  13. data/data/parg/ccsds.json +1 -0
  14. data/data/parg/cen_cenelec.json +1 -0
  15. data/data/parg/cen_cenelec.parg +42 -0
  16. data/data/parg/cie.json +1 -0
  17. data/data/parg/csa.json +1 -0
  18. data/data/parg/doi.json +1 -0
  19. data/data/parg/easc.json +1 -0
  20. data/data/parg/ecma.json +1 -0
  21. data/data/parg/etsi.json +1 -0
  22. data/data/parg/evs.json +1 -0
  23. data/data/parg/gb.json +1 -0
  24. data/data/parg/gost.json +1 -0
  25. data/data/parg/iala.json +1 -0
  26. data/data/parg/iana.json +1 -0
  27. data/data/parg/idf.parg +39 -0
  28. data/data/parg/iec.json +1 -0
  29. data/data/parg/ieee.json +1 -0
  30. data/data/parg/ietf.json +1 -0
  31. data/data/parg/ire.parg +39 -0
  32. data/data/parg/isbn.json +1 -0
  33. data/data/parg/iso.json +1 -0
  34. data/data/parg/itu.json +1 -0
  35. data/data/parg/jcgm.json +1 -0
  36. data/data/parg/jis.json +1 -0
  37. data/data/parg/nesc.parg +38 -0
  38. data/data/parg/nist.json +1 -0
  39. data/data/parg/oasis.json +1 -0
  40. data/data/parg/ogc.json +1 -0
  41. data/data/parg/oiml.json +1 -0
  42. data/data/parg/omg.json +1 -0
  43. data/data/parg/plateau.json +1 -0
  44. data/data/parg/sae.json +1 -0
  45. data/data/parg/tgpp.json +1 -0
  46. data/data/parg/un.json +1 -0
  47. data/data/parg/w3c.json +1 -0
  48. data/data/parg/xsf.json +1 -0
  49. data/lib/pubid/version.rb +1 -1
  50. data/lib/pubid.rb +12 -7
  51. metadata +49 -2
@@ -0,0 +1 @@
1
+ {"version":"0.1.0","grammar":"PubidNist","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":150}},{"Str":{"pattern":"NBS CIRC"}},{"Str":{"pattern":"NBS LCIRC"}},{"Str":{"pattern":"NBS.CIRC"}},{"Str":{"pattern":"NBS.LCIRC"}},{"Alternative":{"atoms":[1,2,3,4]}},{"Named":{"name":"series","atom":5}},{"Entity":{"atom":8}},{"Str":{"pattern":" "}},{"Entity":{"atom":10}},{"Str":{"pattern":"."}},{"Alternative":{"atoms":[7,9]}},{"Sequence":{"atoms":[6,11]}},{"Named":{"name":"circ_series","atom":12}},{"Str":{"pattern":"supp"}},{"Entity":{"atom":39}},{"Str":{"pattern":"January"}},{"Str":{"pattern":"February"}},{"Str":{"pattern":"September"}},{"Str":{"pattern":"November"}},{"Str":{"pattern":"December"}},{"Str":{"pattern":"October"}},{"Str":{"pattern":"August"}},{"Str":{"pattern":"June"}},{"Str":{"pattern":"March"}},{"Str":{"pattern":"April"}},{"Str":{"pattern":"July"}},{"Str":{"pattern":"May"}},{"Str":{"pattern":"Jan"}},{"Str":{"pattern":"Feb"}},{"Str":{"pattern":"Mar"}},{"Str":{"pattern":"Apr"}},{"Str":{"pattern":"Jun"}},{"Str":{"pattern":"Jul"}},{"Str":{"pattern":"Aug"}},{"Str":{"pattern":"Sep"}},{"Str":{"pattern":"Oct"}},{"Str":{"pattern":"Nov"}},{"Str":{"pattern":"Dec"}},{"Alternative":{"atoms":[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38]}},{"Named":{"name":"supp_month_start","atom":15}},{"Entity":{"atom":44}},{"Entity":{"atom":43}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":42,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"supp_year_start","atom":41}},{"Entity":{"atom":47}},{"Str":{"pattern":"-"}},{"Entity":{"atom":39}},{"Named":{"name":"supp_month_end","atom":48}},{"Entity":{"atom":44}},{"Named":{"name":"supp_year_end","atom":50}},{"Sequence":{"atoms":[40,45,46,49,51]}},{"Sequence":{"atoms":[14,52]}},{"Named":{"name":"supplement_date_range","atom":53}},{"Str":{"pattern":"supp"}},{"Str":{"pattern":"sup"}},{"Alternative":{"atoms":[55,56]}},{"Entity":{"atom":43}},{"Repetition":{"atom":58,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"supp_year_start","atom":59}},{"Entity":{"atom":47}},{"Entity":{"atom":43}},{"Repetition":{"atom":62,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"supp_year_end","atom":63}},{"Sequence":{"atoms":[60,61,64]}},{"Sequence":{"atoms":[57,65]}},{"Named":{"name":"supplement_date_range","atom":66}},{"Str":{"pattern":"supp"}},{"Str":{"pattern":"sup"}},{"Alternative":{"atoms":[68,69]}},{"Entity":{"atom":39}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[71,72]}},{"Named":{"name":"supplement_month_year","atom":73}},{"Entity":{"atom":44}},{"Named":{"name":"supp_number","atom":75}},{"Entity":{"atom":78}},{"Str":{"pattern":"/"}},{"Entity":{"atom":44}},{"Named":{"name":"supp_year","atom":79}},{"Sequence":{"atoms":[76,77,80]}},{"Named":{"name":"supplement_slash_year","atom":81}},{"Str":{"pattern":""}},{"Named":{"name":"supplement_empty","atom":83}},{"Alternative":{"atoms":[74,82,84]}},{"Repetition":{"atom":85,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[70,86]}},{"Entity":{"atom":44}},{"Named":{"name":"base_number","atom":88}},{"Str":{"pattern":"e"}},{"Entity":{"atom":44}},{"Named":{"name":"edition_number","atom":91}},{"Sequence":{"atoms":[90,92]}},{"Sequence":{"atoms":[89,93]}},{"Entity":{"atom":44}},{"Named":{"name":"base_number","atom":95}},{"Entity":{"atom":98}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Named":{"name":"revision_letter","atom":97}},{"Entity":{"atom":44}},{"Named":{"name":"revision_number","atom":100}},{"Sequence":{"atoms":[96,99,101]}},{"Entity":{"atom":44}},{"Named":{"name":"base_number","atom":103}},{"Entity":{"atom":106}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Named":{"name":"letter_suffix","atom":105}},{"Sequence":{"atoms":[104,107]}},{"Entity":{"atom":44}},{"Named":{"name":"simple_number","atom":109}},{"Alternative":{"atoms":[94,102,108,110]}},{"Named":{"name":"base_portion","atom":111}},{"Str":{"pattern":"supp"}},{"Str":{"pattern":"sup"}},{"Alternative":{"atoms":[113,114]}},{"Entity":{"atom":39}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[116,117]}},{"Named":{"name":"supplement_month_year","atom":118}},{"Entity":{"atom":47}},{"Entity":{"atom":44}},{"Named":{"name":"supp_number","atom":121}},{"Entity":{"atom":78}},{"Entity":{"atom":44}},{"Named":{"name":"supp_year","atom":124}},{"Sequence":{"atoms":[120,122,123,125]}},{"Named":{"name":"supplement_dash_slash_year","atom":126}},{"Entity":{"atom":47}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[128,129]}},{"Named":{"name":"supplement_year","atom":130}},{"Entity":{"atom":44}},{"Named":{"name":"supp_number","atom":132}},{"Entity":{"atom":78}},{"Entity":{"atom":44}},{"Named":{"name":"supp_year","atom":135}},{"Sequence":{"atoms":[133,134,136]}},{"Named":{"name":"supplement_slash_year","atom":137}},{"Alternative":{"atoms":[119,127,131,138]}},{"Repetition":{"atom":139,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[115,140]}},{"Entity":{"atom":78}},{"Entity":{"atom":44}},{"Named":{"name":"implicit_supplement_year","atom":143}},{"Sequence":{"atoms":[142,144]}},{"Named":{"name":"implicit_supplement","atom":145}},{"Alternative":{"atoms":[141,146]}},{"Sequence":{"atoms":[112,147]}},{"Alternative":{"atoms":[54,67,87,148]}},{"Sequence":{"atoms":[13,149]}},{"Entity":{"atom":183}},{"Entity":{"atom":153}},{"Str":{"pattern":"#"}},{"Repetition":{"atom":152,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":159}},{"Str":{"pattern":"NBS"}},{"Str":{"pattern":"NIST"}},{"Alternative":{"atoms":[156,157]}},{"Named":{"name":"publisher","atom":158}},{"Entity":{"atom":8}},{"Entity":{"atom":10}},{"Alternative":{"atoms":[160,161]}},{"Entity":{"atom":175}},{"Entity":{"atom":43}},{"Repetition":{"atom":164,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"date_year","atom":165}},{"Entity":{"atom":47}},{"Entity":{"atom":43}},{"Repetition":{"atom":168,"min":2,"max":2,"tag":"Repetition"}},{"Named":{"name":"date_month","atom":169}},{"Entity":{"atom":47}},{"Entity":{"atom":43}},{"Repetition":{"atom":172,"min":2,"max":2,"tag":"Repetition"}},{"Named":{"name":"date_day","atom":173}},{"Sequence":{"atoms":[166,167,170,171,174]}},{"Named":{"name":"dated_date","atom":163}},{"Entity":{"atom":8}},{"Entity":{"atom":10}},{"Alternative":{"atoms":[177,178]}},{"Entity":{"atom":43}},{"Repetition":{"atom":180,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"dated_seq","atom":181}},{"Sequence":{"atoms":[154,155,162,176,179,182]}},{"Entity":{"atom":1247}},{"Entity":{"atom":153}},{"Repetition":{"atom":185,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":159}},{"Entity":{"atom":10}},{"Entity":{"atom":225}},{"Str":{"pattern":"NCSTAR"}},{"Str":{"pattern":"CHIPS"}},{"Str":{"pattern":"NWIRP"}},{"Str":{"pattern":"CSWP"}},{"Str":{"pattern":"JPCRD"}},{"Str":{"pattern":"JRES"}},{"Str":{"pattern":"OWMWP"}},{"Str":{"pattern":"SIBS"}},{"Str":{"pattern":"TIBM"}},{"Str":{"pattern":"FIPS"}},{"Str":{"pattern":"MONO"}},{"Str":{"pattern":"AMS"}},{"Str":{"pattern":"VTS"}},{"Str":{"pattern":"BSS"}},{"Str":{"pattern":"BMS"}},{"Str":{"pattern":"GCR"}},{"Str":{"pattern":"CSM"}},{"Str":{"pattern":"CRPL"}},{"Str":{"pattern":"CIRC"}},{"Str":{"pattern":"TTB"}},{"Str":{"pattern":"EAB"}},{"Str":{"pattern":"HB"}},{"Str":{"pattern":"MP"}},{"Str":{"pattern":"NSRDS"}},{"Str":{"pattern":"RPT"}},{"Str":{"pattern":"LCIRC"}},{"Str":{"pattern":"AI"}},{"Str":{"pattern":"CS"}},{"Str":{"pattern":"IR"}},{"Str":{"pattern":"SP"}},{"Str":{"pattern":"TN"}},{"Str":{"pattern":"PC"}},{"Str":{"pattern":"BH"}},{"Str":{"pattern":"RB"}},{"Alternative":{"atoms":[190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223]}},{"Named":{"name":"series","atom":224}},{"Entity":{"atom":10}},{"Repetition":{"atom":226,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":905}},{"Entity":{"atom":468}},{"Entity":{"atom":43}},{"Repetition":{"atom":230,"min":2,"max":2,"tag":"Repetition"}},{"Named":{"name":"owmwp_month","atom":231}},{"Entity":{"atom":47}},{"Entity":{"atom":43}},{"Repetition":{"atom":234,"min":2,"max":2,"tag":"Repetition"}},{"Named":{"name":"owmwp_day","atom":235}},{"Entity":{"atom":47}},{"Entity":{"atom":43}},{"Repetition":{"atom":238,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"owmwp_year","atom":239}},{"Sequence":{"atoms":[232,233,236,237,240]}},{"Named":{"name":"owmwp_date_number","atom":241}},{"Str":{"pattern":"ADHOC"}},{"Str":{"pattern":"div"}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[244,245]}},{"Entity":{"atom":39}},{"Entity":{"atom":47}},{"Entity":{"atom":39}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[247,248,249,250]}},{"Entity":{"atom":44}},{"Named":{"name":"number","atom":252}},{"Str":{"pattern":"v"}},{"Entity":{"atom":44}},{"Named":{"name":"volume_suffix","atom":255}},{"Sequence":{"atoms":[254,256]}},{"Sequence":{"atoms":[253,257]}},{"Named":{"name":"number_with_volume","atom":258}},{"Entity":{"atom":44}},{"Entity":{"atom":47}},{"Entity":{"atom":273}},{"Str":{"pattern":"VIII"}},{"Str":{"pattern":"VII"}},{"Str":{"pattern":"VI"}},{"Str":{"pattern":"III"}},{"Str":{"pattern":"II"}},{"Str":{"pattern":"IX"}},{"Str":{"pattern":"IV"}},{"Str":{"pattern":"X"}},{"Str":{"pattern":"V"}},{"Str":{"pattern":"I"}},{"Alternative":{"atoms":[263,264,265,266,267,268,269,270,271,272]}},{"Entity":{"atom":47}},{"Entity":{"atom":44}},{"Entity":{"atom":10}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[276,277]}},{"Repetition":{"atom":278,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[260,261,262,274,275,279]}},{"Entity":{"atom":44}},{"Str":{"pattern":"GB"}},{"Entity":{"atom":47}},{"Entity":{"atom":44}},{"Entity":{"atom":106}},{"Repetition":{"atom":285,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[281,282,283,284,286]}},{"Entity":{"atom":44}},{"Entity":{"atom":106}},{"Entity":{"atom":47}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[288,289,290,291]}},{"Str":{"pattern":"v"}},{"Entity":{"atom":44}},{"Named":{"name":"volume_number","atom":294}},{"Sequence":{"atoms":[293,295]}},{"Str":{"pattern":"n"}},{"Entity":{"atom":44}},{"Named":{"name":"issue_number","atom":298}},{"Sequence":{"atoms":[297,299]}},{"Sequence":{"atoms":[296,300]}},{"Entity":{"atom":44}},{"Str":{"pattern":"supprev"}},{"Sequence":{"atoms":[302,303]}},{"Entity":{"atom":44}},{"Str":{"pattern":"e"}},{"Entity":{"atom":44}},{"Str":{"pattern":"rev"}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[305,306,307,308,309]}},{"Entity":{"atom":44}},{"Named":{"name":"number","atom":311}},{"Str":{"pattern":"rv"}},{"Entity":{"atom":44}},{"Named":{"name":"revision_year","atom":314}},{"Sequence":{"atoms":[313,315]}},{"Sequence":{"atoms":[312,316]}},{"Named":{"name":"number_with_rev_year","atom":317}},{"Entity":{"atom":44}},{"Str":{"pattern":"e"}},{"Entity":{"atom":44}},{"Str":{"pattern":"rev"}},{"Entity":{"atom":39}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[319,320,321,322,323,324]}},{"Entity":{"atom":44}},{"Str":{"pattern":"e"}},{"Entity":{"atom":44}},{"Str":{"pattern":"supp"}},{"Entity":{"atom":44}},{"Repetition":{"atom":330,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[326,327,328,329,331]}},{"Str":{"pattern":"e"}},{"Entity":{"atom":44}},{"Str":{"pattern":"rev"}},{"Entity":{"atom":39}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[333,334,335,336,337]}},{"Str":{"pattern":"e"}},{"Entity":{"atom":44}},{"Str":{"pattern":"supp"}},{"Entity":{"atom":44}},{"Repetition":{"atom":342,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[339,340,341,343]}},{"Entity":{"atom":44}},{"Str":{"pattern":"e"}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[345,346,347]}},{"Str":{"pattern":"e"}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[349,350]}},{"Entity":{"atom":47}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[352,353]}},{"Lookahead":{"atom":354,"positive":false}},{"Sequence":{"atoms":[351,355]}},{"Entity":{"atom":98}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[357,358]}},{"Entity":{"atom":44}},{"Str":{"pattern":"supp"}},{"Entity":{"atom":39}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[360,361,362,363]}},{"Entity":{"atom":44}},{"Str":{"pattern":"supp"}},{"Entity":{"atom":44}},{"Repetition":{"atom":367,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[365,366,368]}},{"Entity":{"atom":44}},{"Str":{"pattern":"sup"}},{"Entity":{"atom":39}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[370,371,372,373]}},{"Entity":{"atom":44}},{"Str":{"pattern":"sup"}},{"Sequence":{"atoms":[375,376]}},{"Entity":{"atom":44}},{"Named":{"name":"number","atom":378}},{"Str":{"pattern":"sp"}},{"Str":{"pattern":"pt"}},{"Str":{"pattern":"es"}},{"Str":{"pattern":"SP"}},{"Str":{"pattern":"PT"}},{"Str":{"pattern":"ES"}},{"Alternative":{"atoms":[380,381,382,383,384,385]}},{"Named":{"name":"language_code","atom":386}},{"Sequence":{"atoms":[379,387]}},{"Entity":{"atom":106}},{"Lookahead":{"atom":389,"positive":false}},{"Entity":{"atom":43}},{"Lookahead":{"atom":391,"positive":false}},{"Entity":{"atom":396}},{"Entity":{"atom":106}},{"Entity":{"atom":98}},{"Alternative":{"atoms":[394,395]}},{"Lookahead":{"atom":393,"positive":false}},{"Entity":{"atom":47}},{"Lookahead":{"atom":398,"positive":false}},{"Entity":{"atom":10}},{"Lookahead":{"atom":400,"positive":false}},{"Sequence":{"atoms":[390,392,397,399,401]}},{"Sequence":{"atoms":[388,402]}},{"Entity":{"atom":44}},{"Named":{"name":"number","atom":404}},{"Str":{"pattern":"pt"}},{"Entity":{"atom":44}},{"Named":{"name":"part_number","atom":407}},{"Sequence":{"atoms":[406,408]}},{"Str":{"pattern":"e"}},{"Entity":{"atom":44}},{"Named":{"name":"edition_year","atom":411}},{"Sequence":{"atoms":[410,412]}},{"Sequence":{"atoms":[405,409,413]}},{"Entity":{"atom":44}},{"Named":{"name":"number","atom":415}},{"Str":{"pattern":"("}},{"Str":{"pattern":"SP"}},{"Str":{"pattern":"PT"}},{"Str":{"pattern":"ES"}},{"Alternative":{"atoms":[418,419,420]}},{"Named":{"name":"language_code","atom":421}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[417,422,423]}},{"Sequence":{"atoms":[416,424]}},{"Entity":{"atom":44}},{"Named":{"name":"number","atom":426}},{"Entity":{"atom":106}},{"Named":{"name":"letter_suffix","atom":428}},{"Str":{"pattern":"r"}},{"Entity":{"atom":44}},{"Named":{"name":"revision_id","atom":431}},{"Sequence":{"atoms":[430,432]}},{"Sequence":{"atoms":[427,429,433]}},{"Named":{"name":"number_with_letter_revision","atom":434}},{"Entity":{"atom":466}},{"Entity":{"atom":44}},{"Entity":{"atom":461}},{"Str":{"pattern":"U"}},{"Entity":{"atom":98}},{"Sequence":{"atoms":[439,440]}},{"Entity":{"atom":396}},{"Str":{"pattern":"ec"}},{"Str":{"pattern":"ndex"}},{"Str":{"pattern":"nsert"}},{"Str":{"pattern":"rrata"}},{"Str":{"pattern":"raft"}},{"Str":{"pattern":"pp"}},{"Str":{"pattern":"s"}},{"Str":{"pattern":"t"}},{"Str":{"pattern":"hi"}},{"Str":{"pattern":"iet"}},{"Str":{"pattern":"ort"}},{"Str":{"pattern":"r"}},{"Str":{"pattern":"p"}},{"Alternative":{"atoms":[443,444,445,446,447,448,449,450,451,452,453,454,455]}},{"Lookahead":{"atom":456,"positive":false}},{"Entity":{"atom":44}},{"Repetition":{"atom":458,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[442,457,459]}},{"Alternative":{"atoms":[441,460]}},{"Entity":{"atom":43}},{"Lookahead":{"atom":462,"positive":false}},{"Sequence":{"atoms":[438,463]}},{"Repetition":{"atom":464,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[437,465]}},{"Alternative":{"atoms":[242,243,246,251,259,280,287,292,301,304,310,318,325,332,338,344,348,356,359,364,369,374,377,403,414,425,435,436]}},{"Named":{"name":"first_number","atom":467}},{"Str":{"pattern":"_"}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[469,470]}},{"Named":{"name":"edition_year","atom":471}},{"Entity":{"atom":47}},{"Entity":{"atom":39}},{"Named":{"name":"edition_month","atom":474}},{"Entity":{"atom":44}},{"Named":{"name":"edition_year","atom":476}},{"Sequence":{"atoms":[473,475,477]}},{"Entity":{"atom":47}},{"Entity":{"atom":44}},{"Named":{"name":"fips_part","atom":480}},{"Entity":{"atom":47}},{"Entity":{"atom":39}},{"Named":{"name":"edition_month","atom":483}},{"Entity":{"atom":44}},{"Named":{"name":"edition_day","atom":485}},{"Entity":{"atom":78}},{"Entity":{"atom":44}},{"Named":{"name":"edition_year","atom":488}},{"Sequence":{"atoms":[479,481,482,484,486,487,489]}},{"Entity":{"atom":47}},{"Entity":{"atom":44}},{"Named":{"name":"decimal_base","atom":492}},{"Entity":{"atom":10}},{"Entity":{"atom":44}},{"Named":{"name":"decimal_suffix","atom":495}},{"Sequence":{"atoms":[494,496]}},{"Sequence":{"atoms":[491,493,497]}},{"Named":{"name":"decimal_number","atom":498}},{"Entity":{"atom":47}},{"Entity":{"atom":44}},{"Named":{"name":"letter_base","atom":501}},{"Str":{"pattern":"U"}},{"Entity":{"atom":98}},{"Named":{"name":"letter_suffix_extra","atom":504}},{"Sequence":{"atoms":[503,505]}},{"Entity":{"atom":106}},{"Named":{"name":"letter_suffix","atom":507}},{"Alternative":{"atoms":[506,508]}},{"Sequence":{"atoms":[500,502,509]}},{"Named":{"name":"letter_number","atom":510}},{"Entity":{"atom":47}},{"Entity":{"atom":44}},{"Named":{"name":"letter_base","atom":513}},{"Entity":{"atom":47}},{"Entity":{"atom":39}},{"Lookahead":{"atom":516,"positive":false}},{"Entity":{"atom":106}},{"Named":{"name":"letter_suffix","atom":518}},{"Entity":{"atom":396}},{"Entity":{"atom":43}},{"Alternative":{"atoms":[520,521]}},{"Lookahead":{"atom":522,"positive":false}},{"Sequence":{"atoms":[512,514,515,517,519,523]}},{"Named":{"name":"letter_number","atom":524}},{"Entity":{"atom":47}},{"Entity":{"atom":43}},{"Repetition":{"atom":527,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"dash_year","atom":528}},{"Entity":{"atom":8}},{"Lookahead":{"atom":530,"positive":false}},{"Entity":{"atom":10}},{"Lookahead":{"atom":532,"positive":false}},{"Entity":{"atom":567}},{"Str":{"pattern":" Part. "}},{"Str":{"pattern":" Part."}},{"Str":{"pattern":" Part "}},{"Alternative":{"atoms":[535,536,537]}},{"Entity":{"atom":8}},{"Repetition":{"atom":539,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"pt"}},{"Str":{"pattern":"p"}},{"Str":{"pattern":"P"}},{"Alternative":{"atoms":[541,542,543]}},{"Sequence":{"atoms":[540,544]}},{"Alternative":{"atoms":[538,545]}},{"Entity":{"atom":44}},{"Entity":{"atom":8}},{"Repetition":{"atom":548,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"r"}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[549,550,551]}},{"Repetition":{"atom":552,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"add"}},{"Str":{"pattern":"e"}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[555,556]}},{"Repetition":{"atom":557,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[554,558]}},{"Repetition":{"atom":559,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":47}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[561,562]}},{"Repetition":{"atom":563,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[547,553,560,564]}},{"Named":{"name":"part","atom":565}},{"Sequence":{"atoms":[546,566]}},{"Lookahead":{"atom":534,"positive":false}},{"Entity":{"atom":578}},{"Entity":{"atom":44}},{"Str":{"pattern":"_"}},{"Entity":{"atom":44}},{"Entity":{"atom":47}},{"Entity":{"atom":44}},{"Entity":{"atom":106}},{"Repetition":{"atom":575,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[570,571,572,573,574,576]}},{"Named":{"name":"crpl_range","atom":577}},{"Lookahead":{"atom":569,"positive":false}},{"Entity":{"atom":677}},{"Entity":{"atom":39}},{"Lookahead":{"atom":581,"positive":false}},{"Str":{"pattern":"draft"}},{"Lookahead":{"atom":583,"positive":false}},{"Entity":{"atom":44}},{"Named":{"name":"number_only","atom":585}},{"Str":{"pattern":"r"}},{"Entity":{"atom":396}},{"Named":{"name":"letter","atom":588}},{"Sequence":{"atoms":[586,587,589]}},{"Named":{"name":"revision_letter","atom":590}},{"Sequence":{"atoms":[582,584,591]}},{"Entity":{"atom":44}},{"Str":{"pattern":"supp"}},{"Str":{"pattern":"sup"}},{"Alternative":{"atoms":[594,595]}},{"Entity":{"atom":43}},{"Lookahead":{"atom":597,"positive":false}},{"Entity":{"atom":396}},{"Lookahead":{"atom":599,"positive":false}},{"Sequence":{"atoms":[598,600]}},{"Sequence":{"atoms":[593,596,601]}},{"Entity":{"atom":44}},{"Str":{"pattern":"r"}},{"Entity":{"atom":44}},{"Str":{"pattern":"U"}},{"Entity":{"atom":98}},{"Sequence":{"atoms":[606,607]}},{"Sequence":{"atoms":[603,604,605,608]}},{"Entity":{"atom":44}},{"Str":{"pattern":"r"}},{"Entity":{"atom":44}},{"Entity":{"atom":396}},{"Sequence":{"atoms":[610,611,612,613]}},{"Entity":{"atom":44}},{"Named":{"name":"number_only","atom":615}},{"Str":{"pattern":"r"}},{"Entity":{"atom":44}},{"Named":{"name":"edition_id","atom":618}},{"Sequence":{"atoms":[617,619]}},{"Sequence":{"atoms":[616,620]}},{"Entity":{"atom":44}},{"Str":{"pattern":"_"}},{"Entity":{"atom":44}},{"Entity":{"atom":47}},{"Entity":{"atom":44}},{"Entity":{"atom":106}},{"Repetition":{"atom":627,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[622,623,624,625,626,628]}},{"Entity":{"atom":98}},{"Entity":{"atom":47}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[630,631,632]}},{"Entity":{"atom":44}},{"Str":{"pattern":"pt"}},{"Entity":{"atom":44}},{"Entity":{"atom":47}},{"Lookahead":{"atom":637,"positive":false}},{"Sequence":{"atoms":[634,635,636,638]}},{"Entity":{"atom":44}},{"Entity":{"atom":106}},{"Sequence":{"atoms":[640,641]}},{"Entity":{"atom":44}},{"Named":{"name":"number_only","atom":643}},{"Str":{"pattern":"r"}},{"Entity":{"atom":396}},{"Sequence":{"atoms":[644,645,646]}},{"Named":{"name":"revision_letter","atom":647}},{"Str":{"pattern":"r"}},{"Entity":{"atom":396}},{"Sequence":{"atoms":[649,650]}},{"Named":{"name":"revision_letter_suffix","atom":651}},{"Str":{"pattern":"r"}},{"Entity":{"atom":44}},{"Named":{"name":"edition_id","atom":654}},{"Sequence":{"atoms":[653,655]}},{"Named":{"name":"revision_simple","atom":656}},{"Str":{"pattern":"NCNR"}},{"Str":{"pattern":"PERMIS"}},{"Str":{"pattern":"BFRL"}},{"Entity":{"atom":106}},{"Repetition":{"atom":661,"min":1,"max":3,"tag":"Repetition"}},{"Entity":{"atom":466}},{"Entity":{"atom":47}},{"Entity":{"atom":39}},{"Entity":{"atom":44}},{"Entity":{"atom":78}},{"Sequence":{"atoms":[664,665,666,667]}},{"Lookahead":{"atom":668,"positive":false}},{"Sequence":{"atoms":[663,669]}},{"Entity":{"atom":98}},{"Entity":{"atom":43}},{"Lookahead":{"atom":672,"positive":false}},{"Sequence":{"atoms":[671,673]}},{"Alternative":{"atoms":[670,674]}},{"Alternative":{"atoms":[592,602,609,614,621,629,633,639,642,648,652,657,658,659,660,662,675]}},{"Named":{"name":"second_number","atom":676}},{"Lookahead":{"atom":580,"positive":false}},{"Entity":{"atom":47}},{"Lookahead":{"atom":679,"positive":false}},{"Sequence":{"atoms":[531,533,568,579,678,680]}},{"Sequence":{"atoms":[526,529,681]}},{"Named":{"name":"edition_dash_year","atom":682}},{"Entity":{"atom":47}},{"Entity":{"atom":677}},{"Entity":{"atom":47}},{"Entity":{"atom":43}},{"Repetition":{"atom":687,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"dash_year","atom":688}},{"Entity":{"atom":8}},{"Lookahead":{"atom":690,"positive":false}},{"Entity":{"atom":10}},{"Lookahead":{"atom":692,"positive":false}},{"Entity":{"atom":567}},{"Lookahead":{"atom":694,"positive":false}},{"Entity":{"atom":578}},{"Lookahead":{"atom":696,"positive":false}},{"Entity":{"atom":764}},{"Entity":{"atom":8}},{"Repetition":{"atom":699,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"r"}},{"Str":{"pattern":"rev"}},{"Alternative":{"atoms":[701,702]}},{"Entity":{"atom":8}},{"Repetition":{"atom":704,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":39}},{"Named":{"name":"revision_month","atom":706}},{"Entity":{"atom":44}},{"Named":{"name":"revision_year","atom":708}},{"Sequence":{"atoms":[700,703,705,707,709]}},{"Entity":{"atom":8}},{"Repetition":{"atom":711,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"r"}},{"Str":{"pattern":"rev"}},{"Alternative":{"atoms":[713,714]}},{"Entity":{"atom":44}},{"Named":{"name":"revision","atom":716}},{"Entity":{"atom":78}},{"Entity":{"atom":44}},{"Named":{"name":"revision_year","atom":719}},{"Sequence":{"atoms":[712,715,717,718,720]}},{"Str":{"pattern":" r"}},{"Str":{"pattern":"r"}},{"Alternative":{"atoms":[722,723]}},{"Entity":{"atom":8}},{"Repetition":{"atom":725,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":43}},{"Repetition":{"atom":727,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"revision_year","atom":728}},{"Sequence":{"atoms":[724,726,729]}},{"Str":{"pattern":"rev"}},{"Entity":{"atom":8}},{"Repetition":{"atom":732,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":44}},{"Named":{"name":"revision_year","atom":734}},{"Sequence":{"atoms":[731,733,735]}},{"Str":{"pattern":" rev "}},{"Str":{"pattern":"rev"}},{"Str":{"pattern":" r"}},{"Str":{"pattern":"r"}},{"Str":{"pattern":" Rev. "}},{"Str":{"pattern":" Rev."}},{"Str":{"pattern":" Revision (r)"}},{"Alternative":{"atoms":[737,738,739,740,741,742,743]}},{"Named":{"name":"revision_prefix","atom":744}},{"Entity":{"atom":8}},{"Repetition":{"atom":746,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":44}},{"Entity":{"atom":396}},{"Repetition":{"atom":749,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[748,750]}},{"Entity":{"atom":396}},{"Repetition":{"atom":752,"min":1,"max":null,"tag":"Repetition"}},{"Alternative":{"atoms":[751,753]}},{"Named":{"name":"revision_id","atom":754}},{"Sequence":{"atoms":[745,747,755]}},{"Named":{"name":"revision","atom":756}},{"Str":{"pattern":" r"}},{"Entity":{"atom":760}},{"Re":{"pattern":"[\\x01-\\u{10ffff}]"}},{"Lookahead":{"atom":759,"positive":false}},{"Sequence":{"atoms":[758,761]}},{"Named":{"name":"revision_standalone","atom":762}},{"Alternative":{"atoms":[710,721,730,736,757,763]}},{"Lookahead":{"atom":698,"positive":false}},{"Entity":{"atom":790}},{"Entity":{"atom":8}},{"Str":{"pattern":"(Draft)"}},{"Sequence":{"atoms":[767,768]}},{"Entity":{"atom":8}},{"Repetition":{"atom":770,"min":0,"max":1,"tag":"Maybe"}},{"Repetition":{"atom":771,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":47}},{"Str":{"pattern":"draft"}},{"Sequence":{"atoms":[773,774]}},{"Entity":{"atom":8}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[776,777]}},{"Entity":{"atom":44}},{"Alternative":{"atoms":[778,779]}},{"Repetition":{"atom":780,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[772,775,781]}},{"Entity":{"atom":788}},{"Entity":{"atom":8}},{"Entity":{"atom":44}},{"Str":{"pattern":"pd"}},{"Sequence":{"atoms":[784,785,786]}},{"Named":{"name":"public_draft","atom":787}},{"Alternative":{"atoms":[769,782,783]}},{"Named":{"name":"draft","atom":789}},{"Lookahead":{"atom":766,"positive":false}},{"Sequence":{"atoms":[691,693,695,697,765,791]}},{"Sequence":{"atoms":[684,685,686,689,792]}},{"Named":{"name":"second_number_edition_year","atom":793}},{"Entity":{"atom":47}},{"Entity":{"atom":677}},{"Entity":{"atom":47}},{"Entity":{"atom":39}},{"Named":{"name":"edition_month","atom":798}},{"Entity":{"atom":44}},{"Named":{"name":"edition_year","atom":800}},{"Entity":{"atom":8}},{"Lookahead":{"atom":802,"positive":false}},{"Entity":{"atom":10}},{"Lookahead":{"atom":804,"positive":false}},{"Entity":{"atom":567}},{"Lookahead":{"atom":806,"positive":false}},{"Entity":{"atom":578}},{"Lookahead":{"atom":808,"positive":false}},{"Entity":{"atom":872}},{"Entity":{"atom":8}},{"Repetition":{"atom":811,"min":0,"max":1,"tag":"Maybe"}},{"Repetition":{"atom":812,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"e"}},{"Entity":{"atom":44}},{"Named":{"name":"edition_id","atom":815}},{"Sequence":{"atoms":[814,816]}},{"Sequence":{"atoms":[813,817]}},{"Named":{"name":"edition_e","atom":818}},{"Entity":{"atom":8}},{"Str":{"pattern":"r"}},{"Entity":{"atom":44}},{"Named":{"name":"edition_id","atom":822}},{"Sequence":{"atoms":[821,823]}},{"Entity":{"atom":396}},{"Named":{"name":"edition_letter","atom":825}},{"Sequence":{"atoms":[820,824,826]}},{"Named":{"name":"edition_r_with_space_letter","atom":827}},{"Entity":{"atom":8}},{"Str":{"pattern":"r"}},{"Entity":{"atom":44}},{"Named":{"name":"edition_id","atom":831}},{"Sequence":{"atoms":[830,832]}},{"Sequence":{"atoms":[829,833]}},{"Named":{"name":"edition_r_with_space","atom":834}},{"Str":{"pattern":"r"}},{"Entity":{"atom":44}},{"Named":{"name":"edition_id","atom":837}},{"Sequence":{"atoms":[836,838]}},{"Entity":{"atom":396}},{"Named":{"name":"edition_letter","atom":840}},{"Sequence":{"atoms":[839,841]}},{"Named":{"name":"edition_r_no_space_letter","atom":842}},{"Str":{"pattern":"r"}},{"Entity":{"atom":44}},{"Named":{"name":"edition_id","atom":845}},{"Sequence":{"atoms":[844,846]}},{"Named":{"name":"edition_r_no_space","atom":847}},{"Entity":{"atom":8}},{"Repetition":{"atom":849,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"rev"}},{"Entity":{"atom":8}},{"Repetition":{"atom":852,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":44}},{"Named":{"name":"edition_id","atom":854}},{"Sequence":{"atoms":[850,851,853,855]}},{"Named":{"name":"edition_rev","atom":856}},{"Entity":{"atom":47}},{"Re":{"pattern":"[\\x31-\\x39]"}},{"Named":{"name":"edition_id","atom":859}},{"Sequence":{"atoms":[858,860]}},{"Entity":{"atom":43}},{"Lookahead":{"atom":862,"positive":false}},{"Sequence":{"atoms":[861,863]}},{"Named":{"name":"edition_historical","atom":864}},{"Entity":{"atom":47}},{"Entity":{"atom":43}},{"Repetition":{"atom":867,"min":4,"max":4,"tag":"Repetition"}},{"Sequence":{"atoms":[866,868]}},{"Named":{"name":"dash_year","atom":869}},{"Named":{"name":"edition_dash_year","atom":870}},{"Alternative":{"atoms":[819,828,835,843,848,857,865,871]}},{"Lookahead":{"atom":810,"positive":false}},{"Entity":{"atom":764}},{"Lookahead":{"atom":874,"positive":false}},{"Entity":{"atom":790}},{"Lookahead":{"atom":876,"positive":false}},{"Sequence":{"atoms":[803,805,807,809,873,875,877]}},{"Sequence":{"atoms":[795,796,797,799,801,878]}},{"Named":{"name":"fips_month_year_after_part","atom":879}},{"Entity":{"atom":47}},{"Entity":{"atom":677}},{"Entity":{"atom":47}},{"Entity":{"atom":44}},{"Entity":{"atom":106}},{"Repetition":{"atom":885,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[884,886]}},{"Named":{"name":"part_number","atom":887}},{"Sequence":{"atoms":[881,882,883,888]}},{"Entity":{"atom":10}},{"Entity":{"atom":677}},{"Sequence":{"atoms":[890,891]}},{"Entity":{"atom":47}},{"Entity":{"atom":578}},{"Entity":{"atom":677}},{"Alternative":{"atoms":[894,895]}},{"Entity":{"atom":872}},{"Repetition":{"atom":897,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[893,896,898]}},{"Entity":{"atom":47}},{"Entity":{"atom":872}},{"Sequence":{"atoms":[900,901]}},{"Alternative":{"atoms":[472,478,490,499,511,525,683,794,880,889,892,899,902]}},{"Repetition":{"atom":903,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[229,904]}},{"Repetition":{"atom":228,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"_"}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[907,908]}},{"Named":{"name":"edition_year","atom":909}},{"Repetition":{"atom":910,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":912,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":872}},{"Repetition":{"atom":914,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":946}},{"Str":{"pattern":"/Upd"}},{"Entity":{"atom":8}},{"Repetition":{"atom":918,"min":0,"max":1,"tag":"Maybe"}},{"Repetition":{"atom":919,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"/upd"}},{"Str":{"pattern":"-upd"}},{"Alternative":{"atoms":[921,922]}},{"Sequence":{"atoms":[920,923]}},{"Alternative":{"atoms":[917,924]}},{"Named":{"name":"update_prefix","atom":925}},{"Entity":{"atom":44}},{"Named":{"name":"update_number","atom":927}},{"Repetition":{"atom":928,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":47}},{"Entity":{"atom":43}},{"Repetition":{"atom":931,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"update_year","atom":932}},{"Entity":{"atom":43}},{"Repetition":{"atom":934,"min":2,"max":2,"tag":"Repetition"}},{"Named":{"name":"update_month","atom":935}},{"Sequence":{"atoms":[933,936]}},{"Entity":{"atom":43}},{"Repetition":{"atom":938,"min":4,"max":null,"tag":"Repetition"}},{"Named":{"name":"update_year","atom":939}},{"Alternative":{"atoms":[937,940]}},{"Sequence":{"atoms":[930,941]}},{"Repetition":{"atom":942,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[929,943]}},{"Named":{"name":"update","atom":944}},{"Sequence":{"atoms":[926,945]}},{"Repetition":{"atom":916,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":10}},{"Entity":{"atom":44}},{"Entity":{"atom":106}},{"Alternative":{"atoms":[949,950]}},{"Sequence":{"atoms":[948,951]}},{"Repetition":{"atom":952,"min":0,"max":3,"tag":"Repetition"}},{"Entity":{"atom":1243}},{"Entity":{"atom":986}},{"Entity":{"atom":8}},{"Entity":{"atom":10}},{"Alternative":{"atoms":[956,957]}},{"Entity":{"atom":973}},{"Str":{"pattern":"i"}},{"Str":{"pattern":"I"}},{"Str":{"pattern":"f"}},{"Str":{"pattern":"F"}},{"Str":{"pattern":"1"}},{"Str":{"pattern":"2"}},{"Str":{"pattern":"3"}},{"Str":{"pattern":"4"}},{"Str":{"pattern":"5"}},{"Str":{"pattern":"6"}},{"Str":{"pattern":"7"}},{"Str":{"pattern":"8"}},{"Str":{"pattern":"9"}},{"Alternative":{"atoms":[960,961,962,963,964,965,966,967,968,969,970,971,972]}},{"Named":{"name":"stage_id","atom":959}},{"Entity":{"atom":982}},{"Str":{"pattern":"pd"}},{"Str":{"pattern":"PD"}},{"Str":{"pattern":"wd"}},{"Str":{"pattern":"WD"}},{"Str":{"pattern":"prd"}},{"Str":{"pattern":"PRD"}},{"Alternative":{"atoms":[976,977,978,979,980,981]}},{"Named":{"name":"stage_type","atom":975}},{"Sequence":{"atoms":[974,983]}},{"Named":{"name":"stage","atom":984}},{"Sequence":{"atoms":[958,985]}},{"Entity":{"atom":992}},{"Str":{"pattern":"sec"}},{"Entity":{"atom":44}},{"Repetition":{"atom":989,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"section","atom":990}},{"Sequence":{"atoms":[988,991]}},{"Entity":{"atom":997}},{"Str":{"pattern":"index"}},{"Str":{"pattern":"indx"}},{"Alternative":{"atoms":[994,995]}},{"Named":{"name":"index","atom":996}},{"Entity":{"atom":1002}},{"Str":{"pattern":"insert"}},{"Str":{"pattern":"ins"}},{"Alternative":{"atoms":[999,1000]}},{"Named":{"name":"insert","atom":1001}},{"Entity":{"atom":1005}},{"Str":{"pattern":"app"}},{"Named":{"name":"appendix","atom":1004}},{"Entity":{"atom":788}},{"Entity":{"atom":872}},{"Entity":{"atom":1042}},{"Entity":{"atom":47}},{"Entity":{"atom":43}},{"Repetition":{"atom":1010,"min":4,"max":4,"tag":"Repetition"}},{"Sequence":{"atoms":[1009,1011]}},{"Named":{"name":"date_year","atom":1012}},{"Entity":{"atom":43}},{"Repetition":{"atom":1014,"min":2,"max":2,"tag":"Repetition"}},{"Named":{"name":"date_month","atom":1015}},{"Entity":{"atom":43}},{"Repetition":{"atom":1017,"min":2,"max":2,"tag":"Repetition"}},{"Named":{"name":"date_day","atom":1018}},{"Sequence":{"atoms":[1013,1016,1019]}},{"Entity":{"atom":47}},{"Entity":{"atom":43}},{"Repetition":{"atom":1022,"min":4,"max":4,"tag":"Repetition"}},{"Sequence":{"atoms":[1021,1023]}},{"Named":{"name":"date_year","atom":1024}},{"Entity":{"atom":43}},{"Repetition":{"atom":1026,"min":2,"max":2,"tag":"Repetition"}},{"Named":{"name":"date_month","atom":1027}},{"Sequence":{"atoms":[1025,1028]}},{"Entity":{"atom":47}},{"Entity":{"atom":43}},{"Repetition":{"atom":1031,"min":4,"max":4,"tag":"Repetition"}},{"Sequence":{"atoms":[1030,1032]}},{"Named":{"name":"date_year","atom":1033}},{"Entity":{"atom":47}},{"Entity":{"atom":39}},{"Named":{"name":"date_month","atom":1036}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[1035,1037,1038]}},{"Named":{"name":"date_year","atom":1039}},{"Alternative":{"atoms":[1020,1029,1034,1040]}},{"Named":{"name":"date","atom":1041}},{"Entity":{"atom":1090}},{"Str":{"pattern":"r"}},{"Str":{"pattern":" R"}},{"Alternative":{"atoms":[1044,1045]}},{"Entity":{"atom":43}},{"Repetition":{"atom":1047,"min":1,"max":2,"tag":"Repetition"}},{"Named":{"name":"edition","atom":1048}},{"Entity":{"atom":98}},{"Named":{"name":"edition_letter","atom":1050}},{"Sequence":{"atoms":[1046,1049,1051]}},{"Str":{"pattern":"rev"}},{"Entity":{"atom":8}},{"Repetition":{"atom":1054,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[1053,1055,1056]}},{"Named":{"name":"edition_year","atom":1057}},{"Str":{"pattern":"e"}},{"Str":{"pattern":" E"}},{"Alternative":{"atoms":[1059,1060]}},{"Entity":{"atom":43}},{"Repetition":{"atom":1062,"min":1,"max":3,"tag":"Repetition"}},{"Named":{"name":"edition","atom":1063}},{"Str":{"pattern":"rev"}},{"Entity":{"atom":396}},{"Repetition":{"atom":1066,"min":3,"max":9,"tag":"Repetition"}},{"Named":{"name":"edition_month","atom":1067}},{"Entity":{"atom":44}},{"Named":{"name":"edition_year","atom":1069}},{"Sequence":{"atoms":[1065,1068,1070]}},{"Sequence":{"atoms":[1061,1064,1071]}},{"Str":{"pattern":"e"}},{"Entity":{"atom":43}},{"Repetition":{"atom":1074,"min":4,"max":4,"tag":"Repetition"}},{"Sequence":{"atoms":[1073,1075]}},{"Named":{"name":"edition_year","atom":1076}},{"Entity":{"atom":43}},{"Repetition":{"atom":1078,"min":2,"max":2,"tag":"Repetition"}},{"Named":{"name":"edition_month","atom":1079}},{"Repetition":{"atom":1080,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1077,1081]}},{"Str":{"pattern":"rev"}},{"Entity":{"atom":396}},{"Repetition":{"atom":1084,"min":3,"max":9,"tag":"Repetition"}},{"Named":{"name":"edition_month","atom":1085}},{"Entity":{"atom":44}},{"Named":{"name":"edition_year","atom":1087}},{"Sequence":{"atoms":[1083,1086,1088]}},{"Alternative":{"atoms":[1052,1058,1072,1082,1089]}},{"Entity":{"atom":764}},{"Entity":{"atom":1136}},{"Entity":{"atom":8}},{"Entity":{"atom":10}},{"Alternative":{"atoms":[1093,1094]}},{"Repetition":{"atom":1095,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"ver"}},{"Entity":{"atom":8}},{"Repetition":{"atom":1098,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":44}},{"Entity":{"atom":10}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[1101,1102]}},{"Repetition":{"atom":1103,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1100,1104]}},{"Named":{"name":"version","atom":1105}},{"Sequence":{"atoms":[1096,1097,1099,1106]}},{"Str":{"pattern":" Ver. "}},{"Str":{"pattern":" Version "}},{"Alternative":{"atoms":[1108,1109]}},{"Entity":{"atom":44}},{"Entity":{"atom":10}},{"Entity":{"atom":44}},{"Entity":{"atom":10}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[1114,1115]}},{"Repetition":{"atom":1116,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1111,1112,1113,1117]}},{"Named":{"name":"version","atom":1118}},{"Sequence":{"atoms":[1110,1119]}},{"Entity":{"atom":47}},{"Entity":{"atom":8}},{"Alternative":{"atoms":[1121,1122]}},{"Repetition":{"atom":1123,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"v"}},{"Entity":{"atom":44}},{"Entity":{"atom":10}},{"Entity":{"atom":44}},{"Entity":{"atom":10}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[1129,1130]}},{"Repetition":{"atom":1131,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1126,1127,1128,1132]}},{"Named":{"name":"version","atom":1133}},{"Sequence":{"atoms":[1124,1125,1134]}},{"Alternative":{"atoms":[1107,1120,1135]}},{"Entity":{"atom":1158}},{"Entity":{"atom":8}},{"Repetition":{"atom":1138,"min":0,"max":1,"tag":"Maybe"}},{"Repetition":{"atom":1139,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"Vol. "}},{"Str":{"pattern":"Vol."}},{"Str":{"pattern":"v"}},{"Alternative":{"atoms":[1141,1142,1143]}},{"Sequence":{"atoms":[1140,1144]}},{"Entity":{"atom":44}},{"Str":{"pattern":"a-l"}},{"Str":{"pattern":"m-z"}},{"Str":{"pattern":"A-L"}},{"Str":{"pattern":"M-Z"}},{"Alternative":{"atoms":[1147,1148,1149,1150]}},{"Repetition":{"atom":1151,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":1153,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[1152,1154]}},{"Sequence":{"atoms":[1146,1155]}},{"Named":{"name":"volume","atom":1156}},{"Sequence":{"atoms":[1145,1157]}},{"Entity":{"atom":567}},{"Entity":{"atom":946}},{"Entity":{"atom":1174}},{"Str":{"pattern":"-add"}},{"Str":{"pattern":".add"}},{"Str":{"pattern":" Add."}},{"Alternative":{"atoms":[1162,1163,1164]}},{"Entity":{"atom":8}},{"Entity":{"atom":47}},{"Alternative":{"atoms":[1166,1167]}},{"Repetition":{"atom":1168,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":44}},{"Repetition":{"atom":1170,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"addendum_number","atom":1171}},{"Sequence":{"atoms":[1165,1169,1172]}},{"Named":{"name":"addendum","atom":1173}},{"Entity":{"atom":1218}},{"Entity":{"atom":8}},{"Repetition":{"atom":1176,"min":0,"max":1,"tag":"Maybe"}},{"Repetition":{"atom":1177,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"supp"}},{"Str":{"pattern":"sup"}},{"Alternative":{"atoms":[1179,1180]}},{"Str":{"pattern":"rev"}},{"Named":{"name":"supplement_with_rev","atom":1182}},{"Entity":{"atom":39}},{"Named":{"name":"supp_month_start","atom":1184}},{"Entity":{"atom":44}},{"Named":{"name":"supp_year_start","atom":1186}},{"Entity":{"atom":47}},{"Entity":{"atom":39}},{"Named":{"name":"supp_month_end","atom":1189}},{"Entity":{"atom":44}},{"Named":{"name":"supp_year_end","atom":1191}},{"Sequence":{"atoms":[1185,1187,1188,1190,1192]}},{"Named":{"name":"supplement_date_range","atom":1193}},{"Entity":{"atom":39}},{"Named":{"name":"supp_month","atom":1195}},{"Entity":{"atom":44}},{"Named":{"name":"supp_year","atom":1197}},{"Sequence":{"atoms":[1196,1198]}},{"Named":{"name":"supplement_date","atom":1199}},{"Entity":{"atom":44}},{"Named":{"name":"supp_number","atom":1201}},{"Entity":{"atom":78}},{"Entity":{"atom":44}},{"Named":{"name":"supp_year","atom":1204}},{"Sequence":{"atoms":[1202,1203,1205]}},{"Named":{"name":"supplement_slash_year","atom":1206}},{"Entity":{"atom":44}},{"Named":{"name":"supp_year","atom":1208}},{"Entity":{"atom":396}},{"Entity":{"atom":43}},{"Str":{"pattern":"_"}},{"Alternative":{"atoms":[1210,1211,1212]}},{"Repetition":{"atom":1213,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"supplement_suffix","atom":1214}},{"Alternative":{"atoms":[1183,1194,1200,1207,1209,1215]}},{"Repetition":{"atom":1216,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1178,1181,1217]}},{"Entity":{"atom":1226}},{"Entity":{"atom":47}},{"Repetition":{"atom":1220,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"errata"}},{"Str":{"pattern":"err"}},{"Alternative":{"atoms":[1222,1223]}},{"Sequence":{"atoms":[1221,1224]}},{"Named":{"name":"errata","atom":1225}},{"Entity":{"atom":1242}},{"Entity":{"atom":8}},{"Entity":{"atom":10}},{"Alternative":{"atoms":[1228,1229]}},{"Repetition":{"atom":1230,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"esp"}},{"Str":{"pattern":"es"}},{"Str":{"pattern":"pt"}},{"Str":{"pattern":"chi"}},{"Str":{"pattern":"viet"}},{"Str":{"pattern":"port"}},{"Entity":{"atom":98}},{"Repetition":{"atom":1238,"min":2,"max":4,"tag":"Repetition"}},{"Alternative":{"atoms":[1232,1233,1234,1235,1236,1237,1239]}},{"Named":{"name":"translation","atom":1240}},{"Sequence":{"atoms":[1231,1241]}},{"Alternative":{"atoms":[955,987,993,998,1003,1006,1007,1008,1043,1091,1092,1137,1159,1160,1161,1175,1219,1227]}},{"Repetition":{"atom":954,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":790}},{"Repetition":{"atom":1245,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[186,187,188,189,227,906,911,913,915,947,953,1244,1246]}},{"Entity":{"atom":1261}},{"Entity":{"atom":159}},{"Entity":{"atom":8}},{"Str":{"pattern":"Research Library"}},{"Named":{"name":"series","atom":1251}},{"Entity":{"atom":8}},{"Str":{"pattern":"("}},{"Entity":{"atom":43}},{"Repetition":{"atom":1255,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":1256}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[1253,1254,1257,1258]}},{"Repetition":{"atom":1259,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1249,1250,1252,1260]}},{"Entity":{"atom":1293}},{"Str":{"pattern":"NBS BRPD-CRPL-D"}},{"Str":{"pattern":"NBS CRPL-F-A"}},{"Str":{"pattern":"NBS CRPL-F-B"}},{"Str":{"pattern":"NBS CS-E"}},{"Str":{"pattern":"CSRC Building Block"}},{"Str":{"pattern":"CSRC Use Case"}},{"Str":{"pattern":"CSRC Book"}},{"Str":{"pattern":"ITL Bulletin"}},{"Str":{"pattern":"NSRDS-NBS"}},{"Str":{"pattern":"NIST LCIRC"}},{"Str":{"pattern":"NBS LCIRC"}},{"Str":{"pattern":"NIST.LCIRC"}},{"Str":{"pattern":"NBS.LCIRC"}},{"Str":{"pattern":"NBS RPT"}},{"Str":{"pattern":"NIST PS"}},{"Str":{"pattern":"NIST DCI"}},{"Str":{"pattern":"NIST Other"}},{"Str":{"pattern":"NISTPUB"}},{"Str":{"pattern":"NBS CSM"}},{"Str":{"pattern":"NBS CIRC"}},{"Str":{"pattern":"NBS.CRPL"}},{"Str":{"pattern":"NBS CRPL"}},{"Str":{"pattern":"NBS CS"}},{"Str":{"pattern":"NBS CIS"}},{"Str":{"pattern":"NBS HR"}},{"Str":{"pattern":"NBS IRPL"}},{"Str":{"pattern":"NBS IP"}},{"Str":{"pattern":"NBS PS"}},{"Str":{"pattern":"NBS BH"}},{"Alternative":{"atoms":[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]}},{"Named":{"name":"series","atom":1292}},{"Entity":{"atom":8}},{"Entity":{"atom":10}},{"Alternative":{"atoms":[1294,1295]}},{"Sequence":{"atoms":[1262,1296]}},{"Entity":{"atom":1307}},{"Str":{"pattern":"("}},{"Entity":{"atom":973}},{"Named":{"name":"stage_id","atom":1300}},{"Entity":{"atom":982}},{"Named":{"name":"stage_type","atom":1302}},{"Sequence":{"atoms":[1301,1303]}},{"Named":{"name":"stage","atom":1304}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[1299,1305,1306]}},{"Repetition":{"atom":1298,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":905}},{"Repetition":{"atom":1309,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":1323}},{"Entity":{"atom":47}},{"Entity":{"atom":44}},{"Named":{"name":"fips_part","atom":1313}},{"Entity":{"atom":47}},{"Entity":{"atom":39}},{"Named":{"name":"fips_month","atom":1316}},{"Entity":{"atom":44}},{"Named":{"name":"fips_day","atom":1318}},{"Entity":{"atom":78}},{"Entity":{"atom":44}},{"Named":{"name":"fips_year","atom":1321}},{"Sequence":{"atoms":[1312,1314,1315,1317,1319,1320,1322]}},{"Repetition":{"atom":1311,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":1243}},{"Repetition":{"atom":1325,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":790}},{"Repetition":{"atom":1327,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":1353}},{"Str":{"pattern":"("}},{"Entity":{"atom":1335}},{"Entity":{"atom":396}},{"Entity":{"atom":43}},{"Str":{"pattern":"_"}},{"Alternative":{"atoms":[1332,1333,1334]}},{"Repetition":{"atom":1331,"min":3,"max":null,"tag":"Repetition"}},{"Named":{"name":"translation","atom":1336}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[1330,1337,1338]}},{"Entity":{"atom":8}},{"Entity":{"atom":1335}},{"Repetition":{"atom":1341,"min":3,"max":null,"tag":"Repetition"}},{"Named":{"name":"translation","atom":1342}},{"Sequence":{"atoms":[1340,1343]}},{"Entity":{"atom":8}},{"Repetition":{"atom":1345,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":10}},{"Named":{"name":"translation","atom":1347}},{"Entity":{"atom":1335}},{"Repetition":{"atom":1349,"min":3,"max":null,"tag":"Repetition"}},{"Named":{"name":"translation","atom":1350}},{"Sequence":{"atoms":[1346,1348,1351]}},{"Alternative":{"atoms":[1339,1344,1352]}},{"Repetition":{"atom":1329,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":986}},{"Repetition":{"atom":1355,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1297,1308,1310,1324,1326,1328,1354,1356]}},{"Entity":{"atom":159}},{"Entity":{"atom":8}},{"Entity":{"atom":10}},{"Alternative":{"atoms":[1359,1360]}},{"Sequence":{"atoms":[1358,1361]}},{"Entity":{"atom":225}},{"Entity":{"atom":1307}},{"Repetition":{"atom":1364,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":8}},{"Entity":{"atom":10}},{"Alternative":{"atoms":[1366,1367]}},{"Entity":{"atom":905}},{"Repetition":{"atom":1369,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":1323}},{"Repetition":{"atom":1371,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":1243}},{"Repetition":{"atom":1373,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":790}},{"Repetition":{"atom":1375,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":1353}},{"Repetition":{"atom":1377,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":986}},{"Repetition":{"atom":1379,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1362,1363,1365,1368,1370,1372,1374,1376,1378,1380]}},{"Entity":{"atom":225}},{"Entity":{"atom":1307}},{"Repetition":{"atom":1383,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":8}},{"Entity":{"atom":10}},{"Alternative":{"atoms":[1385,1386]}},{"Entity":{"atom":905}},{"Repetition":{"atom":1388,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":1323}},{"Repetition":{"atom":1390,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":1243}},{"Repetition":{"atom":1392,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":790}},{"Repetition":{"atom":1394,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":1353}},{"Repetition":{"atom":1396,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":986}},{"Repetition":{"atom":1398,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1382,1384,1387,1389,1391,1393,1395,1397,1399]}},{"Alternative":{"atoms":[0,151,184,1248,1357,1381,1400]}}],"root":1401},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule month_abbrev: branches 1 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 1 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 1 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 1 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 1 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 2 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 3 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 4 and 22 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 5 and 23 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 6 and 21 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 7 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 7 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 7 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 8 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 8 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 8 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 8 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 9 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 9 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 10 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 10 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 11 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 11 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 11 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 12 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 13 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 13 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 16 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_abbrev: branches 17 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule stage_type: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule stage_type: branches 2 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman: branches 1 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman: branches 2 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman: branches 3 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman: branches 4 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman: branches 4 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman: branches 5 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman: branches 5 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman: branches 6 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman: branches 7 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule number_suffix: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition: branches 2 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition: branches 3 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule edition: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule legacy_edition: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule legacy_edition: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule legacy_edition: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule legacy_edition: branches 2 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule legacy_edition: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule revision: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule revision: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule revision: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule revision: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule revision: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule revision: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule revision: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule revision: branches 2 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule revision: branches 2 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule revision: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule revision: branches 3 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule revision: branches 3 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule revision: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule revision: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule version: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule version: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule version: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule translation: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 1 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 1 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 1 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 1 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 1 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 1 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 1 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 1 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 1 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 1 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 2 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 2 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 3 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 4 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 5 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 6 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 6 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 6 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 6 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 6 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 6 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 6 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 6 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 6 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 7 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 7 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 7 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 7 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 7 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 7 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 7 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 7 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 7 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 7 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 8 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 8 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 8 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 8 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 9 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 9 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 9 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 9 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 9 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 9 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 9 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 9 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 9 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 10 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 10 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 10 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 10 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 10 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 10 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 10 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 11 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 11 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 11 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 11 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 11 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 11 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 11 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 12 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 12 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 12 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 12 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 12 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 13 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 13 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 13 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 13 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 14 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 14 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 14 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 14 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 15 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 15 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 15 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 16 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule parts: branches 17 and 18 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 4 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 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 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 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 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 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"NIST SP 800-53","expect":{}},{"entry":"identifier","kind":"accept","input":"NBS FIPS 140-2","expect":{}},{"entry":"identifier","kind":"accept","input":"NIST HB 44","expect":{}},{"entry":"identifier","kind":"accept","input":"NIST TN 1297","expect":{}},{"entry":"identifier","kind":"accept","input":"NBS CIRC 25e","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/nist/parser.rb — NIST/NBS identifiers: compound and\n# simple series, report numbers (first/second number families), editions\n# (e/r/rev/dash-year), dates (ISO, dash, month-year), revisions,\n# versions, volumes, parts, updates, addenda, supplements, errata,\n# drafts, stages (old \"(1pd)\" and new \".1pd\"), circ supplements,\n# dated NBS bulletins and the Research Library series. The gem's\n# parse()-side preprocessing (Preprocessor + ALL_PARTS suffix +\n# parsed_format tagging) is Tier-3 and outside the grammar. Source\n# deviations, all lint-forced longest-first reorderings that preserve\n# the accept-set under PEG backtracking: esp before es in language_code,\n# romans ordered longest-first, CSM before CS in simple_series; the\n# empty-alternative captures (:supplement_empty, addendum's str(\"\"))\n# become bracketed optionals.\n\ngrammar PubidNist version \"0.1.0\" {\n digit = %x30-39\n upper_letter = %x41-5A\n lower_letter = %x61-7A\n letter = upper_letter / lower_letter\n word_char = letter / digit / \"_\"\n any_char = %x01-10FFFF\n digits = 1*digit\n space = \" \"\n dot = \".\"\n dash = \"-\"\n slash = \"/\"\n hash_prefix = \"#\"\n\n month_abbrev = \"January\" / \"February\" / \"September\" / \"November\" / \"December\" / \"October\" / \"August\" / \"June\" / \"March\" / \"April\" / \"July\" / \"May\" / \"Jan\" / \"Feb\" / \"Mar\" / \"Apr\" / \"Jun\" / \"Jul\" / \"Aug\" / \"Sep\" / \"Oct\" / \"Nov\" / \"Dec\"\n language_code = ([(space / dot)] ((\"esp\" / \"es\" / \"pt\" / \"chi\" / \"viet\" / \"port\" / (2*4lower_letter)) as translation))\n stage_id = \"i\" / \"I\" / \"f\" / \"F\" / \"1\" / \"2\" / \"3\" / \"4\" / \"5\" / \"6\" / \"7\" / \"8\" / \"9\"\n stage_type = \"pd\" / \"PD\" / \"wd\" / \"WD\" / \"prd\" / \"PRD\"\n old_stage = (\"(\" (((stage_id) as stage_id (stage_type) as stage_type)) as stage \")\")\n new_stage = ((space / dot) (((stage_id) as stage_id (stage_type) as stage_type)) as stage)\n publisher = (\"NBS\" / \"NIST\") as publisher\n compound_series = (\"NBS BRPD-CRPL-D\" / \"NBS CRPL-F-A\" / \"NBS CRPL-F-B\" / \"NBS CS-E\" / \"CSRC Building Block\" / \"CSRC Use Case\" / \"CSRC Book\" / \"ITL Bulletin\" / \"NSRDS-NBS\" / \"NIST LCIRC\" / \"NBS LCIRC\" / \"NIST.LCIRC\" / \"NBS.LCIRC\" / \"NBS RPT\" / \"NIST PS\" / \"NIST DCI\" / \"NIST Other\" / \"NISTPUB\" / \"NBS CSM\" / \"NBS CIRC\" / \"NBS.CRPL\" / \"NBS CRPL\" / \"NBS CS\" / \"NBS CIS\" / \"NBS HR\" / \"NBS IRPL\" / \"NBS IP\" / \"NBS PS\" / \"NBS BH\") as series\n simple_series = (\"NCSTAR\" / \"CHIPS\" / \"NWIRP\" / \"CSWP\" / \"JPCRD\" / \"JRES\" / \"OWMWP\" / \"SIBS\" / \"TIBM\" / \"FIPS\" / \"MONO\" / \"AMS\" / \"VTS\" / \"BSS\" / \"BMS\" / \"GCR\" / \"CSM\" / \"CRPL\" / \"CIRC\" / \"TTB\" / \"EAB\" / \"HB\" / \"MP\" / \"NSRDS\" / \"RPT\" / \"LCIRC\" / \"AI\" / \"CS\" / \"IR\" / \"SP\" / \"TN\" / \"PC\" / \"BH\" / \"RB\") as series\n roman = \"VIII\" / \"VII\" / \"VI\" / \"III\" / \"II\" / \"IX\" / \"IV\" / \"X\" / \"V\" / \"I\"\n\n number_suffix = ((\"U\" lower_letter)) / ((letter !(\"ec\" / \"ndex\" / \"nsert\" / \"rrata\" / \"raft\" / \"pp\" / \"s\" / \"t\" / \"hi\" / \"iet\" / \"ort\" / \"r\" / \"p\") [digits]))\n digits_with_suffix = (digits [(number_suffix !digit)])\n\n first_number = (((((2digit) as owmwp_month dash (2digit) as owmwp_day dash (4digit) as owmwp_year)) as owmwp_date_number) / (\"ADHOC\") / ((\"div\" digits)) / ((month_abbrev dash month_abbrev digits)) / (((digits) as number (\"v\" digits as volume_suffix))) as number_with_volume / ((digits dash roman dash digits [(dot digits)])) / ((digits \"GB\" dash digits [upper_letter])) / ((digits upper_letter dash digits)) / ((((\"v\" digits as volume_number) (\"n\" digits as issue_number)))) / ((digits \"supprev\")) / ((digits \"e\" digits \"rev\" digits)) / ((((digits) as number (\"rv\" digits as revision_year)))) as number_with_rev_year / ((digits \"e\" digits \"rev\" month_abbrev digits)) / ((digits \"e\" digits \"supp\" [digits])) / ((((\"e\" digits \"rev\" month_abbrev digits)))) / ((((\"e\" digits \"supp\" [digits])))) / ((digits \"e\" digits)) / ((((\"e\" digits) !(dash digits)))) / ((lower_letter digits)) / ((digits \"supp\" month_abbrev digits)) / ((digits \"supp\" [digits])) / ((digits \"sup\" month_abbrev digits)) / ((digits \"sup\")) / ((((digits) as number ((\"sp\" / \"pt\" / \"es\" / \"SP\" / \"PT\" / \"ES\") as language_code)) (!(upper_letter) !digit !letter !dash !dot))) / ((((digits) as number (\"pt\" digits as part_number) (\"e\" digits as edition_year)))) / ((((digits) as number (\"(\" ((\"SP\" / \"PT\" / \"ES\") as language_code) \")\")))) / (((((digits) as number (upper_letter) as letter_suffix (\"r\" digits as revision_id)))) as number_with_letter_revision) / (digits_with_suffix)) as first_number\n\n second_number = (!month_abbrev !(\"draft\") ((digits as number_only \"r\" (letter) as letter) as revision_letter) / ((digits ((\"supp\" / \"sup\")) (!digit !letter))) / ((digits (\"r\") digits (\"U\" lower_letter))) / ((digits (\"r\") digits letter)) / (((digits) as number_only (\"r\" digits as edition_id))) / ((digits (\"_\") digits dash digits [upper_letter])) / ((lower_letter dash digits)) / ((digits (\"pt\") digits !dash)) / ((digits upper_letter)) / ((((digits) as number_only (\"r\") letter))) as revision_letter / ((((\"r\") letter))) as revision_letter_suffix / ((((\"r\" digits as edition_id)))) as revision_simple / (\"NCNR\") / (\"PERMIS\") / (\"BFRL\") / ((1*3upper_letter)) / (((digits_with_suffix (!(dash month_abbrev digits slash)))) / ((lower_letter !digit)))) as second_number\n\n edition = (([[space]] (\"e\" digits as edition_id))) as edition_e / ((space (\"r\" digits as edition_id) (letter) as edition_letter)) as edition_r_with_space_letter / ((space (\"r\" digits as edition_id))) as edition_r_with_space / ((((\"r\" digits as edition_id) (letter) as edition_letter))) as edition_r_no_space_letter / ((((\"r\" digits as edition_id)))) as edition_r_no_space / (([space] \"rev\" [space] digits as edition_id)) as edition_rev / (((dash (%x31-39) as edition_id) !digit)) as edition_historical / (((dash 4digit) as dash_year)) as edition_dash_year\n\n date = (((((dash 4digit) as date_year (2digit) as date_month (2digit) as date_day)) / (((dash 4digit) as date_year (2digit) as date_month)) / (((dash 4digit) as date_year)) / (((dash (month_abbrev) as date_month digits) as date_year)))) as date\n iso_date = ((4digit) as date_year dash (2digit) as date_month dash (2digit) as date_day)\n dated_identifier = ([hash_prefix] publisher (space / dot) (iso_date) as dated_date (space / dot) (1*digit) as dated_seq)\n research_library_identifier = ((publisher) space (\"Research Library\") as series [(space \"(\" (4digit) as year \")\")])\n legacy_edition = ((((\"r\" / \" R\")) ((1*2digit)) as edition (lower_letter) as edition_letter)) / ((((\"rev\" [space] digits)) as edition_year)) / ((((\"e\" / \" E\")) ((1*3digit)) as edition ((\"rev\" ((3*9letter)) as edition_month (digits) as edition_year)))) / ((((\"e\" 4digit) as edition_year [(2digit) as edition_month]))) / ((((\"rev\" ((3*9letter)) as edition_month (digits) as edition_year))))\n crpl_range = ((digits (\"_\") digits dash digits [upper_letter])) as crpl_range\n\n report_number = (first_number [(((\"_\" digits) as edition_year)) / ((dash (month_abbrev) as edition_month (digits) as edition_year)) / ((dash (digits) as fips_part dash (month_abbrev) as edition_month (digits) as edition_day (slash) (digits) as edition_year)) / (((dash (digits) as decimal_base (dot digits as decimal_suffix))) as decimal_number) / (((dash (digits) as letter_base ((\"U\" (lower_letter) as letter_suffix_extra) / ((upper_letter) as letter_suffix)))) as letter_number) / (((dash (digits) as letter_base (dash) !month_abbrev (upper_letter) as letter_suffix (!(letter / digit)))) as letter_number) / (((dash (4digit) as dash_year (!(space) !dot !part !crpl_range !second_number !dash))) as edition_dash_year) / (((dash (second_number) (dash) (4digit) as dash_year (!(space) !dot !part !crpl_range !revision !draft))) as second_number_edition_year) / (((dash (second_number) (dash) (month_abbrev) as edition_month (digits) as edition_year (!(space) !dot !part !crpl_range !edition !revision !draft))) as fips_month_year_after_part) / (((dash (second_number) (dash) ((digits [upper_letter])) as part_number))) / (((dot (second_number)))) / (((dash ((crpl_range / second_number)) [edition]))) / (((dash (edition))))])\n volume = ((([[space]] ((\"Vol. \" / \"Vol.\" / \"v\")))) ((digits ([((\"a-l\" / \"m-z\" / \"A-L\" / \"M-Z\"))] (0*2upper_letter)))) as volume)\n part = (((\" Part. \" / \" Part.\" / \" Part \") / ([space] (\"pt\" / \"p\" / \"P\"))) ((digits [([space] (\"r\") digits)] [(\"add\" [(\"e\" digits)])] [dash digits]) as part))\n revision = ([space] (\"r\" / \"rev\") [space] month_abbrev as revision_month digits as revision_year) / ([space] (\"r\" / \"rev\") digits as revision slash digits as revision_year) / ((\" r\" / \"r\") [space] (4digit) as revision_year) / (\"rev\" [space] digits as revision_year) / (((\" rev \" / \"rev\" / \" r\" / \"r\" / \" Rev. \" / \" Rev.\" / \" Revision (r)\") as revision_prefix) [space] (((digits [letter]) / (1*letter)) as revision_id)) as revision / ((\" r\" !any_char) as revision_standalone)\n version = (([(space / dot)] (\"ver\") [space] ((digits *(dot digits))) as version)) / (((\" Ver. \" / \" Version \") ((digits (dot) digits [(dot digits)])) as version)) / (([(dash / space)] (\"v\") ((digits (dot) digits [(dot digits)])) as version))\n update = ((((\"/Upd\") / ([[space]] ((\"/upd\" / \"-upd\")))) as update_prefix) ((([(digits) as update_number] [dash (((4digit) as update_year (2digit) as update_month) / ((4*digit) as update_year))]))) as update)\n addendum = ((((\"-add\" / \".add\" / \" Add.\")) [(space / dash)] ([(digits)] as addendum_number))) as addendum\n supplement = (([[space]] ((\"supp\" / \"sup\")) [(((\"rev\")) as supplement_with_rev) / ((((month_abbrev) as supp_month_start (digits) as supp_year_start (dash) (month_abbrev) as supp_month_end (digits) as supp_year_end))) as supplement_date_range / ((((month_abbrev) as supp_month (digits) as supp_year))) as supplement_date / ((((digits) as supp_number (slash) (digits) as supp_year))) as supplement_slash_year / (((digits) as supp_year)) / ((((1*(letter / digit / \"_\"))) as supplement_suffix))]))\n errata = ((([dash] ((\"errata\" / \"err\"))))) as errata\n index = ((\"index\" / \"indx\")) as index\n insert = ((\"insert\" / \"ins\")) as insert\n appendix = ((\"app\")) as appendix\n section = ((\"sec\") [digits] as section)\n dot_word = dot 3*word_char\n translation = ((\"(\" (3*word_char) as translation \")\")) / ((space (3*word_char) as translation)) / (([space] dot as translation (3*word_char) as translation))\n pd_suffix = ((space digits (\"pd\"))) as public_draft\n draft = (((space \"(Draft)\")) / ((([[space]] (dash (\"draft\")) [((space digits) / digits)]))) / ((pd_suffix))) as draft\n fips_date = ((dash (digits) as fips_part (dash) (month_abbrev) as fips_month (digits) as fips_day (slash) (digits) as fips_year))\n\n parts = (new_stage / (section) / (index) / (insert) / (appendix) / (pd_suffix) / (edition) / (date) / (legacy_edition) / revision / (version) / (volume) / (part) / (update) / (addendum) / (supplement) / (errata) / (language_code))\n\n mr_identifier = ([hash_prefix] publisher (dot) (simple_series) [dot] [report_number] [(\"_\" digits) as edition_year] [upper_letter] [edition] [update] (0*3(dot (digits / upper_letter))) (*parts) [draft])\n identifier = (circ_supplement_identifier / dated_identifier / mr_identifier / research_library_identifier / (((compound_series) (space / dot)) [old_stage] [report_number] [fips_date] (*parts) [draft] [translation] [new_stage]) / (((publisher) (space / dot)) (simple_series) [old_stage] (space / dot) [report_number] [fips_date] (*parts) [draft] [translation] [new_stage]) / ((simple_series) [old_stage] (space / dot) [report_number] [fips_date] (*parts) [draft] [translation] [new_stage]))\n\n circ_supplement_identifier = (((((\"NBS CIRC\" / \"NBS LCIRC\" / \"NBS.CIRC\" / \"NBS.LCIRC\") as series) (space / dot))) as circ_series) (((((\"supp\") ((month_abbrev) as supp_month_start (digits) as supp_year_start dash (month_abbrev) as supp_month_end (digits) as supp_year_end))) as supplement_date_range) / (((((\"supp\" / \"sup\") ((4digit) as supp_year_start dash (4digit) as supp_year_end))) as supplement_date_range)) / (((\"supp\" / \"sup\") [(((month_abbrev digits)) as supplement_month_year) / (((digits) as supp_number slash (digits) as supp_year) as supplement_slash_year) / (\"\" as supplement_empty)])) / ((((((digits) as base_number (\"e\" digits as edition_number))) / (((digits) as base_number (lower_letter) as revision_letter (digits) as revision_number)) / (((digits) as base_number (upper_letter) as letter_suffix)) / (((digits) as simple_number))) as base_portion) (((((\"supp\" / \"sup\") [((((month_abbrev digits))) as supplement_month_year / (((dash (digits) as supp_number slash (digits) as supp_year))) as supplement_dash_slash_year / (((dash digits))) as supplement_year / ((((digits) as supp_number slash (digits) as supp_year))) as supplement_slash_year)])) / ((((slash digits as implicit_supplement_year)))) as implicit_supplement))))\n\n entry identifier: identifier\n\n test {\n accept \"NIST SP 800-53\"\n accept \"NBS FIPS 140-2\"\n accept \"NIST HB 44\"\n accept \"NIST TN 1297\"\n accept \"NBS CIRC 25e\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:e546e92f98d2f79c6e8a06cbac8baf8b2ad57fda501d9269f92f0e3025915db2"}
@@ -0,0 +1 @@
1
+ {"version":"0.1.0","grammar":"PubidOasis","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"OASIS "}},{"Entity":{"atom":5}},{"Entity":{"atom":3}},{"Re":{"pattern":"[\\x01-\\u{10ffff}]"}},{"Repetition":{"atom":2,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"original","atom":4}},{"Sequence":{"atoms":[0,1]}}],"root":6},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"OASIS saml-core-2.0-os","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/oasis/parser.rb: the \"OASIS \" prefix is stripped and\n# the slug captured verbatim; decomposition is builder-side by design.\n# parslet `any` is approximated byte-wise (%x01-10FFFF; excludes NUL only).\n\ngrammar PubidOasis version \"0.1.0\" {\n any_char = %x01-10FFFF\n slug = (1*any_char) as original\n identifier = \"OASIS \" slug\n entry identifier: identifier\n\n test {\n accept \"OASIS saml-core-2.0-os\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:1feb4b5f80c519350a6e45d327e30c148b3882bfeffd017fe124639e72daf18a"}
@@ -0,0 +1 @@
1
+ {"version":"0.1.0","grammar":"PubidOgc","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"OGC"}},{"Entity":{"atom":6}},{"Entity":{"atom":5}},{"Re":{"pattern":"[\\x09-\\x0d]"}},{"Re":{"pattern":"[ ]"}},{"Alternative":{"atoms":[3,4]}},{"Repetition":{"atom":2,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[0,1]}},{"Repetition":{"atom":7,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":10}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":9,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"year","atom":11}},{"Str":{"pattern":"-"}},{"Entity":{"atom":10}},{"Repetition":{"atom":14,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":15}},{"Entity":{"atom":24}},{"Entity":{"atom":22}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Alternative":{"atoms":[19,20,21]}},{"Repetition":{"atom":18,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"revision","atom":23}},{"Repetition":{"atom":17,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":5}},{"Repetition":{"atom":26,"min":0,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":27,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[8,12,13,16,25,28]}}],"root":29},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"OGC 06-121r9","expect":{}},{"entry":"identifier","kind":"accept","input":"20-024","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/ogc/parser.rb: \"<yy>-<nnn>[<revision>]\" with an\n# optional lenient \"OGC \" prefix. \\s = %x09-0D / %x20.\n\ngrammar PubidOgc version \"0.1.0\" {\n ws_char = %x09-0D / %x20\n space = 1*ws_char\n digit = %x30-39\n alnum_char = %x41-5A / %x61-7A / %x30-39\n revision = (1*alnum_char) as revision\n identifier = [\"OGC\" space] (1*digit) as year \"-\" (1*digit) as number [revision] [*ws_char]\n entry identifier: identifier\n\n test {\n accept \"OGC 06-121r9\"\n accept \"20-024\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:1e91d6d0d06fb5c104df5c8b58ad088d5ccda54cd20f38e78d6dd5e9a676253d"}
@@ -0,0 +1 @@
1
+ {"version":"0.1.0","grammar":"PubidOiml","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":42}},{"Str":{"pattern":"OIML"}},{"Named":{"name":"publisher","atom":1}},{"Entity":{"atom":4}},{"Str":{"pattern":"-"}},{"Entity":{"atom":6}},{"Str":{"pattern":" "}},{"Alternative":{"atoms":[3,5]}},{"Str":{"pattern":"CS"}},{"Named":{"name":"cs_series","atom":8}},{"Entity":{"atom":6}},{"Str":{"pattern":"PD"}},{"Str":{"pattern":"OD"}},{"Str":{"pattern":"CID"}},{"Alternative":{"atoms":[11,12,13]}},{"Named":{"name":"cs_family","atom":14}},{"Entity":{"atom":4}},{"Entity":{"atom":6}},{"Alternative":{"atoms":[16,17]}},{"Named":{"name":"cs_separator","atom":18}},{"Entity":{"atom":21}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":20,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":22}},{"Entity":{"atom":6}},{"Str":{"pattern":"Edition"}},{"Entity":{"atom":6}},{"Entity":{"atom":21}},{"Repetition":{"atom":27,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"edition","atom":28}},{"Entity":{"atom":6}},{"Entity":{"atom":32}},{"Str":{"pattern":"("}},{"Str":{"pattern":"Amendment"}},{"Entity":{"atom":6}},{"Entity":{"atom":21}},{"Repetition":{"atom":35,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"cs_amendment","atom":36}},{"Entity":{"atom":39}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[30,31,33,34,37,38]}},{"Repetition":{"atom":40,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[2,7,9,10,15,19,23,24,25,26,29,41]}},{"Entity":{"atom":267}},{"Str":{"pattern":"Amendment"}},{"Entity":{"atom":6}},{"Entity":{"atom":32}},{"Entity":{"atom":56}},{"Entity":{"atom":51}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[49,50]}},{"Entity":{"atom":21}},{"Repetition":{"atom":52,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":21}},{"Lookahead":{"atom":54,"positive":false}},{"Sequence":{"atoms":[48,53,55]}},{"Named":{"name":"year","atom":47}},{"Entity":{"atom":39}},{"Entity":{"atom":6}},{"Str":{"pattern":"to"}},{"Entity":{"atom":6}},{"Entity":{"atom":216}},{"Entity":{"atom":67}},{"Str":{"pattern":"OIML"}},{"Named":{"name":"publisher","atom":64}},{"Entity":{"atom":6}},{"Sequence":{"atoms":[65,66]}},{"Entity":{"atom":80}},{"Entity":{"atom":77}},{"Re":{"pattern":"[B]"}},{"Re":{"pattern":"[D]"}},{"Re":{"pattern":"[E]"}},{"Re":{"pattern":"[G]"}},{"Re":{"pattern":"[R]"}},{"Re":{"pattern":"[S]"}},{"Re":{"pattern":"[V]"}},{"Alternative":{"atoms":[70,71,72,73,74,75,76]}},{"Named":{"name":"type","atom":69}},{"Entity":{"atom":6}},{"Sequence":{"atoms":[78,79]}},{"Entity":{"atom":144}},{"Entity":{"atom":86}},{"Entity":{"atom":85}},{"Entity":{"atom":21}},{"Repetition":{"atom":84,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":83}},{"Entity":{"atom":98}},{"Entity":{"atom":4}},{"Entity":{"atom":85}},{"Entity":{"atom":91}},{"Str":{"pattern":"/"}},{"Entity":{"atom":4}},{"Entity":{"atom":85}},{"Sequence":{"atoms":[90,92,93]}},{"Repetition":{"atom":94,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[89,95]}},{"Named":{"name":"part","atom":96}},{"Sequence":{"atoms":[88,97]}},{"Entity":{"atom":103}},{"Entity":{"atom":4}},{"Entity":{"atom":85}},{"Named":{"name":"subpart","atom":101}},{"Sequence":{"atoms":[100,102]}},{"Entity":{"atom":132}},{"Entity":{"atom":124}},{"Entity":{"atom":4}},{"Str":{"pattern":"GUM"}},{"Entity":{"atom":6}},{"Entity":{"atom":85}},{"Sequence":{"atoms":[107,108,109]}},{"Entity":{"atom":114}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[112,113]}},{"Repetition":{"atom":111,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"_"}},{"Repetition":{"atom":116,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":85}},{"Sequence":{"atoms":[117,118]}},{"Repetition":{"atom":119,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[115,120]}},{"Alternative":{"atoms":[110,121]}},{"Named":{"name":"code_suffix","atom":122}},{"Sequence":{"atoms":[106,123]}},{"Entity":{"atom":131}},{"Entity":{"atom":6}},{"Str":{"pattern":"Brochure"}},{"Named":{"name":"code_suffix","atom":127}},{"Str":{"pattern":""}},{"Named":{"name":"space_suffix","atom":129}},{"Sequence":{"atoms":[126,128,130]}},{"Alternative":{"atoms":[105,125]}},{"Repetition":{"atom":104,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[82,87,99,133]}},{"Entity":{"atom":86}},{"Entity":{"atom":98}},{"Entity":{"atom":132}},{"Repetition":{"atom":137,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[135,136,138]}},{"Entity":{"atom":86}},{"Entity":{"atom":132}},{"Repetition":{"atom":141,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[140,142]}},{"Alternative":{"atoms":[134,139,143]}},{"Entity":{"atom":195}},{"Entity":{"atom":178}},{"Str":{"pattern":", "}},{"Entity":{"atom":6}},{"Alternative":{"atoms":[147,148]}},{"Entity":{"atom":165}},{"Str":{"pattern":"6th"}},{"Str":{"pattern":"5th"}},{"Str":{"pattern":"4th"}},{"Str":{"pattern":"3rd"}},{"Str":{"pattern":"2nd"}},{"Str":{"pattern":"1st"}},{"Entity":{"atom":85}},{"Str":{"pattern":"th"}},{"Str":{"pattern":"nd"}},{"Str":{"pattern":"rd"}},{"Str":{"pattern":"st"}},{"Alternative":{"atoms":[158,159,160,161]}},{"Sequence":{"atoms":[157,162]}},{"Alternative":{"atoms":[151,152,153,154,155,156,163]}},{"Named":{"name":"edition","atom":164}},{"Repetition":{"atom":150,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Repetition":{"atom":167,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":172}},{"Str":{"pattern":"Edition"}},{"Str":{"pattern":"edition"}},{"Alternative":{"atoms":[170,171]}},{"Entity":{"atom":6}},{"Repetition":{"atom":173,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":175}},{"Sequence":{"atoms":[149,166,168,169,174,176]}},{"Named":{"name":"edition_format","atom":177}},{"Entity":{"atom":6}},{"Repetition":{"atom":179,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":182}},{"Str":{"pattern":":"}},{"Entity":{"atom":6}},{"Repetition":{"atom":183,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":185}},{"Sequence":{"atoms":[180,181,184,186]}},{"Entity":{"atom":6}},{"Repetition":{"atom":188,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":32}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":191}},{"Entity":{"atom":39}},{"Sequence":{"atoms":[189,190,192,193]}},{"Alternative":{"atoms":[146,187,194]}},{"Repetition":{"atom":145,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":214}},{"Entity":{"atom":6}},{"Entity":{"atom":207}},{"Entity":{"atom":85}},{"Entity":{"atom":202}},{"Str":{"pattern":"."}},{"Entity":{"atom":85}},{"Sequence":{"atoms":[200,201,203]}},{"Entity":{"atom":85}},{"Alternative":{"atoms":[204,205]}},{"Named":{"name":"iteration","atom":206}},{"Repetition":{"atom":199,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":213}},{"Str":{"pattern":"WD"}},{"Str":{"pattern":"CD"}},{"Alternative":{"atoms":[210,211]}},{"Named":{"name":"stage","atom":212}},{"Sequence":{"atoms":[198,208,209]}},{"Repetition":{"atom":197,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[63,68,81,196,215]}},{"Named":{"name":"base","atom":62}},{"Entity":{"atom":264}},{"Entity":{"atom":258}},{"Entity":{"atom":6}},{"Entity":{"atom":32}},{"Entity":{"atom":254}},{"Entity":{"atom":233}},{"Re":{"pattern":"[E]"}},{"Re":{"pattern":"[F]"}},{"Re":{"pattern":"[R]"}},{"Re":{"pattern":"[X]"}},{"Re":{"pattern":"[D]"}},{"Re":{"pattern":"[S]"}},{"Re":{"pattern":"[C]"}},{"Re":{"pattern":"[A]"}},{"Re":{"pattern":"[U]"}},{"Alternative":{"atoms":[224,225,226,227,228,229,230,231,232]}},{"Entity":{"atom":91}},{"Entity":{"atom":233}},{"Sequence":{"atoms":[223,234,235]}},{"Entity":{"atom":242}},{"Str":{"pattern":"PO"}},{"Str":{"pattern":"PT"}},{"Str":{"pattern":"PE"}},{"Str":{"pattern":"SR"}},{"Alternative":{"atoms":[238,239,240,241]}},{"Entity":{"atom":244}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Entity":{"atom":246}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Repetition":{"atom":245,"min":2,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[243,247]}},{"Entity":{"atom":233}},{"Entity":{"atom":252}},{"Entity":{"atom":246}},{"Repetition":{"atom":251,"min":2,"max":2,"tag":"Repetition"}},{"Alternative":{"atoms":[236,237,248,249,250]}},{"Named":{"name":"language","atom":253}},{"Entity":{"atom":39}},{"Str":{"pattern":""}},{"Named":{"name":"space_before_lang","atom":256}},{"Sequence":{"atoms":[220,221,222,255,257]}},{"Entity":{"atom":263}},{"Entity":{"atom":32}},{"Entity":{"atom":254}},{"Entity":{"atom":39}},{"Sequence":{"atoms":[260,261,262]}},{"Alternative":{"atoms":[219,259]}},{"Named":{"name":"language","atom":218}},{"Repetition":{"atom":265,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[44,45,46,57,58,59,60,61,217,266]}},{"Entity":{"atom":294}},{"Entity":{"atom":67}},{"Entity":{"atom":80}},{"Entity":{"atom":144}},{"Named":{"name":"base_code","atom":271}},{"Entity":{"atom":6}},{"Str":{"pattern":"Amendment"}},{"Named":{"name":"amd_marker","atom":274}},{"Entity":{"atom":6}},{"Entity":{"atom":172}},{"Entity":{"atom":6}},{"Repetition":{"atom":278,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":280}},{"Sequence":{"atoms":[276,277,279,281]}},{"Named":{"name":"edition_format","atom":282}},{"Entity":{"atom":182}},{"Entity":{"atom":6}},{"Repetition":{"atom":285,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":287}},{"Sequence":{"atoms":[284,286,288]}},{"Alternative":{"atoms":[283,289]}},{"Entity":{"atom":264}},{"Named":{"name":"language","atom":291}},{"Repetition":{"atom":292,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[269,270,272,273,275,290,293]}},{"Entity":{"atom":324}},{"Entity":{"atom":216}},{"Named":{"name":"base","atom":296}},{"Entity":{"atom":6}},{"Str":{"pattern":"Annex"}},{"Entity":{"atom":6}},{"Entity":{"atom":308}},{"Entity":{"atom":244}},{"Entity":{"atom":4}},{"Entity":{"atom":244}},{"Sequence":{"atoms":[303,304]}},{"Repetition":{"atom":305,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[302,306]}},{"Named":{"name":"annex_letter","atom":307}},{"Entity":{"atom":6}},{"Entity":{"atom":172}},{"Entity":{"atom":6}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":312}},{"Sequence":{"atoms":[309,310,311,313]}},{"Entity":{"atom":182}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":316}},{"Sequence":{"atoms":[315,317]}},{"Alternative":{"atoms":[314,318]}},{"Repetition":{"atom":319,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Named":{"name":"language","atom":321}},{"Repetition":{"atom":322,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[297,298,299,300,301,320,323]}},{"Entity":{"atom":347}},{"Entity":{"atom":216}},{"Named":{"name":"base","atom":326}},{"Entity":{"atom":6}},{"Str":{"pattern":"Annexes"}},{"Named":{"name":"annex_marker","atom":329}},{"Entity":{"atom":6}},{"Entity":{"atom":172}},{"Entity":{"atom":6}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":334}},{"Sequence":{"atoms":[331,332,333,335]}},{"Named":{"name":"edition_format","atom":336}},{"Entity":{"atom":182}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":339}},{"Sequence":{"atoms":[338,340]}},{"Alternative":{"atoms":[337,341]}},{"Repetition":{"atom":342,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Named":{"name":"language","atom":344}},{"Repetition":{"atom":345,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[327,328,330,343,346]}},{"Entity":{"atom":365}},{"Entity":{"atom":216}},{"Named":{"name":"base","atom":349}},{"Entity":{"atom":352}},{"Str":{"pattern":"+"}},{"Str":{"pattern":"Amendment"}},{"Str":{"pattern":"Errata"}},{"Alternative":{"atoms":[353,354]}},{"Named":{"name":"plus_marker","atom":355}},{"Entity":{"atom":182}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":358}},{"Sequence":{"atoms":[357,359]}},{"Repetition":{"atom":360,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Named":{"name":"language","atom":362}},{"Repetition":{"atom":363,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[350,351,356,361,364]}},{"Entity":{"atom":383}},{"Entity":{"atom":216}},{"Named":{"name":"base","atom":367}},{"Entity":{"atom":6}},{"Str":{"pattern":"Amendment"}},{"Str":{"pattern":"Errata"}},{"Alternative":{"atoms":[370,371]}},{"Named":{"name":"trailing_marker","atom":372}},{"Entity":{"atom":6}},{"Entity":{"atom":21}},{"Repetition":{"atom":375,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":376}},{"Sequence":{"atoms":[374,377]}},{"Repetition":{"atom":378,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Named":{"name":"language","atom":380}},{"Repetition":{"atom":381,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[368,369,373,379,382]}},{"Entity":{"atom":435}},{"Str":{"pattern":"OIML"}},{"Named":{"name":"publisher","atom":385}},{"Entity":{"atom":6}},{"Str":{"pattern":"Bulletin"}},{"Named":{"name":"type","atom":388}},{"Entity":{"atom":412}},{"Entity":{"atom":6}},{"Entity":{"atom":402}},{"Re":{"pattern":"[I]"}},{"Re":{"pattern":"[V]"}},{"Re":{"pattern":"[X]"}},{"Re":{"pattern":"[L]"}},{"Re":{"pattern":"[C]"}},{"Re":{"pattern":"[D]"}},{"Re":{"pattern":"[M]"}},{"Alternative":{"atoms":[393,394,395,396,397,398,399]}},{"Repetition":{"atom":400,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"volume_roman","atom":401}},{"Entity":{"atom":32}},{"Entity":{"atom":21}},{"Repetition":{"atom":404,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"issue_arabic","atom":405}},{"Entity":{"atom":39}},{"Entity":{"atom":6}},{"Entity":{"atom":21}},{"Repetition":{"atom":409,"min":8,"max":8,"tag":"Repetition"}},{"Named":{"name":"article_id","atom":410}},{"Sequence":{"atoms":[391,392,403,406,407,408,411]}},{"Entity":{"atom":429}},{"Entity":{"atom":6}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":415}},{"Entity":{"atom":4}},{"Entity":{"atom":420}},{"Entity":{"atom":21}},{"Repetition":{"atom":419,"min":2,"max":null,"tag":"Repetition"}},{"Named":{"name":"issue","atom":418}},{"Sequence":{"atoms":[417,421]}},{"Repetition":{"atom":422,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":4}},{"Entity":{"atom":420}},{"Named":{"name":"sequence","atom":425}},{"Sequence":{"atoms":[424,426]}},{"Repetition":{"atom":427,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[414,416,423,428]}},{"Alternative":{"atoms":[390,413]}},{"Repetition":{"atom":430,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Named":{"name":"language","atom":432}},{"Repetition":{"atom":433,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[386,387,389,431,434]}},{"Entity":{"atom":446}},{"Entity":{"atom":67}},{"Entity":{"atom":80}},{"Entity":{"atom":144}},{"Entity":{"atom":195}},{"Repetition":{"atom":440,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":214}},{"Repetition":{"atom":442,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":444,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[437,438,439,441,443,445]}},{"Alternative":{"atoms":[0,43,268,295,325,348,366,384,436]}}],"root":447},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule roman_numeral: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule full_number: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule full_number: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule full_number: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule date: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule date: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule date: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule lang_multi_oiml: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule lang_multi_oiml: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule lang_multi_oiml: branches 2 and 3 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 4 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 8 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 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 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 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 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 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 8 and 9 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"OIML V 2 Edition 2007","expect":{}},{"entry":"identifier","kind":"accept","input":"OIML R 137-1:2012","expect":{}},{"entry":"identifier","kind":"accept","input":"OIML D 11","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/oiml/parser.rb — OIML identifiers: the base form,\n# drafts, amendments (full/short/+/trailing), annexes, bulletins.\n\ngrammar PubidOiml version \"0.1.0\" {\n # The monorepo's doc_type is [BDEGRSV] — X is deliberately absent\n # (\"OIML X 99\" must be rejected).\n letter_bdegrsvx = %x42 / %x44 / %x45 / %x47 / %x52 / %x53 / %x56\n digit = %x30-39\n letter = %x41-5A / %x61-7A\n digits = 1*digit\n two_digits = 2*digit\n space = \" \"\n dash = \"-\"\n colon = \":\"\n slash = \"/\"\n lparen = \"(\"\n rparen = \")\"\n dot = \".\"\n plus = \"+\"\n century = \"19\" / \"20\"\n year_digits = century 2*digit !digit\n\n publisher = \"OIML\" as publisher space\n doc_type = letter_bdegrsvx as type space\n two_digits_c = two_digits\n\n bulletin_date = space year_digits as year [(dash two_digits as issue)] [(dash two_digits as sequence)]\n roman_numeral = 1*%x49 / 1*(%x49 / %x56 / %x58 / %x4C / %x43 / %x44 / %x4D)\n roman = (1*(%x49 / %x56 / %x58 / %x4C / %x43 / %x44 / %x4D)) as volume_roman\n bulletin_citation = space roman lparen (1*digit) as issue_arabic rparen space (8digit) as article_id\n bulletin_identifier = \"OIML\" as publisher space \"Bulletin\" as type [bulletin_citation / bulletin_date] [language_portion as language]\n\n number_only = digits as number\n part_number = dash (digits *(slash dash digits)) as part\n subpart_number = dash digits as subpart\n named_suffix_gum = dash (\"GUM\" space digits / (1*letter *(([\"_\"] digits)))) as code_suffix\n named_suffix_brochure = space \"Brochure\" as code_suffix (\"\" as space_suffix)\n named_suffix = named_suffix_gum / named_suffix_brochure\n full_number = (number_only part_number subpart_number [named_suffix]) / (number_only part_number [named_suffix]) / (number_only [named_suffix])\n\n edition_number = (\"6th\" / \"5th\" / \"4th\" / \"3rd\" / \"2nd\" / \"1st\" / (digits (\"th\" / \"nd\" / \"rd\" / \"st\"))) as edition\n edition_text = \"Edition\" / \"edition\"\n edition_portion = ((\", \" / space) [edition_number] [space] edition_text [space] year_digits as year) as edition_format\n date = edition_portion / ([space] colon [space] year_digits as year) / ([space] lparen year_digits as year rparen)\n stage_iteration = ((digits dot digits) / digits) as iteration\n stage_abbr = (\"WD\" / \"CD\") as stage\n draft_stage = space [stage_iteration] stage_abbr\n\n lang_single = %x45 / %x46 / %x52 / %x58 / %x44 / %x53 / %x43 / %x41 / %x55\n lang_multi_oiml = \"PO\" / \"PT\" / \"PE\" / \"SR\"\n lang_multi = 2*2lower\n lower = %x61-7A\n language_code = ((lang_single slash lang_single) / lang_multi_oiml / (upper 2*2lower) / lang_single / lang_multi) as language\n language_with_space = space lparen language_code rparen (\"\" as space_before_lang)\n language_without_space = lparen language_code rparen\n language_portion = language_with_space / language_without_space\n\n amendment_identifier = \"Amendment\" space lparen year_digits as year rparen space \"to\" space (base_without_language as base) [language_portion as language]\n amendment_short = publisher doc_type (full_number as base_code) space \"Amendment\" as amd_marker ((space edition_text [space] year_digits as year) as edition_format / (colon [space] year_digits as year)) [language_portion as language]\n trailing_supplement_identifier = (base_without_language as base) space (\"Amendment\" / \"Errata\") as trailing_marker [space ((1*digit)) as number] [language_portion as language]\n plus_supplement_identifier = (base_without_language as base) plus (\"Amendment\" / \"Errata\") as plus_marker [(colon year_digits as year)] [language_portion as language]\n annex_identifier = (base_without_language as base) space \"Annexes\" as annex_marker [((space edition_text space year_digits as year) as edition_format / (colon year_digits as year))] [language_portion as language]\n annex_letter_value = (upper [(dash upper)]) as annex_letter\n annex_letter_identifier = (base_without_language as base) space \"Annex\" space annex_letter_value [((space edition_text space year_digits as year) / (colon year_digits as year))] [language_portion as language]\n base_without_language = publisher doc_type full_number [date] [draft_stage]\n base = publisher doc_type full_number [date] [draft_stage] [language_portion]\n\n cs_identifier = (\"OIML\" as publisher (dash / space) \"CS\" as cs_series space (\"PD\" / \"OD\" / \"CID\") as cs_family (dash / space) as cs_separator (1*digit) as number space \"Edition\" space (1*digit) as edition [(space lparen \"Amendment\" space (1*digit) as cs_amendment rparen)])\n identifier = cs_identifier / amendment_identifier / amendment_short / annex_letter_identifier / annex_identifier / plus_supplement_identifier / trailing_supplement_identifier / bulletin_identifier / base\n\n upper = %x41-5A\n entry identifier: identifier\n\n test {\n accept \"OIML V 2 Edition 2007\"\n accept \"OIML R 137-1:2012\"\n accept \"OIML D 11\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:21203eacd3f58b1d8730c6f8924da6c10f067669a7dd14da6052f0fa26ea8dc6"}
@@ -0,0 +1 @@
1
+ {"version":"0.1.0","grammar":"PubidOmg","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"OMG"}},{"Entity":{"atom":2}},{"Str":{"pattern":" "}},{"Entity":{"atom":24}},{"Entity":{"atom":7}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[5,6]}},{"Entity":{"atom":13}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[+]"}},{"Alternative":{"atoms":[9,10,11,12]}},{"Repetition":{"atom":8,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Re":{"pattern":"[\\-]"}},{"Re":{"pattern":"[/]"}},{"Alternative":{"atoms":[16,17]}},{"Entity":{"atom":13}},{"Repetition":{"atom":19,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[15,20]}},{"Repetition":{"atom":21,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[4,14,22]}},{"Named":{"name":"acronym","atom":23}},{"Entity":{"atom":2}},{"Entity":{"atom":54}},{"Entity":{"atom":28}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":27,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":31}},{"Str":{"pattern":"."}},{"Entity":{"atom":28}},{"Repetition":{"atom":32,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[30,33]}},{"Repetition":{"atom":34,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":51}},{"Str":{"pattern":" beta"}},{"Entity":{"atom":42}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Alternative":{"atoms":[39,40,41]}},{"Lookahead":{"atom":38,"positive":false}},{"Entity":{"atom":2}},{"Entity":{"atom":28}},{"Repetition":{"atom":45,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":42}},{"Lookahead":{"atom":47,"positive":false}},{"Sequence":{"atoms":[44,46,48]}},{"Repetition":{"atom":49,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[37,43,50]}},{"Repetition":{"atom":36,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[29,35,52]}},{"Named":{"name":"version","atom":53}},{"Entity":{"atom":59}},{"Entity":{"atom":2}},{"Entity":{"atom":58}},{"Str":{"pattern":"/"}},{"Alternative":{"atoms":[56,57]}},{"Entity":{"atom":63}},{"Entity":{"atom":42}},{"Repetition":{"atom":61,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"part","atom":62}},{"Sequence":{"atoms":[55,60]}},{"Repetition":{"atom":64,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[25,26,65]}},{"Entity":{"atom":2}},{"Entity":{"atom":63}},{"Sequence":{"atoms":[67,68]}},{"Alternative":{"atoms":[66,69]}},{"Repetition":{"atom":70,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[0,1,3,71]}}],"root":72},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"OMG IDL 4.2","expect":{}},{"entry":"identifier","kind":"accept","input":"OMG UML 2.5.1","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/omg/parser.rb: OMG <acronym>[ <version>[<sep><part>]]\n# with the beta-label word-boundary guards (a bare \"beta\" must not be\n# swallowed by the part rule).\n grammar PubidOmg version \"0.1.0\" {\n digit = %x30-39\n acronym_char = %x41-5A / %x61-7A / %x30-39 / %x2B\n acronym_join = %x2D / %x2F\n acronym = (letter 1*acronym_char *(acronym_join 1*acronym_char)) as acronym\n word_boundary = !alnum_char\n beta = \" beta\" !alnum_char ([space 1*digit !alnum_char])\n version = (1*digit *(dot 1*digit) [beta]) as version\n part_separator = space / slash\n part = (1*alnum_char) as part\n identifier = \"OMG\" space acronym [((space version [part_separator part]) / (space part))]\n alnum_char = %x41-5A / %x61-7A / %x30-39\n letter = %x41-5A / %x61-7A\n dot = \".\"\n slash = \"/\"\n space = \" \"\n entry identifier: identifier\n\n test {\n accept \"OMG IDL 4.2\"\n accept \"OMG UML 2.5.1\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:39f60c0ef455cfd762d35889a0f188657855393eae9adf2498a2bcbe1b2f63a6"}
@@ -0,0 +1 @@
1
+ {"version":"0.1.0","grammar":"PubidPlateau","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":73}},{"Entity":{"atom":52}},{"Str":{"pattern":"PLATEAU"}},{"Entity":{"atom":4}},{"Str":{"pattern":" "}},{"Entity":{"atom":9}},{"Str":{"pattern":"Handbook"}},{"Str":{"pattern":"Technical Report"}},{"Alternative":{"atoms":[6,7]}},{"Named":{"name":"type","atom":8}},{"Entity":{"atom":4}},{"Entity":{"atom":17}},{"Str":{"pattern":"#"}},{"Entity":{"atom":14}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":13,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":15}},{"Sequence":{"atoms":[12,16]}},{"Entity":{"atom":26}},{"Entity":{"atom":20}},{"Str":{"pattern":"-"}},{"Str":{"pattern":"_"}},{"Alternative":{"atoms":[19,21]}},{"Entity":{"atom":14}},{"Repetition":{"atom":23,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"annex","atom":24}},{"Sequence":{"atoms":[22,25]}},{"Repetition":{"atom":18,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":50}},{"Entity":{"atom":4}},{"Entity":{"atom":40}},{"Str":{"pattern":"第"}},{"Entity":{"atom":14}},{"Repetition":{"atom":32,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Entity":{"atom":14}},{"Repetition":{"atom":35,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[33,34,36]}},{"Named":{"name":"edition","atom":37}},{"Str":{"pattern":"版"}},{"Sequence":{"atoms":[31,38,39]}},{"Entity":{"atom":48}},{"Entity":{"atom":14}},{"Repetition":{"atom":42,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Entity":{"atom":14}},{"Repetition":{"atom":45,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[43,44,46]}},{"Named":{"name":"edition","atom":47}},{"Alternative":{"atoms":[30,41]}},{"Sequence":{"atoms":[29,49]}},{"Repetition":{"atom":28,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[2,3,5,10,11,27,51]}},{"Entity":{"atom":61}},{"Str":{"pattern":"PLATEAU"}},{"Entity":{"atom":4}},{"Entity":{"atom":9}},{"Entity":{"atom":4}},{"Entity":{"atom":17}},{"Entity":{"atom":26}},{"Repetition":{"atom":59,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[54,55,56,57,58,60]}},{"Alternative":{"atoms":[1,53]}},{"Named":{"name":"base","atom":62}},{"Entity":{"atom":72}},{"Entity":{"atom":4}},{"Str":{"pattern":"Annex"}},{"Entity":{"atom":4}},{"Entity":{"atom":71}},{"Entity":{"atom":70}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Named":{"name":"annex_letter","atom":69}},{"Sequence":{"atoms":[65,66,67,68]}},{"Sequence":{"atoms":[63,64]}},{"Entity":{"atom":52}},{"Entity":{"atom":61}},{"Alternative":{"atoms":[0,74,75]}}],"root":76},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["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 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"PLATEAU Handbook #3","expect":{}},{"entry":"identifier","kind":"accept","input":"PLATEAU Technical Report #1","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/plateau/parser.rb: PLATEAU Handbook/Technical Report\n# #NN[-annex][ edition], plus Annex supplements. Japanese canonical\n# edition (第X.Y版) and legacy Latin X.Y both capture the same atom.\n\ngrammar PubidPlateau version \"0.1.0\" {\n doc_type = (\"Handbook\" / \"Technical Report\") as type\n number = \"#\" (1*digit) as number\n annex = (dash / \"_\") (1*digit) as annex\n edition_part = \"第\" (1*digit \".\" 1*digit) as edition \"版\"\n edition_latin = (1*digit \".\" 1*digit) as edition\n edition = space (edition_part / edition_latin)\n annex_letter = upper as annex_letter\n annex_supplement = space \"Annex\" space annex_letter\n handbook = \"PLATEAU\" space doc_type space number [annex] [edition]\n technical_report = \"PLATEAU\" space doc_type space number [annex]\n annex_identifier = (handbook / technical_report) as base annex_supplement\n identifier = annex_identifier / handbook / technical_report\n upper = %x41-5A\n digit = %x30-39\n space = \" \"\n dash = \"-\"\n entry identifier: identifier\n\n test {\n accept \"PLATEAU Handbook #3\"\n accept \"PLATEAU Technical Report #1\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:2f7c9ed69290759925164662cc1853f4d98b74097367c685b7d4959bda799431"}
@@ -0,0 +1 @@
1
+ {"version":"0.1.0","grammar":"PubidSae","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"SAE"}},{"Named":{"name":"publisher","atom":0}},{"Entity":{"atom":3}},{"Str":{"pattern":" "}},{"Entity":{"atom":12}},{"Str":{"pattern":"AMS"}},{"Str":{"pattern":"AIR"}},{"Str":{"pattern":"ARP"}},{"Str":{"pattern":"AS"}},{"Str":{"pattern":"J"}},{"Str":{"pattern":"MA"}},{"Alternative":{"atoms":[5,6,7,8,9,10]}},{"Named":{"name":"type","atom":11}},{"Entity":{"atom":3}},{"Repetition":{"atom":13,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":29}},{"Entity":{"atom":17}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Repetition":{"atom":16,"min":1,"max":1,"tag":"Repetition"}},{"Entity":{"atom":20}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":19,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[18,21]}},{"Entity":{"atom":20}},{"Repetition":{"atom":23,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":17}},{"Repetition":{"atom":25,"min":0,"max":1,"tag":"Repetition"}},{"Sequence":{"atoms":[24,26]}},{"Alternative":{"atoms":[22,27]}},{"Named":{"name":"number","atom":28}},{"Entity":{"atom":31}},{"Str":{"pattern":":"}},{"Entity":{"atom":35}},{"Entity":{"atom":20}},{"Repetition":{"atom":33,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":34}},{"Sequence":{"atoms":[30,32]}},{"Repetition":{"atom":36,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1,2,4,14,15,37]}}],"root":38},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"SAE J1939","expect":{}},{"entry":"identifier","kind":"accept","input":"SAE AMS2430","expect":{}},{"entry":"identifier","kind":"accept","input":"SAE ARP4754A:2010","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/sae/parser.rb: SAE <AMS|AIR|ARP|AS|J|MA> <number>[:year]\n\ngrammar PubidSae version \"0.1.0\" {\n doc_type = (\"AMS\" / \"AIR\" / \"ARP\" / \"AS\" / \"J\" / \"MA\") as type\n number = ((1*1letter 1*digit) / (1*digit *1letter)) as number\n year = (4digit) as year\n identifier = \"SAE\" as publisher space doc_type [space] number [(colon year)]\n letter = %x41-5A\n digit = %x30-39\n space = \" \"\n colon = \":\"\n entry identifier: identifier\n\n test {\n accept \"SAE J1939\"\n accept \"SAE AMS2430\"\n accept \"SAE ARP4754A:2010\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:03dd546a00aa33dde80e7d5e0f7cd857d9be332c2ae68e4e6df5f4c1e0d06376"}
@@ -0,0 +1 @@
1
+ {"version":"0.1.0","grammar":"PubidTgpp","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"3GPP "}},{"Repetition":{"atom":0,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Alternative":{"atoms":[3,4]}},{"Named":{"name":"type","atom":5}},{"Entity":{"atom":8}},{"Str":{"pattern":" "}},{"Entity":{"atom":17}},{"Entity":{"atom":11}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":10,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Entity":{"atom":11}},{"Repetition":{"atom":14,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[12,13,15]}},{"Named":{"name":"number","atom":16}},{"Entity":{"atom":24}},{"Entity":{"atom":22}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[20,21]}},{"Repetition":{"atom":19,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"suffix","atom":23}},{"Repetition":{"atom":18,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":34}},{"Entity":{"atom":32}},{"Str":{"pattern":"-"}},{"Entity":{"atom":11}},{"Repetition":{"atom":29,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"part","atom":30}},{"Sequence":{"atoms":[28,31]}},{"Repetition":{"atom":27,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"parts","atom":33}},{"Entity":{"atom":36}},{"Str":{"pattern":":"}},{"Entity":{"atom":60}},{"Entity":{"atom":47}},{"Entity":{"atom":11}},{"Repetition":{"atom":39,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Entity":{"atom":11}},{"Repetition":{"atom":42,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Entity":{"atom":11}},{"Repetition":{"atom":45,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[40,41,43,44,46]}},{"Entity":{"atom":49}},{"Re":{"pattern":"[\\x01-\\u{10ffff}]"}},{"Lookahead":{"atom":48,"positive":false}},{"Sequence":{"atoms":[38,50]}},{"Lookahead":{"atom":51,"positive":false}},{"Entity":{"atom":57}},{"Re":{"pattern":"[\\x01-\\x2e]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[\\x3b-\\u{10ffff}]"}},{"Alternative":{"atoms":[54,55,56]}},{"Repetition":{"atom":53,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"release","atom":58}},{"Sequence":{"atoms":[52,59]}},{"Sequence":{"atoms":[35,37]}},{"Repetition":{"atom":61,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":64}},{"Str":{"pattern":"/"}},{"Entity":{"atom":67}},{"Entity":{"atom":47}},{"Named":{"name":"version","atom":66}},{"Sequence":{"atoms":[63,65]}},{"Repetition":{"atom":68,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1,2,7,9,25,26,62,69]}}],"root":70},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule release_char: branches 1 and 3 are order-dependent (first set not statically known)","rule release_char: branches 2 and 3 are order-dependent (first set not statically known)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"3GPP TS 21.101","expect":{}},{"entry":"identifier","kind":"accept","input":"TS 25.999","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/tgpp/parser.rb:\n# [3GPP ]<TR|TS> <NN.NNN>[suffix][-part…][:<release>][/<version>]\n# The release excludes \"/\" and \":\" (match[\"^/:\"]), byte-wise here; the\n# mistyped-version guard (!version…!any) is ported literally.\n\ngrammar PubidTgpp version \"0.1.0\" {\n release_char = %x01-2E / %x30-39 / %x3B-10FFFF\n any_char = %x01-10FFFF\n type = (\"TR\" / \"TS\") as type\n number = (1*digit \".\" 1*digit) as number\n suffix = (1*letter) as suffix\n part = \"-\" (1*digit) as part\n parts = (*part) as parts\n version_core = 1*digit \".\" 1*digit \".\" 1*digit\n release = !(version_core !any_char) (1*release_char) as release\n version = version_core as version\n identifier = [\"3GPP \"] type space number [suffix] parts [(colon release)] [(slash version)]\n letter = %x41-5A / %x61-7A\n digit = %x30-39\n space = \" \"\n colon = \":\"\n slash = \"/\"\n entry identifier: identifier\n\n test {\n accept \"3GPP TS 21.101\"\n accept \"TS 25.999\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:6446a79c9b880d0cc0565fdd9bdb13a665b8d6b5bf5b91c055404ddab778c0c9"}
data/data/parg/un.json ADDED
@@ -0,0 +1 @@
1
+ {"version":"0.1.0","grammar":"PubidUn","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"UN "}},{"Repetition":{"atom":0,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":9}},{"Entity":{"atom":7}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[.]"}},{"Alternative":{"atoms":[4,5,6]}},{"Repetition":{"atom":3,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"token","atom":8}},{"Entity":{"atom":11}},{"Str":{"pattern":"/"}},{"Entity":{"atom":9}},{"Sequence":{"atoms":[10,12]}},{"Repetition":{"atom":13,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1,2,14]}}],"root":15},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"UN/CEFACT/TBG14","expect":{}},{"entry":"identifier","kind":"accept","input":"CEFACT/TBG14","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/un/parser.rb. `token` matches [A-Z0-9.] runs.\n\ngrammar PubidUn version \"0.1.0\" {\n token_char = %x41-5A / %x30-39 / %x2E\n token = (1*token_char) as token\n identifier = [\"UN \"] token 1*(slash token)\n slash = \"/\"\n entry identifier: identifier\n\n test {\n accept \"UN/CEFACT/TBG14\"\n accept \"CEFACT/TBG14\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:1ca1befe71541f581fe67befd3499e399c3a8463c17dcc641e00dba1858a4bbf"}
@@ -0,0 +1 @@
1
+ {"version":"0.1.0","grammar":"PubidW3c","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"W3C "}},{"Entity":{"atom":16}},{"Entity":{"atom":13}},{"Str":{"pattern":"DNOTE"}},{"Str":{"pattern":"NOTE"}},{"Str":{"pattern":"WD"}},{"Str":{"pattern":"CRD"}},{"Str":{"pattern":"CR"}},{"Str":{"pattern":"REC"}},{"Str":{"pattern":"PER"}},{"Str":{"pattern":"PR"}},{"Str":{"pattern":"SPSD"}},{"Str":{"pattern":"OBSL"}},{"Alternative":{"atoms":[3,4,5,6,7,8,9,10,11,12]}},{"Named":{"name":"type","atom":2}},{"Str":{"pattern":"-"}},{"Sequence":{"atoms":[14,15]}},{"Repetition":{"atom":1,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":22}},{"Entity":{"atom":20}},{"Re":{"pattern":"[\\x01-\\u{10ffff}]"}},{"Repetition":{"atom":19,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"rest","atom":21}},{"Sequence":{"atoms":[0,17,18]}}],"root":23},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule type_token: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule type_token: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"W3C REC-html40-19981224","expect":{}},{"entry":"identifier","kind":"accept","input":"W3C NOTE-datetime-19980827","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/w3c/parser.rb: split off the leading maturity token;\n# code/date boundary is builder-side by design. Token order matters for\n# shared prefixes (CRD before CR, PER before PR, DNOTE before NOTE).\n\ngrammar PubidW3c version \"0.1.0\" {\n any_char = %x01-10FFFF\n type_token = \"DNOTE\" / \"NOTE\" / \"WD\" / \"CRD\" / \"CR\" / \"REC\" / \"PER\" / \"PR\" / \"SPSD\" / \"OBSL\"\n type_part = type_token as type \"-\"\n rest = (1*any_char) as rest\n identifier = \"W3C \" [type_part] rest\n entry identifier: identifier\n\n test {\n accept \"W3C REC-html40-19981224\"\n accept \"W3C NOTE-datetime-19980827\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:1bd04533a9817c662357acb14e9aad070df46535c537ee95b67b0aa752016164"}
@@ -0,0 +1 @@
1
+ {"version":"0.1.0","grammar":"PubidXsf","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"XEP "}},{"Entity":{"atom":10}},{"Entity":{"atom":3}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":2,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":8}},{"Str":{"pattern":"README"}},{"Str":{"pattern":"xxxx"}},{"Alternative":{"atoms":[6,7]}},{"Alternative":{"atoms":[4,5]}},{"Named":{"name":"number","atom":9}},{"Sequence":{"atoms":[0,1]}}],"root":11},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"XEP 0001","expect":{}},{"entry":"identifier","kind":"accept","input":"XEP README","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/xsf/parser.rb: \"XEP NNNN\" plus the two named\n# documents (README, xxxx) in SPECIAL_NUMBERS.\n grammar PubidXsf version \"0.1.0\" {\n digit = %x30-39\n special_number = \"README\" / \"xxxx\"\n number = (1*digit / special_number) as number\n identifier = \"XEP \" number\n entry identifier: identifier\n\n test {\n accept \"XEP 0001\"\n accept \"XEP README\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:f70d07de892c58f8386c80aae269fa29f30705100d2aee6266d1bf588f5eeeda"}
data/lib/pubid/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Pubid
4
- VERSION = "2.0.0.pre.alpha.14"
4
+ VERSION = "2.0.0.pre.alpha.16"
5
5
  end
data/lib/pubid.rb CHANGED
@@ -380,13 +380,18 @@ module Pubid
380
380
  # it will annotate a parsed id.
381
381
  return parsed if parsed.to_s == string
382
382
 
383
- # A non-exact parse is still usable — several flavors legitimately
384
- # normalise on render, so the round trip is a preference, not a
385
- # requirement (OGC prints `06-121r9` for `OGC 06-121r9`, and 32 ASHRAE /
386
- # ASME / CSA / IEEE identifiers route only this way). What it must NOT
387
- # come from is a flavor that accepts anything: that is how `iec.60050`
388
- # came back as `IANA iec.60050`. Reporting that no flavor could be
389
- # determined beats inventing one.
383
+ # A non-exact parse is still usable, but only from a flavor with an
384
+ # actual claim on the string — several flavors legitimately normalise
385
+ # on render, so the round trip is a preference, not a requirement (OGC
386
+ # prints `06-121r9` for `OGC 06-121r9`, and 32 ASHRAE / ASME / CSA /
387
+ # IEEE identifiers route only this way). What it must NOT come from is
388
+ # a flavor without a claim, whatever the claim-miss looks like: a
389
+ # flavor that accepts anything (`iec.60050` came back as `IANA
390
+ # iec.60050`), or a flavor whose grammar only parses the string by
391
+ # defaulting what the input never spelled (iec answers `CIE` with
392
+ # `IEC CIE`, astm answers `123` with `ASTM 123`). Reporting that no
393
+ # flavor could be determined beats inventing one.
394
+ next unless prefix_owners.include?(mod)
390
395
  fallback ||= parsed unless accepts_anything?(mod)
391
396
  end
392
397