pubid 2.0.0.pre.alpha.63 → 2.0.0.pre.alpha.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/data/iec/stage-codes.md +1 -0
  3. data/data/parg/adobe.json +1 -1
  4. data/data/parg/aiee.json +1 -1
  5. data/data/parg/amca.json +1 -1
  6. data/data/parg/ansi.json +1 -1
  7. data/data/parg/api.json +1 -1
  8. data/data/parg/ashrae.json +1 -1
  9. data/data/parg/asme.json +1 -1
  10. data/data/parg/astm.json +1 -1
  11. data/data/parg/bipm.json +1 -1
  12. data/data/parg/bsi.json +1 -1
  13. data/data/parg/calconnect.json +1 -1
  14. data/data/parg/ccsds.json +1 -1
  15. data/data/parg/cen_cenelec.json +1 -1
  16. data/data/parg/cie.json +1 -1
  17. data/data/parg/csa.json +1 -1
  18. data/data/parg/doi.json +1 -1
  19. data/data/parg/easc.json +1 -1
  20. data/data/parg/ecma.json +1 -1
  21. data/data/parg/etsi.json +1 -1
  22. data/data/parg/evs.json +1 -1
  23. data/data/parg/gb.json +1 -1
  24. data/data/parg/gost.json +1 -1
  25. data/data/parg/iala.json +1 -1
  26. data/data/parg/iana.json +1 -1
  27. data/data/parg/idf.json +1 -1
  28. data/data/parg/iec.json +1 -1
  29. data/data/parg/ieee.json +1 -29571
  30. data/data/parg/ietf.json +1 -1
  31. data/data/parg/ire.json +1 -1
  32. data/data/parg/isbn.json +1 -1
  33. data/data/parg/iso.json +1 -8510
  34. data/data/parg/itu.json +1 -1
  35. data/data/parg/jcgm.json +1 -1
  36. data/data/parg/jis.json +1 -1
  37. data/data/parg/nesc.json +1 -1
  38. data/data/parg/nist.json +1 -9588
  39. data/data/parg/oasis.json +1 -1
  40. data/data/parg/ogc.json +1 -1
  41. data/data/parg/oiml.json +1 -1
  42. data/data/parg/omg.json +1 -1
  43. data/data/parg/parg.json +1 -1
  44. data/data/parg/plateau.json +1 -1
  45. data/data/parg/sae.json +1 -1
  46. data/data/parg/tables/typed_stages.yaml +1 -0
  47. data/data/parg/tgpp.json +1 -1
  48. data/data/parg/un.json +1 -1
  49. data/data/parg/w3c.json +1 -1
  50. data/data/parg/xsf.json +1 -1
  51. data/lib/pubid/calconnect/identifier.rb +1 -1
  52. data/lib/pubid/doi/identifier.rb +1 -1
  53. data/lib/pubid/easc/identifier.rb +1 -1
  54. data/lib/pubid/gb/identifier.rb +1 -1
  55. data/lib/pubid/iec/identifiers/international_standard.rb +1 -1
  56. data/lib/pubid/ietf/identifiers/base.rb +1 -1
  57. data/lib/pubid/iso/identifiers/international_standard.rb +3 -1
  58. data/lib/pubid/oasis/identifier.rb +1 -1
  59. data/lib/pubid/ogc/identifier.rb +1 -1
  60. data/lib/pubid/parg/artifact.rb +22 -3
  61. data/lib/pubid/parg/model.rb +98 -0
  62. data/lib/pubid/parg.rb +1 -0
  63. data/lib/pubid/sae/identifiers/base.rb +1 -1
  64. data/lib/pubid/version.rb +1 -1
  65. data/lib/pubid/w3c/identifier.rb +1 -1
  66. data/lib/pubid/xsf/identifier.rb +1 -1
  67. metadata +11 -4
data/data/parg/csa.json CHANGED
@@ -1 +1 @@
1
- {"bindings":null,"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","source_hash":"2409827bab3bee9163f75b95e0b26444f70a1c9dfa65884aa33475bb9a72eab1","compiler_version":"1.3.93","checksum":"sha256:84bceb361d62ac6146bda139abe0c6406b2460f7d3cba40041881db7b4b62269"}
1
+ {"bindings":null,"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\" mode \"v1\" {\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","source_hash":"63db377d03119e31967af3f787f17c5bc0925498ef9b6175b8901654c7858dd1","unicode_tables":"onigmo (Ruby 3.4.8)","compiler_version":"1.3.114","edition":1,"checksum":"sha256:48354d3c32e8a72927654b8626930f89c3bbd09e39054c565749c02cc85a1749"}
data/data/parg/doi.json CHANGED
@@ -1 +1 @@
1
- {"bindings":null,"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","source_hash":"3da5e11fe135ee42ce8a134926ef269a6fc5d00e0dc661cf7f5c6c737041819b","compiler_version":"1.3.93","checksum":"sha256:be582c44eebdcaa179207f73f188f30f526164636ecae26170220afd8a3adcf1"}
1
+ {"bindings":null,"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"}},{"Named":{"name":"url_prefix","atom":0}},{"Repetition":{"atom":9,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":16}},{"Str":{"pattern":"doi:"}},{"Str":{"pattern":"DOI:"}},{"Str":{"pattern":"Doi:"}},{"Alternative":{"atoms":[12,13,14]}},{"Repetition":{"atom":15,"min":0,"max":1,"tag":"Maybe"}},{"Named":{"name":"scheme_prefix","atom":11}},{"Repetition":{"atom":17,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":20}},{"Str":{"pattern":"/"}},{"Named":{"name":"slash","atom":19}},{"Repetition":{"atom":21,"min":0,"max":1,"tag":"Maybe"}},{"Entity":{"atom":30}},{"Str":{"pattern":"10"}},{"Str":{"pattern":"."}},{"Entity":{"atom":27}},{"Re":{"pattern":"[\\x30-\\x39]"}},{"Repetition":{"atom":26,"min":2,"max":null,"tag":"Repetition"}},{"Named":{"name":"prefix","atom":28}},{"Sequence":{"atoms":[24,25,29]}},{"Entity":{"atom":20}},{"Named":{"name":"slash","atom":31}},{"Entity":{"atom":46}},{"Entity":{"atom":44}},{"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":[35,36,37,38,39,40,41,42,43]}},{"Repetition":{"atom":34,"min":1,"max":null,"tag":"Repetition"}},{"Named":{"name":"suffix","atom":45}},{"Sequence":{"atoms":[10,18,22,23,32,33]}}],"root":47},"bindings":[{"capture":"prefix","path":"prefix","type":"string","card":null,"preprocess":null},{"capture":"suffix","path":"suffix","type":"string","card":null,"preprocess":null}]}},"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\" edition 2 {\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 # Typed model bindings: every bound capture lands on the\n # consumer model's field of the same name.\n bindings identifier {\n prefix -> prefix (string)\n suffix -> suffix (string)\n }\n\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","source_hash":"2dcec2cb79a4c6364080a573d3aa748a4464bbd38ace020ced13418cd33290a8","unicode_tables":"onigmo (Ruby 3.4.8)","compiler_version":"1.3.114","edition":2,"checksum":"sha256:5e13576a62c82050481b0bacbffd66232d1dfd43b75c0e6230289cf11d8671f9"}
data/data/parg/easc.json CHANGED
@@ -1 +1 @@
1
- {"bindings":null,"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","source_hash":"d119619567312606ba9baf338cef7be531b6e1db3bc8671a0a779257715da953","compiler_version":"1.3.93","checksum":"sha256:197247b93d0af7b1cee9c1d812741138b11e787bfd89520294f35747165eb145"}
1
+ {"bindings":null,"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]}},{"Named":{"name":"year_sep","atom":30}},{"Entity":{"atom":47}},{"Entity":{"atom":20}},{"Repetition":{"atom":42,"min":4,"max":4,"tag":"Repetition"}},{"Entity":{"atom":20}},{"Repetition":{"atom":44,"min":2,"max":2,"tag":"Repetition"}},{"Alternative":{"atoms":[43,45]}},{"Named":{"name":"year","atom":46}},{"Sequence":{"atoms":[40,41]}},{"Repetition":{"atom":48,"min":0,"max":1,"tag":"Maybe"}},{"Sequence":{"atoms":[0,17,18,49]}}],"root":50},"bindings":[{"capture":"series","path":"series","type":"string","card":null,"preprocess":null},{"capture":"variant","path":"variant","type":"string","card":null,"preprocess":null},{"capture":"number","path":"number","type":"string","card":null,"preprocess":null},{"capture":"year","path":"year","type":"string","card":null,"preprocess":null}]}},"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\" edition 2 {\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 # Typed model bindings: every bound capture lands on the\n # consumer model's field of the same name.\n bindings identifier {\n series -> series (string)\n variant -> variant (string)\n number -> number (string)\n year -> year (string)\n }\n\n\n test {\n accept \"ПМГ 4-96\"\n accept \"RMG 76\"\n accept \"РМГ 29-2013\"\n reject \"nonsense\"\n }\n}\n","source_hash":"270fd4785bdc485b82a76abb6738fd88ac770fe5907dfa499b271638af245bc2","unicode_tables":"onigmo (Ruby 3.4.8)","compiler_version":"1.3.114","edition":2,"checksum":"sha256:0c58d01acfc0f08c043e87fb34bd45925e3283a00cd7bce469927748d94e4e4a"}
data/data/parg/ecma.json CHANGED
@@ -1 +1 @@
1
- {"bindings":null,"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","source_hash":"20eaee3d8ad10c49ebc0a78c24e791d164fe892d6e325b8a500b83b50233a800","compiler_version":"1.3.93","checksum":"sha256:3e2f7b18e5e87e94b2fc1225504cd00d4ec6339c241f62c46b514c230bb9315c"}
1
+ {"bindings":null,"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\" mode \"v1\" {\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","source_hash":"fc4e38614671daeb4022b0ebcfe3d18a80a8382e84783d6bd26348e3183a9508","unicode_tables":"onigmo (Ruby 3.4.8)","compiler_version":"1.3.114","edition":1,"checksum":"sha256:49878ae4e3b018796293650ebe00c71cedeae43013a7097bee8242110291b0ff"}
data/data/parg/etsi.json CHANGED
@@ -1 +1 @@
1
- {"bindings":null,"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","source_hash":"ec499dcff68778e22d0ac6ad29c010bf278a5bde599da0b8e2c1aa28ee59efed","compiler_version":"1.3.93","checksum":"sha256:d57557c42cbbcff863fa709a2b6c043ed752ceb474f5cd8efd6f287c369c812f"}
1
+ {"bindings":null,"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\" mode \"v1\" {\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","source_hash":"bfeed74d2b973d03ec8d0b2dad5ab818f23276c0f3ddbd3f201f1e6cdc1d47b3","unicode_tables":"onigmo (Ruby 3.4.8)","compiler_version":"1.3.114","edition":1,"checksum":"sha256:71e14bf68fb7374080283dc0b7f2348588528c7e7c5cab37715552a30dfb9d4b"}