pubid 2.0.0 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/data/parg/adobe.json +1 -1
- data/data/parg/aiee.json +1 -1
- data/data/parg/amca.json +1 -1
- data/data/parg/ansi.json +1 -1
- data/data/parg/api.json +1 -1
- data/data/parg/ashrae.json +1 -1
- data/data/parg/asme.json +1 -1
- data/data/parg/astm.json +1 -1
- data/data/parg/bipm.json +1 -1
- data/data/parg/bsi.json +1 -1
- data/data/parg/calconnect.json +1 -1
- data/data/parg/ccsds.json +1 -1
- data/data/parg/cen_cenelec.json +1 -1
- data/data/parg/cie.json +1 -1
- data/data/parg/csa.json +1 -1
- data/data/parg/doi.json +1 -1
- data/data/parg/easc.json +1 -1
- data/data/parg/ecma.json +1 -1
- data/data/parg/etsi.json +1 -1
- data/data/parg/evs.json +1 -1
- data/data/parg/gb.json +1 -1
- data/data/parg/gost.json +1 -1
- data/data/parg/iala.json +1 -1
- data/data/parg/iana.json +1 -1
- data/data/parg/idf.json +1 -1
- data/data/parg/iec.json +1 -1
- data/data/parg/ieee.json +1 -29571
- data/data/parg/ietf.json +1 -1
- data/data/parg/iho.json +1 -0
- data/data/parg/ire.json +1 -1
- data/data/parg/isbn.json +1 -1
- data/data/parg/iso.json +1 -8510
- data/data/parg/itu.json +1 -1
- data/data/parg/jcgm.json +1 -1
- data/data/parg/jis.json +1 -1
- data/data/parg/nesc.json +1 -1
- data/data/parg/nist.json +1 -9588
- data/data/parg/oasis.json +1 -1
- data/data/parg/ogc.json +1 -1
- data/data/parg/oiml.json +1 -1
- data/data/parg/omg.json +1 -1
- data/data/parg/parg.json +1 -1
- data/data/parg/plateau.json +1 -1
- data/data/parg/sae.json +1 -1
- data/data/parg/tables/typed_stages.yaml +1 -0
- data/data/parg/tgpp.json +1 -1
- data/data/parg/un.json +1 -1
- data/data/parg/w3c.json +1 -1
- data/data/parg/xsf.json +1 -1
- data/lib/pubid/adobe/identifier.rb +1 -1
- data/lib/pubid/adobe/parser.rb +2 -113
- data/lib/pubid/amca/identifiers/base.rb +1 -1
- data/lib/pubid/amca/parser.rb +1 -145
- data/lib/pubid/ansi/identifier.rb +1 -1
- data/lib/pubid/ansi/parser.rb +1 -82
- data/lib/pubid/api/builder.rb +32 -1
- data/lib/pubid/api/identifier.rb +1 -1
- data/lib/pubid/api/parser.rb +1 -131
- data/lib/pubid/ashrae/identifiers/base.rb +1 -1
- data/lib/pubid/ashrae/parser.rb +3 -710
- data/lib/pubid/asme/builder.rb +6 -4
- data/lib/pubid/asme/identifier.rb +1 -2
- data/lib/pubid/asme/parser.rb +1 -328
- data/lib/pubid/astm/builder.rb +12 -3
- data/lib/pubid/astm/identifier.rb +1 -2
- data/lib/pubid/astm/parser.rb +1 -227
- data/lib/pubid/bipm/identifier.rb +8 -1
- data/lib/pubid/bipm/parser.rb +2 -224
- data/lib/pubid/bsi/builder.rb +2 -4
- data/lib/pubid/bsi/parser.rb +1 -666
- data/lib/pubid/bsi/single_identifier.rb +38 -1
- data/lib/pubid/calconnect/identifier.rb +1 -1
- data/lib/pubid/calconnect/parser.rb +2 -40
- data/lib/pubid/ccsds/identifier.rb +1 -1
- data/lib/pubid/ccsds/parser.rb +1 -66
- data/lib/pubid/cen_cenelec/identifier.rb +16 -1
- data/lib/pubid/cen_cenelec/parser.rb +3 -136
- data/lib/pubid/cie/identifier.rb +1 -1
- data/lib/pubid/cie/parser.rb +3 -378
- data/lib/pubid/conformance.rb +1 -1
- data/lib/pubid/csa/builder.rb +41 -18
- data/lib/pubid/csa/identifier.rb +12 -4
- data/lib/pubid/csa/identifiers/amendment.rb +28 -0
- data/lib/pubid/csa/identifiers.rb +1 -0
- data/lib/pubid/csa/parser.rb +16 -397
- data/lib/pubid/doi/identifier.rb +1 -1
- data/lib/pubid/doi/parser.rb +2 -37
- data/lib/pubid/easc/builder.rb +1 -1
- data/lib/pubid/easc/identifier.rb +1 -1
- data/lib/pubid/easc/parser.rb +2 -70
- data/lib/pubid/ecma/CLAUDE.md +8 -1
- data/lib/pubid/ecma/identifier.rb +13 -8
- data/lib/pubid/ecma/parser.rb +2 -54
- data/lib/pubid/ecma/renderer.rb +3 -7
- data/lib/pubid/errors.rb +18 -13
- data/lib/pubid/etsi/builder.rb +8 -5
- data/lib/pubid/etsi/identifiers/base.rb +1 -1
- data/lib/pubid/etsi/parser.rb +1 -132
- data/lib/pubid/evs/identifier.rb +7 -0
- data/lib/pubid/evs/parser.rb +1 -8
- data/lib/pubid/evs.rb +1 -1
- data/lib/pubid/gb/identifier.rb +7 -1
- data/lib/pubid/gb/parser.rb +2 -51
- data/lib/pubid/gost/identifier.rb +9 -1
- data/lib/pubid/gost/parser.rb +4 -81
- data/lib/pubid/iala/parser.rb +2 -121
- data/lib/pubid/iana/identifier.rb +1 -1
- data/lib/pubid/iana/parser.rb +2 -24
- data/lib/pubid/identifier.rb +78 -1
- data/lib/pubid/idf/builder.rb +42 -0
- data/lib/pubid/idf/identifier.rb +1 -1
- data/lib/pubid/idf/parser.rb +1 -137
- data/lib/pubid/idf.rb +1 -2
- data/lib/pubid/iec/builder.rb +158 -50
- data/lib/pubid/iec/identifier.rb +1 -1
- data/lib/pubid/iec/parser.rb +3 -430
- data/lib/pubid/ieee/aiee/identifier.rb +2 -1
- data/lib/pubid/ieee/aiee.rb +0 -1
- data/lib/pubid/ieee/builder.rb +2 -2
- data/lib/pubid/ieee/identifiers/base.rb +1 -1
- data/lib/pubid/ieee/ire/identifier.rb +2 -1
- data/lib/pubid/ieee/ire.rb +0 -1
- data/lib/pubid/ieee/nesc.rb +0 -1
- data/lib/pubid/ieee/parser.rb +1 -1257
- data/lib/pubid/ietf/identifiers/base.rb +17 -1
- data/lib/pubid/ietf/parser.rb +2 -47
- data/lib/pubid/ietf/renderer.rb +17 -2
- data/lib/pubid/iho/CLAUDE.md +89 -0
- data/lib/pubid/iho/builder.rb +4 -1
- data/lib/pubid/iho/identifiers/base.rb +28 -2
- data/lib/pubid/iho/renderer.rb +8 -0
- data/lib/pubid/iho/urn_generator.rb +11 -1
- data/lib/pubid/iho/urn_parser.rb +21 -11
- data/lib/pubid/iho.rb +0 -1
- data/lib/pubid/isbn/identifier.rb +1 -1
- data/lib/pubid/isbn/parser.rb +2 -31
- data/lib/pubid/iso/builder.rb +1 -1
- data/lib/pubid/iso/identifiers/directives.rb +6 -3
- data/lib/pubid/iso/identifiers/guide.rb +6 -3
- data/lib/pubid/iso/identifiers/international_standard.rb +3 -1
- data/lib/pubid/iso/identifiers/international_workshop_agreement.rb +6 -3
- data/lib/pubid/iso/normalizer.rb +1 -1
- data/lib/pubid/iso/parser.rb +1 -539
- data/lib/pubid/iso/supplement_identifier.rb +6 -3
- data/lib/pubid/iso/utilities.rb +4 -5
- data/lib/pubid/iso.rb +1 -19
- data/lib/pubid/itu/builder.rb +36 -20
- data/lib/pubid/itu/identifiers/base.rb +15 -2
- data/lib/pubid/itu/parser.rb +1 -775
- data/lib/pubid/jcgm/builder.rb +35 -0
- data/lib/pubid/jcgm/parser.rb +1 -151
- data/lib/pubid/jcgm.rb +1 -2
- data/lib/pubid/jis/builder.rb +18 -29
- data/lib/pubid/jis/identifier.rb +1 -1
- data/lib/pubid/jis/parser.rb +1 -128
- data/lib/pubid/nist/builder.rb +5 -1
- data/lib/pubid/nist/caster.rb +13 -3
- data/lib/pubid/nist/identifiers/base.rb +37 -2
- data/lib/pubid/nist/identifiers/circular.rb +2 -2
- data/lib/pubid/nist/identifiers/circular_supplement.rb +2 -2
- data/lib/pubid/nist/identifiers/commercial_standards_monthly.rb +2 -2
- data/lib/pubid/nist/identifiers/crpl_report.rb +2 -2
- data/lib/pubid/nist/identifiers/handbook.rb +2 -2
- data/lib/pubid/nist/identifiers/internal_report.rb +2 -2
- data/lib/pubid/nist/identifiers/miscellaneous_publication.rb +2 -2
- data/lib/pubid/nist/identifiers/monograph.rb +2 -2
- data/lib/pubid/nist/identifiers/report.rb +2 -2
- data/lib/pubid/nist/parser.rb +19 -775
- data/lib/pubid/nist/router.rb +4 -1
- data/lib/pubid/nist/supplement_identifier.rb +2 -2
- data/lib/pubid/oasis/identifier.rb +1 -1
- data/lib/pubid/oasis/parser.rb +2 -16
- data/lib/pubid/ogc/identifier.rb +1 -1
- data/lib/pubid/ogc/parser.rb +2 -26
- data/lib/pubid/oiml/identifiers/certification_system.rb +7 -0
- data/lib/pubid/oiml/identifiers/dual_published.rb +2 -2
- data/lib/pubid/oiml/parser.rb +1 -303
- data/lib/pubid/oiml.rb +1 -2
- data/lib/pubid/omg/identifier.rb +6 -1
- data/lib/pubid/omg/parser.rb +2 -76
- data/lib/pubid/parg/artifact.rb +22 -3
- data/lib/pubid/parg/model.rb +98 -0
- data/lib/pubid/parg.rb +1 -0
- data/lib/pubid/parser.rb +5 -4
- data/lib/pubid/parsers/mr_string.rb +1 -1
- data/lib/pubid/plateau/parser.rb +1 -66
- data/lib/pubid/plateau.rb +1 -2
- data/lib/pubid/renderers/directives_renderer.rb +1 -1
- data/lib/pubid/renderers/iwa_renderer.rb +1 -1
- data/lib/pubid/renderers/publisher_stripper.rb +82 -0
- data/lib/pubid/renderers/supplement_renderer.rb +1 -1
- data/lib/pubid/renderers.rb +1 -0
- data/lib/pubid/sae/identifiers/base.rb +1 -1
- data/lib/pubid/sae/parser.rb +1 -48
- data/lib/pubid/tgpp/identifier.rb +1 -1
- data/lib/pubid/tgpp/parser.rb +2 -59
- data/lib/pubid/un/identifier.rb +1 -1
- data/lib/pubid/un/parser.rb +1 -18
- data/lib/pubid/version.rb +1 -1
- data/lib/pubid/w3c/identifier.rb +1 -1
- data/lib/pubid/w3c/parser.rb +2 -27
- data/lib/pubid/xsf/identifier.rb +11 -7
- data/lib/pubid/xsf/parser.rb +3 -31
- data/lib/pubid/xsf/renderer.rb +2 -4
- data/lib/pubid.rb +8 -9
- metadata +15 -25
- data/lib/pubid/ieee/aiee/parser.rb +0 -130
- data/lib/pubid/ieee/ire/parser.rb +0 -109
- data/lib/pubid/ieee/nesc/parser.rb +0 -155
- data/lib/pubid/iho/parser.rb +0 -68
- data/lib/pubid/parser/common_parse_methods.rb +0 -13
- data/lib/pubid/parser/common_parse_rules.rb +0 -56
- data/lib/pubid/parser/grammar.rb +0 -96
data/data/parg/ietf.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"bindings":null,"version":"0.1.0","grammar":"PubidIetf","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":9}},{"Str":{"pattern":"RFC"}},{"Entity":{"atom":3}},{"Str":{"pattern":" "}},{"Repetition":{"atom":2,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":5,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":7}},{"Sequence":{"atoms":[1,4,8]}},{"Entity":{"atom":21}},{"Str":{"pattern":"BCP"}},{"Str":{"pattern":"STD"}},{"Str":{"pattern":"FYI"}},{"Alternative":{"atoms":[11,12,13]}},{"Named":{"name":"series","atom":14}},{"Entity":{"atom":3}},{"Repetition":{"atom":16,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Repetition":{"atom":18,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":19}},{"Sequence":{"atoms":[15,17,20]}},{"Entity":{"atom":35}},{"Str":{"pattern":"draft-"}},{"Entity":{"atom":32}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Re":{"pattern":"[+]"}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[.]"}},{"Re":{"pattern":"[\\-]"}},{"Alternative":{"atoms":[25,26,27,28,29,30,31]}},{"Repetition":{"atom":24,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"draft_rest","atom":33}},{"Sequence":{"atoms":[23,34]}},{"Alternative":{"atoms":[0,10,22]}}],"root":36},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"RFC 2616","expect":{}},{"entry":"identifier","kind":"accept","input":"RFC2616","expect":{}},{"entry":"identifier","kind":"accept","input":"BCP 14","expect":{}},{"entry":"identifier","kind":"accept","input":"draft-ietf-httpbis-messaging-19","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/ietf/parser.rb: three families keyed on the leading\n# token — RFC, sub-series (BCP/STD/FYI, padded forms allowed), and\n# Internet-Drafts (the wide draft tail is safe: the alternation is\n# leading-token keyed).\n\ngrammar PubidIetf version \"0.1.0\" {\n rfc = \"RFC\" [space] (1*digit) as number\n subseries = (\"BCP\" / \"STD\" / \"FYI\") as series [space] (1*digit) as number\n draft_rest_char = %x30-39 / %x41-5A / %x61-7A / %x2B / %x5F / %x2E / %x2D\n draft = \"draft-\" (1*draft_rest_char) as draft_rest\n identifier = rfc / subseries / draft\n digit = %x30-39\n space = \" \"\n entry identifier: identifier\n\n test {\n accept \"RFC 2616\"\n accept \"RFC2616\"\n accept \"BCP 14\"\n accept \"draft-ietf-httpbis-messaging-19\"\n reject \"nonsense\"\n }\n}\n","source_hash":"
|
|
1
|
+
{"bindings":null,"version":"0.1.0","grammar":"PubidIetf","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":9}},{"Str":{"pattern":"RFC"}},{"Entity":{"atom":3}},{"Str":{"pattern":" "}},{"Repetition":{"atom":2,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":5,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":7}},{"Sequence":{"atoms":[1,4,8]}},{"Entity":{"atom":21}},{"Str":{"pattern":"BCP"}},{"Str":{"pattern":"STD"}},{"Str":{"pattern":"FYI"}},{"Alternative":{"atoms":[11,12,13]}},{"Named":{"name":"series","atom":14}},{"Entity":{"atom":3}},{"Repetition":{"atom":16,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Repetition":{"atom":18,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":19}},{"Sequence":{"atoms":[15,17,20]}},{"Entity":{"atom":35}},{"Str":{"pattern":"draft-"}},{"Entity":{"atom":32}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Re":{"pattern":"[+]"}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[.]"}},{"Re":{"pattern":"[\\-]"}},{"Alternative":{"atoms":[25,26,27,28,29,30,31]}},{"Repetition":{"atom":24,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"draft_rest","atom":33}},{"Sequence":{"atoms":[23,34]}},{"Alternative":{"atoms":[0,10,22]}}],"root":36},"bindings":[{"capture":"number","path":"number","type":"string","card":null,"preprocess":null},{"capture":"series","path":"series","type":"string","card":null,"preprocess":null},{"capture":"draft_rest","path":"draft_rest","type":"string","card":null,"preprocess":null}]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"RFC 2616","expect":{}},{"entry":"identifier","kind":"accept","input":"RFC2616","expect":{}},{"entry":"identifier","kind":"accept","input":"BCP 14","expect":{}},{"entry":"identifier","kind":"accept","input":"draft-ietf-httpbis-messaging-19","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/ietf/parser.rb: three families keyed on the leading\n# token — RFC, sub-series (BCP/STD/FYI, padded forms allowed), and\n# Internet-Drafts (the wide draft tail is safe: the alternation is\n# leading-token keyed).\n\ngrammar PubidIetf version \"0.1.0\" edition 2 {\n rfc = \"RFC\" [space] (1*digit) as number\n subseries = (\"BCP\" / \"STD\" / \"FYI\") as series [space] (1*digit) as number\n draft_rest_char = %x30-39 / %x41-5A / %x61-7A / %x2B / %x5F / %x2E / %x2D\n draft = \"draft-\" (1*draft_rest_char) as draft_rest\n identifier = rfc / subseries / draft\n digit = %x30-39\n space = \" \"\n entry identifier: identifier\n\n # Typed model bindings: every bound capture lands on the\n # consumer model's field of the same name.\n bindings identifier {\n number -> number (string)\n series -> series (string)\n draft_rest -> draft_rest (string)\n }\n\n\n test {\n accept \"RFC 2616\"\n accept \"RFC2616\"\n accept \"BCP 14\"\n accept \"draft-ietf-httpbis-messaging-19\"\n reject \"nonsense\"\n }\n}\n","source_hash":"787ab890250efb10ee4e20e0e5835d5894f903080f4871d354ac5298ce9d2064","unicode_tables":"onigmo (Ruby 3.4.8)","compiler_version":"1.3.114","edition":2,"checksum":"sha256:66503a4cb4efaaafc7b0fdc7f6590e02d1cc0fc39815a1ee22caecb0c5f0b714"}
|
data/data/parg/iho.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"bindings":null,"version":"0.1.0","grammar":"PubidIho","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"IHO"}},{"Entity":{"atom":2}},{"Str":{"pattern":" "}},{"Sequence":{"atoms":[0,1]}},{"Repetition":{"atom":3,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":12}},{"Str":{"pattern":"S"}},{"Str":{"pattern":"P"}},{"Str":{"pattern":"M"}},{"Str":{"pattern":"B"}},{"Str":{"pattern":"C"}},{"Alternative":{"atoms":[6,7,8,9,10]}},{"Named":{"name":"type","atom":11}},{"Entity":{"atom":14}},{"Str":{"pattern":"-"}},{"Entity":{"atom":37}},{"Entity":{"atom":17}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":16,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":34}},{"Str":{"pattern":":"}},{"Entity":{"atom":17}},{"Repetition":{"atom":21,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[20,22]}},{"Str":{"pattern":"/"}},{"Entity":{"atom":17}},{"Repetition":{"atom":25,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[24,26]}},{"Entity":{"atom":14}},{"Entity":{"atom":17}},{"Repetition":{"atom":29,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[28,30]}},{"Entity":{"atom":33}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Alternative":{"atoms":[23,27,31,32]}},{"Repetition":{"atom":19,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[18,35]}},{"Named":{"name":"number","atom":36}},{"Entity":{"atom":54}},{"Entity":{"atom":2}},{"Str":{"pattern":"Appendix"}},{"Str":{"pattern":"Ap."}},{"Alternative":{"atoms":[40,41]}},{"Entity":{"atom":2}},{"Entity":{"atom":33}},{"Entity":{"atom":14}},{"Entity":{"atom":17}},{"Repetition":{"atom":46,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[44,45,47]}},{"Entity":{"atom":17}},{"Repetition":{"atom":49,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":33}},{"Alternative":{"atoms":[48,50,51]}},{"Named":{"name":"appendix","atom":52}},{"Sequence":{"atoms":[39,42,43,53]}},{"Repetition":{"atom":38,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":72}},{"Entity":{"atom":2}},{"Str":{"pattern":"Part"}},{"Entity":{"atom":2}},{"Entity":{"atom":17}},{"Repetition":{"atom":60,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":66}},{"Entity":{"atom":33}},{"Entity":{"atom":65}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[63,64]}},{"Repetition":{"atom":62,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[61,67]}},{"Entity":{"atom":33}},{"Alternative":{"atoms":[68,69]}},{"Named":{"name":"part","atom":70}},{"Sequence":{"atoms":[57,58,59,71]}},{"Repetition":{"atom":56,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":80}},{"Entity":{"atom":2}},{"Str":{"pattern":"Annex"}},{"Entity":{"atom":2}},{"Entity":{"atom":33}},{"Named":{"name":"annex","atom":78}},{"Sequence":{"atoms":[75,76,77,79]}},{"Repetition":{"atom":74,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":89}},{"Entity":{"atom":2}},{"Str":{"pattern":"Suppl"}},{"Entity":{"atom":2}},{"Entity":{"atom":17}},{"Repetition":{"atom":86,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"supplement","atom":87}},{"Sequence":{"atoms":[83,84,85,88]}},{"Repetition":{"atom":82,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":135}},{"Entity":{"atom":2}},{"Entity":{"atom":17}},{"Repetition":{"atom":93,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":96}},{"Str":{"pattern":"."}},{"Entity":{"atom":17}},{"Repetition":{"atom":97,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":96}},{"Entity":{"atom":17}},{"Repetition":{"atom":100,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[94,95,98,99,101]}},{"Named":{"name":"version","atom":102}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[104,105]}},{"Entity":{"atom":17}},{"Repetition":{"atom":107,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[106,108]}},{"Named":{"name":"year","atom":109}},{"Str":{"pattern":"Vol."}},{"Entity":{"atom":2}},{"Entity":{"atom":17}},{"Repetition":{"atom":113,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"volume","atom":114}},{"Sequence":{"atoms":[111,112,115]}},{"Entity":{"atom":2}},{"Str":{"pattern":"Issue"}},{"Entity":{"atom":2}},{"Entity":{"atom":17}},{"Repetition":{"atom":120,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"issue","atom":121}},{"Sequence":{"atoms":[117,118,119,122]}},{"Entity":{"atom":2}},{"Str":{"pattern":"("}},{"Entity":{"atom":17}},{"Repetition":{"atom":126,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"issue","atom":127}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[124,125,128,129]}},{"Alternative":{"atoms":[123,130]}},{"Repetition":{"atom":131,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[116,132]}},{"Alternative":{"atoms":[103,110,133]}},{"Sequence":{"atoms":[92,134]}},{"Repetition":{"atom":91,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[4,5,13,15,55,73,81,90,136]}}],"root":137},"bindings":[{"capture":"year","path":"year","type":"string","card":null,"preprocess":null},{"capture":"volume","path":"volume","type":"string","card":null,"preprocess":null},{"capture":"issue","path":"issue","type":"string","card":null,"preprocess":null}]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"S-5","expect":{}},{"entry":"identifier","kind":"accept","input":"IHO S-5 Appendix 2","expect":{}},{"entry":"identifier","kind":"accept","input":"IHO B-12 3.0.0","expect":{}},{"entry":"identifier","kind":"accept","input":"IHO P-5 2024","expect":{}},{"entry":"identifier","kind":"accept","input":"P-5 2024","expect":{}},{"entry":"identifier","kind":"accept","input":"IHO B-7 2023","expect":{}},{"entry":"identifier","kind":"accept","input":"IHO P-1 Vol. 30","expect":{}},{"entry":"identifier","kind":"accept","input":"IHO P-1 Vol. 30 (2)","expect":{}},{"entry":"identifier","kind":"accept","input":"IHO P-1 Vol. 30 Issue 2","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}},{"entry":"identifier","kind":"reject","input":"IHO B-12 3.0","expect":{}}],"docs":{},"source":"# Port of lib/pubid/iho/parser.rb — IHO identifiers: letter series\n# (S/P/M/B/C), a number with an optional suffix, and appendix, part,\n# annex, supplement and version tails.\n#\n# The trailing component of a series form is a discriminator chosen\n# from:\n# - the dotted version a.b.c (unchanged — the historical placeholder\n# and the real S/M/B/C editions, e.g. \"B-12 3.0.0\");\n# - a 4-digit year 19xx/20xx (\"P-5 2024\", \"B-7 2023\") — the identity\n# form for the year-identified series (relaton#407: B-7, P-5, P-6\n# are identified by year, not by a placeholder edition);\n# - a volume \"Vol. N\" with an optional issue (\"P-1 Vol. 30\",\n# \"P-1 Vol. 30 (2)\"). The issue is captured as the bare number and\n# prints in parentheses. The \"Issue N\" spelling is accepted as an\n# input alias; the parenthesized form is the canonical print.\n# DECISION FLAG for the IHO-agreement step: real IHR issue\n# spellings vary (\"No. N\" is also seen) — only \"(N)\" and\n# \"Issue N\" are accepted until the spelling is agreed.\n# A two-segment version (\"B-12 3.0\") is deliberately NOT supported:\n# no IHO series carries one in the corpus, and neither new rule\n# swallows it (a year needs all four digits of 19xx/20xx; a dotted\n# version needs all three segments).\n#\n# The grammar stays edition v1: the v1 tree inlines rule references\n# inside a captured body (the v2 tree materializes them as named\n# nodes), which the builder's string fold over :number/:type expects.\n# The tail rule uses only raw terms, so nothing in it needs v2.\n\ngrammar PubidIho version \"0.1.0\" edition 1 {\n digit = %x30-39\n upper = %x41-5A\n lower = %x61-7A\n letter = upper / lower\n space = \" \"\n dash = \"-\"\n dot = \".\"\n\n series = (\"S\" / \"P\" / \"M\" / \"B\" / \"C\") as type\n number_suffix = ((\":\" 1*digit) / (\"/\" 1*digit) / (dash 1*digit) / upper)\n number = (1*digit [number_suffix]) as number\n appendix = {\n space (\"Appendix\" / \"Ap.\") space\n ((upper dash 1*digit) / (1*digit) / upper) as appendix\n }\n part = {\n space \"Part\" space\n ((1*digit *letter) / upper) as part\n }\n annex = space \"Annex\" space upper as annex\n supplement = space \"Suppl\" space (1*digit) as supplement\n tail = {\n space\n (\n (1*digit dot 1*digit dot 1*digit) as version\n / ((\"19\" / \"20\") 2*digit) as year\n / (\n (\"Vol.\" space (1*digit) as volume)\n [\n (space \"Issue\" space (1*digit) as issue)\n / (space \"(\" (1*digit) as issue \")\")\n ]\n )\n )\n }\n\n identifier = {\n [(\"IHO\" space)]\n series\n dash\n number\n [appendix]\n [part]\n [annex]\n [supplement]\n [tail]\n }\n\n entry identifier: identifier\n\n test {\n accept \"S-5\"\n accept \"IHO S-5 Appendix 2\"\n accept \"IHO B-12 3.0.0\"\n accept \"IHO P-5 2024\"\n accept \"P-5 2024\"\n accept \"IHO B-7 2023\"\n accept \"IHO P-1 Vol. 30\"\n accept \"IHO P-1 Vol. 30 (2)\"\n accept \"IHO P-1 Vol. 30 Issue 2\"\n reject \"nonsense\"\n reject \"IHO B-12 3.0\"\n }\n\n bindings identifier {\n year -> year (string)\n volume -> volume (string)\n issue -> issue (string)\n }\n}\n","source_hash":"8d0d31907c36e5a398b7af8e11b434afb75588f6252e79cd975cb2c10a10ad8a","unicode_tables":"onigmo (Ruby 3.4.8)","compiler_version":"1.3.114","edition":1,"checksum":"sha256:52f91157a4d75ed1eef5cddd14789fcd907ec721384f88f5d3df77548dc307b9"}
|
data/data/parg/ire.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"bindings":null,"version":"0.1.0","grammar":"PubidIre","shape":"parsanol-tree/v2","binding_version":1,"entries":{"ire_identifier":{"root":"ire_identifier","grammar":{"atoms":[{"Entity":{"atom":90}},{"Entity":{"atom":23}},{"Entity":{"atom":18}},{"Str":{"pattern":"191"}},{"Entity":{"atom":5}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Sequence":{"atoms":[3,4]}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"2"}},{"Str":{"pattern":"3"}},{"Str":{"pattern":"4"}},{"Str":{"pattern":"5"}},{"Alternative":{"atoms":[8,9,10,11]}},{"Entity":{"atom":5}},{"Sequence":{"atoms":[7,12,13]}},{"Str":{"pattern":"196"}},{"Re":{"pattern":"[\\x30-\\x33]"}},{"Sequence":{"atoms":[15,16]}},{"Alternative":{"atoms":[6,14,17]}},{"Entity":{"atom":22}},{"Re":{"pattern":"[\\x31-\\x36]"}},{"Entity":{"atom":5}},{"Sequence":{"atoms":[20,21]}},{"Alternative":{"atoms":[2,19]}},{"Named":{"name":"year","atom":1}},{"Entity":{"atom":26}},{"Str":{"pattern":" "}},{"Entity":{"atom":31}},{"Str":{"pattern":"IEEE-IRE"}},{"Str":{"pattern":"IRE"}},{"Alternative":{"atoms":[28,29]}},{"Named":{"name":"publisher","atom":30}},{"Entity":{"atom":26}},{"Entity":{"atom":38}},{"Str":{"pattern":"Trans."}},{"Str":{"pattern":"Standard"}},{"Str":{"pattern":"Std"}},{"Alternative":{"atoms":[34,35,36]}},{"Named":{"name":"type","atom":37}},{"Entity":{"atom":26}},{"Sequence":{"atoms":[33,39]}},{"Repetition":{"atom":40,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":71}},{"Entity":{"atom":45}},{"Entity":{"atom":5}},{"Repetition":{"atom":44,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":26}},{"Entity":{"atom":48}},{"Str":{"pattern":"."}},{"Alternative":{"atoms":[46,47]}},{"Entity":{"atom":51}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Entity":{"atom":45}},{"Sequence":{"atoms":[43,49,50,52]}},{"Entity":{"atom":45}},{"Entity":{"atom":48}},{"Str":{"pattern":"IRE"}},{"Entity":{"atom":45}},{"Entity":{"atom":48}},{"Entity":{"atom":45}},{"Entity":{"atom":51}},{"Entity":{"atom":45}},{"Sequence":{"atoms":[54,55,56,57,58,59,60,61]}},{"Entity":{"atom":51}},{"Repetition":{"atom":63,"min":2,"max":4,"tag":"Repetition"}},{"Entity":{"atom":66}},{"Str":{"pattern":"-"}},{"Entity":{"atom":45}},{"Sequence":{"atoms":[64,65,67]}},{"Entity":{"atom":45}},{"Alternative":{"atoms":[53,62,68,69]}},{"Named":{"name":"number","atom":70}},{"Entity":{"atom":85}},{"Entity":{"atom":26}},{"Entity":{"atom":66}},{"Str":{"pattern":","}},{"Alternative":{"atoms":[74,75]}},{"Repetition":{"atom":76,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":26}},{"Repetition":{"atom":78,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[73,77,79]}},{"Entity":{"atom":66}},{"Str":{"pattern":","}},{"Alternative":{"atoms":[81,82]}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[80,83,84]}},{"Entity":{"atom":18}},{"Named":{"name":"full_year","atom":86}},{"Sequence":{"atoms":[72,87]}},{"Repetition":{"atom":88,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[24,25,27,32,41,42,89]}},{"Entity":{"atom":105}},{"Entity":{"atom":31}},{"Entity":{"atom":26}},{"Entity":{"atom":38}},{"Entity":{"atom":26}},{"Sequence":{"atoms":[94,95]}},{"Repetition":{"atom":96,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":71}},{"Entity":{"atom":104}},{"Entity":{"atom":85}},{"Entity":{"atom":23}},{"Named":{"name":"year","atom":101}},{"Sequence":{"atoms":[100,102]}},{"Repetition":{"atom":103,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[92,93,97,98,99]}},{"Alternative":{"atoms":[0,91]}}],"root":106},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule year_full: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule year_full: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule year_full: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule year: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule yr_sep: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"ire_identifier","render":{},"derive":{},"tests":[{"entry":"ire_identifier","kind":"accept","input":"IRE Trans. PGI-7","expect":{}},{"entry":"ire_identifier","kind":"accept","input":"1930 IRE 20","expect":{}},{"entry":"ire_identifier","kind":"accept","input":"IRE Standard 15 S1","expect":{}},{"entry":"ire_identifier","kind":"accept","input":"IRE 28","expect":{}},{"entry":"ire_identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/ieee/ire/parser.rb — IRE (pre-IEEE) designations:\n# year-first and prefix-first forms, types (Trans./Standard/Std),\n# numbers (dotted letters, IRE-glued, letters-dash) and dates.\n# Consumed by the ieee grammar via `use ire`.\n\ngrammar PubidIre version \"0.1.0\" {\n digit = %x30-39\n upper = %x41-5A\n digits = 1*digit\n space = \" \"\n dash = \"-\"\n dot = \".\"\n\n year_short = (%x31-36 digit)\n year_full = ((\"191\" digit)) / ((\"19\" (\"2\" / \"3\" / \"4\" / \"5\") digit)) / ((\"196\" %x30-33))\n year = year_full / year_short\n ire_prefix = (\"IEEE-IRE\" / \"IRE\") as publisher\n ire_type = (\"Trans.\" / \"Standard\" / \"Std\") as type\n number = (((digits (space / dot) upper digits)) / ((digits dot \"IRE\" digits dot digits upper digits)) / ((2*4upper dash digits)) / (digits)) as number\n yr_sep = (space [(dash / \",\")] [space]) / (dash / \",\") / space\n date = [yr_sep (year) as year]\n\n # The trailing optional is flattened on purpose: a nested [([x] [y])]\n # compiles to branches that commit past the leading space in the\n # pure-Ruby VM, losing the backtrack the year-less forms need.\n ire_identifier_year_first = ((year) as year) space ire_prefix space [(ire_type space)] number [yr_sep (year_full) as full_year]\n ire_identifier_prefix_first = ire_prefix space [(ire_type space)] number date\n ire_identifier = ire_identifier_year_first / ire_identifier_prefix_first\n\n entry ire_identifier: ire_identifier\n\n test {\n accept \"IRE Trans. PGI-7\"\n accept \"1930 IRE 20\"\n accept \"IRE Standard 15 S1\"\n accept \"IRE 28\"\n reject \"nonsense\"\n }\n}\n","source_hash":"
|
|
1
|
+
{"bindings":null,"version":"0.1.0","grammar":"PubidIre","shape":"parsanol-tree/v2","binding_version":1,"entries":{"ire_identifier":{"root":"ire_identifier","grammar":{"atoms":[{"Entity":{"atom":90}},{"Entity":{"atom":23}},{"Entity":{"atom":18}},{"Str":{"pattern":"191"}},{"Entity":{"atom":5}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Sequence":{"atoms":[3,4]}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"2"}},{"Str":{"pattern":"3"}},{"Str":{"pattern":"4"}},{"Str":{"pattern":"5"}},{"Alternative":{"atoms":[8,9,10,11]}},{"Entity":{"atom":5}},{"Sequence":{"atoms":[7,12,13]}},{"Str":{"pattern":"196"}},{"Re":{"pattern":"[\\x30-\\x33]"}},{"Sequence":{"atoms":[15,16]}},{"Alternative":{"atoms":[6,14,17]}},{"Entity":{"atom":22}},{"Re":{"pattern":"[\\x31-\\x36]"}},{"Entity":{"atom":5}},{"Sequence":{"atoms":[20,21]}},{"Alternative":{"atoms":[2,19]}},{"Named":{"name":"year","atom":1}},{"Entity":{"atom":26}},{"Str":{"pattern":" "}},{"Entity":{"atom":31}},{"Str":{"pattern":"IEEE-IRE"}},{"Str":{"pattern":"IRE"}},{"Alternative":{"atoms":[28,29]}},{"Named":{"name":"publisher","atom":30}},{"Entity":{"atom":26}},{"Entity":{"atom":38}},{"Str":{"pattern":"Trans."}},{"Str":{"pattern":"Standard"}},{"Str":{"pattern":"Std"}},{"Alternative":{"atoms":[34,35,36]}},{"Named":{"name":"type","atom":37}},{"Entity":{"atom":26}},{"Sequence":{"atoms":[33,39]}},{"Repetition":{"atom":40,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":71}},{"Entity":{"atom":45}},{"Entity":{"atom":5}},{"Repetition":{"atom":44,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":26}},{"Entity":{"atom":48}},{"Str":{"pattern":"."}},{"Alternative":{"atoms":[46,47]}},{"Entity":{"atom":51}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Entity":{"atom":45}},{"Sequence":{"atoms":[43,49,50,52]}},{"Entity":{"atom":45}},{"Entity":{"atom":48}},{"Str":{"pattern":"IRE"}},{"Entity":{"atom":45}},{"Entity":{"atom":48}},{"Entity":{"atom":45}},{"Entity":{"atom":51}},{"Entity":{"atom":45}},{"Sequence":{"atoms":[54,55,56,57,58,59,60,61]}},{"Entity":{"atom":51}},{"Repetition":{"atom":63,"min":2,"max":4,"tag":"Repetition"}},{"Entity":{"atom":66}},{"Str":{"pattern":"-"}},{"Entity":{"atom":45}},{"Sequence":{"atoms":[64,65,67]}},{"Entity":{"atom":45}},{"Alternative":{"atoms":[53,62,68,69]}},{"Named":{"name":"number","atom":70}},{"Entity":{"atom":85}},{"Entity":{"atom":26}},{"Entity":{"atom":66}},{"Str":{"pattern":","}},{"Alternative":{"atoms":[74,75]}},{"Repetition":{"atom":76,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":26}},{"Repetition":{"atom":78,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[73,77,79]}},{"Entity":{"atom":66}},{"Str":{"pattern":","}},{"Alternative":{"atoms":[81,82]}},{"Entity":{"atom":26}},{"Alternative":{"atoms":[80,83,84]}},{"Entity":{"atom":18}},{"Named":{"name":"full_year","atom":86}},{"Sequence":{"atoms":[72,87]}},{"Repetition":{"atom":88,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[24,25,27,32,41,42,89]}},{"Entity":{"atom":105}},{"Entity":{"atom":31}},{"Entity":{"atom":26}},{"Entity":{"atom":38}},{"Entity":{"atom":26}},{"Sequence":{"atoms":[94,95]}},{"Repetition":{"atom":96,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":71}},{"Entity":{"atom":104}},{"Entity":{"atom":85}},{"Entity":{"atom":23}},{"Named":{"name":"year","atom":101}},{"Sequence":{"atoms":[100,102]}},{"Repetition":{"atom":103,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[92,93,97,98,99]}},{"Alternative":{"atoms":[0,91]}}],"root":106},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule year_full: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule year_full: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule year_full: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule year: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule yr_sep: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"ire_identifier","render":{},"derive":{},"tests":[{"entry":"ire_identifier","kind":"accept","input":"IRE Trans. PGI-7","expect":{}},{"entry":"ire_identifier","kind":"accept","input":"1930 IRE 20","expect":{}},{"entry":"ire_identifier","kind":"accept","input":"IRE Standard 15 S1","expect":{}},{"entry":"ire_identifier","kind":"accept","input":"IRE 28","expect":{}},{"entry":"ire_identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/ieee/ire/parser.rb — IRE (pre-IEEE) designations:\n# year-first and prefix-first forms, types (Trans./Standard/Std),\n# numbers (dotted letters, IRE-glued, letters-dash) and dates.\n# Consumed by the ieee grammar via `use ire`.\n\ngrammar PubidIre version \"0.1.0\" mode \"v1\" {\n digit = %x30-39\n upper = %x41-5A\n digits = 1*digit\n space = \" \"\n dash = \"-\"\n dot = \".\"\n\n year_short = (%x31-36 digit)\n year_full = ((\"191\" digit)) / ((\"19\" (\"2\" / \"3\" / \"4\" / \"5\") digit)) / ((\"196\" %x30-33))\n year = year_full / year_short\n ire_prefix = (\"IEEE-IRE\" / \"IRE\") as publisher\n ire_type = (\"Trans.\" / \"Standard\" / \"Std\") as type\n number = (((digits (space / dot) upper digits)) / ((digits dot \"IRE\" digits dot digits upper digits)) / ((2*4upper dash digits)) / (digits)) as number\n yr_sep = (space [(dash / \",\")] [space]) / (dash / \",\") / space\n date = [yr_sep (year) as year]\n\n # The trailing optional is flattened on purpose: a nested [([x] [y])]\n # compiles to branches that commit past the leading space in the\n # pure-Ruby VM, losing the backtrack the year-less forms need.\n ire_identifier_year_first = ((year) as year) space ire_prefix space [(ire_type space)] number [yr_sep (year_full) as full_year]\n ire_identifier_prefix_first = ire_prefix space [(ire_type space)] number date\n ire_identifier = ire_identifier_year_first / ire_identifier_prefix_first\n\n entry ire_identifier: ire_identifier\n\n test {\n accept \"IRE Trans. PGI-7\"\n accept \"1930 IRE 20\"\n accept \"IRE Standard 15 S1\"\n accept \"IRE 28\"\n reject \"nonsense\"\n }\n}\n","source_hash":"d03632e39bdb02326680d909c3634785c2c88da6ff7b761f2815a3b656328406","unicode_tables":"onigmo (Ruby 3.4.8)","compiler_version":"1.3.114","edition":1,"checksum":"sha256:85510f79e03cca412cf5854e82bdcec18ff143394a3c3cddf68aeba4e026bf68"}
|
data/data/parg/isbn.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"bindings":null,"version":"0.1.0","grammar":"PubidIsbn","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":
|
|
1
|
+
{"bindings":null,"version":"0.1.0","grammar":"PubidIsbn","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":14}},{"Str":{"pattern":"ISBN"}},{"Entity":{"atom":3}},{"Str":{"pattern":" "}},{"Entity":{"atom":3}},{"Repetition":{"atom":4,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":7}},{"Str":{"pattern":":"}},{"Named":{"name":"colon","atom":6}},{"Entity":{"atom":3}},{"Repetition":{"atom":9,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[5,8,10]}},{"Alternative":{"atoms":[2,11]}},{"Sequence":{"atoms":[1,12]}},{"Repetition":{"atom":13,"min":0,"max":1,"tag":"Maybe"}},{"Repetition":{"atom":0,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":32}},{"Entity":{"atom":18}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":17,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"-"}},{"Entity":{"atom":18}},{"Repetition":{"atom":21,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[20,22]}},{"Repetition":{"atom":23,"min":0,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"-"}},{"Entity":{"atom":18}},{"Str":{"pattern":"X"}},{"Alternative":{"atoms":[26,27]}},{"Sequence":{"atoms":[25,28]}},{"Repetition":{"atom":29,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[19,24,30]}},{"Named":{"name":"body","atom":31}},{"Entity":{"atom":41}},{"Entity":{"atom":18}},{"Repetition":{"atom":34,"min":9,"max":12,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Str":{"pattern":"X"}},{"Alternative":{"atoms":[36,37]}},{"Repetition":{"atom":38,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[35,39]}},{"Named":{"name":"body","atom":40}},{"Alternative":{"atoms":[16,33]}},{"Sequence":{"atoms":[15,42]}}],"root":43},"bindings":[{"capture":"body","path":"body","type":"string","card":null,"preprocess":null}]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"ISBN 978-0-306-40615-7","expect":{}},{"entry":"identifier","kind":"accept","input":"978-0-306-40615-7","expect":{}},{"entry":"identifier","kind":"accept","input":"0-306-40615-2","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/isbn/parser.rb: [ISBN[ |:]] digits/hyphens with an\n# optional final X (ISBN-10 check digit), per ISO 2108.\n\ngrammar PubidIsbn version \"0.1.0\" edition 2 {\n digit = %x30-39\n x_digit = digit / \"X\"\n isbn_prefix = [\"ISBN\" (space / ([space] colon [space]))]\n digit_group = 1*digit\n hyphen_body = (1*digit *(\"-\" 1*digit) [\"-\" (digit / \"X\")]) as body\n plain_body = (9*12digit [(digit / \"X\")]) as body\n identifier = [isbn_prefix] (hyphen_body / plain_body)\n space = \" \"\n colon = \":\"\n hyphen = \"-\"\n entry identifier: identifier\n\n bindings identifier {\n body -> body (string)\n }\n\n\n test {\n accept \"ISBN 978-0-306-40615-7\"\n accept \"978-0-306-40615-7\"\n accept \"0-306-40615-2\"\n reject \"nonsense\"\n }\n}\n","source_hash":"f51cde7d61a7430a88c5fdf9e8e9ae21b8139cc2f4bb3d3e6412739c81336bde","unicode_tables":"onigmo (Ruby 3.4.8)","compiler_version":"1.3.114","edition":2,"checksum":"sha256:e42ff78bfd5bba2199f0748c4306dcb6f00cb7b2b6bff50e71e4a93b269e0e4f"}
|