@pubid/pubid 0.1.10 → 0.1.12
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.
- package/dist/flavors/ieee/index.js +92 -10
- package/dist/flavors/ieee/model.js +93 -33
- package/dist/flavors/ieee/preprocessor.js +19 -3
- package/package.json +2 -2
- package/vendor/parg/adobe.json +1 -1
- package/vendor/parg/aiee.json +1 -1
- package/vendor/parg/amca.json +1 -1
- package/vendor/parg/ansi.json +1 -1
- package/vendor/parg/api.json +1 -1
- package/vendor/parg/ashrae.json +1 -1
- package/vendor/parg/asme.json +1 -1
- package/vendor/parg/astm.json +1 -1
- package/vendor/parg/bipm.json +1 -1
- package/vendor/parg/bsi.json +1 -1
- package/vendor/parg/calconnect.json +1 -1
- package/vendor/parg/ccsds.json +1 -1
- package/vendor/parg/cen_cenelec.json +1 -1
- package/vendor/parg/cie.json +1 -1
- package/vendor/parg/csa.json +1 -1
- package/vendor/parg/doi.json +1 -1
- package/vendor/parg/easc.json +1 -1
- package/vendor/parg/ecma.json +1 -1
- package/vendor/parg/etsi.json +1 -1
- package/vendor/parg/evs.json +1 -1
- package/vendor/parg/gb.json +1 -1
- package/vendor/parg/gost.json +1 -1
- package/vendor/parg/iala.json +1 -1
- package/vendor/parg/iana.json +1 -1
- package/vendor/parg/idf.json +1 -1
- package/vendor/parg/iec.json +1 -1
- package/vendor/parg/ieee.json +1 -1
- package/vendor/parg/ietf.json +1 -1
- package/vendor/parg/ire.json +1 -1
- package/vendor/parg/isbn.json +1 -1
- package/vendor/parg/iso.json +1 -1
- package/vendor/parg/itu.json +1 -1
- package/vendor/parg/jcgm.json +1 -1
- package/vendor/parg/jis.json +1 -1
- package/vendor/parg/nesc.json +1 -1
- package/vendor/parg/nist.json +1 -1
- package/vendor/parg/oasis.json +1 -1
- package/vendor/parg/ogc.json +1 -1
- package/vendor/parg/oiml.json +1 -1
- package/vendor/parg/omg.json +1 -1
- package/vendor/parg/parg.json +1 -1
- package/vendor/parg/plateau.json +1 -1
- package/vendor/parg/sae.json +1 -1
- package/vendor/parg/tgpp.json +1 -1
- package/vendor/parg/un.json +1 -1
- package/vendor/parg/w3c.json +1 -1
- package/vendor/parg/xsf.json +1 -1
package/vendor/parg/oasis.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"bindings":null,"version":"0.1.0","grammar":"PubidOasis","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"OASIS "}},{"Entity":{"atom":5}},{"Entity":{"atom":3}},{"Re":{"pattern":"[\\x01-\\u{10ffff}]"}},{"Repetition":{"atom":2,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"original","atom":4}},{"Sequence":{"atoms":[0,1]}}],"root":6},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"OASIS saml-core-2.0-os","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/oasis/parser.rb: the \"OASIS \" prefix is stripped and\n# the slug captured verbatim; decomposition is builder-side by design.\n# parslet `any` is approximated byte-wise (%x01-10FFFF; excludes NUL only).\n\ngrammar PubidOasis version \"0.1.0\" {\n any_char = %x01-10FFFF\n slug = (1*any_char) as original\n identifier = \"OASIS \" slug\n entry identifier: identifier\n\n test {\n accept \"OASIS saml-core-2.0-os\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:
|
|
1
|
+
{"bindings":null,"version":"0.1.0","grammar":"PubidOasis","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"OASIS "}},{"Entity":{"atom":5}},{"Entity":{"atom":3}},{"Re":{"pattern":"[\\x01-\\u{10ffff}]"}},{"Repetition":{"atom":2,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"original","atom":4}},{"Sequence":{"atoms":[0,1]}}],"root":6},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"OASIS saml-core-2.0-os","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/oasis/parser.rb: the \"OASIS \" prefix is stripped and\n# the slug captured verbatim; decomposition is builder-side by design.\n# parslet `any` is approximated byte-wise (%x01-10FFFF; excludes NUL only).\n\ngrammar PubidOasis version \"0.1.0\" {\n any_char = %x01-10FFFF\n slug = (1*any_char) as original\n identifier = \"OASIS \" slug\n entry identifier: identifier\n\n test {\n accept \"OASIS saml-core-2.0-os\"\n reject \"nonsense\"\n }\n}\n","source_hash":"a06014d95080071f7a1e0300c6ee3a6c2cdf89e4cd5c6f9db5c0420469161bc6","compiler_version":"1.3.93","checksum":"sha256:fd256223b996fc72fa8d35f2044116a3a83af055565ef3afc2ada9a0db249ee3"}
|
package/vendor/parg/ogc.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"bindings":null,"version":"0.1.0","grammar":"PubidOgc","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"OGC"}},{"Entity":{"atom":6}},{"Entity":{"atom":5}},{"Re":{"pattern":"[\\x09-\\x0d]"}},{"Re":{"pattern":"[ ]"}},{"Alternative":{"atoms":[3,4]}},{"Repetition":{"atom":2,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[0,1]}},{"Repetition":{"atom":7,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":10}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":9,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"year","atom":11}},{"Str":{"pattern":"-"}},{"Entity":{"atom":10}},{"Repetition":{"atom":14,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":15}},{"Entity":{"atom":24}},{"Entity":{"atom":22}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Alternative":{"atoms":[19,20,21]}},{"Repetition":{"atom":18,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"revision","atom":23}},{"Repetition":{"atom":17,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":5}},{"Repetition":{"atom":26,"min":0,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":27,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[8,12,13,16,25,28]}}],"root":29},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"OGC 06-121r9","expect":{}},{"entry":"identifier","kind":"accept","input":"20-024","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/ogc/parser.rb: \"<yy>-<nnn>[<revision>]\" with an\n# optional lenient \"OGC \" prefix. \\s = %x09-0D / %x20.\n\ngrammar PubidOgc version \"0.1.0\" {\n ws_char = %x09-0D / %x20\n space = 1*ws_char\n digit = %x30-39\n alnum_char = %x41-5A / %x61-7A / %x30-39\n revision = (1*alnum_char) as revision\n identifier = [\"OGC\" space] (1*digit) as year \"-\" (1*digit) as number [revision] [*ws_char]\n entry identifier: identifier\n\n test {\n accept \"OGC 06-121r9\"\n accept \"20-024\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:
|
|
1
|
+
{"bindings":null,"version":"0.1.0","grammar":"PubidOgc","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"OGC"}},{"Entity":{"atom":6}},{"Entity":{"atom":5}},{"Re":{"pattern":"[\\x09-\\x0d]"}},{"Re":{"pattern":"[ ]"}},{"Alternative":{"atoms":[3,4]}},{"Repetition":{"atom":2,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[0,1]}},{"Repetition":{"atom":7,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":10}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":9,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"year","atom":11}},{"Str":{"pattern":"-"}},{"Entity":{"atom":10}},{"Repetition":{"atom":14,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":15}},{"Entity":{"atom":24}},{"Entity":{"atom":22}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Alternative":{"atoms":[19,20,21]}},{"Repetition":{"atom":18,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"revision","atom":23}},{"Repetition":{"atom":17,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":5}},{"Repetition":{"atom":26,"min":0,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":27,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[8,12,13,16,25,28]}}],"root":29},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"OGC 06-121r9","expect":{}},{"entry":"identifier","kind":"accept","input":"20-024","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/ogc/parser.rb: \"<yy>-<nnn>[<revision>]\" with an\n# optional lenient \"OGC \" prefix. \\s = %x09-0D / %x20.\n\ngrammar PubidOgc version \"0.1.0\" {\n ws_char = %x09-0D / %x20\n space = 1*ws_char\n digit = %x30-39\n alnum_char = %x41-5A / %x61-7A / %x30-39\n revision = (1*alnum_char) as revision\n identifier = [\"OGC\" space] (1*digit) as year \"-\" (1*digit) as number [revision] [*ws_char]\n entry identifier: identifier\n\n test {\n accept \"OGC 06-121r9\"\n accept \"20-024\"\n reject \"nonsense\"\n }\n}\n","source_hash":"3f91fb4cb78c17875738a85e85b0a09f13139e1c868501693bdfa9495fdebaa2","compiler_version":"1.3.93","checksum":"sha256:9d30193d3e27b2ab554f17fe876dc8de8e2d62c8124e3ea799fdb7896ec7e474"}
|
package/vendor/parg/oiml.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"bindings":null,"version":"0.1.0","grammar":"PubidOiml","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":42}},{"Str":{"pattern":"OIML"}},{"Named":{"name":"publisher","atom":1}},{"Entity":{"atom":4}},{"Str":{"pattern":"-"}},{"Entity":{"atom":6}},{"Str":{"pattern":" "}},{"Alternative":{"atoms":[3,5]}},{"Str":{"pattern":"CS"}},{"Named":{"name":"cs_series","atom":8}},{"Entity":{"atom":6}},{"Str":{"pattern":"PD"}},{"Str":{"pattern":"OD"}},{"Str":{"pattern":"CID"}},{"Alternative":{"atoms":[11,12,13]}},{"Named":{"name":"cs_family","atom":14}},{"Entity":{"atom":4}},{"Entity":{"atom":6}},{"Alternative":{"atoms":[16,17]}},{"Named":{"name":"cs_separator","atom":18}},{"Entity":{"atom":21}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":20,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":22}},{"Entity":{"atom":6}},{"Str":{"pattern":"Edition"}},{"Entity":{"atom":6}},{"Entity":{"atom":21}},{"Repetition":{"atom":27,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"edition","atom":28}},{"Entity":{"atom":6}},{"Entity":{"atom":32}},{"Str":{"pattern":"("}},{"Str":{"pattern":"Amendment"}},{"Entity":{"atom":6}},{"Entity":{"atom":21}},{"Repetition":{"atom":35,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"cs_amendment","atom":36}},{"Entity":{"atom":39}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[30,31,33,34,37,38]}},{"Repetition":{"atom":40,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[2,7,9,10,15,19,23,24,25,26,29,41]}},{"Entity":{"atom":267}},{"Str":{"pattern":"Amendment"}},{"Entity":{"atom":6}},{"Entity":{"atom":32}},{"Entity":{"atom":56}},{"Entity":{"atom":51}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[49,50]}},{"Entity":{"atom":21}},{"Repetition":{"atom":52,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":21}},{"Lookahead":{"atom":54,"positive":false}},{"Sequence":{"atoms":[48,53,55]}},{"Named":{"name":"year","atom":47}},{"Entity":{"atom":39}},{"Entity":{"atom":6}},{"Str":{"pattern":"to"}},{"Entity":{"atom":6}},{"Entity":{"atom":216}},{"Entity":{"atom":67}},{"Str":{"pattern":"OIML"}},{"Named":{"name":"publisher","atom":64}},{"Entity":{"atom":6}},{"Sequence":{"atoms":[65,66]}},{"Entity":{"atom":80}},{"Entity":{"atom":77}},{"Re":{"pattern":"[B]"}},{"Re":{"pattern":"[D]"}},{"Re":{"pattern":"[E]"}},{"Re":{"pattern":"[G]"}},{"Re":{"pattern":"[R]"}},{"Re":{"pattern":"[S]"}},{"Re":{"pattern":"[V]"}},{"Alternative":{"atoms":[70,71,72,73,74,75,76]}},{"Named":{"name":"type","atom":69}},{"Entity":{"atom":6}},{"Sequence":{"atoms":[78,79]}},{"Entity":{"atom":144}},{"Entity":{"atom":86}},{"Entity":{"atom":85}},{"Entity":{"atom":21}},{"Repetition":{"atom":84,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":83}},{"Entity":{"atom":98}},{"Entity":{"atom":4}},{"Entity":{"atom":85}},{"Entity":{"atom":91}},{"Str":{"pattern":"/"}},{"Entity":{"atom":4}},{"Entity":{"atom":85}},{"Sequence":{"atoms":[90,92,93]}},{"Repetition":{"atom":94,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[89,95]}},{"Named":{"name":"part","atom":96}},{"Sequence":{"atoms":[88,97]}},{"Entity":{"atom":103}},{"Entity":{"atom":4}},{"Entity":{"atom":85}},{"Named":{"name":"subpart","atom":101}},{"Sequence":{"atoms":[100,102]}},{"Entity":{"atom":132}},{"Entity":{"atom":124}},{"Entity":{"atom":4}},{"Str":{"pattern":"GUM"}},{"Entity":{"atom":6}},{"Entity":{"atom":85}},{"Sequence":{"atoms":[107,108,109]}},{"Entity":{"atom":114}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[112,113]}},{"Repetition":{"atom":111,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"_"}},{"Repetition":{"atom":116,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":85}},{"Sequence":{"atoms":[117,118]}},{"Repetition":{"atom":119,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[115,120]}},{"Alternative":{"atoms":[110,121]}},{"Named":{"name":"code_suffix","atom":122}},{"Sequence":{"atoms":[106,123]}},{"Entity":{"atom":131}},{"Entity":{"atom":6}},{"Str":{"pattern":"Brochure"}},{"Named":{"name":"code_suffix","atom":127}},{"Str":{"pattern":""}},{"Named":{"name":"space_suffix","atom":129}},{"Sequence":{"atoms":[126,128,130]}},{"Alternative":{"atoms":[105,125]}},{"Repetition":{"atom":104,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[82,87,99,133]}},{"Entity":{"atom":86}},{"Entity":{"atom":98}},{"Entity":{"atom":132}},{"Repetition":{"atom":137,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[135,136,138]}},{"Entity":{"atom":86}},{"Entity":{"atom":132}},{"Repetition":{"atom":141,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[140,142]}},{"Alternative":{"atoms":[134,139,143]}},{"Entity":{"atom":195}},{"Entity":{"atom":178}},{"Str":{"pattern":", "}},{"Entity":{"atom":6}},{"Alternative":{"atoms":[147,148]}},{"Entity":{"atom":165}},{"Str":{"pattern":"6th"}},{"Str":{"pattern":"5th"}},{"Str":{"pattern":"4th"}},{"Str":{"pattern":"3rd"}},{"Str":{"pattern":"2nd"}},{"Str":{"pattern":"1st"}},{"Entity":{"atom":85}},{"Str":{"pattern":"th"}},{"Str":{"pattern":"nd"}},{"Str":{"pattern":"rd"}},{"Str":{"pattern":"st"}},{"Alternative":{"atoms":[158,159,160,161]}},{"Sequence":{"atoms":[157,162]}},{"Alternative":{"atoms":[151,152,153,154,155,156,163]}},{"Named":{"name":"edition","atom":164}},{"Repetition":{"atom":150,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Repetition":{"atom":167,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":172}},{"Str":{"pattern":"Edition"}},{"Str":{"pattern":"edition"}},{"Alternative":{"atoms":[170,171]}},{"Entity":{"atom":6}},{"Repetition":{"atom":173,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":175}},{"Sequence":{"atoms":[149,166,168,169,174,176]}},{"Named":{"name":"edition_format","atom":177}},{"Entity":{"atom":6}},{"Repetition":{"atom":179,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":182}},{"Str":{"pattern":":"}},{"Entity":{"atom":6}},{"Repetition":{"atom":183,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":185}},{"Sequence":{"atoms":[180,181,184,186]}},{"Entity":{"atom":6}},{"Repetition":{"atom":188,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":32}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":191}},{"Entity":{"atom":39}},{"Sequence":{"atoms":[189,190,192,193]}},{"Alternative":{"atoms":[146,187,194]}},{"Repetition":{"atom":145,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":214}},{"Entity":{"atom":6}},{"Entity":{"atom":207}},{"Entity":{"atom":85}},{"Entity":{"atom":202}},{"Str":{"pattern":"."}},{"Entity":{"atom":85}},{"Sequence":{"atoms":[200,201,203]}},{"Entity":{"atom":85}},{"Alternative":{"atoms":[204,205]}},{"Named":{"name":"iteration","atom":206}},{"Repetition":{"atom":199,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":213}},{"Str":{"pattern":"WD"}},{"Str":{"pattern":"CD"}},{"Alternative":{"atoms":[210,211]}},{"Named":{"name":"stage","atom":212}},{"Sequence":{"atoms":[198,208,209]}},{"Repetition":{"atom":197,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[63,68,81,196,215]}},{"Named":{"name":"base","atom":62}},{"Entity":{"atom":264}},{"Entity":{"atom":258}},{"Entity":{"atom":6}},{"Entity":{"atom":32}},{"Entity":{"atom":254}},{"Entity":{"atom":233}},{"Re":{"pattern":"[E]"}},{"Re":{"pattern":"[F]"}},{"Re":{"pattern":"[R]"}},{"Re":{"pattern":"[X]"}},{"Re":{"pattern":"[D]"}},{"Re":{"pattern":"[S]"}},{"Re":{"pattern":"[C]"}},{"Re":{"pattern":"[A]"}},{"Re":{"pattern":"[U]"}},{"Alternative":{"atoms":[224,225,226,227,228,229,230,231,232]}},{"Entity":{"atom":91}},{"Entity":{"atom":233}},{"Sequence":{"atoms":[223,234,235]}},{"Entity":{"atom":242}},{"Str":{"pattern":"PO"}},{"Str":{"pattern":"PT"}},{"Str":{"pattern":"PE"}},{"Str":{"pattern":"SR"}},{"Alternative":{"atoms":[238,239,240,241]}},{"Entity":{"atom":244}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Entity":{"atom":246}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Repetition":{"atom":245,"min":2,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[243,247]}},{"Entity":{"atom":233}},{"Entity":{"atom":252}},{"Entity":{"atom":246}},{"Repetition":{"atom":251,"min":2,"max":2,"tag":"Repetition"}},{"Alternative":{"atoms":[236,237,248,249,250]}},{"Named":{"name":"language","atom":253}},{"Entity":{"atom":39}},{"Str":{"pattern":""}},{"Named":{"name":"space_before_lang","atom":256}},{"Sequence":{"atoms":[220,221,222,255,257]}},{"Entity":{"atom":263}},{"Entity":{"atom":32}},{"Entity":{"atom":254}},{"Entity":{"atom":39}},{"Sequence":{"atoms":[260,261,262]}},{"Alternative":{"atoms":[219,259]}},{"Named":{"name":"language","atom":218}},{"Repetition":{"atom":265,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[44,45,46,57,58,59,60,61,217,266]}},{"Entity":{"atom":294}},{"Entity":{"atom":67}},{"Entity":{"atom":80}},{"Entity":{"atom":144}},{"Named":{"name":"base_code","atom":271}},{"Entity":{"atom":6}},{"Str":{"pattern":"Amendment"}},{"Named":{"name":"amd_marker","atom":274}},{"Entity":{"atom":6}},{"Entity":{"atom":172}},{"Entity":{"atom":6}},{"Repetition":{"atom":278,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":280}},{"Sequence":{"atoms":[276,277,279,281]}},{"Named":{"name":"edition_format","atom":282}},{"Entity":{"atom":182}},{"Entity":{"atom":6}},{"Repetition":{"atom":285,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":287}},{"Sequence":{"atoms":[284,286,288]}},{"Alternative":{"atoms":[283,289]}},{"Entity":{"atom":264}},{"Named":{"name":"language","atom":291}},{"Repetition":{"atom":292,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[269,270,272,273,275,290,293]}},{"Entity":{"atom":324}},{"Entity":{"atom":216}},{"Named":{"name":"base","atom":296}},{"Entity":{"atom":6}},{"Str":{"pattern":"Annex"}},{"Entity":{"atom":6}},{"Entity":{"atom":308}},{"Entity":{"atom":244}},{"Entity":{"atom":4}},{"Entity":{"atom":244}},{"Sequence":{"atoms":[303,304]}},{"Repetition":{"atom":305,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[302,306]}},{"Named":{"name":"annex_letter","atom":307}},{"Entity":{"atom":6}},{"Entity":{"atom":172}},{"Entity":{"atom":6}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":312}},{"Sequence":{"atoms":[309,310,311,313]}},{"Entity":{"atom":182}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":316}},{"Sequence":{"atoms":[315,317]}},{"Alternative":{"atoms":[314,318]}},{"Repetition":{"atom":319,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Named":{"name":"language","atom":321}},{"Repetition":{"atom":322,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[297,298,299,300,301,320,323]}},{"Entity":{"atom":347}},{"Entity":{"atom":216}},{"Named":{"name":"base","atom":326}},{"Entity":{"atom":6}},{"Str":{"pattern":"Annexes"}},{"Named":{"name":"annex_marker","atom":329}},{"Entity":{"atom":6}},{"Entity":{"atom":172}},{"Entity":{"atom":6}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":334}},{"Sequence":{"atoms":[331,332,333,335]}},{"Named":{"name":"edition_format","atom":336}},{"Entity":{"atom":182}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":339}},{"Sequence":{"atoms":[338,340]}},{"Alternative":{"atoms":[337,341]}},{"Repetition":{"atom":342,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Named":{"name":"language","atom":344}},{"Repetition":{"atom":345,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[327,328,330,343,346]}},{"Entity":{"atom":365}},{"Entity":{"atom":216}},{"Named":{"name":"base","atom":349}},{"Entity":{"atom":352}},{"Str":{"pattern":"+"}},{"Str":{"pattern":"Amendment"}},{"Str":{"pattern":"Errata"}},{"Alternative":{"atoms":[353,354]}},{"Named":{"name":"plus_marker","atom":355}},{"Entity":{"atom":182}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":358}},{"Sequence":{"atoms":[357,359]}},{"Repetition":{"atom":360,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Named":{"name":"language","atom":362}},{"Repetition":{"atom":363,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[350,351,356,361,364]}},{"Entity":{"atom":383}},{"Entity":{"atom":216}},{"Named":{"name":"base","atom":367}},{"Entity":{"atom":6}},{"Str":{"pattern":"Amendment"}},{"Str":{"pattern":"Errata"}},{"Alternative":{"atoms":[370,371]}},{"Named":{"name":"trailing_marker","atom":372}},{"Entity":{"atom":6}},{"Entity":{"atom":21}},{"Repetition":{"atom":375,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":376}},{"Sequence":{"atoms":[374,377]}},{"Repetition":{"atom":378,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Named":{"name":"language","atom":380}},{"Repetition":{"atom":381,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[368,369,373,379,382]}},{"Entity":{"atom":435}},{"Str":{"pattern":"OIML"}},{"Named":{"name":"publisher","atom":385}},{"Entity":{"atom":6}},{"Str":{"pattern":"Bulletin"}},{"Named":{"name":"type","atom":388}},{"Entity":{"atom":412}},{"Entity":{"atom":6}},{"Entity":{"atom":402}},{"Re":{"pattern":"[I]"}},{"Re":{"pattern":"[V]"}},{"Re":{"pattern":"[X]"}},{"Re":{"pattern":"[L]"}},{"Re":{"pattern":"[C]"}},{"Re":{"pattern":"[D]"}},{"Re":{"pattern":"[M]"}},{"Alternative":{"atoms":[393,394,395,396,397,398,399]}},{"Repetition":{"atom":400,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"volume_roman","atom":401}},{"Entity":{"atom":32}},{"Entity":{"atom":21}},{"Repetition":{"atom":404,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"issue_arabic","atom":405}},{"Entity":{"atom":39}},{"Entity":{"atom":6}},{"Entity":{"atom":21}},{"Repetition":{"atom":409,"min":8,"max":8,"tag":"Repetition"}},{"Named":{"name":"article_id","atom":410}},{"Sequence":{"atoms":[391,392,403,406,407,408,411]}},{"Entity":{"atom":429}},{"Entity":{"atom":6}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":415}},{"Entity":{"atom":4}},{"Entity":{"atom":420}},{"Entity":{"atom":21}},{"Repetition":{"atom":419,"min":2,"max":null,"tag":"Repetition"}},{"Named":{"name":"issue","atom":418}},{"Sequence":{"atoms":[417,421]}},{"Repetition":{"atom":422,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":4}},{"Entity":{"atom":420}},{"Named":{"name":"sequence","atom":425}},{"Sequence":{"atoms":[424,426]}},{"Repetition":{"atom":427,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[414,416,423,428]}},{"Alternative":{"atoms":[390,413]}},{"Repetition":{"atom":430,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Named":{"name":"language","atom":432}},{"Repetition":{"atom":433,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[386,387,389,431,434]}},{"Entity":{"atom":446}},{"Entity":{"atom":67}},{"Entity":{"atom":80}},{"Entity":{"atom":144}},{"Entity":{"atom":195}},{"Repetition":{"atom":440,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":214}},{"Repetition":{"atom":442,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":444,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[437,438,439,441,443,445]}},{"Alternative":{"atoms":[0,43,268,295,325,348,366,384,436]}}],"root":447},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule roman_numeral: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule full_number: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule full_number: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule full_number: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule date: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule date: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule date: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule lang_multi_oiml: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule lang_multi_oiml: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule lang_multi_oiml: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 9 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"OIML V 2 Edition 2007","expect":{}},{"entry":"identifier","kind":"accept","input":"OIML R 137-1:2012","expect":{}},{"entry":"identifier","kind":"accept","input":"OIML D 11","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/oiml/parser.rb — OIML identifiers: the base form,\n# drafts, amendments (full/short/+/trailing), annexes, bulletins.\n\ngrammar PubidOiml version \"0.1.0\" {\n # The monorepo's doc_type is [BDEGRSV] — X is deliberately absent\n # (\"OIML X 99\" must be rejected).\n letter_bdegrsvx = %x42 / %x44 / %x45 / %x47 / %x52 / %x53 / %x56\n digit = %x30-39\n letter = %x41-5A / %x61-7A\n digits = 1*digit\n two_digits = 2*digit\n space = \" \"\n dash = \"-\"\n colon = \":\"\n slash = \"/\"\n lparen = \"(\"\n rparen = \")\"\n dot = \".\"\n plus = \"+\"\n century = \"19\" / \"20\"\n year_digits = century 2*digit !digit\n\n publisher = \"OIML\" as publisher space\n doc_type = letter_bdegrsvx as type space\n two_digits_c = two_digits\n\n bulletin_date = space year_digits as year [(dash two_digits as issue)] [(dash two_digits as sequence)]\n roman_numeral = 1*%x49 / 1*(%x49 / %x56 / %x58 / %x4C / %x43 / %x44 / %x4D)\n roman = (1*(%x49 / %x56 / %x58 / %x4C / %x43 / %x44 / %x4D)) as volume_roman\n bulletin_citation = space roman lparen (1*digit) as issue_arabic rparen space (8digit) as article_id\n bulletin_identifier = \"OIML\" as publisher space \"Bulletin\" as type [bulletin_citation / bulletin_date] [language_portion as language]\n\n number_only = digits as number\n part_number = dash (digits *(slash dash digits)) as part\n subpart_number = dash digits as subpart\n named_suffix_gum = dash (\"GUM\" space digits / (1*letter *(([\"_\"] digits)))) as code_suffix\n named_suffix_brochure = space \"Brochure\" as code_suffix (\"\" as space_suffix)\n named_suffix = named_suffix_gum / named_suffix_brochure\n full_number = (number_only part_number subpart_number [named_suffix]) / (number_only part_number [named_suffix]) / (number_only [named_suffix])\n\n edition_number = (\"6th\" / \"5th\" / \"4th\" / \"3rd\" / \"2nd\" / \"1st\" / (digits (\"th\" / \"nd\" / \"rd\" / \"st\"))) as edition\n edition_text = \"Edition\" / \"edition\"\n edition_portion = ((\", \" / space) [edition_number] [space] edition_text [space] year_digits as year) as edition_format\n date = edition_portion / ([space] colon [space] year_digits as year) / ([space] lparen year_digits as year rparen)\n stage_iteration = ((digits dot digits) / digits) as iteration\n stage_abbr = (\"WD\" / \"CD\") as stage\n draft_stage = space [stage_iteration] stage_abbr\n\n lang_single = %x45 / %x46 / %x52 / %x58 / %x44 / %x53 / %x43 / %x41 / %x55\n lang_multi_oiml = \"PO\" / \"PT\" / \"PE\" / \"SR\"\n lang_multi = 2*2lower\n lower = %x61-7A\n language_code = ((lang_single slash lang_single) / lang_multi_oiml / (upper 2*2lower) / lang_single / lang_multi) as language\n language_with_space = space lparen language_code rparen (\"\" as space_before_lang)\n language_without_space = lparen language_code rparen\n language_portion = language_with_space / language_without_space\n\n amendment_identifier = \"Amendment\" space lparen year_digits as year rparen space \"to\" space (base_without_language as base) [language_portion as language]\n amendment_short = publisher doc_type (full_number as base_code) space \"Amendment\" as amd_marker ((space edition_text [space] year_digits as year) as edition_format / (colon [space] year_digits as year)) [language_portion as language]\n trailing_supplement_identifier = (base_without_language as base) space (\"Amendment\" / \"Errata\") as trailing_marker [space ((1*digit)) as number] [language_portion as language]\n plus_supplement_identifier = (base_without_language as base) plus (\"Amendment\" / \"Errata\") as plus_marker [(colon year_digits as year)] [language_portion as language]\n annex_identifier = (base_without_language as base) space \"Annexes\" as annex_marker [((space edition_text space year_digits as year) as edition_format / (colon year_digits as year))] [language_portion as language]\n annex_letter_value = (upper [(dash upper)]) as annex_letter\n annex_letter_identifier = (base_without_language as base) space \"Annex\" space annex_letter_value [((space edition_text space year_digits as year) / (colon year_digits as year))] [language_portion as language]\n base_without_language = publisher doc_type full_number [date] [draft_stage]\n base = publisher doc_type full_number [date] [draft_stage] [language_portion]\n\n cs_identifier = (\"OIML\" as publisher (dash / space) \"CS\" as cs_series space (\"PD\" / \"OD\" / \"CID\") as cs_family (dash / space) as cs_separator (1*digit) as number space \"Edition\" space (1*digit) as edition [(space lparen \"Amendment\" space (1*digit) as cs_amendment rparen)])\n identifier = cs_identifier / amendment_identifier / amendment_short / annex_letter_identifier / annex_identifier / plus_supplement_identifier / trailing_supplement_identifier / bulletin_identifier / base\n\n upper = %x41-5A\n entry identifier: identifier\n\n test {\n accept \"OIML V 2 Edition 2007\"\n accept \"OIML R 137-1:2012\"\n accept \"OIML D 11\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:7cf80f6da36d454159fc18ea3b684bbc56312501c05a30922852f11578bfcf90"}
|
|
1
|
+
{"bindings":null,"version":"0.1.0","grammar":"PubidOiml","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":42}},{"Str":{"pattern":"OIML"}},{"Named":{"name":"publisher","atom":1}},{"Entity":{"atom":4}},{"Str":{"pattern":"-"}},{"Entity":{"atom":6}},{"Str":{"pattern":" "}},{"Alternative":{"atoms":[3,5]}},{"Str":{"pattern":"CS"}},{"Named":{"name":"cs_series","atom":8}},{"Entity":{"atom":6}},{"Str":{"pattern":"PD"}},{"Str":{"pattern":"OD"}},{"Str":{"pattern":"CID"}},{"Alternative":{"atoms":[11,12,13]}},{"Named":{"name":"cs_family","atom":14}},{"Entity":{"atom":4}},{"Entity":{"atom":6}},{"Alternative":{"atoms":[16,17]}},{"Named":{"name":"cs_separator","atom":18}},{"Entity":{"atom":21}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":20,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":22}},{"Entity":{"atom":6}},{"Str":{"pattern":"Edition"}},{"Entity":{"atom":6}},{"Entity":{"atom":21}},{"Repetition":{"atom":27,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"edition","atom":28}},{"Entity":{"atom":6}},{"Entity":{"atom":32}},{"Str":{"pattern":"("}},{"Str":{"pattern":"Amendment"}},{"Entity":{"atom":6}},{"Entity":{"atom":21}},{"Repetition":{"atom":35,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"cs_amendment","atom":36}},{"Entity":{"atom":39}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[30,31,33,34,37,38]}},{"Repetition":{"atom":40,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[2,7,9,10,15,19,23,24,25,26,29,41]}},{"Entity":{"atom":267}},{"Str":{"pattern":"Amendment"}},{"Entity":{"atom":6}},{"Entity":{"atom":32}},{"Entity":{"atom":56}},{"Entity":{"atom":51}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[49,50]}},{"Entity":{"atom":21}},{"Repetition":{"atom":52,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":21}},{"Lookahead":{"atom":54,"positive":false}},{"Sequence":{"atoms":[48,53,55]}},{"Named":{"name":"year","atom":47}},{"Entity":{"atom":39}},{"Entity":{"atom":6}},{"Str":{"pattern":"to"}},{"Entity":{"atom":6}},{"Entity":{"atom":216}},{"Entity":{"atom":67}},{"Str":{"pattern":"OIML"}},{"Named":{"name":"publisher","atom":64}},{"Entity":{"atom":6}},{"Sequence":{"atoms":[65,66]}},{"Entity":{"atom":80}},{"Entity":{"atom":77}},{"Re":{"pattern":"[B]"}},{"Re":{"pattern":"[D]"}},{"Re":{"pattern":"[E]"}},{"Re":{"pattern":"[G]"}},{"Re":{"pattern":"[R]"}},{"Re":{"pattern":"[S]"}},{"Re":{"pattern":"[V]"}},{"Alternative":{"atoms":[70,71,72,73,74,75,76]}},{"Named":{"name":"type","atom":69}},{"Entity":{"atom":6}},{"Sequence":{"atoms":[78,79]}},{"Entity":{"atom":144}},{"Entity":{"atom":86}},{"Entity":{"atom":85}},{"Entity":{"atom":21}},{"Repetition":{"atom":84,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":83}},{"Entity":{"atom":98}},{"Entity":{"atom":4}},{"Entity":{"atom":85}},{"Entity":{"atom":91}},{"Str":{"pattern":"/"}},{"Entity":{"atom":4}},{"Entity":{"atom":85}},{"Sequence":{"atoms":[90,92,93]}},{"Repetition":{"atom":94,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[89,95]}},{"Named":{"name":"part","atom":96}},{"Sequence":{"atoms":[88,97]}},{"Entity":{"atom":103}},{"Entity":{"atom":4}},{"Entity":{"atom":85}},{"Named":{"name":"subpart","atom":101}},{"Sequence":{"atoms":[100,102]}},{"Entity":{"atom":132}},{"Entity":{"atom":124}},{"Entity":{"atom":4}},{"Str":{"pattern":"GUM"}},{"Entity":{"atom":6}},{"Entity":{"atom":85}},{"Sequence":{"atoms":[107,108,109]}},{"Entity":{"atom":114}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[112,113]}},{"Repetition":{"atom":111,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"_"}},{"Repetition":{"atom":116,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":85}},{"Sequence":{"atoms":[117,118]}},{"Repetition":{"atom":119,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[115,120]}},{"Alternative":{"atoms":[110,121]}},{"Named":{"name":"code_suffix","atom":122}},{"Sequence":{"atoms":[106,123]}},{"Entity":{"atom":131}},{"Entity":{"atom":6}},{"Str":{"pattern":"Brochure"}},{"Named":{"name":"code_suffix","atom":127}},{"Str":{"pattern":""}},{"Named":{"name":"space_suffix","atom":129}},{"Sequence":{"atoms":[126,128,130]}},{"Alternative":{"atoms":[105,125]}},{"Repetition":{"atom":104,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[82,87,99,133]}},{"Entity":{"atom":86}},{"Entity":{"atom":98}},{"Entity":{"atom":132}},{"Repetition":{"atom":137,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[135,136,138]}},{"Entity":{"atom":86}},{"Entity":{"atom":132}},{"Repetition":{"atom":141,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[140,142]}},{"Alternative":{"atoms":[134,139,143]}},{"Entity":{"atom":195}},{"Entity":{"atom":178}},{"Str":{"pattern":", "}},{"Entity":{"atom":6}},{"Alternative":{"atoms":[147,148]}},{"Entity":{"atom":165}},{"Str":{"pattern":"6th"}},{"Str":{"pattern":"5th"}},{"Str":{"pattern":"4th"}},{"Str":{"pattern":"3rd"}},{"Str":{"pattern":"2nd"}},{"Str":{"pattern":"1st"}},{"Entity":{"atom":85}},{"Str":{"pattern":"th"}},{"Str":{"pattern":"nd"}},{"Str":{"pattern":"rd"}},{"Str":{"pattern":"st"}},{"Alternative":{"atoms":[158,159,160,161]}},{"Sequence":{"atoms":[157,162]}},{"Alternative":{"atoms":[151,152,153,154,155,156,163]}},{"Named":{"name":"edition","atom":164}},{"Repetition":{"atom":150,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Repetition":{"atom":167,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":172}},{"Str":{"pattern":"Edition"}},{"Str":{"pattern":"edition"}},{"Alternative":{"atoms":[170,171]}},{"Entity":{"atom":6}},{"Repetition":{"atom":173,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":175}},{"Sequence":{"atoms":[149,166,168,169,174,176]}},{"Named":{"name":"edition_format","atom":177}},{"Entity":{"atom":6}},{"Repetition":{"atom":179,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":182}},{"Str":{"pattern":":"}},{"Entity":{"atom":6}},{"Repetition":{"atom":183,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":185}},{"Sequence":{"atoms":[180,181,184,186]}},{"Entity":{"atom":6}},{"Repetition":{"atom":188,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":32}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":191}},{"Entity":{"atom":39}},{"Sequence":{"atoms":[189,190,192,193]}},{"Alternative":{"atoms":[146,187,194]}},{"Repetition":{"atom":145,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":214}},{"Entity":{"atom":6}},{"Entity":{"atom":207}},{"Entity":{"atom":85}},{"Entity":{"atom":202}},{"Str":{"pattern":"."}},{"Entity":{"atom":85}},{"Sequence":{"atoms":[200,201,203]}},{"Entity":{"atom":85}},{"Alternative":{"atoms":[204,205]}},{"Named":{"name":"iteration","atom":206}},{"Repetition":{"atom":199,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":213}},{"Str":{"pattern":"WD"}},{"Str":{"pattern":"CD"}},{"Alternative":{"atoms":[210,211]}},{"Named":{"name":"stage","atom":212}},{"Sequence":{"atoms":[198,208,209]}},{"Repetition":{"atom":197,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[63,68,81,196,215]}},{"Named":{"name":"base","atom":62}},{"Entity":{"atom":264}},{"Entity":{"atom":258}},{"Entity":{"atom":6}},{"Entity":{"atom":32}},{"Entity":{"atom":254}},{"Entity":{"atom":233}},{"Re":{"pattern":"[E]"}},{"Re":{"pattern":"[F]"}},{"Re":{"pattern":"[R]"}},{"Re":{"pattern":"[X]"}},{"Re":{"pattern":"[D]"}},{"Re":{"pattern":"[S]"}},{"Re":{"pattern":"[C]"}},{"Re":{"pattern":"[A]"}},{"Re":{"pattern":"[U]"}},{"Alternative":{"atoms":[224,225,226,227,228,229,230,231,232]}},{"Entity":{"atom":91}},{"Entity":{"atom":233}},{"Sequence":{"atoms":[223,234,235]}},{"Entity":{"atom":242}},{"Str":{"pattern":"PO"}},{"Str":{"pattern":"PT"}},{"Str":{"pattern":"PE"}},{"Str":{"pattern":"SR"}},{"Alternative":{"atoms":[238,239,240,241]}},{"Entity":{"atom":244}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Entity":{"atom":246}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Repetition":{"atom":245,"min":2,"max":2,"tag":"Repetition"}},{"Sequence":{"atoms":[243,247]}},{"Entity":{"atom":233}},{"Entity":{"atom":252}},{"Entity":{"atom":246}},{"Repetition":{"atom":251,"min":2,"max":2,"tag":"Repetition"}},{"Alternative":{"atoms":[236,237,248,249,250]}},{"Named":{"name":"language","atom":253}},{"Entity":{"atom":39}},{"Str":{"pattern":""}},{"Named":{"name":"space_before_lang","atom":256}},{"Sequence":{"atoms":[220,221,222,255,257]}},{"Entity":{"atom":263}},{"Entity":{"atom":32}},{"Entity":{"atom":254}},{"Entity":{"atom":39}},{"Sequence":{"atoms":[260,261,262]}},{"Alternative":{"atoms":[219,259]}},{"Named":{"name":"language","atom":218}},{"Repetition":{"atom":265,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[44,45,46,57,58,59,60,61,217,266]}},{"Entity":{"atom":294}},{"Entity":{"atom":67}},{"Entity":{"atom":80}},{"Entity":{"atom":144}},{"Named":{"name":"base_code","atom":271}},{"Entity":{"atom":6}},{"Str":{"pattern":"Amendment"}},{"Named":{"name":"amd_marker","atom":274}},{"Entity":{"atom":6}},{"Entity":{"atom":172}},{"Entity":{"atom":6}},{"Repetition":{"atom":278,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":280}},{"Sequence":{"atoms":[276,277,279,281]}},{"Named":{"name":"edition_format","atom":282}},{"Entity":{"atom":182}},{"Entity":{"atom":6}},{"Repetition":{"atom":285,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":287}},{"Sequence":{"atoms":[284,286,288]}},{"Alternative":{"atoms":[283,289]}},{"Entity":{"atom":264}},{"Named":{"name":"language","atom":291}},{"Repetition":{"atom":292,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[269,270,272,273,275,290,293]}},{"Entity":{"atom":324}},{"Entity":{"atom":216}},{"Named":{"name":"base","atom":296}},{"Entity":{"atom":6}},{"Str":{"pattern":"Annex"}},{"Entity":{"atom":6}},{"Entity":{"atom":308}},{"Entity":{"atom":244}},{"Entity":{"atom":4}},{"Entity":{"atom":244}},{"Sequence":{"atoms":[303,304]}},{"Repetition":{"atom":305,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[302,306]}},{"Named":{"name":"annex_letter","atom":307}},{"Entity":{"atom":6}},{"Entity":{"atom":172}},{"Entity":{"atom":6}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":312}},{"Sequence":{"atoms":[309,310,311,313]}},{"Entity":{"atom":182}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":316}},{"Sequence":{"atoms":[315,317]}},{"Alternative":{"atoms":[314,318]}},{"Repetition":{"atom":319,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Named":{"name":"language","atom":321}},{"Repetition":{"atom":322,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[297,298,299,300,301,320,323]}},{"Entity":{"atom":347}},{"Entity":{"atom":216}},{"Named":{"name":"base","atom":326}},{"Entity":{"atom":6}},{"Str":{"pattern":"Annexes"}},{"Named":{"name":"annex_marker","atom":329}},{"Entity":{"atom":6}},{"Entity":{"atom":172}},{"Entity":{"atom":6}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":334}},{"Sequence":{"atoms":[331,332,333,335]}},{"Named":{"name":"edition_format","atom":336}},{"Entity":{"atom":182}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":339}},{"Sequence":{"atoms":[338,340]}},{"Alternative":{"atoms":[337,341]}},{"Repetition":{"atom":342,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Named":{"name":"language","atom":344}},{"Repetition":{"atom":345,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[327,328,330,343,346]}},{"Entity":{"atom":365}},{"Entity":{"atom":216}},{"Named":{"name":"base","atom":349}},{"Entity":{"atom":352}},{"Str":{"pattern":"+"}},{"Str":{"pattern":"Amendment"}},{"Str":{"pattern":"Errata"}},{"Alternative":{"atoms":[353,354]}},{"Named":{"name":"plus_marker","atom":355}},{"Entity":{"atom":182}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":358}},{"Sequence":{"atoms":[357,359]}},{"Repetition":{"atom":360,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Named":{"name":"language","atom":362}},{"Repetition":{"atom":363,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[350,351,356,361,364]}},{"Entity":{"atom":383}},{"Entity":{"atom":216}},{"Named":{"name":"base","atom":367}},{"Entity":{"atom":6}},{"Str":{"pattern":"Amendment"}},{"Str":{"pattern":"Errata"}},{"Alternative":{"atoms":[370,371]}},{"Named":{"name":"trailing_marker","atom":372}},{"Entity":{"atom":6}},{"Entity":{"atom":21}},{"Repetition":{"atom":375,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":376}},{"Sequence":{"atoms":[374,377]}},{"Repetition":{"atom":378,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Named":{"name":"language","atom":380}},{"Repetition":{"atom":381,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[368,369,373,379,382]}},{"Entity":{"atom":435}},{"Str":{"pattern":"OIML"}},{"Named":{"name":"publisher","atom":385}},{"Entity":{"atom":6}},{"Str":{"pattern":"Bulletin"}},{"Named":{"name":"type","atom":388}},{"Entity":{"atom":412}},{"Entity":{"atom":6}},{"Entity":{"atom":402}},{"Re":{"pattern":"[I]"}},{"Re":{"pattern":"[V]"}},{"Re":{"pattern":"[X]"}},{"Re":{"pattern":"[L]"}},{"Re":{"pattern":"[C]"}},{"Re":{"pattern":"[D]"}},{"Re":{"pattern":"[M]"}},{"Alternative":{"atoms":[393,394,395,396,397,398,399]}},{"Repetition":{"atom":400,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"volume_roman","atom":401}},{"Entity":{"atom":32}},{"Entity":{"atom":21}},{"Repetition":{"atom":404,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"issue_arabic","atom":405}},{"Entity":{"atom":39}},{"Entity":{"atom":6}},{"Entity":{"atom":21}},{"Repetition":{"atom":409,"min":8,"max":8,"tag":"Repetition"}},{"Named":{"name":"article_id","atom":410}},{"Sequence":{"atoms":[391,392,403,406,407,408,411]}},{"Entity":{"atom":429}},{"Entity":{"atom":6}},{"Entity":{"atom":56}},{"Named":{"name":"year","atom":415}},{"Entity":{"atom":4}},{"Entity":{"atom":420}},{"Entity":{"atom":21}},{"Repetition":{"atom":419,"min":2,"max":null,"tag":"Repetition"}},{"Named":{"name":"issue","atom":418}},{"Sequence":{"atoms":[417,421]}},{"Repetition":{"atom":422,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":4}},{"Entity":{"atom":420}},{"Named":{"name":"sequence","atom":425}},{"Sequence":{"atoms":[424,426]}},{"Repetition":{"atom":427,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[414,416,423,428]}},{"Alternative":{"atoms":[390,413]}},{"Repetition":{"atom":430,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Named":{"name":"language","atom":432}},{"Repetition":{"atom":433,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[386,387,389,431,434]}},{"Entity":{"atom":446}},{"Entity":{"atom":67}},{"Entity":{"atom":80}},{"Entity":{"atom":144}},{"Entity":{"atom":195}},{"Repetition":{"atom":440,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":214}},{"Repetition":{"atom":442,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":264}},{"Repetition":{"atom":444,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[437,438,439,441,443,445]}},{"Alternative":{"atoms":[0,43,268,295,325,348,366,384,436]}}],"root":447},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule roman_numeral: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule full_number: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule full_number: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule full_number: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule date: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule date: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule date: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule lang_multi_oiml: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule lang_multi_oiml: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule lang_multi_oiml: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 9 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"OIML V 2 Edition 2007","expect":{}},{"entry":"identifier","kind":"accept","input":"OIML R 137-1:2012","expect":{}},{"entry":"identifier","kind":"accept","input":"OIML D 11","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/oiml/parser.rb — OIML identifiers: the base form,\n# drafts, amendments (full/short/+/trailing), annexes, bulletins.\n\ngrammar PubidOiml version \"0.1.0\" {\n # The monorepo's doc_type is [BDEGRSV] — X is deliberately absent\n # (\"OIML X 99\" must be rejected).\n letter_bdegrsvx = %x42 / %x44 / %x45 / %x47 / %x52 / %x53 / %x56\n digit = %x30-39\n letter = %x41-5A / %x61-7A\n digits = 1*digit\n two_digits = 2*digit\n space = \" \"\n dash = \"-\"\n colon = \":\"\n slash = \"/\"\n lparen = \"(\"\n rparen = \")\"\n dot = \".\"\n plus = \"+\"\n century = \"19\" / \"20\"\n year_digits = century 2*digit !digit\n\n publisher = \"OIML\" as publisher space\n doc_type = letter_bdegrsvx as type space\n two_digits_c = two_digits\n\n bulletin_date = space year_digits as year [(dash two_digits as issue)] [(dash two_digits as sequence)]\n roman_numeral = 1*%x49 / 1*(%x49 / %x56 / %x58 / %x4C / %x43 / %x44 / %x4D)\n roman = (1*(%x49 / %x56 / %x58 / %x4C / %x43 / %x44 / %x4D)) as volume_roman\n bulletin_citation = space roman lparen (1*digit) as issue_arabic rparen space (8digit) as article_id\n bulletin_identifier = \"OIML\" as publisher space \"Bulletin\" as type [bulletin_citation / bulletin_date] [language_portion as language]\n\n number_only = digits as number\n part_number = dash (digits *(slash dash digits)) as part\n subpart_number = dash digits as subpart\n named_suffix_gum = dash (\"GUM\" space digits / (1*letter *(([\"_\"] digits)))) as code_suffix\n named_suffix_brochure = space \"Brochure\" as code_suffix (\"\" as space_suffix)\n named_suffix = named_suffix_gum / named_suffix_brochure\n full_number = (number_only part_number subpart_number [named_suffix]) / (number_only part_number [named_suffix]) / (number_only [named_suffix])\n\n edition_number = (\"6th\" / \"5th\" / \"4th\" / \"3rd\" / \"2nd\" / \"1st\" / (digits (\"th\" / \"nd\" / \"rd\" / \"st\"))) as edition\n edition_text = \"Edition\" / \"edition\"\n edition_portion = ((\", \" / space) [edition_number] [space] edition_text [space] year_digits as year) as edition_format\n date = edition_portion / ([space] colon [space] year_digits as year) / ([space] lparen year_digits as year rparen)\n stage_iteration = ((digits dot digits) / digits) as iteration\n stage_abbr = (\"WD\" / \"CD\") as stage\n draft_stage = space [stage_iteration] stage_abbr\n\n lang_single = %x45 / %x46 / %x52 / %x58 / %x44 / %x53 / %x43 / %x41 / %x55\n lang_multi_oiml = \"PO\" / \"PT\" / \"PE\" / \"SR\"\n lang_multi = 2*2lower\n lower = %x61-7A\n language_code = ((lang_single slash lang_single) / lang_multi_oiml / (upper 2*2lower) / lang_single / lang_multi) as language\n language_with_space = space lparen language_code rparen (\"\" as space_before_lang)\n language_without_space = lparen language_code rparen\n language_portion = language_with_space / language_without_space\n\n amendment_identifier = \"Amendment\" space lparen year_digits as year rparen space \"to\" space (base_without_language as base) [language_portion as language]\n amendment_short = publisher doc_type (full_number as base_code) space \"Amendment\" as amd_marker ((space edition_text [space] year_digits as year) as edition_format / (colon [space] year_digits as year)) [language_portion as language]\n trailing_supplement_identifier = (base_without_language as base) space (\"Amendment\" / \"Errata\") as trailing_marker [space ((1*digit)) as number] [language_portion as language]\n plus_supplement_identifier = (base_without_language as base) plus (\"Amendment\" / \"Errata\") as plus_marker [(colon year_digits as year)] [language_portion as language]\n annex_identifier = (base_without_language as base) space \"Annexes\" as annex_marker [((space edition_text space year_digits as year) as edition_format / (colon year_digits as year))] [language_portion as language]\n annex_letter_value = (upper [(dash upper)]) as annex_letter\n annex_letter_identifier = (base_without_language as base) space \"Annex\" space annex_letter_value [((space edition_text space year_digits as year) / (colon year_digits as year))] [language_portion as language]\n base_without_language = publisher doc_type full_number [date] [draft_stage]\n base = publisher doc_type full_number [date] [draft_stage] [language_portion]\n\n cs_identifier = (\"OIML\" as publisher (dash / space) \"CS\" as cs_series space (\"PD\" / \"OD\" / \"CID\") as cs_family (dash / space) as cs_separator (1*digit) as number space \"Edition\" space (1*digit) as edition [(space lparen \"Amendment\" space (1*digit) as cs_amendment rparen)])\n identifier = cs_identifier / amendment_identifier / amendment_short / annex_letter_identifier / annex_identifier / plus_supplement_identifier / trailing_supplement_identifier / bulletin_identifier / base\n\n upper = %x41-5A\n entry identifier: identifier\n\n test {\n accept \"OIML V 2 Edition 2007\"\n accept \"OIML R 137-1:2012\"\n accept \"OIML D 11\"\n reject \"nonsense\"\n }\n}\n","source_hash":"df21b7eded640f7f5df02e1e3e283f7d2a949fa9cc919485021041a9ad8964d3","compiler_version":"1.3.93","checksum":"sha256:9e6ccf869b05a85386ddd8835b16f32fe35970b33e069960014768382ccee6e5"}
|
package/vendor/parg/omg.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"bindings":null,"version":"0.1.0","grammar":"PubidOmg","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"OMG"}},{"Entity":{"atom":2}},{"Str":{"pattern":" "}},{"Entity":{"atom":24}},{"Entity":{"atom":7}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[5,6]}},{"Entity":{"atom":13}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[+]"}},{"Alternative":{"atoms":[9,10,11,12]}},{"Repetition":{"atom":8,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Re":{"pattern":"[\\-]"}},{"Re":{"pattern":"[/]"}},{"Alternative":{"atoms":[16,17]}},{"Entity":{"atom":13}},{"Repetition":{"atom":19,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[15,20]}},{"Repetition":{"atom":21,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[4,14,22]}},{"Named":{"name":"acronym","atom":23}},{"Entity":{"atom":2}},{"Entity":{"atom":
|
|
1
|
+
{"bindings":null,"version":"0.1.0","grammar":"PubidOmg","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"OMG"}},{"Entity":{"atom":2}},{"Str":{"pattern":" "}},{"Entity":{"atom":24}},{"Entity":{"atom":7}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[5,6]}},{"Entity":{"atom":13}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[+]"}},{"Alternative":{"atoms":[9,10,11,12]}},{"Repetition":{"atom":8,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":18}},{"Re":{"pattern":"[\\-]"}},{"Re":{"pattern":"[/]"}},{"Alternative":{"atoms":[16,17]}},{"Entity":{"atom":13}},{"Repetition":{"atom":19,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[15,20]}},{"Repetition":{"atom":21,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[4,14,22]}},{"Named":{"name":"acronym","atom":23}},{"Entity":{"atom":2}},{"Entity":{"atom":63}},{"Entity":{"atom":28}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":27,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":31}},{"Str":{"pattern":"."}},{"Entity":{"atom":28}},{"Repetition":{"atom":32,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[30,33]}},{"Repetition":{"atom":34,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":60}},{"Str":{"pattern":" beta"}},{"Entity":{"atom":42}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Alternative":{"atoms":[39,40,41]}},{"Lookahead":{"atom":38,"positive":false}},{"Entity":{"atom":2}},{"Entity":{"atom":28}},{"Repetition":{"atom":45,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":42}},{"Lookahead":{"atom":47,"positive":false}},{"Sequence":{"atoms":[44,46,48]}},{"Repetition":{"atom":49,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[37,43,50]}},{"Entity":{"atom":2}},{"Str":{"pattern":"Beta"}},{"Entity":{"atom":28}},{"Repetition":{"atom":54,"min":1,"max":null,"tag":"Repetition"}},{"Repetition":{"atom":55,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":42}},{"Lookahead":{"atom":57,"positive":false}},{"Sequence":{"atoms":[52,53,56,58]}},{"Alternative":{"atoms":[51,59]}},{"Repetition":{"atom":36,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[29,35,61]}},{"Named":{"name":"version","atom":62}},{"Entity":{"atom":68}},{"Entity":{"atom":2}},{"Entity":{"atom":67}},{"Str":{"pattern":"/"}},{"Alternative":{"atoms":[65,66]}},{"Entity":{"atom":72}},{"Entity":{"atom":42}},{"Repetition":{"atom":70,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"part","atom":71}},{"Sequence":{"atoms":[64,69]}},{"Repetition":{"atom":73,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[25,26,74]}},{"Entity":{"atom":2}},{"Entity":{"atom":72}},{"Sequence":{"atoms":[76,77]}},{"Alternative":{"atoms":[75,78]}},{"Repetition":{"atom":79,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[0,1,3,80]}}],"root":81},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule beta: 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":"OMG IDL 4.2","expect":{}},{"entry":"identifier","kind":"accept","input":"OMG UML 2.5.1","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/omg/parser.rb: OMG <acronym>[ <version>[<sep><part>]]\n# with the beta-label word-boundary guards (a bare \"beta\" must not be\n# swallowed by the part rule). The GLUED CATALOGUE label (\"Beta1\" --\n# capitalized, the /spec/ALMAS/1.5/Beta1 URL segment) classifies into\n# the version (the 2026-10-19 pubid#548 ruling); the LOWERCASE glued\n# form (\"beta2\") stays a document part (the DDS ruling, spec-pinned). A\n# /spec/ALMAS/1.5/Beta1 URL segment) classifies into the version (the\n# 2026-10-19 pubid#548 ruling); a Beta-prefixed part without digits\n# (\"BetaWave\") still lexes as the part — the boundary guard keeps it.\n grammar PubidOmg version \"0.1.0\" {\n digit = %x30-39\n acronym_char = %x41-5A / %x61-7A / %x30-39 / %x2B\n acronym_join = %x2D / %x2F\n acronym = (letter 1*acronym_char *(acronym_join 1*acronym_char)) as acronym\n word_boundary = !alnum_char\n beta = (\" beta\" !alnum_char ([space 1*digit !alnum_char]) / (space \"Beta\" [1*digit] !alnum_char))\n version = (1*digit *(dot 1*digit) [beta]) as version\n part_separator = space / slash\n part = (1*alnum_char) as part\n identifier = \"OMG\" space acronym [((space version [part_separator part]) / (space part))]\n alnum_char = %x41-5A / %x61-7A / %x30-39\n letter = %x41-5A / %x61-7A\n dot = \".\"\n slash = \"/\"\n space = \" \"\n entry identifier: identifier\n\n test {\n accept \"OMG IDL 4.2\"\n accept \"OMG UML 2.5.1\"\n reject \"nonsense\"\n }\n}\n","source_hash":"9ed6dcd5dff95df514aa465c3cbd923780c6275761db3415b8eba5e05213cd20","compiler_version":"1.3.93","checksum":"sha256:d33c557faf6c8ac5ea071abee1576c15c08e7a93f988423f77aff7c4f5831c54"}
|
package/vendor/parg/parg.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"bindings":null,"version":"1.0.0","grammar":"PgMeta","shape":"parsanol-tree/v2","binding_version":1,"entries":{"file":{"root":"pg_file","grammar":{"atoms":[{"Entity":{"atom":5}},{"Entity":{"atom":4}},{"Re":{"pattern":"[ ]"}},{"Re":{"pattern":"[\\x09]"}},{"Alternative":{"atoms":[2,3]}},{"Repetition":{"atom":1,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":457}},{"Entity":{"atom":21}},{"Str":{"pattern":"use"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":19}},{"Entity":{"atom":15}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[13,14]}},{"Entity":{"atom":17}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[_]"}},{"Alternative":{"atoms":[12,16,18]}},{"Repetition":{"atom":11,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[8,9,10]}},{"Entity":{"atom":29}},{"Str":{"pattern":"##"}},{"Entity":{"atom":27}},{"Re":{"pattern":"[\\x01-\\x09]"}},{"Re":{"pattern":"[\\x0b-\\u{10ffff}]"}},{"Alternative":{"atoms":[25,26]}},{"Repetition":{"atom":24,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[23,28]}},{"Entity":{"atom":34}},{"Str":{"pattern":"#"}},{"Entity":{"atom":27}},{"Repetition":{"atom":32,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[31,33]}},{"Entity":{"atom":456}},{"Entity":{"atom":406}},{"Str":{"pattern":"grammar"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Str":{"pattern":"version"}},{"Entity":{"atom":5}},{"Entity":{"atom":56}},{"Str":{"pattern":"\""}},{"Str":{"pattern":"\\"}},{"Entity":{"atom":27}},{"Sequence":{"atoms":[45,46]}},{"Entity":{"atom":52}},{"Re":{"pattern":"[\\x01-\\x09]"}},{"Re":{"pattern":"[\\x0b-\\x21]"}},{"Re":{"pattern":"[\\x23-\\u{10ffff}]"}},{"Alternative":{"atoms":[49,50,51]}},{"Alternative":{"atoms":[47,48]}},{"Repetition":{"atom":53,"min":0,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"\""}},{"Sequence":{"atoms":[44,54,55]}},{"Entity":{"atom":5}},{"Str":{"pattern":"{"}},{"Entity":{"atom":64}},{"Entity":{"atom":4}},{"Entity":{"atom":62}},{"Re":{"pattern":"[\\x0a]"}},{"Alternative":{"atoms":[60,61]}},{"Repetition":{"atom":63,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":400}},{"Entity":{"atom":244}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Str":{"pattern":"="}},{"Entity":{"atom":5}},{"Entity":{"atom":243}},{"Entity":{"atom":242}},{"Entity":{"atom":241}},{"Entity":{"atom":5}},{"Entity":{"atom":89}},{"Entity":{"atom":78}},{"Entity":{"atom":17}},{"Repetition":{"atom":77,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"*"}},{"Entity":{"atom":78}},{"Repetition":{"atom":80,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[79,81]}},{"Repetition":{"atom":82,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[76,83]}},{"Str":{"pattern":"*"}},{"Entity":{"atom":78}},{"Repetition":{"atom":86,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[85,87]}},{"Alternative":{"atoms":[84,88]}},{"Entity":{"atom":5}},{"Entity":{"atom":236}},{"Str":{"pattern":"!"}},{"Str":{"pattern":"&"}},{"Alternative":{"atoms":[92,93]}},{"Entity":{"atom":235}},{"Entity":{"atom":234}},{"Entity":{"atom":126}},{"Entity":{"atom":116}},{"Str":{"pattern":"%x"}},{"Entity":{"atom":106}},{"Entity":{"atom":105}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[\\x41-\\x46]"}},{"Re":{"pattern":"[\\x61-\\x66]"}},{"Alternative":{"atoms":[102,103,104]}},{"Repetition":{"atom":101,"min":2,"max":6,"tag":"Repetition"}},{"Str":{"pattern":"-"}},{"Entity":{"atom":106}},{"Sequence":{"atoms":[107,108]}},{"Str":{"pattern":"."}},{"Entity":{"atom":106}},{"Sequence":{"atoms":[110,111]}},{"Repetition":{"atom":112,"min":1,"max":null,"tag":"Repetition"}},{"Alternative":{"atoms":[109,113]}},{"Repetition":{"atom":114,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[99,100,115]}},{"Entity":{"atom":120}},{"Str":{"pattern":"%i"}},{"Entity":{"atom":56}},{"Sequence":{"atoms":[118,119]}},{"Entity":{"atom":124}},{"Str":{"pattern":"%s"}},{"Entity":{"atom":56}},{"Sequence":{"atoms":[122,123]}},{"Entity":{"atom":56}},{"Alternative":{"atoms":[98,117,121,125]}},{"Str":{"pattern":"("}},{"Entity":{"atom":5}},{"Repetition":{"atom":128,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":158}},{"Entity":{"atom":5}},{"Str":{"pattern":"/"}},{"Entity":{"atom":5}},{"Entity":{"atom":155}},{"Entity":{"atom":5}},{"Entity":{"atom":152}},{"Entity":{"atom":144}},{"Entity":{"atom":5}},{"Str":{"pattern":"as"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Sequence":{"atoms":[138,139,140,141]}},{"Repetition":{"atom":142,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[96,143]}},{"Alternative":{"atoms":[91,137]}},{"Repetition":{"atom":145,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[75,90,146]}},{"Entity":{"atom":149}},{"Sequence":{"atoms":[94,95]}},{"Entity":{"atom":144}},{"Alternative":{"atoms":[147,148,150]}},{"Sequence":{"atoms":[74,151]}},{"Sequence":{"atoms":[135,136]}},{"Repetition":{"atom":153,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[73,154]}},{"Sequence":{"atoms":[131,132,133,134]}},{"Repetition":{"atom":156,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[72,157]}},{"Entity":{"atom":5}},{"Repetition":{"atom":159,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[127,129,130,160,161]}},{"Str":{"pattern":"["}},{"Entity":{"atom":5}},{"Repetition":{"atom":164,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":158}},{"Entity":{"atom":5}},{"Repetition":{"atom":167,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"]"}},{"Sequence":{"atoms":[163,165,166,168,169]}},{"Entity":{"atom":181}},{"Str":{"pattern":"alt"}},{"Entity":{"atom":5}},{"Str":{"pattern":"from_table"}},{"Entity":{"atom":5}},{"Entity":{"atom":56}},{"Entity":{"atom":5}},{"Str":{"pattern":"column"}},{"Entity":{"atom":5}},{"Entity":{"atom":56}},{"Sequence":{"atoms":[172,173,174,175,176,177,178,179,180]}},{"Entity":{"atom":199}},{"Str":{"pattern":"set"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Str":{"pattern":"="}},{"Entity":{"atom":5}},{"Entity":{"atom":56}},{"Str":{"pattern":"("}},{"Entity":{"atom":5}},{"Repetition":{"atom":191,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":158}},{"Entity":{"atom":5}},{"Repetition":{"atom":194,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[190,192,193,195,196]}},{"Alternative":{"atoms":[189,197]}},{"Sequence":{"atoms":[183,184,185,186,187,188,198]}},{"Entity":{"atom":232}},{"Str":{"pattern":"switch"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Str":{"pattern":"{"}},{"Entity":{"atom":64}},{"Repetition":{"atom":206,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":222}},{"Entity":{"atom":56}},{"Str":{"pattern":"_"}},{"Alternative":{"atoms":[209,210]}},{"Entity":{"atom":5}},{"Str":{"pattern":"->"}},{"Entity":{"atom":5}},{"Entity":{"atom":221}},{"Entity":{"atom":20}},{"Str":{"pattern":"."}},{"Entity":{"atom":20}},{"Sequence":{"atoms":[217,218]}},{"Repetition":{"atom":219,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[216,220]}},{"Sequence":{"atoms":[211,212,213,214,215]}},{"Entity":{"atom":64}},{"Entity":{"atom":222}},{"Sequence":{"atoms":[223,224]}},{"Repetition":{"atom":225,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[208,226]}},{"Repetition":{"atom":227,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":64}},{"Repetition":{"atom":229,"min":0,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"}"}},{"Sequence":{"atoms":[201,202,203,204,205,207,228,230,231]}},{"Entity":{"atom":221}},{"Alternative":{"atoms":[97,162,170,171,182,200,233]}},{"Sequence":{"atoms":[96,143]}},{"Sequence":{"atoms":[94,95]}},{"Alternative":{"atoms":[91,137]}},{"Repetition":{"atom":237,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[75,90,238]}},{"Alternative":{"atoms":[239,148,150]}},{"Sequence":{"atoms":[74,240]}},{"Sequence":{"atoms":[73,154]}},{"Sequence":{"atoms":[72,157]}},{"Sequence":{"atoms":[67,68,69,70,71]}},{"Entity":{"atom":252}},{"Str":{"pattern":"entry"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Str":{"pattern":":"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Sequence":{"atoms":[246,247,248,249,250,251]}},{"Entity":{"atom":310}},{"Str":{"pattern":"bindings"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":64}},{"Str":{"pattern":"{"}},{"Entity":{"atom":64}},{"Repetition":{"atom":259,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":300}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Str":{"pattern":"->"}},{"Entity":{"atom":5}},{"Entity":{"atom":276}},{"Entity":{"atom":20}},{"Str":{"pattern":"["}},{"Str":{"pattern":"]"}},{"Sequence":{"atoms":[268,269]}},{"Str":{"pattern":"."}},{"Entity":{"atom":20}},{"Sequence":{"atoms":[271,272]}},{"Alternative":{"atoms":[270,273]}},{"Repetition":{"atom":274,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[267,275]}},{"Entity":{"atom":5}},{"Str":{"pattern":"("}},{"Entity":{"atom":20}},{"Str":{"pattern":","}},{"Entity":{"atom":5}},{"Entity":{"atom":287}},{"Entity":{"atom":17}},{"Str":{"pattern":"."}},{"Str":{"pattern":"*"}},{"Alternative":{"atoms":[283,284,285]}},{"Repetition":{"atom":286,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[280,281,282]}},{"Repetition":{"atom":288,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[277,278,279,289,290]}},{"Repetition":{"atom":291,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":5}},{"Str":{"pattern":"preprocess"}},{"Str":{"pattern":":"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Sequence":{"atoms":[293,294,295,296,297]}},{"Repetition":{"atom":298,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[262,263,264,265,266,292,299]}},{"Entity":{"atom":64}},{"Entity":{"atom":300}},{"Sequence":{"atoms":[301,302]}},{"Repetition":{"atom":303,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[261,304]}},{"Repetition":{"atom":305,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":64}},{"Repetition":{"atom":307,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"}"}},{"Sequence":{"atoms":[254,255,256,257,258,260,306,308,309]}},{"Entity":{"atom":332}},{"Str":{"pattern":"preprocess"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":64}},{"Str":{"pattern":"{"}},{"Entity":{"atom":64}},{"Repetition":{"atom":317,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":329}},{"Str":{"pattern":"table_lookup"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Str":{"pattern":"->"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Sequence":{"atoms":[320,321,322,323,324,325,326,327,328]}},{"Entity":{"atom":64}},{"Str":{"pattern":"}"}},{"Sequence":{"atoms":[312,313,314,315,316,318,319,330,331]}},{"Entity":{"atom":379}},{"Str":{"pattern":"test"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Sequence":{"atoms":[335,336]}},{"Repetition":{"atom":337,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":64}},{"Str":{"pattern":"{"}},{"Entity":{"atom":64}},{"Repetition":{"atom":341,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":370}},{"Str":{"pattern":"accept"}},{"Str":{"pattern":"reject"}},{"Str":{"pattern":"example"}},{"Alternative":{"atoms":[344,345,346]}},{"Entity":{"atom":5}},{"Entity":{"atom":56}},{"Entity":{"atom":5}},{"Str":{"pattern":"{"}},{"Entity":{"atom":64}},{"Repetition":{"atom":352,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":364}},{"Entity":{"atom":20}},{"Str":{"pattern":":"}},{"Entity":{"atom":5}},{"Entity":{"atom":56}},{"Entity":{"atom":78}},{"Str":{"pattern":"true"}},{"Str":{"pattern":"false"}},{"Alternative":{"atoms":[360,361]}},{"Alternative":{"atoms":[358,359,362]}},{"Sequence":{"atoms":[355,356,357,363]}},{"Entity":{"atom":64}},{"Repetition":{"atom":365,"min":0,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"}"}},{"Sequence":{"atoms":[350,351,353,354,366,367]}},{"Repetition":{"atom":368,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[347,348,349,369]}},{"Entity":{"atom":64}},{"Entity":{"atom":370}},{"Sequence":{"atoms":[371,372]}},{"Repetition":{"atom":373,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[343,374]}},{"Repetition":{"atom":375,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":64}},{"Str":{"pattern":"}"}},{"Sequence":{"atoms":[334,338,339,340,342,376,377,378]}},{"Entity":{"atom":388}},{"Str":{"pattern":"custom"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Str":{"pattern":"="}},{"Entity":{"atom":5}},{"Entity":{"atom":56}},{"Sequence":{"atoms":[381,382,383,384,385,386,387]}},{"Entity":{"atom":397}},{"Str":{"pattern":"state"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Str":{"pattern":":"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Sequence":{"atoms":[390,391,392,393,394,395,396]}},{"Entity":{"atom":29}},{"Entity":{"atom":34}},{"Alternative":{"atoms":[66,245,253,311,333,380,389,398,399]}},{"Sequence":{"atoms":[59,65]}},{"Repetition":{"atom":401,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":64}},{"Repetition":{"atom":403,"min":0,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"}"}},{"Sequence":{"atoms":[37,38,39,40,41,42,43,57,58,402,404,405]}},{"Entity":{"atom":252}},{"Entity":{"atom":310}},{"Entity":{"atom":332}},{"Entity":{"atom":379}},{"Entity":{"atom":448}},{"Str":{"pattern":"render"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":64}},{"Str":{"pattern":"{"}},{"Entity":{"atom":64}},{"Entity":{"atom":443}},{"Str":{"pattern":"field"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Sequence":{"atoms":[419,420,421]}},{"Str":{"pattern":"literal"}},{"Entity":{"atom":5}},{"Entity":{"atom":56}},{"Sequence":{"atoms":[423,424,425]}},{"Str":{"pattern":"cond"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":64}},{"Str":{"pattern":"{"}},{"Entity":{"atom":64}},{"Entity":{"atom":439}},{"Sequence":{"atoms":[432,433]}},{"Repetition":{"atom":434,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":64}},{"Str":{"pattern":"}"}},{"Sequence":{"atoms":[427,428,429,430,431,435,436,437]}},{"Alternative":{"atoms":[422,426,438]}},{"Sequence":{"atoms":[432,433]}},{"Repetition":{"atom":440,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[427,428,429,430,431,441,436,437]}},{"Alternative":{"atoms":[422,426,442]}},{"Sequence":{"atoms":[417,418]}},{"Repetition":{"atom":444,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":64}},{"Str":{"pattern":"}"}},{"Sequence":{"atoms":[412,413,414,415,416,445,446,447]}},{"Entity":{"atom":455}},{"Str":{"pattern":"derive"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Entity":{"atom":56}},{"Sequence":{"atoms":[450,451,452,453,454]}},{"Alternative":{"atoms":[36,407,408,409,410,411,449]}},{"Alternative":{"atoms":[7,22,30,35]}},{"Entity":{"atom":64}},{"Repetition":{"atom":458,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[6,459]}},{"Repetition":{"atom":460,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":5}},{"Sequence":{"atoms":[0,461,462]}}],"root":463},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule nonl: branches 1 and 2 are order-dependent (first set not statically known)","rule str_body_char: branches 1 and 3 are order-dependent (first set not statically known)","rule str_body_char: branches 2 and 3 are order-dependent (first set not statically known)","rule hex: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule hex: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule hex: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule primary: branches 4 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule primary: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule primary: branches 5 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule primary: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule rule_line: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule rule_line: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule rule_line: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule rule_line: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule rule_line: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule rule_line: branches 1 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule rule_line: branches 8 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule top_item: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"file","render":{},"derive":{},"tests":[{"entry":"file","kind":"accept","input":"grammar T version \"1\" { x = %x30-39 }","expect":{}},{"entry":"file","kind":"accept","input":"grammar T version \"1\" { a = b / c as d }","expect":{}},{"entry":"file","kind":"accept","input":"grammar T version \"1\" { g = [x] 3*y !z &w (p / q) }","expect":{}},{"entry":"file","kind":"accept","input":"grammar T version \"1\" { k = 1*3(e / f) !(g h) }","expect":{}},{"entry":"file","kind":"accept","input":"grammar T version \"1\" { custom lookback = \"ParsanolAtoms::Lookbehind\" a = %x30-39 }","expect":{}},{"entry":"file","kind":"accept","input":"grammar T version \"1\" { state block_kind: symbol a = %x30-39 }","expect":{}},{"entry":"file","kind":"accept","input":"grammar T version \"1\" { a = (set block_kind = \"quote\") %x30-39 }","expect":{}},{"entry":"file","kind":"accept","input":"grammar T version \"1\" { a = (switch block_kind { \"quote\" -> q _ -> never }) }","expect":{}},{"entry":"file","kind":"accept","input":"grammar T version \"1\" { a = (set d = (3*4(%x2D)) %x0A) }","expect":{}},{"entry":"file","kind":"accept","input":"grammar T version \"1\" { a = (!(state d) %x61-7A) }","expect":{}},{"entry":"file","kind":"reject","input":"nonsense","expect":{}},{"entry":"file","kind":"reject","input":"grammar T version \"1\" { = }","expect":{}}],"docs":{},"source":"# PG described in PG — the self-description grammar (F10, phase 1).\n# It recognizes the language this file is written in, over raw text:\n# whitespace is threaded explicitly (pq = potential whitespace within a\n# line, nlws = line-breaking whitespace). The reference compiler remains\n# parsanol-ruby (SSOT, TODO 11); this artifact is the validator.\n\ngrammar PgMeta version \"1.0.0\" {\n\n # ---- lexical ----\n digit = %x30-39\n hexdig = %x30-39 / %x41-46 / %x61-66\n letter = %x41-5A / %x61-7A\n ident_char = letter / digit / %x5F\n ident = 1*ident_char\n newline = %x0A\n nonl = %x01-09 / %x0B-10FFFF\n comment = \"#\" *nonl\n doc_marker = \"##\" *nonl\n ws = %x20 / %x09\n nlws = 1*(ws / newline)\n pq = *ws\n\n # ---- terminals ----\n str_body_char = %x01-09 / %x0B-21 / %x23-10FFFF\n dstring = \"\\\"\" *(\"\\\\\" nonl / str_body_char) \"\\\"\"\n istring = \"%i\" dstring\n sstring = \"%s\" dstring\n hexdigits = 2*6hexdig\n hexlit = \"%x\" hexdigits [(\"-\" hexdigits) / 1*(\".\" hexdigits)]\n hex = hexlit / istring / sstring / dstring\n\n # ---- expressions (pq-threaded) ----\n choice = seq *(pq \"/\" pq seq)\n seq = element *(pq element)\n element = pq (rep_prefix pq [pred / postfixed] / pred / postfixed)\n rep_prefix = num [\"*\" [num]] / \"*\" [num]\n num = 1*digit\n pred = (\"!\" / \"&\") postfixed\n postfixed = primary [pq \"as\" pq ident]\n table_alt = \"alt\" pq \"from_table\" pq dstring pq \"column\" pq dstring\n set_expr = \"set\" pq ident pq \"=\" pq (dstring / \"(\" [pq] choice [pq] \")\")\n switch_arm = (dstring / \"_\") pq \"->\" pq dotted_ident\n switch_expr = \"switch\" pq ident pq \"{\" *nlws [switch_arm *(nlws switch_arm)] *nlws \"}\"\n custom_line = \"custom\" pq ident pq \"=\" pq dstring\n state_line = \"state\" pq ident pq \":\" pq ident\n dotted_ident = ident *(\".\" ident)\n primary = hex / \"(\" [pq] choice [pq] \")\" / \"[\" [pq] choice [pq] \"]\" / table_alt / set_expr / switch_expr / dotted_ident\n\n # ---- rules and sections ----\n rule = ident pq \"=\" pq choice\n entry_section = \"entry\" pq ident \":\" pq ident\n path = ident *((\"[\" \"]\") / (\".\" ident))\n cardinality = 1*(digit / \".\" / \"*\")\n binding = ident pq \"->\" pq path [pq \"(\" ident [\",\" pq cardinality] \")\"] [pq \"preprocess\" \":\" pq ident]\n bindings_section = \"bindings\" pq ident nlws \"{\" [nlws] [binding *(nlws binding)] [nlws] \"}\"\n step = \"table_lookup\" pq ident pq ident pq \"->\" pq ident\n preprocess_section = \"preprocess\" pq ident nlws \"{\" *nlws step nlws \"}\"\n test_line = (\"accept\" / \"reject\" / \"example\") pq dstring [pq \"{\" *nlws test_pair *nlws \"}\"]\n test_pair = ident \":\" pq (dstring / num / (\"true\" / \"false\"))\n test_section = \"test\" [pq ident] nlws \"{\" *nlws [test_line *(nlws test_line)] nlws \"}\"\n rule_line = rule / entry_section / bindings_section / preprocess_section / test_section / custom_line / state_line / doc_marker / comment\n grammar_block = \"grammar\" pq ident pq \"version\" pq dstring pq \"{\" *(nlws rule_line) *nlws \"}\"\n render_section = \"render\" pq ident nlws \"{\" *(nlws render_seg) nlws \"}\"\n render_seg = (\"field\" pq ident) / (\"literal\" pq dstring) / (\"cond\" pq ident nlws \"{\" *(nlws render_seg) nlws \"}\")\n derive_section = \"derive\" pq ident pq dstring\n top = grammar_block / entry_section / bindings_section / preprocess_section / test_section / render_section / derive_section\n use_line = \"use\" pq ident\n top_item = use_line / doc_marker / comment / top\n\n pg_file = pq *(top_item [nlws]) pq\n\n entry file: pg_file\n\n test {\n accept \"grammar T version \\\"1\\\" { x = %x30-39 }\"\n accept \"grammar T version \\\"1\\\" { a = b / c as d }\"\n accept \"grammar T version \\\"1\\\" { g = [x] 3*y !z &w (p / q) }\"\n accept \"grammar T version \\\"1\\\" { k = 1*3(e / f) !(g h) }\"\n accept \"grammar T version \\\"1\\\" { custom lookback = \\\"ParsanolAtoms::Lookbehind\\\" a = %x30-39 }\"\n accept \"grammar T version \\\"1\\\" { state block_kind: symbol a = %x30-39 }\"\n accept \"grammar T version \\\"1\\\" { a = (set block_kind = \\\"quote\\\") %x30-39 }\"\n accept \"grammar T version \\\"1\\\" { a = (switch block_kind { \\\"quote\\\" -> q _ -> never }) }\"\n accept \"grammar T version \\\"1\\\" { a = (set d = (3*4(%x2D)) %x0A) }\"\n accept \"grammar T version \\\"1\\\" { a = (!(state d) %x61-7A) }\"\n reject \"nonsense\"\n reject \"grammar T version \\\"1\\\" { = }\"\n }\n}\n","checksum":"sha256:2afd392a7101ac0d57fa8ef9273486cd5ffb2949691a8c52c0b9a86026342d6a"}
|
|
1
|
+
{"bindings":null,"version":"1.0.0","grammar":"PgMeta","shape":"parsanol-tree/v2","binding_version":1,"entries":{"file":{"root":"pg_file","grammar":{"atoms":[{"Entity":{"atom":5}},{"Entity":{"atom":4}},{"Re":{"pattern":"[ ]"}},{"Re":{"pattern":"[\\x09]"}},{"Alternative":{"atoms":[2,3]}},{"Repetition":{"atom":1,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":457}},{"Entity":{"atom":21}},{"Str":{"pattern":"use"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":19}},{"Entity":{"atom":15}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[13,14]}},{"Entity":{"atom":17}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[_]"}},{"Alternative":{"atoms":[12,16,18]}},{"Repetition":{"atom":11,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[8,9,10]}},{"Entity":{"atom":29}},{"Str":{"pattern":"##"}},{"Entity":{"atom":27}},{"Re":{"pattern":"[\\x01-\\x09]"}},{"Re":{"pattern":"[\\x0b-\\u{10ffff}]"}},{"Alternative":{"atoms":[25,26]}},{"Repetition":{"atom":24,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[23,28]}},{"Entity":{"atom":34}},{"Str":{"pattern":"#"}},{"Entity":{"atom":27}},{"Repetition":{"atom":32,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[31,33]}},{"Entity":{"atom":456}},{"Entity":{"atom":406}},{"Str":{"pattern":"grammar"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Str":{"pattern":"version"}},{"Entity":{"atom":5}},{"Entity":{"atom":56}},{"Str":{"pattern":"\""}},{"Str":{"pattern":"\\"}},{"Entity":{"atom":27}},{"Sequence":{"atoms":[45,46]}},{"Entity":{"atom":52}},{"Re":{"pattern":"[\\x01-\\x09]"}},{"Re":{"pattern":"[\\x0b-\\x21]"}},{"Re":{"pattern":"[\\x23-\\u{10ffff}]"}},{"Alternative":{"atoms":[49,50,51]}},{"Alternative":{"atoms":[47,48]}},{"Repetition":{"atom":53,"min":0,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"\""}},{"Sequence":{"atoms":[44,54,55]}},{"Entity":{"atom":5}},{"Str":{"pattern":"{"}},{"Entity":{"atom":64}},{"Entity":{"atom":4}},{"Entity":{"atom":62}},{"Re":{"pattern":"[\\x0a]"}},{"Alternative":{"atoms":[60,61]}},{"Repetition":{"atom":63,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":400}},{"Entity":{"atom":244}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Str":{"pattern":"="}},{"Entity":{"atom":5}},{"Entity":{"atom":243}},{"Entity":{"atom":242}},{"Entity":{"atom":241}},{"Entity":{"atom":5}},{"Entity":{"atom":89}},{"Entity":{"atom":78}},{"Entity":{"atom":17}},{"Repetition":{"atom":77,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"*"}},{"Entity":{"atom":78}},{"Repetition":{"atom":80,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[79,81]}},{"Repetition":{"atom":82,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[76,83]}},{"Str":{"pattern":"*"}},{"Entity":{"atom":78}},{"Repetition":{"atom":86,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[85,87]}},{"Alternative":{"atoms":[84,88]}},{"Entity":{"atom":5}},{"Entity":{"atom":236}},{"Str":{"pattern":"!"}},{"Str":{"pattern":"&"}},{"Alternative":{"atoms":[92,93]}},{"Entity":{"atom":235}},{"Entity":{"atom":234}},{"Entity":{"atom":126}},{"Entity":{"atom":116}},{"Str":{"pattern":"%x"}},{"Entity":{"atom":106}},{"Entity":{"atom":105}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[\\x41-\\x46]"}},{"Re":{"pattern":"[\\x61-\\x66]"}},{"Alternative":{"atoms":[102,103,104]}},{"Repetition":{"atom":101,"min":2,"max":6,"tag":"Repetition"}},{"Str":{"pattern":"-"}},{"Entity":{"atom":106}},{"Sequence":{"atoms":[107,108]}},{"Str":{"pattern":"."}},{"Entity":{"atom":106}},{"Sequence":{"atoms":[110,111]}},{"Repetition":{"atom":112,"min":1,"max":null,"tag":"Repetition"}},{"Alternative":{"atoms":[109,113]}},{"Repetition":{"atom":114,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[99,100,115]}},{"Entity":{"atom":120}},{"Str":{"pattern":"%i"}},{"Entity":{"atom":56}},{"Sequence":{"atoms":[118,119]}},{"Entity":{"atom":124}},{"Str":{"pattern":"%s"}},{"Entity":{"atom":56}},{"Sequence":{"atoms":[122,123]}},{"Entity":{"atom":56}},{"Alternative":{"atoms":[98,117,121,125]}},{"Str":{"pattern":"("}},{"Entity":{"atom":5}},{"Repetition":{"atom":128,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":158}},{"Entity":{"atom":5}},{"Str":{"pattern":"/"}},{"Entity":{"atom":5}},{"Entity":{"atom":155}},{"Entity":{"atom":5}},{"Entity":{"atom":152}},{"Entity":{"atom":144}},{"Entity":{"atom":5}},{"Str":{"pattern":"as"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Sequence":{"atoms":[138,139,140,141]}},{"Repetition":{"atom":142,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[96,143]}},{"Alternative":{"atoms":[91,137]}},{"Repetition":{"atom":145,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[75,90,146]}},{"Entity":{"atom":149}},{"Sequence":{"atoms":[94,95]}},{"Entity":{"atom":144}},{"Alternative":{"atoms":[147,148,150]}},{"Sequence":{"atoms":[74,151]}},{"Sequence":{"atoms":[135,136]}},{"Repetition":{"atom":153,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[73,154]}},{"Sequence":{"atoms":[131,132,133,134]}},{"Repetition":{"atom":156,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[72,157]}},{"Entity":{"atom":5}},{"Repetition":{"atom":159,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[127,129,130,160,161]}},{"Str":{"pattern":"["}},{"Entity":{"atom":5}},{"Repetition":{"atom":164,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":158}},{"Entity":{"atom":5}},{"Repetition":{"atom":167,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"]"}},{"Sequence":{"atoms":[163,165,166,168,169]}},{"Entity":{"atom":181}},{"Str":{"pattern":"alt"}},{"Entity":{"atom":5}},{"Str":{"pattern":"from_table"}},{"Entity":{"atom":5}},{"Entity":{"atom":56}},{"Entity":{"atom":5}},{"Str":{"pattern":"column"}},{"Entity":{"atom":5}},{"Entity":{"atom":56}},{"Sequence":{"atoms":[172,173,174,175,176,177,178,179,180]}},{"Entity":{"atom":199}},{"Str":{"pattern":"set"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Str":{"pattern":"="}},{"Entity":{"atom":5}},{"Entity":{"atom":56}},{"Str":{"pattern":"("}},{"Entity":{"atom":5}},{"Repetition":{"atom":191,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":158}},{"Entity":{"atom":5}},{"Repetition":{"atom":194,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[190,192,193,195,196]}},{"Alternative":{"atoms":[189,197]}},{"Sequence":{"atoms":[183,184,185,186,187,188,198]}},{"Entity":{"atom":232}},{"Str":{"pattern":"switch"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Str":{"pattern":"{"}},{"Entity":{"atom":64}},{"Repetition":{"atom":206,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":222}},{"Entity":{"atom":56}},{"Str":{"pattern":"_"}},{"Alternative":{"atoms":[209,210]}},{"Entity":{"atom":5}},{"Str":{"pattern":"->"}},{"Entity":{"atom":5}},{"Entity":{"atom":221}},{"Entity":{"atom":20}},{"Str":{"pattern":"."}},{"Entity":{"atom":20}},{"Sequence":{"atoms":[217,218]}},{"Repetition":{"atom":219,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[216,220]}},{"Sequence":{"atoms":[211,212,213,214,215]}},{"Entity":{"atom":64}},{"Entity":{"atom":222}},{"Sequence":{"atoms":[223,224]}},{"Repetition":{"atom":225,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[208,226]}},{"Repetition":{"atom":227,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":64}},{"Repetition":{"atom":229,"min":0,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"}"}},{"Sequence":{"atoms":[201,202,203,204,205,207,228,230,231]}},{"Entity":{"atom":221}},{"Alternative":{"atoms":[97,162,170,171,182,200,233]}},{"Sequence":{"atoms":[96,143]}},{"Sequence":{"atoms":[94,95]}},{"Alternative":{"atoms":[91,137]}},{"Repetition":{"atom":237,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[75,90,238]}},{"Alternative":{"atoms":[239,148,150]}},{"Sequence":{"atoms":[74,240]}},{"Sequence":{"atoms":[73,154]}},{"Sequence":{"atoms":[72,157]}},{"Sequence":{"atoms":[67,68,69,70,71]}},{"Entity":{"atom":252}},{"Str":{"pattern":"entry"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Str":{"pattern":":"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Sequence":{"atoms":[246,247,248,249,250,251]}},{"Entity":{"atom":310}},{"Str":{"pattern":"bindings"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":64}},{"Str":{"pattern":"{"}},{"Entity":{"atom":64}},{"Repetition":{"atom":259,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":300}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Str":{"pattern":"->"}},{"Entity":{"atom":5}},{"Entity":{"atom":276}},{"Entity":{"atom":20}},{"Str":{"pattern":"["}},{"Str":{"pattern":"]"}},{"Sequence":{"atoms":[268,269]}},{"Str":{"pattern":"."}},{"Entity":{"atom":20}},{"Sequence":{"atoms":[271,272]}},{"Alternative":{"atoms":[270,273]}},{"Repetition":{"atom":274,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[267,275]}},{"Entity":{"atom":5}},{"Str":{"pattern":"("}},{"Entity":{"atom":20}},{"Str":{"pattern":","}},{"Entity":{"atom":5}},{"Entity":{"atom":287}},{"Entity":{"atom":17}},{"Str":{"pattern":"."}},{"Str":{"pattern":"*"}},{"Alternative":{"atoms":[283,284,285]}},{"Repetition":{"atom":286,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[280,281,282]}},{"Repetition":{"atom":288,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[277,278,279,289,290]}},{"Repetition":{"atom":291,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":5}},{"Str":{"pattern":"preprocess"}},{"Str":{"pattern":":"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Sequence":{"atoms":[293,294,295,296,297]}},{"Repetition":{"atom":298,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[262,263,264,265,266,292,299]}},{"Entity":{"atom":64}},{"Entity":{"atom":300}},{"Sequence":{"atoms":[301,302]}},{"Repetition":{"atom":303,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[261,304]}},{"Repetition":{"atom":305,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":64}},{"Repetition":{"atom":307,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"}"}},{"Sequence":{"atoms":[254,255,256,257,258,260,306,308,309]}},{"Entity":{"atom":332}},{"Str":{"pattern":"preprocess"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":64}},{"Str":{"pattern":"{"}},{"Entity":{"atom":64}},{"Repetition":{"atom":317,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":329}},{"Str":{"pattern":"table_lookup"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Str":{"pattern":"->"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Sequence":{"atoms":[320,321,322,323,324,325,326,327,328]}},{"Entity":{"atom":64}},{"Str":{"pattern":"}"}},{"Sequence":{"atoms":[312,313,314,315,316,318,319,330,331]}},{"Entity":{"atom":379}},{"Str":{"pattern":"test"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Sequence":{"atoms":[335,336]}},{"Repetition":{"atom":337,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":64}},{"Str":{"pattern":"{"}},{"Entity":{"atom":64}},{"Repetition":{"atom":341,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":370}},{"Str":{"pattern":"accept"}},{"Str":{"pattern":"reject"}},{"Str":{"pattern":"example"}},{"Alternative":{"atoms":[344,345,346]}},{"Entity":{"atom":5}},{"Entity":{"atom":56}},{"Entity":{"atom":5}},{"Str":{"pattern":"{"}},{"Entity":{"atom":64}},{"Repetition":{"atom":352,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":364}},{"Entity":{"atom":20}},{"Str":{"pattern":":"}},{"Entity":{"atom":5}},{"Entity":{"atom":56}},{"Entity":{"atom":78}},{"Str":{"pattern":"true"}},{"Str":{"pattern":"false"}},{"Alternative":{"atoms":[360,361]}},{"Alternative":{"atoms":[358,359,362]}},{"Sequence":{"atoms":[355,356,357,363]}},{"Entity":{"atom":64}},{"Repetition":{"atom":365,"min":0,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"}"}},{"Sequence":{"atoms":[350,351,353,354,366,367]}},{"Repetition":{"atom":368,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[347,348,349,369]}},{"Entity":{"atom":64}},{"Entity":{"atom":370}},{"Sequence":{"atoms":[371,372]}},{"Repetition":{"atom":373,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[343,374]}},{"Repetition":{"atom":375,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":64}},{"Str":{"pattern":"}"}},{"Sequence":{"atoms":[334,338,339,340,342,376,377,378]}},{"Entity":{"atom":388}},{"Str":{"pattern":"custom"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Str":{"pattern":"="}},{"Entity":{"atom":5}},{"Entity":{"atom":56}},{"Sequence":{"atoms":[381,382,383,384,385,386,387]}},{"Entity":{"atom":397}},{"Str":{"pattern":"state"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Str":{"pattern":":"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Sequence":{"atoms":[390,391,392,393,394,395,396]}},{"Entity":{"atom":29}},{"Entity":{"atom":34}},{"Alternative":{"atoms":[66,245,253,311,333,380,389,398,399]}},{"Sequence":{"atoms":[59,65]}},{"Repetition":{"atom":401,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":64}},{"Repetition":{"atom":403,"min":0,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"}"}},{"Sequence":{"atoms":[37,38,39,40,41,42,43,57,58,402,404,405]}},{"Entity":{"atom":252}},{"Entity":{"atom":310}},{"Entity":{"atom":332}},{"Entity":{"atom":379}},{"Entity":{"atom":448}},{"Str":{"pattern":"render"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":64}},{"Str":{"pattern":"{"}},{"Entity":{"atom":64}},{"Entity":{"atom":443}},{"Str":{"pattern":"field"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Sequence":{"atoms":[419,420,421]}},{"Str":{"pattern":"literal"}},{"Entity":{"atom":5}},{"Entity":{"atom":56}},{"Sequence":{"atoms":[423,424,425]}},{"Str":{"pattern":"cond"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":64}},{"Str":{"pattern":"{"}},{"Entity":{"atom":64}},{"Entity":{"atom":439}},{"Sequence":{"atoms":[432,433]}},{"Repetition":{"atom":434,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":64}},{"Str":{"pattern":"}"}},{"Sequence":{"atoms":[427,428,429,430,431,435,436,437]}},{"Alternative":{"atoms":[422,426,438]}},{"Sequence":{"atoms":[432,433]}},{"Repetition":{"atom":440,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[427,428,429,430,431,441,436,437]}},{"Alternative":{"atoms":[422,426,442]}},{"Sequence":{"atoms":[417,418]}},{"Repetition":{"atom":444,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":64}},{"Str":{"pattern":"}"}},{"Sequence":{"atoms":[412,413,414,415,416,445,446,447]}},{"Entity":{"atom":455}},{"Str":{"pattern":"derive"}},{"Entity":{"atom":5}},{"Entity":{"atom":20}},{"Entity":{"atom":5}},{"Entity":{"atom":56}},{"Sequence":{"atoms":[450,451,452,453,454]}},{"Alternative":{"atoms":[36,407,408,409,410,411,449]}},{"Alternative":{"atoms":[7,22,30,35]}},{"Entity":{"atom":64}},{"Repetition":{"atom":458,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[6,459]}},{"Repetition":{"atom":460,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":5}},{"Sequence":{"atoms":[0,461,462]}}],"root":463},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule nonl: branches 1 and 2 are order-dependent (first set not statically known)","rule str_body_char: branches 1 and 3 are order-dependent (first set not statically known)","rule str_body_char: branches 2 and 3 are order-dependent (first set not statically known)","rule hex: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule hex: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule hex: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule primary: branches 4 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule primary: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule primary: branches 5 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule primary: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule rule_line: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule rule_line: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule rule_line: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule rule_line: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule rule_line: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule rule_line: branches 1 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule rule_line: branches 8 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule top_item: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"file","render":{},"derive":{},"tests":[{"entry":"file","kind":"accept","input":"grammar T version \"1\" { x = %x30-39 }","expect":{}},{"entry":"file","kind":"accept","input":"grammar T version \"1\" { a = b / c as d }","expect":{}},{"entry":"file","kind":"accept","input":"grammar T version \"1\" { g = [x] 3*y !z &w (p / q) }","expect":{}},{"entry":"file","kind":"accept","input":"grammar T version \"1\" { k = 1*3(e / f) !(g h) }","expect":{}},{"entry":"file","kind":"accept","input":"grammar T version \"1\" { custom lookback = \"ParsanolAtoms::Lookbehind\" a = %x30-39 }","expect":{}},{"entry":"file","kind":"accept","input":"grammar T version \"1\" { state block_kind: symbol a = %x30-39 }","expect":{}},{"entry":"file","kind":"accept","input":"grammar T version \"1\" { a = (set block_kind = \"quote\") %x30-39 }","expect":{}},{"entry":"file","kind":"accept","input":"grammar T version \"1\" { a = (switch block_kind { \"quote\" -> q _ -> never }) }","expect":{}},{"entry":"file","kind":"accept","input":"grammar T version \"1\" { a = (set d = (3*4(%x2D)) %x0A) }","expect":{}},{"entry":"file","kind":"accept","input":"grammar T version \"1\" { a = (!(state d) %x61-7A) }","expect":{}},{"entry":"file","kind":"reject","input":"nonsense","expect":{}},{"entry":"file","kind":"reject","input":"grammar T version \"1\" { = }","expect":{}}],"docs":{},"source":"# PG described in PG — the self-description grammar (F10, phase 1).\n# It recognizes the language this file is written in, over raw text:\n# whitespace is threaded explicitly (pq = potential whitespace within a\n# line, nlws = line-breaking whitespace). The reference compiler remains\n# parsanol-ruby (SSOT, TODO 11); this artifact is the validator.\n\ngrammar PgMeta version \"1.0.0\" {\n\n # ---- lexical ----\n digit = %x30-39\n hexdig = %x30-39 / %x41-46 / %x61-66\n letter = %x41-5A / %x61-7A\n ident_char = letter / digit / %x5F\n ident = 1*ident_char\n newline = %x0A\n nonl = %x01-09 / %x0B-10FFFF\n comment = \"#\" *nonl\n doc_marker = \"##\" *nonl\n ws = %x20 / %x09\n nlws = 1*(ws / newline)\n pq = *ws\n\n # ---- terminals ----\n str_body_char = %x01-09 / %x0B-21 / %x23-10FFFF\n dstring = \"\\\"\" *(\"\\\\\" nonl / str_body_char) \"\\\"\"\n istring = \"%i\" dstring\n sstring = \"%s\" dstring\n hexdigits = 2*6hexdig\n hexlit = \"%x\" hexdigits [(\"-\" hexdigits) / 1*(\".\" hexdigits)]\n hex = hexlit / istring / sstring / dstring\n\n # ---- expressions (pq-threaded) ----\n choice = seq *(pq \"/\" pq seq)\n seq = element *(pq element)\n element = pq (rep_prefix pq [pred / postfixed] / pred / postfixed)\n rep_prefix = num [\"*\" [num]] / \"*\" [num]\n num = 1*digit\n pred = (\"!\" / \"&\") postfixed\n postfixed = primary [pq \"as\" pq ident]\n table_alt = \"alt\" pq \"from_table\" pq dstring pq \"column\" pq dstring\n set_expr = \"set\" pq ident pq \"=\" pq (dstring / \"(\" [pq] choice [pq] \")\")\n switch_arm = (dstring / \"_\") pq \"->\" pq dotted_ident\n switch_expr = \"switch\" pq ident pq \"{\" *nlws [switch_arm *(nlws switch_arm)] *nlws \"}\"\n custom_line = \"custom\" pq ident pq \"=\" pq dstring\n state_line = \"state\" pq ident pq \":\" pq ident\n dotted_ident = ident *(\".\" ident)\n primary = hex / \"(\" [pq] choice [pq] \")\" / \"[\" [pq] choice [pq] \"]\" / table_alt / set_expr / switch_expr / dotted_ident\n\n # ---- rules and sections ----\n rule = ident pq \"=\" pq choice\n entry_section = \"entry\" pq ident \":\" pq ident\n path = ident *((\"[\" \"]\") / (\".\" ident))\n cardinality = 1*(digit / \".\" / \"*\")\n binding = ident pq \"->\" pq path [pq \"(\" ident [\",\" pq cardinality] \")\"] [pq \"preprocess\" \":\" pq ident]\n bindings_section = \"bindings\" pq ident nlws \"{\" [nlws] [binding *(nlws binding)] [nlws] \"}\"\n step = \"table_lookup\" pq ident pq ident pq \"->\" pq ident\n preprocess_section = \"preprocess\" pq ident nlws \"{\" *nlws step nlws \"}\"\n test_line = (\"accept\" / \"reject\" / \"example\") pq dstring [pq \"{\" *nlws test_pair *nlws \"}\"]\n test_pair = ident \":\" pq (dstring / num / (\"true\" / \"false\"))\n test_section = \"test\" [pq ident] nlws \"{\" *nlws [test_line *(nlws test_line)] nlws \"}\"\n rule_line = rule / entry_section / bindings_section / preprocess_section / test_section / custom_line / state_line / doc_marker / comment\n grammar_block = \"grammar\" pq ident pq \"version\" pq dstring pq \"{\" *(nlws rule_line) *nlws \"}\"\n render_section = \"render\" pq ident nlws \"{\" *(nlws render_seg) nlws \"}\"\n render_seg = (\"field\" pq ident) / (\"literal\" pq dstring) / (\"cond\" pq ident nlws \"{\" *(nlws render_seg) nlws \"}\")\n derive_section = \"derive\" pq ident pq dstring\n top = grammar_block / entry_section / bindings_section / preprocess_section / test_section / render_section / derive_section\n use_line = \"use\" pq ident\n top_item = use_line / doc_marker / comment / top\n\n pg_file = pq *(top_item [nlws]) pq\n\n entry file: pg_file\n\n test {\n accept \"grammar T version \\\"1\\\" { x = %x30-39 }\"\n accept \"grammar T version \\\"1\\\" { a = b / c as d }\"\n accept \"grammar T version \\\"1\\\" { g = [x] 3*y !z &w (p / q) }\"\n accept \"grammar T version \\\"1\\\" { k = 1*3(e / f) !(g h) }\"\n accept \"grammar T version \\\"1\\\" { custom lookback = \\\"ParsanolAtoms::Lookbehind\\\" a = %x30-39 }\"\n accept \"grammar T version \\\"1\\\" { state block_kind: symbol a = %x30-39 }\"\n accept \"grammar T version \\\"1\\\" { a = (set block_kind = \\\"quote\\\") %x30-39 }\"\n accept \"grammar T version \\\"1\\\" { a = (switch block_kind { \\\"quote\\\" -> q _ -> never }) }\"\n accept \"grammar T version \\\"1\\\" { a = (set d = (3*4(%x2D)) %x0A) }\"\n accept \"grammar T version \\\"1\\\" { a = (!(state d) %x61-7A) }\"\n reject \"nonsense\"\n reject \"grammar T version \\\"1\\\" { = }\"\n }\n}\n","source_hash":"5b5848eae1e2588df61186c85d1952c069a938dfa4fc8109ccad56a4b84eed85","compiler_version":"1.3.93","checksum":"sha256:449d12e4071bb8536452206fd4add6a54c27fa3d5ea5e4f174e1c90c20d2f3f0"}
|
package/vendor/parg/plateau.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"bindings":null,"version":"0.1.0","grammar":"PubidPlateau","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":73}},{"Entity":{"atom":52}},{"Str":{"pattern":"PLATEAU"}},{"Entity":{"atom":4}},{"Str":{"pattern":" "}},{"Entity":{"atom":9}},{"Str":{"pattern":"Handbook"}},{"Str":{"pattern":"Technical Report"}},{"Alternative":{"atoms":[6,7]}},{"Named":{"name":"type","atom":8}},{"Entity":{"atom":4}},{"Entity":{"atom":17}},{"Str":{"pattern":"#"}},{"Entity":{"atom":14}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":13,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":15}},{"Sequence":{"atoms":[12,16]}},{"Entity":{"atom":26}},{"Entity":{"atom":20}},{"Str":{"pattern":"-"}},{"Str":{"pattern":"_"}},{"Alternative":{"atoms":[19,21]}},{"Entity":{"atom":14}},{"Repetition":{"atom":23,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"annex","atom":24}},{"Sequence":{"atoms":[22,25]}},{"Repetition":{"atom":18,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":50}},{"Entity":{"atom":4}},{"Entity":{"atom":40}},{"Str":{"pattern":"第"}},{"Entity":{"atom":14}},{"Repetition":{"atom":32,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Entity":{"atom":14}},{"Repetition":{"atom":35,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[33,34,36]}},{"Named":{"name":"edition","atom":37}},{"Str":{"pattern":"版"}},{"Sequence":{"atoms":[31,38,39]}},{"Entity":{"atom":48}},{"Entity":{"atom":14}},{"Repetition":{"atom":42,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Entity":{"atom":14}},{"Repetition":{"atom":45,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[43,44,46]}},{"Named":{"name":"edition","atom":47}},{"Alternative":{"atoms":[30,41]}},{"Sequence":{"atoms":[29,49]}},{"Repetition":{"atom":28,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[2,3,5,10,11,27,51]}},{"Entity":{"atom":61}},{"Str":{"pattern":"PLATEAU"}},{"Entity":{"atom":4}},{"Entity":{"atom":9}},{"Entity":{"atom":4}},{"Entity":{"atom":17}},{"Entity":{"atom":26}},{"Repetition":{"atom":59,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[54,55,56,57,58,60]}},{"Alternative":{"atoms":[1,53]}},{"Named":{"name":"base","atom":62}},{"Entity":{"atom":72}},{"Entity":{"atom":4}},{"Str":{"pattern":"Annex"}},{"Entity":{"atom":4}},{"Entity":{"atom":71}},{"Entity":{"atom":70}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Named":{"name":"annex_letter","atom":69}},{"Sequence":{"atoms":[65,66,67,68]}},{"Sequence":{"atoms":[63,64]}},{"Entity":{"atom":52}},{"Entity":{"atom":61}},{"Alternative":{"atoms":[0,74,75]}}],"root":76},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule identifier: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"PLATEAU Handbook #3","expect":{}},{"entry":"identifier","kind":"accept","input":"PLATEAU Technical Report #1","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/plateau/parser.rb: PLATEAU Handbook/Technical Report\n# #NN[-annex][ edition], plus Annex supplements. Japanese canonical\n# edition (第X.Y版) and legacy Latin X.Y both capture the same atom.\n\ngrammar PubidPlateau version \"0.1.0\" {\n doc_type = (\"Handbook\" / \"Technical Report\") as type\n number = \"#\" (1*digit) as number\n annex = (dash / \"_\") (1*digit) as annex\n edition_part = \"第\" (1*digit \".\" 1*digit) as edition \"版\"\n edition_latin = (1*digit \".\" 1*digit) as edition\n edition = space (edition_part / edition_latin)\n annex_letter = upper as annex_letter\n annex_supplement = space \"Annex\" space annex_letter\n handbook = \"PLATEAU\" space doc_type space number [annex] [edition]\n technical_report = \"PLATEAU\" space doc_type space number [annex]\n annex_identifier = (handbook / technical_report) as base annex_supplement\n identifier = annex_identifier / handbook / technical_report\n upper = %x41-5A\n digit = %x30-39\n space = \" \"\n dash = \"-\"\n entry identifier: identifier\n\n test {\n accept \"PLATEAU Handbook #3\"\n accept \"PLATEAU Technical Report #1\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:
|
|
1
|
+
{"bindings":null,"version":"0.1.0","grammar":"PubidPlateau","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":73}},{"Entity":{"atom":52}},{"Str":{"pattern":"PLATEAU"}},{"Entity":{"atom":4}},{"Str":{"pattern":" "}},{"Entity":{"atom":9}},{"Str":{"pattern":"Handbook"}},{"Str":{"pattern":"Technical Report"}},{"Alternative":{"atoms":[6,7]}},{"Named":{"name":"type","atom":8}},{"Entity":{"atom":4}},{"Entity":{"atom":17}},{"Str":{"pattern":"#"}},{"Entity":{"atom":14}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":13,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":15}},{"Sequence":{"atoms":[12,16]}},{"Entity":{"atom":26}},{"Entity":{"atom":20}},{"Str":{"pattern":"-"}},{"Str":{"pattern":"_"}},{"Alternative":{"atoms":[19,21]}},{"Entity":{"atom":14}},{"Repetition":{"atom":23,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"annex","atom":24}},{"Sequence":{"atoms":[22,25]}},{"Repetition":{"atom":18,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":50}},{"Entity":{"atom":4}},{"Entity":{"atom":40}},{"Str":{"pattern":"第"}},{"Entity":{"atom":14}},{"Repetition":{"atom":32,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Entity":{"atom":14}},{"Repetition":{"atom":35,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[33,34,36]}},{"Named":{"name":"edition","atom":37}},{"Str":{"pattern":"版"}},{"Sequence":{"atoms":[31,38,39]}},{"Entity":{"atom":48}},{"Entity":{"atom":14}},{"Repetition":{"atom":42,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Entity":{"atom":14}},{"Repetition":{"atom":45,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[43,44,46]}},{"Named":{"name":"edition","atom":47}},{"Alternative":{"atoms":[30,41]}},{"Sequence":{"atoms":[29,49]}},{"Repetition":{"atom":28,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[2,3,5,10,11,27,51]}},{"Entity":{"atom":61}},{"Str":{"pattern":"PLATEAU"}},{"Entity":{"atom":4}},{"Entity":{"atom":9}},{"Entity":{"atom":4}},{"Entity":{"atom":17}},{"Entity":{"atom":26}},{"Repetition":{"atom":59,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[54,55,56,57,58,60]}},{"Alternative":{"atoms":[1,53]}},{"Named":{"name":"base","atom":62}},{"Entity":{"atom":72}},{"Entity":{"atom":4}},{"Str":{"pattern":"Annex"}},{"Entity":{"atom":4}},{"Entity":{"atom":71}},{"Entity":{"atom":70}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Named":{"name":"annex_letter","atom":69}},{"Sequence":{"atoms":[65,66,67,68]}},{"Sequence":{"atoms":[63,64]}},{"Entity":{"atom":52}},{"Entity":{"atom":61}},{"Alternative":{"atoms":[0,74,75]}}],"root":76},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule identifier: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"PLATEAU Handbook #3","expect":{}},{"entry":"identifier","kind":"accept","input":"PLATEAU Technical Report #1","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/plateau/parser.rb: PLATEAU Handbook/Technical Report\n# #NN[-annex][ edition], plus Annex supplements. Japanese canonical\n# edition (第X.Y版) and legacy Latin X.Y both capture the same atom.\n\ngrammar PubidPlateau version \"0.1.0\" {\n doc_type = (\"Handbook\" / \"Technical Report\") as type\n number = \"#\" (1*digit) as number\n annex = (dash / \"_\") (1*digit) as annex\n edition_part = \"第\" (1*digit \".\" 1*digit) as edition \"版\"\n edition_latin = (1*digit \".\" 1*digit) as edition\n edition = space (edition_part / edition_latin)\n annex_letter = upper as annex_letter\n annex_supplement = space \"Annex\" space annex_letter\n handbook = \"PLATEAU\" space doc_type space number [annex] [edition]\n technical_report = \"PLATEAU\" space doc_type space number [annex]\n annex_identifier = (handbook / technical_report) as base annex_supplement\n identifier = annex_identifier / handbook / technical_report\n upper = %x41-5A\n digit = %x30-39\n space = \" \"\n dash = \"-\"\n entry identifier: identifier\n\n test {\n accept \"PLATEAU Handbook #3\"\n accept \"PLATEAU Technical Report #1\"\n reject \"nonsense\"\n }\n}\n","source_hash":"e04ea478bc8e12a50bccbc3b2ab9aa4c5d87eaaf6251b70eb27db7c4b0038911","compiler_version":"1.3.93","checksum":"sha256:ca383113843ffe6704d7247e6bea41b70e58991cde9b874a41f657f17e513bd2"}
|
package/vendor/parg/sae.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"bindings":null,"version":"0.1.0","grammar":"PubidSae","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"SAE"}},{"Named":{"name":"publisher","atom":0}},{"Entity":{"atom":3}},{"Str":{"pattern":" "}},{"Entity":{"atom":12}},{"Str":{"pattern":"AMS"}},{"Str":{"pattern":"AIR"}},{"Str":{"pattern":"ARP"}},{"Str":{"pattern":"AS"}},{"Str":{"pattern":"J"}},{"Str":{"pattern":"MA"}},{"Alternative":{"atoms":[5,6,7,8,9,10]}},{"Named":{"name":"type","atom":11}},{"Entity":{"atom":3}},{"Repetition":{"atom":13,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":29}},{"Entity":{"atom":17}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Repetition":{"atom":16,"min":1,"max":1,"tag":"Repetition"}},{"Entity":{"atom":20}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":19,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[18,21]}},{"Entity":{"atom":20}},{"Repetition":{"atom":23,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":17}},{"Repetition":{"atom":25,"min":0,"max":1,"tag":"Repetition"}},{"Sequence":{"atoms":[24,26]}},{"Alternative":{"atoms":[22,27]}},{"Named":{"name":"number","atom":28}},{"Entity":{"atom":31}},{"Str":{"pattern":":"}},{"Entity":{"atom":35}},{"Entity":{"atom":20}},{"Repetition":{"atom":33,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":34}},{"Sequence":{"atoms":[30,32]}},{"Repetition":{"atom":36,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1,2,4,14,15,37]}}],"root":38},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"SAE J1939","expect":{}},{"entry":"identifier","kind":"accept","input":"SAE AMS2430","expect":{}},{"entry":"identifier","kind":"accept","input":"SAE ARP4754A:2010","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/sae/parser.rb: SAE <AMS|AIR|ARP|AS|J|MA> <number>[:year]\n\ngrammar PubidSae version \"0.1.0\" {\n doc_type = (\"AMS\" / \"AIR\" / \"ARP\" / \"AS\" / \"J\" / \"MA\") as type\n number = ((1*1letter 1*digit) / (1*digit *1letter)) as number\n year = (4digit) as year\n identifier = \"SAE\" as publisher space doc_type [space] number [(colon year)]\n letter = %x41-5A\n digit = %x30-39\n space = \" \"\n colon = \":\"\n entry identifier: identifier\n\n test {\n accept \"SAE J1939\"\n accept \"SAE AMS2430\"\n accept \"SAE ARP4754A:2010\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:
|
|
1
|
+
{"bindings":null,"version":"0.1.0","grammar":"PubidSae","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"SAE"}},{"Named":{"name":"publisher","atom":0}},{"Entity":{"atom":3}},{"Str":{"pattern":" "}},{"Entity":{"atom":12}},{"Str":{"pattern":"AMS"}},{"Str":{"pattern":"AIR"}},{"Str":{"pattern":"ARP"}},{"Str":{"pattern":"AS"}},{"Str":{"pattern":"J"}},{"Str":{"pattern":"MA"}},{"Alternative":{"atoms":[5,6,7,8,9,10]}},{"Named":{"name":"type","atom":11}},{"Entity":{"atom":3}},{"Repetition":{"atom":13,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":29}},{"Entity":{"atom":17}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Repetition":{"atom":16,"min":1,"max":1,"tag":"Repetition"}},{"Entity":{"atom":20}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":19,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[18,21]}},{"Entity":{"atom":20}},{"Repetition":{"atom":23,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":17}},{"Repetition":{"atom":25,"min":0,"max":1,"tag":"Repetition"}},{"Sequence":{"atoms":[24,26]}},{"Alternative":{"atoms":[22,27]}},{"Named":{"name":"number","atom":28}},{"Entity":{"atom":31}},{"Str":{"pattern":":"}},{"Entity":{"atom":35}},{"Entity":{"atom":20}},{"Repetition":{"atom":33,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":34}},{"Sequence":{"atoms":[30,32]}},{"Repetition":{"atom":36,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1,2,4,14,15,37]}}],"root":38},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"SAE J1939","expect":{}},{"entry":"identifier","kind":"accept","input":"SAE AMS2430","expect":{}},{"entry":"identifier","kind":"accept","input":"SAE ARP4754A:2010","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/sae/parser.rb: SAE <AMS|AIR|ARP|AS|J|MA> <number>[:year]\n\ngrammar PubidSae version \"0.1.0\" {\n doc_type = (\"AMS\" / \"AIR\" / \"ARP\" / \"AS\" / \"J\" / \"MA\") as type\n number = ((1*1letter 1*digit) / (1*digit *1letter)) as number\n year = (4digit) as year\n identifier = \"SAE\" as publisher space doc_type [space] number [(colon year)]\n letter = %x41-5A\n digit = %x30-39\n space = \" \"\n colon = \":\"\n entry identifier: identifier\n\n test {\n accept \"SAE J1939\"\n accept \"SAE AMS2430\"\n accept \"SAE ARP4754A:2010\"\n reject \"nonsense\"\n }\n}\n","source_hash":"6e6c03b425138166ac46cf34f44d6f67933530c4b870337870ce4bc05bf08906","compiler_version":"1.3.93","checksum":"sha256:40e6d58e9bf58800c372668c87150e96d16dd96aefa3bd224d38649af3955464"}
|
package/vendor/parg/tgpp.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"bindings":null,"version":"0.1.0","grammar":"PubidTgpp","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"3GPP "}},{"Repetition":{"atom":0,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Alternative":{"atoms":[3,4]}},{"Named":{"name":"type","atom":5}},{"Entity":{"atom":8}},{"Str":{"pattern":" "}},{"Entity":{"atom":17}},{"Entity":{"atom":11}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":10,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Entity":{"atom":11}},{"Repetition":{"atom":14,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[12,13,15]}},{"Named":{"name":"number","atom":16}},{"Entity":{"atom":24}},{"Entity":{"atom":22}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[20,21]}},{"Repetition":{"atom":19,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"suffix","atom":23}},{"Repetition":{"atom":18,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":34}},{"Entity":{"atom":32}},{"Str":{"pattern":"-"}},{"Entity":{"atom":11}},{"Repetition":{"atom":29,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"part","atom":30}},{"Sequence":{"atoms":[28,31]}},{"Repetition":{"atom":27,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"parts","atom":33}},{"Entity":{"atom":36}},{"Str":{"pattern":":"}},{"Entity":{"atom":60}},{"Entity":{"atom":47}},{"Entity":{"atom":11}},{"Repetition":{"atom":39,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Entity":{"atom":11}},{"Repetition":{"atom":42,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Entity":{"atom":11}},{"Repetition":{"atom":45,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[40,41,43,44,46]}},{"Entity":{"atom":49}},{"Re":{"pattern":"[\\x01-\\u{10ffff}]"}},{"Lookahead":{"atom":48,"positive":false}},{"Sequence":{"atoms":[38,50]}},{"Lookahead":{"atom":51,"positive":false}},{"Entity":{"atom":57}},{"Re":{"pattern":"[\\x01-\\x2e]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[\\x3b-\\u{10ffff}]"}},{"Alternative":{"atoms":[54,55,56]}},{"Repetition":{"atom":53,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"release","atom":58}},{"Sequence":{"atoms":[52,59]}},{"Sequence":{"atoms":[35,37]}},{"Repetition":{"atom":61,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":64}},{"Str":{"pattern":"/"}},{"Entity":{"atom":67}},{"Entity":{"atom":47}},{"Named":{"name":"version","atom":66}},{"Sequence":{"atoms":[63,65]}},{"Repetition":{"atom":68,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1,2,7,9,25,26,62,69]}}],"root":70},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule release_char: branches 1 and 3 are order-dependent (first set not statically known)","rule release_char: branches 2 and 3 are order-dependent (first set not statically known)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"3GPP TS 21.101","expect":{}},{"entry":"identifier","kind":"accept","input":"TS 25.999","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/tgpp/parser.rb:\n# [3GPP ]<TR|TS> <NN.NNN>[suffix][-part…][:<release>][/<version>]\n# The release excludes \"/\" and \":\" (match[\"^/:\"]), byte-wise here; the\n# mistyped-version guard (!version…!any) is ported literally.\n\ngrammar PubidTgpp version \"0.1.0\" {\n release_char = %x01-2E / %x30-39 / %x3B-10FFFF\n any_char = %x01-10FFFF\n type = (\"TR\" / \"TS\") as type\n number = (1*digit \".\" 1*digit) as number\n suffix = (1*letter) as suffix\n part = \"-\" (1*digit) as part\n parts = (*part) as parts\n version_core = 1*digit \".\" 1*digit \".\" 1*digit\n release = !(version_core !any_char) (1*release_char) as release\n version = version_core as version\n identifier = [\"3GPP \"] type space number [suffix] parts [(colon release)] [(slash version)]\n letter = %x41-5A / %x61-7A\n digit = %x30-39\n space = \" \"\n colon = \":\"\n slash = \"/\"\n entry identifier: identifier\n\n test {\n accept \"3GPP TS 21.101\"\n accept \"TS 25.999\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:
|
|
1
|
+
{"bindings":null,"version":"0.1.0","grammar":"PubidTgpp","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"3GPP "}},{"Repetition":{"atom":0,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":6}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Alternative":{"atoms":[3,4]}},{"Named":{"name":"type","atom":5}},{"Entity":{"atom":8}},{"Str":{"pattern":" "}},{"Entity":{"atom":17}},{"Entity":{"atom":11}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":10,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Entity":{"atom":11}},{"Repetition":{"atom":14,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[12,13,15]}},{"Named":{"name":"number","atom":16}},{"Entity":{"atom":24}},{"Entity":{"atom":22}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[20,21]}},{"Repetition":{"atom":19,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"suffix","atom":23}},{"Repetition":{"atom":18,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":34}},{"Entity":{"atom":32}},{"Str":{"pattern":"-"}},{"Entity":{"atom":11}},{"Repetition":{"atom":29,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"part","atom":30}},{"Sequence":{"atoms":[28,31]}},{"Repetition":{"atom":27,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"parts","atom":33}},{"Entity":{"atom":36}},{"Str":{"pattern":":"}},{"Entity":{"atom":60}},{"Entity":{"atom":47}},{"Entity":{"atom":11}},{"Repetition":{"atom":39,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Entity":{"atom":11}},{"Repetition":{"atom":42,"min":1,"max":null,"tag":"Repetition"}},{"Str":{"pattern":"."}},{"Entity":{"atom":11}},{"Repetition":{"atom":45,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[40,41,43,44,46]}},{"Entity":{"atom":49}},{"Re":{"pattern":"[\\x01-\\u{10ffff}]"}},{"Lookahead":{"atom":48,"positive":false}},{"Sequence":{"atoms":[38,50]}},{"Lookahead":{"atom":51,"positive":false}},{"Entity":{"atom":57}},{"Re":{"pattern":"[\\x01-\\x2e]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[\\x3b-\\u{10ffff}]"}},{"Alternative":{"atoms":[54,55,56]}},{"Repetition":{"atom":53,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"release","atom":58}},{"Sequence":{"atoms":[52,59]}},{"Sequence":{"atoms":[35,37]}},{"Repetition":{"atom":61,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":64}},{"Str":{"pattern":"/"}},{"Entity":{"atom":67}},{"Entity":{"atom":47}},{"Named":{"name":"version","atom":66}},{"Sequence":{"atoms":[63,65]}},{"Repetition":{"atom":68,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1,2,7,9,25,26,62,69]}}],"root":70},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule release_char: branches 1 and 3 are order-dependent (first set not statically known)","rule release_char: branches 2 and 3 are order-dependent (first set not statically known)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"3GPP TS 21.101","expect":{}},{"entry":"identifier","kind":"accept","input":"TS 25.999","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/tgpp/parser.rb:\n# [3GPP ]<TR|TS> <NN.NNN>[suffix][-part…][:<release>][/<version>]\n# The release excludes \"/\" and \":\" (match[\"^/:\"]), byte-wise here; the\n# mistyped-version guard (!version…!any) is ported literally.\n\ngrammar PubidTgpp version \"0.1.0\" {\n release_char = %x01-2E / %x30-39 / %x3B-10FFFF\n any_char = %x01-10FFFF\n type = (\"TR\" / \"TS\") as type\n number = (1*digit \".\" 1*digit) as number\n suffix = (1*letter) as suffix\n part = \"-\" (1*digit) as part\n parts = (*part) as parts\n version_core = 1*digit \".\" 1*digit \".\" 1*digit\n release = !(version_core !any_char) (1*release_char) as release\n version = version_core as version\n identifier = [\"3GPP \"] type space number [suffix] parts [(colon release)] [(slash version)]\n letter = %x41-5A / %x61-7A\n digit = %x30-39\n space = \" \"\n colon = \":\"\n slash = \"/\"\n entry identifier: identifier\n\n test {\n accept \"3GPP TS 21.101\"\n accept \"TS 25.999\"\n reject \"nonsense\"\n }\n}\n","source_hash":"e316a93ad03c605f62af3cc89fa360b4db9c16224a15dcb406c0fa3d0b6559ea","compiler_version":"1.3.93","checksum":"sha256:f318a7535a73684b8b7b923e2f44edfbc107d5befe53d85242eaf83132f774fc"}
|
package/vendor/parg/un.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"bindings":null,"version":"0.1.0","grammar":"PubidUn","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"UN "}},{"Repetition":{"atom":0,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":9}},{"Entity":{"atom":7}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[.]"}},{"Alternative":{"atoms":[4,5,6]}},{"Repetition":{"atom":3,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"token","atom":8}},{"Entity":{"atom":11}},{"Str":{"pattern":"/"}},{"Entity":{"atom":9}},{"Sequence":{"atoms":[10,12]}},{"Repetition":{"atom":13,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1,2,14]}}],"root":15},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"UN/CEFACT/TBG14","expect":{}},{"entry":"identifier","kind":"accept","input":"CEFACT/TBG14","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/un/parser.rb. `token` matches [A-Z0-9.] runs.\n\ngrammar PubidUn version \"0.1.0\" {\n token_char = %x41-5A / %x30-39 / %x2E\n token = (1*token_char) as token\n identifier = [\"UN \"] token 1*(slash token)\n slash = \"/\"\n entry identifier: identifier\n\n test {\n accept \"UN/CEFACT/TBG14\"\n accept \"CEFACT/TBG14\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:
|
|
1
|
+
{"bindings":null,"version":"0.1.0","grammar":"PubidUn","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"UN "}},{"Repetition":{"atom":0,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":9}},{"Entity":{"atom":7}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[.]"}},{"Alternative":{"atoms":[4,5,6]}},{"Repetition":{"atom":3,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"token","atom":8}},{"Entity":{"atom":11}},{"Str":{"pattern":"/"}},{"Entity":{"atom":9}},{"Sequence":{"atoms":[10,12]}},{"Repetition":{"atom":13,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1,2,14]}}],"root":15},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"UN/CEFACT/TBG14","expect":{}},{"entry":"identifier","kind":"accept","input":"CEFACT/TBG14","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/un/parser.rb. `token` matches [A-Z0-9.] runs.\n\ngrammar PubidUn version \"0.1.0\" {\n token_char = %x41-5A / %x30-39 / %x2E\n token = (1*token_char) as token\n identifier = [\"UN \"] token 1*(slash token)\n slash = \"/\"\n entry identifier: identifier\n\n test {\n accept \"UN/CEFACT/TBG14\"\n accept \"CEFACT/TBG14\"\n reject \"nonsense\"\n }\n}\n","source_hash":"553780a3296f86b5be8564168c12bc795d0aac92bd5c9ef7f7c845ca5acc52b6","compiler_version":"1.3.93","checksum":"sha256:b160d4b77bd171e5ac5fd6361f32b78b29a99773ab1c040c060e23c538ed7d2b"}
|
package/vendor/parg/w3c.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"bindings":null,"version":"0.1.0","grammar":"PubidW3c","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"W3C "}},{"Entity":{"atom":16}},{"Entity":{"atom":13}},{"Str":{"pattern":"DNOTE"}},{"Str":{"pattern":"NOTE"}},{"Str":{"pattern":"WD"}},{"Str":{"pattern":"CRD"}},{"Str":{"pattern":"CR"}},{"Str":{"pattern":"REC"}},{"Str":{"pattern":"PER"}},{"Str":{"pattern":"PR"}},{"Str":{"pattern":"SPSD"}},{"Str":{"pattern":"OBSL"}},{"Alternative":{"atoms":[3,4,5,6,7,8,9,10,11,12]}},{"Named":{"name":"type","atom":2}},{"Str":{"pattern":"-"}},{"Sequence":{"atoms":[14,15]}},{"Repetition":{"atom":1,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":22}},{"Entity":{"atom":20}},{"Re":{"pattern":"[\\x01-\\u{10ffff}]"}},{"Repetition":{"atom":19,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"rest","atom":21}},{"Sequence":{"atoms":[0,17,18]}}],"root":23},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule type_token: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule type_token: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"W3C REC-html40-19981224","expect":{}},{"entry":"identifier","kind":"accept","input":"W3C NOTE-datetime-19980827","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/w3c/parser.rb: split off the leading maturity token;\n# code/date boundary is builder-side by design. Token order matters for\n# shared prefixes (CRD before CR, PER before PR, DNOTE before NOTE).\n\ngrammar PubidW3c version \"0.1.0\" {\n any_char = %x01-10FFFF\n type_token = \"DNOTE\" / \"NOTE\" / \"WD\" / \"CRD\" / \"CR\" / \"REC\" / \"PER\" / \"PR\" / \"SPSD\" / \"OBSL\"\n type_part = type_token as type \"-\"\n rest = (1*any_char) as rest\n identifier = \"W3C \" [type_part] rest\n entry identifier: identifier\n\n test {\n accept \"W3C REC-html40-19981224\"\n accept \"W3C NOTE-datetime-19980827\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:
|
|
1
|
+
{"bindings":null,"version":"0.1.0","grammar":"PubidW3c","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"W3C "}},{"Entity":{"atom":16}},{"Entity":{"atom":13}},{"Str":{"pattern":"DNOTE"}},{"Str":{"pattern":"NOTE"}},{"Str":{"pattern":"WD"}},{"Str":{"pattern":"CRD"}},{"Str":{"pattern":"CR"}},{"Str":{"pattern":"REC"}},{"Str":{"pattern":"PER"}},{"Str":{"pattern":"PR"}},{"Str":{"pattern":"SPSD"}},{"Str":{"pattern":"OBSL"}},{"Alternative":{"atoms":[3,4,5,6,7,8,9,10,11,12]}},{"Named":{"name":"type","atom":2}},{"Str":{"pattern":"-"}},{"Sequence":{"atoms":[14,15]}},{"Repetition":{"atom":1,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":22}},{"Entity":{"atom":20}},{"Re":{"pattern":"[\\x01-\\u{10ffff}]"}},{"Repetition":{"atom":19,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"rest","atom":21}},{"Sequence":{"atoms":[0,17,18]}}],"root":23},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule type_token: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule type_token: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"W3C REC-html40-19981224","expect":{}},{"entry":"identifier","kind":"accept","input":"W3C NOTE-datetime-19980827","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/w3c/parser.rb: split off the leading maturity token;\n# code/date boundary is builder-side by design. Token order matters for\n# shared prefixes (CRD before CR, PER before PR, DNOTE before NOTE).\n\ngrammar PubidW3c version \"0.1.0\" {\n any_char = %x01-10FFFF\n type_token = \"DNOTE\" / \"NOTE\" / \"WD\" / \"CRD\" / \"CR\" / \"REC\" / \"PER\" / \"PR\" / \"SPSD\" / \"OBSL\"\n type_part = type_token as type \"-\"\n rest = (1*any_char) as rest\n identifier = \"W3C \" [type_part] rest\n entry identifier: identifier\n\n test {\n accept \"W3C REC-html40-19981224\"\n accept \"W3C NOTE-datetime-19980827\"\n reject \"nonsense\"\n }\n}\n","source_hash":"944395ef6248da15959e1be0a7a90447cdf0ae94633174cb6ebd0dc1d87db146","compiler_version":"1.3.93","checksum":"sha256:bbd430a6864e154881b4037b648430092d875719d1b84d41fd94e08b312dc0b5"}
|