pubid 2.0.0.pre.alpha.13 → 2.0.0.pre.alpha.15

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 (137) hide show
  1. checksums.yaml +4 -4
  2. data/data/parg/adobe.json +1 -0
  3. data/data/parg/aiee.parg +37 -0
  4. data/data/parg/amca.json +1 -0
  5. data/data/parg/ansi.json +1 -0
  6. data/data/parg/api.json +1 -0
  7. data/data/parg/ashrae.json +1 -0
  8. data/data/parg/asme.json +1 -0
  9. data/data/parg/astm.json +1 -0
  10. data/data/parg/bipm.json +1 -0
  11. data/data/parg/bsi.json +1 -0
  12. data/data/parg/calconnect.json +1 -0
  13. data/data/parg/ccsds.json +1 -0
  14. data/data/parg/cen_cenelec.json +1 -0
  15. data/data/parg/cen_cenelec.parg +42 -0
  16. data/data/parg/cie.json +1 -0
  17. data/data/parg/csa.json +1 -0
  18. data/data/parg/doi.json +1 -0
  19. data/data/parg/easc.json +1 -0
  20. data/data/parg/ecma.json +1 -0
  21. data/data/parg/etsi.json +1 -0
  22. data/data/parg/evs.json +1 -0
  23. data/data/parg/gb.json +1 -0
  24. data/data/parg/gost.json +1 -0
  25. data/data/parg/iala.json +1 -0
  26. data/data/parg/iana.json +1 -0
  27. data/data/parg/idf.parg +39 -0
  28. data/data/parg/iec.json +1 -0
  29. data/data/parg/ieee.json +1 -0
  30. data/data/parg/ietf.json +1 -0
  31. data/data/parg/ire.parg +39 -0
  32. data/data/parg/isbn.json +1 -0
  33. data/data/parg/iso.json +1 -0
  34. data/data/parg/itu.json +1 -0
  35. data/data/parg/jcgm.json +1 -0
  36. data/data/parg/jis.json +1 -0
  37. data/data/parg/nesc.parg +38 -0
  38. data/data/parg/nist.json +1 -0
  39. data/data/parg/oasis.json +1 -0
  40. data/data/parg/ogc.json +1 -0
  41. data/data/parg/oiml.json +1 -0
  42. data/data/parg/omg.json +1 -0
  43. data/data/parg/plateau.json +1 -0
  44. data/data/parg/sae.json +1 -0
  45. data/data/parg/tables/bipm_groups.yaml +14 -0
  46. data/data/parg/tables/bipm_type_codes.yaml +5 -0
  47. data/data/parg/tables/bipm_type_names_en.yaml +6 -0
  48. data/data/parg/tables/bipm_type_names_fr.yaml +6 -0
  49. data/data/parg/tables/directives_supplements_typed_stages.yaml +3 -0
  50. data/data/parg/tables/directives_typed_stages.yaml +5 -0
  51. data/data/parg/tables/idf_typed_stages.yaml +27 -0
  52. data/data/parg/tables/idf_typed_stages_supplements.yaml +2 -0
  53. data/data/parg/tables/iec_typed_stages.yaml +130 -0
  54. data/data/parg/tables/iso_publishers.yaml +4 -0
  55. data/data/parg/tables/organizations.yaml +12 -0
  56. data/data/parg/tables/tc_types.yaml +42 -0
  57. data/data/parg/tables/typed_stages.yaml +114 -0
  58. data/data/parg/tables/typed_stages_supplements.yaml +64 -0
  59. data/data/parg/tables/wg_types.yaml +21 -0
  60. data/data/parg/tgpp.json +1 -0
  61. data/data/parg/un.json +1 -0
  62. data/data/parg/w3c.json +1 -0
  63. data/data/parg/xsf.json +1 -0
  64. data/lib/pubid/adobe/identifier.rb +11 -1
  65. data/lib/pubid/amca/identifiers/base.rb +1 -1
  66. data/lib/pubid/ansi/identifier.rb +1 -1
  67. data/lib/pubid/api/identifier.rb +1 -1
  68. data/lib/pubid/api/parser.rb +8 -4
  69. data/lib/pubid/ashrae/identifiers/base.rb +10 -1
  70. data/lib/pubid/ashrae/parser.rb +18 -11
  71. data/lib/pubid/asme/identifier.rb +1 -1
  72. data/lib/pubid/astm/identifier.rb +1 -1
  73. data/lib/pubid/bipm/identifier.rb +1 -1
  74. data/lib/pubid/bsi/single_identifier.rb +1 -3
  75. data/lib/pubid/calconnect/identifier.rb +1 -1
  76. data/lib/pubid/ccsds/identifier.rb +1 -1
  77. data/lib/pubid/cen_cenelec/identifier.rb +2 -1
  78. data/lib/pubid/cen_cenelec/parser.rb +9 -2
  79. data/lib/pubid/cie/identifier.rb +1 -1
  80. data/lib/pubid/cie/parser.rb +9 -2
  81. data/lib/pubid/conformance/checks.rb +1 -1
  82. data/lib/pubid/csa/identifier.rb +6 -2
  83. data/lib/pubid/csa/parser.rb +25 -8
  84. data/lib/pubid/doi/identifier.rb +1 -1
  85. data/lib/pubid/easc/identifier.rb +10 -1
  86. data/lib/pubid/ecma/identifier.rb +1 -1
  87. data/lib/pubid/etsi/identifiers/base.rb +1 -1
  88. data/lib/pubid/evs.rb +1 -1
  89. data/lib/pubid/gb/identifier.rb +1 -1
  90. data/lib/pubid/gost/identifier.rb +11 -1
  91. data/lib/pubid/gost/parser.rb +8 -1
  92. data/lib/pubid/iala/identifier.rb +10 -1
  93. data/lib/pubid/iana/identifier.rb +1 -1
  94. data/lib/pubid/idf/builder.rb +5 -0
  95. data/lib/pubid/iec/identifier.rb +1 -1
  96. data/lib/pubid/iec/parser.rb +9 -4
  97. data/lib/pubid/ieee/builder.rb +61 -23
  98. data/lib/pubid/ieee/identifiers/base.rb +1 -1
  99. data/lib/pubid/ieee/identifiers/joint_development.rb +55 -19
  100. data/lib/pubid/ieee/parser.rb +25 -11
  101. data/lib/pubid/ieee/renderer.rb +5 -3
  102. data/lib/pubid/ietf/identifiers/base.rb +1 -1
  103. data/lib/pubid/isbn/identifier.rb +1 -1
  104. data/lib/pubid/iso/identifier.rb +4 -1
  105. data/lib/pubid/iso/normalizer.rb +4 -1
  106. data/lib/pubid/itu/CLAUDE.md +46 -0
  107. data/lib/pubid/itu/builder.rb +24 -4
  108. data/lib/pubid/itu/identifiers/base.rb +11 -18
  109. data/lib/pubid/itu/identifiers/radio_regulations.rb +27 -0
  110. data/lib/pubid/itu/identifiers/special_publication.rb +48 -14
  111. data/lib/pubid/itu/identifiers/standard_serialization.rb +2 -0
  112. data/lib/pubid/itu/identifiers.rb +1 -0
  113. data/lib/pubid/itu/parser.rb +108 -22
  114. data/lib/pubid/itu/urn_generator.rb +9 -2
  115. data/lib/pubid/jcgm.rb +1 -1
  116. data/lib/pubid/jis/identifier.rb +1 -1
  117. data/lib/pubid/nist/builder.rb +1 -0
  118. data/lib/pubid/nist/identifiers/base.rb +15 -4
  119. data/lib/pubid/nist/parser.rb +9 -0
  120. data/lib/pubid/nist/urn_parser.rb +10 -1
  121. data/lib/pubid/oasis/identifier.rb +1 -1
  122. data/lib/pubid/ogc/identifier.rb +1 -1
  123. data/lib/pubid/oiml.rb +1 -1
  124. data/lib/pubid/omg/identifier.rb +1 -1
  125. data/lib/pubid/parg/artifact.rb +46 -0
  126. data/lib/pubid/parg/backend.rb +92 -0
  127. data/lib/pubid/parg.rb +8 -0
  128. data/lib/pubid/pg.rb +8 -0
  129. data/lib/pubid/plateau.rb +1 -2
  130. data/lib/pubid/sae/identifiers/base.rb +1 -1
  131. data/lib/pubid/tgpp/identifier.rb +1 -1
  132. data/lib/pubid/un/identifier.rb +1 -1
  133. data/lib/pubid/version.rb +1 -1
  134. data/lib/pubid/w3c/identifier.rb +1 -1
  135. data/lib/pubid/xsf/identifier.rb +1 -1
  136. data/lib/pubid.rb +1 -0
  137. metadata +83 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 177a3443a2daa5ff1848fb31a5136ea7eb05986005590c5938b0ae88874b3ef2
4
- data.tar.gz: 4eeb9f9a26023aa610e821951febd68b5ef5a30db366eeeef07d595e67097557
3
+ metadata.gz: 78a69f395f89496c03abe8789394cae7b6d75215eac9f7507e3b71fde42e71ec
4
+ data.tar.gz: 8ff551ebaa0b53a9d289dae31b2bb189eccfd267a0d056bcf90264df0edfeb4c
5
5
  SHA512:
6
- metadata.gz: 6d1a4ad6d0ec70be65ed8e8773c92feda1f63ec623ff59ee4e15a92683e762fa7ed9fc687391d8456731cfe6120c1ef144971422002ecdc9dfe40dfb5482959a
7
- data.tar.gz: fa1d3d71d2dd96d24ac9e4804a8be54ecfbe02b8fd460a329f0ae6aa2366838670ed5242a3bb3f3d94b5e325dc6494902a94223a94a9ef377374f8ac8baf8fc3
6
+ metadata.gz: da2f48ba45cbd68d968eeba20585a2458b48c443a72ff73f3facecb1ebad38e725b29a8b55b9e8692dcd7022713ffb6e5c574043f4a927083a3e5eb7ca8940a5
7
+ data.tar.gz: 9d5fcc6861e258ab7c69f9339820553a5e760cb4d0eab87aab284b9b27dd53be58b2583cc34bf4a8e9589da39deae3f745da9fea7efee4200082d504531b9dd7
@@ -0,0 +1 @@
1
+ {"version":"0.1.0","grammar":"PubidAdobe","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":48}},{"Entity":{"atom":30}},{"Entity":{"atom":9}},{"Str":{"pattern":"Adobe"}},{"Entity":{"atom":5}},{"Str":{"pattern":" "}},{"Str":{"pattern":"TN"}},{"Entity":{"atom":5}},{"Repetition":{"atom":7,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[3,4,6,8]}},{"Entity":{"atom":24}},{"Str":{"pattern":"Adobe"}},{"Entity":{"atom":5}},{"Str":{"pattern":"Technical"}},{"Entity":{"atom":5}},{"Str":{"pattern":"Note"}},{"Entity":{"atom":5}},{"Repetition":{"atom":16,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"#"}},{"Repetition":{"atom":18,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":5}},{"Repetition":{"atom":20,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[17,19,21]}},{"Repetition":{"atom":22,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[11,12,13,14,15,23]}},{"Entity":{"atom":29}},{"Str":{"pattern":"ATN"}},{"Entity":{"atom":5}},{"Repetition":{"atom":27,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[26,28]}},{"Alternative":{"atoms":[2,10,25]}},{"Entity":{"atom":32}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":31,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":33}},{"Entity":{"atom":36}},{"Str":{"pattern":"."}},{"Entity":{"atom":42}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[_]"}},{"Alternative":{"atoms":[38,39,40,41]}},{"Repetition":{"atom":37,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"slug","atom":43}},{"Sequence":{"atoms":[35,44]}},{"Repetition":{"atom":45,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1,34,46]}},{"Named":{"name":"tech_note","atom":47}},{"Entity":{"atom":53}},{"Entity":{"atom":32}},{"Repetition":{"atom":50,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":51}},{"Named":{"name":"tech_note_bare","atom":52}},{"Entity":{"atom":87}},{"Str":{"pattern":"Adobe Publication "}},{"Repetition":{"atom":55,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":86}},{"Entity":{"atom":82}},{"Entity":{"atom":75}},{"Entity":{"atom":69}},{"Entity":{"atom":62}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Repetition":{"atom":61,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":67}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Alternative":{"atoms":[65,66]}},{"Repetition":{"atom":64,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[63,68]}},{"Entity":{"atom":71}},{"Str":{"pattern":"-"}},{"Entity":{"atom":69}},{"Sequence":{"atoms":[70,72]}},{"Repetition":{"atom":73,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[60,74]}},{"Named":{"name":"slug","atom":59}},{"Entity":{"atom":71}},{"Entity":{"atom":32}},{"Repetition":{"atom":78,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"version","atom":79}},{"Sequence":{"atoms":[76,77,80]}},{"Named":{"name":"publication_version","atom":81}},{"Entity":{"atom":85}},{"Entity":{"atom":75}},{"Named":{"name":"slug","atom":84}},{"Alternative":{"atoms":[58,83]}},{"Sequence":{"atoms":[56,57]}},{"Alternative":{"atoms":[0,49,54]}}],"root":88},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule tech_note_prefix: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule tech_note_prefix: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule tech_note_prefix: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule publication_slug_or_version: 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)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"Adobe TN 15","expect":{}},{"entry":"identifier","kind":"accept","input":"ATN 30","expect":{}},{"entry":"identifier","kind":"accept","input":"Adobe Technical Note #12","expect":{}},{"entry":"identifier","kind":"reject","input":"###","expect":{}}],"docs":{},"source":"# Port of lib/pubid/adobe/parser.rb: tech notes (Adobe TN 5014, legacy\n# \"Adobe Technical Note #5014\", ATN5014, bare 5014) and publications\n# (adobe-glyph-list, adobe-japan1-7 with the version split tried first).\n\ngrammar PubidAdobe version \"0.1.0\" {\n tech_note_tn_prefix = \"Adobe\" space \"TN\" [space]\n tech_note_long_prefix = \"Adobe\" space \"Technical\" space \"Note\" [[space] [\"#\"] [space]]\n tech_note_atn_prefix = \"ATN\" [space]\n tech_note_prefix = tech_note_tn_prefix / tech_note_long_prefix / tech_note_atn_prefix\n # Capture precedence: (*rep) as name wraps the whole repetition, so a\n # digit run joins to one string instead of re-keying every character;\n # slug is captured exactly once (the bare form) or as a sibling of\n # version inside the publication_version capture.\n tech_note = (tech_note_prefix (1*digit) as number [(dot (1*slug_char) as slug)]) as tech_note\n bare_number = ((1*digit) as number) as tech_note_bare\n slug_segment = 1*lower1 *lowerd\n slug_text = slug_segment *(dash slug_segment)\n slug_inner = (slug_text) as slug\n publication_with_version = ((slug_text) as slug dash (1*digit) as version) as publication_version\n publication_slug_or_version = publication_with_version / slug_inner\n publication = [\"Adobe Publication \"] publication_slug_or_version\n identifier = tech_note / bare_number / publication\n slug_char = %x41-5A / %x61-7A / %x30-39 / %x5F\n lower1 = %x61-7A\n lowerd = %x61-7A / %x30-39\n digit = %x30-39\n space = \" \"\n dot = \".\"\n dash = \"-\"\n entry identifier: identifier\n\n test {\n accept \"Adobe TN 15\"\n accept \"ATN 30\"\n accept \"Adobe Technical Note #12\"\n reject \"###\"\n }\n}\n","checksum":"sha256:f0bbc82bbe015ac4ad5ce7fc95dfc22c02e2c1bdf6c8f4fa58f09710b9e21720"}
@@ -0,0 +1,37 @@
1
+ # Port of lib/pubid/ieee/aiee/parser.rb — AIEE (pre-IEEE) designations:
2
+ # prefixes (IEEE-AIEE transitional, A.I.E.E. variants, AIEE), types
3
+ # (Standard No./Std No./Nos/No/Trans.), numbers (letters-dash, dotted,
4
+ # parenthetical alternates) and long/short dates. Consumed by the ieee
5
+ # grammar via `use aiee`. Deviation: source "Sep"/"Sept" order is
6
+ # lint-forced to longest-first.
7
+
8
+ grammar PubidAiee version "0.1.0" {
9
+ digit = %x30-39
10
+ upper = %x41-5A
11
+ lower = %x61-7A
12
+ digits = 1*digit
13
+ space = " "
14
+ dash = "-"
15
+ dot = "."
16
+
17
+ year = (("18" 2digit)) / (("19" ("0" / "1" / "2" / "3" / "4" / "5") digit)) / (("196" %x30-33))
18
+ month_name = "September" / "November" / "December" / "February" / "August" / "June" / "January" / "March" / "April" / "October" / "July" / "May" / "Sept" / "Jan" / "Feb" / "Mar" / "Apr" / "Jun" / "Jul" / "Aug" / "Sep" / "Oct" / "Nov" / "Dec"
19
+ aiee_prefix = ("IEEE-AIEE" / "A.I.E.E." / "A. I. E. E." / "AIEE") as publisher
20
+ aiee_type = ("Standard No." / "Standard No" / "Std No." / "Std No" / "Std" / "Nos" / "No." / "No" / "no" / "Standard" / "Trans.") as type
21
+ number = (((2*3upper dash digits)) / ((digits upper !((space "and")))) / ((digits dot digits)) / (((digits) as main_number space ((( "(" (digits) as alt_number ")"))) as parenthetical)) / ((digits !((space "and" space digits))))) as number
22
+ date_long = ([space] (((("," / dot) as separator) [space] [((month_name) as month space)] (year) as year)) / (((space dash) as separator) [space] (year) as year) / (((month_name) as month dash (year) as year)))
23
+ date_short = ([space] dash (year) as year)
24
+ date = [(date_short / date_long)]
25
+
26
+ aiee_identifier = aiee_prefix space [(aiee_type space)] number date
27
+
28
+ entry aiee_identifier: aiee_identifier
29
+
30
+ test {
31
+ accept "AIEE No. 56"
32
+ accept "AIEE Std 800"
33
+ accept "IEEE-AIEE No 18-1938"
34
+ accept "AIEE Standard 19"
35
+ reject "nonsense"
36
+ }
37
+ }
@@ -0,0 +1 @@
1
+ {"version":"0.1.0","grammar":"PubidAmca","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":65}},{"Entity":{"atom":9}},{"Str":{"pattern":"ANSI"}},{"Entity":{"atom":4}},{"Str":{"pattern":"/"}},{"Str":{"pattern":"AMCA"}},{"Sequence":{"atoms":[2,3,5]}},{"Str":{"pattern":"AMCA"}},{"Alternative":{"atoms":[6,7]}},{"Named":{"name":"copublisher","atom":8}},{"Repetition":{"atom":1,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":12}},{"Str":{"pattern":" "}},{"Entity":{"atom":32}},{"Entity":{"atom":15}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":14,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Str":{"pattern":"-"}},{"Entity":{"atom":22}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[20,21]}},{"Sequence":{"atoms":[17,19]}},{"Repetition":{"atom":23,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":26}},{"Str":{"pattern":"."}},{"Entity":{"atom":15}},{"Repetition":{"atom":27,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[25,28]}},{"Repetition":{"atom":29,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[16,24,30]}},{"Named":{"name":"code","atom":31}},{"Entity":{"atom":12}},{"Entity":{"atom":40}},{"Entity":{"atom":22}},{"Repetition":{"atom":35,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":15}},{"Repetition":{"atom":37,"min":1,"max":null,"tag":"Repetition"}},{"Alternative":{"atoms":[36,38]}},{"Named":{"name":"interpretation_code","atom":39}},{"Entity":{"atom":44}},{"Entity":{"atom":12}},{"Str":{"pattern":"Interp"}},{"Sequence":{"atoms":[42,43]}},{"Sequence":{"atoms":[34,41]}},{"Str":{"pattern":"–"}},{"Entity":{"atom":18}},{"Alternative":{"atoms":[46,47]}},{"Entity":{"atom":15}},{"Named":{"name":"interpretation_year","atom":49}},{"Repetition":{"atom":50,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":44}},{"Repetition":{"atom":52,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[48,51,53]}},{"Alternative":{"atoms":[45,54]}},{"Sequence":{"atoms":[10,11,13,33,55]}},{"Named":{"name":"interpretation","atom":56}},{"Entity":{"atom":9}},{"Repetition":{"atom":58,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":12}},{"Entity":{"atom":32}},{"Entity":{"atom":44}},{"Sequence":{"atoms":[59,60,61,62]}},{"Named":{"name":"interpretation","atom":63}},{"Alternative":{"atoms":[57,64]}},{"Entity":{"atom":118}},{"Entity":{"atom":9}},{"Repetition":{"atom":67,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":12}},{"Str":{"pattern":"Publication"}},{"Named":{"name":"publication_keyword","atom":70}},{"Entity":{"atom":12}},{"Entity":{"atom":32}},{"Entity":{"atom":18}},{"Entity":{"atom":84}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[76,77]}},{"Entity":{"atom":15}},{"Repetition":{"atom":79,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[78,80]}},{"Entity":{"atom":15}},{"Repetition":{"atom":82,"min":2,"max":null,"tag":"Repetition"}},{"Alternative":{"atoms":[81,83]}},{"Named":{"name":"year","atom":75}},{"Sequence":{"atoms":[74,85]}},{"Repetition":{"atom":86,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":12}},{"Entity":{"atom":103}},{"Str":{"pattern":"("}},{"Str":{"pattern":"Rev"}},{"Entity":{"atom":26}},{"Repetition":{"atom":92,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":12}},{"Entity":{"atom":15}},{"Repetition":{"atom":95,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":15}},{"Repetition":{"atom":98,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[96,97,99]}},{"Named":{"name":"revision","atom":100}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[90,91,93,94,101,102]}},{"Sequence":{"atoms":[88,89]}},{"Repetition":{"atom":104,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":12}},{"Entity":{"atom":114}},{"Str":{"pattern":"("}},{"Str":{"pattern":"R"}},{"Entity":{"atom":15}},{"Repetition":{"atom":110,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"reaffirmed","atom":111}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[108,109,112,113]}},{"Sequence":{"atoms":[106,107]}},{"Repetition":{"atom":115,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[68,69,71,72,73,87,105,116]}},{"Named":{"name":"publication","atom":117}},{"Entity":{"atom":163}},{"Entity":{"atom":9}},{"Repetition":{"atom":120,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":12}},{"Entity":{"atom":126}},{"Str":{"pattern":"Standard"}},{"Str":{"pattern":"Publication"}},{"Alternative":{"atoms":[124,125]}},{"Named":{"name":"type","atom":123}},{"Repetition":{"atom":127,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":12}},{"Repetition":{"atom":129,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":32}},{"Entity":{"atom":18}},{"Entity":{"atom":84}},{"Named":{"name":"year","atom":133}},{"Sequence":{"atoms":[132,134]}},{"Repetition":{"atom":135,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":12}},{"Entity":{"atom":150}},{"Entity":{"atom":4}},{"Entity":{"atom":22}},{"Repetition":{"atom":140,"min":2,"max":10,"tag":"Repetition"}},{"Entity":{"atom":12}},{"Entity":{"atom":15}},{"Repetition":{"atom":143,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Entity":{"atom":15}},{"Repetition":{"atom":146,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[145,147]}},{"Repetition":{"atom":148,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[139,141,142,144,149]}},{"Sequence":{"atoms":[137,138]}},{"Repetition":{"atom":151,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":156}},{"Str":{"pattern":"R"}},{"Str":{"pattern":"P"}},{"Alternative":{"atoms":[154,155]}},{"Repetition":{"atom":153,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":12}},{"Entity":{"atom":114}},{"Sequence":{"atoms":[158,159]}},{"Repetition":{"atom":160,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[121,122,128,130,131,136,152,157,161]}},{"Named":{"name":"standard","atom":162}},{"Alternative":{"atoms":[0,66,119]}}],"root":164},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule interpretation_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)","rule identifier: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule year_digits: 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":"AMCA 500-D","expect":{}},{"entry":"identifier","kind":"accept","input":"AMCA Standard 210","expect":{}},{"entry":"identifier","kind":"accept","input":"ANSI/AMCA 210","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/amca/parser.rb. Pre-parse whitespace collapsing,\n# en-dash normalization and trailing punctuation stripping stay\n# binder-side.\n\ngrammar PubidAmca version \"0.1.0\" {\n copublisher = ((\"ANSI\" slash \"AMCA\") / \"AMCA\") as copublisher\n additional_copublisher = slash 2*10letter space 1*digit [(dash 1*digit)]\n code = (1*digit [(dash letter)] [(dot 1*digit)]) as code\n type = \"Standard\" / \"Publication\"\n reaffirmation = \"(\" \"R\" (1*digit) as reaffirmed \")\"\n suffix = \"R\" / \"P\"\n revision = \"(\" \"Rev\" [dot] space (1*digit dash 1*digit) as revision \")\"\n interpretation_code = (2*letter / 1*digit) as interpretation_code\n interp_keyword = space \"Interp\"\n interpretation_identifier = (([copublisher] space code space ((interpretation_code interp_keyword) / ((\"–\" / dash) 1*digit as interpretation_year [interp_keyword]))) as interpretation) / (([copublisher] space code interp_keyword) as interpretation)\n publication_identifier = (([copublisher] space \"Publication\" as publication_keyword space code [(dash year_digits as year)] [(space revision)] [(space reaffirmation)]) as publication)\n standard_identifier = (([copublisher] space [type as type] [space] code [(dash year_digits as year)] [(space additional_copublisher)] [suffix] [(space reaffirmation)]) as standard)\n identifier = interpretation_identifier / publication_identifier / standard_identifier\n year_digits = ((\"19\" / \"20\") 2*digit / 2*digit)\n letter = %x41-5A / %x61-7A\n digit = %x30-39\n dash = \"-\"\n dot = \".\"\n slash = \"/\"\n space = \" \"\n entry identifier: identifier\n\n test {\n accept \"AMCA 500-D\"\n accept \"AMCA Standard 210\"\n accept \"ANSI/AMCA 210\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:f2cf5b3340335c42555de354f971652e2545e4ebd53e39e0a8e265c611239f0a"}
@@ -0,0 +1 @@
1
+ {"version":"0.1.0","grammar":"PubidAnsi","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":98}},{"Str":{"pattern":"ANSI"}},{"Named":{"name":"publisher","atom":1}},{"Entity":{"atom":21}},{"Entity":{"atom":19}},{"Entity":{"atom":6}},{"Str":{"pattern":"/"}},{"Entity":{"atom":8}},{"Str":{"pattern":" "}},{"Repetition":{"atom":7,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":17}},{"Str":{"pattern":"ISO"}},{"Str":{"pattern":"IEC"}},{"Str":{"pattern":"IEEE"}},{"Str":{"pattern":"SAE"}},{"Str":{"pattern":"ASME"}},{"Str":{"pattern":"ASTM"}},{"Alternative":{"atoms":[11,12,13,14,15,16]}},{"Named":{"name":"copublisher","atom":10}},{"Sequence":{"atoms":[5,9,18]}},{"Repetition":{"atom":4,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"copublishers","atom":20}},{"Entity":{"atom":8}},{"Entity":{"atom":25}},{"Str":{"pattern":"Std "}},{"Repetition":{"atom":24,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":69}},{"Entity":{"atom":49}},{"Entity":{"atom":29}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Repetition":{"atom":28,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":32}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":31,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":35}},{"Str":{"pattern":"."}},{"Entity":{"atom":32}},{"Repetition":{"atom":36,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[34,37]}},{"Repetition":{"atom":38,"min":0,"max":3,"tag":"Repetition"}},{"Entity":{"atom":29}},{"Repetition":{"atom":40,"min":0,"max":1,"tag":"Repetition"}},{"Repetition":{"atom":41,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":44}},{"Str":{"pattern":"-"}},{"Entity":{"atom":32}},{"Repetition":{"atom":45,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[43,46]}},{"Repetition":{"atom":47,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[30,33,39,42,48]}},{"Entity":{"atom":67}},{"Entity":{"atom":32}},{"Repetition":{"atom":51,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":35}},{"Entity":{"atom":32}},{"Repetition":{"atom":54,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":57}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Repetition":{"atom":56,"min":0,"max":1,"tag":"Repetition"}},{"Repetition":{"atom":58,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[53,55,59]}},{"Repetition":{"atom":60,"min":0,"max":2,"tag":"Repetition"}},{"Entity":{"atom":44}},{"Entity":{"atom":32}},{"Repetition":{"atom":63,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[62,64]}},{"Repetition":{"atom":65,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[52,61,66]}},{"Alternative":{"atoms":[27,50]}},{"Named":{"name":"number_with_part","atom":68}},{"Entity":{"atom":83}},{"Entity":{"atom":72}},{"Str":{"pattern":":"}},{"Entity":{"atom":81}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[74,75]}},{"Entity":{"atom":32}},{"Repetition":{"atom":77,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":32}},{"Lookahead":{"atom":79,"positive":false}},{"Sequence":{"atoms":[76,78,80]}},{"Named":{"name":"date","atom":73}},{"Sequence":{"atoms":[71,82]}},{"Repetition":{"atom":70,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":96}},{"Str":{"pattern":"("}},{"Entity":{"atom":94}},{"Entity":{"atom":57}},{"Repetition":{"atom":88,"min":2,"max":null,"tag":"Repetition"}},{"Str":{"pattern":","}},{"Repetition":{"atom":90,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[89,91]}},{"Repetition":{"atom":92,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"languages","atom":93}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[86,87,95]}},{"Repetition":{"atom":85,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[2,3,22,23,26,84,97]}},{"Entity":{"atom":109}},{"Str":{"pattern":"ANSI"}},{"Named":{"name":"publisher","atom":100}},{"Entity":{"atom":8}},{"Entity":{"atom":25}},{"Entity":{"atom":69}},{"Entity":{"atom":83}},{"Repetition":{"atom":105,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":96}},{"Repetition":{"atom":107,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[101,102,103,104,106,108]}},{"Alternative":{"atoms":[0,99]}}],"root":110},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule organization: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule organization: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule organization: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule organization: branches 5 and 6 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":"ANSI C63.4","expect":{}},{"entry":"identifier","kind":"accept","input":"ANSI/IEEE C63.4","expect":{}},{"entry":"identifier","kind":"accept","input":"ANSI Std A119.1","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/ansi/parser.rb: ANSI [copublishers] [Std] number\n# [:year][(languages)]. The number alternatives cover letter-prefixed\n# forms (C37.06.1, N323A) and plain dotted forms (802.1b-1995).\n\ngrammar PubidAnsi version \"0.1.0\" {\n organization = \"ISO\" / \"IEC\" / \"IEEE\" / \"SAE\" / \"ASME\" / \"ASTM\"\n copublisher_item = slash [space] organization as copublisher\n copublishers = (1*copublisher_item) as copublishers\n std_keyword = [\"Std \"]\n letter_head_part = 1*upper 1*digit *3(dot 1*digit) [*1upper] [(dash 1*digit)]\n plain_part = 1*digit *2(dot 1*digit [*1lower]) [(dash 1*digit)]\n number_with_part = (letter_head_part / plain_part) as number_with_part\n date = colon year_digits as date\n year_digits = (\"19\" / \"20\") 2*digit !digit\n languages = (*(2*lower [\",\"])) as languages\n language = \"(\" languages \")\"\n identifier_with_copublishers = \"ANSI\" as publisher copublishers space std_keyword number_with_part [date] [language]\n identifier_sole = \"ANSI\" as publisher space std_keyword number_with_part [date] [language]\n identifier = identifier_with_copublishers / identifier_sole\n upper = %x41-5A\n lower = %x61-7A\n digit = %x30-39\n dot = \".\"\n dash = \"-\"\n colon = \":\"\n slash = \"/\"\n space = \" \"\n entry identifier: identifier\n\n test {\n accept \"ANSI C63.4\"\n accept \"ANSI/IEEE C63.4\"\n accept \"ANSI Std A119.1\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:37eb799cc56347d7fa176c3aeae7298c644cf20af84a80d5471b4cc10882ea17"}
@@ -0,0 +1 @@
1
+ {"version":"0.1.0","grammar":"PubidApi","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":137}},{"Entity":{"atom":48}},{"Str":{"pattern":"API "}},{"Str":{"pattern":"MPMS"}},{"Named":{"name":"type","atom":3}},{"Entity":{"atom":14}},{"Entity":{"atom":7}},{"Str":{"pattern":" "}},{"Str":{"pattern":"CH"}},{"Entity":{"atom":7}},{"Entity":{"atom":11}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":10,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"chapter","atom":12}},{"Sequence":{"atoms":[6,8,9,13]}},{"Entity":{"atom":16}},{"Str":{"pattern":"."}},{"Entity":{"atom":24}},{"Entity":{"atom":11}},{"Repetition":{"atom":18,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":21}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Repetition":{"atom":20,"min":0,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":22,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[19,23]}},{"Named":{"name":"section","atom":17}},{"Sequence":{"atoms":[15,25]}},{"Repetition":{"atom":26,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":16}},{"Entity":{"atom":24}},{"Named":{"name":"subsection","atom":29}},{"Sequence":{"atoms":[28,30]}},{"Repetition":{"atom":31,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":40}},{"Entity":{"atom":35}},{"Str":{"pattern":"-"}},{"Entity":{"atom":39}},{"Entity":{"atom":11}},{"Repetition":{"atom":37,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":38}},{"Sequence":{"atoms":[34,36]}},{"Entity":{"atom":45}},{"Entity":{"atom":43}},{"Str":{"pattern":":"}},{"Entity":{"atom":39}},{"Sequence":{"atoms":[42,44]}},{"Alternative":{"atoms":[33,41]}},{"Repetition":{"atom":46,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[2,4,5,27,32,47]}},{"Entity":{"atom":95}},{"Str":{"pattern":"API "}},{"Entity":{"atom":61}},{"Str":{"pattern":"MPMS"}},{"Str":{"pattern":"BULL"}},{"Str":{"pattern":"SPEC"}},{"Str":{"pattern":"STD"}},{"Str":{"pattern":"RP"}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"COS"}},{"Str":{"pattern":"PUBL"}},{"Alternative":{"atoms":[52,53,54,55,56,57,58,59]}},{"Named":{"name":"type","atom":60}},{"Entity":{"atom":7}},{"Entity":{"atom":76}},{"Entity":{"atom":67}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Alternative":{"atoms":[65,66]}},{"Repetition":{"atom":64,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":68}},{"Entity":{"atom":35}},{"Entity":{"atom":67}},{"Repetition":{"atom":71,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"part","atom":72}},{"Sequence":{"atoms":[70,73]}},{"Repetition":{"atom":74,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[69,75]}},{"Entity":{"atom":82}},{"Str":{"pattern":", Part "}},{"Entity":{"atom":11}},{"Repetition":{"atom":79,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"part_number","atom":80}},{"Sequence":{"atoms":[78,81]}},{"Repetition":{"atom":77,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":40}},{"Entity":{"atom":45}},{"Alternative":{"atoms":[84,85]}},{"Repetition":{"atom":86,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":93}},{"Entity":{"atom":7}},{"Str":{"pattern":"(R"}},{"Entity":{"atom":39}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[89,90,91,92]}},{"Repetition":{"atom":88,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[50,51,62,63,83,87,94]}},{"Entity":{"atom":107}},{"Str":{"pattern":"API "}},{"Entity":{"atom":76}},{"Entity":{"atom":82}},{"Repetition":{"atom":99,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":40}},{"Entity":{"atom":45}},{"Alternative":{"atoms":[101,102]}},{"Repetition":{"atom":103,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":93}},{"Repetition":{"atom":105,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[97,98,100,104,106]}},{"Alternative":{"atoms":[1,49,96]}},{"Named":{"name":"first","atom":108}},{"Entity":{"atom":111}},{"Str":{"pattern":"/"}},{"Entity":{"atom":122}},{"Entity":{"atom":61}},{"Entity":{"atom":7}},{"Entity":{"atom":76}},{"Entity":{"atom":82}},{"Repetition":{"atom":116,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":40}},{"Entity":{"atom":45}},{"Alternative":{"atoms":[118,119]}},{"Repetition":{"atom":120,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[113,114,115,117,121]}},{"Named":{"name":"second","atom":112}},{"Entity":{"atom":135}},{"Str":{"pattern":", "}},{"Entity":{"atom":11}},{"Repetition":{"atom":126,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"edition_number","atom":127}},{"Str":{"pattern":"st"}},{"Str":{"pattern":"nd"}},{"Str":{"pattern":"rd"}},{"Str":{"pattern":"th"}},{"Alternative":{"atoms":[129,130,131,132]}},{"Str":{"pattern":" edition"}},{"Sequence":{"atoms":[125,128,133,134]}},{"Repetition":{"atom":124,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[109,110,123,136]}},{"Entity":{"atom":48}},{"Entity":{"atom":95}},{"Entity":{"atom":107}},{"Alternative":{"atoms":[0,138,139,140]}}],"root":141},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule identifier: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 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 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"API RP 1632-1987","expect":{}},{"entry":"identifier","kind":"accept","input":"API MPMS CH 11.1","expect":{}},{"entry":"identifier","kind":"accept","input":"API SPEC 5DP/STD 5DP, 1st edition","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/api/parser.rb: API MPMS/typed/typeless identifiers\n# with slash-combined second identifiers. The API MPMP normalization\n# stays binder-side.\n\ngrammar PubidApi version \"0.1.0\" {\n number_with_part = (1*num_letter_char) as number [(dash (1*num_letter_char) as part)]\n num_letter_char = %x30-39 / %x41-5A\n doc_type = (\"MPMS\" / \"BULL\" / \"SPEC\" / \"STD\" / \"RP\" / \"TR\" / \"COS\" / \"PUBL\") as type\n chapter_notation = space \"CH\" space (1*digit) as chapter\n digits_with_letter = (1*digit [*upper])\n year = (4digit) as year\n date_dash = dash year\n date_colon = colon year\n reaffirmation = space \"(R\" year \")\"\n part_notation = \", Part \" (1*digit) as part_number\n mpms_identifier = \"API \" \"MPMS\" as type chapter_notation [(dot digits_with_letter as section)] [(dot digits_with_letter as subsection)] [(date_dash / date_colon)]\n typed_identifier = \"API \" doc_type space number_with_part [part_notation] [(date_dash / date_colon)] [reaffirmation]\n typeless_identifier = \"API \" number_with_part [part_notation] [(date_dash / date_colon)] [reaffirmation]\n second_identifier = doc_type space number_with_part [part_notation] [(date_dash / date_colon)]\n combined_identifier = ((mpms_identifier / typed_identifier / typeless_identifier) as first) slash (second_identifier as second) [edition_notation]\n edition_notation = \", \" (1*digit) as edition_number (\"st\" / \"nd\" / \"rd\" / \"th\") \" edition\"\n identifier = combined_identifier / mpms_identifier / typed_identifier / typeless_identifier\n upper = %x41-5A\n digit = %x30-39\n dash = \"-\"\n slash = \"/\"\n colon = \":\"\n dot = \".\"\n space = \" \"\n entry identifier: identifier\n\n test {\n accept \"API RP 1632-1987\"\n accept \"API MPMS CH 11.1\"\n accept \"API SPEC 5DP/STD 5DP, 1st edition\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:32bad825cdb7412e9d706c26cf72cb0108bef541897a3dadffe26d3c3a3a8c63"}
@@ -0,0 +1 @@
1
+ {"version":"0.1.0","grammar":"PubidAshrae","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":347}},{"Entity":{"atom":21}},{"Str":{"pattern":"ANSI"}},{"Entity":{"atom":4}},{"Str":{"pattern":"-"}},{"Str":{"pattern":"ASHRAE"}},{"Sequence":{"atoms":[2,3,5]}},{"Str":{"pattern":"ANSI"}},{"Entity":{"atom":9}},{"Str":{"pattern":"/"}},{"Str":{"pattern":"ASHRAE"}},{"Entity":{"atom":9}},{"Entity":{"atom":15}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[13,14]}},{"Repetition":{"atom":12,"min":3,"max":10,"tag":"Repetition"}},{"Sequence":{"atoms":[11,16]}},{"Repetition":{"atom":17,"min":0,"max":10,"tag":"Repetition"}},{"Sequence":{"atoms":[7,8,10,18]}},{"Alternative":{"atoms":[6,19]}},{"Named":{"name":"copublisher","atom":20}},{"Entity":{"atom":23}},{"Str":{"pattern":" "}},{"Entity":{"atom":27}},{"Str":{"pattern":"Guideline"}},{"Str":{"pattern":"Standard"}},{"Alternative":{"atoms":[25,26]}},{"Named":{"name":"type","atom":24}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":34}},{"Entity":{"atom":33}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":32,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":36}},{"Str":{"pattern":"."}},{"Entity":{"atom":34}},{"Sequence":{"atoms":[35,37]}},{"Repetition":{"atom":38,"min":0,"max":2,"tag":"Repetition"}},{"Entity":{"atom":15}},{"Entity":{"atom":42}},{"Str":{"pattern":","}},{"Entity":{"atom":15}},{"Sequence":{"atoms":[41,43]}},{"Repetition":{"atom":44,"min":0,"max":10,"tag":"Repetition"}},{"Sequence":{"atoms":[40,45]}},{"Repetition":{"atom":46,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[31,39,47]}},{"Named":{"name":"code","atom":48}},{"Entity":{"atom":23}},{"Repetition":{"atom":50,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[54,55]}},{"Entity":{"atom":33}},{"Repetition":{"atom":57,"min":2,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[56,58]}},{"Named":{"name":"year","atom":53}},{"Sequence":{"atoms":[51,52,60]}},{"Repetition":{"atom":61,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Entity":{"atom":104}},{"Entity":{"atom":9}},{"Entity":{"atom":15}},{"Repetition":{"atom":66,"min":4,"max":10,"tag":"Repetition"}},{"Entity":{"atom":23}},{"Entity":{"atom":34}},{"Entity":{"atom":4}},{"Entity":{"atom":34}},{"Sequence":{"atoms":[70,71]}},{"Repetition":{"atom":72,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[69,73]}},{"Repetition":{"atom":74,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[67,68,75]}},{"Named":{"name":"additional_copublisher","atom":76}},{"Sequence":{"atoms":[65,77]}},{"Entity":{"atom":80}},{"Str":{"pattern":"("}},{"Str":{"pattern":"ANSI"}},{"Entity":{"atom":9}},{"Entity":{"atom":15}},{"Repetition":{"atom":83,"min":2,"max":10,"tag":"Repetition"}},{"Entity":{"atom":9}},{"Entity":{"atom":15}},{"Repetition":{"atom":86,"min":2,"max":10,"tag":"Repetition"}},{"Sequence":{"atoms":[85,87]}},{"Repetition":{"atom":88,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[84,89]}},{"Sequence":{"atoms":[81,82,90]}},{"Named":{"name":"additional_copublisher","atom":91}},{"Entity":{"atom":23}},{"Entity":{"atom":34}},{"Entity":{"atom":4}},{"Entity":{"atom":34}},{"Sequence":{"atoms":[95,96]}},{"Repetition":{"atom":97,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[94,98]}},{"Repetition":{"atom":99,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":102}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[79,92,93,100,101]}},{"Alternative":{"atoms":[78,103]}},{"Sequence":{"atoms":[63,64]}},{"Repetition":{"atom":105,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":111}},{"Str":{"pattern":"R"}},{"Str":{"pattern":"P"}},{"Alternative":{"atoms":[108,109]}},{"Named":{"name":"suffix","atom":110}},{"Repetition":{"atom":107,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":149}},{"Entity":{"atom":23}},{"Repetition":{"atom":114,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":80}},{"Str":{"pattern":"RA"}},{"Entity":{"atom":23}},{"Repetition":{"atom":118,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":124}},{"Entity":{"atom":59}},{"Entity":{"atom":33}},{"Repetition":{"atom":122,"min":2,"max":2,"tag":"Repetition"}},{"Alternative":{"atoms":[121,123]}},{"Named":{"name":"reaffirmed","atom":120}},{"Entity":{"atom":102}},{"Sequence":{"atoms":[115,116,117,119,125,126]}},{"Entity":{"atom":23}},{"Repetition":{"atom":128,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":80}},{"Str":{"pattern":"RA"}},{"Entity":{"atom":4}},{"Entity":{"atom":124}},{"Named":{"name":"reaffirmed","atom":133}},{"Entity":{"atom":102}},{"Sequence":{"atoms":[129,130,131,132,134,135]}},{"Entity":{"atom":23}},{"Str":{"pattern":"RA"}},{"Entity":{"atom":23}},{"Entity":{"atom":124}},{"Named":{"name":"reaffirmed","atom":140}},{"Sequence":{"atoms":[137,138,139,141]}},{"Entity":{"atom":23}},{"Str":{"pattern":"RA"}},{"Entity":{"atom":4}},{"Entity":{"atom":124}},{"Named":{"name":"reaffirmed","atom":146}},{"Sequence":{"atoms":[143,144,145,147]}},{"Alternative":{"atoms":[127,136,142,148]}},{"Repetition":{"atom":113,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1,22,28,29,30,62,106,112,150]}},{"Named":{"name":"base","atom":151}},{"Entity":{"atom":23}},{"Str":{"pattern":"Errata"}},{"Named":{"name":"errata_keyword","atom":154}},{"Entity":{"atom":243}},{"Entity":{"atom":172}},{"Entity":{"atom":23}},{"Str":{"pattern":"-"}},{"Str":{"pattern":"–"}},{"Alternative":{"atoms":[159,160]}},{"Entity":{"atom":23}},{"Entity":{"atom":15}},{"Entity":{"atom":23}},{"Entity":{"atom":15}},{"Entity":{"atom":33}},{"Entity":{"atom":42}},{"Alternative":{"atoms":[164,165,166,167]}},{"Repetition":{"atom":168,"min":0,"max":50,"tag":"Repetition"}},{"Sequence":{"atoms":[163,169]}},{"Sequence":{"atoms":[158,161,162,170]}},{"Repetition":{"atom":171,"min":0,"max":3,"tag":"Repetition"}},{"Entity":{"atom":236}},{"Entity":{"atom":23}},{"Repetition":{"atom":174,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":80}},{"Entity":{"atom":190}},{"Str":{"pattern":"January"}},{"Str":{"pattern":"February"}},{"Str":{"pattern":"March"}},{"Str":{"pattern":"April"}},{"Str":{"pattern":"May"}},{"Str":{"pattern":"June"}},{"Str":{"pattern":"July"}},{"Str":{"pattern":"August"}},{"Str":{"pattern":"September"}},{"Str":{"pattern":"October"}},{"Str":{"pattern":"November"}},{"Str":{"pattern":"December"}},{"Alternative":{"atoms":[178,179,180,181,182,183,184,185,186,187,188,189]}},{"Named":{"name":"month","atom":177}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Repetition":{"atom":193,"min":1,"max":2,"tag":"Repetition"}},{"Named":{"name":"day","atom":194}},{"Entity":{"atom":42}},{"Repetition":{"atom":196,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Entity":{"atom":42}},{"Repetition":{"atom":199,"min":0,"max":1,"tag":"Maybe"}},{"Alternative":{"atoms":[198,200]}},{"Entity":{"atom":59}},{"Named":{"name":"errata_year","atom":202}},{"Entity":{"atom":102}},{"Sequence":{"atoms":[175,176,191,192,195,197,201,203,204]}},{"Named":{"name":"errata_date","atom":205}},{"Entity":{"atom":23}},{"Repetition":{"atom":207,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":80}},{"Entity":{"atom":190}},{"Named":{"name":"month","atom":210}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Repetition":{"atom":213,"min":1,"max":2,"tag":"Repetition"}},{"Named":{"name":"day","atom":214}},{"Entity":{"atom":102}},{"Sequence":{"atoms":[208,209,211,212,215,216]}},{"Named":{"name":"errata_date","atom":217}},{"Entity":{"atom":23}},{"Repetition":{"atom":219,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":80}},{"Entity":{"atom":33}},{"Repetition":{"atom":222,"min":1,"max":2,"tag":"Repetition"}},{"Entity":{"atom":4}},{"Entity":{"atom":33}},{"Repetition":{"atom":225,"min":1,"max":2,"tag":"Repetition"}},{"Entity":{"atom":4}},{"Entity":{"atom":23}},{"Repetition":{"atom":228,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":59}},{"Sequence":{"atoms":[223,224,226,227,229,230]}},{"Named":{"name":"numeric_date","atom":231}},{"Entity":{"atom":102}},{"Sequence":{"atoms":[220,221,232,233]}},{"Named":{"name":"errata_date","atom":234}},{"Alternative":{"atoms":[206,218,235]}},{"Sequence":{"atoms":[157,173]}},{"Entity":{"atom":236}},{"Entity":{"atom":172}},{"Sequence":{"atoms":[238,239]}},{"Entity":{"atom":236}},{"Entity":{"atom":172}},{"Alternative":{"atoms":[237,240,241,242]}},{"Repetition":{"atom":156,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Entity":{"atom":23}},{"Repetition":{"atom":246,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":80}},{"Str":{"pattern":"PDF"}},{"Entity":{"atom":15}},{"Repetition":{"atom":250,"min":1,"max":20,"tag":"Repetition"}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Entity":{"atom":42}},{"Entity":{"atom":4}},{"Entity":{"atom":36}},{"Entity":{"atom":15}},{"Str":{"pattern":"–"}},{"Alternative":{"atoms":[252,253,254,255,256,257,258]}},{"Repetition":{"atom":259,"min":0,"max":500,"tag":"Repetition"}},{"Sequence":{"atoms":[251,260]}},{"Alternative":{"atoms":[249,261]}},{"Entity":{"atom":102}},{"Sequence":{"atoms":[247,248,262,263]}},{"Repetition":{"atom":245,"min":0,"max":2,"tag":"Repetition"}},{"Named":{"name":"optional_suffixes","atom":265}},{"Sequence":{"atoms":[152,153,155,244,266]}},{"Entity":{"atom":21}},{"Entity":{"atom":23}},{"Entity":{"atom":293}},{"Entity":{"atom":34}},{"Entity":{"atom":36}},{"Entity":{"atom":34}},{"Sequence":{"atoms":[272,273]}},{"Repetition":{"atom":274,"min":0,"max":2,"tag":"Repetition"}},{"Entity":{"atom":15}},{"Entity":{"atom":42}},{"Entity":{"atom":15}},{"Sequence":{"atoms":[277,278]}},{"Repetition":{"atom":279,"min":0,"max":10,"tag":"Repetition"}},{"Sequence":{"atoms":[276,280]}},{"Repetition":{"atom":281,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[271,275,282]}},{"Named":{"name":"code","atom":283}},{"Entity":{"atom":23}},{"Repetition":{"atom":285,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":288}},{"Sequence":{"atoms":[286,287,289]}},{"Repetition":{"atom":290,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[284,291]}},{"Named":{"name":"code_with_year","atom":292}},{"Entity":{"atom":23}},{"Entity":{"atom":104}},{"Sequence":{"atoms":[294,295]}},{"Repetition":{"atom":296,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":111}},{"Repetition":{"atom":298,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":149}},{"Repetition":{"atom":300,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[268,269,270,297,299,301]}},{"Named":{"name":"base","atom":302}},{"Entity":{"atom":23}},{"Str":{"pattern":"Errata"}},{"Named":{"name":"errata_keyword","atom":305}},{"Entity":{"atom":243}},{"Repetition":{"atom":307,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":309,"min":0,"max":2,"tag":"Repetition"}},{"Named":{"name":"optional_suffixes","atom":310}},{"Sequence":{"atoms":[303,304,306,308,311]}},{"Entity":{"atom":314}},{"Str":{"pattern":"ASHRAE"}},{"Named":{"name":"publisher","atom":313}},{"Entity":{"atom":23}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":317}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":23}},{"Repetition":{"atom":321,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":324}},{"Sequence":{"atoms":[322,323,325]}},{"Repetition":{"atom":326,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Entity":{"atom":104}},{"Sequence":{"atoms":[328,329]}},{"Repetition":{"atom":330,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":111}},{"Repetition":{"atom":332,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":149}},{"Repetition":{"atom":334,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[315,316,318,319,320,327,331,333,335]}},{"Named":{"name":"base","atom":336}},{"Entity":{"atom":23}},{"Str":{"pattern":"Errata"}},{"Named":{"name":"errata_keyword","atom":339}},{"Entity":{"atom":243}},{"Repetition":{"atom":341,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":343,"min":0,"max":2,"tag":"Repetition"}},{"Named":{"name":"optional_suffixes","atom":344}},{"Sequence":{"atoms":[337,338,340,342,345]}},{"Alternative":{"atoms":[267,312,346]}},{"Entity":{"atom":365}},{"Str":{"pattern":"Interpretations"}},{"Entity":{"atom":23}},{"Str":{"pattern":"for"}},{"Entity":{"atom":23}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":353}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":358}},{"Sequence":{"atoms":[357,359]}},{"Repetition":{"atom":360,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[354,355,356,361]}},{"Named":{"name":"base","atom":362}},{"Sequence":{"atoms":[349,350,351,352,363]}},{"Named":{"name":"interpretation_identifier","atom":364}},{"Entity":{"atom":528}},{"Entity":{"atom":59}},{"Named":{"name":"package_year","atom":367}},{"Entity":{"atom":23}},{"Str":{"pattern":"Addenda"}},{"Entity":{"atom":23}},{"Str":{"pattern":"Supplement"}},{"Entity":{"atom":23}},{"Str":{"pattern":"Package"}},{"Sequence":{"atoms":[373,374]}},{"Repetition":{"atom":375,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Str":{"pattern":"to"}},{"Entity":{"atom":23}},{"Entity":{"atom":392}},{"Str":{"pattern":"ANSI"}},{"Entity":{"atom":9}},{"Str":{"pattern":"ASHRAE"}},{"Entity":{"atom":9}},{"Entity":{"atom":15}},{"Repetition":{"atom":385,"min":3,"max":10,"tag":"Repetition"}},{"Sequence":{"atoms":[384,386]}},{"Repetition":{"atom":387,"min":0,"max":10,"tag":"Repetition"}},{"Sequence":{"atoms":[381,382,383,388]}},{"Named":{"name":"copublisher","atom":389}},{"Entity":{"atom":23}},{"Sequence":{"atoms":[390,391]}},{"Repetition":{"atom":380,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":394}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":399}},{"Sequence":{"atoms":[398,400]}},{"Repetition":{"atom":401,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[370,371,372,376,377,378,379,393,395,396,397,402]}},{"Str":{"pattern":"Supplement"}},{"Entity":{"atom":23}},{"Str":{"pattern":"Addenda"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Entity":{"atom":34}},{"Repetition":{"atom":409,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":15}},{"Repetition":{"atom":411,"min":1,"max":3,"tag":"Repetition"}},{"Sequence":{"atoms":[410,412]}},{"Named":{"name":"addendum_code","atom":413}},{"Entity":{"atom":42}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[415,416,417]}},{"Repetition":{"atom":418,"min":1,"max":50,"tag":"Repetition"}},{"Entity":{"atom":42}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[420,421]}},{"Repetition":{"atom":422,"min":1,"max":50,"tag":"Repetition"}},{"Alternative":{"atoms":[419,423]}},{"Named":{"name":"additional_codes","atom":424}},{"Repetition":{"atom":425,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Str":{"pattern":"to"}},{"Entity":{"atom":23}},{"Entity":{"atom":392}},{"Repetition":{"atom":430,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":432}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":437}},{"Sequence":{"atoms":[436,438]}},{"Repetition":{"atom":439,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[404,405,406,407,408,426,427,428,429,431,433,434,435,440]}},{"Str":{"pattern":"Addenda"}},{"Entity":{"atom":23}},{"Str":{"pattern":"Supplement"}},{"Entity":{"atom":23}},{"Str":{"pattern":"to"}},{"Entity":{"atom":23}},{"Entity":{"atom":392}},{"Repetition":{"atom":448,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":450}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":455}},{"Sequence":{"atoms":[454,456]}},{"Repetition":{"atom":457,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[442,443,444,445,446,447,449,451,452,453,458]}},{"Str":{"pattern":"Supplement"}},{"Entity":{"atom":23}},{"Str":{"pattern":"to"}},{"Entity":{"atom":23}},{"Entity":{"atom":392}},{"Repetition":{"atom":464,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":466}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":471}},{"Sequence":{"atoms":[470,472]}},{"Repetition":{"atom":473,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":521}},{"Entity":{"atom":23}},{"Str":{"pattern":"Errata"}},{"Named":{"name":"errata_keyword","atom":477}},{"Entity":{"atom":519}},{"Entity":{"atom":23}},{"Repetition":{"atom":480,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":80}},{"Entity":{"atom":190}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Repetition":{"atom":485,"min":1,"max":2,"tag":"Repetition"}},{"Entity":{"atom":42}},{"Repetition":{"atom":487,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Entity":{"atom":42}},{"Repetition":{"atom":490,"min":0,"max":1,"tag":"Maybe"}},{"Alternative":{"atoms":[489,491]}},{"Entity":{"atom":59}},{"Entity":{"atom":102}},{"Sequence":{"atoms":[481,482,483,484,486,488,492,493,494]}},{"Entity":{"atom":23}},{"Repetition":{"atom":496,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":80}},{"Entity":{"atom":190}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Repetition":{"atom":501,"min":1,"max":2,"tag":"Repetition"}},{"Entity":{"atom":102}},{"Sequence":{"atoms":[497,498,499,500,502,503]}},{"Entity":{"atom":23}},{"Repetition":{"atom":505,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":80}},{"Entity":{"atom":33}},{"Repetition":{"atom":508,"min":1,"max":2,"tag":"Repetition"}},{"Entity":{"atom":4}},{"Entity":{"atom":33}},{"Repetition":{"atom":511,"min":1,"max":2,"tag":"Repetition"}},{"Entity":{"atom":4}},{"Entity":{"atom":23}},{"Repetition":{"atom":514,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":59}},{"Entity":{"atom":102}},{"Sequence":{"atoms":[506,507,509,510,512,513,515,516,517]}},{"Alternative":{"atoms":[495,504,518]}},{"Repetition":{"atom":479,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[476,478,520]}},{"Repetition":{"atom":475,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[460,461,462,463,465,467,468,469,474,522]}},{"Alternative":{"atoms":[403,441,459,523]}},{"Entity":{"atom":264}},{"Repetition":{"atom":525,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[368,369,524,526]}},{"Named":{"name":"addenda_package","atom":527}},{"Entity":{"atom":655}},{"Entity":{"atom":392}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":531}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":536}},{"Sequence":{"atoms":[535,537]}},{"Repetition":{"atom":538,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":":"}},{"Entity":{"atom":23}},{"Sequence":{"atoms":[540,541]}},{"Entity":{"atom":23}},{"Alternative":{"atoms":[542,543]}},{"Str":{"pattern":"Addenda"}},{"Entity":{"atom":23}},{"Str":{"pattern":"Supplement"}},{"Entity":{"atom":23}},{"Str":{"pattern":"Package"}},{"Sequence":{"atoms":[548,549]}},{"Repetition":{"atom":550,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[547,551]}},{"Str":{"pattern":"Package"}},{"Alternative":{"atoms":[552,553]}},{"Named":{"name":"package_description","atom":554}},{"Entity":{"atom":23}},{"Str":{"pattern":"for"}},{"Entity":{"atom":23}},{"Entity":{"atom":59}},{"Named":{"name":"target_year","atom":559}},{"Sequence":{"atoms":[556,557,558,560]}},{"Repetition":{"atom":561,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":563,"min":0,"max":3,"tag":"Repetition"}},{"Sequence":{"atoms":[530,532,533,534,539,544,545,546,555,562,564]}},{"Named":{"name":"addenda_package","atom":565}},{"Entity":{"atom":314}},{"Named":{"name":"publisher","atom":567}},{"Entity":{"atom":23}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":570}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":575}},{"Sequence":{"atoms":[574,576]}},{"Repetition":{"atom":577,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":42}},{"Entity":{"atom":23}},{"Str":{"pattern":"Addenda"}},{"Entity":{"atom":23}},{"Entity":{"atom":59}},{"Named":{"name":"package_year","atom":583}},{"Entity":{"atom":23}},{"Str":{"pattern":"Supplement"}},{"Entity":{"atom":588}},{"Str":{"pattern":":"}},{"Entity":{"atom":23}},{"Str":{"pattern":"Addenda"}},{"Entity":{"atom":23}},{"Str":{"pattern":"Supplement"}},{"Entity":{"atom":23}},{"Str":{"pattern":"Package"}},{"Sequence":{"atoms":[593,594]}},{"Repetition":{"atom":595,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[592,596]}},{"Str":{"pattern":"Package"}},{"Alternative":{"atoms":[597,598]}},{"Named":{"name":"package_description","atom":599}},{"Entity":{"atom":264}},{"Repetition":{"atom":601,"min":0,"max":3,"tag":"Repetition"}},{"Sequence":{"atoms":[568,569,571,572,573,578,579,580,581,582,584,585,586,587,589,590,591,600,602]}},{"Named":{"name":"addenda_package","atom":603}},{"Entity":{"atom":314}},{"Named":{"name":"publisher","atom":605}},{"Entity":{"atom":23}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":608}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":613}},{"Sequence":{"atoms":[612,614]}},{"Repetition":{"atom":615,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Entity":{"atom":59}},{"Named":{"name":"package_year","atom":618}},{"Sequence":{"atoms":[617,619]}},{"Repetition":{"atom":620,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":104}},{"Repetition":{"atom":622,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":111}},{"Repetition":{"atom":624,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":149}},{"Repetition":{"atom":626,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":":"}},{"Entity":{"atom":23}},{"Sequence":{"atoms":[628,629]}},{"Entity":{"atom":23}},{"Alternative":{"atoms":[630,631]}},{"Str":{"pattern":"Addenda"}},{"Entity":{"atom":23}},{"Str":{"pattern":"Supplement"}},{"Entity":{"atom":23}},{"Str":{"pattern":"Package"}},{"Sequence":{"atoms":[636,637]}},{"Repetition":{"atom":638,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[635,639]}},{"Str":{"pattern":"Package"}},{"Alternative":{"atoms":[640,641]}},{"Named":{"name":"package_description","atom":642}},{"Entity":{"atom":23}},{"Str":{"pattern":"for"}},{"Entity":{"atom":23}},{"Entity":{"atom":59}},{"Named":{"name":"target_year","atom":647}},{"Sequence":{"atoms":[644,645,646,648]}},{"Repetition":{"atom":649,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":651,"min":0,"max":3,"tag":"Repetition"}},{"Sequence":{"atoms":[606,607,609,610,611,616,621,623,625,627,632,633,634,643,650,652]}},{"Named":{"name":"addenda_package","atom":653}},{"Alternative":{"atoms":[566,604,654]}},{"Entity":{"atom":944}},{"Entity":{"atom":314}},{"Named":{"name":"publisher","atom":657}},{"Entity":{"atom":23}},{"Str":{"pattern":"Addendum"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Entity":{"atom":23}},{"Str":{"pattern":"to"}},{"Str":{"pattern":"for"}},{"Alternative":{"atoms":[664,665]}},{"Entity":{"atom":23}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":668}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":673}},{"Sequence":{"atoms":[672,674]}},{"Repetition":{"atom":675,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":104}},{"Repetition":{"atom":677,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":694}},{"Entity":{"atom":23}},{"Entity":{"atom":80}},{"Entity":{"atom":190}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Repetition":{"atom":684,"min":1,"max":2,"tag":"Repetition"}},{"Entity":{"atom":42}},{"Repetition":{"atom":686,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Entity":{"atom":42}},{"Repetition":{"atom":689,"min":0,"max":1,"tag":"Maybe"}},{"Alternative":{"atoms":[688,690]}},{"Entity":{"atom":59}},{"Entity":{"atom":102}},{"Sequence":{"atoms":[680,681,682,683,685,687,691,692,693]}},{"Repetition":{"atom":679,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":521}},{"Repetition":{"atom":696,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":698,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[658,659,660,661,662,663,666,667,669,670,671,676,678,695,697,699]}},{"Named":{"name":"publisher_addendum","atom":700}},{"Entity":{"atom":314}},{"Named":{"name":"publisher","atom":702}},{"Entity":{"atom":23}},{"Str":{"pattern":"Addendum"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Entity":{"atom":23}},{"Str":{"pattern":"to"}},{"Str":{"pattern":"for"}},{"Alternative":{"atoms":[709,710]}},{"Entity":{"atom":23}},{"Entity":{"atom":314}},{"Named":{"name":"base_publisher","atom":713}},{"Entity":{"atom":23}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":716}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":721}},{"Sequence":{"atoms":[720,722]}},{"Repetition":{"atom":723,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":104}},{"Repetition":{"atom":725,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":694}},{"Repetition":{"atom":727,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":521}},{"Repetition":{"atom":729,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":731,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[703,704,705,706,707,708,711,712,714,715,717,718,719,724,726,728,730,732]}},{"Named":{"name":"publisher_base_addendum","atom":733}},{"Entity":{"atom":392}},{"Repetition":{"atom":735,"min":0,"max":1,"tag":"Maybe"}},{"Repetition":{"atom":736,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"Addendum"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Entity":{"atom":23}},{"Str":{"pattern":"to"}},{"Str":{"pattern":"for"}},{"Alternative":{"atoms":[742,743]}},{"Entity":{"atom":23}},{"Entity":{"atom":314}},{"Named":{"name":"base_publisher","atom":746}},{"Entity":{"atom":23}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":749}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":754}},{"Sequence":{"atoms":[753,755]}},{"Repetition":{"atom":756,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":104}},{"Repetition":{"atom":758,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":694}},{"Repetition":{"atom":760,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":521}},{"Repetition":{"atom":762,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":764,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[737,738,739,740,741,744,745,747,748,750,751,752,757,759,761,763,765]}},{"Named":{"name":"publisher_base_addendum","atom":766}},{"Entity":{"atom":314}},{"Named":{"name":"publisher","atom":768}},{"Entity":{"atom":23}},{"Str":{"pattern":"Addendum"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Entity":{"atom":23}},{"Str":{"pattern":"to"}},{"Str":{"pattern":"for"}},{"Alternative":{"atoms":[775,776]}},{"Entity":{"atom":23}},{"Entity":{"atom":392}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":780}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":785}},{"Sequence":{"atoms":[784,786]}},{"Repetition":{"atom":787,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":694}},{"Repetition":{"atom":789,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":521}},{"Repetition":{"atom":791,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":793,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[769,770,771,772,773,774,777,778,779,781,782,783,788,790,792,794]}},{"Named":{"name":"publisher_addendum_copublisher","atom":795}},{"Entity":{"atom":314}},{"Named":{"name":"publisher","atom":797}},{"Entity":{"atom":23}},{"Str":{"pattern":"Addendum"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Entity":{"atom":23}},{"Str":{"pattern":"to"}},{"Str":{"pattern":"for"}},{"Alternative":{"atoms":[804,805]}},{"Entity":{"atom":23}},{"Entity":{"atom":392}},{"Entity":{"atom":293}},{"Entity":{"atom":104}},{"Repetition":{"atom":810,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":694}},{"Repetition":{"atom":812,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":521}},{"Repetition":{"atom":814,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":816,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[798,799,800,801,802,803,806,807,808,809,811,813,815,817]}},{"Named":{"name":"publisher_addendum_copublisher_no_type","atom":818}},{"Entity":{"atom":392}},{"Repetition":{"atom":820,"min":0,"max":1,"tag":"Maybe"}},{"Repetition":{"atom":821,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"Addendum"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Entity":{"atom":23}},{"Str":{"pattern":"to"}},{"Str":{"pattern":"for"}},{"Alternative":{"atoms":[827,828]}},{"Entity":{"atom":23}},{"Entity":{"atom":392}},{"Repetition":{"atom":831,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":293}},{"Entity":{"atom":104}},{"Repetition":{"atom":834,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":694}},{"Repetition":{"atom":836,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":521}},{"Repetition":{"atom":838,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":840,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[822,823,824,825,826,829,830,832,833,835,837,839,841]}},{"Named":{"name":"addendum_no_type","atom":842}},{"Entity":{"atom":392}},{"Repetition":{"atom":844,"min":0,"max":1,"tag":"Maybe"}},{"Repetition":{"atom":845,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"Addendum"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Entity":{"atom":23}},{"Str":{"pattern":"to"}},{"Str":{"pattern":"for"}},{"Alternative":{"atoms":[851,852]}},{"Entity":{"atom":23}},{"Entity":{"atom":392}},{"Repetition":{"atom":855,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":857}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":862}},{"Sequence":{"atoms":[861,863]}},{"Repetition":{"atom":864,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":104}},{"Repetition":{"atom":866,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":694}},{"Repetition":{"atom":868,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":521}},{"Repetition":{"atom":870,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":872,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[846,847,848,849,850,853,854,856,858,859,860,865,867,869,871,873]}},{"Named":{"name":"addendum","atom":874}},{"Entity":{"atom":314}},{"Named":{"name":"publisher","atom":876}},{"Entity":{"atom":23}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":879}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":884}},{"Sequence":{"atoms":[883,885]}},{"Repetition":{"atom":886,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":104}},{"Repetition":{"atom":888,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":111}},{"Repetition":{"atom":890,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":149}},{"Repetition":{"atom":892,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":":"}},{"Entity":{"atom":23}},{"Sequence":{"atoms":[894,895]}},{"Entity":{"atom":23}},{"Alternative":{"atoms":[896,897]}},{"Str":{"pattern":"Addendum"}},{"Str":{"pattern":"addendum"}},{"Alternative":{"atoms":[899,900]}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Entity":{"atom":694}},{"Repetition":{"atom":904,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":521}},{"Repetition":{"atom":906,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":908,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[877,878,880,881,882,887,889,891,893,898,901,902,903,905,907,909]}},{"Named":{"name":"standard_addendum","atom":910}},{"Entity":{"atom":314}},{"Named":{"name":"publisher","atom":912}},{"Entity":{"atom":23}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":915}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":920}},{"Sequence":{"atoms":[919,921]}},{"Repetition":{"atom":922,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":104}},{"Repetition":{"atom":924,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":111}},{"Repetition":{"atom":926,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":149}},{"Repetition":{"atom":928,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Str":{"pattern":"Addendum"}},{"Str":{"pattern":"addendum"}},{"Alternative":{"atoms":[931,932]}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Entity":{"atom":694}},{"Repetition":{"atom":936,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":521}},{"Repetition":{"atom":938,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":940,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[913,914,916,917,918,923,925,927,929,930,933,934,935,937,939,941]}},{"Named":{"name":"standard_addendum","atom":942}},{"Alternative":{"atoms":[701,734,767,796,819,843,875,911,943]}},{"Entity":{"atom":1234}},{"Entity":{"atom":314}},{"Named":{"name":"publisher","atom":946}},{"Entity":{"atom":23}},{"Str":{"pattern":"Addenda"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Entity":{"atom":42}},{"Entity":{"atom":23}},{"Str":{"pattern":"and"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[952,953,954,955,956]}},{"Entity":{"atom":23}},{"Str":{"pattern":"and"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[958,959,960,961]}},{"Entity":{"atom":42}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[963,964,965]}},{"Repetition":{"atom":966,"min":1,"max":50,"tag":"Repetition"}},{"Entity":{"atom":42}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[968,969]}},{"Repetition":{"atom":970,"min":1,"max":50,"tag":"Repetition"}},{"Alternative":{"atoms":[957,962,967,971]}},{"Repetition":{"atom":972,"min":0,"max":20,"tag":"Repetition"}},{"Named":{"name":"additional_codes","atom":973}},{"Entity":{"atom":23}},{"Str":{"pattern":"to"}},{"Str":{"pattern":"for"}},{"Alternative":{"atoms":[976,977]}},{"Entity":{"atom":23}},{"Entity":{"atom":392}},{"Repetition":{"atom":980,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":982}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":987}},{"Sequence":{"atoms":[986,988]}},{"Repetition":{"atom":989,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Entity":{"atom":104}},{"Sequence":{"atoms":[991,992]}},{"Repetition":{"atom":993,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":694}},{"Repetition":{"atom":995,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":997,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[947,948,949,950,951,974,975,978,979,981,983,984,985,990,994,996,998]}},{"Named":{"name":"combined_addenda","atom":999}},{"Entity":{"atom":314}},{"Named":{"name":"publisher","atom":1001}},{"Entity":{"atom":23}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":1004}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":1009}},{"Sequence":{"atoms":[1008,1010]}},{"Str":{"pattern":":"}},{"Entity":{"atom":23}},{"Sequence":{"atoms":[1012,1013]}},{"Entity":{"atom":23}},{"Alternative":{"atoms":[1014,1015]}},{"Str":{"pattern":"Addenda"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Entity":{"atom":42}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[1020,1021,1022]}},{"Repetition":{"atom":1023,"min":1,"max":50,"tag":"Repetition"}},{"Entity":{"atom":42}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[1025,1026]}},{"Repetition":{"atom":1027,"min":1,"max":50,"tag":"Repetition"}},{"Alternative":{"atoms":[1024,1028]}},{"Named":{"name":"additional_codes","atom":1029}},{"Repetition":{"atom":1030,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":1032,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[1002,1003,1005,1006,1007,1011,1016,1017,1018,1019,1031,1033]}},{"Named":{"name":"combined_addenda","atom":1034}},{"Str":{"pattern":"Addenda"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Entity":{"atom":42}},{"Entity":{"atom":23}},{"Str":{"pattern":"and"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[1039,1040,1041,1042,1043]}},{"Entity":{"atom":23}},{"Str":{"pattern":"and"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[1045,1046,1047,1048]}},{"Entity":{"atom":42}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[1050,1051,1052]}},{"Repetition":{"atom":1053,"min":1,"max":20,"tag":"Repetition"}},{"Entity":{"atom":42}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[1055,1056]}},{"Repetition":{"atom":1057,"min":1,"max":20,"tag":"Repetition"}},{"Alternative":{"atoms":[1044,1049,1054,1058]}},{"Repetition":{"atom":1059,"min":0,"max":20,"tag":"Repetition"}},{"Named":{"name":"additional_codes","atom":1060}},{"Entity":{"atom":23}},{"Str":{"pattern":"to"}},{"Str":{"pattern":"for"}},{"Alternative":{"atoms":[1063,1064]}},{"Entity":{"atom":23}},{"Entity":{"atom":392}},{"Repetition":{"atom":1067,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":1069}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":1074}},{"Sequence":{"atoms":[1073,1075]}},{"Repetition":{"atom":1076,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":1078,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[1036,1037,1038,1061,1062,1065,1066,1068,1070,1071,1072,1077,1079]}},{"Named":{"name":"combined_addenda","atom":1080}},{"Entity":{"atom":314}},{"Named":{"name":"publisher","atom":1082}},{"Entity":{"atom":23}},{"Str":{"pattern":"Addenda"}},{"Entity":{"atom":23}},{"Str":{"pattern":"to"}},{"Str":{"pattern":"for"}},{"Alternative":{"atoms":[1087,1088]}},{"Entity":{"atom":23}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":1091}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":1096}},{"Sequence":{"atoms":[1095,1097]}},{"Repetition":{"atom":1098,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":1100,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[1083,1084,1085,1086,1089,1090,1092,1093,1094,1099,1101]}},{"Named":{"name":"combined_addenda","atom":1102}},{"Entity":{"atom":314}},{"Named":{"name":"publisher","atom":1104}},{"Entity":{"atom":23}},{"Str":{"pattern":"Addenda"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Entity":{"atom":42}},{"Entity":{"atom":23}},{"Str":{"pattern":"and"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[1110,1111,1112,1113,1114]}},{"Entity":{"atom":23}},{"Str":{"pattern":"and"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[1116,1117,1118,1119]}},{"Entity":{"atom":42}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[1121,1122,1123]}},{"Repetition":{"atom":1124,"min":1,"max":20,"tag":"Repetition"}},{"Entity":{"atom":42}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[1126,1127]}},{"Repetition":{"atom":1128,"min":1,"max":20,"tag":"Repetition"}},{"Alternative":{"atoms":[1115,1120,1125,1129]}},{"Repetition":{"atom":1130,"min":0,"max":20,"tag":"Repetition"}},{"Named":{"name":"additional_codes","atom":1131}},{"Entity":{"atom":23}},{"Str":{"pattern":"to"}},{"Str":{"pattern":"for"}},{"Alternative":{"atoms":[1134,1135]}},{"Entity":{"atom":23}},{"Entity":{"atom":293}},{"Entity":{"atom":264}},{"Repetition":{"atom":1139,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[1105,1106,1107,1108,1109,1132,1133,1136,1137,1138,1140]}},{"Named":{"name":"combined_addenda","atom":1141}},{"Str":{"pattern":"Addenda"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Entity":{"atom":42}},{"Entity":{"atom":23}},{"Str":{"pattern":"and"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[1146,1147,1148,1149,1150]}},{"Entity":{"atom":23}},{"Str":{"pattern":"and"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[1152,1153,1154,1155]}},{"Entity":{"atom":42}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[1157,1158,1159]}},{"Repetition":{"atom":1160,"min":1,"max":20,"tag":"Repetition"}},{"Entity":{"atom":42}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[1162,1163]}},{"Repetition":{"atom":1164,"min":1,"max":20,"tag":"Repetition"}},{"Alternative":{"atoms":[1151,1156,1161,1165]}},{"Repetition":{"atom":1166,"min":0,"max":20,"tag":"Repetition"}},{"Named":{"name":"additional_codes","atom":1167}},{"Entity":{"atom":23}},{"Str":{"pattern":"to"}},{"Str":{"pattern":"for"}},{"Alternative":{"atoms":[1170,1171]}},{"Entity":{"atom":23}},{"Entity":{"atom":293}},{"Entity":{"atom":264}},{"Repetition":{"atom":1175,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[1143,1144,1145,1168,1169,1172,1173,1174,1176]}},{"Named":{"name":"combined_addenda","atom":1177}},{"Entity":{"atom":314}},{"Named":{"name":"publisher","atom":1179}},{"Entity":{"atom":23}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":1182}},{"Entity":{"atom":23}},{"Entity":{"atom":49}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":1187}},{"Sequence":{"atoms":[1186,1188]}},{"Repetition":{"atom":1189,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":":"}},{"Entity":{"atom":23}},{"Sequence":{"atoms":[1191,1192]}},{"Entity":{"atom":23}},{"Alternative":{"atoms":[1193,1194]}},{"Str":{"pattern":"Addenda"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Entity":{"atom":23}},{"Str":{"pattern":"through"}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[1199,1200,1201,1202]}},{"Entity":{"atom":23}},{"Entity":{"atom":42}},{"Entity":{"atom":23}},{"Sequence":{"atoms":[1205,1206]}},{"Alternative":{"atoms":[1204,1207]}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[1208,1209]}},{"Repetition":{"atom":1210,"min":1,"max":200,"tag":"Repetition"}},{"Entity":{"atom":42}},{"Entity":{"atom":23}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[1212,1213,1214]}},{"Repetition":{"atom":1215,"min":1,"max":200,"tag":"Repetition"}},{"Entity":{"atom":42}},{"Entity":{"atom":414}},{"Sequence":{"atoms":[1217,1218]}},{"Repetition":{"atom":1219,"min":1,"max":200,"tag":"Repetition"}},{"Alternative":{"atoms":[1203,1211,1216,1220]}},{"Named":{"name":"additional_codes","atom":1221}},{"Repetition":{"atom":1222,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Entity":{"atom":104}},{"Sequence":{"atoms":[1224,1225]}},{"Repetition":{"atom":1226,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":694}},{"Repetition":{"atom":1228,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":1230,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[1180,1181,1183,1184,1185,1190,1195,1196,1197,1198,1223,1227,1229,1231]}},{"Named":{"name":"combined_addenda","atom":1232}},{"Alternative":{"atoms":[1000,1035,1081,1103,1142,1178,1233]}},{"Str":{"pattern":"ANSI"}},{"Entity":{"atom":9}},{"Sequence":{"atoms":[1235,1236]}},{"Repetition":{"atom":1237,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"ASHRAE"}},{"Lookahead":{"atom":1239,"positive":false}},{"Entity":{"atom":15}},{"Sequence":{"atoms":[1240,1241]}},{"Repetition":{"atom":1242,"min":2,"max":10,"tag":"Repetition"}},{"Sequence":{"atoms":[1238,1243]}},{"Named":{"name":"copublisher","atom":1244}},{"Entity":{"atom":23}},{"Entity":{"atom":293}},{"Entity":{"atom":264}},{"Repetition":{"atom":1248,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[1245,1246,1247,1249]}},{"Entity":{"atom":21}},{"Entity":{"atom":23}},{"Entity":{"atom":293}},{"Entity":{"atom":23}},{"Entity":{"atom":104}},{"Sequence":{"atoms":[1254,1255]}},{"Repetition":{"atom":1256,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":111}},{"Repetition":{"atom":1258,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":149}},{"Repetition":{"atom":1260,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":1262,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[1251,1252,1253,1257,1259,1261,1263]}},{"Entity":{"atom":21}},{"Entity":{"atom":23}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":1267}},{"Repetition":{"atom":1268,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Repetition":{"atom":1270,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":49}},{"Entity":{"atom":23}},{"Repetition":{"atom":1273,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":1276}},{"Sequence":{"atoms":[1274,1275,1277]}},{"Repetition":{"atom":1278,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Entity":{"atom":104}},{"Sequence":{"atoms":[1280,1281]}},{"Repetition":{"atom":1282,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":111}},{"Repetition":{"atom":1284,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":149}},{"Repetition":{"atom":1286,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":1288,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[1265,1266,1269,1271,1272,1279,1283,1285,1287,1289]}},{"Entity":{"atom":314}},{"Named":{"name":"publisher","atom":1291}},{"Entity":{"atom":23}},{"Entity":{"atom":27}},{"Named":{"name":"type","atom":1294}},{"Entity":{"atom":23}},{"Sequence":{"atoms":[1295,1296]}},{"Repetition":{"atom":1297,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":49}},{"Entity":{"atom":23}},{"Repetition":{"atom":1300,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":4}},{"Entity":{"atom":59}},{"Named":{"name":"year","atom":1303}},{"Sequence":{"atoms":[1301,1302,1304]}},{"Repetition":{"atom":1305,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Entity":{"atom":104}},{"Sequence":{"atoms":[1307,1308]}},{"Repetition":{"atom":1309,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":111}},{"Repetition":{"atom":1311,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":149}},{"Repetition":{"atom":1313,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":1315,"min":0,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[1292,1293,1298,1299,1306,1310,1312,1314,1316]}},{"Named":{"name":"base","atom":1317}},{"Alternative":{"atoms":[0,348,366,529,656,945,1250,1264,1290,1318]}}],"root":1319},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule reaffirmation_year: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule reaffirmed: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule reaffirmed: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule reaffirmed: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule reaffirmed: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule reaffirmed: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule reaffirmed: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_name: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_name: branches 1 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_name: branches 3 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_name: branches 4 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule month_name: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule errata_date: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule errata_date: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule errata_date: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule errata_date_and_suffix: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule errata_date_and_suffix: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule errata_date_and_suffix: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule errata_date_and_suffix: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule errata_date_and_suffix: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule errata_date_and_suffix: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule errata_paren_date: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule errata_paren_date: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule errata_paren_date: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule errata_identifier: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule errata_identifier: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule errata_identifier: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 1 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 2 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 2 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 2 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 3 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 3 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 3 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 4 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 5 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule combined_addenda_identifier: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule addenda_package_identifier: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule addenda_package_identifier: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule addenda_package_identifier: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 1 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 1 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 1 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 2 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 2 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 2 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 2 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 2 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 3 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 3 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 3 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 3 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 3 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 4 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 4 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 4 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 5 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 5 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 5 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 6 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 6 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 7 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule addendum_identifier: branches 8 and 9 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 (first set not statically known)","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 2 and 7 are order-dependent (first set not statically known)","rule identifier: branches 3 and 7 are order-dependent (first set not statically known)","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 (first set not statically known)","rule identifier: branches 4 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 7 are order-dependent (first set not statically known)","rule identifier: branches 5 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 7 are order-dependent (first set not statically known)","rule identifier: branches 6 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 8 are order-dependent (first set not statically known)","rule identifier: branches 7 and 9 are order-dependent (first set not statically known)","rule identifier: branches 7 and 10 are order-dependent (first set not statically known)","rule identifier: branches 8 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 10 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"ASHRAE 62.1","expect":{}},{"entry":"identifier","kind":"accept","input":"ASHRAE Standard 55-2020","expect":{}},{"entry":"identifier","kind":"accept","input":"ANSI/ASHRAE Standard 135-2020","expect":{}},{"entry":"identifier","kind":"accept","input":"ASHRAE 55-2020 (RA 2019)","expect":{}},{"entry":"identifier","kind":"accept","input":"ASHRAE Addendum a to Standard 135-2020","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/ashrae/parser.rb — ASHRAE identifiers: standards\n# (Guideline/Standard, dotted codes, comma-letter codes), ANSI/ASHRAE\n# copublications, reaffirmations, errata (month/numeric dates plus\n# suffixes), Interpretations, combined Addenda listings, Addendum and\n# Addenda Supplement/Package forms. The gem's parse() normalization\n# (whitespace collapsing, RA spacing, \", and\" folding, paren balancing)\n# is Tier-3 preprocessing outside the grammar. Source deviations:\n# `str(\"\")` alternatives expressed as bracketed optionals; `space?`\n# inlined as [space].\n\ngrammar PubidAshrae version \"0.1.0\" {\n digit = %x30-39\n letter = %x41-5A / %x61-7A\n digits = 1*digit\n space = \" \"\n dash = \"-\"\n dot = \".\"\n slash = \"/\"\n lparen = \"(\"\n rparen = \")\"\n comma = \",\"\n colon = \":\"\n\n year_digits = ((\"19\" / \"20\") 2digit)\n reaffirmation_year = (year_digits / 2digit)\n publisher = \"ASHRAE\"\n type = \"Guideline\" / \"Standard\"\n code = ((digits 0*2(dot digits) [(letter 0*10(comma letter))])) as code\n code_with_year = ((((digits 0*2(dot digits) [(letter 0*10(comma letter))])) as code [[space] dash (year_digits) as year])) as code_with_year\n suffix = (\"R\" / \"P\") as suffix\n additional_copublisher = ((slash ((4*10letter space [(digits [dash digits])])) as additional_copublisher)) / ((lparen (((\"ANSI\" slash (2*10letter 0*2(slash 2*10letter)))) as additional_copublisher) space [(digits [dash digits])] rparen))\n optional_suffix = [space] lparen (\"PDF\" / ((1*20letter 0*500(space / digit / comma / dash / dot / letter / \"–\")))) rparen\n reaffirmed = (([space] lparen \"RA\" [space] (reaffirmation_year) as reaffirmed rparen)) / (([space] lparen \"RA\" dash (reaffirmation_year) as reaffirmed rparen)) / ((space \"RA\" space (reaffirmation_year) as reaffirmed)) / ((space \"RA\" dash (reaffirmation_year) as reaffirmed))\n addendum_code = (([digits] 1*3letter)) as addendum_code\n month_name = \"January\" / \"February\" / \"March\" / \"April\" / \"May\" / \"June\" / \"July\" / \"August\" / \"September\" / \"October\" / \"November\" / \"December\"\n\n errata_date = (([space] lparen (month_name) as month space (1*2digit) as day [comma] (space / [comma]) (year_digits) as errata_year rparen) as errata_date) / (([space] lparen (month_name) as month space (1*2digit) as day rparen) as errata_date) / (([space] lparen ((1*2digit dash 1*2digit dash [space] year_digits) as numeric_date) rparen) as errata_date)\n errata_suffix = 0*3(space (\"-\" / \"–\") space (letter 0*50(space / letter / digit / comma)))\n errata_date_and_suffix = (errata_suffix errata_date) / (errata_date errata_suffix) / errata_date / errata_suffix\n errata_paren_date = ([space] lparen month_name space 1*2digit [comma] (space / [comma]) year_digits rparen) / ([space] lparen month_name space 1*2digit rparen) / ([space] lparen 1*2digit dash 1*2digit dash [space] year_digits rparen)\n errata_suffix_on_addendum = space \"Errata\" as errata_keyword [errata_paren_date]\n\n ansi_copub = ((\"ANSI\" dash \"ASHRAE\") / (\"ANSI\" slash \"ASHRAE\" 0*10(slash 3*10letter))) as copublisher\n ansi_copub_space = (((\"ANSI\" slash \"ASHRAE\" 0*10(slash 3*10letter))) as copublisher space)\n\n errata_identifier = ((((ansi_copub space (type) as type space code [([space] dash (year_digits) as year)] [(space additional_copublisher)] [suffix] [reaffirmed])) as base) space \"Errata\" as errata_keyword [errata_date_and_suffix] ((0*2 optional_suffix) as optional_suffixes)) / ((((ansi_copub space code_with_year [(space additional_copublisher)] [suffix] [reaffirmed])) as base) space \"Errata\" as errata_keyword [errata_date_and_suffix] ((0*2 optional_suffix) as optional_suffixes)) / ((((publisher) as publisher space (type) as type space code [([space] dash (year_digits) as year)] [(space additional_copublisher)] [suffix] [reaffirmed])) as base) space \"Errata\" as errata_keyword [errata_date_and_suffix] ((0*2 optional_suffix) as optional_suffixes)\n\n interpretation_identifier = (((\"Interpretations\" space \"for\" space (((type) as type space code [(dash (year_digits) as year)])) as base)) as interpretation_identifier)\n\n combined_addenda_identifier = (((publisher) as publisher space \"Addenda\" space addendum_code ((0*20((comma space \"and\" space addendum_code) / (space \"and\" space addendum_code) / 1*50(comma space addendum_code) / 1*50(comma addendum_code))) as additional_codes) space (\"to\" / \"for\") space [ansi_copub_space] (type) as type space code [(dash (year_digits) as year)] [(space additional_copublisher)] [addendum_date_suffix] 0*2optional_suffix) as combined_addenda) / (((publisher) as publisher space (type) as type space code (dash (year_digits) as year) ((\":\" space) / space) \"Addenda\" space addendum_code [((1*50(comma space addendum_code) / 1*50(comma addendum_code))) as additional_codes] 0*2optional_suffix) as combined_addenda) / ((\"Addenda\" space addendum_code ((0*20((comma space \"and\" space addendum_code) / (space \"and\" space addendum_code) / 1*20(comma space addendum_code) / 1*20(comma addendum_code))) as additional_codes) space (\"to\" / \"for\") space [ansi_copub_space] (type) as type space code [(dash (year_digits) as year)] 0*2optional_suffix) as combined_addenda) / (((publisher) as publisher space \"Addenda\" space (\"to\" / \"for\") space (type) as type space code [(dash (year_digits) as year)] 0*2optional_suffix) as combined_addenda) / (((publisher) as publisher space \"Addenda\" space addendum_code ((0*20((comma space \"and\" space addendum_code) / (space \"and\" space addendum_code) / 1*20(comma space addendum_code) / 1*20(comma addendum_code))) as additional_codes) space (\"to\" / \"for\") space code_with_year 0*2optional_suffix) as combined_addenda) / ((\"Addenda\" space addendum_code ((0*20((comma space \"and\" space addendum_code) / (space \"and\" space addendum_code) / 1*20(comma space addendum_code) / 1*20(comma addendum_code))) as additional_codes) space (\"to\" / \"for\") space code_with_year 0*2optional_suffix) as combined_addenda) / (((publisher) as publisher space (type) as type space code [(dash (year_digits) as year)] ((\":\" space) / space) \"Addenda\" space addendum_code [((space \"through\" space addendum_code) / 1*200((space / (comma space)) addendum_code) / 1*200(comma space addendum_code) / 1*200(comma addendum_code)) as additional_codes] [(space additional_copublisher)] [addendum_date_suffix] 0*2optional_suffix) as combined_addenda)\n\n year_first_addenda_package_identifier = ((((year_digits) as package_year space ((\"Addenda\" space \"Supplement\" [(space \"Package\")] space \"to\" space [ansi_copub_space] (type) as type space code [(dash (year_digits) as year)]) / (\"Supplement\" space \"Addenda\" space addendum_code [((1*50(comma space addendum_code) / 1*50(comma addendum_code)) as additional_codes)] space \"to\" space [ansi_copub_space] (type) as type space code [(dash (year_digits) as year)]) / (\"Addenda\" space \"Supplement\" space \"to\" space [ansi_copub_space] (type) as type space code [(dash (year_digits) as year)]) / (\"Supplement\" space \"to\" space [ansi_copub_space] (type) as type space code [(dash (year_digits) as year)] [errata_suffix_on_addendum])) 0*2optional_suffix)) as addenda_package)\n\n addenda_package_identifier = ((ansi_copub_space (type) as type space code [(dash (year_digits) as year)] ((\":\" space) / space) \"Addenda\" space (((\"Supplement\" [(space \"Package\")]) / \"Package\") as package_description) [(space \"for\" space (year_digits) as target_year)] 0*3optional_suffix) as addenda_package) / (((publisher) as publisher space (type) as type space code [(dash (year_digits) as year)] comma space \"Addenda\" space (year_digits) as package_year space \"Supplement\" colon space \"Addenda\" space (((\"Supplement\" [(space \"Package\")]) / \"Package\") as package_description) 0*3optional_suffix) as addenda_package) / (((publisher) as publisher space (type) as type space code [(dash (year_digits) as year)] [(space (year_digits) as package_year)] [additional_copublisher] [suffix] [reaffirmed] ((\":\" space) / space) \"Addenda\" space (((\"Supplement\" [(space \"Package\")]) / \"Package\") as package_description) [(space \"for\" space (year_digits) as target_year)] 0*3optional_suffix) as addenda_package)\n\n addendum_date_suffix = space lparen month_name space 1*2digit [comma] (space / [comma]) year_digits rparen\n\n addendum_identifier = ((((publisher) as publisher space \"Addendum\" space addendum_code space (\"to\" / \"for\") space (type) as type space code [(dash (year_digits) as year)] [additional_copublisher] [addendum_date_suffix] [errata_suffix_on_addendum] 0*2optional_suffix)) as publisher_addendum) / ((((publisher) as publisher space \"Addendum\" space addendum_code space (\"to\" / \"for\") space (publisher) as base_publisher space (type) as type space code [(dash (year_digits) as year)] [additional_copublisher] [addendum_date_suffix] [errata_suffix_on_addendum] 0*2optional_suffix)) as publisher_base_addendum) / ((([[ansi_copub_space]] \"Addendum\" space addendum_code space (\"to\" / \"for\") space (publisher) as base_publisher space (type) as type space code [(dash (year_digits) as year)] [additional_copublisher] [addendum_date_suffix] [errata_suffix_on_addendum] 0*2optional_suffix)) as publisher_base_addendum) / ((((publisher) as publisher space \"Addendum\" space addendum_code space (\"to\" / \"for\") space (ansi_copub_space) (type) as type space code [(dash (year_digits) as year)] [addendum_date_suffix] [errata_suffix_on_addendum] 0*2optional_suffix)) as publisher_addendum_copublisher) / ((((publisher) as publisher space \"Addendum\" space addendum_code space (\"to\" / \"for\") space (ansi_copub_space) code_with_year [additional_copublisher] [addendum_date_suffix] [errata_suffix_on_addendum] 0*2optional_suffix)) as publisher_addendum_copublisher_no_type) / ((([[ansi_copub_space]] \"Addendum\" space addendum_code space (\"to\" / \"for\") space [ansi_copub_space] code_with_year [additional_copublisher] [addendum_date_suffix] [errata_suffix_on_addendum] 0*2optional_suffix)) as addendum_no_type) / ((([[ansi_copub_space]] \"Addendum\" space addendum_code space (\"to\" / \"for\") space [ansi_copub_space] (type) as type space code [(dash (year_digits) as year)] [additional_copublisher] [addendum_date_suffix] [errata_suffix_on_addendum] 0*2optional_suffix)) as addendum) / ((((publisher) as publisher space (type) as type space code [(dash (year_digits) as year)] [additional_copublisher] [suffix] [reaffirmed] ((\":\" space) / space) (\"Addendum\" / \"addendum\") space addendum_code [addendum_date_suffix] [errata_suffix_on_addendum] 0*2optional_suffix)) as standard_addendum) / ((((publisher) as publisher space (type) as type space code [(dash (year_digits) as year)] [additional_copublisher] [suffix] [reaffirmed] space (\"Addendum\" / \"addendum\") space addendum_code [addendum_date_suffix] [errata_suffix_on_addendum] 0*2optional_suffix)) as standard_addendum)\n\n identifier = errata_identifier / interpretation_identifier / year_first_addenda_package_identifier / addenda_package_identifier / addendum_identifier / combined_addenda_identifier / ((([(\"ANSI\" slash)] 2*10(!(\"ASHRAE\") letter)) as copublisher) space code_with_year 0*2optional_suffix) / ((ansi_copub) space code_with_year [(space additional_copublisher)] [suffix] [reaffirmed] 0*2optional_suffix) / ((ansi_copub) space [(type) as type] [space] code [([space] dash (year_digits) as year)] [(space additional_copublisher)] [suffix] [reaffirmed] 0*2optional_suffix) / (((publisher) as publisher space [((type) as type space)] code [([space] dash (year_digits) as year)] [(space additional_copublisher)] [suffix] [reaffirmed] 0*2optional_suffix)) as base\n\n entry identifier: identifier\n\n test {\n accept \"ASHRAE 62.1\"\n accept \"ASHRAE Standard 55-2020\"\n accept \"ANSI/ASHRAE Standard 135-2020\"\n accept \"ASHRAE 55-2020 (RA 2019)\"\n accept \"ASHRAE Addendum a to Standard 135-2020\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:eac741030fce94b8cab29ad8f0fb28e50655ee29a7b2b01d6ae09ddc1fc496ce"}
@@ -0,0 +1 @@
1
+ {"version":"0.1.0","grammar":"PubidAsme","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":263}},{"Str":{"pattern":"CSA"}},{"Named":{"name":"first_publisher","atom":1}},{"Entity":{"atom":4}},{"Str":{"pattern":" "}},{"Entity":{"atom":9}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[.]"}},{"Alternative":{"atoms":[6,7,8]}},{"Repetition":{"atom":5,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"first_code","atom":10}},{"Entity":{"atom":4}},{"Repetition":{"atom":12,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":15}},{"Str":{"pattern":"/"}},{"Str":{"pattern":"ASME"}},{"Named":{"name":"second_publisher","atom":16}},{"Entity":{"atom":4}},{"Entity":{"atom":176}},{"Entity":{"atom":131}},{"Str":{"pattern":"BPVC"}},{"Entity":{"atom":4}},{"Str":{"pattern":"COMPLETE CODE BIND"}},{"Sequence":{"atoms":[22,23]}},{"Named":{"name":"special","atom":24}},{"Entity":{"atom":30}},{"Str":{"pattern":"-"}},{"Str":{"pattern":"–"}},{"Str":{"pattern":"—"}},{"Alternative":{"atoms":[27,28,29]}},{"Str":{"pattern":"CC"}},{"Entity":{"atom":30}},{"Entity":{"atom":48}},{"Str":{"pattern":"NCA"}},{"Str":{"pattern":"NCD"}},{"Str":{"pattern":"SSC"}},{"Str":{"pattern":"BPV"}},{"Str":{"pattern":"NUC"}},{"Str":{"pattern":"NB"}},{"Str":{"pattern":"NC"}},{"Str":{"pattern":"ND"}},{"Str":{"pattern":"NE"}},{"Str":{"pattern":"NF"}},{"Str":{"pattern":"NG"}},{"Entity":{"atom":46}},{"Entity":{"atom":47}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Alternative":{"atoms":[34,35,36,37,38,39,40,41,42,43,44,45]}},{"Named":{"name":"case_code","atom":33}},{"Sequence":{"atoms":[26,31,32,49]}},{"Entity":{"atom":52}},{"Str":{"pattern":"."}},{"Entity":{"atom":83}},{"Str":{"pattern":"SSC"}},{"Entity":{"atom":52}},{"Entity":{"atom":77}},{"Entity":{"atom":71}},{"Str":{"pattern":"XIII"}},{"Str":{"pattern":"XII"}},{"Str":{"pattern":"XI"}},{"Str":{"pattern":"VIII"}},{"Str":{"pattern":"VII"}},{"Str":{"pattern":"VI"}},{"Str":{"pattern":"IV"}},{"Str":{"pattern":"IX"}},{"Str":{"pattern":"X"}},{"Str":{"pattern":"III"}},{"Str":{"pattern":"II"}},{"Str":{"pattern":"V"}},{"Str":{"pattern":"I"}},{"Alternative":{"atoms":[58,59,60,61,62,63,64,65,66,67,68,69,70]}},{"Entity":{"atom":52}},{"Entity":{"atom":71}},{"Sequence":{"atoms":[72,73]}},{"Repetition":{"atom":74,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[57,75]}},{"Named":{"name":"ssc_sections","atom":76}},{"Sequence":{"atoms":[55,56]}},{"Repetition":{"atom":78,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":52}},{"Repetition":{"atom":80,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[54,79,81]}},{"Named":{"name":"ssc_code","atom":82}},{"Entity":{"atom":98}},{"Str":{"pattern":"CC"}},{"Entity":{"atom":52}},{"Entity":{"atom":48}},{"Named":{"name":"case_code","atom":87}},{"Str":{"pattern":"."}},{"Entity":{"atom":52}},{"Repetition":{"atom":90,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":71}},{"Entity":{"atom":48}},{"Alternative":{"atoms":[92,93]}},{"Named":{"name":"case_sub","atom":94}},{"Sequence":{"atoms":[89,91,95]}},{"Repetition":{"atom":96,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[85,86,88,97]}},{"Entity":{"atom":125}},{"Entity":{"atom":71}},{"Named":{"name":"section","atom":100}},{"Str":{"pattern":"."}},{"Entity":{"atom":106}},{"Entity":{"atom":105}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":104,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":48}},{"Alternative":{"atoms":[103,107]}},{"Named":{"name":"subsection","atom":108}},{"Sequence":{"atoms":[102,109]}},{"Repetition":{"atom":110,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"."}},{"Entity":{"atom":48}},{"Named":{"name":"sub_subsection","atom":113}},{"Sequence":{"atoms":[112,114]}},{"Repetition":{"atom":115,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":118}},{"Str":{"pattern":"_"}},{"Entity":{"atom":121}},{"Entity":{"atom":46}},{"Repetition":{"atom":120,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"lang_suffix","atom":119}},{"Sequence":{"atoms":[117,122]}},{"Repetition":{"atom":123,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[101,111,116,124]}},{"Alternative":{"atoms":[53,84,99]}},{"Named":{"name":"subdivision","atom":126}},{"Sequence":{"atoms":[51,127]}},{"Alternative":{"atoms":[25,50,128]}},{"Named":{"name":"bpvc_code","atom":129}},{"Sequence":{"atoms":[21,130]}},{"Entity":{"atom":169}},{"Str":{"pattern":"PVHO"}},{"Str":{"pattern":"PASE"}},{"Str":{"pattern":"PTC"}},{"Str":{"pattern":"PTB"}},{"Str":{"pattern":"PDS"}},{"Str":{"pattern":"PCC"}},{"Str":{"pattern":"V&V"}},{"Str":{"pattern":"V V"}},{"Str":{"pattern":"VVUQ"}},{"Str":{"pattern":"TDP"}},{"Str":{"pattern":"RTP"}},{"Str":{"pattern":"RT"}},{"Str":{"pattern":"RA-S"}},{"Str":{"pattern":"RA"}},{"Str":{"pattern":"QME"}},{"Str":{"pattern":"QAI"}},{"Str":{"pattern":"QEI"}},{"Str":{"pattern":"NUM"}},{"Str":{"pattern":"NQA"}},{"Str":{"pattern":"NML"}},{"Str":{"pattern":"OM"}},{"Str":{"pattern":"HST"}},{"Str":{"pattern":"HRT"}},{"Str":{"pattern":"FFS"}},{"Str":{"pattern":"TES"}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"STS"}},{"Str":{"pattern":"CSD"}},{"Str":{"pattern":"CA"}},{"Str":{"pattern":"BTH"}},{"Str":{"pattern":"BPE"}},{"Str":{"pattern":"ANDE"}},{"Str":{"pattern":"AED"}},{"Str":{"pattern":"AG"}},{"Str":{"pattern":"NM"}},{"Str":{"pattern":"EA"}},{"Alternative":{"atoms":[133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168]}},{"Str":{"pattern":"ISO"}},{"Str":{"pattern":"CSA"}},{"Str":{"pattern":"API"}},{"Str":{"pattern":"ANS"}},{"Entity":{"atom":121}},{"Alternative":{"atoms":[20,132,170,171,172,173,174]}},{"Named":{"name":"designator","atom":175}},{"Entity":{"atom":228}},{"Entity":{"atom":52}},{"Entity":{"atom":182}},{"Entity":{"atom":105}},{"Entity":{"atom":47}},{"Alternative":{"atoms":[180,181]}},{"Repetition":{"atom":179,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":52}},{"Entity":{"atom":182}},{"Repetition":{"atom":185,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[184,186]}},{"Repetition":{"atom":187,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[178,183,188]}},{"Entity":{"atom":207}},{"Entity":{"atom":30}},{"Str":{"pattern":"20XX"}},{"Str":{"pattern":"202X"}},{"Str":{"pattern":"20"}},{"Entity":{"atom":105}},{"Str":{"pattern":"X"}},{"Sequence":{"atoms":[194,195,196]}},{"Entity":{"atom":105}},{"Repetition":{"atom":198,"min":4,"max":4,"tag":"Repetition"}},{"Alternative":{"atoms":[192,193,197,199]}},{"Entity":{"atom":205}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[.]"}},{"Alternative":{"atoms":[202,203,204]}},{"Lookahead":{"atom":201,"positive":false}},{"Sequence":{"atoms":[191,200,206]}},{"Lookahead":{"atom":190,"positive":false}},{"Entity":{"atom":30}},{"Entity":{"atom":182}},{"Repetition":{"atom":210,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":52}},{"Entity":{"atom":182}},{"Repetition":{"atom":213,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[212,214]}},{"Repetition":{"atom":215,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[208,209,211,216]}},{"Entity":{"atom":182}},{"Repetition":{"atom":218,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":52}},{"Entity":{"atom":182}},{"Repetition":{"atom":221,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[220,222]}},{"Repetition":{"atom":223,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[219,224]}},{"Alternative":{"atoms":[217,225]}},{"Alternative":{"atoms":[189,226]}},{"Named":{"name":"number","atom":227}},{"Repetition":{"atom":177,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":30}},{"Entity":{"atom":239}},{"Str":{"pattern":"20XX"}},{"Str":{"pattern":"202X"}},{"Str":{"pattern":"20"}},{"Entity":{"atom":105}},{"Str":{"pattern":"X"}},{"Sequence":{"atoms":[234,235,236]}},{"Alternative":{"atoms":[232,233,237]}},{"Named":{"name":"draft_year","atom":238}},{"Entity":{"atom":243}},{"Entity":{"atom":105}},{"Repetition":{"atom":241,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":242}},{"Alternative":{"atoms":[231,240]}},{"Sequence":{"atoms":[230,244]}},{"Repetition":{"atom":245,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":253}},{"Entity":{"atom":4}},{"Str":{"pattern":"("}},{"Entity":{"atom":121}},{"Named":{"name":"language","atom":250}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[248,249,251,252]}},{"Repetition":{"atom":247,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":261}},{"Entity":{"atom":4}},{"Str":{"pattern":"(R"}},{"Entity":{"atom":243}},{"Named":{"name":"reaffirmation","atom":258}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[256,257,259,260]}},{"Repetition":{"atom":255,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[2,3,11,13,14,17,18,19,229,246,254,262]}},{"Entity":{"atom":293}},{"Str":{"pattern":"API"}},{"Named":{"name":"first_publisher","atom":265}},{"Entity":{"atom":4}},{"Entity":{"atom":271}},{"Entity":{"atom":105}},{"Str":{"pattern":"-"}},{"Alternative":{"atoms":[269,270]}},{"Repetition":{"atom":268,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"first_code","atom":272}},{"Entity":{"atom":4}},{"Repetition":{"atom":274,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":15}},{"Str":{"pattern":"ASME"}},{"Named":{"name":"second_publisher","atom":277}},{"Entity":{"atom":4}},{"Entity":{"atom":176}},{"Entity":{"atom":228}},{"Repetition":{"atom":281,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":30}},{"Entity":{"atom":239}},{"Entity":{"atom":243}},{"Alternative":{"atoms":[284,285]}},{"Sequence":{"atoms":[283,286]}},{"Repetition":{"atom":287,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":253}},{"Repetition":{"atom":289,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":261}},{"Repetition":{"atom":291,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[266,267,273,275,276,278,279,280,282,288,290,292]}},{"Entity":{"atom":313}},{"Entity":{"atom":300}},{"Str":{"pattern":"ISO/ASME"}},{"Named":{"name":"joint_publisher","atom":296}},{"Entity":{"atom":4}},{"Repetition":{"atom":298,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[297,299]}},{"Entity":{"atom":228}},{"Repetition":{"atom":301,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":30}},{"Entity":{"atom":239}},{"Entity":{"atom":243}},{"Alternative":{"atoms":[304,305]}},{"Sequence":{"atoms":[303,306]}},{"Repetition":{"atom":307,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":253}},{"Repetition":{"atom":309,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":261}},{"Repetition":{"atom":311,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[295,302,308,310,312]}},{"Entity":{"atom":333}},{"Entity":{"atom":319}},{"Str":{"pattern":"ASME/ANS"}},{"Named":{"name":"joint_publisher","atom":316}},{"Entity":{"atom":4}},{"Sequence":{"atoms":[317,318]}},{"Entity":{"atom":176}},{"Entity":{"atom":228}},{"Repetition":{"atom":321,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":30}},{"Entity":{"atom":239}},{"Entity":{"atom":243}},{"Alternative":{"atoms":[324,325]}},{"Sequence":{"atoms":[323,326]}},{"Repetition":{"atom":327,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":253}},{"Repetition":{"atom":329,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":261}},{"Repetition":{"atom":331,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[315,320,322,328,330,332]}},{"Entity":{"atom":476}},{"Entity":{"atom":339}},{"Entity":{"atom":337}},{"Str":{"pattern":"ASME"}},{"Entity":{"atom":4}},{"Sequence":{"atoms":[336,338]}},{"Entity":{"atom":367}},{"Str":{"pattern":"PTC"}},{"Named":{"name":"designator","atom":341}},{"Entity":{"atom":360}},{"Entity":{"atom":4}},{"Repetition":{"atom":344,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":105}},{"Repetition":{"atom":346,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":52}},{"Entity":{"atom":105}},{"Repetition":{"atom":349,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[348,350]}},{"Repetition":{"atom":351,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[347,352]}},{"Named":{"name":"number","atom":353}},{"Entity":{"atom":4}},{"Entity":{"atom":121}},{"Named":{"name":"ptc_suffix","atom":356}},{"Sequence":{"atoms":[355,357]}},{"Repetition":{"atom":358,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[345,354,359]}},{"Entity":{"atom":30}},{"Entity":{"atom":239}},{"Entity":{"atom":243}},{"Alternative":{"atoms":[362,363]}},{"Sequence":{"atoms":[361,364]}},{"Repetition":{"atom":365,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[342,343,366]}},{"Entity":{"atom":400}},{"Str":{"pattern":"TR"}},{"Named":{"name":"designator","atom":369}},{"Entity":{"atom":393}},{"Entity":{"atom":4}},{"Repetition":{"atom":372,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":182}},{"Repetition":{"atom":374,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":52}},{"Entity":{"atom":182}},{"Repetition":{"atom":377,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[376,378]}},{"Repetition":{"atom":379,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":30}},{"Entity":{"atom":105}},{"Repetition":{"atom":382,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":52}},{"Entity":{"atom":105}},{"Repetition":{"atom":385,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[384,386]}},{"Repetition":{"atom":387,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[381,383,388]}},{"Repetition":{"atom":389,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[375,380,390]}},{"Named":{"name":"number","atom":391}},{"Sequence":{"atoms":[373,392]}},{"Entity":{"atom":30}},{"Entity":{"atom":239}},{"Entity":{"atom":243}},{"Alternative":{"atoms":[395,396]}},{"Sequence":{"atoms":[394,397]}},{"Repetition":{"atom":398,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[370,371,399]}},{"Entity":{"atom":444}},{"Entity":{"atom":176}},{"Entity":{"atom":407}},{"Entity":{"atom":4}},{"Repetition":{"atom":404,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":228}},{"Sequence":{"atoms":[405,406]}},{"Repetition":{"atom":403,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":420}},{"Entity":{"atom":15}},{"Str":{"pattern":"CSA"}},{"Entity":{"atom":4}},{"Entity":{"atom":46}},{"Entity":{"atom":105}},{"Entity":{"atom":52}},{"Alternative":{"atoms":[414,415]}},{"Repetition":{"atom":416,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[413,417]}},{"Named":{"name":"csa_number","atom":418}},{"Sequence":{"atoms":[410,411,412,419]}},{"Entity":{"atom":425}},{"Entity":{"atom":4}},{"Str":{"pattern":"Handbook"}},{"Sequence":{"atoms":[422,423]}},{"Named":{"name":"handbook","atom":424}},{"Repetition":{"atom":421,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[409,426]}},{"Entity":{"atom":425}},{"Alternative":{"atoms":[427,428]}},{"Repetition":{"atom":429,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":253}},{"Repetition":{"atom":431,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":30}},{"Entity":{"atom":239}},{"Entity":{"atom":243}},{"Alternative":{"atoms":[434,435]}},{"Sequence":{"atoms":[433,436]}},{"Repetition":{"atom":437,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":253}},{"Repetition":{"atom":439,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[402,408,430,432,438,440]}},{"Entity":{"atom":367}},{"Entity":{"atom":400}},{"Alternative":{"atoms":[441,442,443]}},{"Alternative":{"atoms":[340,368,401]}},{"Entity":{"atom":460}},{"Entity":{"atom":4}},{"Str":{"pattern":"("}},{"Str":{"pattern":"Proposed revision of"}},{"Str":{"pattern":"Revision of"}},{"Alternative":{"atoms":[449,450]}},{"Entity":{"atom":4}},{"Entity":{"atom":456}},{"Re":{"pattern":"[\\x01-\\x28]"}},{"Re":{"pattern":"[\\x2a-\\u{10ffff}]"}},{"Alternative":{"atoms":[454,455]}},{"Repetition":{"atom":453,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"ref_standard","atom":457}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[447,448,451,452,458,459]}},{"Repetition":{"atom":446,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":261}},{"Repetition":{"atom":462,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":474}},{"Entity":{"atom":4}},{"Str":{"pattern":"["}},{"Entity":{"atom":470}},{"Re":{"pattern":"[\\x01-\\x5c]"}},{"Re":{"pattern":"[\\x5e-\\u{10ffff}]"}},{"Alternative":{"atoms":[468,469]}},{"Repetition":{"atom":467,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"revision_note","atom":471}},{"Str":{"pattern":"]"}},{"Sequence":{"atoms":[465,466,472,473]}},{"Repetition":{"atom":464,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[335,445,461,463,475]}},{"Alternative":{"atoms":[0,264,294,314,334]}}],"root":477},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule dash: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 1 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 2 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 3 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 4 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 5 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 6 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 7 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 7 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 7 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 8 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 8 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 8 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 10 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 10 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule roman_numeral: branches 11 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 1 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 1 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 1 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 1 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 1 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 1 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 2 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 2 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 2 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 2 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 2 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 2 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 2 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 2 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 3 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 4 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 5 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 5 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 5 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 5 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 5 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 5 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 6 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 6 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 6 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 6 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 6 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 7 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 7 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 7 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 7 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 8 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 8 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 8 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 8 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 9 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 9 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 9 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 10 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 10 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule bpvc_letter_code: branches 11 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 2 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 2 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 3 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 3 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 7 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 8 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 10 and 25 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 10 and 26 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 11 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 11 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 11 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 12 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 12 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 13 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 15 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 15 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 16 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 18 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 18 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 18 and 35 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 19 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 19 and 35 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 20 and 35 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 22 and 23 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 25 and 26 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 28 and 29 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 30 and 31 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 32 and 33 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 32 and 34 are order-dependent (shared first bytes; ordered choice is decisive)","rule multi_char_code: branches 33 and 34 are order-dependent (shared first bytes; ordered choice is decisive)","rule non_rparen: branches 1 and 2 are order-dependent (first set not statically known)","rule non_rbracket: branches 1 and 2 are order-dependent (first set not statically known)","rule standard_body: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule standard_body: branches 1 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 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"ASME BPVC.VIII","expect":{}},{"entry":"identifier","kind":"accept","input":"ASME PTC 19.3","expect":{}},{"entry":"identifier","kind":"accept","input":"ASME Y14.5-2018","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/asme/parser.rb — ASME identifiers: the BPVC\n# subdivision family, multi-char codes, PTC/TR space-separated numbers,\n# CSA/API/ISO/ASME-ANS joint publishers, draft years (20XX/202X/2ddX),\n# reaffirmations, parenthetical revisions, and bracketed notes.\n\ngrammar PubidAsme version \"0.1.0\" {\n upper = %x41-5A\n lower = %x61-7A\n digit = %x30-39\n letter = upper\n letters = 1*letter\n digits = 1*digit\n num_letter = digit / upper\n space = \" \"\n dash = \"-\" / \"–\" / \"—\"\n dot = \".\"\n slash = \"/\"\n underscore = \"_\"\n\n asme_publisher = \"ASME\"\n publisher = asme_publisher space\n\n roman_numeral = \"XIII\" / \"XII\" / \"XI\" / \"VIII\" / \"VII\" / \"VI\" / \"IV\" / \"IX\" / \"X\" / \"III\" / \"II\" / \"V\" / \"I\"\n bpvc_letter_code = \"NCA\" / \"NCD\" / \"SSC\" / \"BPV\" / \"NUC\" / \"NB\" / \"NC\" / \"ND\" / \"NE\" / \"NF\" / \"NG\" / letter\n ssc_sections = (roman_numeral *(dot roman_numeral)) as ssc_sections\n ssc_code = (\"SSC\" [dot ssc_sections] [dot]) as ssc_code\n cc_case = (\"CC\" dot bpvc_letter_code as case_code [(\".\" [dot] (roman_numeral / bpvc_letter_code) as case_sub)])\n subdivision_code = (roman_numeral as section [(\".\" (digits / bpvc_letter_code) as subsection)] [(\".\" bpvc_letter_code as sub_subsection)] [(underscore letters as lang_suffix)])\n bpvc_subdivision = (\"BPVC\" (((space \"COMPLETE CODE BIND\") as special / (dash \"CC\" dash bpvc_letter_code as case_code) / (dot (ssc_code / cc_case / subdivision_code) as subdivision))) as bpvc_code)\n multi_char_code = \"PVHO\" / \"PASE\" / \"PTC\" / \"PTB\" / \"PDS\" / \"PCC\" / \"V&V\" / \"V V\" / \"VVUQ\" / \"TDP\" / \"RTP\" / \"RT\" / \"RA-S\" / \"RA\" / \"QME\" / \"QAI\" / \"QEI\" / \"NUM\" / \"NQA\" / \"NML\" / \"OM\" / \"HST\" / \"HRT\" / \"FFS\" / \"TES\" / \"TR\" / \"STS\" / \"CSD\" / \"CA\" / \"BTH\" / \"BPE\" / \"ANDE\" / \"AED\" / \"AG\" / \"NM\" / \"EA\"\n designator = (bpvc_subdivision / multi_char_code / \"ISO\" / \"CSA\" / \"API\" / \"ANS\" / letters) as designator\n\n trailing_year = dash (\"20XX\" / \"202X\" / (\"20\" digit \"X\") / 4digit) !num_letter_dot\n num_letter_dot = %x30-39 / %x41-5A / %x2E\n number_part = ((dot 1*num_letter *(dot 1*num_letter)) / ((!trailing_year dash 1*num_letter *(dot 1*num_letter)) / (1*num_letter *(dot 1*num_letter)))) as number\n ptc_number = [space] (1*digit *(dot 1*digit)) as number [(space letters as ptc_suffix)]\n tr_number = [space] (1*num_letter *(dot 1*num_letter) [(dash 1*digit *(dot 1*digit))]) as number\n spaced_number_part = [space] number_part\n year_4digit = (4digit) as year\n draft_year = (\"20XX\" / \"202X\" / (\"20\" digit \"X\")) as draft_year\n reaffirmation = space \"(R\" year_4digit as reaffirmation \")\"\n csa_portion = slash \"CSA\" space (letter 1*(digit / dot)) as csa_number\n parenthetical_revision = space \"(\" (\"Proposed revision of\" / \"Revision of\") space (1*non_rparen) as ref_standard \")\"\n revision_note = space \"[\" (1*non_rbracket) as revision_note \"]\"\n language = space \"(\" letters as language \")\"\n handbook_keyword = (space \"Handbook\") as handbook\n non_rparen = %x01-28 / %x2A-10FFFF\n non_rbracket = %x01-5C / %x5E-10FFFF\n\n standard_components = publisher designator [number_part] [(csa_portion / handbook_keyword)] [language] [(dash (draft_year / year_4digit))] [language] [parenthetical_revision] [reaffirmation] [revision_note]\n csa_asme_identifier = (\"CSA\" as first_publisher space (1*csa_first_char) as first_code [space] slash \"ASME\" as second_publisher space designator [number_part] [(dash (draft_year / year_4digit))] [language] [reaffirmation])\n csa_first_char = %x41-5A / %x30-39 / %x2E\n api_asme_identifier = (\"API\" as first_publisher space (1*numdash) as first_code [space] slash \"ASME\" as second_publisher space designator [number_part] [(dash (draft_year / year_4digit))] [language] [reaffirmation])\n numdash = digit / \"-\"\n iso_asme_publisher = (\"ISO/ASME\" as joint_publisher [space])\n asme_ans_publisher = (\"ASME/ANS\" as joint_publisher space)\n iso_asme_identifier = (iso_asme_publisher [number_part] [(dash (draft_year / year_4digit))] [language] [reaffirmation])\n asme_ans_identifier = (asme_ans_publisher designator [number_part] [(dash (draft_year / year_4digit))] [language] [reaffirmation])\n ptc_form = (\"PTC\" as designator ptc_number [(dash (draft_year / year_4digit))])\n tr_form = (\"TR\" as designator tr_number [(dash (draft_year / year_4digit))])\n standard_body = ((designator [spaced_number_part] [((csa_portion [handbook_keyword]) / handbook_keyword)] [language] [(dash (draft_year / year_4digit))] [language])) / ptc_form / tr_form\n standard = publisher (ptc_form / tr_form / standard_body) [parenthetical_revision] [reaffirmation] [revision_note]\n\n identifier = csa_asme_identifier / api_asme_identifier / iso_asme_identifier / asme_ans_identifier / standard\n\n entry identifier: identifier\n\n test {\n accept \"ASME BPVC.VIII\"\n accept \"ASME PTC 19.3\"\n accept \"ASME Y14.5-2018\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:a70bc18fd73515a23931406790d3fefd0546c22c5a1a9514fa605385524c900a"}