pubid 2.0.0.pre.alpha.14 → 2.0.0.pre.alpha.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/data/parg/adobe.json +1 -0
- data/data/parg/aiee.parg +37 -0
- data/data/parg/amca.json +1 -0
- data/data/parg/ansi.json +1 -0
- data/data/parg/api.json +1 -0
- data/data/parg/ashrae.json +1 -0
- data/data/parg/asme.json +1 -0
- data/data/parg/astm.json +1 -0
- data/data/parg/bipm.json +1 -0
- data/data/parg/bsi.json +1 -0
- data/data/parg/calconnect.json +1 -0
- data/data/parg/ccsds.json +1 -0
- data/data/parg/cen_cenelec.json +1 -0
- data/data/parg/cen_cenelec.parg +42 -0
- data/data/parg/cie.json +1 -0
- data/data/parg/csa.json +1 -0
- data/data/parg/doi.json +1 -0
- data/data/parg/easc.json +1 -0
- data/data/parg/ecma.json +1 -0
- data/data/parg/etsi.json +1 -0
- data/data/parg/evs.json +1 -0
- data/data/parg/gb.json +1 -0
- data/data/parg/gost.json +1 -0
- data/data/parg/iala.json +1 -0
- data/data/parg/iana.json +1 -0
- data/data/parg/idf.parg +39 -0
- data/data/parg/iec.json +1 -0
- data/data/parg/ieee.json +1 -0
- data/data/parg/ietf.json +1 -0
- data/data/parg/ire.parg +39 -0
- data/data/parg/isbn.json +1 -0
- data/data/parg/iso.json +1 -0
- data/data/parg/itu.json +1 -0
- data/data/parg/jcgm.json +1 -0
- data/data/parg/jis.json +1 -0
- data/data/parg/nesc.parg +38 -0
- data/data/parg/nist.json +1 -0
- data/data/parg/oasis.json +1 -0
- data/data/parg/ogc.json +1 -0
- data/data/parg/oiml.json +1 -0
- data/data/parg/omg.json +1 -0
- data/data/parg/plateau.json +1 -0
- data/data/parg/sae.json +1 -0
- data/data/parg/tgpp.json +1 -0
- data/data/parg/un.json +1 -0
- data/data/parg/w3c.json +1 -0
- data/data/parg/xsf.json +1 -0
- data/lib/pubid/version.rb +1 -1
- metadata +48 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Port of lib/pubid/cen_cenelec/parser.rb. Pre-parse normalization
|
|
2
|
+
# (U+2011/AD dashes, comment stripping, CEN-CLC/GUIDE forms) stays
|
|
3
|
+
# binder-side: the grammar sees normalized input.
|
|
4
|
+
|
|
5
|
+
grammar PubidCenCenelec version "0.1.0" {
|
|
6
|
+
digit = %x30-39
|
|
7
|
+
space = " "
|
|
8
|
+
dash = "-"
|
|
9
|
+
slash = "/"
|
|
10
|
+
plus = "+"
|
|
11
|
+
colon = ":"
|
|
12
|
+
publisher = (("CWA" / "HD" / "ES" / "CR" / "ENV") as publisher) / (("EN" / "CEN") as publisher [slash "CLC" as copublisher]) / ("CLC" as publisher [slash "CEN" as copublisher])
|
|
13
|
+
stage_prefix = ("FprEN" / "prEN") as type_with_stage
|
|
14
|
+
type = ("Guide" / "GUIDE" / "TR" / "TS") as type
|
|
15
|
+
number = (1*digit) as number
|
|
16
|
+
part = dash (1*(digit / dash)) as part
|
|
17
|
+
parts = (*part) as parts
|
|
18
|
+
month_digits = ("01" / "02" / "03" / "04" / "05" / "06" / "07" / "08" / "09" / "10" / "11" / "12") as month
|
|
19
|
+
year = colon (4digit) as year
|
|
20
|
+
year_with_month = colon (4digit) as year dash month_digits
|
|
21
|
+
date = year_with_month / year
|
|
22
|
+
amendment = (plus as amd_sep_plus / slash as amd_sep_slash) "A" (1*digit) as amd_number [(colon (4digit) as amd_year)]
|
|
23
|
+
corrigendum = (plus as amd_sep_plus / slash as amd_sep_slash) "AC" [(digit (*digit)) as cor_number] [(year_with_month / (colon (4digit) as year))]
|
|
24
|
+
supplement = (amendment / corrigendum) as supplement
|
|
25
|
+
supplements = (*supplement) as supplements
|
|
26
|
+
edition = space "ED" (1*digit) as edition
|
|
27
|
+
adopted_org_prefix = "ISO" / "IEC" / "CISPR"
|
|
28
|
+
adopted_string = (adopted_org_prefix *(!supplement !edition any_noln_char)) as adopted_string
|
|
29
|
+
any_noln_char = %x01-09 / %x0B-10FFFF
|
|
30
|
+
fragment_identifier = ((stage_prefix / publisher) space number parts space "AMD" (1*digit) as amendment_number space "FRAG" (1*digit) as fragment_number) / ((stage_prefix / publisher) space number parts [year] (plus / slash) "A" (1*digit) as amendment_number [(colon (4digit) as amendment_year)] space "FRAG" (1*digit) as fragment_number)
|
|
31
|
+
identifier = fragment_identifier / ((stage_prefix / publisher) [(space adopted_string)] [(space type / slash type)] [(space number parts [year])] supplements [edition])
|
|
32
|
+
|
|
33
|
+
entry identifier: identifier
|
|
34
|
+
|
|
35
|
+
test {
|
|
36
|
+
accept "EN 18216:2026"
|
|
37
|
+
accept "EN ISO 9001:2015"
|
|
38
|
+
accept "CEN/CLC TR 17161:2019"
|
|
39
|
+
accept "EN 196-1:2016+A1"
|
|
40
|
+
reject "nonsense"
|
|
41
|
+
}
|
|
42
|
+
}
|
data/data/parg/cie.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"0.1.0","grammar":"PubidCie","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":9}},{"Str":{"pattern":"CIE Tutorials Bundle"}},{"Entity":{"atom":3}},{"Str":{"pattern":" "}},{"Entity":{"atom":7}},{"Entity":{"atom":6}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":5,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"bundle_number","atom":4}},{"Sequence":{"atoms":[1,2,8]}},{"Entity":{"atom":47}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Named":{"name":"first_number","atom":13}},{"Entity":{"atom":16}},{"Str":{"pattern":"-"}},{"Str":{"pattern":"SP"}},{"Entity":{"atom":7}},{"Entity":{"atom":20}},{"Str":{"pattern":"."}},{"Entity":{"atom":7}},{"Entity":{"atom":23}},{"Str":{"pattern":":"}},{"Entity":{"atom":33}},{"Entity":{"atom":28}},{"Str":{"pattern":"19"}},{"Str":{"pattern":"20"}},{"Alternative":{"atoms":[26,27]}},{"Entity":{"atom":6}},{"Repetition":{"atom":29,"min":2,"max":null,"tag":"Repetition"}},{"Entity":{"atom":6}},{"Lookahead":{"atom":31,"positive":false}},{"Sequence":{"atoms":[25,30,32]}},{"Str":{"pattern":","}},{"Entity":{"atom":7}},{"Named":{"name":"next_number","atom":35}},{"Entity":{"atom":16}},{"Str":{"pattern":"SP"}},{"Entity":{"atom":7}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Sequence":{"atoms":[34,36,37,38,39,40,41,42,43]}},{"Repetition":{"atom":44,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"bundle_items","atom":45}},{"Sequence":{"atoms":[11,12,14,15,17,18,19,21,22,24,46]}},{"Entity":{"atom":107}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Str":{"pattern":"ISO/CIE"}},{"Named":{"name":"copublisher","atom":51}},{"Entity":{"atom":3}},{"Entity":{"atom":57}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Alternative":{"atoms":[55,56]}},{"Entity":{"atom":3}},{"Sequence":{"atoms":[54,58]}},{"Named":{"name":"doc_type","atom":59}},{"Repetition":{"atom":60,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":62}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":65}},{"Sequence":{"atoms":[64,66]}},{"Repetition":{"atom":67,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":105}},{"Entity":{"atom":85}},{"Entity":{"atom":3}},{"Repetition":{"atom":71,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":74}},{"Str":{"pattern":"("}},{"Entity":{"atom":76}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Repetition":{"atom":75,"min":2,"max":null,"tag":"Repetition"}},{"Named":{"name":"lang_code","atom":77}},{"Entity":{"atom":16}},{"Entity":{"atom":33}},{"Named":{"name":"trans_year","atom":80}},{"Entity":{"atom":83}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[72,73,78,79,81,82]}},{"Named":{"name":"language_paren_year","atom":84}},{"Entity":{"atom":97}},{"Entity":{"atom":74}},{"Entity":{"atom":92}},{"Entity":{"atom":76}},{"Entity":{"atom":91}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[89,90]}},{"Repetition":{"atom":88,"min":1,"max":3,"tag":"Repetition"}},{"Named":{"name":"lang_code","atom":93}},{"Entity":{"atom":83}},{"Sequence":{"atoms":[87,94,95]}},{"Named":{"name":"language_paren","atom":96}},{"Entity":{"atom":104}},{"Entity":{"atom":100}},{"Str":{"pattern":"/"}},{"Entity":{"atom":76}},{"Named":{"name":"lang_code","atom":101}},{"Sequence":{"atoms":[99,102]}},{"Named":{"name":"language_slash","atom":103}},{"Alternative":{"atoms":[70,86,98]}},{"Repetition":{"atom":69,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[49,50,52,53,61,63,68,106]}},{"Entity":{"atom":149}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Str":{"pattern":"ISO"}},{"Named":{"name":"copublisher","atom":111}},{"Entity":{"atom":100}},{"Lookahead":{"atom":113,"positive":false}},{"Entity":{"atom":3}},{"Entity":{"atom":57}},{"Entity":{"atom":3}},{"Sequence":{"atoms":[116,117]}},{"Named":{"name":"doc_type","atom":118}},{"Repetition":{"atom":119,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":127}},{"Str":{"pattern":"FDIS"}},{"Str":{"pattern":"DIS"}},{"Str":{"pattern":"DS"}},{"Alternative":{"atoms":[122,123,124]}},{"Entity":{"atom":3}},{"Sequence":{"atoms":[125,126]}},{"Named":{"name":"stage","atom":121}},{"Repetition":{"atom":128,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":130}},{"Entity":{"atom":16}},{"Entity":{"atom":7}},{"Named":{"name":"part","atom":133}},{"Sequence":{"atoms":[132,134]}},{"Repetition":{"atom":135,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":138}},{"Sequence":{"atoms":[137,139]}},{"Entity":{"atom":16}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":142}},{"Sequence":{"atoms":[141,143]}},{"Alternative":{"atoms":[140,144]}},{"Repetition":{"atom":145,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":105}},{"Repetition":{"atom":147,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[109,110,112,114,115,120,129,131,136,146,148]}},{"Entity":{"atom":164}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Str":{"pattern":"IEC"}},{"Named":{"name":"copublisher","atom":153}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":156}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"part","atom":159}},{"Entity":{"atom":16}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":162}},{"Sequence":{"atoms":[151,152,154,155,157,158,160,161,163]}},{"Entity":{"atom":224}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":171}},{"Str":{"pattern":"S"}},{"Entity":{"atom":3}},{"Sequence":{"atoms":[169,170]}},{"Named":{"name":"s_prefix","atom":168}},{"Repetition":{"atom":172,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":174}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"iteration","atom":177}},{"Sequence":{"atoms":[176,178]}},{"Entity":{"atom":16}},{"Entity":{"atom":7}},{"Named":{"name":"part","atom":181}},{"Sequence":{"atoms":[180,182]}},{"Alternative":{"atoms":[179,183]}},{"Repetition":{"atom":184,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":100}},{"Entity":{"atom":76}},{"Named":{"name":"lang_code","atom":187}},{"Entity":{"atom":23}},{"Named":{"name":"lang_colon","atom":189}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":191}},{"Sequence":{"atoms":[188,190,192]}},{"Entity":{"atom":76}},{"Named":{"name":"lang_code","atom":194}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":196}},{"Sequence":{"atoms":[195,197]}},{"Entity":{"atom":33}},{"Named":{"name":"slash_year","atom":199}},{"Alternative":{"atoms":[193,198,200]}},{"Sequence":{"atoms":[186,201]}},{"Repetition":{"atom":202,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":3}},{"Str":{"pattern":"(ISO"}},{"Entity":{"atom":3}},{"Entity":{"atom":6}},{"Entity":{"atom":76}},{"Entity":{"atom":23}},{"Entity":{"atom":100}},{"Entity":{"atom":20}},{"Entity":{"atom":16}},{"Alternative":{"atoms":[207,208,209,210,211,212]}},{"Repetition":{"atom":213,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":74}},{"Entity":{"atom":76}},{"Repetition":{"atom":216,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":83}},{"Sequence":{"atoms":[215,217,218]}},{"Repetition":{"atom":219,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[214,220]}},{"Named":{"name":"iso_reference","atom":221}},{"Entity":{"atom":83}},{"Sequence":{"atoms":[166,167,173,175,185,203,204,205,206,222,223]}},{"Entity":{"atom":251}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":127}},{"Named":{"name":"stage","atom":228}},{"Entity":{"atom":171}},{"Named":{"name":"s_prefix","atom":230}},{"Repetition":{"atom":231,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":7}},{"Named":{"name":"base_number","atom":233}},{"Entity":{"atom":16}},{"Str":{"pattern":"SP"}},{"Entity":{"atom":7}},{"Named":{"name":"supplement_number","atom":237}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"supplement_part","atom":240}},{"Sequence":{"atoms":[239,241]}},{"Repetition":{"atom":242,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":100}},{"Entity":{"atom":76}},{"Named":{"name":"lang_code","atom":245}},{"Entity":{"atom":23}},{"Named":{"name":"lang_colon","atom":247}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":249}},{"Sequence":{"atoms":[226,227,229,232,234,235,236,238,243,244,246,248,250]}},{"Entity":{"atom":273}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":171}},{"Named":{"name":"s_prefix","atom":255}},{"Repetition":{"atom":256,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":258}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":261}},{"Entity":{"atom":100}},{"Str":{"pattern":"IEC"}},{"Entity":{"atom":3}},{"Entity":{"atom":270}},{"Re":{"pattern":"[\\x01-\\x09]"}},{"Re":{"pattern":"[\\x0b-\\x28]"}},{"Re":{"pattern":"[\\x2a-\\u{10ffff}]"}},{"Alternative":{"atoms":[267,268,269]}},{"Repetition":{"atom":266,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"iec_identifier","atom":271}},{"Sequence":{"atoms":[253,254,257,259,260,262,263,264,265,272]}},{"Entity":{"atom":300}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Named":{"name":"base_number","atom":277}},{"Entity":{"atom":16}},{"Str":{"pattern":"SP"}},{"Entity":{"atom":7}},{"Named":{"name":"base_supplement","atom":281}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"base_supplement_part","atom":284}},{"Sequence":{"atoms":[283,285]}},{"Repetition":{"atom":286,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[279,280,282,287]}},{"Repetition":{"atom":288,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"base_year","atom":291}},{"Entity":{"atom":100}},{"Str":{"pattern":"Cor"}},{"Entity":{"atom":7}},{"Named":{"name":"cor_number","atom":295}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"cor_year","atom":298}},{"Sequence":{"atoms":[275,276,278,289,290,292,293,294,296,297,299]}},{"Entity":{"atom":325}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Named":{"name":"base_number","atom":304}},{"Entity":{"atom":16}},{"Str":{"pattern":"SP"}},{"Entity":{"atom":7}},{"Named":{"name":"supplement_number","atom":308}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"supplement_part","atom":311}},{"Sequence":{"atoms":[310,312]}},{"Repetition":{"atom":313,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":316}},{"Sequence":{"atoms":[315,317]}},{"Repetition":{"atom":318,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":323}},{"Entity":{"atom":97}},{"Entity":{"atom":104}},{"Alternative":{"atoms":[321,322]}},{"Repetition":{"atom":320,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[302,303,305,306,307,309,314,319,324]}},{"Entity":{"atom":406}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":127}},{"Repetition":{"atom":329,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"stage","atom":330}},{"Entity":{"atom":171}},{"Repetition":{"atom":332,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"s_prefix","atom":333}},{"Entity":{"atom":398}},{"Entity":{"atom":345}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":337}},{"Entity":{"atom":100}},{"Entity":{"atom":7}},{"Named":{"name":"part","atom":340}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"iteration","atom":343}},{"Sequence":{"atoms":[338,339,341,342,344]}},{"Entity":{"atom":358}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":347}},{"Entity":{"atom":16}},{"Entity":{"atom":7}},{"Named":{"name":"part","atom":350}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"iteration","atom":353}},{"Sequence":{"atoms":[348,349,351,352,354]}},{"Entity":{"atom":16}},{"Lookahead":{"atom":356,"positive":false}},{"Sequence":{"atoms":[355,357]}},{"Entity":{"atom":365}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":360}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"iteration","atom":363}},{"Sequence":{"atoms":[361,362,364]}},{"Entity":{"atom":377}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":367}},{"Entity":{"atom":100}},{"Str":{"pattern":""}},{"Named":{"name":"slash_sep","atom":370}},{"Entity":{"atom":7}},{"Named":{"name":"part","atom":372}},{"Sequence":{"atoms":[368,369,371,373]}},{"Entity":{"atom":20}},{"Lookahead":{"atom":375,"positive":false}},{"Sequence":{"atoms":[374,376]}},{"Entity":{"atom":394}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":379}},{"Entity":{"atom":16}},{"Str":{"pattern":""}},{"Named":{"name":"dash_sep","atom":382}},{"Entity":{"atom":6}},{"Repetition":{"atom":384,"min":1,"max":3,"tag":"Repetition"}},{"Named":{"name":"part","atom":385}},{"Sequence":{"atoms":[380,381,383,386]}},{"Entity":{"atom":28}},{"Lookahead":{"atom":388,"positive":false}},{"Entity":{"atom":20}},{"Entity":{"atom":16}},{"Alternative":{"atoms":[390,391]}},{"Lookahead":{"atom":392,"positive":false}},{"Sequence":{"atoms":[387,389,393]}},{"Entity":{"atom":397}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":396}},{"Alternative":{"atoms":[336,346,359,366,378,395]}},{"Entity":{"atom":100}},{"Entity":{"atom":76}},{"Named":{"name":"lang_code","atom":400}},{"Entity":{"atom":23}},{"Named":{"name":"lang_colon","atom":402}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":404}},{"Sequence":{"atoms":[327,328,331,334,335,399,401,403,405]}},{"Entity":{"atom":427}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":127}},{"Repetition":{"atom":410,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"stage","atom":411}},{"Entity":{"atom":171}},{"Repetition":{"atom":413,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"s_prefix","atom":414}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":416}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Named":{"name":"iteration","atom":419}},{"Sequence":{"atoms":[418,420]}},{"Repetition":{"atom":421,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[417,422]}},{"Entity":{"atom":100}},{"Entity":{"atom":33}},{"Named":{"name":"slash_year","atom":425}},{"Sequence":{"atoms":[408,409,412,415,423,424,426]}},{"Entity":{"atom":449}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Str":{"pattern":"D"}},{"Named":{"name":"d_prefix","atom":431}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":433}},{"Entity":{"atom":448}},{"Entity":{"atom":441}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":438}},{"Sequence":{"atoms":[437,439]}},{"Named":{"name":"current_date","atom":440}},{"Entity":{"atom":447}},{"Entity":{"atom":16}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":444}},{"Sequence":{"atoms":[443,445]}},{"Named":{"name":"legacy_date","atom":446}},{"Alternative":{"atoms":[436,442]}},{"Sequence":{"atoms":[429,430,432,434,435]}},{"Entity":{"atom":463}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Str":{"pattern":"x"}},{"Entity":{"atom":7}},{"Named":{"name":"conf_number","atom":454}},{"Entity":{"atom":16}},{"Entity":{"atom":460}},{"Entity":{"atom":76}},{"Repetition":{"atom":458,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"paper_code","atom":459}},{"Entity":{"atom":7}},{"Named":{"name":"paper_number","atom":461}},{"Sequence":{"atoms":[451,452,453,455,456,457,462]}},{"Entity":{"atom":476}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":460}},{"Entity":{"atom":7}},{"Named":{"name":"paper_number","atom":468}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Entity":{"atom":16}},{"Entity":{"atom":7}},{"Sequence":{"atoms":[471,472,473]}},{"Named":{"name":"page_range","atom":474}},{"Sequence":{"atoms":[465,466,467,469,470,475]}},{"Entity":{"atom":488}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":480}},{"Entity":{"atom":16}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":483}},{"Entity":{"atom":85}},{"Repetition":{"atom":485,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"trailing_lang","atom":486}},{"Sequence":{"atoms":[478,479,481,482,484,487]}},{"Entity":{"atom":514}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":493}},{"Str":{"pattern":"x"}},{"Named":{"name":"conference","atom":492}},{"Entity":{"atom":7}},{"Named":{"name":"conf_number","atom":495}},{"Entity":{"atom":448}},{"Entity":{"atom":3}},{"Str":{"pattern":"Amendment"}},{"Entity":{"atom":3}},{"Entity":{"atom":7}},{"Named":{"name":"amd_number","atom":501}},{"Sequence":{"atoms":[498,499,500,502]}},{"Repetition":{"atom":503,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":512}},{"Entity":{"atom":100}},{"Entity":{"atom":6}},{"Entity":{"atom":91}},{"Alternative":{"atoms":[507,508]}},{"Repetition":{"atom":509,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"variant","atom":510}},{"Sequence":{"atoms":[506,511]}},{"Repetition":{"atom":505,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[490,491,494,496,497,504,513]}},{"Entity":{"atom":581}},{"Entity":{"atom":552}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":76}},{"Named":{"name":"type","atom":519}},{"Entity":{"atom":3}},{"Entity":{"atom":532}},{"Entity":{"atom":7}},{"Named":{"name":"number","atom":523}},{"Entity":{"atom":16}},{"Entity":{"atom":6}},{"Repetition":{"atom":526,"min":1,"max":3,"tag":"Repetition"}},{"Named":{"name":"part","atom":527}},{"Sequence":{"atoms":[525,528]}},{"Repetition":{"atom":529,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[524,530]}},{"Named":{"name":"full_number","atom":531}},{"Entity":{"atom":448}},{"Repetition":{"atom":533,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":550}},{"Entity":{"atom":3}},{"Entity":{"atom":544}},{"Entity":{"atom":7}},{"Entity":{"atom":20}},{"Entity":{"atom":7}},{"Sequence":{"atoms":[538,539,540]}},{"Entity":{"atom":7}},{"Alternative":{"atoms":[541,542]}},{"Named":{"name":"iteration","atom":543}},{"Repetition":{"atom":537,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"WD"}},{"Str":{"pattern":"CD"}},{"Alternative":{"atoms":[546,547]}},{"Named":{"name":"stage","atom":548}},{"Sequence":{"atoms":[536,545,549]}},{"Repetition":{"atom":535,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[517,518,520,521,522,534,551]}},{"Named":{"name":"base","atom":516}},{"Entity":{"atom":3}},{"Str":{"pattern":"Annex"}},{"Entity":{"atom":3}},{"Entity":{"atom":76}},{"Entity":{"atom":16}},{"Entity":{"atom":76}},{"Sequence":{"atoms":[558,559]}},{"Repetition":{"atom":560,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[557,561]}},{"Named":{"name":"annex_letter","atom":562}},{"Entity":{"atom":3}},{"Entity":{"atom":568}},{"Str":{"pattern":"Edition"}},{"Str":{"pattern":"edition"}},{"Alternative":{"atoms":[566,567]}},{"Entity":{"atom":3}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":570}},{"Sequence":{"atoms":[564,565,569,571]}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":574}},{"Sequence":{"atoms":[573,575]}},{"Alternative":{"atoms":[572,576]}},{"Repetition":{"atom":577,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":323}},{"Repetition":{"atom":579,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[553,554,555,556,563,578,580]}},{"Entity":{"atom":603}},{"Entity":{"atom":552}},{"Named":{"name":"base","atom":583}},{"Entity":{"atom":3}},{"Str":{"pattern":"Annexes"}},{"Named":{"name":"annex_marker","atom":586}},{"Entity":{"atom":3}},{"Entity":{"atom":568}},{"Entity":{"atom":3}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":591}},{"Sequence":{"atoms":[588,589,590,592]}},{"Named":{"name":"edition_format","atom":593}},{"Entity":{"atom":23}},{"Entity":{"atom":33}},{"Named":{"name":"year","atom":596}},{"Sequence":{"atoms":[595,597]}},{"Alternative":{"atoms":[594,598]}},{"Repetition":{"atom":599,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":323}},{"Repetition":{"atom":601,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[584,585,587,600,602]}},{"Entity":{"atom":626}},{"Str":{"pattern":"CIE"}},{"Entity":{"atom":3}},{"Entity":{"atom":127}},{"Repetition":{"atom":607,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"stage","atom":608}},{"Entity":{"atom":171}},{"Repetition":{"atom":610,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"s_prefix","atom":611}},{"Entity":{"atom":398}},{"Entity":{"atom":105}},{"Entity":{"atom":448}},{"Sequence":{"atoms":[614,615]}},{"Named":{"name":"lang_before","atom":616}},{"Entity":{"atom":448}},{"Entity":{"atom":105}},{"Repetition":{"atom":619,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[618,620]}},{"Named":{"name":"date_then_lang","atom":621}},{"Entity":{"atom":448}},{"Alternative":{"atoms":[617,622,623]}},{"Repetition":{"atom":624,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[605,606,609,612,613,625]}},{"Alternative":{"atoms":[0,10,48,108,150,165,225,252,274,301,326,407,428,450,464,477,489,515,582,604]}}],"root":627},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule code: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 2 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 2 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 3 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 3 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule code: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule language: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule doc_type: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 3 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 4 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 5 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 6 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 7 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 9 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 8 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 10 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 9 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 11 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 10 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 12 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 11 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 13 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 12 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 14 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 13 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 14 and 15 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 14 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 14 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 14 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 14 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 14 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 15 and 16 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 15 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 15 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 15 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 15 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 16 and 17 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 16 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 16 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 16 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 17 and 18 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 17 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 17 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 18 and 19 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 18 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 19 and 20 are order-dependent (shared first bytes; ordered choice is decisive)","rule nonrparen: branches 1 and 2 are order-dependent (first set not statically known)","rule nonrparen_nl: branches 1 and 3 are order-dependent (first set not statically known)","rule nonrparen_nl: branches 2 and 3 are order-dependent (first set not statically known)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"CIE S 008/E:2001","expect":{}},{"entry":"identifier","kind":"accept","input":"CIE 15:2018","expect":{}},{"entry":"identifier","kind":"accept","input":"CIE x045-2019","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/cie/parser.rb — CIE identifiers: standards with\n# iteration/part/separator variants and legacy or current dates,\n# language forms (slash, paren, paren-year), DIS+SP supplements,\n# conference proceedings (xNNN papers), D-series, joint forms with\n# ISO/ISO-CIE/IEC, the identical-(ISO ...) form, and the IEC dual.\n\ngrammar PubidCie version \"0.1.0\" {\n digit = %x30-39\n digits = 1*digit\n upper = %x41-5A\n lower = %x61-7A\n letter = upper / lower\n space = \" \"\n dash = \"-\"\n colon = \":\"\n dot = \".\"\n slash = \"/\"\n lparen = \"(\"\n rparen = \")\"\n century = \"19\" / \"20\"\n year_digits = century 2*digit !digit\n\n legacy_date = (dash year_digits as year) as legacy_date\n current_date = (colon year_digits as year) as current_date\n date = current_date / legacy_date\n\n code_with_iteration = digits as number dot digits as iteration\n code_with_part_and_iteration_slash = digits as number slash digits as part dot digits as iteration\n code_with_part_and_iteration_dash = (digits as number dash digits as part dot digits as iteration) !dash\n code_with_part_dash = (digits as number dash (\"\" as dash_sep) (1*3digit) as part) (!(century)) (!(dot / dash))\n code_with_part_slash = (digits as number slash (\"\" as slash_sep) digits as part) !dot\n code_simple = digits as number\n code = code_with_part_and_iteration_slash / code_with_part_and_iteration_dash / code_with_iteration / code_with_part_slash / code_with_part_dash / code_simple\n\n language_slash = (slash upper as lang_code) as language_slash\n language_paren = (lparen (1*3letter) as lang_code rparen) as language_paren\n language_paren_year = ([space] lparen (2*upper) as lang_code dash year_digits as trans_year rparen) as language_paren_year\n language = language_paren_year / language_paren / language_slash\n\n s_prefix = \"S\" space\n x_prefix = \"x\"\n stage_code = (\"FDIS\" / \"DIS\" / \"DS\") space\n doc_type = \"TR\" / \"TS\"\n paper_code = (1*upper) as paper_code\n variant_slug = slash (1*(digit / lower)) as variant\n\n conf_proceedings = \"CIE\" space \"x\" digits as conf_number dash paper_code digits as paper_number\n standalone_proceedings = \"CIE\" space paper_code digits as paper_number space (digits dash digits) as page_range\n d_series_identifier = \"CIE\" space \"D\" as d_prefix digits as number date\n standard_with_slash_year = \"CIE\" space ([stage_code]) as stage ([s_prefix]) as s_prefix (digits as number [(dot digits as iteration)]) slash year_digits as slash_year\n dis_with_supplement = \"CIE\" space stage_code as stage [s_prefix as s_prefix] digits as base_number dash \"SP\" digits as supplement_number [(dot digits as supplement_part)] slash upper as lang_code colon as lang_colon year_digits as year\n standard_identifier = \"CIE\" space ([stage_code]) as stage ([s_prefix]) as s_prefix code [((language date) as lang_before / (date [language]) as date_then_lang / date)]\n standard_with_language_year = \"CIE\" space ([stage_code]) as stage ([s_prefix]) as s_prefix code slash upper as lang_code colon as lang_colon year_digits as year\n conference_identifier = \"CIE\" space x_prefix as conference digits as conf_number date [(space \"Amendment\" space digits as amd_number)] [variant_slug]\n joint_with_iso = (\"CIE\" space \"ISO\" as copublisher !slash space [(doc_type space) as doc_type] [stage_code as stage] digits as number [(dash digits as part)] [((colon year_digits as year) / (dash year_digits as year))] [language])\n joint_with_iso_cie = (\"CIE\" space \"ISO/CIE\" as copublisher space [(doc_type space) as doc_type] digits as number [(colon year_digits as year)] [language])\n joint_with_iec = (\"CIE\" space \"IEC\" as copublisher space digits as number dot digits as part dash year_digits as year)\n identical_with_iso = (\"CIE\" space [s_prefix as s_prefix] digits as number [(dot digits as iteration) / (dash digits as part)] [(slash ((upper as lang_code colon as lang_colon year_digits as year) / (upper as lang_code year_digits as year) / year_digits as slash_year))] space \"(ISO\" space ((1*(digit / upper / colon / slash / dot / dash)) [(lparen 1*upper rparen)]) as iso_reference rparen)\n dual_with_iec = (\"CIE\" space [s_prefix as s_prefix] digits as number colon year_digits as year slash \"IEC\" space (1*nonrparen_nl) as iec_identifier)\n supplement_identifier = (\"CIE\" space digits as base_number dash \"SP\" digits as supplement_number [(dot digits as supplement_part)] [(colon year_digits as year)] [language_portion])\n corrigendum_identifier = (\"CIE\" space digits as base_number [(dash \"SP\" digits as base_supplement [(dot digits as base_supplement_part)])] colon year_digits as base_year slash \"Cor\" digits as cor_number colon year_digits as cor_year)\n bundle_identifier = (\"CIE\" space digits as first_number dash \"SP\" digits dot digits colon year_digits (1*(\",\" digits as next_number dash \"SP\" digits dot digits colon year_digits)) as bundle_items)\n tutorial_bundle = \"CIE Tutorials Bundle\" space digits as bundle_number\n\n identifier = tutorial_bundle / bundle_identifier / joint_with_iso_cie / joint_with_iso / joint_with_iec / identical_with_iso / dis_with_supplement / dual_with_iec / corrigendum_identifier / supplement_identifier / standard_with_language_year / standard_with_slash_year / d_series_identifier / conf_proceedings / standalone_proceedings / legacy_code_with_year / conference_identifier / annex_letter_identifier / annex_identifier / standard_identifier\n legacy_code_with_year = \"CIE\" space digits as number dash year_digits as year [(language_paren_year)] as trailing_lang\n\n # Annex forms (rule bodies per source)\n annex_identifier = (base_without_language as base) space \"Annexes\" as annex_marker [((space edition_text space year_digits as year) as edition_format / (colon year_digits as year))] [language_portion]\n annex_letter_identifier = (base_without_language as base) space \"Annex\" space (upper [(dash upper)]) as annex_letter [((space edition_text space year_digits as year) / (colon year_digits as year))] [language_portion]\n base_without_language = \"CIE\" space upper as type space full_number_cie [date] [draft_stage_cie]\n draft_stage_cie = space [stage_iteration_cie] (\"WD\" / \"CD\") as stage\n stage_iteration_cie = ((digits dot digits) / digits) as iteration\n full_number_cie = (digits as number [(dash (1*3digit) as part)]) as full_number\n language_portion = language_paren / language_slash\n edition_text = \"Edition\" / \"edition\"\n\n nonrparen = %x01-28 / %x29-10FFFF\n nonrparen_nl = %x01-09 / %x0B-28 / %x2A-10FFFF\n upper2 = upper\n\n entry identifier: identifier\n\n test {\n accept \"CIE S 008/E:2001\"\n accept \"CIE 15:2018\"\n accept \"CIE x045-2019\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:01e1ca2b6035870fe9d87fb834a139af8544bfd23b3297a63bb08e39e2b5e056"}
|
data/data/parg/csa.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"0.1.0","grammar":"PubidCsa","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":1}},{"Entity":{"atom":84}},{"Str":{"pattern":"CSA"}},{"Named":{"name":"adoption_pub","atom":2}},{"Entity":{"atom":70}},{"Str":{"pattern":"ISO/IEC"}},{"Named":{"name":"adoption_org","atom":5}},{"Entity":{"atom":8}},{"Str":{"pattern":" "}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Alternative":{"atoms":[9,10]}},{"Named":{"name":"iso_type","atom":11}},{"Entity":{"atom":8}},{"Entity":{"atom":18}},{"Entity":{"atom":16}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Str":{"pattern":"-"}},{"Alternative":{"atoms":[15,17]}},{"Repetition":{"atom":14,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"adoption_number","atom":19}},{"Sequence":{"atoms":[6,7,12,13,20]}},{"Str":{"pattern":"ISO/IEC"}},{"Named":{"name":"adoption_org_with_type","atom":22}},{"Entity":{"atom":8}},{"Entity":{"atom":18}},{"Repetition":{"atom":25,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"adoption_number","atom":26}},{"Sequence":{"atoms":[23,24,27]}},{"Str":{"pattern":"ISO"}},{"Str":{"pattern":"IEC"}},{"Str":{"pattern":"CEI/IEC"}},{"Str":{"pattern":"CISPR"}},{"Alternative":{"atoms":[29,30,31,32]}},{"Named":{"name":"adoption_org","atom":33}},{"Entity":{"atom":8}},{"Entity":{"atom":18}},{"Repetition":{"atom":36,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"adoption_number","atom":37}},{"Sequence":{"atoms":[34,35,38]}},{"Alternative":{"atoms":[21,28,39]}},{"Entity":{"atom":42}},{"Str":{"pattern":":"}},{"Entity":{"atom":44}},{"Str":{"pattern":"-"}},{"Alternative":{"atoms":[41,43]}},{"Named":{"name":"adoption_year_sep","atom":45}},{"Entity":{"atom":49}},{"Entity":{"atom":16}},{"Repetition":{"atom":48,"min":4,"max":null,"tag":"Repetition"}},{"Entity":{"atom":52}},{"Entity":{"atom":16}},{"Repetition":{"atom":51,"min":2,"max":null,"tag":"Repetition"}},{"Alternative":{"atoms":[47,50]}},{"Named":{"name":"adoption_year","atom":53}},{"Sequence":{"atoms":[46,54]}},{"Entity":{"atom":57}},{"Str":{"pattern":"/"}},{"Str":{"pattern":"A"}},{"Entity":{"atom":16}},{"Named":{"name":"adoption_amendment","atom":59}},{"Entity":{"atom":42}},{"Entity":{"atom":44}},{"Alternative":{"atoms":[61,62]}},{"Entity":{"atom":49}},{"Entity":{"atom":52}},{"Alternative":{"atoms":[64,65]}},{"Named":{"name":"adoption_amendment_year","atom":66}},{"Sequence":{"atoms":[56,58,60,63,67]}},{"Repetition":{"atom":68,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[40,55,69]}},{"Entity":{"atom":82}},{"Entity":{"atom":8}},{"Str":{"pattern":"(R"}},{"Entity":{"atom":16}},{"Repetition":{"atom":74,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"reaffirmation_4digit","atom":75}},{"Entity":{"atom":16}},{"Repetition":{"atom":77,"min":2,"max":2,"tag":"Repetition"}},{"Named":{"name":"reaffirmation_2digit","atom":78}},{"Alternative":{"atoms":[76,79]}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[72,73,80,81]}},{"Repetition":{"atom":71,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[3,4,83]}},{"Entity":{"atom":231}},{"Entity":{"atom":91}},{"Str":{"pattern":"CSA"}},{"Entity":{"atom":8}},{"Str":{"pattern":""}},{"Named":{"name":"has_publisher","atom":89}},{"Sequence":{"atoms":[87,88,90]}},{"Entity":{"atom":166}},{"Entity":{"atom":109}},{"Entity":{"atom":16}},{"Repetition":{"atom":94,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":97}},{"Str":{"pattern":"."}},{"Entity":{"atom":16}},{"Repetition":{"atom":98,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":44}},{"Entity":{"atom":16}},{"Repetition":{"atom":101,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[100,102]}},{"Repetition":{"atom":103,"min":0,"max":1,"tag":"Repetition"}},{"Entity":{"atom":106}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Repetition":{"atom":105,"min":2,"max":6,"tag":"Repetition"}},{"Repetition":{"atom":107,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[95,96,99,104,108]}},{"Entity":{"atom":115}},{"Entity":{"atom":16}},{"Repetition":{"atom":111,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":106}},{"Repetition":{"atom":113,"min":2,"max":6,"tag":"Repetition"}},{"Sequence":{"atoms":[112,114]}},{"Entity":{"atom":149}},{"Entity":{"atom":106}},{"Entity":{"atom":16}},{"Repetition":{"atom":118,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":97}},{"Entity":{"atom":16}},{"Repetition":{"atom":121,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[120,122]}},{"Repetition":{"atom":123,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":44}},{"Entity":{"atom":143}},{"Entity":{"atom":131}},{"Entity":{"atom":16}},{"Entity":{"atom":16}},{"Lookahead":{"atom":129,"positive":false}},{"Sequence":{"atoms":[128,130]}},{"Entity":{"atom":16}},{"Repetition":{"atom":132,"min":3,"max":null,"tag":"Repetition"}},{"Entity":{"atom":16}},{"Repetition":{"atom":134,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":140}},{"Entity":{"atom":106}},{"Entity":{"atom":139}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[137,138]}},{"Repetition":{"atom":136,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[135,141]}},{"Alternative":{"atoms":[127,133,142]}},{"Sequence":{"atoms":[125,126]}},{"Repetition":{"atom":144,"min":0,"max":null,"tag":"Repetition"}},{"Entity":{"atom":106}},{"Repetition":{"atom":146,"min":2,"max":6,"tag":"Repetition"}},{"Repetition":{"atom":147,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[117,119,124,145,148]}},{"Entity":{"atom":159}},{"Entity":{"atom":106}},{"Entity":{"atom":16}},{"Repetition":{"atom":152,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":97}},{"Entity":{"atom":16}},{"Repetition":{"atom":155,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[154,156]}},{"Repetition":{"atom":157,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[151,153,158]}},{"Entity":{"atom":164}},{"Entity":{"atom":106}},{"Entity":{"atom":16}},{"Repetition":{"atom":162,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[161,163]}},{"Alternative":{"atoms":[93,110,116,150,160]}},{"Named":{"name":"code","atom":165}},{"Entity":{"atom":106}},{"Entity":{"atom":16}},{"Repetition":{"atom":168,"min":2,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[167,169]}},{"Named":{"name":"code","atom":170}},{"Entity":{"atom":16}},{"Repetition":{"atom":172,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":97}},{"Entity":{"atom":16}},{"Repetition":{"atom":175,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[173,174,176]}},{"Named":{"name":"code","atom":177}},{"Alternative":{"atoms":[92,171,178]}},{"Entity":{"atom":8}},{"Entity":{"atom":184}},{"Entity":{"atom":106}},{"Repetition":{"atom":182,"min":2,"max":3,"tag":"Repetition"}},{"Named":{"name":"series_prefix","atom":183}},{"Entity":{"atom":8}},{"Sequence":{"atoms":[181,185]}},{"Repetition":{"atom":186,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"SERIES"}},{"Named":{"name":"series_type","atom":188}},{"Entity":{"atom":210}},{"Str":{"pattern":""}},{"Named":{"name":"colon_format","atom":191}},{"Entity":{"atom":42}},{"Entity":{"atom":199}},{"Str":{"pattern":"F"}},{"Str":{"pattern":"M"}},{"Alternative":{"atoms":[195,196]}},{"Repetition":{"atom":197,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"year_prefix","atom":198}},{"Entity":{"atom":49}},{"Entity":{"atom":52}},{"Alternative":{"atoms":[200,201]}},{"Named":{"name":"year","atom":202}},{"Sequence":{"atoms":[194,203]}},{"Entity":{"atom":49}},{"Entity":{"atom":52}},{"Alternative":{"atoms":[205,206]}},{"Named":{"name":"year","atom":207}},{"Alternative":{"atoms":[204,208]}},{"Sequence":{"atoms":[192,193,209]}},{"Entity":{"atom":226}},{"Str":{"pattern":""}},{"Named":{"name":"dash_format","atom":212}},{"Entity":{"atom":44}},{"Entity":{"atom":199}},{"Entity":{"atom":49}},{"Entity":{"atom":52}},{"Alternative":{"atoms":[216,217]}},{"Named":{"name":"year","atom":218}},{"Sequence":{"atoms":[215,219]}},{"Entity":{"atom":49}},{"Entity":{"atom":52}},{"Alternative":{"atoms":[221,222]}},{"Named":{"name":"year","atom":223}},{"Alternative":{"atoms":[220,224]}},{"Sequence":{"atoms":[213,214,225]}},{"Alternative":{"atoms":[190,211]}},{"Repetition":{"atom":227,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":82}},{"Repetition":{"atom":229,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[86,179,180,187,189,228,230]}},{"Entity":{"atom":290}},{"Entity":{"atom":91}},{"Entity":{"atom":239}},{"Str":{"pattern":"C22.2"}},{"Str":{"pattern":"C22.3"}},{"Str":{"pattern":"C22.4"}},{"Str":{"pattern":"C22.6"}},{"Alternative":{"atoms":[235,236,237,238]}},{"Named":{"name":"cec_part","atom":234}},{"Entity":{"atom":248}},{"Entity":{"atom":8}},{"Str":{"pattern":"NO."}},{"Str":{"pattern":"No."}},{"Alternative":{"atoms":[243,244]}},{"Named":{"name":"no_notation","atom":245}},{"Entity":{"atom":8}},{"Sequence":{"atoms":[242,246,247]}},{"Entity":{"atom":283}},{"Entity":{"atom":16}},{"Repetition":{"atom":250,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":44}},{"Entity":{"atom":16}},{"Repetition":{"atom":253,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[252,254]}},{"Repetition":{"atom":255,"min":2,"max":10,"tag":"Repetition"}},{"Sequence":{"atoms":[251,256]}},{"Entity":{"atom":16}},{"Repetition":{"atom":258,"min":5,"max":null,"tag":"Repetition"}},{"Entity":{"atom":44}},{"Entity":{"atom":16}},{"Repetition":{"atom":261,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[259,260,262]}},{"Entity":{"atom":16}},{"Repetition":{"atom":264,"min":3,"max":4,"tag":"Repetition"}},{"Entity":{"atom":44}},{"Entity":{"atom":131}},{"Entity":{"atom":16}},{"Repetition":{"atom":268,"min":3,"max":null,"tag":"Repetition"}},{"Alternative":{"atoms":[267,269]}},{"Sequence":{"atoms":[265,266,270]}},{"Entity":{"atom":16}},{"Repetition":{"atom":272,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":97}},{"Entity":{"atom":16}},{"Repetition":{"atom":275,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[274,276]}},{"Repetition":{"atom":277,"min":1,"max":3,"tag":"Repetition"}},{"Sequence":{"atoms":[273,278]}},{"Entity":{"atom":16}},{"Repetition":{"atom":280,"min":1,"max":null,"tag":"Repetition"}},{"Alternative":{"atoms":[257,263,271,279,281]}},{"Named":{"name":"no_number","atom":282}},{"Entity":{"atom":210}},{"Entity":{"atom":226}},{"Alternative":{"atoms":[284,285]}},{"Repetition":{"atom":286,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":82}},{"Repetition":{"atom":288,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[233,240,241,249,287,289]}},{"Entity":{"atom":366}},{"Entity":{"atom":340}},{"Entity":{"atom":91}},{"Entity":{"atom":166}},{"Entity":{"atom":321}},{"Entity":{"atom":248}},{"Entity":{"atom":283}},{"Entity":{"atom":210}},{"Entity":{"atom":226}},{"Alternative":{"atoms":[298,299]}},{"Sequence":{"atoms":[296,297,300]}},{"Entity":{"atom":8}},{"Entity":{"atom":184}},{"Entity":{"atom":8}},{"Str":{"pattern":"SERIES"}},{"Named":{"name":"series","atom":305}},{"Entity":{"atom":210}},{"Entity":{"atom":226}},{"Alternative":{"atoms":[307,308]}},{"Sequence":{"atoms":[302,303,304,306,309]}},{"Entity":{"atom":8}},{"Str":{"pattern":"SERIES"}},{"Named":{"name":"series","atom":312}},{"Entity":{"atom":210}},{"Entity":{"atom":226}},{"Alternative":{"atoms":[314,315]}},{"Sequence":{"atoms":[311,313,316]}},{"Entity":{"atom":210}},{"Entity":{"atom":226}},{"Alternative":{"atoms":[318,319]}},{"Alternative":{"atoms":[301,310,317,320]}},{"Repetition":{"atom":295,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":338}},{"Entity":{"atom":57}},{"Str":{"pattern":"Amd "}},{"Repetition":{"atom":325,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"A"}},{"Repetition":{"atom":327,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":16}},{"Repetition":{"atom":329,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"amendment_number","atom":330}},{"Entity":{"atom":42}},{"Entity":{"atom":16}},{"Repetition":{"atom":333,"min":2,"max":2,"tag":"Repetition"}},{"Named":{"name":"amendment_year","atom":334}},{"Sequence":{"atoms":[332,335]}},{"Repetition":{"atom":336,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[324,326,328,331,337]}},{"Repetition":{"atom":323,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[293,294,322,339]}},{"Named":{"name":"base","atom":292}},{"Str":{"pattern":" + "}},{"Entity":{"atom":357}},{"Entity":{"atom":166}},{"Entity":{"atom":248}},{"Entity":{"atom":283}},{"Entity":{"atom":210}},{"Entity":{"atom":226}},{"Alternative":{"atoms":[347,348]}},{"Repetition":{"atom":349,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[345,346,350]}},{"Entity":{"atom":210}},{"Entity":{"atom":226}},{"Alternative":{"atoms":[352,353]}},{"Repetition":{"atom":354,"min":0,"max":1,"tag":"Maybe"}},{"Alternative":{"atoms":[351,355]}},{"Sequence":{"atoms":[344,356]}},{"Named":{"name":"bundled_first","atom":343}},{"Str":{"pattern":" + "}},{"Entity":{"atom":357}},{"Sequence":{"atoms":[359,360]}},{"Repetition":{"atom":361,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"bundled_rest","atom":362}},{"Entity":{"atom":82}},{"Repetition":{"atom":364,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[341,342,358,363,365]}},{"Entity":{"atom":412}},{"Entity":{"atom":373}},{"Entity":{"atom":91}},{"Entity":{"atom":166}},{"Entity":{"atom":321}},{"Repetition":{"atom":371,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[369,370,372]}},{"Named":{"name":"first","atom":368}},{"Entity":{"atom":57}},{"Entity":{"atom":384}},{"Entity":{"atom":91}},{"Repetition":{"atom":377,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":166}},{"Entity":{"atom":321}},{"Repetition":{"atom":380,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":338}},{"Repetition":{"atom":382,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[378,379,381,383]}},{"Named":{"name":"second","atom":376}},{"Entity":{"atom":57}},{"Entity":{"atom":384}},{"Named":{"name":"third","atom":387}},{"Sequence":{"atoms":[386,388]}},{"Repetition":{"atom":389,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":82}},{"Repetition":{"atom":391,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":410}},{"Entity":{"atom":8}},{"Entity":{"atom":400}},{"Str":{"pattern":"Code"}},{"Str":{"pattern":"Handbook"}},{"Str":{"pattern":"Training Package"}},{"Str":{"pattern":"Package"}},{"Alternative":{"atoms":[396,397,398,399]}},{"Str":{"pattern":", "}},{"Entity":{"atom":400}},{"Sequence":{"atoms":[401,402]}},{"Entity":{"atom":8}},{"Str":{"pattern":"& "}},{"Entity":{"atom":400}},{"Sequence":{"atoms":[404,405,406]}},{"Alternative":{"atoms":[403,407]}},{"Repetition":{"atom":408,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[394,395,409]}},{"Repetition":{"atom":393,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[374,375,385,390,392,411]}},{"Entity":{"atom":433}},{"Entity":{"atom":340}},{"Named":{"name":"first","atom":414}},{"Entity":{"atom":417}},{"Str":{"pattern":","}},{"Str":{"pattern":""}},{"Named":{"name":"comma_separator","atom":418}},{"Entity":{"atom":8}},{"Entity":{"atom":340}},{"Named":{"name":"second","atom":421}},{"Entity":{"atom":82}},{"Repetition":{"atom":423,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":8}},{"Str":{"pattern":"& "}},{"Entity":{"atom":410}},{"Sequence":{"atoms":[425,426,427]}},{"Entity":{"atom":410}},{"Alternative":{"atoms":[428,429]}},{"Named":{"name":"package_portion","atom":430}},{"Repetition":{"atom":431,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[415,416,419,420,422,424,432]}},{"Entity":{"atom":441}},{"Entity":{"atom":340}},{"Entity":{"atom":82}},{"Repetition":{"atom":436,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":410}},{"Named":{"name":"package_portion","atom":438}},{"Repetition":{"atom":439,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[435,437,440]}},{"Entity":{"atom":469}},{"Entity":{"atom":166}},{"Entity":{"atom":8}},{"Entity":{"atom":184}},{"Entity":{"atom":8}},{"Str":{"pattern":"SERIES"}},{"Named":{"name":"series","atom":447}},{"Entity":{"atom":210}},{"Entity":{"atom":226}},{"Alternative":{"atoms":[449,450]}},{"Sequence":{"atoms":[444,445,446,448,451]}},{"Entity":{"atom":8}},{"Str":{"pattern":"SERIES"}},{"Named":{"name":"series","atom":454}},{"Entity":{"atom":210}},{"Entity":{"atom":226}},{"Alternative":{"atoms":[456,457]}},{"Sequence":{"atoms":[453,455,458]}},{"Entity":{"atom":210}},{"Entity":{"atom":226}},{"Alternative":{"atoms":[460,461]}},{"Alternative":{"atoms":[452,459,462]}},{"Entity":{"atom":8}},{"Str":{"pattern":"PACKAGE"}},{"Sequence":{"atoms":[464,465]}},{"Named":{"name":"package_portion","atom":466}},{"Repetition":{"atom":467,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[443,463,468]}},{"Alternative":{"atoms":[0,85,232,291,367,413,434,442]}}],"root":470},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule code_c_tail: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule code_c_tail: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule code_c_tail: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule cec_part: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule cec_part: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule cec_part: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule cec_part: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule cec_part: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule cec_part: branches 3 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule trailing_block: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule trailing_block: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule trailing_block: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 1 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 4 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 5 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 6 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 7 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 2 and 8 are order-dependent (shared first bytes; ordered choice is decisive)","rule identifier: branches 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 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 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 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 7 and 8 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"CSA Z259.1-05","expect":{}},{"entry":"identifier","kind":"accept","input":"CSA C22.2 NO. 60601-1","expect":{}},{"entry":"identifier","kind":"accept","input":"CSA Z195-02","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/csa/parser.rb. Deviations:\n# - the parslet's empty-match markers (str(\"\").as(:has_publisher),\n# :colon_format, :dash_format) are unrepresentable in PG and were\n# dead captures in practice; the separator itself remains in the tree.\n# - the pre-parse normalization (CONSOLIDATED stripping, (Rnnn) spacing,\n# CEI→IEC, CAN/CSA prefix handling) stays binder-side.\n\ngrammar PubidCsa version \"0.1.0\" {\n upper = %x41-5A\n lower = %x61-7A\n digit = %x30-39\n letters = 1*upper\n space = \" \"\n\n publisher = \"CSA\" space (\"\" as has_publisher)\n\n # code_pattern: four alternatives, source order\n code_a = (1*digit dot 1*digit *1(dash 1*digit) [2*6upper])\n code_b = (1*digit 2*6upper)\n one_or_one_follow = (digit !digit)\n code_c_tail = ((one_or_one_follow / 3*digit / (1*digit 1*letter)))\n code_c = (upper 1*digit *(dot 1*digit) *(dash code_c_tail) [2*6upper])\n code_d = (upper 1*digit [dot 1*digit])\n code_e = (upper 2*digit)\n code_pattern = (code_a / code_b / code_c / code_d / code_e) as code\n\n no_notation = space (\"NO.\" / \"No.\") as no_notation space\n no_number = ((1*digit 2*10(dash 1*digit)) / (5*digit dash 1*digit) / (3*4digit dash (one_or_one_follow / 3*digit)) / (1*digit 1*3(dot 1*digit)) / 1*digit) as no_number\n year_prefix = [(\"F\" / \"M\")] as year_prefix\n year_2digit = 2*digit\n year_4digit = 4*digit\n colon_year = (\"\" as colon_format) colon ((year_prefix ((year_4digit / year_2digit) as year)) / ((year_4digit / year_2digit) as year))\n dash_year = (\"\" as dash_format) dash ((year_prefix ((year_4digit / year_2digit) as year)) / ((year_4digit / year_2digit) as year))\n reaffirmation = space \"(R\" ((4digit) as reaffirmation_4digit / (2digit) as reaffirmation_2digit) \")\"\n amendment_slash = slash [\"Amd \" ] [\"A\"] (1*digit) as amendment_number [(colon (2digit) as amendment_year)]\n package_keyword = \"Code\" / \"Handbook\" / \"Training Package\" / \"Package\"\n package_portion = space package_keyword *((\", \" package_keyword) / (space \"& \" package_keyword))\n series_prefix = (2*3upper) as series_prefix\n series_keyword = \"SERIES\"\n\n series_identifier = publisher (code_pattern / (upper 2*digit) as code / (1*digit dot 1*digit) as code) space [series_prefix space] \"SERIES\" as series_type [colon_year / dash_year] [reaffirmation]\n cec_part = \"C22.2\" / \"C22.3\" / \"C22.4\" / \"C22.6\"\n cec_identifier = publisher (cec_part as cec_part) no_notation no_number [colon_year / dash_year] [reaffirmation]\n adoption_identifier = (\"CSA\" as adoption_pub) adoption_body [reaffirmation]\n adoption_body = ((\"ISO/IEC\" as adoption_org space (\"TR\" / \"TS\") as iso_type space (1*numdash) as adoption_number) / (\"ISO/IEC\" as adoption_org_with_type space (1*numdash) as adoption_number) / ((\"ISO\" / \"IEC\" / \"CEI/IEC\" / \"CISPR\") as adoption_org space (1*numdash) as adoption_number)) ((colon / dash) as adoption_year_sep (year_4digit / year_2digit) as adoption_year) [(slash \"A\" digit as adoption_amendment (colon / dash) (year_4digit / year_2digit) as adoption_amendment_year)]\n numdash = digit / \"-\"\n iso_iec_adoption = adoption_identifier\n\n trailing_block = ((no_notation no_number (colon_year / dash_year)) / (space series_prefix space \"SERIES\" as series (colon_year / dash_year)) / (space \"SERIES\" as series (colon_year / dash_year)) / (colon_year / dash_year))\n csa_code = publisher code_pattern [trailing_block] [amendment_slash]\n base_csa_code = publisher code_pattern [trailing_block]\n continuation_code = [publisher] code_pattern [trailing_block] [amendment_slash]\n bundled_portion = code_pattern ((no_notation no_number [colon_year / dash_year]) / [colon_year / dash_year])\n bundled_identifier = (csa_code as base) \" + \" (bundled_portion as bundled_first) ((*(\" + \" bundled_portion)) as bundled_rest) [reaffirmation]\n combined_slash = ((base_csa_code as first) slash (continuation_code as second) [(slash continuation_code as third)] [reaffirmation] [package_portion])\n combined_comma = ((csa_code as first) comma (\"\" as comma_separator) space (csa_code as second) [reaffirmation] [(space \"& \" package_portion / package_portion) as package_portion])\n single_identifier = csa_code [reaffirmation] [package_portion as package_portion]\n code_only_identifier = code_pattern ((space series_prefix space \"SERIES\" as series (colon_year / dash_year)) / (space \"SERIES\" as series (colon_year / dash_year)) / (colon_year / dash_year)) [(space \"PACKAGE\") as package_portion]\n\n identifier = iso_iec_adoption / series_identifier / cec_identifier / bundled_identifier / combined_slash / combined_comma / single_identifier / code_only_identifier\n\n comma = \",\"\n dash = \"-\"\n slash = \"/\"\n colon = \":\"\n dot = \".\"\n ampersand = \"&\"\n letter = upper / lower\n entry identifier: identifier\n\n test {\n accept \"CSA Z259.1-05\"\n accept \"CSA C22.2 NO. 60601-1\"\n accept \"CSA Z195-02\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:cea06659c675e87ec0ee4cf2c3823ee602507552322afe2cced86626f7c14241"}
|
data/data/parg/doi.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"0.1.0","grammar":"PubidDoi","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":8}},{"Str":{"pattern":"https://"}},{"Str":{"pattern":"http://"}},{"Alternative":{"atoms":[1,2]}},{"Repetition":{"atom":3,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"doi.org"}},{"Repetition":{"atom":5,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[4,6]}},{"Repetition":{"atom":7,"min":0,"max":1,"tag":"Maybe"}},{"Repetition":{"atom":0,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":15}},{"Str":{"pattern":"doi:"}},{"Str":{"pattern":"DOI:"}},{"Str":{"pattern":"Doi:"}},{"Alternative":{"atoms":[11,12,13]}},{"Repetition":{"atom":14,"min":0,"max":1,"tag":"Maybe"}},{"Repetition":{"atom":10,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":18}},{"Str":{"pattern":"/"}},{"Repetition":{"atom":17,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":27}},{"Str":{"pattern":"10"}},{"Str":{"pattern":"."}},{"Entity":{"atom":24}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":23,"min":2,"max":null,"tag":"Repetition"}},{"Named":{"name":"prefix","atom":25}},{"Sequence":{"atoms":[21,22,26]}},{"Entity":{"atom":18}},{"Entity":{"atom":42}},{"Entity":{"atom":40}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Re":{"pattern":"[.]"}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[\\-]"}},{"Re":{"pattern":"[/]"}},{"Re":{"pattern":"[(]"}},{"Re":{"pattern":"[)]"}},{"Alternative":{"atoms":[31,32,33,34,35,36,37,38,39]}},{"Repetition":{"atom":30,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"suffix","atom":41}},{"Sequence":{"atoms":[9,16,19,20,28,29]}}],"root":43},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"10.1000/182","expect":{}},{"entry":"identifier","kind":"accept","input":"doi:10.1000/182","expect":{}},{"entry":"identifier","kind":"accept","input":"https://doi.org/10.1000/182","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/doi/parser.rb: [doi:|DOI:|URL]10.{registrar}/{suffix}\n# per ISO 26324. Suffix is printable non-whitespace minus the DOI-reserved\n# exclusions, per the parslet class.\n\ngrammar PubidDoi version \"0.1.0\" {\n digit = %x30-39\n suffix_char = %x30-39 / %x41-5A / %x61-7A / %x2E / %x5F / %x2D / %x2F / %x28 / %x29\n doi_prefix = \"10\" \".\" (2*digit) as prefix\n doi_suffix = (1*suffix_char) as suffix\n url_prefix = [[\"https://\" / \"http://\"] [\"doi.org\"]]\n scheme_prefix = [\"doi:\" / \"DOI:\" / \"Doi:\"]\n identifier = [url_prefix] [scheme_prefix] [slash] doi_prefix slash doi_suffix\n slash = \"/\"\n entry identifier: identifier\n\n test {\n accept \"10.1000/182\"\n accept \"doi:10.1000/182\"\n accept \"https://doi.org/10.1000/182\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:ba09d4b526b3d0fa74988151f7f4b88b35e1dad2cbf508e285e0288e487b429e"}
|
data/data/parg/easc.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"0.1.0","grammar":"PubidEasc","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":9}},{"Str":{"pattern":"ПМГ"}},{"Str":{"pattern":"РМГ"}},{"Str":{"pattern":"PMG"}},{"Str":{"pattern":"RMG"}},{"Alternative":{"atoms":[1,2,3,4]}},{"Named":{"name":"series","atom":5}},{"Entity":{"atom":8}},{"Str":{"pattern":" "}},{"Sequence":{"atoms":[6,7]}},{"Entity":{"atom":16}},{"Str":{"pattern":"В"}},{"Str":{"pattern":"V"}},{"Alternative":{"atoms":[11,12]}},{"Named":{"name":"variant","atom":13}},{"Entity":{"atom":8}},{"Sequence":{"atoms":[14,15]}},{"Repetition":{"atom":10,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":29}},{"Entity":{"atom":20}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":19,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":23}},{"Str":{"pattern":"."}},{"Entity":{"atom":20}},{"Repetition":{"atom":24,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[22,25]}},{"Repetition":{"atom":26,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[21,27]}},{"Named":{"name":"number","atom":28}},{"Entity":{"atom":39}},{"Entity":{"atom":8}},{"Repetition":{"atom":31,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"-"}},{"Str":{"pattern":"—"}},{"Str":{"pattern":"–"}},{"Alternative":{"atoms":[33,34,35]}},{"Entity":{"atom":8}},{"Repetition":{"atom":37,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[32,36,38]}},{"Entity":{"atom":46}},{"Entity":{"atom":20}},{"Repetition":{"atom":41,"min":4,"max":4,"tag":"Repetition"}},{"Entity":{"atom":20}},{"Repetition":{"atom":43,"min":2,"max":2,"tag":"Repetition"}},{"Alternative":{"atoms":[42,44]}},{"Named":{"name":"year","atom":45}},{"Sequence":{"atoms":[30,40]}},{"Repetition":{"atom":47,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[0,17,18,48]}}],"root":49},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"ПМГ 4-96","expect":{}},{"entry":"identifier","kind":"accept","input":"RMG 76","expect":{}},{"entry":"identifier","kind":"accept","input":"РМГ 29-2013","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/easc/parser.rb — EASC identifiers in Cyrillic and\n# Latin forms: ПМГ/РМГ (PMG/RMG) [В|V] NNN[.N]-YYYY with dash, em-dash\n# or en-dash year separators.\n\ngrammar PubidEasc version \"0.1.0\" {\n series_word = (\"ПМГ\" / \"РМГ\" / \"PMG\" / \"RMG\") as series space\n variant_word = (\"В\" / \"V\") as variant space\n number = (1*digit *(dot 1*digit)) as number\n year = (4digit / 2digit) as year\n year_sep = [space] (\"-\" / \"—\" / \"–\") [space]\n identifier = series_word [variant_word] number [(year_sep year)]\n digit = %x30-39\n dot = \".\"\n space = \" \"\n entry identifier: identifier\n\n test {\n accept \"ПМГ 4-96\"\n accept \"RMG 76\"\n accept \"РМГ 29-2013\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:888595b69944396be0f456386f3e93bc76dfc5c6f71a74abed50362401621375"}
|
data/data/parg/ecma.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"0.1.0","grammar":"PubidEcma","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"ECMA"}},{"Entity":{"atom":7}},{"Str":{"pattern":" TR/"}},{"Entity":{"atom":4}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":3,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"tr_number","atom":5}},{"Sequence":{"atoms":[2,6]}},{"Entity":{"atom":13}},{"Str":{"pattern":" MEM/"}},{"Entity":{"atom":4}},{"Repetition":{"atom":10,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"mem_number","atom":11}},{"Sequence":{"atoms":[9,12]}},{"Entity":{"atom":27}},{"Str":{"pattern":"-"}},{"Str":{"pattern":" "}},{"Alternative":{"atoms":[15,16]}},{"Entity":{"atom":4}},{"Repetition":{"atom":18,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":19}},{"Str":{"pattern":"-"}},{"Entity":{"atom":4}},{"Repetition":{"atom":22,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"part","atom":23}},{"Sequence":{"atoms":[21,24]}},{"Repetition":{"atom":25,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[17,20,26]}},{"Alternative":{"atoms":[1,8,14]}},{"Entity":{"atom":42}},{"Str":{"pattern":" ed"}},{"Entity":{"atom":40}},{"Entity":{"atom":4}},{"Repetition":{"atom":32,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":35}},{"Str":{"pattern":"."}},{"Entity":{"atom":4}},{"Repetition":{"atom":36,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[34,37]}},{"Repetition":{"atom":38,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[33,39]}},{"Named":{"name":"edition","atom":31}},{"Sequence":{"atoms":[30,41]}},{"Repetition":{"atom":29,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":49}},{"Str":{"pattern":" vol"}},{"Entity":{"atom":4}},{"Repetition":{"atom":46,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"volume","atom":47}},{"Sequence":{"atoms":[45,48]}},{"Repetition":{"atom":44,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[0,28,43,50]}}],"root":51},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"ECMA-262","expect":{}},{"entry":"identifier","kind":"accept","input":"ECMA TR/104","expect":{}},{"entry":"identifier","kind":"accept","input":"ECMA-262 ed3","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/ecma/parser.rb: ECMA-NNN[-part], ECMA TR/NNN,\n# ECMA MEM/NNN, each with optional \" edX[.Y]\" and \" volN\". The TR/MEM\n# vs standard alternation relies on the disjoint first character after\n# the prefix (T/M are not digits), as in the source.\n\ngrammar PubidEcma version \"0.1.0\" {\n tr = \" TR/\" (1*digit) as tr_number\n mem = \" MEM/\" (1*digit) as mem_number\n standard = (\"-\" / \" \") (1*digit) as number [(\"-\" (1*digit) as part)]\n edition_number = 1*digit *(dot 1*digit)\n edition = \" ed\" edition_number as edition\n volume = \" vol\" (1*digit) as volume\n identifier = \"ECMA\" (tr / mem / standard) [edition] [volume]\n digit = %x30-39\n dot = \".\"\n entry identifier: identifier\n\n test {\n accept \"ECMA-262\"\n accept \"ECMA TR/104\"\n accept \"ECMA-262 ed3\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:cebf7ba68c450a6747ec813a528ebda63a6e952b1c96bd68a1cdb96b1afd922a"}
|
data/data/parg/etsi.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"0.1.0","grammar":"PubidEtsi","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"ETSI "}},{"Entity":{"atom":18}},{"Str":{"pattern":"I-ETS"}},{"Str":{"pattern":"TCRTR"}},{"Str":{"pattern":"GTS"}},{"Str":{"pattern":"ETR"}},{"Str":{"pattern":"ETS"}},{"Str":{"pattern":"TBR"}},{"Str":{"pattern":"NET"}},{"Str":{"pattern":"EN"}},{"Str":{"pattern":"ES"}},{"Str":{"pattern":"EG"}},{"Str":{"pattern":"TS"}},{"Str":{"pattern":"GR"}},{"Str":{"pattern":"GS"}},{"Str":{"pattern":"SR"}},{"Str":{"pattern":"TR"}},{"Alternative":{"atoms":[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]}},{"Named":{"name":"type","atom":17}},{"Entity":{"atom":20}},{"Str":{"pattern":" "}},{"Entity":{"atom":61}},{"Entity":{"atom":32}},{"Str":{"pattern":"GSM"}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":25,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":29}},{"Str":{"pattern":"."}},{"Entity":{"atom":26}},{"Repetition":{"atom":30,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[23,24,27,28,31]}},{"Entity":{"atom":39}},{"Entity":{"atom":26}},{"Repetition":{"atom":34,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":29}},{"Entity":{"atom":26}},{"Repetition":{"atom":37,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[35,36,38]}},{"Entity":{"atom":56}},{"Entity":{"atom":45}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Alternative":{"atoms":[42,43,44]}},{"Repetition":{"atom":41,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":48}},{"Str":{"pattern":"-"}},{"Entity":{"atom":45}},{"Repetition":{"atom":49,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[47,50]}},{"Repetition":{"atom":51,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Repetition":{"atom":54,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[46,52,53,55]}},{"Entity":{"atom":59}},{"Entity":{"atom":26}},{"Repetition":{"atom":58,"min":1,"max":null,"tag":"Repetition"}},{"Alternative":{"atoms":[22,33,40,57]}},{"Named":{"name":"number","atom":60}},{"Entity":{"atom":67}},{"Entity":{"atom":20}},{"Entity":{"atom":26}},{"Repetition":{"atom":64,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"minor","atom":65}},{"Sequence":{"atoms":[63,66]}},{"Repetition":{"atom":62,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":77}},{"Entity":{"atom":75}},{"Entity":{"atom":48}},{"Entity":{"atom":45}},{"Repetition":{"atom":72,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"part","atom":73}},{"Sequence":{"atoms":[71,74]}},{"Repetition":{"atom":70,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"parts","atom":76}},{"Repetition":{"atom":69,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":95}},{"Entity":{"atom":93}},{"Str":{"pattern":"/A"}},{"Entity":{"atom":26}},{"Repetition":{"atom":82,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":83}},{"Sequence":{"atoms":[81,84]}},{"Named":{"name":"amendment","atom":85}},{"Str":{"pattern":"/C"}},{"Entity":{"atom":26}},{"Repetition":{"atom":88,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":89}},{"Sequence":{"atoms":[87,90]}},{"Named":{"name":"corrigendum","atom":91}},{"Alternative":{"atoms":[86,92]}},{"Repetition":{"atom":80,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"supplements","atom":94}},{"Repetition":{"atom":79,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":20}},{"Entity":{"atom":114}},{"Entity":{"atom":107}},{"Str":{"pattern":"V"}},{"Entity":{"atom":104}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[.]"}},{"Alternative":{"atoms":[102,103]}},{"Repetition":{"atom":101,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"version","atom":105}},{"Sequence":{"atoms":[100,106]}},{"Entity":{"atom":113}},{"Str":{"pattern":"ed."}},{"Entity":{"atom":26}},{"Repetition":{"atom":110,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"edition","atom":111}},{"Sequence":{"atoms":[109,112]}},{"Alternative":{"atoms":[99,108]}},{"Sequence":{"atoms":[97,98]}},{"Repetition":{"atom":115,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":20}},{"Entity":{"atom":128}},{"Str":{"pattern":"("}},{"Entity":{"atom":26}},{"Repetition":{"atom":120,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":121}},{"Entity":{"atom":48}},{"Entity":{"atom":26}},{"Repetition":{"atom":124,"min":2,"max":2,"tag":"Repetition"}},{"Named":{"name":"month","atom":125}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[119,122,123,126,127]}},{"Sequence":{"atoms":[117,118]}},{"Repetition":{"atom":129,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[0,1,19,21,68,78,96,116,130]}}],"root":131},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule single_supplement: 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":"ETSI EN 300 175","expect":{}},{"entry":"identifier","kind":"accept","input":"ETSI TR 101 999","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/etsi/parser.rb: ETSI <one of 15 types> <number>\n# [minor][-parts][/A..|/C..][ V<version> | ed.N] [(YYYY-MM)].\n\ngrammar PubidEtsi version \"0.1.0\" {\n type = (\"I-ETS\" / \"TCRTR\" / \"GTS\" / \"ETR\" / \"ETS\" / \"TBR\" / \"NET\" / \"EN\" / \"ES\" / \"EG\" / \"TS\" / \"GR\" / \"GS\" / \"SR\" / \"TR\") as type\n # The monorepo's number is a single flat string (\"300 058\", \"298\") —\n # the inner pieces are structural only, never surfaced as captures.\n gsm_with_space_number = \"GSM\" space 1*digit dot 1*digit\n dotted_number = 1*digit dot 1*digit\n complex_number = 1*alnum_char [(dash 1*alnum_char)] space 1*digit\n simple_number = 1*digit\n number = (gsm_with_space_number / dotted_number / complex_number / simple_number) as number\n minor = space (1*digit) as minor\n part = dash (1*alnum_char) as part\n parts = (*part) as parts\n version = \"V\" (1*version_char) as version\n edition = \"ed.\" (1*digit) as edition\n version_or_edition = version / edition\n date_part = \"(\" (4digit) as year dash (2digit) as month \")\"\n single_supplement = ((\"/A\" (1*digit) as number) as amendment / (\"/C\" (1*digit) as number) as corrigendum)\n supplements = (1*single_supplement) as supplements\n identifier = \"ETSI \" type space number [minor] [parts] [supplements] [(space version_or_edition)] [(space date_part)]\n alnum_char = %x41-5A / %x61-7A / %x30-39\n version_char = %x30-39 / %x2E\n digit = %x30-39\n dash = \"-\"\n dot = \".\"\n space = \" \"\n entry identifier: identifier\n\n test {\n accept \"ETSI EN 300 175\"\n accept \"ETSI TR 101 999\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:54c7778641650b6d1ff6524b8ace8772267ac7a589704fbdef92869d7804656f"}
|
data/data/parg/evs.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"0.2.0","grammar":"PubidEvs","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"EVS"}},{"Entity":{"atom":7}},{"Entity":{"atom":3}},{"Str":{"pattern":"-"}},{"Entity":{"atom":5}},{"Str":{"pattern":" "}},{"Alternative":{"atoms":[2,4]}},{"Named":{"name":"evs_separator","atom":6}},{"Entity":{"atom":229}},{"Entity":{"atom":108}},{"Entity":{"atom":14}},{"Str":{"pattern":"FprEN"}},{"Str":{"pattern":"prEN"}},{"Alternative":{"atoms":[11,12]}},{"Named":{"name":"type_with_stage","atom":13}},{"Entity":{"atom":42}},{"Str":{"pattern":"CWA"}},{"Str":{"pattern":"HD"}},{"Str":{"pattern":"ES"}},{"Str":{"pattern":"CR"}},{"Str":{"pattern":"ENV"}},{"Alternative":{"atoms":[16,17,18,19,20]}},{"Named":{"name":"publisher","atom":21}},{"Str":{"pattern":"EN"}},{"Str":{"pattern":"CEN"}},{"Alternative":{"atoms":[23,24]}},{"Named":{"name":"publisher","atom":25}},{"Entity":{"atom":28}},{"Str":{"pattern":"/"}},{"Str":{"pattern":"CLC"}},{"Named":{"name":"copublisher","atom":29}},{"Sequence":{"atoms":[27,30]}},{"Repetition":{"atom":31,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[26,32]}},{"Str":{"pattern":"CLC"}},{"Named":{"name":"publisher","atom":34}},{"Entity":{"atom":28}},{"Str":{"pattern":"CEN"}},{"Named":{"name":"copublisher","atom":37}},{"Sequence":{"atoms":[36,38]}},{"Repetition":{"atom":39,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[35,40]}},{"Alternative":{"atoms":[22,33,41]}},{"Alternative":{"atoms":[10,15]}},{"Entity":{"atom":45}},{"Str":{"pattern":" "}},{"Entity":{"atom":50}},{"Entity":{"atom":48}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":47,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":49}},{"Entity":{"atom":62}},{"Entity":{"atom":60}},{"Entity":{"atom":54}},{"Str":{"pattern":"-"}},{"Entity":{"atom":48}},{"Entity":{"atom":54}},{"Alternative":{"atoms":[55,56]}},{"Repetition":{"atom":57,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"part","atom":58}},{"Sequence":{"atoms":[53,59]}},{"Repetition":{"atom":52,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"parts","atom":61}},{"Entity":{"atom":45}},{"Str":{"pattern":"AMD"}},{"Entity":{"atom":48}},{"Repetition":{"atom":65,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"amendment_number","atom":66}},{"Entity":{"atom":45}},{"Str":{"pattern":"FRAG"}},{"Entity":{"atom":48}},{"Repetition":{"atom":70,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"fragment_number","atom":71}},{"Sequence":{"atoms":[43,44,46,51,63,64,67,68,69,72]}},{"Entity":{"atom":14}},{"Entity":{"atom":42}},{"Alternative":{"atoms":[74,75]}},{"Entity":{"atom":45}},{"Entity":{"atom":50}},{"Entity":{"atom":62}},{"Entity":{"atom":86}},{"Entity":{"atom":82}},{"Str":{"pattern":":"}},{"Entity":{"atom":48}},{"Repetition":{"atom":83,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":84}},{"Sequence":{"atoms":[81,85]}},{"Repetition":{"atom":80,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":89}},{"Str":{"pattern":"+"}},{"Entity":{"atom":28}},{"Alternative":{"atoms":[88,90]}},{"Str":{"pattern":"A"}},{"Entity":{"atom":48}},{"Repetition":{"atom":93,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"amendment_number","atom":94}},{"Entity":{"atom":82}},{"Entity":{"atom":48}},{"Repetition":{"atom":97,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"amendment_year","atom":98}},{"Sequence":{"atoms":[96,99]}},{"Repetition":{"atom":100,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":45}},{"Str":{"pattern":"FRAG"}},{"Entity":{"atom":48}},{"Repetition":{"atom":104,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"fragment_number","atom":105}},{"Sequence":{"atoms":[76,77,78,79,87,91,92,95,101,102,103,106]}},{"Alternative":{"atoms":[73,107]}},{"Entity":{"atom":14}},{"Entity":{"atom":42}},{"Alternative":{"atoms":[109,110]}},{"Entity":{"atom":45}},{"Entity":{"atom":198}},{"Entity":{"atom":118}},{"Str":{"pattern":"ISO"}},{"Str":{"pattern":"IEC"}},{"Str":{"pattern":"CISPR"}},{"Alternative":{"atoms":[115,116,117]}},{"Entity":{"atom":181}},{"Entity":{"atom":136}},{"Entity":{"atom":89}},{"Named":{"name":"amd_sep_plus","atom":121}},{"Entity":{"atom":28}},{"Named":{"name":"amd_sep_slash","atom":123}},{"Alternative":{"atoms":[122,124]}},{"Str":{"pattern":"A"}},{"Entity":{"atom":48}},{"Repetition":{"atom":127,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"amd_number","atom":128}},{"Entity":{"atom":82}},{"Entity":{"atom":48}},{"Repetition":{"atom":131,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"amd_year","atom":132}},{"Sequence":{"atoms":[130,133]}},{"Repetition":{"atom":134,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[125,126,129,135]}},{"Entity":{"atom":179}},{"Entity":{"atom":89}},{"Named":{"name":"amd_sep_plus","atom":138}},{"Entity":{"atom":28}},{"Named":{"name":"amd_sep_slash","atom":140}},{"Alternative":{"atoms":[139,141]}},{"Str":{"pattern":"AC"}},{"Entity":{"atom":48}},{"Entity":{"atom":48}},{"Repetition":{"atom":145,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[144,146]}},{"Named":{"name":"cor_number","atom":147}},{"Repetition":{"atom":148,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":171}},{"Entity":{"atom":82}},{"Entity":{"atom":48}},{"Repetition":{"atom":152,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":153}},{"Entity":{"atom":54}},{"Entity":{"atom":170}},{"Str":{"pattern":"01"}},{"Str":{"pattern":"02"}},{"Str":{"pattern":"03"}},{"Str":{"pattern":"04"}},{"Str":{"pattern":"05"}},{"Str":{"pattern":"06"}},{"Str":{"pattern":"07"}},{"Str":{"pattern":"08"}},{"Str":{"pattern":"09"}},{"Str":{"pattern":"10"}},{"Str":{"pattern":"11"}},{"Str":{"pattern":"12"}},{"Alternative":{"atoms":[157,158,159,160,161,162,163,164,165,166,167,168]}},{"Named":{"name":"month","atom":169}},{"Sequence":{"atoms":[151,154,155,156]}},{"Entity":{"atom":82}},{"Entity":{"atom":48}},{"Repetition":{"atom":173,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":174}},{"Sequence":{"atoms":[172,175]}},{"Alternative":{"atoms":[150,176]}},{"Repetition":{"atom":177,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[142,143,149,178]}},{"Alternative":{"atoms":[120,137]}},{"Named":{"name":"supplement","atom":180}},{"Lookahead":{"atom":119,"positive":false}},{"Entity":{"atom":189}},{"Entity":{"atom":45}},{"Str":{"pattern":"ED"}},{"Entity":{"atom":48}},{"Repetition":{"atom":186,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"edition","atom":187}},{"Sequence":{"atoms":[184,185,188]}},{"Lookahead":{"atom":183,"positive":false}},{"Entity":{"atom":194}},{"Re":{"pattern":"[\\x01-\\x09]"}},{"Re":{"pattern":"[\\x0b-\\u{10ffff}]"}},{"Alternative":{"atoms":[192,193]}},{"Sequence":{"atoms":[182,190,191]}},{"Repetition":{"atom":195,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[114,196]}},{"Named":{"name":"adopted_string","atom":197}},{"Sequence":{"atoms":[112,113]}},{"Repetition":{"atom":199,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":45}},{"Entity":{"atom":208}},{"Str":{"pattern":"Guide"}},{"Str":{"pattern":"GUIDE"}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Alternative":{"atoms":[203,204,205,206]}},{"Named":{"name":"type","atom":207}},{"Sequence":{"atoms":[201,202]}},{"Entity":{"atom":28}},{"Entity":{"atom":208}},{"Sequence":{"atoms":[210,211]}},{"Alternative":{"atoms":[209,212]}},{"Repetition":{"atom":213,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":45}},{"Entity":{"atom":50}},{"Entity":{"atom":62}},{"Entity":{"atom":86}},{"Repetition":{"atom":218,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[215,216,217,219]}},{"Repetition":{"atom":220,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":225}},{"Entity":{"atom":181}},{"Repetition":{"atom":223,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"supplements","atom":224}},{"Entity":{"atom":189}},{"Repetition":{"atom":226,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[111,200,214,221,222,227]}},{"Alternative":{"atoms":[9,228]}},{"Named":{"name":"adopted","atom":8}},{"Sequence":{"atoms":[0,1,230]}}],"root":231},"bindings":[]},"cen_cenelec.identifier":{"root":"cen_cenelec.identifier","grammar":{"atoms":[{"Entity":{"atom":99}},{"Entity":{"atom":5}},{"Str":{"pattern":"FprEN"}},{"Str":{"pattern":"prEN"}},{"Alternative":{"atoms":[2,3]}},{"Named":{"name":"type_with_stage","atom":4}},{"Entity":{"atom":33}},{"Str":{"pattern":"CWA"}},{"Str":{"pattern":"HD"}},{"Str":{"pattern":"ES"}},{"Str":{"pattern":"CR"}},{"Str":{"pattern":"ENV"}},{"Alternative":{"atoms":[7,8,9,10,11]}},{"Named":{"name":"publisher","atom":12}},{"Str":{"pattern":"EN"}},{"Str":{"pattern":"CEN"}},{"Alternative":{"atoms":[14,15]}},{"Named":{"name":"publisher","atom":16}},{"Entity":{"atom":19}},{"Str":{"pattern":"/"}},{"Str":{"pattern":"CLC"}},{"Named":{"name":"copublisher","atom":20}},{"Sequence":{"atoms":[18,21]}},{"Repetition":{"atom":22,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[17,23]}},{"Str":{"pattern":"CLC"}},{"Named":{"name":"publisher","atom":25}},{"Entity":{"atom":19}},{"Str":{"pattern":"CEN"}},{"Named":{"name":"copublisher","atom":28}},{"Sequence":{"atoms":[27,29]}},{"Repetition":{"atom":30,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[26,31]}},{"Alternative":{"atoms":[13,24,32]}},{"Alternative":{"atoms":[1,6]}},{"Entity":{"atom":36}},{"Str":{"pattern":" "}},{"Entity":{"atom":41}},{"Entity":{"atom":39}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":38,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":40}},{"Entity":{"atom":53}},{"Entity":{"atom":51}},{"Entity":{"atom":45}},{"Str":{"pattern":"-"}},{"Entity":{"atom":39}},{"Entity":{"atom":45}},{"Alternative":{"atoms":[46,47]}},{"Repetition":{"atom":48,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"part","atom":49}},{"Sequence":{"atoms":[44,50]}},{"Repetition":{"atom":43,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"parts","atom":52}},{"Entity":{"atom":36}},{"Str":{"pattern":"AMD"}},{"Entity":{"atom":39}},{"Repetition":{"atom":56,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"amendment_number","atom":57}},{"Entity":{"atom":36}},{"Str":{"pattern":"FRAG"}},{"Entity":{"atom":39}},{"Repetition":{"atom":61,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"fragment_number","atom":62}},{"Sequence":{"atoms":[34,35,37,42,54,55,58,59,60,63]}},{"Entity":{"atom":5}},{"Entity":{"atom":33}},{"Alternative":{"atoms":[65,66]}},{"Entity":{"atom":36}},{"Entity":{"atom":41}},{"Entity":{"atom":53}},{"Entity":{"atom":77}},{"Entity":{"atom":73}},{"Str":{"pattern":":"}},{"Entity":{"atom":39}},{"Repetition":{"atom":74,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":75}},{"Sequence":{"atoms":[72,76]}},{"Repetition":{"atom":71,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":80}},{"Str":{"pattern":"+"}},{"Entity":{"atom":19}},{"Alternative":{"atoms":[79,81]}},{"Str":{"pattern":"A"}},{"Entity":{"atom":39}},{"Repetition":{"atom":84,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"amendment_number","atom":85}},{"Entity":{"atom":73}},{"Entity":{"atom":39}},{"Repetition":{"atom":88,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"amendment_year","atom":89}},{"Sequence":{"atoms":[87,90]}},{"Repetition":{"atom":91,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":36}},{"Str":{"pattern":"FRAG"}},{"Entity":{"atom":39}},{"Repetition":{"atom":95,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"fragment_number","atom":96}},{"Sequence":{"atoms":[67,68,69,70,78,82,83,86,92,93,94,97]}},{"Alternative":{"atoms":[64,98]}},{"Entity":{"atom":5}},{"Entity":{"atom":33}},{"Alternative":{"atoms":[100,101]}},{"Entity":{"atom":36}},{"Entity":{"atom":189}},{"Entity":{"atom":109}},{"Str":{"pattern":"ISO"}},{"Str":{"pattern":"IEC"}},{"Str":{"pattern":"CISPR"}},{"Alternative":{"atoms":[106,107,108]}},{"Entity":{"atom":172}},{"Entity":{"atom":127}},{"Entity":{"atom":80}},{"Named":{"name":"amd_sep_plus","atom":112}},{"Entity":{"atom":19}},{"Named":{"name":"amd_sep_slash","atom":114}},{"Alternative":{"atoms":[113,115]}},{"Str":{"pattern":"A"}},{"Entity":{"atom":39}},{"Repetition":{"atom":118,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"amd_number","atom":119}},{"Entity":{"atom":73}},{"Entity":{"atom":39}},{"Repetition":{"atom":122,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"amd_year","atom":123}},{"Sequence":{"atoms":[121,124]}},{"Repetition":{"atom":125,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[116,117,120,126]}},{"Entity":{"atom":170}},{"Entity":{"atom":80}},{"Named":{"name":"amd_sep_plus","atom":129}},{"Entity":{"atom":19}},{"Named":{"name":"amd_sep_slash","atom":131}},{"Alternative":{"atoms":[130,132]}},{"Str":{"pattern":"AC"}},{"Entity":{"atom":39}},{"Entity":{"atom":39}},{"Repetition":{"atom":136,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[135,137]}},{"Named":{"name":"cor_number","atom":138}},{"Repetition":{"atom":139,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":162}},{"Entity":{"atom":73}},{"Entity":{"atom":39}},{"Repetition":{"atom":143,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":144}},{"Entity":{"atom":45}},{"Entity":{"atom":161}},{"Str":{"pattern":"01"}},{"Str":{"pattern":"02"}},{"Str":{"pattern":"03"}},{"Str":{"pattern":"04"}},{"Str":{"pattern":"05"}},{"Str":{"pattern":"06"}},{"Str":{"pattern":"07"}},{"Str":{"pattern":"08"}},{"Str":{"pattern":"09"}},{"Str":{"pattern":"10"}},{"Str":{"pattern":"11"}},{"Str":{"pattern":"12"}},{"Alternative":{"atoms":[148,149,150,151,152,153,154,155,156,157,158,159]}},{"Named":{"name":"month","atom":160}},{"Sequence":{"atoms":[142,145,146,147]}},{"Entity":{"atom":73}},{"Entity":{"atom":39}},{"Repetition":{"atom":164,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":165}},{"Sequence":{"atoms":[163,166]}},{"Alternative":{"atoms":[141,167]}},{"Repetition":{"atom":168,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[133,134,140,169]}},{"Alternative":{"atoms":[111,128]}},{"Named":{"name":"supplement","atom":171}},{"Lookahead":{"atom":110,"positive":false}},{"Entity":{"atom":180}},{"Entity":{"atom":36}},{"Str":{"pattern":"ED"}},{"Entity":{"atom":39}},{"Repetition":{"atom":177,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"edition","atom":178}},{"Sequence":{"atoms":[175,176,179]}},{"Lookahead":{"atom":174,"positive":false}},{"Entity":{"atom":185}},{"Re":{"pattern":"[\\x01-\\x09]"}},{"Re":{"pattern":"[\\x0b-\\u{10ffff}]"}},{"Alternative":{"atoms":[183,184]}},{"Sequence":{"atoms":[173,181,182]}},{"Repetition":{"atom":186,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[105,187]}},{"Named":{"name":"adopted_string","atom":188}},{"Sequence":{"atoms":[103,104]}},{"Repetition":{"atom":190,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":36}},{"Entity":{"atom":199}},{"Str":{"pattern":"Guide"}},{"Str":{"pattern":"GUIDE"}},{"Str":{"pattern":"TR"}},{"Str":{"pattern":"TS"}},{"Alternative":{"atoms":[194,195,196,197]}},{"Named":{"name":"type","atom":198}},{"Sequence":{"atoms":[192,193]}},{"Entity":{"atom":19}},{"Entity":{"atom":199}},{"Sequence":{"atoms":[201,202]}},{"Alternative":{"atoms":[200,203]}},{"Repetition":{"atom":204,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":36}},{"Entity":{"atom":41}},{"Entity":{"atom":53}},{"Entity":{"atom":77}},{"Repetition":{"atom":209,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[206,207,208,210]}},{"Repetition":{"atom":211,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":216}},{"Entity":{"atom":172}},{"Repetition":{"atom":214,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"supplements","atom":215}},{"Entity":{"atom":180}},{"Repetition":{"atom":217,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[102,191,205,212,213,218]}},{"Alternative":{"atoms":[0,219]}}],"root":220},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule cen_cenelec.publisher: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule cen_cenelec.publisher: branches 1 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule cen_cenelec.publisher: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule cen_cenelec.date: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule cen_cenelec.adopted_org_prefix: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule cen_cenelec.any_noln_char: branches 1 and 2 are order-dependent (first set not statically known)","rule cen_cenelec.fragment_identifier: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)","rule cen_cenelec.identifier: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"EVS-EN 18216:2026","expect":{}},{"entry":"identifier","kind":"accept","input":"EVS-EN ISO 9001:2015/A1:2024","expect":{}},{"entry":"identifier","kind":"accept","input":"EVS EN 196-1:2016","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}},{"entry":"cen_cenelec.identifier","kind":"accept","input":"EN 18216:2026","expect":{}},{"entry":"cen_cenelec.identifier","kind":"accept","input":"EN ISO 9001:2015","expect":{}},{"entry":"cen_cenelec.identifier","kind":"accept","input":"CEN/CLC TR 17161:2019","expect":{}},{"entry":"cen_cenelec.identifier","kind":"accept","input":"EN 196-1:2016+A1","expect":{}},{"entry":"cen_cenelec.identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/evs/parser.rb: the EVS national-adoption wrapper\n# around the CEN/CENELEC grammar — \"EVS\" (\"-\" | \" \") <CEN identifier>.\n# The CEN spine is IMPORTED via `use` (TODO 11/C6 imports): rules are\n# namespaced cen_cenelec.* while captures keep their contract names.\n\nuse cen_cenelec\n\ngrammar PubidEvs version \"0.2.0\" {\n evs_separator = (dash / space) as evs_separator\n identifier = \"EVS\" evs_separator (cen_cenelec.identifier) as adopted\n\n dash = \"-\"\n space = \" \"\n\n entry identifier: identifier\n\n test {\n accept \"EVS-EN 18216:2026\"\n accept \"EVS-EN ISO 9001:2015/A1:2024\"\n accept \"EVS EN 196-1:2016\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:0959b1242f482a49502313f887374d665a7d67c3952ac6741402bf6e0e1cc6cb"}
|
data/data/parg/gb.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"0.1.0","grammar":"PubidGb","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":23}},{"Str":{"pattern":"T/"}},{"Entity":{"atom":5}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Alternative":{"atoms":[3,4]}},{"Repetition":{"atom":2,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[1,6]}},{"Str":{"pattern":"GBn"}},{"Str":{"pattern":"/T"}},{"Str":{"pattern":"/Z"}},{"Alternative":{"atoms":[9,10]}},{"Repetition":{"atom":11,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[8,12]}},{"Entity":{"atom":15}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Repetition":{"atom":14,"min":1,"max":3,"tag":"Repetition"}},{"Str":{"pattern":"/T"}},{"Str":{"pattern":"/Z"}},{"Alternative":{"atoms":[17,18]}},{"Repetition":{"atom":19,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[16,20]}},{"Alternative":{"atoms":[7,13,21]}},{"Named":{"name":"publisher_code","atom":22}},{"Entity":{"atom":25}},{"Str":{"pattern":" "}},{"Entity":{"atom":27}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":26,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"number","atom":28}},{"Str":{"pattern":"."}},{"Entity":{"atom":27}},{"Repetition":{"atom":31,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"part","atom":32}},{"Sequence":{"atoms":[30,33]}},{"Repetition":{"atom":34,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":39}},{"Str":{"pattern":"-"}},{"Str":{"pattern":"—"}},{"Alternative":{"atoms":[37,38]}},{"Entity":{"atom":27}},{"Repetition":{"atom":40,"min":4,"max":4,"tag":"Repetition"}},{"Named":{"name":"year","atom":41}},{"Sequence":{"atoms":[36,42]}},{"Repetition":{"atom":43,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":" ("}},{"Entity":{"atom":47}},{"Str":{"pattern":"all parts"}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[45,46,48]}},{"Repetition":{"atom":49,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[0,24,29,35,44,50]}}],"root":51},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"GB/T 19001-2016","expect":{}},{"entry":"identifier","kind":"accept","input":"GB 4943","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/gb/parser.rb — Chinese standard identifiers.\n# publisher_code order is load-bearing: the social-group form, then the\n# confidential GBn series (lowercase n is part of the code), then the\n# general 1-3-letter code. The year separator is ASCII dash or the\n# Chinese typographic em-dash.\n\ngrammar PubidGb version \"0.1.0\" {\n publisher_code = ((\"T/\" 1*upper_digit) / (\"GBn\" [\"/T\" / \"/Z\"]) / (1*3upper [\"/T\" / \"/Z\"])) as publisher_code\n identifier = publisher_code space (1*digit) as number [(\".\" (1*digit) as part)] [(dash (4digit) as year)] [(\" (\" all_parts_text \")\")]\n all_parts_text = \"all parts\"\n upper = %x41-5A\n upper_digit = %x41-5A / %x30-39\n dash = \"-\" / \"—\"\n space = \" \"\n digit = %x30-39\n entry identifier: identifier\n\n test {\n accept \"GB/T 19001-2016\"\n accept \"GB 4943\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:bf4da8ad287818dc300061d72c78b9169aab331104a28a8d91648a35ce7b5fe0"}
|
data/data/parg/gost.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"0.1.0","grammar":"PubidGost","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":7}},{"Str":{"pattern":"GOST"}},{"Str":{"pattern":"ГОСТ"}},{"Alternative":{"atoms":[1,2]}},{"Named":{"name":"gost_word","atom":3}},{"Entity":{"atom":6}},{"Str":{"pattern":" "}},{"Sequence":{"atoms":[4,5]}},{"Entity":{"atom":14}},{"Str":{"pattern":"R"}},{"Str":{"pattern":"Р"}},{"Alternative":{"atoms":[9,10]}},{"Named":{"name":"scope_r","atom":11}},{"Entity":{"atom":6}},{"Sequence":{"atoms":[12,13]}},{"Repetition":{"atom":8,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":33}},{"Entity":{"atom":23}},{"Re":{"pattern":"[\\u0410-\\u042f]"}},{"Re":{"pattern":"[\\u0430-\\u044f]"}},{"Re":{"pattern":"[/]"}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Alternative":{"atoms":[18,19,20,21,22]}},{"Repetition":{"atom":17,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":6}},{"Entity":{"atom":23}},{"Repetition":{"atom":26,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[25,27]}},{"Repetition":{"atom":28,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[24,29]}},{"Named":{"name":"prefix_text","atom":30}},{"Entity":{"atom":6}},{"Sequence":{"atoms":[31,32]}},{"Repetition":{"atom":16,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":55}},{"Entity":{"atom":37}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":36,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":40}},{"Str":{"pattern":"."}},{"Entity":{"atom":46}},{"Entity":{"atom":43}},{"Str":{"pattern":"-"}},{"Str":{"pattern":"—"}},{"Str":{"pattern":"–"}},{"Alternative":{"atoms":[42,44,45]}},{"Alternative":{"atoms":[39,41]}},{"Entity":{"atom":6}},{"Repetition":{"atom":48,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":37}},{"Repetition":{"atom":50,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[47,49,51]}},{"Repetition":{"atom":52,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[38,53]}},{"Named":{"name":"raw","atom":54}},{"Entity":{"atom":68}},{"Entity":{"atom":6}},{"Repetition":{"atom":57,"min":0,"max":1,"tag":"Maybe"}},{"Repetition":{"atom":58,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":61}},{"Str":{"pattern":"/"}},{"Entity":{"atom":65}},{"Re":{"pattern":"[\\x01-\\x09]"}},{"Re":{"pattern":"[\\x0b-\\u{10ffff}]"}},{"Alternative":{"atoms":[63,64]}},{"Repetition":{"atom":62,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"adopted_raw","atom":66}},{"Sequence":{"atoms":[59,60,67]}},{"Repetition":{"atom":56,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":82}},{"Entity":{"atom":6}},{"Repetition":{"atom":71,"min":0,"max":1,"tag":"Maybe"}},{"Repetition":{"atom":72,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"("}},{"Entity":{"atom":78}},{"Re":{"pattern":"[\\x01-\\x28]"}},{"Re":{"pattern":"[\\x2a-\\u{10ffff}]"}},{"Alternative":{"atoms":[76,77]}},{"Repetition":{"atom":75,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"adopted_reference_raw","atom":79}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[73,74,80,81]}},{"Repetition":{"atom":70,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[0,15,34,35,69,83]}}],"root":84},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule year_sep_core: branches 2 and 3 are order-dependent (shared first bytes; ordered choice is decisive)","rule any_noln_char: branches 1 and 2 are order-dependent (first set not statically known)","rule no_rparen_char: branches 1 and 2 are order-dependent (first set not statically known)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"GOST 12.0.004","expect":{}},{"entry":"identifier","kind":"accept","input":"GOST R 8.568","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/gost/parser.rb — GOST identifiers in Latin and\n# Cyrillic: ГОСТ [Р|R] [copublisher/subtype] <raw>[/adopted|(reference)].\n# prefix_text and raw are captured verbatim; the builder splits them.\n# The Cyrillic character class uses codepoint ranges (%x0410-042F\n# = А-Я, %x0430-044F = а-я), faithful to the source class.\n\ngrammar PubidGost version \"0.1.0\" {\n gost_word = (\"GOST\" / \"ГОСТ\") as gost_word space\n scope_r = (\"R\" / \"Р\") as scope_r space\n prefix_char = %x0410-042F / %x0430-044F / %x2F / %x41-5A / %x61-7A\n prefix_text = (1*prefix_char *(space 1*prefix_char)) as prefix_text space\n raw_body = (1*digit *((dot / year_sep_core) [space] 1*digit)) as raw\n year_sep_core = dash / \"—\" / \"–\"\n adopted_part = [[space]] slash (1*any_noln_char) as adopted_raw\n adopted_reference_part = [[space]] \"(\" (1*no_rparen_char) as adopted_reference_raw \")\"\n identifier = gost_word [scope_r] [prefix_text] raw_body [adopted_part] [adopted_reference_part]\n any_noln_char = %x01-09 / %x0B-10FFFF\n no_rparen_char = %x01-28 / %x2A-10FFFF\n digit = %x30-39\n dot = \".\"\n dash = \"-\"\n slash = \"/\"\n space = \" \"\n entry identifier: identifier\n\n test {\n accept \"GOST 12.0.004\"\n accept \"GOST R 8.568\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:415d2382167a8a2b29a4f51edd0cbf124dbe07adca592a52954ce579996245f7"}
|
data/data/parg/iala.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"0.1.0","grammar":"PubidIala","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Entity":{"atom":100}},{"Entity":{"atom":3}},{"Str":{"pattern":"IALA "}},{"Repetition":{"atom":2,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":16}},{"Str":{"pattern":"GA"}},{"Str":{"pattern":"S"}},{"Str":{"pattern":"R"}},{"Str":{"pattern":"G"}},{"Str":{"pattern":"M"}},{"Str":{"pattern":"C"}},{"Str":{"pattern":"A"}},{"Str":{"pattern":"L"}},{"Str":{"pattern":"X"}},{"Str":{"pattern":"P"}},{"Alternative":{"atoms":[5,6,7,8,9,10,11,12,13,14]}},{"Named":{"name":"type_letter","atom":15}},{"Entity":{"atom":30}},{"Entity":{"atom":22}},{"Entity":{"atom":20}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":19,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"doc_number","atom":21}},{"Entity":{"atom":27}},{"Str":{"pattern":"."}},{"Entity":{"atom":20}},{"Repetition":{"atom":25,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[24,26]}},{"Repetition":{"atom":23,"min":0,"max":null,"tag":"Repetition"}},{"Named":{"name":"doc_number_dots","atom":28}},{"Sequence":{"atoms":[18,29]}},{"Entity":{"atom":39}},{"Entity":{"atom":33}},{"Str":{"pattern":"-"}},{"Entity":{"atom":20}},{"Repetition":{"atom":34,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"subpart_number","atom":35}},{"Sequence":{"atoms":[32,36]}},{"Repetition":{"atom":37,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"subpart","atom":38}},{"Repetition":{"atom":31,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1,4,17,40]}},{"Named":{"name":"base","atom":41}},{"Entity":{"atom":44}},{"Str":{"pattern":" "}},{"Str":{"pattern":"Annex"}},{"Str":{"pattern":"ANNEX"}},{"Alternative":{"atoms":[45,46]}},{"Named":{"name":"annex_marker","atom":47}},{"Entity":{"atom":44}},{"Entity":{"atom":51}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Named":{"name":"annex_letter","atom":50}},{"Entity":{"atom":54}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Lookahead":{"atom":53,"positive":false}},{"Sequence":{"atoms":[49,52,55]}},{"Repetition":{"atom":56,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":74}},{"Entity":{"atom":44}},{"Str":{"pattern":"Ed"}},{"Entity":{"atom":44}},{"Entity":{"atom":72}},{"Entity":{"atom":20}},{"Repetition":{"atom":63,"min":1,"max":null,"tag":"Repetition"}},{"Entity":{"atom":66}},{"Str":{"pattern":"."}},{"Entity":{"atom":20}},{"Repetition":{"atom":67,"min":1,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[65,68]}},{"Repetition":{"atom":69,"min":0,"max":null,"tag":"Repetition"}},{"Sequence":{"atoms":[64,70]}},{"Named":{"name":"edition_value","atom":71}},{"Sequence":{"atoms":[59,60,61,62]}},{"Named":{"name":"edition","atom":73}},{"Entity":{"atom":81}},{"Entity":{"atom":77}},{"Str":{"pattern":":"}},{"Str":{"pattern":"ed"}},{"Entity":{"atom":72}},{"Sequence":{"atoms":[76,78,79]}},{"Named":{"name":"edition","atom":80}},{"Alternative":{"atoms":[58,75]}},{"Repetition":{"atom":82,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":98}},{"Entity":{"atom":44}},{"Repetition":{"atom":85,"min":0,"max":1,"tag":"Maybe"}},{"Str":{"pattern":"("}},{"Str":{"pattern":"E"}},{"Str":{"pattern":"F"}},{"Str":{"pattern":"S"}},{"Str":{"pattern":"C"}},{"Str":{"pattern":"A"}},{"Str":{"pattern":"R"}},{"Alternative":{"atoms":[88,89,90,91,92,93]}},{"Named":{"name":"language","atom":94}},{"Str":{"pattern":")"}},{"Sequence":{"atoms":[86,87,95,96]}},{"Named":{"name":"language_group","atom":97}},{"Repetition":{"atom":84,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[42,43,48,57,83,99]}},{"Entity":{"atom":3}},{"Entity":{"atom":107}},{"Entity":{"atom":16}},{"Entity":{"atom":30}},{"Entity":{"atom":39}},{"Repetition":{"atom":105,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[103,104,106]}},{"Entity":{"atom":74}},{"Entity":{"atom":81}},{"Alternative":{"atoms":[108,109]}},{"Repetition":{"atom":110,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":98}},{"Repetition":{"atom":112,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[101,102,111,113]}},{"Alternative":{"atoms":[0,114]}}],"root":115},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":["rule identifier: branches 1 and 2 are order-dependent (shared first bytes; ordered choice is decisive)"]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"G1040","expect":{}},{"entry":"identifier","kind":"accept","input":"GA1040","expect":{}},{"entry":"identifier","kind":"reject","input":"nonsense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/iala/parser.rb: [IALA ]<type><number>[.dots][-subs]\n# [ Ed X.Y | :edX.Y] [(L)], plus the Annex-to-base form. The annex\n# letter guard (!lower) keeps \"Ed 1\" from mis-capturing.\n\ngrammar PubidIala version \"0.1.0\" {\n type_letter = (\"GA\" / \"S\" / \"R\" / \"G\" / \"M\" / \"C\" / \"A\" / \"L\" / \"X\" / \"P\") as type_letter\n doc_number = (1*digit) as doc_number\n dotted_number = \".\" 1*digit\n number_with_dots = doc_number (*dotted_number) as doc_number_dots\n subpart = (1*(dash (1*digit) as subpart_number)) as subpart\n code = type_letter number_with_dots [subpart]\n edition_value = (1*digit *(dot 1*digit)) as edition_value\n edition_human = (space \"Ed\" space edition_value) as edition\n edition_compact = (colon \"ed\" edition_value) as edition\n language_group = ([space] \"(\" (\"E\" / \"F\" / \"S\" / \"C\" / \"A\" / \"R\") as language \")\") as language_group\n annex_identifier = ((publisher type_letter number_with_dots [subpart]) as base) space (\"Annex\" / \"ANNEX\") as annex_marker [(space upper as annex_letter !lower)] [edition_human / edition_compact] [language_group]\n identifier = annex_identifier / (publisher code [edition_human / edition_compact] [language_group])\n publisher = [\"IALA \"]\n upper = %x41-5A\n lower = %x61-7A\n digit = %x30-39\n dash = \"-\"\n colon = \":\"\n dot = \".\"\n space = \" \"\n entry identifier: identifier\n\n test {\n accept \"G1040\"\n accept \"GA1040\"\n reject \"nonsense\"\n }\n}\n","checksum":"sha256:b891827c8b2df939982d845a1fd0708e21635655fdb91f95fd1d611670ef9e2b"}
|
data/data/parg/iana.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"0.1.0","grammar":"PubidIana","shape":"parsanol-tree/v2","binding_version":1,"entries":{"identifier":{"root":"identifier","grammar":{"atoms":[{"Str":{"pattern":"IANA "}},{"Repetition":{"atom":0,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":11}},{"Entity":{"atom":10}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Re":{"pattern":"[\\x41-\\x5a]"}},{"Re":{"pattern":"[\\x61-\\x7a]"}},{"Re":{"pattern":"[.]"}},{"Re":{"pattern":"[_]"}},{"Re":{"pattern":"[\\-]"}},{"Alternative":{"atoms":[4,5,6,7,8,9]}},{"Repetition":{"atom":3,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"registry","atom":2}},{"Entity":{"atom":14}},{"Str":{"pattern":"/"}},{"Entity":{"atom":11}},{"Named":{"name":"sub_registry","atom":15}},{"Sequence":{"atoms":[13,16]}},{"Repetition":{"atom":17,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[1,12,18]}}],"root":19},"bindings":[]}},"preprocess":{},"tables":{},"lint":{"order_warnings":[]},"default_entry":"identifier","render":{},"derive":{},"tests":[{"entry":"identifier","kind":"accept","input":"IANA media-types","expect":{}},{"entry":"identifier","kind":"accept","input":"media-types/application","expect":{}},{"entry":"identifier","kind":"reject","input":"no sense","expect":{}}],"docs":{},"source":"# Port of lib/pubid/iana/parser.rb: \"IANA <slug>[/<sub-slug>]\", the\n# optional prefix consumed and discarded.\n\ngrammar PubidIana version \"0.1.0\" {\n slug_char = %x30-39 / %x41-5A / %x61-7A / %x2E / %x5F / %x2D\n slug = 1*slug_char\n identifier = [\"IANA \"] slug as registry [slash slug as sub_registry]\n slash = \"/\"\n entry identifier: identifier\n\n test {\n accept \"IANA media-types\"\n accept \"media-types/application\"\n reject \"no sense\"\n }\n}\n","checksum":"sha256:1863aa5e86eaeb966a269d7794ae16144ced4edf2a6c6257e9b86608af7b60c0"}
|
data/data/parg/idf.parg
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Port of lib/pubid/idf/parser.rb: IDF identifiers and their
|
|
2
|
+
# supplements. The ISO joint form (ISO 5537|IDF 26) inlines these rules
|
|
3
|
+
# as idf_* in iso.pg.
|
|
4
|
+
|
|
5
|
+
grammar PubidIdf version "0.1.0" {
|
|
6
|
+
digit = %x30-39
|
|
7
|
+
word_char = %x30-39 / %x41-5A / %x61-7A / %x5F
|
|
8
|
+
dash = "-" / "‑" / "‐"
|
|
9
|
+
dot = "."
|
|
10
|
+
slash = "/"
|
|
11
|
+
space = " "
|
|
12
|
+
colon = ":"
|
|
13
|
+
letter = %x41-5A / %x61-7A
|
|
14
|
+
lower = %x61-7A
|
|
15
|
+
century = "19" / "20"
|
|
16
|
+
year_digits = century 2*digit !digit
|
|
17
|
+
month_digits = 2*digit
|
|
18
|
+
day_digits = 2*digit
|
|
19
|
+
publisher = "IDF" as publisher
|
|
20
|
+
number = 1*5word_char
|
|
21
|
+
part_and_subpart = dash [space] 1*word_char *1(dash 1*word_char)
|
|
22
|
+
number_with_part = (number [part_and_subpart]) as number_with_part
|
|
23
|
+
date = (year_digits [(dash month_digits)] [(dash day_digits)]) as date
|
|
24
|
+
stage_iteration = dot digit as stage_iteration
|
|
25
|
+
second_part = number_with_part [stage_iteration] [space] [(colon date)]
|
|
26
|
+
all_parts = "(all parts)" as all_parts
|
|
27
|
+
language = "(" *(1*lower [","] / (one_of_efards [slash])) as languages ")"
|
|
28
|
+
one_of_efards = %x45 / %x46 / %x41 / %x52 / %x44 / %x53
|
|
29
|
+
third_part = [space] [language] [all_parts]
|
|
30
|
+
identifier_publisher_no_third = publisher [space] [slash] [type_with_stage] [space] second_part
|
|
31
|
+
identifier_publisher = identifier_publisher_no_third third_part
|
|
32
|
+
type_with_stage = alt from_table "idf_typed_stages" column "abbr" as type_with_stage [digit as stage_iteration space]
|
|
33
|
+
supplement_type_with_stage = alt from_table "idf_typed_stages_supplements" column "abbr" as type_with_stage
|
|
34
|
+
supplement_identifier_no_third = (identifier_publisher_no_third as base) [space] slash [space] supplement_type_with_stage [space] second_part
|
|
35
|
+
supplement_identifier = supplement_identifier_no_third third_part
|
|
36
|
+
identifier = supplement_identifier / identifier_publisher
|
|
37
|
+
|
|
38
|
+
entry identifier: identifier
|
|
39
|
+
}
|