@pubid/pubid 0.1.10 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/flavors/ieee/index.js +84 -8
  2. package/dist/flavors/ieee/model.js +86 -32
  3. package/dist/flavors/ieee/preprocessor.js +21 -1
  4. package/package.json +2 -2
  5. package/vendor/parg/adobe.json +1 -1
  6. package/vendor/parg/aiee.json +1 -1
  7. package/vendor/parg/amca.json +1 -1
  8. package/vendor/parg/ansi.json +1 -1
  9. package/vendor/parg/api.json +1 -1
  10. package/vendor/parg/ashrae.json +1 -1
  11. package/vendor/parg/asme.json +1 -1
  12. package/vendor/parg/astm.json +1 -1
  13. package/vendor/parg/bipm.json +1 -1
  14. package/vendor/parg/bsi.json +1 -1
  15. package/vendor/parg/calconnect.json +1 -1
  16. package/vendor/parg/ccsds.json +1 -1
  17. package/vendor/parg/cen_cenelec.json +1 -1
  18. package/vendor/parg/cie.json +1 -1
  19. package/vendor/parg/csa.json +1 -1
  20. package/vendor/parg/doi.json +1 -1
  21. package/vendor/parg/easc.json +1 -1
  22. package/vendor/parg/ecma.json +1 -1
  23. package/vendor/parg/etsi.json +1 -1
  24. package/vendor/parg/evs.json +1 -1
  25. package/vendor/parg/gb.json +1 -1
  26. package/vendor/parg/gost.json +1 -1
  27. package/vendor/parg/iala.json +1 -1
  28. package/vendor/parg/iana.json +1 -1
  29. package/vendor/parg/idf.json +1 -1
  30. package/vendor/parg/iec.json +1 -1
  31. package/vendor/parg/ieee.json +1 -1
  32. package/vendor/parg/ietf.json +1 -1
  33. package/vendor/parg/ire.json +1 -1
  34. package/vendor/parg/isbn.json +1 -1
  35. package/vendor/parg/iso.json +1 -1
  36. package/vendor/parg/itu.json +1 -1
  37. package/vendor/parg/jcgm.json +1 -1
  38. package/vendor/parg/jis.json +1 -1
  39. package/vendor/parg/nesc.json +1 -1
  40. package/vendor/parg/nist.json +1 -1
  41. package/vendor/parg/oasis.json +1 -1
  42. package/vendor/parg/ogc.json +1 -1
  43. package/vendor/parg/oiml.json +1 -1
  44. package/vendor/parg/omg.json +1 -1
  45. package/vendor/parg/parg.json +1 -1
  46. package/vendor/parg/plateau.json +1 -1
  47. package/vendor/parg/sae.json +1 -1
  48. package/vendor/parg/tgpp.json +1 -1
  49. package/vendor/parg/un.json +1 -1
  50. package/vendor/parg/w3c.json +1 -1
  51. package/vendor/parg/xsf.json +1 -1
@@ -1 +1 @@
1
- {"bindings":null,"version":"0.1.0","grammar":"PubidCalconnect","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"CC"}},{"Entity":{"atom":2}},{"Str":{"pattern":"/"}},{"Entity":{"atom":9}},{"Entity":{"atom":7}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[5,6]}},{"Repetition":{"atom":4,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"series","atom":8}},{"Sequence":{"atoms":[1,3]}},{"Repetition":{"atom":10,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":13}},{"Str":{"pattern":" "}},{"Entity":{"atom":26}},{"Entity":{"atom":16}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":15,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Str":{"pattern":"-"}},{"Alternative":{"atoms":[18,19]}},{"Entity":{"atom":16}},{"Repetition":{"atom":21,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[20,22]}},{"Repetition":{"atom":23,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[17,24]}},{"Named":{"name":"number","atom":25}},{"Entity":{"atom":28}},{"Str":{"pattern":":"}},{"Entity":{"atom":43}},{"Entity":{"atom":16}},{"Repetition":{"atom":30,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"year","atom":31}},{"Str":{"pattern":"-"}},{"Entity":{"atom":16}},{"Repetition":{"atom":34,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"month","atom":35}},{"Str":{"pattern":"-"}},{"Entity":{"atom":16}},{"Repetition":{"atom":38,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"day","atom":39}},{"Sequence":{"atoms":[33,36,37,40]}},{"Repetition":{"atom":41,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[32,42]}},{"Sequence":{"atoms":[27,29]}},{"Repetition":{"atom":44,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[0,11,12,14,45]}}],"root":46},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"CC 9101","expect":{}},{"entry":"identifier","kind":"accept","input":"CC/CD 9101","expect":{}},{"entry":"identifier","kind":"accept","input":"CC 9101:2024","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/calconnect/parser.rb:\n# CC[/<series>] <number>[.<sub>|-$sub>][:<date>]\n\ngrammar PubidCalconnect version \"0.1.0\" {\n letter = %x41-5A / %x61-7A\n series = (1*letter) as series\n number = (1*digit [(\".\" / \"-\") 1*digit]) as number\n date = (1*digit) as year [(\"-\" (1*digit) as month \"-\" (1*digit) as day)]\n identifier = \"CC\" [slash series] space number [(colon date)]\n digit = %x30-39\n space = \" \"\n slash = \"/\"\n colon = \":\"\n entry identifier: identifier\n\n test {\n accept \"CC 9101\"\n accept \"CC/CD 9101\"\n accept \"CC 9101:2024\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:d35223f664d9cbc3640682e239631c329d2f60e67ade218b2d17ac2e42ac0281"}
1
+ {"bindings":null,"version":"0.1.0","grammar":"PubidCalconnect","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"CC"}},{"Entity":{"atom":2}},{"Str":{"pattern":"/"}},{"Entity":{"atom":9}},{"Entity":{"atom":7}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[5,6]}},{"Repetition":{"atom":4,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"series","atom":8}},{"Sequence":{"atoms":[1,3]}},{"Repetition":{"atom":10,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":13}},{"Str":{"pattern":" "}},{"Entity":{"atom":26}},{"Entity":{"atom":16}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":15,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Str":{"pattern":"-"}},{"Alternative":{"atoms":[18,19]}},{"Entity":{"atom":16}},{"Repetition":{"atom":21,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[20,22]}},{"Repetition":{"atom":23,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[17,24]}},{"Named":{"name":"number","atom":25}},{"Entity":{"atom":28}},{"Str":{"pattern":":"}},{"Entity":{"atom":43}},{"Entity":{"atom":16}},{"Repetition":{"atom":30,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"year","atom":31}},{"Str":{"pattern":"-"}},{"Entity":{"atom":16}},{"Repetition":{"atom":34,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"month","atom":35}},{"Str":{"pattern":"-"}},{"Entity":{"atom":16}},{"Repetition":{"atom":38,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"day","atom":39}},{"Sequence":{"atoms":[33,36,37,40]}},{"Repetition":{"atom":41,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[32,42]}},{"Sequence":{"atoms":[27,29]}},{"Repetition":{"atom":44,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[0,11,12,14,45]}}],"root":46},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"CC 9101","expect":{}},{"entry":"identifier","kind":"accept","input":"CC/CD 9101","expect":{}},{"entry":"identifier","kind":"accept","input":"CC 9101:2024","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/calconnect/parser.rb:\n# CC[/<series>] <number>[.<sub>|-$sub>][:<date>]\n\ngrammar PubidCalconnect version \"0.1.0\" {\n letter = %x41-5A / %x61-7A\n series = (1*letter) as series\n number = (1*digit [(\".\" / \"-\") 1*digit]) as number\n date = (1*digit) as year [(\"-\" (1*digit) as month \"-\" (1*digit) as day)]\n identifier = \"CC\" [slash series] space number [(colon date)]\n digit = %x30-39\n space = \" \"\n slash = \"/\"\n colon = \":\"\n entry identifier: identifier\n\n test {\n accept \"CC 9101\"\n accept \"CC/CD 9101\"\n accept \"CC 9101:2024\"\n reject \"nonsense\"\n }\n}\n","source_hash":"87ada99dc6a257373d6d2b28a035b1da0b8b4d4f73b5cd2c906e3076a8360069","compiler_version":"1.3.93","checksum":"sha256:f38bfc5e90276d451297a1426322077a13b086dfd36ea6b177bcec1477dd9cb2"}
@@ -1 +1 @@
1
- {"bindings":null,"version":"0.1.0","grammar":"PubidCcsds","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"CCSDS "}},{"Entity":{"atom":8}},{"Entity":{"atom":6}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Alternative":{"atoms":[3,4,5]}},{"Repetition":{"atom":2,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":7}},{"Entity":{"atom":14}},{"Str":{"pattern":"."}},{"Entity":{"atom":6}},{"Repetition":{"atom":11,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"part","atom":12}},{"Sequence":{"atoms":[10,13]}},{"Repetition":{"atom":9,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":21}},{"Str":{"pattern":"-"}},{"Entity":{"atom":19}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Named":{"name":"type","atom":18}},{"Sequence":{"atoms":[17,20]}},{"Repetition":{"atom":16,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":38}},{"Str":{"pattern":"-"}},{"Entity":{"atom":28}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[.]"}},{"Alternative":{"atoms":[26,27]}},{"Repetition":{"atom":25,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[31,32]}},{"Repetition":{"atom":30,"min":0,"max":1,"tag":"Repetition"}},{"Repetition":{"atom":34,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[29,35]}},{"Named":{"name":"edition","atom":36}},{"Sequence":{"atoms":[24,37]}},{"Repetition":{"atom":23,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":44}},{"Str":{"pattern":"-"}},{"Entity":{"atom":19}},{"Named":{"name":"suffix","atom":42}},{"Sequence":{"atoms":[41,43]}},{"Repetition":{"atom":40,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":58}},{"Entity":{"atom":56}},{"Entity":{"atom":49}},{"Str":{"pattern":" "}},{"Str":{"pattern":"Cor."}},{"Entity":{"atom":49}},{"Entity":{"atom":53}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":52,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"cor_number","atom":54}},{"Sequence":{"atoms":[48,50,51,55]}},{"Repetition":{"atom":47,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"corrigenda","atom":57}},{"Entity":{"atom":80}},{"Entity":{"atom":49}},{"Entity":{"atom":62}},{"Str":{"pattern":"-"}},{"Entity":{"atom":49}},{"Entity":{"atom":75}},{"Str":{"pattern":"French"}},{"Str":{"pattern":"Russian"}},{"Str":{"pattern":"English"}},{"Str":{"pattern":"German"}},{"Str":{"pattern":"Spanish"}},{"Str":{"pattern":"Italian"}},{"Str":{"pattern":"Portuguese"}},{"Str":{"pattern":"Chinese"}},{"Str":{"pattern":"Japanese"}},{"Alternative":{"atoms":[65,66,67,68,69,70,71,72,73]}},{"Named":{"name":"language","atom":74}},{"Str":{"pattern":" Translated"}},{"Repetition":{"atom":76,"min":0,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":77,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[64,78]}},{"Sequence":{"atoms":[60,61,63,79]}},{"Repetition":{"atom":59,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[0,1,15,22,39,45,46,81]}}],"root":82},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"CCSDS 650.0-G-2","expect":{}},{"entry":"identifier","kind":"accept","input":"CCSDS 100.0-G-1","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/ccsds/parser.rb:\n# CCSDS <number>[.part][-type][-edition][-suffix]{ Cor. n}[ - <language>]\n\ngrammar PubidCcsds version \"0.1.0\" {\n alnum_char = %x41-5A / %x61-7A / %x30-39\n upper = %x41-5A\n digit_dot_char = %x30-39 / %x2E\n number = (1*alnum_char) as number\n part = \".\" (1*alnum_char) as part\n type = \"-\" upper as type\n edition = \"-\" (1*digit_dot_char [*1letter]) as edition\n suffix = \"-\" upper as suffix\n corrigendum = space \"Cor.\" space (1*digit) as cor_number\n corrigenda = (*corrigendum) as corrigenda\n language_metadata = space dash space (language_word [*\" Translated\"])\n language_word = (\"French\" / \"Russian\" / \"English\" / \"German\" / \"Spanish\" / \"Italian\" / \"Portuguese\" / \"Chinese\" / \"Japanese\") as language\n identifier = \"CCSDS \" number [part] [type] [edition] [suffix] corrigenda [language_metadata]\n dash = \"-\"\n space = \" \"\n digit = %x30-39\n letter = %x41-5A / %x61-7A\n entry identifier: identifier\n\n test {\n accept \"CCSDS 650.0-G-2\"\n accept \"CCSDS 100.0-G-1\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:4b7b16f80744317c1721a67e20c1bdc176167b2656022bb48277424d380a649d"}
1
+ {"bindings":null,"version":"0.1.0","grammar":"PubidCcsds","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"CCSDS "}},{"Entity":{"atom":8}},{"Entity":{"atom":6}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Alternative":{"atoms":[3,4,5]}},{"Repetition":{"atom":2,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":7}},{"Entity":{"atom":14}},{"Str":{"pattern":"."}},{"Entity":{"atom":6}},{"Repetition":{"atom":11,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"part","atom":12}},{"Sequence":{"atoms":[10,13]}},{"Repetition":{"atom":9,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":21}},{"Str":{"pattern":"-"}},{"Entity":{"atom":19}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Named":{"name":"type","atom":18}},{"Sequence":{"atoms":[17,20]}},{"Repetition":{"atom":16,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":38}},{"Str":{"pattern":"-"}},{"Entity":{"atom":28}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[.]"}},{"Alternative":{"atoms":[26,27]}},{"Repetition":{"atom":25,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[31,32]}},{"Repetition":{"atom":30,"min":0,"max":1,"tag":"Repetition"}},{"Repetition":{"atom":34,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[29,35]}},{"Named":{"name":"edition","atom":36}},{"Sequence":{"atoms":[24,37]}},{"Repetition":{"atom":23,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":44}},{"Str":{"pattern":"-"}},{"Entity":{"atom":19}},{"Named":{"name":"suffix","atom":42}},{"Sequence":{"atoms":[41,43]}},{"Repetition":{"atom":40,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":58}},{"Entity":{"atom":56}},{"Entity":{"atom":49}},{"Str":{"pattern":" "}},{"Str":{"pattern":"Cor."}},{"Entity":{"atom":49}},{"Entity":{"atom":53}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":52,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"cor_number","atom":54}},{"Sequence":{"atoms":[48,50,51,55]}},{"Repetition":{"atom":47,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"corrigenda","atom":57}},{"Entity":{"atom":80}},{"Entity":{"atom":49}},{"Entity":{"atom":62}},{"Str":{"pattern":"-"}},{"Entity":{"atom":49}},{"Entity":{"atom":75}},{"Str":{"pattern":"French"}},{"Str":{"pattern":"Russian"}},{"Str":{"pattern":"English"}},{"Str":{"pattern":"German"}},{"Str":{"pattern":"Spanish"}},{"Str":{"pattern":"Italian"}},{"Str":{"pattern":"Portuguese"}},{"Str":{"pattern":"Chinese"}},{"Str":{"pattern":"Japanese"}},{"Alternative":{"atoms":[65,66,67,68,69,70,71,72,73]}},{"Named":{"name":"language","atom":74}},{"Str":{"pattern":" Translated"}},{"Repetition":{"atom":76,"min":0,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":77,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[64,78]}},{"Sequence":{"atoms":[60,61,63,79]}},{"Repetition":{"atom":59,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[0,1,15,22,39,45,46,81]}}],"root":82},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"CCSDS 650.0-G-2","expect":{}},{"entry":"identifier","kind":"accept","input":"CCSDS 100.0-G-1","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/ccsds/parser.rb:\n# CCSDS <number>[.part][-type][-edition][-suffix]{ Cor. n}[ - <language>]\n\ngrammar PubidCcsds version \"0.1.0\" {\n alnum_char = %x41-5A / %x61-7A / %x30-39\n upper = %x41-5A\n digit_dot_char = %x30-39 / %x2E\n number = (1*alnum_char) as number\n part = \".\" (1*alnum_char) as part\n type = \"-\" upper as type\n edition = \"-\" (1*digit_dot_char [*1letter]) as edition\n suffix = \"-\" upper as suffix\n corrigendum = space \"Cor.\" space (1*digit) as cor_number\n corrigenda = (*corrigendum) as corrigenda\n language_metadata = space dash space (language_word [*\" Translated\"])\n language_word = (\"French\" / \"Russian\" / \"English\" / \"German\" / \"Spanish\" / \"Italian\" / \"Portuguese\" / \"Chinese\" / \"Japanese\") as language\n identifier = \"CCSDS \" number [part] [type] [edition] [suffix] corrigenda [language_metadata]\n dash = \"-\"\n space = \" \"\n digit = %x30-39\n letter = %x41-5A / %x61-7A\n entry identifier: identifier\n\n test {\n accept \"CCSDS 650.0-G-2\"\n accept \"CCSDS 100.0-G-1\"\n reject \"nonsense\"\n }\n}\n","source_hash":"12256a86cc5cb67f9f8a8be24ae2a4ea5125b36cc3c2a9860288fb43853edbfb","compiler_version":"1.3.93","checksum":"sha256:a01c0f93b2ca60e9e598478f72b16de77c6a36524d66cbc0ce66cb1b5bbea278"}
@@ -1 +1 @@
1
- {"bindings":null,"version":"0.2.0","grammar":"PubidCenCenelec","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":108}},{"Entity":{"atom":5}},{"Str":{"pattern":"FprEN"}},{"Str":{"pattern":"prEN"}},{"Alternative":{"atoms":[2,3]}},{"Named":{"name":"type_with_stage","atom":4}},{"Entity":{"atom":36}},{"Str":{"pattern":"CWA"}},{"Str":{"pattern":"HD"}},{"Str":{"pattern":"ES"}},{"Str":{"pattern":"CR"}},{"Str":{"pattern":"ENV"}},{"Alternative":{"atoms":[7,8,9,10,11]}},{"Named":{"name":"publisher","atom":12}},{"Str":{"pattern":"EN"}},{"Str":{"pattern":"CEN"}},{"Alternative":{"atoms":[14,15]}},{"Named":{"name":"publisher","atom":16}},{"Entity":{"atom":28}},{"Entity":{"atom":26}},{"Entity":{"atom":21}},{"Str":{"pattern":"/"}},{"Str":{"pattern":"CLC"}},{"Str":{"pattern":"ETSI"}},{"Alternative":{"atoms":[22,23]}},{"Named":{"name":"copublisher","atom":24}},{"Sequence":{"atoms":[20,25]}},{"Repetition":{"atom":19,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"copublishers","atom":27}},{"Repetition":{"atom":18,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[17,29]}},{"Str":{"pattern":"CLC"}},{"Named":{"name":"publisher","atom":31}},{"Entity":{"atom":28}},{"Repetition":{"atom":33,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[32,34]}},{"Alternative":{"atoms":[13,30,35]}},{"Alternative":{"atoms":[1,6]}},{"Entity":{"atom":39}},{"Str":{"pattern":" "}},{"Entity":{"atom":50}},{"Entity":{"atom":42}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":41,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":39}},{"Entity":{"atom":42}},{"Repetition":{"atom":45,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[44,46]}},{"Repetition":{"atom":47,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[43,48]}},{"Named":{"name":"number","atom":49}},{"Entity":{"atom":62}},{"Entity":{"atom":60}},{"Entity":{"atom":54}},{"Str":{"pattern":"-"}},{"Entity":{"atom":42}},{"Entity":{"atom":54}},{"Alternative":{"atoms":[55,56]}},{"Repetition":{"atom":57,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"part","atom":58}},{"Sequence":{"atoms":[53,59]}},{"Repetition":{"atom":52,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"parts","atom":61}},{"Entity":{"atom":39}},{"Str":{"pattern":"AMD"}},{"Entity":{"atom":42}},{"Repetition":{"atom":65,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"amendment_number","atom":66}},{"Entity":{"atom":39}},{"Str":{"pattern":"FRAG"}},{"Entity":{"atom":42}},{"Repetition":{"atom":70,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"fragment_number","atom":71}},{"Sequence":{"atoms":[37,38,40,51,63,64,67,68,69,72]}},{"Entity":{"atom":5}},{"Entity":{"atom":36}},{"Alternative":{"atoms":[74,75]}},{"Entity":{"atom":39}},{"Entity":{"atom":50}},{"Entity":{"atom":62}},{"Entity":{"atom":86}},{"Entity":{"atom":82}},{"Str":{"pattern":":"}},{"Entity":{"atom":42}},{"Repetition":{"atom":83,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":84}},{"Sequence":{"atoms":[81,85]}},{"Repetition":{"atom":80,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":89}},{"Str":{"pattern":"+"}},{"Entity":{"atom":21}},{"Alternative":{"atoms":[88,90]}},{"Str":{"pattern":"A"}},{"Entity":{"atom":42}},{"Repetition":{"atom":93,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"amendment_number","atom":94}},{"Entity":{"atom":82}},{"Entity":{"atom":42}},{"Repetition":{"atom":97,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"amendment_year","atom":98}},{"Sequence":{"atoms":[96,99]}},{"Repetition":{"atom":100,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":39}},{"Str":{"pattern":"FRAG"}},{"Entity":{"atom":42}},{"Repetition":{"atom":104,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"fragment_number","atom":105}},{"Sequence":{"atoms":[76,77,78,79,87,91,92,95,101,102,103,106]}},{"Alternative":{"atoms":[73,107]}},{"Entity":{"atom":5}},{"Entity":{"atom":36}},{"Alternative":{"atoms":[109,110]}},{"Entity":{"atom":39}},{"Entity":{"atom":198}},{"Entity":{"atom":118}},{"Str":{"pattern":"ISO"}},{"Str":{"pattern":"IEC"}},{"Str":{"pattern":"CISPR"}},{"Alternative":{"atoms":[115,116,117]}},{"Entity":{"atom":181}},{"Entity":{"atom":136}},{"Entity":{"atom":89}},{"Named":{"name":"amd_sep_plus","atom":121}},{"Entity":{"atom":21}},{"Named":{"name":"amd_sep_slash","atom":123}},{"Alternative":{"atoms":[122,124]}},{"Str":{"pattern":"A"}},{"Entity":{"atom":42}},{"Repetition":{"atom":127,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"amd_number","atom":128}},{"Entity":{"atom":82}},{"Entity":{"atom":42}},{"Repetition":{"atom":131,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"amd_year","atom":132}},{"Sequence":{"atoms":[130,133]}},{"Repetition":{"atom":134,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[125,126,129,135]}},{"Entity":{"atom":179}},{"Entity":{"atom":89}},{"Named":{"name":"amd_sep_plus","atom":138}},{"Entity":{"atom":21}},{"Named":{"name":"amd_sep_slash","atom":140}},{"Alternative":{"atoms":[139,141]}},{"Str":{"pattern":"AC"}},{"Entity":{"atom":42}},{"Entity":{"atom":42}},{"Repetition":{"atom":145,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[144,146]}},{"Named":{"name":"cor_number","atom":147}},{"Repetition":{"atom":148,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":171}},{"Entity":{"atom":82}},{"Entity":{"atom":42}},{"Repetition":{"atom":152,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":153}},{"Entity":{"atom":54}},{"Entity":{"atom":170}},{"Str":{"pattern":"01"}},{"Str":{"pattern":"02"}},{"Str":{"pattern":"03"}},{"Str":{"pattern":"04"}},{"Str":{"pattern":"05"}},{"Str":{"pattern":"06"}},{"Str":{"pattern":"07"}},{"Str":{"pattern":"08"}},{"Str":{"pattern":"09"}},{"Str":{"pattern":"10"}},{"Str":{"pattern":"11"}},{"Str":{"pattern":"12"}},{"Alternative":{"atoms":[157,158,159,160,161,162,163,164,165,166,167,168]}},{"Named":{"name":"month","atom":169}},{"Sequence":{"atoms":[151,154,155,156]}},{"Entity":{"atom":82}},{"Entity":{"atom":42}},{"Repetition":{"atom":173,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":174}},{"Sequence":{"atoms":[172,175]}},{"Alternative":{"atoms":[150,176]}},{"Repetition":{"atom":177,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[142,143,149,178]}},{"Alternative":{"atoms":[120,137]}},{"Named":{"name":"supplement","atom":180}},{"Lookahead":{"atom":119,"positive":false}},{"Entity":{"atom":189}},{"Entity":{"atom":39}},{"Str":{"pattern":"ED"}},{"Entity":{"atom":42}},{"Repetition":{"atom":186,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"edition","atom":187}},{"Sequence":{"atoms":[184,185,188]}},{"Lookahead":{"atom":183,"positive":false}},{"Entity":{"atom":194}},{"Re":{"pattern":"[\\x01-\\x09]"}},{"Re":{"pattern":"[\\x0b-\\u{10ffff}]"}},{"Alternative":{"atoms":[192,193]}},{"Sequence":{"atoms":[182,190,191]}},{"Repetition":{"atom":195,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[114,196]}},{"Named":{"name":"adopted_string","atom":197}},{"Sequence":{"atoms":[112,113]}},{"Repetition":{"atom":199,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":39}},{"Entity":{"atom":208}},{"Str":{"pattern":"Guide"}},{"Str":{"pattern":"GUIDE"}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Alternative":{"atoms":[203,204,205,206]}},{"Named":{"name":"type","atom":207}},{"Sequence":{"atoms":[201,202]}},{"Entity":{"atom":21}},{"Entity":{"atom":208}},{"Sequence":{"atoms":[210,211]}},{"Alternative":{"atoms":[209,212]}},{"Repetition":{"atom":213,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":39}},{"Entity":{"atom":50}},{"Entity":{"atom":62}},{"Entity":{"atom":230}},{"Entity":{"atom":39}},{"Str":{"pattern":"V"}},{"Entity":{"atom":42}},{"Repetition":{"atom":221,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Entity":{"atom":42}},{"Repetition":{"atom":224,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Entity":{"atom":42}},{"Repetition":{"atom":227,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[219,220,222,223,225,226,228]}},{"Named":{"name":"version","atom":229}},{"Repetition":{"atom":218,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":86}},{"Repetition":{"atom":232,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[215,216,217,231,233]}},{"Repetition":{"atom":234,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":239}},{"Entity":{"atom":181}},{"Repetition":{"atom":237,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"supplements","atom":238}},{"Entity":{"atom":189}},{"Repetition":{"atom":240,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[111,200,214,235,236,241]}},{"Alternative":{"atoms":[0,242]}}],"root":243},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule publisher: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule publisher: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule publisher: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule date: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule adopted_org_prefix: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule any_noln_char: branches 1 and 2 are order-dependent (first set not statically known)","rule fragment_identifier: 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)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"EN 18216:2026","expect":{}},{"entry":"identifier","kind":"accept","input":"EN ISO 9001:2015","expect":{}},{"entry":"identifier","kind":"accept","input":"CEN/CLC TR 17161:2019","expect":{}},{"entry":"identifier","kind":"accept","input":"EN 196-1:2016+A1","expect":{}},{"entry":"identifier","kind":"accept","input":"CEN/CLC/ETSI/TR 101551:2026","expect":{}},{"entry":"identifier","kind":"accept","input":"EN 302 326-2:2026","expect":{}},{"entry":"identifier","kind":"accept","input":"EN 302 326-2 V2.2.1","expect":{}},{"entry":"identifier","kind":"accept","input":"EN 302 326 V2.2.1:2026","expect":{}},{"entry":"identifier","kind":"accept","input":"EN 302:2026","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/cen_cenelec/parser.rb. Pre-parse normalization\n# (U+2011/AD dashes, comment stripping, CEN-CLC/GUIDE forms) stays\n# binder-side: the grammar sees normalized input.\n\ngrammar PubidCenCenelec version \"0.2.0\" {\n digit = %x30-39\n space = \" \"\n dash = \"-\"\n slash = \"/\"\n plus = \"+\"\n colon = \":\"\n publisher = ((\"CWA\" / \"HD\" / \"ES\" / \"CR\" / \"ENV\") as publisher) / ((\"EN\" / \"CEN\") as publisher [copublishers]) / (\"CLC\" as publisher [copublishers])\n copublishers = (1*copublisher) as copublishers\n copublisher = (slash (\"CLC\" / \"ETSI\") as copublisher)\n stage_prefix = (\"FprEN\" / \"prEN\") as type_with_stage\n type = (\"Guide\" / \"GUIDE\" / \"TR\" / \"TS\") as type\n number = ((1*digit) (*(space (1*digit)))) as number\n version = (space \"V\" (1*digit) \".\" (1*digit) \".\" (1*digit)) as version\n part = dash (1*(digit / dash)) as part\n parts = (*part) as parts\n month_digits = (\"01\" / \"02\" / \"03\" / \"04\" / \"05\" / \"06\" / \"07\" / \"08\" / \"09\" / \"10\" / \"11\" / \"12\") as month\n year = colon (4digit) as year\n year_with_month = colon (4digit) as year dash month_digits\n date = year_with_month / year\n amendment = (plus as amd_sep_plus / slash as amd_sep_slash) \"A\" (1*digit) as amd_number [(colon (4digit) as amd_year)]\n corrigendum = (plus as amd_sep_plus / slash as amd_sep_slash) \"AC\" [(digit (*digit)) as cor_number] [(year_with_month / (colon (4digit) as year))]\n supplement = (amendment / corrigendum) as supplement\n supplements = (*supplement) as supplements\n edition = space \"ED\" (1*digit) as edition\n adopted_org_prefix = \"ISO\" / \"IEC\" / \"CISPR\"\n adopted_string = (adopted_org_prefix *(!supplement !edition any_noln_char)) as adopted_string\n any_noln_char = %x01-09 / %x0B-10FFFF\n fragment_identifier = ((stage_prefix / publisher) space number parts space \"AMD\" (1*digit) as amendment_number space \"FRAG\" (1*digit) as fragment_number) / ((stage_prefix / publisher) space number parts [year] (plus / slash) \"A\" (1*digit) as amendment_number [(colon (4digit) as amendment_year)] space \"FRAG\" (1*digit) as fragment_number)\n identifier = fragment_identifier / ((stage_prefix / publisher) [(space adopted_string)] [(space type / slash type)] [(space number parts [version] [year])] supplements [edition])\n\n entry identifier: identifier\n\n test {\n accept \"EN 18216:2026\"\n accept \"EN ISO 9001:2015\"\n accept \"CEN/CLC TR 17161:2019\"\n accept \"EN 196-1:2016+A1\"\n accept \"CEN/CLC/ETSI/TR 101551:2026\"\n accept \"EN 302 326-2:2026\"\n accept \"EN 302 326-2 V2.2.1\"\n accept \"EN 302 326 V2.2.1:2026\"\n accept \"EN 302:2026\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:037cbc3a56e9a6f997d83b0407af21c8b77d4f39e5f209d8e5f20e8a5c5b23f3"}
1
+ {"bindings":null,"version":"0.2.0","grammar":"PubidCenCenelec","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":108}},{"Entity":{"atom":5}},{"Str":{"pattern":"FprEN"}},{"Str":{"pattern":"prEN"}},{"Alternative":{"atoms":[2,3]}},{"Named":{"name":"type_with_stage","atom":4}},{"Entity":{"atom":36}},{"Str":{"pattern":"CWA"}},{"Str":{"pattern":"HD"}},{"Str":{"pattern":"ES"}},{"Str":{"pattern":"CR"}},{"Str":{"pattern":"ENV"}},{"Alternative":{"atoms":[7,8,9,10,11]}},{"Named":{"name":"publisher","atom":12}},{"Str":{"pattern":"EN"}},{"Str":{"pattern":"CEN"}},{"Alternative":{"atoms":[14,15]}},{"Named":{"name":"publisher","atom":16}},{"Entity":{"atom":28}},{"Entity":{"atom":26}},{"Entity":{"atom":21}},{"Str":{"pattern":"/"}},{"Str":{"pattern":"CLC"}},{"Str":{"pattern":"ETSI"}},{"Alternative":{"atoms":[22,23]}},{"Named":{"name":"copublisher","atom":24}},{"Sequence":{"atoms":[20,25]}},{"Repetition":{"atom":19,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"copublishers","atom":27}},{"Repetition":{"atom":18,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[17,29]}},{"Str":{"pattern":"CLC"}},{"Named":{"name":"publisher","atom":31}},{"Entity":{"atom":28}},{"Repetition":{"atom":33,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[32,34]}},{"Alternative":{"atoms":[13,30,35]}},{"Alternative":{"atoms":[1,6]}},{"Entity":{"atom":39}},{"Str":{"pattern":" "}},{"Entity":{"atom":50}},{"Entity":{"atom":42}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":41,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":39}},{"Entity":{"atom":42}},{"Repetition":{"atom":45,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[44,46]}},{"Repetition":{"atom":47,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[43,48]}},{"Named":{"name":"number","atom":49}},{"Entity":{"atom":62}},{"Entity":{"atom":60}},{"Entity":{"atom":54}},{"Str":{"pattern":"-"}},{"Entity":{"atom":42}},{"Entity":{"atom":54}},{"Alternative":{"atoms":[55,56]}},{"Repetition":{"atom":57,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"part","atom":58}},{"Sequence":{"atoms":[53,59]}},{"Repetition":{"atom":52,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"parts","atom":61}},{"Entity":{"atom":39}},{"Str":{"pattern":"AMD"}},{"Entity":{"atom":42}},{"Repetition":{"atom":65,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"amendment_number","atom":66}},{"Entity":{"atom":39}},{"Str":{"pattern":"FRAG"}},{"Entity":{"atom":42}},{"Repetition":{"atom":70,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"fragment_number","atom":71}},{"Sequence":{"atoms":[37,38,40,51,63,64,67,68,69,72]}},{"Entity":{"atom":5}},{"Entity":{"atom":36}},{"Alternative":{"atoms":[74,75]}},{"Entity":{"atom":39}},{"Entity":{"atom":50}},{"Entity":{"atom":62}},{"Entity":{"atom":86}},{"Entity":{"atom":82}},{"Str":{"pattern":":"}},{"Entity":{"atom":42}},{"Repetition":{"atom":83,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":84}},{"Sequence":{"atoms":[81,85]}},{"Repetition":{"atom":80,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":89}},{"Str":{"pattern":"+"}},{"Entity":{"atom":21}},{"Alternative":{"atoms":[88,90]}},{"Str":{"pattern":"A"}},{"Entity":{"atom":42}},{"Repetition":{"atom":93,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"amendment_number","atom":94}},{"Entity":{"atom":82}},{"Entity":{"atom":42}},{"Repetition":{"atom":97,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"amendment_year","atom":98}},{"Sequence":{"atoms":[96,99]}},{"Repetition":{"atom":100,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":39}},{"Str":{"pattern":"FRAG"}},{"Entity":{"atom":42}},{"Repetition":{"atom":104,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"fragment_number","atom":105}},{"Sequence":{"atoms":[76,77,78,79,87,91,92,95,101,102,103,106]}},{"Alternative":{"atoms":[73,107]}},{"Entity":{"atom":5}},{"Entity":{"atom":36}},{"Alternative":{"atoms":[109,110]}},{"Entity":{"atom":39}},{"Entity":{"atom":198}},{"Entity":{"atom":118}},{"Str":{"pattern":"ISO"}},{"Str":{"pattern":"IEC"}},{"Str":{"pattern":"CISPR"}},{"Alternative":{"atoms":[115,116,117]}},{"Entity":{"atom":181}},{"Entity":{"atom":136}},{"Entity":{"atom":89}},{"Named":{"name":"amd_sep_plus","atom":121}},{"Entity":{"atom":21}},{"Named":{"name":"amd_sep_slash","atom":123}},{"Alternative":{"atoms":[122,124]}},{"Str":{"pattern":"A"}},{"Entity":{"atom":42}},{"Repetition":{"atom":127,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"amd_number","atom":128}},{"Entity":{"atom":82}},{"Entity":{"atom":42}},{"Repetition":{"atom":131,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"amd_year","atom":132}},{"Sequence":{"atoms":[130,133]}},{"Repetition":{"atom":134,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[125,126,129,135]}},{"Entity":{"atom":179}},{"Entity":{"atom":89}},{"Named":{"name":"amd_sep_plus","atom":138}},{"Entity":{"atom":21}},{"Named":{"name":"amd_sep_slash","atom":140}},{"Alternative":{"atoms":[139,141]}},{"Str":{"pattern":"AC"}},{"Entity":{"atom":42}},{"Entity":{"atom":42}},{"Repetition":{"atom":145,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[144,146]}},{"Named":{"name":"cor_number","atom":147}},{"Repetition":{"atom":148,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":171}},{"Entity":{"atom":82}},{"Entity":{"atom":42}},{"Repetition":{"atom":152,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":153}},{"Entity":{"atom":54}},{"Entity":{"atom":170}},{"Str":{"pattern":"01"}},{"Str":{"pattern":"02"}},{"Str":{"pattern":"03"}},{"Str":{"pattern":"04"}},{"Str":{"pattern":"05"}},{"Str":{"pattern":"06"}},{"Str":{"pattern":"07"}},{"Str":{"pattern":"08"}},{"Str":{"pattern":"09"}},{"Str":{"pattern":"10"}},{"Str":{"pattern":"11"}},{"Str":{"pattern":"12"}},{"Alternative":{"atoms":[157,158,159,160,161,162,163,164,165,166,167,168]}},{"Named":{"name":"month","atom":169}},{"Sequence":{"atoms":[151,154,155,156]}},{"Entity":{"atom":82}},{"Entity":{"atom":42}},{"Repetition":{"atom":173,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":174}},{"Sequence":{"atoms":[172,175]}},{"Alternative":{"atoms":[150,176]}},{"Repetition":{"atom":177,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[142,143,149,178]}},{"Alternative":{"atoms":[120,137]}},{"Named":{"name":"supplement","atom":180}},{"Lookahead":{"atom":119,"positive":false}},{"Entity":{"atom":189}},{"Entity":{"atom":39}},{"Str":{"pattern":"ED"}},{"Entity":{"atom":42}},{"Repetition":{"atom":186,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"edition","atom":187}},{"Sequence":{"atoms":[184,185,188]}},{"Lookahead":{"atom":183,"positive":false}},{"Entity":{"atom":194}},{"Re":{"pattern":"[\\x01-\\x09]"}},{"Re":{"pattern":"[\\x0b-\\u{10ffff}]"}},{"Alternative":{"atoms":[192,193]}},{"Sequence":{"atoms":[182,190,191]}},{"Repetition":{"atom":195,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[114,196]}},{"Named":{"name":"adopted_string","atom":197}},{"Sequence":{"atoms":[112,113]}},{"Repetition":{"atom":199,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":39}},{"Entity":{"atom":208}},{"Str":{"pattern":"Guide"}},{"Str":{"pattern":"GUIDE"}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Alternative":{"atoms":[203,204,205,206]}},{"Named":{"name":"type","atom":207}},{"Sequence":{"atoms":[201,202]}},{"Entity":{"atom":21}},{"Entity":{"atom":208}},{"Sequence":{"atoms":[210,211]}},{"Alternative":{"atoms":[209,212]}},{"Repetition":{"atom":213,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":39}},{"Entity":{"atom":50}},{"Entity":{"atom":62}},{"Entity":{"atom":230}},{"Entity":{"atom":39}},{"Str":{"pattern":"V"}},{"Entity":{"atom":42}},{"Repetition":{"atom":221,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Entity":{"atom":42}},{"Repetition":{"atom":224,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Entity":{"atom":42}},{"Repetition":{"atom":227,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[219,220,222,223,225,226,228]}},{"Named":{"name":"version","atom":229}},{"Repetition":{"atom":218,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":86}},{"Repetition":{"atom":232,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[215,216,217,231,233]}},{"Repetition":{"atom":234,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":239}},{"Entity":{"atom":181}},{"Repetition":{"atom":237,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"supplements","atom":238}},{"Entity":{"atom":189}},{"Repetition":{"atom":240,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[111,200,214,235,236,241]}},{"Alternative":{"atoms":[0,242]}}],"root":243},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule publisher: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule publisher: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule publisher: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule date: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule adopted_org_prefix: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule any_noln_char: branches 1 and 2 are order-dependent (first set not statically known)","rule fragment_identifier: 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)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"EN 18216:2026","expect":{}},{"entry":"identifier","kind":"accept","input":"EN ISO 9001:2015","expect":{}},{"entry":"identifier","kind":"accept","input":"CEN/CLC TR 17161:2019","expect":{}},{"entry":"identifier","kind":"accept","input":"EN 196-1:2016+A1","expect":{}},{"entry":"identifier","kind":"accept","input":"CEN/CLC/ETSI/TR 101551:2026","expect":{}},{"entry":"identifier","kind":"accept","input":"EN 302 326-2:2026","expect":{}},{"entry":"identifier","kind":"accept","input":"EN 302 326-2 V2.2.1","expect":{}},{"entry":"identifier","kind":"accept","input":"EN 302 326 V2.2.1:2026","expect":{}},{"entry":"identifier","kind":"accept","input":"EN 302:2026","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/cen_cenelec/parser.rb. Pre-parse normalization\n# (U+2011/AD dashes, comment stripping, CEN-CLC/GUIDE forms) stays\n# binder-side: the grammar sees normalized input.\n\ngrammar PubidCenCenelec version \"0.2.0\" {\n digit = %x30-39\n space = \" \"\n dash = \"-\"\n slash = \"/\"\n plus = \"+\"\n colon = \":\"\n publisher = ((\"CWA\" / \"HD\" / \"ES\" / \"CR\" / \"ENV\") as publisher) / ((\"EN\" / \"CEN\") as publisher [copublishers]) / (\"CLC\" as publisher [copublishers])\n copublishers = (1*copublisher) as copublishers\n copublisher = (slash (\"CLC\" / \"ETSI\") as copublisher)\n stage_prefix = (\"FprEN\" / \"prEN\") as type_with_stage\n type = (\"Guide\" / \"GUIDE\" / \"TR\" / \"TS\") as type\n number = ((1*digit) (*(space (1*digit)))) as number\n version = (space \"V\" (1*digit) \".\" (1*digit) \".\" (1*digit)) as version\n part = dash (1*(digit / dash)) as part\n parts = (*part) as parts\n month_digits = (\"01\" / \"02\" / \"03\" / \"04\" / \"05\" / \"06\" / \"07\" / \"08\" / \"09\" / \"10\" / \"11\" / \"12\") as month\n year = colon (4digit) as year\n year_with_month = colon (4digit) as year dash month_digits\n date = year_with_month / year\n amendment = (plus as amd_sep_plus / slash as amd_sep_slash) \"A\" (1*digit) as amd_number [(colon (4digit) as amd_year)]\n corrigendum = (plus as amd_sep_plus / slash as amd_sep_slash) \"AC\" [(digit (*digit)) as cor_number] [(year_with_month / (colon (4digit) as year))]\n supplement = (amendment / corrigendum) as supplement\n supplements = (*supplement) as supplements\n edition = space \"ED\" (1*digit) as edition\n adopted_org_prefix = \"ISO\" / \"IEC\" / \"CISPR\"\n adopted_string = (adopted_org_prefix *(!supplement !edition any_noln_char)) as adopted_string\n any_noln_char = %x01-09 / %x0B-10FFFF\n fragment_identifier = ((stage_prefix / publisher) space number parts space \"AMD\" (1*digit) as amendment_number space \"FRAG\" (1*digit) as fragment_number) / ((stage_prefix / publisher) space number parts [year] (plus / slash) \"A\" (1*digit) as amendment_number [(colon (4digit) as amendment_year)] space \"FRAG\" (1*digit) as fragment_number)\n identifier = fragment_identifier / ((stage_prefix / publisher) [(space adopted_string)] [(space type / slash type)] [(space number parts [version] [year])] supplements [edition])\n\n entry identifier: identifier\n\n test {\n accept \"EN 18216:2026\"\n accept \"EN ISO 9001:2015\"\n accept \"CEN/CLC TR 17161:2019\"\n accept \"EN 196-1:2016+A1\"\n accept \"CEN/CLC/ETSI/TR 101551:2026\"\n accept \"EN 302 326-2:2026\"\n accept \"EN 302 326-2 V2.2.1\"\n accept \"EN 302 326 V2.2.1:2026\"\n accept \"EN 302:2026\"\n reject \"nonsense\"\n }\n}\n","source_hash":"eec1427274986950746929b3728c070b9f3fb80141ecc3a1b90e6eebffeb56c5","compiler_version":"1.3.93","checksum":"sha256:f27285171cfe165a0174ed74c63f58e0c70f5fdadb35f62e7a0c9a0835004283"}
@@ -1 +1 @@
1
- {"bindings":null,"version":"0.1.0","grammar":"PubidCie","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":9}},{"Str":{"pattern":"CIE Tutorials Bundle"}},{"Entity":{"atom":3}},{"Str":{"pattern":" "}},{"Entity":{"atom":7}},{"Entity":{"atom":6}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":5,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"bundle_number","atom":4}},{"Sequence":{"atoms":[1,2,8]}},{"Entity":{"atom":47}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Named":{"name":"first_number","atom":13}},{"Entity":{"atom":16}},{"Str":{"pattern":"-"}},{"Str":{"pattern":"SP"}},{"Entity":{"atom":7}},{"Entity":{"atom":20}},{"Str":{"pattern":"."}},{"Entity":{"atom":7}},{"Entity":{"atom":23}},{"Str":{"pattern":":"}},{"Entity":{"atom":33}},{"Entity":{"atom":28}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[26,27]}},{"Entity":{"atom":6}},{"Repetition":{"atom":29,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":6}},{"Lookahead":{"atom":31,"positive":false}},{"Sequence":{"atoms":[25,30,32]}},{"Str":{"pattern":","}},{"Entity":{"atom":7}},{"Named":{"name":"next_number","atom":35}},{"Entity":{"atom":16}},{"Str":{"pattern":"SP"}},{"Entity":{"atom":7}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Sequence":{"atoms":[34,36,37,38,39,40,41,42,43]}},{"Repetition":{"atom":44,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"bundle_items","atom":45}},{"Sequence":{"atoms":[11,12,14,15,17,18,19,21,22,24,46]}},{"Entity":{"atom":107}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Str":{"pattern":"ISO/CIE"}},{"Named":{"name":"copublisher","atom":51}},{"Entity":{"atom":3}},{"Entity":{"atom":57}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Alternative":{"atoms":[55,56]}},{"Entity":{"atom":3}},{"Sequence":{"atoms":[54,58]}},{"Named":{"name":"doc_type","atom":59}},{"Repetition":{"atom":60,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":62}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":65}},{"Sequence":{"atoms":[64,66]}},{"Repetition":{"atom":67,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":105}},{"Entity":{"atom":85}},{"Entity":{"atom":3}},{"Repetition":{"atom":71,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":74}},{"Str":{"pattern":"("}},{"Entity":{"atom":76}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Repetition":{"atom":75,"min":2,"max":null,"tag":"Repetition"}},{"Named":{"name":"lang_code","atom":77}},{"Entity":{"atom":16}},{"Entity":{"atom":33}},{"Named":{"name":"trans_year","atom":80}},{"Entity":{"atom":83}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[72,73,78,79,81,82]}},{"Named":{"name":"language_paren_year","atom":84}},{"Entity":{"atom":97}},{"Entity":{"atom":74}},{"Entity":{"atom":92}},{"Entity":{"atom":76}},{"Entity":{"atom":91}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[89,90]}},{"Repetition":{"atom":88,"min":1,"max":3,"tag":"Repetition"}},{"Named":{"name":"lang_code","atom":93}},{"Entity":{"atom":83}},{"Sequence":{"atoms":[87,94,95]}},{"Named":{"name":"language_paren","atom":96}},{"Entity":{"atom":104}},{"Entity":{"atom":100}},{"Str":{"pattern":"/"}},{"Entity":{"atom":76}},{"Named":{"name":"lang_code","atom":101}},{"Sequence":{"atoms":[99,102]}},{"Named":{"name":"language_slash","atom":103}},{"Alternative":{"atoms":[70,86,98]}},{"Repetition":{"atom":69,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[49,50,52,53,61,63,68,106]}},{"Entity":{"atom":149}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Str":{"pattern":"ISO"}},{"Named":{"name":"copublisher","atom":111}},{"Entity":{"atom":100}},{"Lookahead":{"atom":113,"positive":false}},{"Entity":{"atom":3}},{"Entity":{"atom":57}},{"Entity":{"atom":3}},{"Sequence":{"atoms":[116,117]}},{"Named":{"name":"doc_type","atom":118}},{"Repetition":{"atom":119,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":127}},{"Str":{"pattern":"FDIS"}},{"Str":{"pattern":"DIS"}},{"Str":{"pattern":"DS"}},{"Alternative":{"atoms":[122,123,124]}},{"Entity":{"atom":3}},{"Sequence":{"atoms":[125,126]}},{"Named":{"name":"stage","atom":121}},{"Repetition":{"atom":128,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":130}},{"Entity":{"atom":16}},{"Entity":{"atom":7}},{"Named":{"name":"part","atom":133}},{"Sequence":{"atoms":[132,134]}},{"Repetition":{"atom":135,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":138}},{"Sequence":{"atoms":[137,139]}},{"Entity":{"atom":16}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":142}},{"Sequence":{"atoms":[141,143]}},{"Alternative":{"atoms":[140,144]}},{"Repetition":{"atom":145,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":105}},{"Repetition":{"atom":147,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[109,110,112,114,115,120,129,131,136,146,148]}},{"Entity":{"atom":164}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Str":{"pattern":"IEC"}},{"Named":{"name":"copublisher","atom":153}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":156}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"part","atom":159}},{"Entity":{"atom":16}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":162}},{"Sequence":{"atoms":[151,152,154,155,157,158,160,161,163]}},{"Entity":{"atom":224}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":171}},{"Str":{"pattern":"S"}},{"Entity":{"atom":3}},{"Sequence":{"atoms":[169,170]}},{"Named":{"name":"s_prefix","atom":168}},{"Repetition":{"atom":172,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":174}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"iteration","atom":177}},{"Sequence":{"atoms":[176,178]}},{"Entity":{"atom":16}},{"Entity":{"atom":7}},{"Named":{"name":"part","atom":181}},{"Sequence":{"atoms":[180,182]}},{"Alternative":{"atoms":[179,183]}},{"Repetition":{"atom":184,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":100}},{"Entity":{"atom":76}},{"Named":{"name":"lang_code","atom":187}},{"Entity":{"atom":23}},{"Named":{"name":"lang_colon","atom":189}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":191}},{"Sequence":{"atoms":[188,190,192]}},{"Entity":{"atom":76}},{"Named":{"name":"lang_code","atom":194}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":196}},{"Sequence":{"atoms":[195,197]}},{"Entity":{"atom":33}},{"Named":{"name":"slash_year","atom":199}},{"Alternative":{"atoms":[193,198,200]}},{"Sequence":{"atoms":[186,201]}},{"Repetition":{"atom":202,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":3}},{"Str":{"pattern":"(ISO"}},{"Entity":{"atom":3}},{"Entity":{"atom":6}},{"Entity":{"atom":76}},{"Entity":{"atom":23}},{"Entity":{"atom":100}},{"Entity":{"atom":20}},{"Entity":{"atom":16}},{"Alternative":{"atoms":[207,208,209,210,211,212]}},{"Repetition":{"atom":213,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":74}},{"Entity":{"atom":76}},{"Repetition":{"atom":216,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":83}},{"Sequence":{"atoms":[215,217,218]}},{"Repetition":{"atom":219,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[214,220]}},{"Named":{"name":"iso_reference","atom":221}},{"Entity":{"atom":83}},{"Sequence":{"atoms":[166,167,173,175,185,203,204,205,206,222,223]}},{"Entity":{"atom":251}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":127}},{"Named":{"name":"stage","atom":228}},{"Entity":{"atom":171}},{"Named":{"name":"s_prefix","atom":230}},{"Repetition":{"atom":231,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":7}},{"Named":{"name":"base_number","atom":233}},{"Entity":{"atom":16}},{"Str":{"pattern":"SP"}},{"Entity":{"atom":7}},{"Named":{"name":"supplement_number","atom":237}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"supplement_part","atom":240}},{"Sequence":{"atoms":[239,241]}},{"Repetition":{"atom":242,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":100}},{"Entity":{"atom":76}},{"Named":{"name":"lang_code","atom":245}},{"Entity":{"atom":23}},{"Named":{"name":"lang_colon","atom":247}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":249}},{"Sequence":{"atoms":[226,227,229,232,234,235,236,238,243,244,246,248,250]}},{"Entity":{"atom":273}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":171}},{"Named":{"name":"s_prefix","atom":255}},{"Repetition":{"atom":256,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":258}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":261}},{"Entity":{"atom":100}},{"Str":{"pattern":"IEC"}},{"Entity":{"atom":3}},{"Entity":{"atom":270}},{"Re":{"pattern":"[\\x01-\\x09]"}},{"Re":{"pattern":"[\\x0b-\\x28]"}},{"Re":{"pattern":"[\\x2a-\\u{10ffff}]"}},{"Alternative":{"atoms":[267,268,269]}},{"Repetition":{"atom":266,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"iec_identifier","atom":271}},{"Sequence":{"atoms":[253,254,257,259,260,262,263,264,265,272]}},{"Entity":{"atom":300}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Named":{"name":"base_number","atom":277}},{"Entity":{"atom":16}},{"Str":{"pattern":"SP"}},{"Entity":{"atom":7}},{"Named":{"name":"base_supplement","atom":281}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"base_supplement_part","atom":284}},{"Sequence":{"atoms":[283,285]}},{"Repetition":{"atom":286,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[279,280,282,287]}},{"Repetition":{"atom":288,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"base_year","atom":291}},{"Entity":{"atom":100}},{"Str":{"pattern":"Cor"}},{"Entity":{"atom":7}},{"Named":{"name":"cor_number","atom":295}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"cor_year","atom":298}},{"Sequence":{"atoms":[275,276,278,289,290,292,293,294,296,297,299]}},{"Entity":{"atom":325}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Named":{"name":"base_number","atom":304}},{"Entity":{"atom":16}},{"Str":{"pattern":"SP"}},{"Entity":{"atom":7}},{"Named":{"name":"supplement_number","atom":308}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"supplement_part","atom":311}},{"Sequence":{"atoms":[310,312]}},{"Repetition":{"atom":313,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":316}},{"Sequence":{"atoms":[315,317]}},{"Repetition":{"atom":318,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":323}},{"Entity":{"atom":97}},{"Entity":{"atom":104}},{"Alternative":{"atoms":[321,322]}},{"Repetition":{"atom":320,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[302,303,305,306,307,309,314,319,324]}},{"Entity":{"atom":406}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":127}},{"Repetition":{"atom":329,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"stage","atom":330}},{"Entity":{"atom":171}},{"Repetition":{"atom":332,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"s_prefix","atom":333}},{"Entity":{"atom":398}},{"Entity":{"atom":345}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":337}},{"Entity":{"atom":100}},{"Entity":{"atom":7}},{"Named":{"name":"part","atom":340}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"iteration","atom":343}},{"Sequence":{"atoms":[338,339,341,342,344]}},{"Entity":{"atom":358}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":347}},{"Entity":{"atom":16}},{"Entity":{"atom":7}},{"Named":{"name":"part","atom":350}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"iteration","atom":353}},{"Sequence":{"atoms":[348,349,351,352,354]}},{"Entity":{"atom":16}},{"Lookahead":{"atom":356,"positive":false}},{"Sequence":{"atoms":[355,357]}},{"Entity":{"atom":365}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":360}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"iteration","atom":363}},{"Sequence":{"atoms":[361,362,364]}},{"Entity":{"atom":377}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":367}},{"Entity":{"atom":100}},{"Str":{"pattern":""}},{"Named":{"name":"slash_sep","atom":370}},{"Entity":{"atom":7}},{"Named":{"name":"part","atom":372}},{"Sequence":{"atoms":[368,369,371,373]}},{"Entity":{"atom":20}},{"Lookahead":{"atom":375,"positive":false}},{"Sequence":{"atoms":[374,376]}},{"Entity":{"atom":394}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":379}},{"Entity":{"atom":16}},{"Str":{"pattern":""}},{"Named":{"name":"dash_sep","atom":382}},{"Entity":{"atom":6}},{"Repetition":{"atom":384,"min":1,"max":3,"tag":"Repetition"}},{"Named":{"name":"part","atom":385}},{"Sequence":{"atoms":[380,381,383,386]}},{"Entity":{"atom":28}},{"Lookahead":{"atom":388,"positive":false}},{"Entity":{"atom":20}},{"Entity":{"atom":16}},{"Alternative":{"atoms":[390,391]}},{"Lookahead":{"atom":392,"positive":false}},{"Sequence":{"atoms":[387,389,393]}},{"Entity":{"atom":397}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":396}},{"Alternative":{"atoms":[336,346,359,366,378,395]}},{"Entity":{"atom":100}},{"Entity":{"atom":76}},{"Named":{"name":"lang_code","atom":400}},{"Entity":{"atom":23}},{"Named":{"name":"lang_colon","atom":402}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":404}},{"Sequence":{"atoms":[327,328,331,334,335,399,401,403,405]}},{"Entity":{"atom":427}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":127}},{"Repetition":{"atom":410,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"stage","atom":411}},{"Entity":{"atom":171}},{"Repetition":{"atom":413,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"s_prefix","atom":414}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":416}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"iteration","atom":419}},{"Sequence":{"atoms":[418,420]}},{"Repetition":{"atom":421,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[417,422]}},{"Entity":{"atom":100}},{"Entity":{"atom":33}},{"Named":{"name":"slash_year","atom":425}},{"Sequence":{"atoms":[408,409,412,415,423,424,426]}},{"Entity":{"atom":449}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Str":{"pattern":"D"}},{"Named":{"name":"d_prefix","atom":431}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":433}},{"Entity":{"atom":448}},{"Entity":{"atom":441}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":438}},{"Sequence":{"atoms":[437,439]}},{"Named":{"name":"current_date","atom":440}},{"Entity":{"atom":447}},{"Entity":{"atom":16}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":444}},{"Sequence":{"atoms":[443,445]}},{"Named":{"name":"legacy_date","atom":446}},{"Alternative":{"atoms":[436,442]}},{"Sequence":{"atoms":[429,430,432,434,435]}},{"Entity":{"atom":463}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Str":{"pattern":"x"}},{"Entity":{"atom":7}},{"Named":{"name":"conf_number","atom":454}},{"Entity":{"atom":16}},{"Entity":{"atom":460}},{"Entity":{"atom":76}},{"Repetition":{"atom":458,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"paper_code","atom":459}},{"Entity":{"atom":7}},{"Named":{"name":"paper_number","atom":461}},{"Sequence":{"atoms":[451,452,453,455,456,457,462]}},{"Entity":{"atom":476}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":460}},{"Entity":{"atom":7}},{"Named":{"name":"paper_number","atom":468}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Entity":{"atom":16}},{"Entity":{"atom":7}},{"Sequence":{"atoms":[471,472,473]}},{"Named":{"name":"page_range","atom":474}},{"Sequence":{"atoms":[465,466,467,469,470,475]}},{"Entity":{"atom":488}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":480}},{"Entity":{"atom":16}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":483}},{"Entity":{"atom":85}},{"Repetition":{"atom":485,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"trailing_lang","atom":486}},{"Sequence":{"atoms":[478,479,481,482,484,487]}},{"Entity":{"atom":514}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":493}},{"Str":{"pattern":"x"}},{"Named":{"name":"conference","atom":492}},{"Entity":{"atom":7}},{"Named":{"name":"conf_number","atom":495}},{"Entity":{"atom":448}},{"Entity":{"atom":3}},{"Str":{"pattern":"Amendment"}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Named":{"name":"amd_number","atom":501}},{"Sequence":{"atoms":[498,499,500,502]}},{"Repetition":{"atom":503,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":512}},{"Entity":{"atom":100}},{"Entity":{"atom":6}},{"Entity":{"atom":91}},{"Alternative":{"atoms":[507,508]}},{"Repetition":{"atom":509,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"variant","atom":510}},{"Sequence":{"atoms":[506,511]}},{"Repetition":{"atom":505,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[490,491,494,496,497,504,513]}},{"Entity":{"atom":581}},{"Entity":{"atom":552}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":76}},{"Named":{"name":"type","atom":519}},{"Entity":{"atom":3}},{"Entity":{"atom":532}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":523}},{"Entity":{"atom":16}},{"Entity":{"atom":6}},{"Repetition":{"atom":526,"min":1,"max":3,"tag":"Repetition"}},{"Named":{"name":"part","atom":527}},{"Sequence":{"atoms":[525,528]}},{"Repetition":{"atom":529,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[524,530]}},{"Named":{"name":"full_number","atom":531}},{"Entity":{"atom":448}},{"Repetition":{"atom":533,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":550}},{"Entity":{"atom":3}},{"Entity":{"atom":544}},{"Entity":{"atom":7}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Sequence":{"atoms":[538,539,540]}},{"Entity":{"atom":7}},{"Alternative":{"atoms":[541,542]}},{"Named":{"name":"iteration","atom":543}},{"Repetition":{"atom":537,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"WD"}},{"Str":{"pattern":"CD"}},{"Alternative":{"atoms":[546,547]}},{"Named":{"name":"stage","atom":548}},{"Sequence":{"atoms":[536,545,549]}},{"Repetition":{"atom":535,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[517,518,520,521,522,534,551]}},{"Named":{"name":"base","atom":516}},{"Entity":{"atom":3}},{"Str":{"pattern":"Annex"}},{"Entity":{"atom":3}},{"Entity":{"atom":76}},{"Entity":{"atom":16}},{"Entity":{"atom":76}},{"Sequence":{"atoms":[558,559]}},{"Repetition":{"atom":560,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[557,561]}},{"Named":{"name":"annex_letter","atom":562}},{"Entity":{"atom":3}},{"Entity":{"atom":568}},{"Str":{"pattern":"Edition"}},{"Str":{"pattern":"edition"}},{"Alternative":{"atoms":[566,567]}},{"Entity":{"atom":3}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":570}},{"Sequence":{"atoms":[564,565,569,571]}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":574}},{"Sequence":{"atoms":[573,575]}},{"Alternative":{"atoms":[572,576]}},{"Repetition":{"atom":577,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":323}},{"Repetition":{"atom":579,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[553,554,555,556,563,578,580]}},{"Entity":{"atom":603}},{"Entity":{"atom":552}},{"Named":{"name":"base","atom":583}},{"Entity":{"atom":3}},{"Str":{"pattern":"Annexes"}},{"Named":{"name":"annex_marker","atom":586}},{"Entity":{"atom":3}},{"Entity":{"atom":568}},{"Entity":{"atom":3}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":591}},{"Sequence":{"atoms":[588,589,590,592]}},{"Named":{"name":"edition_format","atom":593}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":596}},{"Sequence":{"atoms":[595,597]}},{"Alternative":{"atoms":[594,598]}},{"Repetition":{"atom":599,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":323}},{"Repetition":{"atom":601,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[584,585,587,600,602]}},{"Entity":{"atom":626}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":127}},{"Repetition":{"atom":607,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"stage","atom":608}},{"Entity":{"atom":171}},{"Repetition":{"atom":610,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"s_prefix","atom":611}},{"Entity":{"atom":398}},{"Entity":{"atom":105}},{"Entity":{"atom":448}},{"Sequence":{"atoms":[614,615]}},{"Named":{"name":"lang_before","atom":616}},{"Entity":{"atom":448}},{"Entity":{"atom":105}},{"Repetition":{"atom":619,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[618,620]}},{"Named":{"name":"date_then_lang","atom":621}},{"Entity":{"atom":448}},{"Alternative":{"atoms":[617,622,623]}},{"Repetition":{"atom":624,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[605,606,609,612,613,625]}},{"Alternative":{"atoms":[0,10,48,108,150,165,225,252,274,301,326,407,428,450,464,477,489,515,582,604]}}],"root":627},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule code: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 2 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 2 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 3 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 3 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule language: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule doc_type: 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 identifier: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 14 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 14 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 14 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 14 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 14 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 14 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 15 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 15 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 15 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 15 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 15 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 16 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 16 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 16 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 16 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 17 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 17 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 17 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 18 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 18 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 19 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule nonrparen: branches 1 and 2 are order-dependent (first set not statically known)","rule nonrparen_nl: branches 1 and 3 are order-dependent (first set not statically known)","rule nonrparen_nl: branches 2 and 3 are order-dependent (first set not statically known)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"CIE S 008/E:2001","expect":{}},{"entry":"identifier","kind":"accept","input":"CIE 15:2018","expect":{}},{"entry":"identifier","kind":"accept","input":"CIE x045-2019","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/cie/parser.rb — CIE identifiers: standards with\n# iteration/part/separator variants and legacy or current dates,\n# language forms (slash, paren, paren-year), DIS+SP supplements,\n# conference proceedings (xNNN papers), D-series, joint forms with\n# ISO/ISO-CIE/IEC, the identical-(ISO ...) form, and the IEC dual.\n\ngrammar PubidCie version \"0.1.0\" {\n digit = %x30-39\n digits = 1*digit\n upper = %x41-5A\n lower = %x61-7A\n letter = upper / lower\n space = \" \"\n dash = \"-\"\n colon = \":\"\n dot = \".\"\n slash = \"/\"\n lparen = \"(\"\n rparen = \")\"\n century = \"19\" / \"20\"\n year_digits = century 2*digit !digit\n\n legacy_date = (dash year_digits as year) as legacy_date\n current_date = (colon year_digits as year) as current_date\n date = current_date / legacy_date\n\n code_with_iteration = digits as number dot digits as iteration\n code_with_part_and_iteration_slash = digits as number slash digits as part dot digits as iteration\n code_with_part_and_iteration_dash = (digits as number dash digits as part dot digits as iteration) !dash\n code_with_part_dash = (digits as number dash (\"\" as dash_sep) (1*3digit) as part) (!(century)) (!(dot / dash))\n code_with_part_slash = (digits as number slash (\"\" as slash_sep) digits as part) !dot\n code_simple = digits as number\n code = code_with_part_and_iteration_slash / code_with_part_and_iteration_dash / code_with_iteration / code_with_part_slash / code_with_part_dash / code_simple\n\n language_slash = (slash upper as lang_code) as language_slash\n language_paren = (lparen (1*3letter) as lang_code rparen) as language_paren\n language_paren_year = ([space] lparen (2*upper) as lang_code dash year_digits as trans_year rparen) as language_paren_year\n language = language_paren_year / language_paren / language_slash\n\n s_prefix = \"S\" space\n x_prefix = \"x\"\n stage_code = (\"FDIS\" / \"DIS\" / \"DS\") space\n doc_type = \"TR\" / \"TS\"\n paper_code = (1*upper) as paper_code\n variant_slug = slash (1*(digit / lower)) as variant\n\n conf_proceedings = \"CIE\" space \"x\" digits as conf_number dash paper_code digits as paper_number\n standalone_proceedings = \"CIE\" space paper_code digits as paper_number space (digits dash digits) as page_range\n d_series_identifier = \"CIE\" space \"D\" as d_prefix digits as number date\n standard_with_slash_year = \"CIE\" space ([stage_code]) as stage ([s_prefix]) as s_prefix (digits as number [(dot digits as iteration)]) slash year_digits as slash_year\n dis_with_supplement = \"CIE\" space stage_code as stage [s_prefix as s_prefix] digits as base_number dash \"SP\" digits as supplement_number [(dot digits as supplement_part)] slash upper as lang_code colon as lang_colon year_digits as year\n standard_identifier = \"CIE\" space ([stage_code]) as stage ([s_prefix]) as s_prefix code [((language date) as lang_before / (date [language]) as date_then_lang / date)]\n standard_with_language_year = \"CIE\" space ([stage_code]) as stage ([s_prefix]) as s_prefix code slash upper as lang_code colon as lang_colon year_digits as year\n conference_identifier = \"CIE\" space x_prefix as conference digits as conf_number date [(space \"Amendment\" space digits as amd_number)] [variant_slug]\n joint_with_iso = (\"CIE\" space \"ISO\" as copublisher !slash space [(doc_type space) as doc_type] [stage_code as stage] digits as number [(dash digits as part)] [((colon year_digits as year) / (dash year_digits as year))] [language])\n joint_with_iso_cie = (\"CIE\" space \"ISO/CIE\" as copublisher space [(doc_type space) as doc_type] digits as number [(colon year_digits as year)] [language])\n joint_with_iec = (\"CIE\" space \"IEC\" as copublisher space digits as number dot digits as part dash year_digits as year)\n identical_with_iso = (\"CIE\" space [s_prefix as s_prefix] digits as number [(dot digits as iteration) / (dash digits as part)] [(slash ((upper as lang_code colon as lang_colon year_digits as year) / (upper as lang_code year_digits as year) / year_digits as slash_year))] space \"(ISO\" space ((1*(digit / upper / colon / slash / dot / dash)) [(lparen 1*upper rparen)]) as iso_reference rparen)\n dual_with_iec = (\"CIE\" space [s_prefix as s_prefix] digits as number colon year_digits as year slash \"IEC\" space (1*nonrparen_nl) as iec_identifier)\n supplement_identifier = (\"CIE\" space digits as base_number dash \"SP\" digits as supplement_number [(dot digits as supplement_part)] [(colon year_digits as year)] [language_portion])\n corrigendum_identifier = (\"CIE\" space digits as base_number [(dash \"SP\" digits as base_supplement [(dot digits as base_supplement_part)])] colon year_digits as base_year slash \"Cor\" digits as cor_number colon year_digits as cor_year)\n bundle_identifier = (\"CIE\" space digits as first_number dash \"SP\" digits dot digits colon year_digits (1*(\",\" digits as next_number dash \"SP\" digits dot digits colon year_digits)) as bundle_items)\n tutorial_bundle = \"CIE Tutorials Bundle\" space digits as bundle_number\n\n identifier = tutorial_bundle / bundle_identifier / joint_with_iso_cie / joint_with_iso / joint_with_iec / identical_with_iso / dis_with_supplement / dual_with_iec / corrigendum_identifier / supplement_identifier / standard_with_language_year / standard_with_slash_year / d_series_identifier / conf_proceedings / standalone_proceedings / legacy_code_with_year / conference_identifier / annex_letter_identifier / annex_identifier / standard_identifier\n legacy_code_with_year = \"CIE\" space digits as number dash year_digits as year [(language_paren_year)] as trailing_lang\n\n # Annex forms (rule bodies per source)\n annex_identifier = (base_without_language as base) space \"Annexes\" as annex_marker [((space edition_text space year_digits as year) as edition_format / (colon year_digits as year))] [language_portion]\n annex_letter_identifier = (base_without_language as base) space \"Annex\" space (upper [(dash upper)]) as annex_letter [((space edition_text space year_digits as year) / (colon year_digits as year))] [language_portion]\n base_without_language = \"CIE\" space upper as type space full_number_cie [date] [draft_stage_cie]\n draft_stage_cie = space [stage_iteration_cie] (\"WD\" / \"CD\") as stage\n stage_iteration_cie = ((digits dot digits) / digits) as iteration\n full_number_cie = (digits as number [(dash (1*3digit) as part)]) as full_number\n language_portion = language_paren / language_slash\n edition_text = \"Edition\" / \"edition\"\n\n nonrparen = %x01-28 / %x29-10FFFF\n nonrparen_nl = %x01-09 / %x0B-28 / %x2A-10FFFF\n upper2 = upper\n\n entry identifier: identifier\n\n test {\n accept \"CIE S 008/E:2001\"\n accept \"CIE 15:2018\"\n accept \"CIE x045-2019\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:296fa5e63d29d0e81ac7ff48317502320422c6f014449a3827d8f5b1e3240c7b"}
1
+ {"bindings":null,"version":"0.1.0","grammar":"PubidCie","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":9}},{"Str":{"pattern":"CIE Tutorials Bundle"}},{"Entity":{"atom":3}},{"Str":{"pattern":" "}},{"Entity":{"atom":7}},{"Entity":{"atom":6}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":5,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"bundle_number","atom":4}},{"Sequence":{"atoms":[1,2,8]}},{"Entity":{"atom":47}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Named":{"name":"first_number","atom":13}},{"Entity":{"atom":16}},{"Str":{"pattern":"-"}},{"Str":{"pattern":"SP"}},{"Entity":{"atom":7}},{"Entity":{"atom":20}},{"Str":{"pattern":"."}},{"Entity":{"atom":7}},{"Entity":{"atom":23}},{"Str":{"pattern":":"}},{"Entity":{"atom":33}},{"Entity":{"atom":28}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[26,27]}},{"Entity":{"atom":6}},{"Repetition":{"atom":29,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":6}},{"Lookahead":{"atom":31,"positive":false}},{"Sequence":{"atoms":[25,30,32]}},{"Str":{"pattern":","}},{"Entity":{"atom":7}},{"Named":{"name":"next_number","atom":35}},{"Entity":{"atom":16}},{"Str":{"pattern":"SP"}},{"Entity":{"atom":7}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Sequence":{"atoms":[34,36,37,38,39,40,41,42,43]}},{"Repetition":{"atom":44,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"bundle_items","atom":45}},{"Sequence":{"atoms":[11,12,14,15,17,18,19,21,22,24,46]}},{"Entity":{"atom":107}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Str":{"pattern":"ISO/CIE"}},{"Named":{"name":"copublisher","atom":51}},{"Entity":{"atom":3}},{"Entity":{"atom":57}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Alternative":{"atoms":[55,56]}},{"Entity":{"atom":3}},{"Sequence":{"atoms":[54,58]}},{"Named":{"name":"doc_type","atom":59}},{"Repetition":{"atom":60,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":62}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":65}},{"Sequence":{"atoms":[64,66]}},{"Repetition":{"atom":67,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":105}},{"Entity":{"atom":85}},{"Entity":{"atom":3}},{"Repetition":{"atom":71,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":74}},{"Str":{"pattern":"("}},{"Entity":{"atom":76}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Repetition":{"atom":75,"min":2,"max":null,"tag":"Repetition"}},{"Named":{"name":"lang_code","atom":77}},{"Entity":{"atom":16}},{"Entity":{"atom":33}},{"Named":{"name":"trans_year","atom":80}},{"Entity":{"atom":83}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[72,73,78,79,81,82]}},{"Named":{"name":"language_paren_year","atom":84}},{"Entity":{"atom":97}},{"Entity":{"atom":74}},{"Entity":{"atom":92}},{"Entity":{"atom":76}},{"Entity":{"atom":91}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[89,90]}},{"Repetition":{"atom":88,"min":1,"max":3,"tag":"Repetition"}},{"Named":{"name":"lang_code","atom":93}},{"Entity":{"atom":83}},{"Sequence":{"atoms":[87,94,95]}},{"Named":{"name":"language_paren","atom":96}},{"Entity":{"atom":104}},{"Entity":{"atom":100}},{"Str":{"pattern":"/"}},{"Entity":{"atom":76}},{"Named":{"name":"lang_code","atom":101}},{"Sequence":{"atoms":[99,102]}},{"Named":{"name":"language_slash","atom":103}},{"Alternative":{"atoms":[70,86,98]}},{"Repetition":{"atom":69,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[49,50,52,53,61,63,68,106]}},{"Entity":{"atom":149}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Str":{"pattern":"ISO"}},{"Named":{"name":"copublisher","atom":111}},{"Entity":{"atom":100}},{"Lookahead":{"atom":113,"positive":false}},{"Entity":{"atom":3}},{"Entity":{"atom":57}},{"Entity":{"atom":3}},{"Sequence":{"atoms":[116,117]}},{"Named":{"name":"doc_type","atom":118}},{"Repetition":{"atom":119,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":127}},{"Str":{"pattern":"FDIS"}},{"Str":{"pattern":"DIS"}},{"Str":{"pattern":"DS"}},{"Alternative":{"atoms":[122,123,124]}},{"Entity":{"atom":3}},{"Sequence":{"atoms":[125,126]}},{"Named":{"name":"stage","atom":121}},{"Repetition":{"atom":128,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":130}},{"Entity":{"atom":16}},{"Entity":{"atom":7}},{"Named":{"name":"part","atom":133}},{"Sequence":{"atoms":[132,134]}},{"Repetition":{"atom":135,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":138}},{"Sequence":{"atoms":[137,139]}},{"Entity":{"atom":16}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":142}},{"Sequence":{"atoms":[141,143]}},{"Alternative":{"atoms":[140,144]}},{"Repetition":{"atom":145,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":105}},{"Repetition":{"atom":147,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[109,110,112,114,115,120,129,131,136,146,148]}},{"Entity":{"atom":164}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Str":{"pattern":"IEC"}},{"Named":{"name":"copublisher","atom":153}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":156}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"part","atom":159}},{"Entity":{"atom":16}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":162}},{"Sequence":{"atoms":[151,152,154,155,157,158,160,161,163]}},{"Entity":{"atom":224}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":171}},{"Str":{"pattern":"S"}},{"Entity":{"atom":3}},{"Sequence":{"atoms":[169,170]}},{"Named":{"name":"s_prefix","atom":168}},{"Repetition":{"atom":172,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":174}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"iteration","atom":177}},{"Sequence":{"atoms":[176,178]}},{"Entity":{"atom":16}},{"Entity":{"atom":7}},{"Named":{"name":"part","atom":181}},{"Sequence":{"atoms":[180,182]}},{"Alternative":{"atoms":[179,183]}},{"Repetition":{"atom":184,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":100}},{"Entity":{"atom":76}},{"Named":{"name":"lang_code","atom":187}},{"Entity":{"atom":23}},{"Named":{"name":"lang_colon","atom":189}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":191}},{"Sequence":{"atoms":[188,190,192]}},{"Entity":{"atom":76}},{"Named":{"name":"lang_code","atom":194}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":196}},{"Sequence":{"atoms":[195,197]}},{"Entity":{"atom":33}},{"Named":{"name":"slash_year","atom":199}},{"Alternative":{"atoms":[193,198,200]}},{"Sequence":{"atoms":[186,201]}},{"Repetition":{"atom":202,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":3}},{"Str":{"pattern":"(ISO"}},{"Entity":{"atom":3}},{"Entity":{"atom":6}},{"Entity":{"atom":76}},{"Entity":{"atom":23}},{"Entity":{"atom":100}},{"Entity":{"atom":20}},{"Entity":{"atom":16}},{"Alternative":{"atoms":[207,208,209,210,211,212]}},{"Repetition":{"atom":213,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":74}},{"Entity":{"atom":76}},{"Repetition":{"atom":216,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":83}},{"Sequence":{"atoms":[215,217,218]}},{"Repetition":{"atom":219,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[214,220]}},{"Named":{"name":"iso_reference","atom":221}},{"Entity":{"atom":83}},{"Sequence":{"atoms":[166,167,173,175,185,203,204,205,206,222,223]}},{"Entity":{"atom":251}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":127}},{"Named":{"name":"stage","atom":228}},{"Entity":{"atom":171}},{"Named":{"name":"s_prefix","atom":230}},{"Repetition":{"atom":231,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":7}},{"Named":{"name":"base_number","atom":233}},{"Entity":{"atom":16}},{"Str":{"pattern":"SP"}},{"Entity":{"atom":7}},{"Named":{"name":"supplement_number","atom":237}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"supplement_part","atom":240}},{"Sequence":{"atoms":[239,241]}},{"Repetition":{"atom":242,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":100}},{"Entity":{"atom":76}},{"Named":{"name":"lang_code","atom":245}},{"Entity":{"atom":23}},{"Named":{"name":"lang_colon","atom":247}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":249}},{"Sequence":{"atoms":[226,227,229,232,234,235,236,238,243,244,246,248,250]}},{"Entity":{"atom":273}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":171}},{"Named":{"name":"s_prefix","atom":255}},{"Repetition":{"atom":256,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":258}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":261}},{"Entity":{"atom":100}},{"Str":{"pattern":"IEC"}},{"Entity":{"atom":3}},{"Entity":{"atom":270}},{"Re":{"pattern":"[\\x01-\\x09]"}},{"Re":{"pattern":"[\\x0b-\\x28]"}},{"Re":{"pattern":"[\\x2a-\\u{10ffff}]"}},{"Alternative":{"atoms":[267,268,269]}},{"Repetition":{"atom":266,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"iec_identifier","atom":271}},{"Sequence":{"atoms":[253,254,257,259,260,262,263,264,265,272]}},{"Entity":{"atom":300}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Named":{"name":"base_number","atom":277}},{"Entity":{"atom":16}},{"Str":{"pattern":"SP"}},{"Entity":{"atom":7}},{"Named":{"name":"base_supplement","atom":281}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"base_supplement_part","atom":284}},{"Sequence":{"atoms":[283,285]}},{"Repetition":{"atom":286,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[279,280,282,287]}},{"Repetition":{"atom":288,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"base_year","atom":291}},{"Entity":{"atom":100}},{"Str":{"pattern":"Cor"}},{"Entity":{"atom":7}},{"Named":{"name":"cor_number","atom":295}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"cor_year","atom":298}},{"Sequence":{"atoms":[275,276,278,289,290,292,293,294,296,297,299]}},{"Entity":{"atom":325}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Named":{"name":"base_number","atom":304}},{"Entity":{"atom":16}},{"Str":{"pattern":"SP"}},{"Entity":{"atom":7}},{"Named":{"name":"supplement_number","atom":308}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"supplement_part","atom":311}},{"Sequence":{"atoms":[310,312]}},{"Repetition":{"atom":313,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":316}},{"Sequence":{"atoms":[315,317]}},{"Repetition":{"atom":318,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":323}},{"Entity":{"atom":97}},{"Entity":{"atom":104}},{"Alternative":{"atoms":[321,322]}},{"Repetition":{"atom":320,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[302,303,305,306,307,309,314,319,324]}},{"Entity":{"atom":406}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":127}},{"Repetition":{"atom":329,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"stage","atom":330}},{"Entity":{"atom":171}},{"Repetition":{"atom":332,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"s_prefix","atom":333}},{"Entity":{"atom":398}},{"Entity":{"atom":345}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":337}},{"Entity":{"atom":100}},{"Entity":{"atom":7}},{"Named":{"name":"part","atom":340}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"iteration","atom":343}},{"Sequence":{"atoms":[338,339,341,342,344]}},{"Entity":{"atom":358}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":347}},{"Entity":{"atom":16}},{"Entity":{"atom":7}},{"Named":{"name":"part","atom":350}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"iteration","atom":353}},{"Sequence":{"atoms":[348,349,351,352,354]}},{"Entity":{"atom":16}},{"Lookahead":{"atom":356,"positive":false}},{"Sequence":{"atoms":[355,357]}},{"Entity":{"atom":365}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":360}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"iteration","atom":363}},{"Sequence":{"atoms":[361,362,364]}},{"Entity":{"atom":377}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":367}},{"Entity":{"atom":100}},{"Str":{"pattern":""}},{"Named":{"name":"slash_sep","atom":370}},{"Entity":{"atom":7}},{"Named":{"name":"part","atom":372}},{"Sequence":{"atoms":[368,369,371,373]}},{"Entity":{"atom":20}},{"Lookahead":{"atom":375,"positive":false}},{"Sequence":{"atoms":[374,376]}},{"Entity":{"atom":394}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":379}},{"Entity":{"atom":16}},{"Str":{"pattern":""}},{"Named":{"name":"dash_sep","atom":382}},{"Entity":{"atom":6}},{"Repetition":{"atom":384,"min":1,"max":3,"tag":"Repetition"}},{"Named":{"name":"part","atom":385}},{"Sequence":{"atoms":[380,381,383,386]}},{"Entity":{"atom":28}},{"Lookahead":{"atom":388,"positive":false}},{"Entity":{"atom":20}},{"Entity":{"atom":16}},{"Alternative":{"atoms":[390,391]}},{"Lookahead":{"atom":392,"positive":false}},{"Sequence":{"atoms":[387,389,393]}},{"Entity":{"atom":397}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":396}},{"Alternative":{"atoms":[336,346,359,366,378,395]}},{"Entity":{"atom":100}},{"Entity":{"atom":76}},{"Named":{"name":"lang_code","atom":400}},{"Entity":{"atom":23}},{"Named":{"name":"lang_colon","atom":402}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":404}},{"Sequence":{"atoms":[327,328,331,334,335,399,401,403,405]}},{"Entity":{"atom":427}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":127}},{"Repetition":{"atom":410,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"stage","atom":411}},{"Entity":{"atom":171}},{"Repetition":{"atom":413,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"s_prefix","atom":414}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":416}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"iteration","atom":419}},{"Sequence":{"atoms":[418,420]}},{"Repetition":{"atom":421,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[417,422]}},{"Entity":{"atom":100}},{"Entity":{"atom":33}},{"Named":{"name":"slash_year","atom":425}},{"Sequence":{"atoms":[408,409,412,415,423,424,426]}},{"Entity":{"atom":449}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Str":{"pattern":"D"}},{"Named":{"name":"d_prefix","atom":431}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":433}},{"Entity":{"atom":448}},{"Entity":{"atom":441}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":438}},{"Sequence":{"atoms":[437,439]}},{"Named":{"name":"current_date","atom":440}},{"Entity":{"atom":447}},{"Entity":{"atom":16}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":444}},{"Sequence":{"atoms":[443,445]}},{"Named":{"name":"legacy_date","atom":446}},{"Alternative":{"atoms":[436,442]}},{"Sequence":{"atoms":[429,430,432,434,435]}},{"Entity":{"atom":463}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Str":{"pattern":"x"}},{"Entity":{"atom":7}},{"Named":{"name":"conf_number","atom":454}},{"Entity":{"atom":16}},{"Entity":{"atom":460}},{"Entity":{"atom":76}},{"Repetition":{"atom":458,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"paper_code","atom":459}},{"Entity":{"atom":7}},{"Named":{"name":"paper_number","atom":461}},{"Sequence":{"atoms":[451,452,453,455,456,457,462]}},{"Entity":{"atom":476}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":460}},{"Entity":{"atom":7}},{"Named":{"name":"paper_number","atom":468}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Entity":{"atom":16}},{"Entity":{"atom":7}},{"Sequence":{"atoms":[471,472,473]}},{"Named":{"name":"page_range","atom":474}},{"Sequence":{"atoms":[465,466,467,469,470,475]}},{"Entity":{"atom":488}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":480}},{"Entity":{"atom":16}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":483}},{"Entity":{"atom":85}},{"Repetition":{"atom":485,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"trailing_lang","atom":486}},{"Sequence":{"atoms":[478,479,481,482,484,487]}},{"Entity":{"atom":514}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":493}},{"Str":{"pattern":"x"}},{"Named":{"name":"conference","atom":492}},{"Entity":{"atom":7}},{"Named":{"name":"conf_number","atom":495}},{"Entity":{"atom":448}},{"Entity":{"atom":3}},{"Str":{"pattern":"Amendment"}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Named":{"name":"amd_number","atom":501}},{"Sequence":{"atoms":[498,499,500,502]}},{"Repetition":{"atom":503,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":512}},{"Entity":{"atom":100}},{"Entity":{"atom":6}},{"Entity":{"atom":91}},{"Alternative":{"atoms":[507,508]}},{"Repetition":{"atom":509,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"variant","atom":510}},{"Sequence":{"atoms":[506,511]}},{"Repetition":{"atom":505,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[490,491,494,496,497,504,513]}},{"Entity":{"atom":581}},{"Entity":{"atom":552}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":76}},{"Named":{"name":"type","atom":519}},{"Entity":{"atom":3}},{"Entity":{"atom":532}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":523}},{"Entity":{"atom":16}},{"Entity":{"atom":6}},{"Repetition":{"atom":526,"min":1,"max":3,"tag":"Repetition"}},{"Named":{"name":"part","atom":527}},{"Sequence":{"atoms":[525,528]}},{"Repetition":{"atom":529,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[524,530]}},{"Named":{"name":"full_number","atom":531}},{"Entity":{"atom":448}},{"Repetition":{"atom":533,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":550}},{"Entity":{"atom":3}},{"Entity":{"atom":544}},{"Entity":{"atom":7}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Sequence":{"atoms":[538,539,540]}},{"Entity":{"atom":7}},{"Alternative":{"atoms":[541,542]}},{"Named":{"name":"iteration","atom":543}},{"Repetition":{"atom":537,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"WD"}},{"Str":{"pattern":"CD"}},{"Alternative":{"atoms":[546,547]}},{"Named":{"name":"stage","atom":548}},{"Sequence":{"atoms":[536,545,549]}},{"Repetition":{"atom":535,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[517,518,520,521,522,534,551]}},{"Named":{"name":"base","atom":516}},{"Entity":{"atom":3}},{"Str":{"pattern":"Annex"}},{"Entity":{"atom":3}},{"Entity":{"atom":76}},{"Entity":{"atom":16}},{"Entity":{"atom":76}},{"Sequence":{"atoms":[558,559]}},{"Repetition":{"atom":560,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[557,561]}},{"Named":{"name":"annex_letter","atom":562}},{"Entity":{"atom":3}},{"Entity":{"atom":568}},{"Str":{"pattern":"Edition"}},{"Str":{"pattern":"edition"}},{"Alternative":{"atoms":[566,567]}},{"Entity":{"atom":3}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":570}},{"Sequence":{"atoms":[564,565,569,571]}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":574}},{"Sequence":{"atoms":[573,575]}},{"Alternative":{"atoms":[572,576]}},{"Repetition":{"atom":577,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":323}},{"Repetition":{"atom":579,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[553,554,555,556,563,578,580]}},{"Entity":{"atom":603}},{"Entity":{"atom":552}},{"Named":{"name":"base","atom":583}},{"Entity":{"atom":3}},{"Str":{"pattern":"Annexes"}},{"Named":{"name":"annex_marker","atom":586}},{"Entity":{"atom":3}},{"Entity":{"atom":568}},{"Entity":{"atom":3}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":591}},{"Sequence":{"atoms":[588,589,590,592]}},{"Named":{"name":"edition_format","atom":593}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":596}},{"Sequence":{"atoms":[595,597]}},{"Alternative":{"atoms":[594,598]}},{"Repetition":{"atom":599,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":323}},{"Repetition":{"atom":601,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[584,585,587,600,602]}},{"Entity":{"atom":626}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":127}},{"Repetition":{"atom":607,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"stage","atom":608}},{"Entity":{"atom":171}},{"Repetition":{"atom":610,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"s_prefix","atom":611}},{"Entity":{"atom":398}},{"Entity":{"atom":105}},{"Entity":{"atom":448}},{"Sequence":{"atoms":[614,615]}},{"Named":{"name":"lang_before","atom":616}},{"Entity":{"atom":448}},{"Entity":{"atom":105}},{"Repetition":{"atom":619,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[618,620]}},{"Named":{"name":"date_then_lang","atom":621}},{"Entity":{"atom":448}},{"Alternative":{"atoms":[617,622,623]}},{"Repetition":{"atom":624,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[605,606,609,612,613,625]}},{"Alternative":{"atoms":[0,10,48,108,150,165,225,252,274,301,326,407,428,450,464,477,489,515,582,604]}}],"root":627},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule code: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 2 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 2 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 3 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 3 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule language: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule doc_type: 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 identifier: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 14 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 14 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 14 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 14 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 14 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 14 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 15 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 15 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 15 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 15 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 15 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 16 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 16 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 16 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 16 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 17 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 17 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 17 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 18 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 18 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 19 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule nonrparen: branches 1 and 2 are order-dependent (first set not statically known)","rule nonrparen_nl: branches 1 and 3 are order-dependent (first set not statically known)","rule nonrparen_nl: branches 2 and 3 are order-dependent (first set not statically known)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"CIE S 008/E:2001","expect":{}},{"entry":"identifier","kind":"accept","input":"CIE 15:2018","expect":{}},{"entry":"identifier","kind":"accept","input":"CIE x045-2019","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/cie/parser.rb — CIE identifiers: standards with\n# iteration/part/separator variants and legacy or current dates,\n# language forms (slash, paren, paren-year), DIS+SP supplements,\n# conference proceedings (xNNN papers), D-series, joint forms with\n# ISO/ISO-CIE/IEC, the identical-(ISO ...) form, and the IEC dual.\n\ngrammar PubidCie version \"0.1.0\" {\n digit = %x30-39\n digits = 1*digit\n upper = %x41-5A\n lower = %x61-7A\n letter = upper / lower\n space = \" \"\n dash = \"-\"\n colon = \":\"\n dot = \".\"\n slash = \"/\"\n lparen = \"(\"\n rparen = \")\"\n century = \"19\" / \"20\"\n year_digits = century 2*digit !digit\n\n legacy_date = (dash year_digits as year) as legacy_date\n current_date = (colon year_digits as year) as current_date\n date = current_date / legacy_date\n\n code_with_iteration = digits as number dot digits as iteration\n code_with_part_and_iteration_slash = digits as number slash digits as part dot digits as iteration\n code_with_part_and_iteration_dash = (digits as number dash digits as part dot digits as iteration) !dash\n code_with_part_dash = (digits as number dash (\"\" as dash_sep) (1*3digit) as part) (!(century)) (!(dot / dash))\n code_with_part_slash = (digits as number slash (\"\" as slash_sep) digits as part) !dot\n code_simple = digits as number\n code = code_with_part_and_iteration_slash / code_with_part_and_iteration_dash / code_with_iteration / code_with_part_slash / code_with_part_dash / code_simple\n\n language_slash = (slash upper as lang_code) as language_slash\n language_paren = (lparen (1*3letter) as lang_code rparen) as language_paren\n language_paren_year = ([space] lparen (2*upper) as lang_code dash year_digits as trans_year rparen) as language_paren_year\n language = language_paren_year / language_paren / language_slash\n\n s_prefix = \"S\" space\n x_prefix = \"x\"\n stage_code = (\"FDIS\" / \"DIS\" / \"DS\") space\n doc_type = \"TR\" / \"TS\"\n paper_code = (1*upper) as paper_code\n variant_slug = slash (1*(digit / lower)) as variant\n\n conf_proceedings = \"CIE\" space \"x\" digits as conf_number dash paper_code digits as paper_number\n standalone_proceedings = \"CIE\" space paper_code digits as paper_number space (digits dash digits) as page_range\n d_series_identifier = \"CIE\" space \"D\" as d_prefix digits as number date\n standard_with_slash_year = \"CIE\" space ([stage_code]) as stage ([s_prefix]) as s_prefix (digits as number [(dot digits as iteration)]) slash year_digits as slash_year\n dis_with_supplement = \"CIE\" space stage_code as stage [s_prefix as s_prefix] digits as base_number dash \"SP\" digits as supplement_number [(dot digits as supplement_part)] slash upper as lang_code colon as lang_colon year_digits as year\n standard_identifier = \"CIE\" space ([stage_code]) as stage ([s_prefix]) as s_prefix code [((language date) as lang_before / (date [language]) as date_then_lang / date)]\n standard_with_language_year = \"CIE\" space ([stage_code]) as stage ([s_prefix]) as s_prefix code slash upper as lang_code colon as lang_colon year_digits as year\n conference_identifier = \"CIE\" space x_prefix as conference digits as conf_number date [(space \"Amendment\" space digits as amd_number)] [variant_slug]\n joint_with_iso = (\"CIE\" space \"ISO\" as copublisher !slash space [(doc_type space) as doc_type] [stage_code as stage] digits as number [(dash digits as part)] [((colon year_digits as year) / (dash year_digits as year))] [language])\n joint_with_iso_cie = (\"CIE\" space \"ISO/CIE\" as copublisher space [(doc_type space) as doc_type] digits as number [(colon year_digits as year)] [language])\n joint_with_iec = (\"CIE\" space \"IEC\" as copublisher space digits as number dot digits as part dash year_digits as year)\n identical_with_iso = (\"CIE\" space [s_prefix as s_prefix] digits as number [(dot digits as iteration) / (dash digits as part)] [(slash ((upper as lang_code colon as lang_colon year_digits as year) / (upper as lang_code year_digits as year) / year_digits as slash_year))] space \"(ISO\" space ((1*(digit / upper / colon / slash / dot / dash)) [(lparen 1*upper rparen)]) as iso_reference rparen)\n dual_with_iec = (\"CIE\" space [s_prefix as s_prefix] digits as number colon year_digits as year slash \"IEC\" space (1*nonrparen_nl) as iec_identifier)\n supplement_identifier = (\"CIE\" space digits as base_number dash \"SP\" digits as supplement_number [(dot digits as supplement_part)] [(colon year_digits as year)] [language_portion])\n corrigendum_identifier = (\"CIE\" space digits as base_number [(dash \"SP\" digits as base_supplement [(dot digits as base_supplement_part)])] colon year_digits as base_year slash \"Cor\" digits as cor_number colon year_digits as cor_year)\n bundle_identifier = (\"CIE\" space digits as first_number dash \"SP\" digits dot digits colon year_digits (1*(\",\" digits as next_number dash \"SP\" digits dot digits colon year_digits)) as bundle_items)\n tutorial_bundle = \"CIE Tutorials Bundle\" space digits as bundle_number\n\n identifier = tutorial_bundle / bundle_identifier / joint_with_iso_cie / joint_with_iso / joint_with_iec / identical_with_iso / dis_with_supplement / dual_with_iec / corrigendum_identifier / supplement_identifier / standard_with_language_year / standard_with_slash_year / d_series_identifier / conf_proceedings / standalone_proceedings / legacy_code_with_year / conference_identifier / annex_letter_identifier / annex_identifier / standard_identifier\n legacy_code_with_year = \"CIE\" space digits as number dash year_digits as year [(language_paren_year)] as trailing_lang\n\n # Annex forms (rule bodies per source)\n annex_identifier = (base_without_language as base) space \"Annexes\" as annex_marker [((space edition_text space year_digits as year) as edition_format / (colon year_digits as year))] [language_portion]\n annex_letter_identifier = (base_without_language as base) space \"Annex\" space (upper [(dash upper)]) as annex_letter [((space edition_text space year_digits as year) / (colon year_digits as year))] [language_portion]\n base_without_language = \"CIE\" space upper as type space full_number_cie [date] [draft_stage_cie]\n draft_stage_cie = space [stage_iteration_cie] (\"WD\" / \"CD\") as stage\n stage_iteration_cie = ((digits dot digits) / digits) as iteration\n full_number_cie = (digits as number [(dash (1*3digit) as part)]) as full_number\n language_portion = language_paren / language_slash\n edition_text = \"Edition\" / \"edition\"\n\n nonrparen = %x01-28 / %x29-10FFFF\n nonrparen_nl = %x01-09 / %x0B-28 / %x2A-10FFFF\n upper2 = upper\n\n entry identifier: identifier\n\n test {\n accept \"CIE S 008/E:2001\"\n accept \"CIE 15:2018\"\n accept \"CIE x045-2019\"\n reject \"nonsense\"\n }\n}\n","source_hash":"7ef9326c5ee47803f55d5840a0d057544e7acc9db9696fb503bfe5aefc53a47e","compiler_version":"1.3.93","checksum":"sha256:5b150b14d741df43335291a1cacf91c77efe0106689cf1a6be1b05345d406b0c"}