@pubid/pubid 0.1.31 → 0.1.33

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 (66) hide show
  1. package/artifact/corpus.json.gz +0 -0
  2. package/dist/conformance/implementation.d.ts +4 -0
  3. package/dist/flavors/iec/index.js +12 -5
  4. package/dist/flavors/ieee/index.js +321 -113
  5. package/dist/flavors/ieee/model.d.ts +18 -0
  6. package/dist/flavors/ieee/model.js +62 -8
  7. package/dist/flavors/ieee/preprocessor.js +3 -0
  8. package/dist/flavors/ieee/update_codes.js +1 -1
  9. package/dist/flavors/iho/index.js +198 -35
  10. package/dist/flavors/jis/index.js +74 -2
  11. package/dist/flavors/nist/grammar.js +44 -16
  12. package/dist/flavors/nist/index.js +17 -2
  13. package/dist/implementations/corpus-mode.d.ts +3 -0
  14. package/dist/implementations/corpus-mode.js +7 -0
  15. package/dist/model/identifier.d.ts +3 -0
  16. package/dist/model/identifier.js +5 -0
  17. package/dist/urn/parsers.js +57 -20
  18. package/package.json +2 -2
  19. package/vendor/parg/adobe.json +1 -1
  20. package/vendor/parg/aiee.json +1 -1
  21. package/vendor/parg/amca.json +1 -1
  22. package/vendor/parg/ansi.json +1 -1
  23. package/vendor/parg/api.json +1 -1
  24. package/vendor/parg/ashrae.json +1 -1
  25. package/vendor/parg/asme.json +1 -1
  26. package/vendor/parg/astm.json +1 -1
  27. package/vendor/parg/bipm.json +1 -1
  28. package/vendor/parg/bsi.json +1 -1
  29. package/vendor/parg/calconnect.json +1 -1
  30. package/vendor/parg/ccsds.json +1 -1
  31. package/vendor/parg/cen_cenelec.json +1 -1
  32. package/vendor/parg/cie.json +1 -1
  33. package/vendor/parg/csa.json +1 -1
  34. package/vendor/parg/doi.json +1 -1
  35. package/vendor/parg/easc.json +1 -1
  36. package/vendor/parg/ecma.json +1 -1
  37. package/vendor/parg/etsi.json +1 -1
  38. package/vendor/parg/evs.json +1 -1
  39. package/vendor/parg/gb.json +1 -1
  40. package/vendor/parg/gost.json +1 -1
  41. package/vendor/parg/iala.json +1 -1
  42. package/vendor/parg/iana.json +1 -1
  43. package/vendor/parg/idf.json +1 -1
  44. package/vendor/parg/iec.json +1 -1
  45. package/vendor/parg/ieee.json +1 -29571
  46. package/vendor/parg/ietf.json +1 -1
  47. package/vendor/parg/iho.json +1 -0
  48. package/vendor/parg/ire.json +1 -1
  49. package/vendor/parg/isbn.json +1 -1
  50. package/vendor/parg/iso.json +1 -8510
  51. package/vendor/parg/itu.json +1 -1
  52. package/vendor/parg/jcgm.json +1 -1
  53. package/vendor/parg/jis.json +1 -1
  54. package/vendor/parg/nesc.json +1 -1
  55. package/vendor/parg/nist.json +1 -9588
  56. package/vendor/parg/oasis.json +1 -1
  57. package/vendor/parg/ogc.json +1 -1
  58. package/vendor/parg/oiml.json +1 -1
  59. package/vendor/parg/omg.json +1 -1
  60. package/vendor/parg/parg.json +1 -1
  61. package/vendor/parg/plateau.json +1 -1
  62. package/vendor/parg/sae.json +1 -1
  63. package/vendor/parg/tgpp.json +1 -1
  64. package/vendor/parg/un.json +1 -1
  65. package/vendor/parg/w3c.json +1 -1
  66. package/vendor/parg/xsf.json +1 -1
@@ -1 +1 @@
1
- {"bindings":null,"version":"0.1.0","grammar":"PubidItu","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":737}},{"Entity":{"atom":725}},{"Entity":{"atom":165}},{"Str":{"pattern":"Annex to"}},{"Entity":{"atom":5}},{"Str":{"pattern":" "}},{"Entity":{"atom":163}},{"Entity":{"atom":108}},{"Entity":{"atom":21}},{"Str":{"pattern":"Recommendation "}},{"Str":{"pattern":"ITU"}},{"Entity":{"atom":12}},{"Str":{"pattern":"-"}},{"Entity":{"atom":5}},{"Alternative":{"atoms":[11,13]}},{"Sequence":{"atoms":[9,10,14]}},{"Str":{"pattern":"ITU"}},{"Entity":{"atom":12}},{"Entity":{"atom":5}},{"Alternative":{"atoms":[17,18]}},{"Sequence":{"atoms":[16,19]}},{"Alternative":{"atoms":[15,20]}},{"Entity":{"atom":27}},{"Str":{"pattern":"R"}},{"Str":{"pattern":"T"}},{"Str":{"pattern":"D"}},{"Alternative":{"atoms":[23,24,25]}},{"Named":{"name":"sector","atom":26}},{"Entity":{"atom":5}},{"Sequence":{"atoms":[22,28]}},{"Repetition":{"atom":29,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":33}},{"Str":{"pattern":"OB"}},{"Named":{"name":"series","atom":32}},{"Entity":{"atom":43}},{"Entity":{"atom":36}},{"Str":{"pattern":"."}},{"Entity":{"atom":42}},{"Entity":{"atom":41}},{"Entity":{"atom":40}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":39,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":38}},{"Sequence":{"atoms":[35,37]}},{"Entity":{"atom":49}},{"Entity":{"atom":5}},{"Str":{"pattern":"No."}},{"Entity":{"atom":5}},{"Entity":{"atom":42}},{"Sequence":{"atoms":[45,46,47,48]}},{"Entity":{"atom":53}},{"Entity":{"atom":5}},{"Entity":{"atom":42}},{"Sequence":{"atoms":[51,52]}},{"Alternative":{"atoms":[34,44,50]}},{"Entity":{"atom":94}},{"Entity":{"atom":68}},{"Entity":{"atom":5}},{"Str":{"pattern":"("}},{"Entity":{"atom":41}},{"Named":{"name":"month","atom":59}},{"Str":{"pattern":"/"}},{"Sequence":{"atoms":[60,61]}},{"Repetition":{"atom":62,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":40}},{"Repetition":{"atom":64,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":65}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[57,58,63,66,67]}},{"Entity":{"atom":93}},{"Str":{"pattern":" - "}},{"Entity":{"atom":40}},{"Repetition":{"atom":71,"min":2,"max":2,"tag":"Repetition"}},{"Named":{"name":"day","atom":72}},{"Entity":{"atom":36}},{"Entity":{"atom":87}},{"Str":{"pattern":"XII"}},{"Str":{"pattern":"XI"}},{"Str":{"pattern":"IX"}},{"Str":{"pattern":"VIII"}},{"Str":{"pattern":"VII"}},{"Str":{"pattern":"VI"}},{"Str":{"pattern":"V"}},{"Str":{"pattern":"IV"}},{"Str":{"pattern":"III"}},{"Str":{"pattern":"II"}},{"Str":{"pattern":"I"}},{"Alternative":{"atoms":[76,77,78,79,80,81,82,83,84,85,86]}},{"Named":{"name":"roman_month","atom":75}},{"Entity":{"atom":36}},{"Entity":{"atom":40}},{"Repetition":{"atom":90,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":91}},{"Sequence":{"atoms":[70,73,74,88,89,92]}},{"Alternative":{"atoms":[56,69]}},{"Repetition":{"atom":55,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Entity":{"atom":12}},{"Str":{"pattern":"E"}},{"Str":{"pattern":"F"}},{"Str":{"pattern":"A"}},{"Str":{"pattern":"S"}},{"Str":{"pattern":"C"}},{"Str":{"pattern":"R"}},{"Alternative":{"atoms":[98,99,100,101,102,103]}},{"Named":{"name":"language","atom":104}},{"Sequence":{"atoms":[97,105]}},{"Repetition":{"atom":96,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[8,30,31,54,95,107]}},{"Entity":{"atom":162}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Sequence":{"atoms":[111,112]}},{"Repetition":{"atom":113,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"Operational Bulletin"}},{"Named":{"name":"_op_bull","atom":115}},{"Entity":{"atom":5}},{"Str":{"pattern":"No."}},{"Entity":{"atom":5}},{"Entity":{"atom":42}},{"Entity":{"atom":158}},{"Entity":{"atom":68}},{"Entity":{"atom":157}},{"Entity":{"atom":145}},{"Entity":{"atom":12}},{"Entity":{"atom":132}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[127,128]}},{"Entity":{"atom":40}},{"Entity":{"atom":40}},{"Sequence":{"atoms":[129,130,131]}},{"Named":{"name":"year","atom":126}},{"Entity":{"atom":141}},{"Str":{"pattern":"0"}},{"Re":{"pattern":"[\\x31-\\x39]"}},{"Sequence":{"atoms":[135,136]}},{"Str":{"pattern":"1"}},{"Re":{"pattern":"[\\x30-\\x32]"}},{"Sequence":{"atoms":[138,139]}},{"Alternative":{"atoms":[137,140]}},{"Named":{"name":"month","atom":134}},{"Entity":{"atom":40}},{"Lookahead":{"atom":143,"positive":false}},{"Sequence":{"atoms":[125,133,142,144]}},{"Entity":{"atom":155}},{"Entity":{"atom":12}},{"Str":{"pattern":"I"}},{"Entity":{"atom":40}},{"Entity":{"atom":151}},{"Entity":{"atom":152}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Alternative":{"atoms":[149,150]}},{"Lookahead":{"atom":153,"positive":false}},{"Sequence":{"atoms":[147,148,154]}},{"Repetition":{"atom":146,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[124,156]}},{"Alternative":{"atoms":[122,123]}},{"Repetition":{"atom":121,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":160,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[110,114,116,117,118,119,120,159,161]}},{"Alternative":{"atoms":[7,109]}},{"Named":{"name":"annex_to","atom":6}},{"Sequence":{"atoms":[3,4,164]}},{"Entity":{"atom":163}},{"Entity":{"atom":558}},{"Entity":{"atom":543}},{"Entity":{"atom":509}},{"Entity":{"atom":426}},{"Entity":{"atom":411}},{"Entity":{"atom":323}},{"Entity":{"atom":175}},{"Str":{"pattern":"Report"}},{"Named":{"name":"report_marker","atom":174}},{"Entity":{"atom":5}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":314}},{"Str":{"pattern":"OB"}},{"Entity":{"atom":36}},{"Sequence":{"atoms":[181,182]}},{"Lookahead":{"atom":183,"positive":false}},{"Entity":{"atom":192}},{"Str":{"pattern":"SG"}},{"Entity":{"atom":41}},{"Sequence":{"atoms":[186,187]}},{"Entity":{"atom":151}},{"Repetition":{"atom":189,"min":1,"max":3,"tag":"Repetition"}},{"Alternative":{"atoms":[188,190]}},{"Named":{"name":"series","atom":191}},{"Entity":{"atom":36}},{"Sequence":{"atoms":[185,193]}},{"Repetition":{"atom":194,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":256}},{"Entity":{"atom":226}},{"Str":{"pattern":"Imp"}},{"Named":{"name":"imp_marker","atom":198}},{"Entity":{"atom":41}},{"Entity":{"atom":151}},{"Repetition":{"atom":201,"min":1,"max":3,"tag":"Repetition"}},{"Alternative":{"atoms":[200,202]}},{"Named":{"name":"number","atom":203}},{"Entity":{"atom":209}},{"Entity":{"atom":36}},{"Entity":{"atom":41}},{"Named":{"name":"subseries","atom":207}},{"Sequence":{"atoms":[206,208]}},{"Repetition":{"atom":205,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":225}},{"Entity":{"atom":223}},{"Entity":{"atom":12}},{"Entity":{"atom":219}},{"Entity":{"atom":132}},{"Entity":{"atom":141}},{"Entity":{"atom":40}},{"Lookahead":{"atom":217,"positive":false}},{"Sequence":{"atoms":[215,216,218]}},{"Lookahead":{"atom":214,"positive":false}},{"Entity":{"atom":41}},{"Named":{"name":"part","atom":221}},{"Sequence":{"atoms":[213,220,222]}},{"Repetition":{"atom":212,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"parts","atom":224}},{"Sequence":{"atoms":[199,204,210,211]}},{"Entity":{"atom":255}},{"Entity":{"atom":42}},{"Entity":{"atom":236}},{"Entity":{"atom":235}},{"Str":{"pattern":"bis"}},{"Str":{"pattern":"ter"}},{"Str":{"pattern":"quater"}},{"Str":{"pattern":"quarter"}},{"Alternative":{"atoms":[231,232,233,234]}},{"Named":{"name":"series_suffix","atom":230}},{"Repetition":{"atom":229,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":209}},{"Repetition":{"atom":238,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":225}},{"Entity":{"atom":242}},{"Entity":{"atom":253}},{"Re":{"pattern":"[\\x41-\\x52]"}},{"Re":{"pattern":"[\\x61-\\x72]"}},{"Alternative":{"atoms":[243,244]}},{"Named":{"name":"qualifier","atom":245}},{"Entity":{"atom":152}},{"Entity":{"atom":249}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Entity":{"atom":40}},{"Alternative":{"atoms":[247,248,250]}},{"Lookahead":{"atom":251,"positive":false}},{"Sequence":{"atoms":[246,252]}},{"Repetition":{"atom":241,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[228,237,239,240,254]}},{"Alternative":{"atoms":[197,227]}},{"Entity":{"atom":265}},{"Entity":{"atom":12}},{"Entity":{"atom":151}},{"Repetition":{"atom":259,"min":1,"max":3,"tag":"Repetition"}},{"Entity":{"atom":36}},{"Entity":{"atom":41}},{"Sequence":{"atoms":[260,261,262]}},{"Named":{"name":"range_end","atom":263}},{"Sequence":{"atoms":[258,264]}},{"Repetition":{"atom":257,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":281}},{"Entity":{"atom":273}},{"Entity":{"atom":5}},{"Named":{"name":"series_suffix_spaced","atom":269}},{"Entity":{"atom":235}},{"Named":{"name":"series_suffix","atom":271}},{"Sequence":{"atoms":[270,272]}},{"Repetition":{"atom":268,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":279}},{"Entity":{"atom":5}},{"Named":{"name":"qualifier_spaced","atom":276}},{"Entity":{"atom":253}},{"Sequence":{"atoms":[277,278]}},{"Repetition":{"atom":275,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[274,280]}},{"Entity":{"atom":286}},{"Entity":{"atom":5}},{"Str":{"pattern":"series"}},{"Named":{"name":"series_word","atom":284}},{"Sequence":{"atoms":[283,285]}},{"Repetition":{"atom":282,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":292}},{"Entity":{"atom":5}},{"Str":{"pattern":"attachment"}},{"Named":{"name":"attachment","atom":290}},{"Sequence":{"atoms":[289,291]}},{"Repetition":{"atom":288,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":310}},{"Entity":{"atom":5}},{"Str":{"pattern":"(V"}},{"Entity":{"atom":41}},{"Named":{"name":"version","atom":297}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[296,298,299]}},{"Str":{"pattern":"V"}},{"Str":{"pattern":"v"}},{"Alternative":{"atoms":[301,302]}},{"Entity":{"atom":36}},{"Repetition":{"atom":304,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":41}},{"Named":{"name":"version","atom":306}},{"Sequence":{"atoms":[303,305,307]}},{"Alternative":{"atoms":[300,308]}},{"Sequence":{"atoms":[295,309]}},{"Repetition":{"atom":294,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":158}},{"Repetition":{"atom":312,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[184,195,196,266,267,287,293,311,313]}},{"Sequence":{"atoms":[173,176,177,178,179,180]}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":175}},{"Entity":{"atom":5}},{"Entity":{"atom":314}},{"Sequence":{"atoms":[316,317,318,319,320,321]}},{"Alternative":{"atoms":[315,322]}},{"Entity":{"atom":371}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":333}},{"Str":{"pattern":"REC"}},{"Entity":{"atom":5}},{"Entity":{"atom":12}},{"Alternative":{"atoms":[330,331]}},{"Sequence":{"atoms":[329,332]}},{"Repetition":{"atom":328,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":192}},{"Entity":{"atom":36}},{"Entity":{"atom":256}},{"Entity":{"atom":265}},{"Repetition":{"atom":338,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":281}},{"Entity":{"atom":361}},{"Entity":{"atom":359}},{"Str":{"pattern":"/"}},{"Entity":{"atom":192}},{"Entity":{"atom":36}},{"Entity":{"atom":41}},{"Named":{"name":"number","atom":346}},{"Entity":{"atom":209}},{"Repetition":{"atom":348,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":225}},{"Entity":{"atom":242}},{"Repetition":{"atom":351,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":273}},{"Repetition":{"atom":353,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":279}},{"Repetition":{"atom":355,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[344,345,347,349,350,352,354,356]}},{"Named":{"name":"designation","atom":357}},{"Sequence":{"atoms":[343,358]}},{"Repetition":{"atom":342,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"combined","atom":360}},{"Repetition":{"atom":341,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":286}},{"Repetition":{"atom":363,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":292}},{"Repetition":{"atom":365,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":310}},{"Repetition":{"atom":367,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":158}},{"Repetition":{"atom":369,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[325,326,327,334,335,336,337,339,340,362,364,366,368,370]}},{"Entity":{"atom":384}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":256}},{"Entity":{"atom":281}},{"Entity":{"atom":292}},{"Repetition":{"atom":378,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":310}},{"Repetition":{"atom":380,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":158}},{"Repetition":{"atom":382,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[373,374,375,376,377,379,381,383]}},{"Entity":{"atom":410}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":405}},{"Str":{"pattern":"OB"}},{"Entity":{"atom":12}},{"Sequence":{"atoms":[390,391]}},{"Lookahead":{"atom":392,"positive":false}},{"Entity":{"atom":151}},{"Repetition":{"atom":394,"min":2,"max":null,"tag":"Repetition"}},{"Named":{"name":"series","atom":395}},{"Entity":{"atom":12}},{"Named":{"name":"series_dash","atom":397}},{"Entity":{"atom":41}},{"Entity":{"atom":151}},{"Repetition":{"atom":400,"min":1,"max":null,"tag":"Repetition"}},{"Alternative":{"atoms":[399,401]}},{"Named":{"name":"number","atom":402}},{"Entity":{"atom":225}},{"Sequence":{"atoms":[393,396,398,403,404]}},{"Entity":{"atom":310}},{"Repetition":{"atom":406,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":158}},{"Repetition":{"atom":408,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[386,387,388,389,407,409]}},{"Alternative":{"atoms":[172,324,372,385]}},{"Named":{"name":"base","atom":171}},{"Entity":{"atom":5}},{"Str":{"pattern":"Annex"}},{"Entity":{"atom":5}},{"Entity":{"atom":422}},{"Entity":{"atom":151}},{"Entity":{"atom":41}},{"Repetition":{"atom":418,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"+"}},{"Repetition":{"atom":420,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[417,419,421]}},{"Named":{"name":"annex_number","atom":416}},{"Entity":{"atom":158}},{"Repetition":{"atom":424,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[412,413,414,415,423,425]}},{"Named":{"name":"base","atom":170}},{"Entity":{"atom":452}},{"Entity":{"atom":411}},{"Named":{"name":"base","atom":429}},{"Entity":{"atom":5}},{"Str":{"pattern":"App."}},{"Entity":{"atom":5}},{"Repetition":{"atom":433,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":440}},{"Re":{"pattern":"[I]"}},{"Re":{"pattern":"[V]"}},{"Re":{"pattern":"[X]"}},{"Alternative":{"atoms":[436,437,438]}},{"Repetition":{"atom":439,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"appendix_number","atom":435}},{"Entity":{"atom":448}},{"Entity":{"atom":5}},{"Str":{"pattern":"test vectors"}},{"Str":{"pattern":"Software"}},{"Alternative":{"atoms":[444,445]}},{"Named":{"name":"appendix_material","atom":446}},{"Sequence":{"atoms":[443,447]}},{"Repetition":{"atom":442,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":158}},{"Repetition":{"atom":450,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[430,431,432,434,441,449,451]}},{"Named":{"name":"base","atom":428}},{"Entity":{"atom":411}},{"Named":{"name":"base","atom":454}},{"Alternative":{"atoms":[427,453,455]}},{"Entity":{"atom":5}},{"Entity":{"atom":480}},{"Str":{"pattern":"Suppl."}},{"Str":{"pattern":"Suppl"}},{"Str":{"pattern":"Amd."}},{"Str":{"pattern":"Amd"}},{"Str":{"pattern":"Add."}},{"Str":{"pattern":"Add"}},{"Str":{"pattern":"Err."}},{"Str":{"pattern":"Err"}},{"Alternative":{"atoms":[459,460,461,462,463,464,465,466]}},{"Named":{"name":"supplement_type","atom":467}},{"Entity":{"atom":473}},{"Str":{"pattern":"Technical"}},{"Named":{"name":"technical","atom":470}},{"Entity":{"atom":5}},{"Sequence":{"atoms":[471,472]}},{"Repetition":{"atom":469,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"Cor."}},{"Str":{"pattern":"Cor"}},{"Alternative":{"atoms":[475,476]}},{"Named":{"name":"supplement_type","atom":477}},{"Sequence":{"atoms":[474,478]}},{"Alternative":{"atoms":[468,479]}},{"Entity":{"atom":492}},{"Entity":{"atom":5}},{"Named":{"name":"supplement_space","atom":482}},{"Repetition":{"atom":483,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":41}},{"Entity":{"atom":36}},{"Entity":{"atom":41}},{"Sequence":{"atoms":[486,487]}},{"Repetition":{"atom":488,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[485,489]}},{"Named":{"name":"supplement_number","atom":490}},{"Sequence":{"atoms":[484,491]}},{"Entity":{"atom":505}},{"Entity":{"atom":5}},{"Str":{"pattern":"("}},{"Entity":{"atom":41}},{"Named":{"name":"supplement_month","atom":496}},{"Str":{"pattern":"/"}},{"Sequence":{"atoms":[497,498]}},{"Repetition":{"atom":499,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":40}},{"Repetition":{"atom":501,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"supplement_year","atom":502}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[494,495,500,503,504]}},{"Repetition":{"atom":493,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":507,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[456,457,458,481,506,508]}},{"Entity":{"atom":533}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":521}},{"Entity":{"atom":151}},{"Entity":{"atom":41}},{"Repetition":{"atom":516,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":12}},{"Entity":{"atom":41}},{"Sequence":{"atoms":[515,517,518,519]}},{"Named":{"name":"series","atom":520}},{"Entity":{"atom":192}},{"Alternative":{"atoms":[514,522]}},{"Entity":{"atom":286}},{"Repetition":{"atom":524,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":5}},{"Entity":{"atom":480}},{"Entity":{"atom":492}},{"Entity":{"atom":505}},{"Repetition":{"atom":529,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":531,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[511,512,513,523,525,526,527,528,530,532]}},{"Alternative":{"atoms":[169,510]}},{"Named":{"name":"base","atom":534}},{"Entity":{"atom":5}},{"Entity":{"atom":480}},{"Entity":{"atom":492}},{"Entity":{"atom":505}},{"Repetition":{"atom":539,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":541,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[535,536,537,538,540,542]}},{"Entity":{"atom":555}},{"Entity":{"atom":509}},{"Named":{"name":"base","atom":545}},{"Str":{"pattern":"/"}},{"Named":{"name":"supplement_slash","atom":547}},{"Entity":{"atom":480}},{"Entity":{"atom":492}},{"Entity":{"atom":505}},{"Repetition":{"atom":551,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":553,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[546,548,549,550,552,554]}},{"Entity":{"atom":509}},{"Entity":{"atom":533}},{"Alternative":{"atoms":[168,544,556,557]}},{"Entity":{"atom":563}},{"Entity":{"atom":426}},{"Entity":{"atom":106}},{"Repetition":{"atom":561,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[560,562]}},{"Entity":{"atom":568}},{"Entity":{"atom":452}},{"Entity":{"atom":106}},{"Repetition":{"atom":566,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[565,567]}},{"Entity":{"atom":573}},{"Entity":{"atom":323}},{"Entity":{"atom":106}},{"Repetition":{"atom":571,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[570,572]}},{"Entity":{"atom":584}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":42}},{"Entity":{"atom":36}},{"Str":{"pattern":"HDB"}},{"Named":{"name":"handbook_marker","atom":580}},{"Entity":{"atom":158}},{"Repetition":{"atom":582,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[575,576,577,578,579,581,583]}},{"Entity":{"atom":598}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":42}},{"Entity":{"atom":225}},{"Str":{"pattern":"/"}},{"Entity":{"atom":41}},{"Named":{"name":"study_group","atom":592}},{"Sequence":{"atoms":[591,593]}},{"Str":{"pattern":":"}},{"Named":{"name":"question_colon","atom":595}},{"Repetition":{"atom":596,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[586,587,588,589,590,594,597]}},{"Entity":{"atom":623}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":192}},{"Entity":{"atom":36}},{"Str":{"pattern":"["}},{"Named":{"name":"bracketed","atom":605}},{"Entity":{"atom":615}},{"Entity":{"atom":42}},{"Str":{"pattern":"/BL"}},{"Named":{"name":"has_bl","atom":609}},{"Repetition":{"atom":610,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"/"}},{"Entity":{"atom":41}},{"Named":{"name":"study_group","atom":613}},{"Sequence":{"atoms":[608,611,612,614]}},{"Str":{"pattern":"]"}},{"Sequence":{"atoms":[606,607,616]}},{"Entity":{"atom":615}},{"Alternative":{"atoms":[617,618]}},{"Str":{"pattern":":"}},{"Named":{"name":"question_colon","atom":620}},{"Repetition":{"atom":621,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[600,601,602,603,604,619,622]}},{"Entity":{"atom":644}},{"Entity":{"atom":21}},{"Str":{"pattern":"R"}},{"Named":{"name":"sector","atom":626}},{"Entity":{"atom":5}},{"Str":{"pattern":"RR"}},{"Named":{"name":"radio_regulations","atom":629}},{"Entity":{"atom":68}},{"Entity":{"atom":12}},{"Entity":{"atom":40}},{"Repetition":{"atom":633,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":634}},{"Sequence":{"atoms":[632,635]}},{"Alternative":{"atoms":[631,636]}},{"Repetition":{"atom":637,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":639,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":642}},{"Re":{"pattern":"[\\x00-\\u{10ffff}]"}},{"Lookahead":{"atom":641,"positive":false}},{"Sequence":{"atoms":[625,627,628,630,638,640,643]}},{"Entity":{"atom":669}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":333}},{"Repetition":{"atom":649,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":192}},{"Entity":{"atom":36}},{"Entity":{"atom":256}},{"Entity":{"atom":265}},{"Repetition":{"atom":654,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":281}},{"Entity":{"atom":361}},{"Repetition":{"atom":657,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":286}},{"Repetition":{"atom":659,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":292}},{"Repetition":{"atom":661,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":310}},{"Repetition":{"atom":663,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":158}},{"Repetition":{"atom":665,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":667,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[646,647,648,650,651,652,653,655,656,658,660,662,664,666,668]}},{"Entity":{"atom":681}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":192}},{"Str":{"pattern":"-C"}},{"Named":{"name":"contribution_marker","atom":675}},{"Entity":{"atom":42}},{"Entity":{"atom":225}},{"Entity":{"atom":106}},{"Repetition":{"atom":679,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[671,672,673,674,676,677,678,680]}},{"Entity":{"atom":686}},{"Entity":{"atom":410}},{"Entity":{"atom":106}},{"Repetition":{"atom":684,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[683,685]}},{"Entity":{"atom":701}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":256}},{"Entity":{"atom":281}},{"Entity":{"atom":292}},{"Repetition":{"atom":693,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":310}},{"Repetition":{"atom":695,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":158}},{"Repetition":{"atom":697,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":699,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[688,689,690,691,692,694,696,698,700]}},{"Entity":{"atom":724}},{"Entity":{"atom":27}},{"Entity":{"atom":12}},{"Str":{"pattern":"REC"}},{"Entity":{"atom":12}},{"Entity":{"atom":192}},{"Entity":{"atom":36}},{"Entity":{"atom":256}},{"Entity":{"atom":145}},{"Entity":{"atom":720}},{"Entity":{"atom":12}},{"Str":{"pattern":"I"}},{"Str":{"pattern":"S"}},{"Alternative":{"atoms":[713,714]}},{"Entity":{"atom":40}},{"Entity":{"atom":151}},{"Alternative":{"atoms":[716,717]}},{"Lookahead":{"atom":718,"positive":false}},{"Sequence":{"atoms":[712,715,719]}},{"Repetition":{"atom":711,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":722,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[703,704,705,706,707,708,709,710,721,723]}},{"Alternative":{"atoms":[2,166,167,559,564,569,574,585,599,624,645,670,682,687,702]}},{"Entity":{"atom":736}},{"Entity":{"atom":5}},{"Str":{"pattern":"|"}},{"Entity":{"atom":5}},{"Entity":{"atom":733}},{"Re":{"pattern":"[\\x01-\\x7b]"}},{"Re":{"pattern":"[\\x7d-\\u{10ffff}]"}},{"Alternative":{"atoms":[731,732]}},{"Repetition":{"atom":730,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[727,728,729,734]}},{"Named":{"name":"common_text_twin","atom":735}},{"Sequence":{"atoms":[1,726]}},{"Entity":{"atom":725}},{"Alternative":{"atoms":[0,738]}}],"root":739},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule non_pipe: branches 1 and 2 are order-dependent (first set not statically known)","rule series_suffix_word: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule base_report: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule base: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule base: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule base: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule base: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule base: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule base: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule supplement_identifier: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule supplement_identifier: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule supplement_identifier: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule supplement_identifier: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule supplement_identifier: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule supplement_identifier: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 3 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 3 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 3 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 3 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 4 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 5 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 8 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 8 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 8 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 9 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 9 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 10 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule ob_date: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule special_publication: branches 1 and 2 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 itu_identifier: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 6 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 6 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 6 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 6 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 6 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 6 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 6 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 6 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 7 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 7 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 7 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 7 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 7 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 7 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 7 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 8 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 8 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 8 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 8 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 8 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 8 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 8 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 9 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 9 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 9 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 9 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 9 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 9 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 10 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 10 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 10 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 10 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 10 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 11 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 11 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 11 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 11 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 12 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 12 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 12 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 13 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 13 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 14 and 15 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"ITU-R BT.500","expect":{}},{"entry":"identifier","kind":"accept","input":"Recommendation ITU-T G.650.1 (09/2020)","expect":{}},{"entry":"identifier","kind":"accept","input":"ITU-R SA.3631 Annex A","expect":{}},{"entry":"identifier","kind":"accept","input":"ITU-T OB.101 (2016)","expect":{}},{"entry":"identifier","kind":"accept","input":"Annex to ITU-T OB.101","expect":{}},{"entry":"identifier","kind":"accept","input":"ITU-T E.164/2","expect":{}},{"entry":"identifier","kind":"accept","input":"ITU-T 55/13:","expect":{}},{"entry":"identifier","kind":"accept","input":"ITU-T G.984.2 Amd. 1 (2010)","expect":{}},{"entry":"identifier","kind":"accept","input":"ITU-T G.650.1B","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/itu/parser.rb — ITU-T/R/D designations: series codes\n# (BT/G/V, SGnn), Imp implementation codes, OB Operational Bulletins,\n# Reports, Study Group questions (numeric and bracketed series form),\n# supplements (Suppl./Amd./Add./Err./Cor. with Technical marker), Annex\n# and App. wraps, combined \"/XX.N\" designations, and the \"| twin\"\n# common-text form. Internal rule `itu_identifier` corresponds to the\n# source's `identifier` (renamed: PG forbids self-reference from the\n# common-text wrapper).\n\ngrammar PubidItu version \"0.1.0\" {\n digit = %x30-39\n upper = %x41-5A\n lower = %x61-7A\n letter = upper\n digits = 1*digit\n space = \" \"\n dash = \"-\"\n dot = \".\"\n non_pipe = %x01-7B / %x7D-10FFFF\n\n itu_prefix = (\"Recommendation \" \"ITU\" (dash / space)) / (\"ITU\" (dash / space))\n sector = (\"R\" / \"T\" / \"D\") as sector\n series = ((\"SG\" digits) / (1*3letter)) as series\n series_group = (letter [digits] dash digits) as series\n series_word = space \"series\" as series_word\n number = digits as number\n subseries = dot digits as subseries\n series_suffix_word = \"bis\" / \"ter\" / \"quater\" / \"quarter\"\n series_suffix = (series_suffix_word) as series_suffix\n series_suffix_spaced = (space as series_suffix_spaced) ((series_suffix_word) as series_suffix)\n qualifier_letter = ((%x41-52 / %x61-72) as qualifier) !(upper / lower / digit)\n qualifier_glued = qualifier_letter\n qualifier_spaced = (space as qualifier_spaced) qualifier_letter\n yyyymm_year = (\"19\" / \"20\") digit digit\n yyyymm_month = (\"0\" %x31-39) / (\"1\" %x30-32)\n yyyymm_shape = yyyymm_year yyyymm_month !digit\n yyyymm_date = dash (yyyymm_year) as year (yyyymm_month) as month !digit\n id_status = dash (\"I\" / \"S\") !(digit / letter)\n print_id_status = dash \"I\" !(digit / letter)\n id_date = yyyymm_date [print_id_status]\n document_date = (date_part / id_date)\n rec_word = (\"REC\" (space / dash))\n publication_id = sector dash \"REC\" dash series dot code yyyymm_date [id_status] [language]\n code_suffixes = [series_suffix_spaced] [qualifier_spaced]\n attachment = space \"attachment\" as attachment\n range_end = dash ((1*3letter dot digits) as range_end)\n part = dash !yyyymm_shape digits as part\n parts = (*part) as parts\n code = imp_code / standard_code\n standard_code = number [series_suffix] [subseries] parts [qualifier_glued]\n imp_code = \"Imp\" as imp_marker ((digits / (1*3letter)) as number) [subseries] parts\n date_part = space \"(\" [(digits as month \"/\")] ((4digit) as year) \")\"\n version_part = space (((\"(V\" digits as version \")\") / ((\"V\" / \"v\") [dot] digits as version)))\n language = dash ((\"E\" / \"F\" / \"A\" / \"S\" / \"C\" / \"R\") as language)\n\n combined_designation = \"/\" ((series dot digits as number [subseries] parts [qualifier_glued] [series_suffix_spaced] [qualifier_spaced]) as designation)\n combined_suffixes = (1*combined_designation) as combined\n\n technical_marker = \"Technical\" as technical space\n supplement_type = ((\"Suppl.\" / \"Suppl\" / \"Amd.\" / \"Amd\" / \"Add.\" / \"Add\" / \"Err.\" / \"Err\") as supplement_type) / (([technical_marker] (\"Cor.\" / \"Cor\") as supplement_type))\n supplement_number = ([space as supplement_space]) ((digits *(dot digits)) as supplement_number)\n supplement_date = space \"(\" [(digits as supplement_month \"/\")] ((4digit) as supplement_year) \")\"\n\n base_with_series = itu_prefix sector space [rec_word] series dot code [range_end] code_suffixes [combined_suffixes] [series_word] [attachment] [version_part] [document_date]\n base_without_series = itu_prefix sector space code code_suffixes [attachment] [version_part] [document_date]\n series_code_body = !(\"OB\" dash) ((2*letter) as series) (dash as series_dash) ((digits / (1*letter)) as number) parts\n contribution = itu_prefix sector space series (\"-C\" as contribution_marker) number parts [language]\n base_series_code = itu_prefix sector space series_code_body [version_part] [document_date]\n series_code_identifier = base_series_code [language]\n report_word = \"Report\" as report_marker\n report_body = !(\"OB\" dot) [(series dot)] code [range_end] code_suffixes [series_word] [attachment] [version_part] [document_date]\n base_report = (report_word space itu_prefix sector space report_body) / (itu_prefix sector space report_word space report_body)\n report_identifier = base_report [language]\n base = base_report / base_with_series / base_without_series / base_series_code\n\n annex_label = letter [digits] [\"+\"]\n annex_body = (base as base) space \"Annex\" space annex_label as annex_number [document_date]\n annex_identifier = annex_body [language]\n roman = 1*(%x49 / %x56 / %x58)\n appendix_material = space ((\"test vectors\" / \"Software\") as appendix_material)\n appendix_body = (base as base) space \"App.\" [space] roman as appendix_number [appendix_material] [document_date]\n appendix_identifier = appendix_body [language]\n\n supplement_with_base = ((annex_body as base) / (appendix_body as base) / (base as base)) space supplement_type supplement_number [supplement_date] [language]\n chained_supplement = ((supplement_with_base / supplement_series_only) as base) space supplement_type supplement_number [supplement_date] [language]\n supplement_series_only = itu_prefix sector space (series_group / series) [series_word] space supplement_type supplement_number [supplement_date] [language]\n slash_chained_supplement = ((supplement_with_base) as base) (\"/\" as supplement_slash) supplement_type supplement_number [supplement_date] [language]\n supplement_identifier = chained_supplement / slash_chained_supplement / supplement_with_base / supplement_series_only\n\n with_series = itu_prefix sector space [rec_word] series dot code [range_end] code_suffixes [combined_suffixes] [series_word] [attachment] [version_part] [document_date] [language]\n without_series = itu_prefix sector space code code_suffixes [attachment] [version_part] [document_date] [language]\n\n roman_month = \"XII\" / \"XI\" / \"IX\" / \"VIII\" / \"VII\" / \"VI\" / \"V\" / \"IV\" / \"III\" / \"II\" / \"I\"\n ob_roman_date = \" - \" (2digit) as day dot (roman_month as roman_month) dot (4digit) as year\n ob_date = (date_part / ob_roman_date)\n ob_series = \"OB\" as series\n ob_dot_body = dot number\n ob_no_body = space \"No.\" space number\n ob_bare_body = space number\n ob_with_sector = itu_prefix [(sector space)] ob_series (ob_dot_body / ob_no_body / ob_bare_body) [ob_date] [language]\n ob_long_form = itu_prefix [(sector space)] \"Operational Bulletin\" as _op_bull space \"No.\" space number [document_date] [language]\n special_publication = ob_with_sector / ob_long_form\n annex_to_identifier = \"Annex to\" space (special_publication as annex_to)\n handbook = itu_prefix sector space number dot \"HDB\" as handbook_marker [document_date]\n numeric_question = itu_prefix sector space number parts (\"/\" digits as study_group) [\":\" as question_colon]\n question_tail = number [(\"/BL\" as has_bl)] \"/\" digits as study_group\n letter_question = itu_prefix sector space series dot (((\"[\" as bracketed) question_tail \"]\") / question_tail) [\":\" as question_colon]\n common_text_twin = (space \"|\" space (1*non_pipe)) as common_text_twin\n\n identifier = common_text_identifier / itu_identifier\n any_char = %x00-10FFFF\n radio_regulations = itu_prefix (\"R\") as sector space \"RR\" as radio_regulations [(date_part / (dash (4digit) as year))] [language] !any_char\n itu_identifier = annex_to_identifier / special_publication / supplement_identifier / annex_identifier / appendix_identifier / report_identifier / handbook / numeric_question / letter_question / radio_regulations / with_series / contribution / series_code_identifier / without_series / publication_id\n common_text_identifier = itu_identifier common_text_twin\n\n entry identifier: identifier\n\n test {\n accept \"ITU-R BT.500\"\n accept \"Recommendation ITU-T G.650.1 (09/2020)\"\n accept \"ITU-R SA.3631 Annex A\"\n accept \"ITU-T OB.101 (2016)\"\n accept \"Annex to ITU-T OB.101\"\n accept \"ITU-T E.164/2\"\n accept \"ITU-T 55/13:\"\n accept \"ITU-T G.984.2 Amd. 1 (2010)\"\n accept \"ITU-T G.650.1B\"\n reject \"nonsense\"\n }\n}\n","source_hash":"89091685373032a99dd826a0ebf32f4643129e2a4c07e425cec6ebf8e913c15e","compiler_version":"1.3.93","checksum":"sha256:2d29f2a4442e6103c75b21c453d5fbc5fd72217b44e3ec796dafb9b6c9021b9e"}
1
+ {"bindings":null,"version":"0.1.0","grammar":"PubidItu","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":800}},{"Entity":{"atom":788}},{"Entity":{"atom":163}},{"Str":{"pattern":"Annex to"}},{"Entity":{"atom":5}},{"Str":{"pattern":" "}},{"Entity":{"atom":161}},{"Entity":{"atom":108}},{"Entity":{"atom":21}},{"Str":{"pattern":"Recommendation "}},{"Str":{"pattern":"ITU"}},{"Entity":{"atom":12}},{"Str":{"pattern":"-"}},{"Entity":{"atom":5}},{"Alternative":{"atoms":[11,13]}},{"Sequence":{"atoms":[9,10,14]}},{"Str":{"pattern":"ITU"}},{"Entity":{"atom":12}},{"Entity":{"atom":5}},{"Alternative":{"atoms":[17,18]}},{"Sequence":{"atoms":[16,19]}},{"Alternative":{"atoms":[15,20]}},{"Entity":{"atom":27}},{"Str":{"pattern":"R"}},{"Str":{"pattern":"T"}},{"Str":{"pattern":"D"}},{"Alternative":{"atoms":[23,24,25]}},{"Named":{"name":"sector","atom":26}},{"Entity":{"atom":5}},{"Sequence":{"atoms":[22,28]}},{"Repetition":{"atom":29,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":33}},{"Str":{"pattern":"OB"}},{"Named":{"name":"series","atom":32}},{"Entity":{"atom":42}},{"Entity":{"atom":36}},{"Str":{"pattern":"."}},{"Entity":{"atom":41}},{"Entity":{"atom":39}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":38,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":40}},{"Sequence":{"atoms":[35,37]}},{"Entity":{"atom":48}},{"Entity":{"atom":5}},{"Str":{"pattern":"No."}},{"Entity":{"atom":5}},{"Entity":{"atom":41}},{"Sequence":{"atoms":[44,45,46,47]}},{"Entity":{"atom":52}},{"Entity":{"atom":5}},{"Entity":{"atom":41}},{"Sequence":{"atoms":[50,51]}},{"Alternative":{"atoms":[34,43,49]}},{"Entity":{"atom":94}},{"Entity":{"atom":68}},{"Entity":{"atom":5}},{"Str":{"pattern":"("}},{"Entity":{"atom":39}},{"Repetition":{"atom":58,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"month","atom":59}},{"Str":{"pattern":"/"}},{"Sequence":{"atoms":[60,61]}},{"Repetition":{"atom":62,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":39}},{"Repetition":{"atom":64,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":65}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[56,57,63,66,67]}},{"Entity":{"atom":93}},{"Str":{"pattern":" - "}},{"Entity":{"atom":39}},{"Repetition":{"atom":71,"min":2,"max":2,"tag":"Repetition"}},{"Named":{"name":"day","atom":72}},{"Entity":{"atom":36}},{"Entity":{"atom":87}},{"Str":{"pattern":"XII"}},{"Str":{"pattern":"XI"}},{"Str":{"pattern":"IX"}},{"Str":{"pattern":"VIII"}},{"Str":{"pattern":"VII"}},{"Str":{"pattern":"VI"}},{"Str":{"pattern":"V"}},{"Str":{"pattern":"IV"}},{"Str":{"pattern":"III"}},{"Str":{"pattern":"II"}},{"Str":{"pattern":"I"}},{"Alternative":{"atoms":[76,77,78,79,80,81,82,83,84,85,86]}},{"Named":{"name":"roman_month","atom":75}},{"Entity":{"atom":36}},{"Entity":{"atom":39}},{"Repetition":{"atom":90,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":91}},{"Sequence":{"atoms":[70,73,74,88,89,92]}},{"Alternative":{"atoms":[55,69]}},{"Repetition":{"atom":54,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Entity":{"atom":12}},{"Str":{"pattern":"E"}},{"Str":{"pattern":"F"}},{"Str":{"pattern":"A"}},{"Str":{"pattern":"S"}},{"Str":{"pattern":"C"}},{"Str":{"pattern":"R"}},{"Alternative":{"atoms":[98,99,100,101,102,103]}},{"Named":{"name":"language","atom":104}},{"Sequence":{"atoms":[97,105]}},{"Repetition":{"atom":96,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[8,30,31,53,95,107]}},{"Entity":{"atom":160}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Sequence":{"atoms":[111,112]}},{"Repetition":{"atom":113,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"Operational Bulletin"}},{"Named":{"name":"_op_bull","atom":115}},{"Entity":{"atom":5}},{"Str":{"pattern":"No."}},{"Entity":{"atom":5}},{"Entity":{"atom":41}},{"Entity":{"atom":156}},{"Entity":{"atom":68}},{"Entity":{"atom":155}},{"Entity":{"atom":143}},{"Entity":{"atom":12}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[126,127]}},{"Entity":{"atom":39}},{"Entity":{"atom":39}},{"Sequence":{"atoms":[128,129,130]}},{"Named":{"name":"year","atom":131}},{"Str":{"pattern":"0"}},{"Re":{"pattern":"[\\x31-\\x39]"}},{"Sequence":{"atoms":[133,134]}},{"Str":{"pattern":"1"}},{"Re":{"pattern":"[\\x30-\\x32]"}},{"Sequence":{"atoms":[136,137]}},{"Alternative":{"atoms":[135,138]}},{"Named":{"name":"month","atom":139}},{"Entity":{"atom":39}},{"Lookahead":{"atom":141,"positive":false}},{"Sequence":{"atoms":[125,132,140,142]}},{"Entity":{"atom":153}},{"Entity":{"atom":12}},{"Str":{"pattern":"I"}},{"Entity":{"atom":39}},{"Entity":{"atom":149}},{"Entity":{"atom":150}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Alternative":{"atoms":[147,148]}},{"Lookahead":{"atom":151,"positive":false}},{"Sequence":{"atoms":[145,146,152]}},{"Repetition":{"atom":144,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[124,154]}},{"Alternative":{"atoms":[122,123]}},{"Repetition":{"atom":121,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":158,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[110,114,116,117,118,119,120,157,159]}},{"Alternative":{"atoms":[7,109]}},{"Named":{"name":"annex_to","atom":6}},{"Sequence":{"atoms":[3,4,162]}},{"Entity":{"atom":161}},{"Entity":{"atom":618}},{"Entity":{"atom":603}},{"Entity":{"atom":567}},{"Entity":{"atom":482}},{"Entity":{"atom":467}},{"Entity":{"atom":341}},{"Entity":{"atom":173}},{"Str":{"pattern":"Report"}},{"Named":{"name":"report_marker","atom":172}},{"Entity":{"atom":5}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":332}},{"Str":{"pattern":"OB"}},{"Entity":{"atom":36}},{"Sequence":{"atoms":[179,180]}},{"Lookahead":{"atom":181,"positive":false}},{"Entity":{"atom":191}},{"Str":{"pattern":"SG"}},{"Entity":{"atom":39}},{"Repetition":{"atom":185,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[184,186]}},{"Entity":{"atom":150}},{"Repetition":{"atom":188,"min":1,"max":3,"tag":"Repetition"}},{"Alternative":{"atoms":[187,189]}},{"Named":{"name":"series","atom":190}},{"Entity":{"atom":36}},{"Sequence":{"atoms":[183,192]}},{"Repetition":{"atom":193,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":271}},{"Entity":{"atom":241}},{"Str":{"pattern":"Imp"}},{"Named":{"name":"imp_marker","atom":197}},{"Entity":{"atom":39}},{"Repetition":{"atom":199,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":150}},{"Repetition":{"atom":201,"min":1,"max":3,"tag":"Repetition"}},{"Alternative":{"atoms":[200,202]}},{"Named":{"name":"number","atom":203}},{"Entity":{"atom":210}},{"Entity":{"atom":36}},{"Entity":{"atom":39}},{"Repetition":{"atom":207,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"subseries","atom":208}},{"Sequence":{"atoms":[206,209]}},{"Repetition":{"atom":205,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":240}},{"Entity":{"atom":238}},{"Entity":{"atom":12}},{"Entity":{"atom":233}},{"Entity":{"atom":222}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[217,218]}},{"Entity":{"atom":39}},{"Entity":{"atom":39}},{"Sequence":{"atoms":[219,220,221]}},{"Entity":{"atom":230}},{"Str":{"pattern":"0"}},{"Re":{"pattern":"[\\x31-\\x39]"}},{"Sequence":{"atoms":[224,225]}},{"Str":{"pattern":"1"}},{"Re":{"pattern":"[\\x30-\\x32]"}},{"Sequence":{"atoms":[227,228]}},{"Alternative":{"atoms":[226,229]}},{"Entity":{"atom":39}},{"Lookahead":{"atom":231,"positive":false}},{"Sequence":{"atoms":[216,223,232]}},{"Lookahead":{"atom":215,"positive":false}},{"Entity":{"atom":39}},{"Repetition":{"atom":235,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"part","atom":236}},{"Sequence":{"atoms":[214,234,237]}},{"Repetition":{"atom":213,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"parts","atom":239}},{"Sequence":{"atoms":[198,204,211,212]}},{"Entity":{"atom":270}},{"Entity":{"atom":41}},{"Entity":{"atom":251}},{"Entity":{"atom":250}},{"Str":{"pattern":"bis"}},{"Str":{"pattern":"ter"}},{"Str":{"pattern":"quater"}},{"Str":{"pattern":"quarter"}},{"Alternative":{"atoms":[246,247,248,249]}},{"Named":{"name":"series_suffix","atom":245}},{"Repetition":{"atom":244,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":210}},{"Repetition":{"atom":253,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":240}},{"Entity":{"atom":257}},{"Entity":{"atom":268}},{"Re":{"pattern":"[\\x41-\\x52]"}},{"Re":{"pattern":"[\\x61-\\x72]"}},{"Alternative":{"atoms":[258,259]}},{"Named":{"name":"qualifier","atom":260}},{"Entity":{"atom":150}},{"Entity":{"atom":264}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Entity":{"atom":39}},{"Alternative":{"atoms":[262,263,265]}},{"Lookahead":{"atom":266,"positive":false}},{"Sequence":{"atoms":[261,267]}},{"Repetition":{"atom":256,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[243,252,254,255,269]}},{"Alternative":{"atoms":[196,242]}},{"Entity":{"atom":281}},{"Entity":{"atom":12}},{"Entity":{"atom":150}},{"Repetition":{"atom":274,"min":1,"max":3,"tag":"Repetition"}},{"Entity":{"atom":36}},{"Entity":{"atom":39}},{"Repetition":{"atom":277,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[275,276,278]}},{"Named":{"name":"range_end","atom":279}},{"Sequence":{"atoms":[273,280]}},{"Repetition":{"atom":272,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":297}},{"Entity":{"atom":289}},{"Entity":{"atom":5}},{"Named":{"name":"series_suffix_spaced","atom":285}},{"Entity":{"atom":250}},{"Named":{"name":"series_suffix","atom":287}},{"Sequence":{"atoms":[286,288]}},{"Repetition":{"atom":284,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":295}},{"Entity":{"atom":5}},{"Named":{"name":"qualifier_spaced","atom":292}},{"Entity":{"atom":268}},{"Sequence":{"atoms":[293,294]}},{"Repetition":{"atom":291,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[290,296]}},{"Entity":{"atom":302}},{"Entity":{"atom":5}},{"Str":{"pattern":"series"}},{"Named":{"name":"series_word","atom":300}},{"Sequence":{"atoms":[299,301]}},{"Repetition":{"atom":298,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":308}},{"Entity":{"atom":5}},{"Str":{"pattern":"attachment"}},{"Named":{"name":"attachment","atom":306}},{"Sequence":{"atoms":[305,307]}},{"Repetition":{"atom":304,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":328}},{"Entity":{"atom":5}},{"Str":{"pattern":"(V"}},{"Entity":{"atom":39}},{"Repetition":{"atom":313,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"version","atom":314}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[312,315,316]}},{"Str":{"pattern":"V"}},{"Str":{"pattern":"v"}},{"Alternative":{"atoms":[318,319]}},{"Entity":{"atom":36}},{"Repetition":{"atom":321,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":39}},{"Repetition":{"atom":323,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"version","atom":324}},{"Sequence":{"atoms":[320,322,325]}},{"Alternative":{"atoms":[317,326]}},{"Sequence":{"atoms":[311,327]}},{"Repetition":{"atom":310,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":156}},{"Repetition":{"atom":330,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[182,194,195,282,283,303,309,329,331]}},{"Sequence":{"atoms":[171,174,175,176,177,178]}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":173}},{"Entity":{"atom":5}},{"Entity":{"atom":332}},{"Sequence":{"atoms":[334,335,336,337,338,339]}},{"Alternative":{"atoms":[333,340]}},{"Entity":{"atom":426}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":351}},{"Str":{"pattern":"REC"}},{"Entity":{"atom":5}},{"Entity":{"atom":12}},{"Alternative":{"atoms":[348,349]}},{"Sequence":{"atoms":[347,350]}},{"Repetition":{"atom":346,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":191}},{"Entity":{"atom":36}},{"Entity":{"atom":271}},{"Entity":{"atom":281}},{"Repetition":{"atom":356,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":297}},{"Entity":{"atom":416}},{"Entity":{"atom":414}},{"Str":{"pattern":"/"}},{"Entity":{"atom":191}},{"Entity":{"atom":36}},{"Entity":{"atom":367}},{"Entity":{"atom":39}},{"Repetition":{"atom":365,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"d_number","atom":366}},{"Entity":{"atom":373}},{"Entity":{"atom":36}},{"Entity":{"atom":39}},{"Repetition":{"atom":370,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"d_subseries","atom":371}},{"Sequence":{"atoms":[369,372]}},{"Repetition":{"atom":368,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":385}},{"Entity":{"atom":383}},{"Entity":{"atom":12}},{"Entity":{"atom":233}},{"Lookahead":{"atom":378,"positive":false}},{"Entity":{"atom":39}},{"Repetition":{"atom":380,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"d_part","atom":381}},{"Sequence":{"atoms":[377,379,382]}},{"Repetition":{"atom":376,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"d_parts","atom":384}},{"Entity":{"atom":387}},{"Entity":{"atom":397}},{"Re":{"pattern":"[\\x41-\\x52]"}},{"Re":{"pattern":"[\\x61-\\x72]"}},{"Alternative":{"atoms":[388,389]}},{"Named":{"name":"d_qualifier","atom":390}},{"Entity":{"atom":150}},{"Entity":{"atom":264}},{"Entity":{"atom":39}},{"Alternative":{"atoms":[392,393,394]}},{"Lookahead":{"atom":395,"positive":false}},{"Sequence":{"atoms":[391,396]}},{"Repetition":{"atom":386,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":404}},{"Entity":{"atom":5}},{"Named":{"name":"d_series_suffix_spaced","atom":400}},{"Entity":{"atom":250}},{"Named":{"name":"d_series_suffix","atom":402}},{"Sequence":{"atoms":[401,403]}},{"Repetition":{"atom":399,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":410}},{"Entity":{"atom":5}},{"Named":{"name":"d_qualifier_spaced","atom":407}},{"Entity":{"atom":397}},{"Sequence":{"atoms":[408,409]}},{"Repetition":{"atom":406,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[362,363,364,374,375,398,405,411]}},{"Named":{"name":"designation","atom":412}},{"Sequence":{"atoms":[361,413]}},{"Repetition":{"atom":360,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"combined","atom":415}},{"Repetition":{"atom":359,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":302}},{"Repetition":{"atom":418,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":308}},{"Repetition":{"atom":420,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":328}},{"Repetition":{"atom":422,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":156}},{"Repetition":{"atom":424,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[343,344,345,352,353,354,355,357,358,417,419,421,423,425]}},{"Entity":{"atom":439}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":271}},{"Entity":{"atom":297}},{"Entity":{"atom":308}},{"Repetition":{"atom":433,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":328}},{"Repetition":{"atom":435,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":156}},{"Repetition":{"atom":437,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[428,429,430,431,432,434,436,438]}},{"Entity":{"atom":466}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":461}},{"Str":{"pattern":"OB"}},{"Entity":{"atom":12}},{"Sequence":{"atoms":[445,446]}},{"Lookahead":{"atom":447,"positive":false}},{"Entity":{"atom":150}},{"Repetition":{"atom":449,"min":2,"max":null,"tag":"Repetition"}},{"Named":{"name":"series","atom":450}},{"Entity":{"atom":12}},{"Named":{"name":"series_dash","atom":452}},{"Entity":{"atom":39}},{"Repetition":{"atom":454,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":150}},{"Repetition":{"atom":456,"min":1,"max":null,"tag":"Repetition"}},{"Alternative":{"atoms":[455,457]}},{"Named":{"name":"number","atom":458}},{"Entity":{"atom":240}},{"Sequence":{"atoms":[448,451,453,459,460]}},{"Entity":{"atom":328}},{"Repetition":{"atom":462,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":156}},{"Repetition":{"atom":464,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[441,442,443,444,463,465]}},{"Alternative":{"atoms":[170,342,427,440]}},{"Named":{"name":"base","atom":169}},{"Entity":{"atom":5}},{"Str":{"pattern":"Annex"}},{"Entity":{"atom":5}},{"Entity":{"atom":150}},{"Entity":{"atom":39}},{"Repetition":{"atom":473,"min":1,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":474,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"+"}},{"Repetition":{"atom":476,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[472,475,477]}},{"Named":{"name":"annex_number","atom":478}},{"Entity":{"atom":156}},{"Repetition":{"atom":480,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[468,469,470,471,479,481]}},{"Named":{"name":"base","atom":168}},{"Entity":{"atom":507}},{"Entity":{"atom":467}},{"Named":{"name":"base","atom":485}},{"Entity":{"atom":5}},{"Str":{"pattern":"App."}},{"Entity":{"atom":5}},{"Repetition":{"atom":489,"min":0,"max":1,"tag":"Maybe"}},{"Re":{"pattern":"[I]"}},{"Re":{"pattern":"[V]"}},{"Re":{"pattern":"[X]"}},{"Alternative":{"atoms":[491,492,493]}},{"Repetition":{"atom":494,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"appendix_number","atom":495}},{"Entity":{"atom":503}},{"Entity":{"atom":5}},{"Str":{"pattern":"test vectors"}},{"Str":{"pattern":"Software"}},{"Alternative":{"atoms":[499,500]}},{"Named":{"name":"appendix_material","atom":501}},{"Sequence":{"atoms":[498,502]}},{"Repetition":{"atom":497,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":156}},{"Repetition":{"atom":505,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[486,487,488,490,496,504,506]}},{"Named":{"name":"base","atom":484}},{"Entity":{"atom":467}},{"Named":{"name":"base","atom":509}},{"Alternative":{"atoms":[483,508,510]}},{"Entity":{"atom":5}},{"Entity":{"atom":535}},{"Str":{"pattern":"Suppl."}},{"Str":{"pattern":"Suppl"}},{"Str":{"pattern":"Amd."}},{"Str":{"pattern":"Amd"}},{"Str":{"pattern":"Add."}},{"Str":{"pattern":"Add"}},{"Str":{"pattern":"Err."}},{"Str":{"pattern":"Err"}},{"Alternative":{"atoms":[514,515,516,517,518,519,520,521]}},{"Named":{"name":"supplement_type","atom":522}},{"Entity":{"atom":528}},{"Str":{"pattern":"Technical"}},{"Named":{"name":"technical","atom":525}},{"Entity":{"atom":5}},{"Sequence":{"atoms":[526,527]}},{"Repetition":{"atom":524,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"Cor."}},{"Str":{"pattern":"Cor"}},{"Alternative":{"atoms":[530,531]}},{"Named":{"name":"supplement_type","atom":532}},{"Sequence":{"atoms":[529,533]}},{"Alternative":{"atoms":[523,534]}},{"Entity":{"atom":549}},{"Entity":{"atom":5}},{"Named":{"name":"supplement_space","atom":537}},{"Repetition":{"atom":538,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":39}},{"Repetition":{"atom":540,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":36}},{"Entity":{"atom":39}},{"Repetition":{"atom":543,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[542,544]}},{"Repetition":{"atom":545,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[541,546]}},{"Named":{"name":"supplement_number","atom":547}},{"Sequence":{"atoms":[539,548]}},{"Entity":{"atom":563}},{"Entity":{"atom":5}},{"Str":{"pattern":"("}},{"Entity":{"atom":39}},{"Repetition":{"atom":553,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"supplement_month","atom":554}},{"Str":{"pattern":"/"}},{"Sequence":{"atoms":[555,556]}},{"Repetition":{"atom":557,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":39}},{"Repetition":{"atom":559,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"supplement_year","atom":560}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[551,552,558,561,562]}},{"Repetition":{"atom":550,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":565,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[511,512,513,536,564,566]}},{"Entity":{"atom":593}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":581}},{"Entity":{"atom":150}},{"Entity":{"atom":39}},{"Repetition":{"atom":574,"min":1,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":575,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":12}},{"Entity":{"atom":39}},{"Repetition":{"atom":578,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[573,576,577,579]}},{"Named":{"name":"series","atom":580}},{"Entity":{"atom":191}},{"Alternative":{"atoms":[572,582]}},{"Entity":{"atom":302}},{"Repetition":{"atom":584,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":5}},{"Entity":{"atom":535}},{"Entity":{"atom":549}},{"Entity":{"atom":563}},{"Repetition":{"atom":589,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":591,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[569,570,571,583,585,586,587,588,590,592]}},{"Alternative":{"atoms":[167,568]}},{"Named":{"name":"base","atom":594}},{"Entity":{"atom":5}},{"Entity":{"atom":535}},{"Entity":{"atom":549}},{"Entity":{"atom":563}},{"Repetition":{"atom":599,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":601,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[595,596,597,598,600,602]}},{"Entity":{"atom":615}},{"Entity":{"atom":567}},{"Named":{"name":"base","atom":605}},{"Str":{"pattern":"/"}},{"Named":{"name":"supplement_slash","atom":607}},{"Entity":{"atom":535}},{"Entity":{"atom":549}},{"Entity":{"atom":563}},{"Repetition":{"atom":611,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":613,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[606,608,609,610,612,614]}},{"Entity":{"atom":567}},{"Entity":{"atom":593}},{"Alternative":{"atoms":[166,604,616,617]}},{"Entity":{"atom":623}},{"Entity":{"atom":482}},{"Entity":{"atom":106}},{"Repetition":{"atom":621,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[620,622]}},{"Entity":{"atom":628}},{"Entity":{"atom":507}},{"Entity":{"atom":106}},{"Repetition":{"atom":626,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[625,627]}},{"Entity":{"atom":633}},{"Entity":{"atom":341}},{"Entity":{"atom":106}},{"Repetition":{"atom":631,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[630,632]}},{"Entity":{"atom":644}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":41}},{"Entity":{"atom":36}},{"Str":{"pattern":"HDB"}},{"Named":{"name":"handbook_marker","atom":640}},{"Entity":{"atom":156}},{"Repetition":{"atom":642,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[635,636,637,638,639,641,643]}},{"Entity":{"atom":659}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":41}},{"Entity":{"atom":240}},{"Str":{"pattern":"/"}},{"Entity":{"atom":39}},{"Repetition":{"atom":652,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"study_group","atom":653}},{"Sequence":{"atoms":[651,654]}},{"Str":{"pattern":":"}},{"Named":{"name":"question_colon","atom":656}},{"Repetition":{"atom":657,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[646,647,648,649,650,655,658]}},{"Entity":{"atom":685}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":191}},{"Entity":{"atom":36}},{"Str":{"pattern":"["}},{"Named":{"name":"bracketed","atom":666}},{"Entity":{"atom":677}},{"Entity":{"atom":41}},{"Str":{"pattern":"/BL"}},{"Named":{"name":"has_bl","atom":670}},{"Repetition":{"atom":671,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"/"}},{"Entity":{"atom":39}},{"Repetition":{"atom":674,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"study_group","atom":675}},{"Sequence":{"atoms":[669,672,673,676]}},{"Str":{"pattern":"]"}},{"Sequence":{"atoms":[667,668,678]}},{"Entity":{"atom":677}},{"Alternative":{"atoms":[679,680]}},{"Str":{"pattern":":"}},{"Named":{"name":"question_colon","atom":682}},{"Repetition":{"atom":683,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[661,662,663,664,665,681,684]}},{"Entity":{"atom":706}},{"Entity":{"atom":21}},{"Str":{"pattern":"R"}},{"Named":{"name":"sector","atom":688}},{"Entity":{"atom":5}},{"Str":{"pattern":"RR"}},{"Named":{"name":"radio_regulations","atom":691}},{"Entity":{"atom":68}},{"Entity":{"atom":12}},{"Entity":{"atom":39}},{"Repetition":{"atom":695,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":696}},{"Sequence":{"atoms":[694,697]}},{"Alternative":{"atoms":[693,698]}},{"Repetition":{"atom":699,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":701,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":704}},{"Re":{"pattern":"[\\x00-\\u{10ffff}]"}},{"Lookahead":{"atom":703,"positive":false}},{"Sequence":{"atoms":[687,689,690,692,700,702,705]}},{"Entity":{"atom":731}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":351}},{"Repetition":{"atom":711,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":191}},{"Entity":{"atom":36}},{"Entity":{"atom":271}},{"Entity":{"atom":281}},{"Repetition":{"atom":716,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":297}},{"Entity":{"atom":416}},{"Repetition":{"atom":719,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":302}},{"Repetition":{"atom":721,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":308}},{"Repetition":{"atom":723,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":328}},{"Repetition":{"atom":725,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":156}},{"Repetition":{"atom":727,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":729,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[708,709,710,712,713,714,715,717,718,720,722,724,726,728,730]}},{"Entity":{"atom":743}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":191}},{"Str":{"pattern":"-C"}},{"Named":{"name":"contribution_marker","atom":737}},{"Entity":{"atom":41}},{"Entity":{"atom":240}},{"Entity":{"atom":106}},{"Repetition":{"atom":741,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[733,734,735,736,738,739,740,742]}},{"Entity":{"atom":748}},{"Entity":{"atom":466}},{"Entity":{"atom":106}},{"Repetition":{"atom":746,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[745,747]}},{"Entity":{"atom":763}},{"Entity":{"atom":21}},{"Entity":{"atom":27}},{"Entity":{"atom":5}},{"Entity":{"atom":271}},{"Entity":{"atom":297}},{"Entity":{"atom":308}},{"Repetition":{"atom":755,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":328}},{"Repetition":{"atom":757,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":156}},{"Repetition":{"atom":759,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":761,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[750,751,752,753,754,756,758,760,762]}},{"Entity":{"atom":787}},{"Entity":{"atom":27}},{"Entity":{"atom":12}},{"Str":{"pattern":"REC"}},{"Entity":{"atom":12}},{"Entity":{"atom":191}},{"Entity":{"atom":36}},{"Entity":{"atom":271}},{"Entity":{"atom":143}},{"Entity":{"atom":782}},{"Entity":{"atom":12}},{"Str":{"pattern":"I"}},{"Str":{"pattern":"S"}},{"Alternative":{"atoms":[775,776]}},{"Entity":{"atom":39}},{"Entity":{"atom":149}},{"Alternative":{"atoms":[778,779]}},{"Lookahead":{"atom":780,"positive":false}},{"Sequence":{"atoms":[774,777,781]}},{"Named":{"name":"id_status","atom":773}},{"Repetition":{"atom":783,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":106}},{"Repetition":{"atom":785,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[765,766,767,768,769,770,771,772,784,786]}},{"Alternative":{"atoms":[2,164,165,619,624,629,634,645,660,686,707,732,744,749,764]}},{"Entity":{"atom":799}},{"Entity":{"atom":5}},{"Str":{"pattern":"|"}},{"Entity":{"atom":5}},{"Entity":{"atom":796}},{"Re":{"pattern":"[\\x01-\\x7b]"}},{"Re":{"pattern":"[\\x7d-\\u{10ffff}]"}},{"Alternative":{"atoms":[794,795]}},{"Repetition":{"atom":793,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[790,791,792,797]}},{"Named":{"name":"common_text_twin","atom":798}},{"Sequence":{"atoms":[1,789]}},{"Entity":{"atom":788}},{"Alternative":{"atoms":[0,801]}}],"root":802},"bindings":[{"capture":"sector","path":"sector","type":"string","card":null,"preprocess":null},{"capture":"series","path":"series","type":"string","card":null,"preprocess":null},{"capture":"series_word","path":"series_word","type":"string","card":null,"preprocess":null},{"capture":"number","path":"number","type":"string","card":null,"preprocess":null},{"capture":"subseries","path":"subseries","type":"string","card":null,"preprocess":null},{"capture":"series_suffix","path":"series_suffix","type":"string","card":null,"preprocess":null},{"capture":"series_suffix_spaced","path":"series_suffix_spaced","type":"string","card":null,"preprocess":null},{"capture":"qualifier","path":"qualifier","type":"string","card":null,"preprocess":null},{"capture":"qualifier_spaced","path":"qualifier_spaced","type":"string","card":null,"preprocess":null},{"capture":"year","path":"year","type":"string","card":null,"preprocess":null},{"capture":"month","path":"month","type":"string","card":null,"preprocess":null},{"capture":"day","path":"day","type":"string","card":null,"preprocess":null},{"capture":"roman_month","path":"roman_month","type":"string","card":null,"preprocess":null},{"capture":"language","path":"language","type":"string","card":null,"preprocess":null},{"capture":"attachment","path":"attachment","type":"string","card":null,"preprocess":null},{"capture":"range_end","path":"range_end","type":"string","card":null,"preprocess":null},{"capture":"part","path":"parts[].part","type":"string","card":null,"preprocess":null},{"capture":"imp_marker","path":"imp_marker","type":"string","card":null,"preprocess":null},{"capture":"version","path":"version","type":"string","card":null,"preprocess":null},{"capture":"series_dash","path":"series_dash","type":"string","card":null,"preprocess":null},{"capture":"combined","path":"combined","type":"raw","card":null,"preprocess":null},{"capture":"technical","path":"technical","type":"string","card":null,"preprocess":null},{"capture":"supplement_type","path":"supplement_type","type":"string","card":null,"preprocess":null},{"capture":"supplement_space","path":"supplement_space","type":"string","card":null,"preprocess":null},{"capture":"supplement_number","path":"supplement_number","type":"string","card":null,"preprocess":null},{"capture":"supplement_month","path":"supplement_month","type":"string","card":null,"preprocess":null},{"capture":"supplement_year","path":"supplement_year","type":"string","card":null,"preprocess":null},{"capture":"base","path":"base","type":"raw","card":null,"preprocess":null},{"capture":"annex_number","path":"annex_number","type":"string","card":null,"preprocess":null},{"capture":"appendix_number","path":"appendix_number","type":"string","card":null,"preprocess":null},{"capture":"appendix_material","path":"appendix_material","type":"string","card":null,"preprocess":null},{"capture":"supplement_slash","path":"supplement_slash","type":"string","card":null,"preprocess":null},{"capture":"report_marker","path":"report_marker","type":"string","card":null,"preprocess":null},{"capture":"_op_bull","path":"_op_bull","type":"string","card":null,"preprocess":null},{"capture":"contribution_marker","path":"contribution_marker","type":"string","card":null,"preprocess":null},{"capture":"handbook_marker","path":"handbook_marker","type":"string","card":null,"preprocess":null},{"capture":"study_group","path":"study_group","type":"string","card":null,"preprocess":null},{"capture":"has_bl","path":"has_bl","type":"string","card":null,"preprocess":null},{"capture":"bracketed","path":"bracketed","type":"string","card":null,"preprocess":null},{"capture":"question_colon","path":"question_colon","type":"string","card":null,"preprocess":null},{"capture":"common_text_twin","path":"common_text_twin","type":"string","card":null,"preprocess":null},{"capture":"annex_to","path":"annex_to","type":"raw","card":null,"preprocess":null},{"capture":"radio_regulations","path":"radio_regulations","type":"string","card":null,"preprocess":null}]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule non_pipe: branches 1 and 2 are order-dependent (first set not statically known)","rule series_suffix_word: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule base_report: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule base: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule base: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule base: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule base: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule base: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule base: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule supplement_identifier: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule supplement_identifier: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule supplement_identifier: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule supplement_identifier: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule supplement_identifier: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule supplement_identifier: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 3 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 3 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 3 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 3 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 4 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 5 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 8 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 8 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 8 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 9 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 9 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_month: branches 10 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule ob_date: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule special_publication: branches 1 and 2 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 itu_identifier: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 2 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 3 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 4 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 5 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 6 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 6 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 6 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 6 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 6 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 6 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 6 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 6 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 7 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 7 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 7 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 7 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 7 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 7 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 7 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 8 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 8 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 8 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 8 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 8 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 8 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 8 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 9 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 9 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 9 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 9 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 9 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 9 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 10 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 10 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 10 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 10 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 10 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 11 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 11 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 11 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 11 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 12 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 12 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 12 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 13 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 13 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule itu_identifier: branches 14 and 15 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"ITU-R BT.500","expect":{}},{"entry":"identifier","kind":"accept","input":"Recommendation ITU-T G.650.1 (09/2020)","expect":{}},{"entry":"identifier","kind":"accept","input":"ITU-R SA.3631 Annex A","expect":{}},{"entry":"identifier","kind":"accept","input":"ITU-T OB.101 (2016)","expect":{}},{"entry":"identifier","kind":"accept","input":"Annex to ITU-T OB.101","expect":{}},{"entry":"identifier","kind":"accept","input":"ITU-T E.164/2","expect":{}},{"entry":"identifier","kind":"accept","input":"ITU-T 55/13:","expect":{}},{"entry":"identifier","kind":"accept","input":"ITU-T G.984.2 Amd. 1 (2010)","expect":{}},{"entry":"identifier","kind":"accept","input":"ITU-T G.650.1B","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/itu/parser.rb — ITU-T/R/D designations: series codes\n# (BT/G/V, SGnn), Imp implementation codes, OB Operational Bulletins,\n# Reports, Study Group questions (numeric and bracketed series form),\n# supplements (Suppl./Amd./Add./Err./Cor. with Technical marker), Annex\n# and App. wraps, combined \"/XX.N\" designations, and the \"| twin\"\n# common-text form. Internal rule `itu_identifier` corresponds to the\n# source's `identifier` (renamed: PG forbids self-reference from the\n# common-text wrapper).\n#\n# Edition-2 conversion. Deviations from the v1 tree:\n# - every leaf capture body is written out at its site so it lowers to\n# one scalar span: edition 2 materializes bare refs to capture-less\n# composite rules as named nodes (the asme/cie/bsi inlining rule), so\n# `digits`, `yyyymm_year`, `yyyymm_month`, `roman`, `annex_label` and\n# `non_pipe` are spelled out at every capture site, and `letter` (a\n# ref to `upper`) is spelled as its class — a ref chain inside a\n# capture breaks the span lowering. Literal alternations\n# (series_suffix_word, the sector/language/roman_month words) and\n# refs to capture-bearing rules (`number`, `series`, `question_tail`)\n# stay refs and bind as spans.\n# - the builder keeps its v1 wrapper walks (`base` recursion for\n# annex/appendix/supplement chains, `combined` ->\n# `designation` elements, `parts` -> `part` hashes), so `base`,\n# `annex_to` and `combined` bind uncast with (raw) and `part` binds\n# through the array (`part -> parts[].part (string)`). The inner\n# `designation` capture is deliberately unbound: it rides inside the\n# raw `combined` array exactly as the v1 tree delivered it.\n# - presence markers keep their captured-token shape (the captured\n# space of `supplement_space`/`qualifier_spaced`, the \"/BL\" of\n# `has_bl`, the \"[\" of `bracketed`), so the builder's nil? checks\n# keep their meaning; every optional capture is spelled\n# `[ (group) as x ]` so non-participation omits the key on every\n# engine.\n\ngrammar PubidItu version \"0.1.0\" edition 2 {\n digit = %x30-39\n upper = %x41-5A\n lower = %x61-7A\n letter = upper\n digits = 1*digit\n space = \" \"\n dash = \"-\"\n dot = \".\"\n non_pipe = %x01-7B / %x7D-10FFFF\n\n itu_prefix = (\"Recommendation \" \"ITU\" (dash / space)) / (\"ITU\" (dash / space))\n sector = (\"R\" / \"T\" / \"D\") as sector\n series = ((\"SG\" 1*digit) / (1*3upper)) as series\n series_group = (upper [1*digit] dash 1*digit) as series\n series_word = space \"series\" as series_word\n number = (1*digit) as number\n subseries = dot (1*digit) as subseries\n series_suffix_word = \"bis\" / \"ter\" / \"quater\" / \"quarter\"\n series_suffix = (series_suffix_word) as series_suffix\n series_suffix_spaced = (space as series_suffix_spaced) ((series_suffix_word) as series_suffix)\n qualifier_letter = ((%x41-52 / %x61-72) as qualifier !(upper / lower / digit))\n qualifier_glued = qualifier_letter\n qualifier_spaced = (space as qualifier_spaced) qualifier_letter\n yyyymm_year = (\"19\" / \"20\") digit digit\n yyyymm_month = (\"0\" %x31-39) / (\"1\" %x30-32)\n yyyymm_shape = yyyymm_year yyyymm_month !digit\n yyyymm_date = dash ((\"19\" / \"20\") digit digit) as year ((\"0\" %x31-39) / (\"1\" %x30-32)) as month !digit\n id_status = dash (\"I\" / \"S\") !(digit / letter)\n print_id_status = dash \"I\" !(digit / letter)\n id_date = yyyymm_date [print_id_status]\n document_date = (date_part / id_date)\n rec_word = (\"REC\" (space / dash))\n publication_id = sector dash \"REC\" dash series dot code yyyymm_date [id_status] [language]\n code_suffixes = [series_suffix_spaced] [qualifier_spaced]\n attachment = space \"attachment\" as attachment\n range_end = dash ((1*3upper dot 1*digit) as range_end)\n part = dash !yyyymm_shape (1*digit) as part\n parts = (*part) as parts\n code = imp_code / standard_code\n standard_code = number [series_suffix] [subseries] parts [qualifier_glued]\n imp_code = \"Imp\" as imp_marker (((1*digit) / (1*3upper)) as number) [subseries] parts\n date_part = space \"(\" [((1*digit) as month \"/\")] ((4digit) as year) \")\"\n version_part = space (((\"(V\" 1*digit as version \")\") / ((\"V\" / \"v\") [dot] 1*digit as version)))\n language = dash ((\"E\" / \"F\" / \"A\" / \"S\" / \"C\" / \"R\") as language)\n\n # The combined-designation tail repeats the code-suffix shapes under\n # d_* capture names: a capture name occurring at two structural depths\n # pairs into ONE top-level bound key (last occurrence wins; array\n # bindings concatenate), so the shared number/subseries/parts/suffix/\n # qualifier names would corrupt the primary's Code with the\n # designation's tail. series and number stay shared — the primary\n # always carries them first.\n d_number = (1*digit) as d_number\n d_subseries = dot (1*digit) as d_subseries\n d_part = dash !yyyymm_shape (1*digit) as d_part\n d_parts = (*d_part) as d_parts\n d_series_suffix = (series_suffix_word) as d_series_suffix\n d_series_suffix_spaced = (space as d_series_suffix_spaced) ((series_suffix_word) as d_series_suffix)\n d_qualifier_letter = ((%x41-52 / %x61-72) as d_qualifier !(upper / lower / digit))\n d_qualifier_glued = d_qualifier_letter\n d_qualifier_spaced = (space as d_qualifier_spaced) d_qualifier_letter\n\n combined_designation = \"/\" ((series dot d_number [d_subseries] d_parts [d_qualifier_glued] [d_series_suffix_spaced] [d_qualifier_spaced]) as designation)\n combined_suffixes = (1*combined_designation) as combined\n\n technical_marker = \"Technical\" as technical space\n supplement_type = ((\"Suppl.\" / \"Suppl\" / \"Amd.\" / \"Amd\" / \"Add.\" / \"Add\" / \"Err.\" / \"Err\") as supplement_type) / (([technical_marker] (\"Cor.\" / \"Cor\") as supplement_type))\n supplement_number = ([space as supplement_space]) ((1*digit *(dot 1*digit)) as supplement_number)\n supplement_date = space \"(\" [((1*digit) as supplement_month \"/\")] ((4digit) as supplement_year) \")\"\n\n base_with_series = {\n itu_prefix sector space\n [rec_word]\n series dot code\n [range_end]\n code_suffixes\n [combined_suffixes]\n [series_word]\n [attachment]\n [version_part]\n [document_date]\n }\n base_without_series = {\n itu_prefix sector space\n code\n code_suffixes\n [attachment]\n [version_part]\n [document_date]\n }\n series_code_body = {\n !(\"OB\" dash)\n ((2*upper) as series)\n (dash as series_dash)\n (((1*digit) / (1*upper)) as number)\n parts\n }\n contribution = {\n itu_prefix sector space\n series\n (\"-C\" as contribution_marker)\n number\n parts\n [language]\n }\n base_series_code = {\n itu_prefix sector space\n series_code_body\n [version_part]\n [document_date]\n }\n series_code_identifier = base_series_code [language]\n report_word = \"Report\" as report_marker\n report_body = {\n !(\"OB\" dot)\n [(series dot)]\n code\n [range_end]\n code_suffixes\n [series_word]\n [attachment]\n [version_part]\n [document_date]\n }\n base_report = {\n (report_word space itu_prefix sector space report_body)\n / (itu_prefix sector space report_word space report_body)\n }\n report_identifier = base_report [language]\n base = base_report / base_with_series / base_without_series / base_series_code\n\n annex_label = upper [1*digit] [\"+\"]\n annex_body = {\n (base as base)\n space \"Annex\" space\n ((upper [1*digit] [\"+\"])) as annex_number\n [document_date]\n }\n annex_identifier = annex_body [language]\n roman = 1*(%x49 / %x56 / %x58)\n appendix_material = space ((\"test vectors\" / \"Software\") as appendix_material)\n appendix_body = {\n (base as base)\n space \"App.\" [space]\n (1*(%x49 / %x56 / %x58)) as appendix_number\n [appendix_material]\n [document_date]\n }\n appendix_identifier = appendix_body [language]\n\n supplement_with_base = {\n ((annex_body as base) / (appendix_body as base) / (base as base))\n space supplement_type\n supplement_number\n [supplement_date]\n [language]\n }\n chained_supplement = {\n ((supplement_with_base / supplement_series_only) as base)\n space supplement_type\n supplement_number\n [supplement_date]\n [language]\n }\n supplement_series_only = {\n itu_prefix sector space\n (series_group / series)\n [series_word]\n space supplement_type\n supplement_number\n [supplement_date]\n [language]\n }\n slash_chained_supplement = {\n ((supplement_with_base) as base)\n (\"/\" as supplement_slash)\n supplement_type\n supplement_number\n [supplement_date]\n [language]\n }\n supplement_identifier = chained_supplement / slash_chained_supplement / supplement_with_base / supplement_series_only\n\n with_series = {\n itu_prefix sector space\n [rec_word]\n series dot code\n [range_end]\n code_suffixes\n [combined_suffixes]\n [series_word]\n [attachment]\n [version_part]\n [document_date]\n [language]\n }\n without_series = {\n itu_prefix sector space\n code\n code_suffixes\n [attachment]\n [version_part]\n [document_date]\n [language]\n }\n\n roman_month = \"XII\" / \"XI\" / \"IX\" / \"VIII\" / \"VII\" / \"VI\" / \"V\" / \"IV\" / \"III\" / \"II\" / \"I\"\n ob_roman_date = \" - \" (2digit) as day dot (roman_month as roman_month) dot (4digit) as year\n ob_date = (date_part / ob_roman_date)\n ob_series = \"OB\" as series\n ob_dot_body = dot number\n ob_no_body = space \"No.\" space number\n ob_bare_body = space number\n ob_with_sector = {\n itu_prefix\n [(sector space)]\n ob_series\n (ob_dot_body / ob_no_body / ob_bare_body)\n [ob_date]\n [language]\n }\n ob_long_form = {\n itu_prefix\n [(sector space)]\n \"Operational Bulletin\" as _op_bull\n space \"No.\" space number\n [document_date]\n [language]\n }\n special_publication = ob_with_sector / ob_long_form\n annex_to_identifier = \"Annex to\" space (special_publication as annex_to)\n handbook = {\n itu_prefix sector space\n number dot \"HDB\" as handbook_marker\n [document_date]\n }\n numeric_question = {\n itu_prefix sector space\n number parts\n ((\"/\" (1*digit) as study_group))\n [(\":\" as question_colon)]\n }\n question_tail = number [(\"/BL\" as has_bl)] \"/\" (1*digit) as study_group\n letter_question = {\n itu_prefix sector space\n series dot\n (((\"[\" as bracketed) question_tail \"]\") / question_tail)\n [(\":\" as question_colon)]\n }\n common_text_twin = (space \"|\" space (1*non_pipe)) as common_text_twin\n\n identifier = common_text_identifier / itu_identifier\n any_char = %x00-10FFFF\n radio_regulations = {\n itu_prefix\n (\"R\") as sector\n space \"RR\" as radio_regulations\n [(date_part / (dash (4digit) as year))]\n [language]\n !any_char\n }\n itu_identifier = {\n annex_to_identifier\n / special_publication\n / supplement_identifier\n / annex_identifier\n / appendix_identifier\n / report_identifier\n / handbook\n / numeric_question\n / letter_question\n / radio_regulations\n / with_series\n / contribution\n / series_code_identifier\n / without_series\n / publication_id\n }\n common_text_identifier = itu_identifier common_text_twin\n\n entry identifier: identifier\n\n bindings identifier {\n sector -> sector (string)\n series -> series (string)\n series_word -> series_word (string)\n number -> number (string)\n subseries -> subseries (string)\n series_suffix -> series_suffix (string)\n series_suffix_spaced -> series_suffix_spaced (string)\n qualifier -> qualifier (string)\n qualifier_spaced -> qualifier_spaced (string)\n year -> year (string)\n month -> month (string)\n day -> day (string)\n roman_month -> roman_month (string)\n language -> language (string)\n attachment -> attachment (string)\n range_end -> range_end (string)\n part -> parts[].part (string)\n imp_marker -> imp_marker (string)\n version -> version (string)\n series_dash -> series_dash (string)\n combined -> combined (raw)\n technical -> technical (string)\n supplement_type -> supplement_type (string)\n supplement_space -> supplement_space (string)\n supplement_number -> supplement_number (string)\n supplement_month -> supplement_month (string)\n supplement_year -> supplement_year (string)\n base -> base (raw)\n annex_number -> annex_number (string)\n appendix_number -> appendix_number (string)\n appendix_material -> appendix_material (string)\n supplement_slash -> supplement_slash (string)\n report_marker -> report_marker (string)\n _op_bull -> _op_bull (string)\n contribution_marker -> contribution_marker (string)\n handbook_marker -> handbook_marker (string)\n study_group -> study_group (string)\n has_bl -> has_bl (string)\n bracketed -> bracketed (string)\n question_colon -> question_colon (string)\n common_text_twin -> common_text_twin (string)\n annex_to -> annex_to (raw)\n radio_regulations -> radio_regulations (string)\n }\n\n test {\n accept \"ITU-R BT.500\"\n accept \"Recommendation ITU-T G.650.1 (09/2020)\"\n accept \"ITU-R SA.3631 Annex A\"\n accept \"ITU-T OB.101 (2016)\"\n accept \"Annex to ITU-T OB.101\"\n accept \"ITU-T E.164/2\"\n accept \"ITU-T 55/13:\"\n accept \"ITU-T G.984.2 Amd. 1 (2010)\"\n accept \"ITU-T G.650.1B\"\n reject \"nonsense\"\n }\n}\n","source_hash":"7535fa1ad43143e2af1aafb0fb65d6a63f48210eb9b7c29c78ff7edec00062ef","unicode_tables":"onigmo (Ruby 3.4.8)","compiler_version":"1.3.121","edition":2,"semantics_hash":"sha256:8bdbd26e76317bdb16eb2652eeb008aa773a2b487aae0b3d2306430bb4fcd314","checksum":"sha256:01dee4467512e66e0f9960832c411870ae7dbae5b0014920be08ea206d5643e4"}
@@ -1 +1 @@
1
- {"bindings":null,"version":"0.1.0","grammar":"PubidJcgm","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":36}},{"Entity":{"atom":3}},{"Str":{"pattern":"JCGM"}},{"Named":{"name":"publisher","atom":2}},{"Entity":{"atom":5}},{"Str":{"pattern":" "}},{"Entity":{"atom":9}},{"Entity":{"atom":8}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":7,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":6}},{"Entity":{"atom":16}},{"Str":{"pattern":"st"}},{"Str":{"pattern":"nd"}},{"Str":{"pattern":"rd"}},{"Str":{"pattern":"th"}},{"Alternative":{"atoms":[12,13,14,15]}},{"Entity":{"atom":5}},{"Str":{"pattern":"Meeting"}},{"Named":{"name":"type_with_stage","atom":18}},{"Entity":{"atom":5}},{"Str":{"pattern":"("}},{"Entity":{"atom":31}},{"Entity":{"atom":26}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[24,25]}},{"Entity":{"atom":8}},{"Repetition":{"atom":27,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":8}},{"Lookahead":{"atom":29,"positive":false}},{"Sequence":{"atoms":[23,28,30]}},{"Named":{"name":"date","atom":22}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[20,21,32,33]}},{"Repetition":{"atom":34,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1,4,10,11,17,19,35]}},{"Entity":{"atom":106}},{"Entity":{"atom":86}},{"Entity":{"atom":3}},{"Entity":{"atom":5}},{"Entity":{"atom":51}},{"Entity":{"atom":47}},{"Str":{"pattern":"GUM-"}},{"Entity":{"atom":8}},{"Repetition":{"atom":44,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"gum_number","atom":45}},{"Sequence":{"atoms":[43,46]}},{"Entity":{"atom":50}},{"Entity":{"atom":9}},{"Named":{"name":"number","atom":49}},{"Alternative":{"atoms":[42,48]}},{"Entity":{"atom":72}},{"Entity":{"atom":54}},{"Str":{"pattern":":"}},{"Entity":{"atom":67}},{"Entity":{"atom":31}},{"Entity":{"atom":58}},{"Str":{"pattern":"-"}},{"Entity":{"atom":61}},{"Entity":{"atom":8}},{"Repetition":{"atom":60,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":58}},{"Entity":{"atom":65}},{"Entity":{"atom":8}},{"Repetition":{"atom":64,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[56,57,59,62,63]}},{"Named":{"name":"date","atom":66}},{"Entity":{"atom":70}},{"Entity":{"atom":31}},{"Named":{"name":"date","atom":69}},{"Alternative":{"atoms":[55,68]}},{"Sequence":{"atoms":[53,71]}},{"Repetition":{"atom":52,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":84}},{"Str":{"pattern":"("}},{"Str":{"pattern":"E/F"}},{"Str":{"pattern":"F/E"}},{"Alternative":{"atoms":[76,77]}},{"Entity":{"atom":80}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Alternative":{"atoms":[78,79]}},{"Named":{"name":"languages","atom":81}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[75,82,83]}},{"Repetition":{"atom":74,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[39,40,41,73,85]}},{"Named":{"name":"base","atom":38}},{"Entity":{"atom":89}},{"Str":{"pattern":"/"}},{"Str":{"pattern":"Amd"}},{"Named":{"name":"type_with_stage","atom":90}},{"Entity":{"atom":5}},{"Str":{"pattern":"."}},{"Entity":{"atom":5}},{"Repetition":{"atom":94,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[93,95]}},{"Alternative":{"atoms":[92,96]}},{"Entity":{"atom":9}},{"Named":{"name":"number","atom":98}},{"Entity":{"atom":54}},{"Entity":{"atom":67}},{"Entity":{"atom":70}},{"Alternative":{"atoms":[101,102]}},{"Sequence":{"atoms":[100,103]}},{"Repetition":{"atom":104,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[87,88,91,97,99,105]}},{"Entity":{"atom":113}},{"Entity":{"atom":86}},{"Named":{"name":"base","atom":108}},{"Entity":{"atom":5}},{"Str":{"pattern":"Corrigendum"}},{"Named":{"name":"type_with_stage","atom":111}},{"Sequence":{"atoms":[109,110,112]}},{"Entity":{"atom":134}},{"Entity":{"atom":86}},{"Named":{"name":"base","atom":115}},{"Entity":{"atom":89}},{"Str":{"pattern":"Cor"}},{"Named":{"name":"type_with_stage","atom":118}},{"Entity":{"atom":5}},{"Str":{"pattern":"."}},{"Entity":{"atom":5}},{"Repetition":{"atom":122,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[121,123]}},{"Alternative":{"atoms":[120,124]}},{"Entity":{"atom":9}},{"Named":{"name":"number","atom":126}},{"Entity":{"atom":54}},{"Entity":{"atom":67}},{"Entity":{"atom":70}},{"Alternative":{"atoms":[129,130]}},{"Sequence":{"atoms":[128,131]}},{"Repetition":{"atom":132,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[116,117,119,125,127,133]}},{"Entity":{"atom":86}},{"Entity":{"atom":149}},{"Entity":{"atom":3}},{"Entity":{"atom":5}},{"Entity":{"atom":148}},{"Str":{"pattern":"GUM"}},{"Str":{"pattern":"VIM"}},{"Entity":{"atom":58}},{"Entity":{"atom":9}},{"Sequence":{"atoms":[142,143]}},{"Repetition":{"atom":144,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[141,145]}},{"Alternative":{"atoms":[140,146]}},{"Named":{"name":"number","atom":147}},{"Sequence":{"atoms":[137,138,139]}},{"Alternative":{"atoms":[0,37,107,114,135,136]}}],"root":150},"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 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 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 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 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 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"JCGM 200:2008(F)","expect":{}},{"entry":"identifier","kind":"accept","input":"JCGM 100:2008","expect":{}},{"entry":"identifier","kind":"accept","input":"JCGM 1st Meeting (2004)","expect":{}},{"entry":"identifier","kind":"accept","input":"JCGM 100:2008/Amd.1:2026","expect":{}},{"entry":"identifier","kind":"accept","input":"JCGM 101:2008/Cor.1:2009","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/jcgm/parser.rb: JCGM base, meeting, amendment and\n# corrigendum identifiers, and the named GUM/VIM guides.\n\ngrammar PubidJcgm version \"0.1.0\" {\n century = \"19\" / \"20\"\n year_digits = century 2*digit !digit\n month_digits = 2*digit\n day_digits = 2*digit\n digits = 1*digit\n publisher = \"JCGM\" as publisher\n ordinal_suffix = \"st\" / \"nd\" / \"rd\" / \"th\"\n gum_number = \"GUM-\" (1*digit) as gum_number\n standard_number = digits as number\n number_portion = gum_number / standard_number\n full_date = (year_digits dash month_digits dash day_digits) as date\n year_only = year_digits as date\n date_portion = colon (full_date / year_only)\n language_portion = \"(\" ((\"E/F\" / \"F/E\") / upper) as languages \")\"\n base = publisher space number_portion [date_portion] [language_portion]\n meeting_identifier = publisher space digits as number ordinal_suffix space \"Meeting\" as type_with_stage [(space \"(\" year_digits as date \")\")]\n amendment_identifier = (base as base) slash \"Amd\" as type_with_stage (space / (\".\" [space])) digits as number [(colon (full_date / year_only))]\n corrigendum_identifier = (base as base) space \"Corrigendum\" as type_with_stage\n numbered_corrigendum_identifier = (base as base) slash \"Cor\" as type_with_stage (space / (\".\" [space])) digits as number [(colon (full_date / year_only))]\n named_number = (\"GUM\" / (\"VIM\" [(dash digits)])) as number\n named_guide_identifier = publisher space named_number\n identifier = meeting_identifier / amendment_identifier / corrigendum_identifier / numbered_corrigendum_identifier / base / named_guide_identifier\n upper = %x41-5A\n digit = %x30-39\n slash = \"/\"\n dash = \"-\"\n colon = \":\"\n space = \" \"\n entry identifier: identifier\n\n test {\n accept \"JCGM 200:2008(F)\"\n accept \"JCGM 100:2008\"\n accept \"JCGM 1st Meeting (2004)\"\n accept \"JCGM 100:2008/Amd.1:2026\"\n accept \"JCGM 101:2008/Cor.1:2009\"\n reject \"nonsense\"\n }\n}\n","source_hash":"d380467460b56523c7a36149a52e36904cd94a76406359f763847cfd4b177e8b","compiler_version":"1.3.93","checksum":"sha256:bf00524a2d18b2ab81764b53960b410509b53e924ced7ec438ab2494fcd0fc7e"}
1
+ {"bindings":null,"version":"0.1.0","grammar":"PubidJcgm","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":30}},{"Entity":{"atom":3}},{"Str":{"pattern":"JCGM"}},{"Named":{"name":"publisher","atom":2}},{"Str":{"pattern":" "}},{"Entity":{"atom":6}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":5,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":7}},{"Str":{"pattern":"st"}},{"Str":{"pattern":"nd"}},{"Str":{"pattern":"rd"}},{"Str":{"pattern":"th"}},{"Alternative":{"atoms":[9,10,11,12]}},{"Str":{"pattern":" "}},{"Str":{"pattern":"Meeting"}},{"Named":{"name":"type_with_stage","atom":15}},{"Str":{"pattern":" ("}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[18,19]}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":21,"min":2,"max":null,"tag":"Repetition"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Lookahead":{"atom":23,"positive":false}},{"Sequence":{"atoms":[20,22,24]}},{"Named":{"name":"date","atom":25}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[17,26,27]}},{"Repetition":{"atom":28,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1,4,8,13,14,16,29]}},{"Entity":{"atom":130}},{"Entity":{"atom":89}},{"Entity":{"atom":3}},{"Str":{"pattern":" "}},{"Entity":{"atom":46}},{"Entity":{"atom":41}},{"Str":{"pattern":"GUM-"}},{"Entity":{"atom":6}},{"Repetition":{"atom":38,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"gum_number","atom":39}},{"Sequence":{"atoms":[37,40]}},{"Entity":{"atom":45}},{"Entity":{"atom":6}},{"Repetition":{"atom":43,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":44}},{"Alternative":{"atoms":[36,42]}},{"Entity":{"atom":76}},{"Str":{"pattern":":"}},{"Entity":{"atom":64}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[50,51]}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":53,"min":2,"max":null,"tag":"Repetition"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Lookahead":{"atom":55,"positive":false}},{"Str":{"pattern":"-"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":58,"min":2,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"-"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":61,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[52,54,56,57,59,60,62]}},{"Named":{"name":"date","atom":63}},{"Entity":{"atom":74}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[66,67]}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":69,"min":2,"max":null,"tag":"Repetition"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Lookahead":{"atom":71,"positive":false}},{"Sequence":{"atoms":[68,70,72]}},{"Named":{"name":"date","atom":73}},{"Alternative":{"atoms":[49,65]}},{"Sequence":{"atoms":[48,75]}},{"Repetition":{"atom":47,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":87}},{"Str":{"pattern":"("}},{"Str":{"pattern":"E/F"}},{"Str":{"pattern":"F/E"}},{"Alternative":{"atoms":[80,81]}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Alternative":{"atoms":[82,83]}},{"Named":{"name":"languages","atom":84}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[79,85,86]}},{"Repetition":{"atom":78,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[33,34,35,77,88]}},{"Str":{"pattern":"/"}},{"Str":{"pattern":"Amd"}},{"Named":{"name":"type_with_stage","atom":91}},{"Str":{"pattern":" "}},{"Str":{"pattern":"."}},{"Str":{"pattern":" "}},{"Repetition":{"atom":95,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[94,96]}},{"Alternative":{"atoms":[93,97]}},{"Entity":{"atom":6}},{"Repetition":{"atom":99,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"supp_number","atom":100}},{"Str":{"pattern":":"}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[103,104]}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":106,"min":2,"max":null,"tag":"Repetition"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Lookahead":{"atom":108,"positive":false}},{"Str":{"pattern":"-"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":111,"min":2,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"-"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":114,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[105,107,109,110,112,113,115]}},{"Named":{"name":"supp_date","atom":116}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[118,119]}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":121,"min":2,"max":null,"tag":"Repetition"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Lookahead":{"atom":123,"positive":false}},{"Sequence":{"atoms":[120,122,124]}},{"Named":{"name":"supp_date","atom":125}},{"Alternative":{"atoms":[117,126]}},{"Sequence":{"atoms":[102,127]}},{"Repetition":{"atom":128,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[32,90,92,98,101,129]}},{"Entity":{"atom":136}},{"Entity":{"atom":89}},{"Str":{"pattern":" "}},{"Str":{"pattern":"Corrigendum"}},{"Named":{"name":"type_with_stage","atom":134}},{"Sequence":{"atoms":[132,133,135]}},{"Entity":{"atom":179}},{"Entity":{"atom":89}},{"Str":{"pattern":"/"}},{"Str":{"pattern":"Cor"}},{"Named":{"name":"type_with_stage","atom":140}},{"Str":{"pattern":" "}},{"Str":{"pattern":"."}},{"Str":{"pattern":" "}},{"Repetition":{"atom":144,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[143,145]}},{"Alternative":{"atoms":[142,146]}},{"Entity":{"atom":6}},{"Repetition":{"atom":148,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"supp_number","atom":149}},{"Str":{"pattern":":"}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[152,153]}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":155,"min":2,"max":null,"tag":"Repetition"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Lookahead":{"atom":157,"positive":false}},{"Str":{"pattern":"-"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":160,"min":2,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"-"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":163,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[154,156,158,159,161,162,164]}},{"Named":{"name":"supp_date","atom":165}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[167,168]}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":170,"min":2,"max":null,"tag":"Repetition"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Lookahead":{"atom":172,"positive":false}},{"Sequence":{"atoms":[169,171,173]}},{"Named":{"name":"supp_date","atom":174}},{"Alternative":{"atoms":[166,175]}},{"Sequence":{"atoms":[151,176]}},{"Repetition":{"atom":177,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[138,139,141,147,150,178]}},{"Entity":{"atom":89}},{"Entity":{"atom":195}},{"Entity":{"atom":3}},{"Str":{"pattern":" "}},{"Entity":{"atom":194}},{"Str":{"pattern":"GUM"}},{"Str":{"pattern":"VIM"}},{"Str":{"pattern":"-"}},{"Entity":{"atom":6}},{"Repetition":{"atom":188,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[187,189]}},{"Repetition":{"atom":190,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[186,191]}},{"Alternative":{"atoms":[185,192]}},{"Named":{"name":"number","atom":193}},{"Sequence":{"atoms":[182,183,184]}},{"Alternative":{"atoms":[0,31,131,137,180,181]}}],"root":196},"bindings":[{"capture":"publisher","path":"publisher","type":"string","card":null,"preprocess":null},{"capture":"number","path":"number","type":"string","card":null,"preprocess":null},{"capture":"gum_number","path":"gum_number","type":"string","card":null,"preprocess":null},{"capture":"date","path":"date","type":"string","card":null,"preprocess":null},{"capture":"supp_number","path":"supp_number","type":"string","card":null,"preprocess":null},{"capture":"supp_date","path":"supp_date","type":"string","card":null,"preprocess":null},{"capture":"languages","path":"languages","type":"string","card":null,"preprocess":null},{"capture":"type_with_stage","path":"type_with_stage","type":"string","card":null,"preprocess":null}]}},"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 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 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 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 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 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"JCGM 200:2008(F)","expect":{}},{"entry":"identifier","kind":"accept","input":"JCGM 100:2008","expect":{}},{"entry":"identifier","kind":"accept","input":"JCGM 1st Meeting (2004)","expect":{}},{"entry":"identifier","kind":"accept","input":"JCGM 100:2008/Amd.1:2026","expect":{}},{"entry":"identifier","kind":"accept","input":"JCGM 101:2008/Cor.1:2009","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/jcgm/parser.rb: JCGM base, meeting, amendment and\n# corrigendum identifiers, and the named GUM/VIM guides.\n#\n# Edition-2 notes: the amendment/corrigendum base wrapper capture drops\n# (a wrapper over rule refs expands to element hashes, and the bindings\n# cannot nest); the base keeps the canonical number/date captures and the\n# amendment layer captures under supp_number/supp_date, mirroring the\n# iec supp_* position-scoped convention. The year_digits body is inlined\n# at every capture site, and bare helper refs adjacent to captures stay\n# raw literals (a parenthesized ref materializes a stray named node).\n\ngrammar PubidJcgm version \"0.1.0\" edition 2 {\n century = \"19\" / \"20\"\n year_digits = century 2*digit !digit\n digits = 1*digit\n publisher = \"JCGM\" as publisher\n ordinal_suffix = \"st\" / \"nd\" / \"rd\" / \"th\"\n gum_number = \"GUM-\" ( 1*digit ) as gum_number\n standard_number = ( 1*digit ) as number\n number_portion = gum_number / standard_number\n full_date = {\n ( (\"19\" / \"20\") 2*(%x30-39) !(%x30-39) \"-\" 2*(%x30-39) \"-\" 2*(%x30-39) ) as date\n }\n year_only = ( (\"19\" / \"20\") 2*(%x30-39) !(%x30-39) ) as date\n date_portion = \":\" ( full_date / year_only )\n language_portion = \"(\" ( ( \"E/F\" / \"F/E\" ) / %x41-5A ) as languages \")\"\n base = publisher \" \" number_portion [date_portion] [language_portion]\n meeting_identifier = {\n publisher \" \" ( 1*digit ) as number (\"st\" / \"nd\" / \"rd\" / \"th\") \" \" \"Meeting\" as type_with_stage\n [ ( \" (\" ( (\"19\" / \"20\") 2*(%x30-39) !(%x30-39) ) as date \")\" ) ]\n }\n amendment_identifier = {\n base \"/\" \"Amd\" as type_with_stage ( \" \" / (\".\" [\" \"]) ) ( 1*digit ) as supp_number\n [ ( \":\" ( ( (\"19\" / \"20\") 2*(%x30-39) !(%x30-39) \"-\" 2*(%x30-39) \"-\" 2*(%x30-39) ) as supp_date\n / ( (\"19\" / \"20\") 2*(%x30-39) !(%x30-39) ) as supp_date ) ) ]\n }\n corrigendum_identifier = {\n base \" \" \"Corrigendum\" as type_with_stage\n }\n numbered_corrigendum_identifier = {\n base \"/\" \"Cor\" as type_with_stage ( \" \" / (\".\" [\" \"]) ) ( 1*digit ) as supp_number\n [ ( \":\" ( ( (\"19\" / \"20\") 2*(%x30-39) !(%x30-39) \"-\" 2*(%x30-39) \"-\" 2*(%x30-39) ) as supp_date\n / ( (\"19\" / \"20\") 2*(%x30-39) !(%x30-39) ) as supp_date ) ) ]\n }\n named_number = ( \"GUM\" / ( \"VIM\" [ \"-\" 1*digit ] ) ) as number\n named_guide_identifier = publisher \" \" named_number\n identifier = {\n meeting_identifier\n / amendment_identifier\n / corrigendum_identifier\n / numbered_corrigendum_identifier\n / base\n / named_guide_identifier\n }\n upper = %x41-5A\n digit = %x30-39\n slash = \"/\"\n dash = \"-\"\n colon = \":\"\n space = \" \"\n entry identifier: identifier\n\n bindings identifier {\n publisher -> publisher (string)\n number -> number (string)\n gum_number -> gum_number (string)\n date -> date (string)\n supp_number -> supp_number (string)\n supp_date -> supp_date (string)\n languages -> languages (string)\n type_with_stage -> type_with_stage (string)\n }\n\n test {\n accept \"JCGM 200:2008(F)\"\n accept \"JCGM 100:2008\"\n accept \"JCGM 1st Meeting (2004)\"\n accept \"JCGM 100:2008/Amd.1:2026\"\n accept \"JCGM 101:2008/Cor.1:2009\"\n reject \"nonsense\"\n }\n}\n","source_hash":"91a5cce3fe536a3721992fc1445b030671989ab3186309935d809a1fdb57898e","unicode_tables":"onigmo (Ruby 3.4.8)","compiler_version":"1.3.121","edition":2,"semantics_hash":"sha256:40b8f079c0c6cd2d1228abc8eab12339275cc20df2c40e7ef5a6bdb6867b962a","checksum":"sha256:29b13055b6c58d80ab203050a00798dfc5218598bba0bc6cbe8f8a5075613f37"}
@@ -1 +1 @@
1
- {"bindings":null,"version":"0.1.0","grammar":"PubidJis","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"JIS"}},{"Entity":{"atom":4}},{"Str":{"pattern":" "}},{"Str":{"pattern":" "}},{"Alternative":{"atoms":[2,3]}},{"Entity":{"atom":6}},{"Str":{"pattern":"/"}},{"Alternative":{"atoms":[1,5]}},{"Repetition":{"atom":7,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[0,8]}},{"Repetition":{"atom":9,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":19}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Alternative":{"atoms":[12,13]}},{"Named":{"name":"type","atom":14}},{"Entity":{"atom":4}},{"Entity":{"atom":6}},{"Alternative":{"atoms":[16,17]}},{"Sequence":{"atoms":[15,18]}},{"Repetition":{"atom":11,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":4}},{"Repetition":{"atom":21,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":26}},{"Entity":{"atom":25}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Named":{"name":"series","atom":24}},{"Entity":{"atom":4}},{"Repetition":{"atom":27,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":33}},{"Entity":{"atom":31}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":30,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":32}},{"Entity":{"atom":46}},{"Entity":{"atom":44}},{"Entity":{"atom":40}},{"Str":{"pattern":"-"}},{"Str":{"pattern":"ー"}},{"Alternative":{"atoms":[37,38]}},{"Named":{"name":"dash","atom":39}},{"Entity":{"atom":31}},{"Repetition":{"atom":41,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"part","atom":42}},{"Sequence":{"atoms":[36,43]}},{"Repetition":{"atom":35,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"parts","atom":45}},{"Entity":{"atom":62}},{"Entity":{"atom":51}},{"Str":{"pattern":":"}},{"Str":{"pattern":":"}},{"Alternative":{"atoms":[49,50]}},{"Entity":{"atom":31}},{"Repetition":{"atom":52,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"year","atom":53}},{"Entity":{"atom":59}},{"Str":{"pattern":"R"}},{"Str":{"pattern":"R"}},{"Repetition":{"atom":57,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[56,58]}},{"Repetition":{"atom":55,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"reaffirmed","atom":60}},{"Sequence":{"atoms":[48,54,61]}},{"Repetition":{"atom":47,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":75}},{"Str":{"pattern":"("}},{"Str":{"pattern":"("}},{"Alternative":{"atoms":[65,66]}},{"Str":{"pattern":"E"}},{"Str":{"pattern":"J"}},{"Alternative":{"atoms":[68,69]}},{"Named":{"name":"language","atom":70}},{"Str":{"pattern":")"}},{"Str":{"pattern":")"}},{"Alternative":{"atoms":[72,73]}},{"Sequence":{"atoms":[67,71,74]}},{"Repetition":{"atom":64,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":87}},{"Str":{"pattern":"("}},{"Str":{"pattern":"規格群"}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[78,79,80]}},{"Str":{"pattern":"("}},{"Str":{"pattern":"規格群"}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[82,83,84]}},{"Alternative":{"atoms":[81,85]}},{"Named":{"name":"all_parts","atom":86}},{"Repetition":{"atom":77,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":148}},{"Entity":{"atom":110}},{"Entity":{"atom":6}},{"Str":{"pattern":"AMENDMENT"}},{"Str":{"pattern":"AMD"}},{"Alternative":{"atoms":[92,93]}},{"Named":{"name":"amd_type","atom":94}},{"Entity":{"atom":4}},{"Entity":{"atom":31}},{"Repetition":{"atom":97,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"amd_number","atom":98}},{"Entity":{"atom":51}},{"Entity":{"atom":31}},{"Repetition":{"atom":101,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"amd_year","atom":102}},{"Str":{"pattern":"R"}},{"Str":{"pattern":"R"}},{"Repetition":{"atom":105,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[104,106]}},{"Repetition":{"atom":107,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"amd_reaffirmed","atom":108}},{"Sequence":{"atoms":[91,95,96,99,100,103,109]}},{"Named":{"name":"amendment","atom":90}},{"Entity":{"atom":124}},{"Entity":{"atom":6}},{"Str":{"pattern":"EXPLANATION"}},{"Str":{"pattern":"EXPL"}},{"Alternative":{"atoms":[114,115]}},{"Named":{"name":"expl_type","atom":116}},{"Entity":{"atom":4}},{"Entity":{"atom":31}},{"Repetition":{"atom":119,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"expl_number","atom":120}},{"Sequence":{"atoms":[118,121]}},{"Repetition":{"atom":122,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[113,117,123]}},{"Named":{"name":"explanation","atom":112}},{"Entity":{"atom":146}},{"Entity":{"atom":6}},{"Str":{"pattern":"CORRIGENDUM"}},{"Str":{"pattern":"CORR"}},{"Alternative":{"atoms":[128,129]}},{"Named":{"name":"corr_type","atom":130}},{"Entity":{"atom":4}},{"Entity":{"atom":31}},{"Repetition":{"atom":133,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"corr_number","atom":134}},{"Entity":{"atom":51}},{"Entity":{"atom":31}},{"Repetition":{"atom":137,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"corr_year","atom":138}},{"Str":{"pattern":"R"}},{"Str":{"pattern":"R"}},{"Repetition":{"atom":141,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[140,142]}},{"Repetition":{"atom":143,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"corr_reaffirmed","atom":144}},{"Sequence":{"atoms":[127,131,132,135,136,139,145]}},{"Named":{"name":"corrigendum","atom":126}},{"Alternative":{"atoms":[111,125,147]}},{"Repetition":{"atom":89,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":163}},{"Entity":{"atom":4}},{"Str":{"pattern":"SYMBOL"}},{"Named":{"name":"symbol_present","atom":152}},{"Entity":{"atom":4}},{"Entity":{"atom":158}},{"Re":{"pattern":"[\\x01-\\x09]"}},{"Re":{"pattern":"[\\x0b-\\u{10ffff}]"}},{"Alternative":{"atoms":[156,157]}},{"Repetition":{"atom":155,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"symbol_value","atom":159}},{"Sequence":{"atoms":[154,160]}},{"Repetition":{"atom":161,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[151,153,162]}},{"Repetition":{"atom":150,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[10,20,22,23,28,29,34,63,76,88,149,164]}}],"root":165},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule supplement: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule supplement: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule supplement: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule symbol_value_char: branches 1 and 2 are order-dependent (first set not statically known)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"JIS B 0001","expect":{}},{"entry":"identifier","kind":"accept","input":"JIS X 0208:1997","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/jis/parser.rb — JIS identifiers with the Japanese\n# full-width separator tolerance (ー   : ()), TR/TS prefixes, parts,\n# reaffirmed years, (E)/(J) language codes, 規格群 all-parts, AMD/EXPL/\n# CORR supplements, and the SYMBOL clause.\n\ngrammar PubidJis version \"0.1.0\" {\n dash = (\"-\" / \"ー\") as dash\n space = (\" \" / \" \")\n colon = (\":\" / \":\")\n type_prefix = (\"TR\" / \"TS\") as type (space / slash)\n series = upper as series\n number = (1*digit) as number\n part = dash (1*digit) as part\n parts = (*part) as parts\n reaffirmed = \"R\" (*\"R\")\n year = colon (1*digit) as year ([reaffirmed]) as reaffirmed\n language = (\"(\" / \"(\") (\"E\" / \"J\") as language (\")\" / \")\")\n all_parts = ((\"(\" \"規格群\" \")\") / (\"(\" \"規格群\" \")\")) as all_parts\n amendment = slash (\"AMENDMENT\" / \"AMD\") as amd_type space (1*digit) as amd_number colon (1*digit) as amd_year ([\"R\" (*\"R\")]) as amd_reaffirmed\n explanation = slash (\"EXPLANATION\" / \"EXPL\") as expl_type ([space (1*digit) as expl_number])\n corrigendum = slash (\"CORRIGENDUM\" / \"CORR\") as corr_type space (1*digit) as corr_number colon (1*digit) as corr_year ([\"R\" (*\"R\")]) as corr_reaffirmed\n supplement = (amendment as amendment) / (explanation as explanation) / (corrigendum as corrigendum)\n symbol_value_char = %x01-09 / %x0B-10FFFF\n symbol_clause = space \"SYMBOL\" as symbol_present ([space (1*symbol_value_char) as symbol_value])\n identifier = [\"JIS\" [(space / slash)]] [type_prefix] [space] series [space] number parts [year] [language] [all_parts] [supplement] [symbol_clause]\n upper = %x41-5A\n digit = %x30-39\n slash = \"/\"\n entry identifier: identifier\n\n test {\n accept \"JIS B 0001\"\n accept \"JIS X 0208:1997\"\n reject \"nonsense\"\n }\n}\n","source_hash":"0b4f3aa215c6851c3fbc57b07539ef7f54842285543850b274677c1c6a9dd280","compiler_version":"1.3.93","checksum":"sha256:62fd1bbd12e4e84f6e480c14dfeb0a007dc4de4f8d7988abb98eba429d9faff5"}
1
+ {"bindings":null,"version":"0.1.0","grammar":"PubidJis","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":144}},{"Str":{"pattern":"WES"}},{"Named":{"name":"wes","atom":1}},{"Entity":{"atom":6}},{"Str":{"pattern":" "}},{"Str":{"pattern":" "}},{"Alternative":{"atoms":[4,5]}},{"Entity":{"atom":11}},{"Entity":{"atom":9}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":8,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":10}},{"Entity":{"atom":24}},{"Entity":{"atom":22}},{"Entity":{"atom":18}},{"Str":{"pattern":"-"}},{"Str":{"pattern":"ー"}},{"Alternative":{"atoms":[15,16]}},{"Named":{"name":"dash","atom":17}},{"Entity":{"atom":9}},{"Repetition":{"atom":19,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"part","atom":20}},{"Sequence":{"atoms":[14,21]}},{"Repetition":{"atom":13,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"parts","atom":23}},{"Entity":{"atom":40}},{"Entity":{"atom":29}},{"Str":{"pattern":":"}},{"Str":{"pattern":":"}},{"Alternative":{"atoms":[27,28]}},{"Entity":{"atom":9}},{"Repetition":{"atom":30,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"year","atom":31}},{"Entity":{"atom":38}},{"Str":{"pattern":"R"}},{"Str":{"pattern":"R"}},{"Repetition":{"atom":35,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[34,36]}},{"Named":{"name":"reaffirmed","atom":37}},{"Repetition":{"atom":33,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[26,32,39]}},{"Repetition":{"atom":25,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":53}},{"Str":{"pattern":"("}},{"Str":{"pattern":"("}},{"Alternative":{"atoms":[43,44]}},{"Str":{"pattern":"E"}},{"Str":{"pattern":"J"}},{"Alternative":{"atoms":[46,47]}},{"Named":{"name":"language","atom":48}},{"Str":{"pattern":")"}},{"Str":{"pattern":")"}},{"Alternative":{"atoms":[50,51]}},{"Sequence":{"atoms":[45,49,52]}},{"Repetition":{"atom":42,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":65}},{"Str":{"pattern":"("}},{"Str":{"pattern":"規格群"}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[56,57,58]}},{"Str":{"pattern":"("}},{"Str":{"pattern":"規格群"}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[60,61,62]}},{"Alternative":{"atoms":[59,63]}},{"Named":{"name":"all_parts","atom":64}},{"Repetition":{"atom":55,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":127}},{"Entity":{"atom":89}},{"Entity":{"atom":70}},{"Str":{"pattern":"/"}},{"Str":{"pattern":"AMENDMENT"}},{"Str":{"pattern":"AMD"}},{"Alternative":{"atoms":[71,72]}},{"Named":{"name":"amd_type","atom":73}},{"Entity":{"atom":6}},{"Entity":{"atom":9}},{"Repetition":{"atom":76,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"amd_number","atom":77}},{"Entity":{"atom":29}},{"Entity":{"atom":9}},{"Repetition":{"atom":80,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"amd_year","atom":81}},{"Str":{"pattern":"R"}},{"Str":{"pattern":"R"}},{"Repetition":{"atom":84,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[83,85]}},{"Repetition":{"atom":86,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"amd_reaffirmed","atom":87}},{"Sequence":{"atoms":[69,74,75,78,79,82,88]}},{"Named":{"name":"amendment","atom":68}},{"Entity":{"atom":103}},{"Entity":{"atom":70}},{"Str":{"pattern":"EXPLANATION"}},{"Str":{"pattern":"EXPL"}},{"Alternative":{"atoms":[93,94]}},{"Named":{"name":"expl_type","atom":95}},{"Entity":{"atom":6}},{"Entity":{"atom":9}},{"Repetition":{"atom":98,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"expl_number","atom":99}},{"Sequence":{"atoms":[97,100]}},{"Repetition":{"atom":101,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[92,96,102]}},{"Named":{"name":"explanation","atom":91}},{"Entity":{"atom":125}},{"Entity":{"atom":70}},{"Str":{"pattern":"CORRIGENDUM"}},{"Str":{"pattern":"CORR"}},{"Alternative":{"atoms":[107,108]}},{"Named":{"name":"corr_type","atom":109}},{"Entity":{"atom":6}},{"Entity":{"atom":9}},{"Repetition":{"atom":112,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"corr_number","atom":113}},{"Entity":{"atom":29}},{"Entity":{"atom":9}},{"Repetition":{"atom":116,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"corr_year","atom":117}},{"Str":{"pattern":"R"}},{"Str":{"pattern":"R"}},{"Repetition":{"atom":120,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[119,121]}},{"Repetition":{"atom":122,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"corr_reaffirmed","atom":123}},{"Sequence":{"atoms":[106,110,111,114,115,118,124]}},{"Named":{"name":"corrigendum","atom":105}},{"Alternative":{"atoms":[90,104,126]}},{"Repetition":{"atom":67,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":142}},{"Entity":{"atom":6}},{"Str":{"pattern":"SYMBOL"}},{"Named":{"name":"symbol_present","atom":131}},{"Entity":{"atom":6}},{"Entity":{"atom":137}},{"Re":{"pattern":"[\\x01-\\x09]"}},{"Re":{"pattern":"[\\x0b-\\u{10ffff}]"}},{"Alternative":{"atoms":[135,136]}},{"Repetition":{"atom":134,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"symbol_value","atom":138}},{"Sequence":{"atoms":[133,139]}},{"Repetition":{"atom":140,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[130,132,141]}},{"Repetition":{"atom":129,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[2,3,7,12,41,54,66,128,143]}},{"Entity":{"atom":182}},{"Str":{"pattern":"JIS"}},{"Entity":{"atom":6}},{"Entity":{"atom":70}},{"Alternative":{"atoms":[147,148]}},{"Repetition":{"atom":149,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[146,150]}},{"Repetition":{"atom":151,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":161}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Alternative":{"atoms":[154,155]}},{"Named":{"name":"type","atom":156}},{"Entity":{"atom":6}},{"Entity":{"atom":70}},{"Alternative":{"atoms":[158,159]}},{"Sequence":{"atoms":[157,160]}},{"Repetition":{"atom":153,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Repetition":{"atom":163,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":167}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Named":{"name":"series","atom":166}},{"Entity":{"atom":6}},{"Repetition":{"atom":168,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":11}},{"Entity":{"atom":24}},{"Entity":{"atom":40}},{"Repetition":{"atom":172,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":53}},{"Repetition":{"atom":174,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":65}},{"Repetition":{"atom":176,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":127}},{"Repetition":{"atom":178,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":142}},{"Repetition":{"atom":180,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[152,162,164,165,169,170,171,173,175,177,179,181]}},{"Alternative":{"atoms":[0,145]}}],"root":183},"bindings":[{"capture":"wes","path":"wes","type":"string","card":null,"preprocess":null},{"capture":"type","path":"type","type":"string","card":null,"preprocess":null},{"capture":"series","path":"series","type":"string","card":null,"preprocess":null},{"capture":"number","path":"number","type":"string","card":null,"preprocess":null},{"capture":"part","path":"parts[].part","type":"string","card":null,"preprocess":null},{"capture":"year","path":"year","type":"string","card":null,"preprocess":null},{"capture":"reaffirmed","path":"reaffirmed","type":"string","card":null,"preprocess":null},{"capture":"language","path":"language","type":"string","card":null,"preprocess":null},{"capture":"all_parts","path":"all_parts","type":"string","card":null,"preprocess":null},{"capture":"amd_type","path":"amd_type","type":"string","card":null,"preprocess":null},{"capture":"amd_number","path":"amd_number","type":"string","card":null,"preprocess":null},{"capture":"amd_year","path":"amd_year","type":"string","card":null,"preprocess":null},{"capture":"amd_reaffirmed","path":"amd_reaffirmed","type":"string","card":null,"preprocess":null},{"capture":"expl_type","path":"expl_type","type":"string","card":null,"preprocess":null},{"capture":"expl_number","path":"expl_number","type":"string","card":null,"preprocess":null},{"capture":"corr_type","path":"corr_type","type":"string","card":null,"preprocess":null},{"capture":"corr_number","path":"corr_number","type":"string","card":null,"preprocess":null},{"capture":"corr_year","path":"corr_year","type":"string","card":null,"preprocess":null},{"capture":"corr_reaffirmed","path":"corr_reaffirmed","type":"string","card":null,"preprocess":null},{"capture":"symbol_present","path":"symbol_present","type":"string","card":null,"preprocess":null},{"capture":"symbol_value","path":"symbol_value","type":"string","card":null,"preprocess":null}]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule supplement: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule supplement: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule supplement: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule symbol_value_char: branches 1 and 2 are order-dependent (first set not statically known)","rule identifier: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"JIS B 0001","expect":{}},{"entry":"identifier","kind":"accept","input":"JIS X 0208:1997","expect":{}},{"entry":"identifier","kind":"accept","input":"WES 7700-1:2019","expect":{}},{"entry":"identifier","kind":"accept","input":"WES 7301:2020R","expect":{}},{"entry":"identifier","kind":"reject","input":"JIS WES 7700","expect":{}},{"entry":"identifier","kind":"reject","input":"WES X 7700","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}},{"entry":"identifier","kind":"example","input":"WES 7700-1:2019","expect":{"wes":"WES","number":"7700","year":"2019"}},{"entry":"identifier","kind":"example","input":"WES 7301:2020R","expect":{"wes":"WES","number":"7301","year":"2020","reaffirmed":"R"}},{"entry":"identifier","kind":"example","input":"JIS X 0208:1997","expect":{"series":"X","number":"0208","year":"1997"}},{"entry":"identifier","kind":"example","input":"WES 7700:2019/AMD 1:2020R","expect":{"wes":"WES","number":"7700","amd_type":"AMD","amd_number":"1","amd_year":"2020","amd_reaffirmed":"R"}},{"entry":"identifier","kind":"example","input":"JIS X 0208:1997R","expect":{"series":"X","year":"1997","reaffirmed":"R"}},{"entry":"identifier","kind":"example","input":"JIS X 0208:1997RR","expect":{"series":"X","year":"1997","reaffirmed":"RR"}}],"docs":{},"source":"# Port of lib/pubid/jis/parser.rb — JIS identifiers with the Japanese\n# full-width separator tolerance (ー   : ()), TR/TS prefixes, parts,\n# reaffirmed years, (E)/(J) language codes, 規格群 all-parts, AMD/EXPL/\n# CORR supplements, and the SYMBOL clause. WES (Japan Welding Engineering\n# Society) ids share the JIS tail but carry no series letter or JIS prefix.\n\ngrammar PubidJis version \"0.1.0\" edition 2 {\n dash = (\"-\" / \"ー\") as dash\n space = (\" \" / \" \")\n colon = (\":\" / \":\")\n type_prefix = (\"TR\" / \"TS\") as type (space / slash)\n series = %x41-5A as series\n number = (1*digit) as number\n part = dash (1*digit) as part\n parts = (*part) as parts\n reaffirmed = \"R\" (*\"R\")\n year = colon (1*digit) as year [reaffirmed_rule]\n language = (\"(\" / \"(\") (\"E\" / \"J\") as language (\")\" / \")\")\n all_parts = ((\"(\" \"規格群\" \")\") / (\"(\" \"規格群\" \")\")) as all_parts\n amendment = {\n slash (\"AMENDMENT\" / \"AMD\") as amd_type\n space\n (1*digit) as amd_number\n colon (1*digit) as amd_year\n ([\"R\" (*\"R\")]) as amd_reaffirmed\n }\n explanation = {\n slash (\"EXPLANATION\" / \"EXPL\") as expl_type\n ([space (1*digit) as expl_number])\n }\n corrigendum = {\n slash (\"CORRIGENDUM\" / \"CORR\") as corr_type\n space\n (1*digit) as corr_number\n colon (1*digit) as corr_year\n ([\"R\" (*\"R\")]) as corr_reaffirmed\n }\n supplement = {\n (amendment as amendment)\n / (explanation as explanation)\n / (corrigendum as corrigendum)\n }\n symbol_value_char = %x01-09 / %x0B-10FFFF\n symbol_clause = {\n space \"SYMBOL\" as symbol_present\n ([space (1*symbol_value_char) as symbol_value])\n }\n wes_identifier = {\n \"WES\" as wes\n space\n number\n parts\n [year]\n [language]\n [all_parts]\n [supplement]\n [symbol_clause]\n }\n jis_identifier = {\n [\"JIS\" [(space / slash)]]\n [type_prefix]\n [space]\n series\n [space]\n number\n parts\n [year]\n [language]\n [all_parts]\n [supplement]\n [symbol_clause]\n }\n identifier = wes_identifier / jis_identifier\n upper = %x41-5A\n digit = %x30-39\n slash = \"/\"\n reaffirmed_rule = (\"R\" (*\"R\")) as reaffirmed\n entry identifier: identifier\n\n # Typed model bindings: bound captures land on the consumer\n # builder's fields of the same name; repeated parts collect under\n # parts[].part.\n bindings identifier {\n wes -> wes (string)\n type -> type (string)\n series -> series (string)\n number -> number (string)\n part -> parts[].part (string)\n year -> year (string)\n reaffirmed -> reaffirmed (string)\n language -> language (string)\n all_parts -> all_parts (string)\n amd_type -> amd_type (string)\n amd_number -> amd_number (string)\n amd_year -> amd_year (string)\n amd_reaffirmed -> amd_reaffirmed (string)\n expl_type -> expl_type (string)\n expl_number -> expl_number (string)\n corr_type -> corr_type (string)\n corr_number -> corr_number (string)\n corr_year -> corr_year (string)\n corr_reaffirmed -> corr_reaffirmed (string)\n symbol_present -> symbol_present (string)\n symbol_value -> symbol_value (string)\n }\n\n test {\n accept \"JIS B 0001\"\n accept \"JIS X 0208:1997\"\n accept \"WES 7700-1:2019\"\n accept \"WES 7301:2020R\"\n reject \"JIS WES 7700\"\n reject \"WES X 7700\"\n reject \"nonsense\"\n example \"WES 7700-1:2019\" { wes: \"WES\", number: \"7700\", year: \"2019\" }\n example \"WES 7301:2020R\" { wes: \"WES\", number: \"7301\", year: \"2020\", reaffirmed: \"R\" }\n example \"JIS X 0208:1997\" { series: \"X\", number: \"0208\", year: \"1997\" }\n example \"WES 7700:2019/AMD 1:2020R\" { wes: \"WES\", number: \"7700\", amd_type: \"AMD\", amd_number: \"1\", amd_year: \"2020\", amd_reaffirmed: \"R\" }\n example \"JIS X 0208:1997R\" { series: \"X\", year: \"1997\", reaffirmed: \"R\" }\n example \"JIS X 0208:1997RR\" { series: \"X\", year: \"1997\", reaffirmed: \"RR\" }\n }\n}\n","source_hash":"bb68f75e3e1d9b7e79613bd6cff60ccd77f6e2e68ace2569a2fbc968543b1f3d","unicode_tables":"onigmo (Ruby 3.4.8)","compiler_version":"1.3.121","edition":2,"semantics_hash":"sha256:b16cf5d2687fef91bb0c21ce6b417cf9d9dfcf9aec0280169acb246f48d6b22b","checksum":"sha256:156eb10c6a7638055e3ca2556c6bf62ecca6521b432c828269cdcbab080c44be"}