edn-abnf 0.0.8 → 0.0.9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ad6ca6781c8f1fab8f4be83db41604619f4a38049b13e934f4eea8ab3a2fe757
4
- data.tar.gz: b8d503680fffa8e5a81232ce301026f9780df6c35aaec80598549fd81fea63ab
3
+ metadata.gz: 1e4580b57714274ff5eb197811b5584c38537e43bf95b7a0add51171ed108db5
4
+ data.tar.gz: fc0240e0e1ef858a1f341c14e28bbba97f7108fef336f77e689a9369dc6aa5ea
5
5
  SHA512:
6
- metadata.gz: 50ad3b1462112822df91e51617ef5dc0ba704e896be060562d6a42cd6c7f67980121b250ccfd080f11be9f51e406c005b1e37133f41156d1684ba13f07c80e78
7
- data.tar.gz: 28d52a6d4f5b1e55b85d4cc8534341de042834fb36bb5b6962609332ead01bd66629fc664d4e88adcc0eb6b74948d357be979c4b5266524b61af44a6feee26c4
6
+ metadata.gz: ec376dbe72f63df3dcb2f34509e434b1d8f644369ac7a4e8e957072324b75146e50f4dd035669ec29c3f8199d2ae39a774751d1ac1657a7eccc36a801a483fb5
7
+ data.tar.gz: f603be649a4410de915c88109a7d3f5250868cb8ba02d4f2ca059358cdfd9a9bb93e76127c0b39344a3fceed326515d47b3dbc006821467645bef17551a18e0c
data/edn-abnf.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "edn-abnf"
3
- s.version = "0.0.8"
3
+ s.version = "0.0.9"
4
4
  s.summary = "CDDL (Concise Data Definition Language) converters and miscellaneous tools"
5
5
  s.description = %q{edn-abnf implements converters and miscellaneous tools for CBOR EDN's ABNF}
6
6
  s.author = "Carsten Bormann"
@@ -230,6 +230,9 @@ module EDNGRAMMAR
230
230
 
231
231
  module Number1
232
232
  def ast
233
+ if ei = spec.text_value[1..-1]
234
+ warn "*** ignoring unimplemented encoding indicator #{ei.inspect} for #{elements[0].text_value}"
235
+ end
233
236
  elements[0].ast
234
237
  end
235
238
  end
@@ -294,6 +297,9 @@ module EDNGRAMMAR
294
297
 
295
298
  module String1
296
299
  def ast
300
+ if ei = spec.text_value[1..-1]
301
+ warn "*** ignoring unimplemented encoding indicator #{ei.inspect} for #{elements[0].text_value}"
302
+ end
297
303
  elements[0].ast
298
304
  end
299
305
  end
@@ -1144,6 +1150,9 @@ module EDNGRAMMAR
1144
1150
 
1145
1151
  module Tagged1
1146
1152
  def ast
1153
+ if ei = spec.text_value[1..-1]
1154
+ warn "*** ignoring unimplemented encoding indicator #{ei.inspect} after tag number #{uint.text_value}"
1155
+ end
1147
1156
  CBOR::Tagged.new(uint.text_value.to_i, item.ast)
1148
1157
  end
1149
1158
  end
@@ -1580,16 +1589,21 @@ module EDNGRAMMAR
1580
1589
  elements[1]
1581
1590
  end
1582
1591
 
1592
+ def S
1593
+ elements[2]
1594
+ end
1595
+
1583
1596
  end
1584
1597
 
1585
1598
  module Array3
1586
1599
  def ast
1587
- r = if e = elements[2].elements
1600
+ r = if e = elements[3].elements
1588
1601
  [e[0].ast] + e[2].elements.map {|x| x.item.ast }
1589
1602
  else
1590
1603
  []
1591
1604
  end
1592
- if ei = spec.ast
1605
+ if ei = spec.text_value[1..-1]
1606
+ # warn "** ei #{ei.inspect}"
1593
1607
  if ei == ""
1594
1608
  r.cbor_stream!
1595
1609
  else
@@ -1624,79 +1638,83 @@ module EDNGRAMMAR
1624
1638
  r2 = _nt_spec
1625
1639
  s0 << r2
1626
1640
  if r2
1627
- i4, s4 = index, []
1628
- r5 = _nt_item
1629
- s4 << r5
1630
- if r5
1631
- r6 = _nt_S
1632
- s4 << r6
1641
+ r3 = _nt_S
1642
+ s0 << r3
1643
+ if r3
1644
+ i5, s5 = index, []
1645
+ r6 = _nt_item
1646
+ s5 << r6
1633
1647
  if r6
1634
- s7, i7 = [], index
1635
- loop do
1636
- i8, s8 = index, []
1637
- if (match_len = has_terminal?(",", false, index))
1638
- r9 = true
1639
- @index += match_len
1640
- else
1641
- terminal_parse_failure('","')
1642
- r9 = nil
1643
- end
1644
- s8 << r9
1645
- if r9
1646
- r10 = _nt_S
1647
- s8 << r10
1648
+ r7 = _nt_S
1649
+ s5 << r7
1650
+ if r7
1651
+ s8, i8 = [], index
1652
+ loop do
1653
+ i9, s9 = index, []
1654
+ if (match_len = has_terminal?(",", false, index))
1655
+ r10 = true
1656
+ @index += match_len
1657
+ else
1658
+ terminal_parse_failure('","')
1659
+ r10 = nil
1660
+ end
1661
+ s9 << r10
1648
1662
  if r10
1649
- r11 = _nt_item
1650
- s8 << r11
1663
+ r11 = _nt_S
1664
+ s9 << r11
1651
1665
  if r11
1652
- r12 = _nt_S
1653
- s8 << r12
1666
+ r12 = _nt_item
1667
+ s9 << r12
1668
+ if r12
1669
+ r13 = _nt_S
1670
+ s9 << r13
1671
+ end
1654
1672
  end
1655
1673
  end
1674
+ if s9.last
1675
+ r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
1676
+ r9.extend(Array0)
1677
+ else
1678
+ @index = i9
1679
+ r9 = nil
1680
+ end
1681
+ if r9
1682
+ s8 << r9
1683
+ else
1684
+ break
1685
+ end
1656
1686
  end
1657
- if s8.last
1658
- r8 = instantiate_node(SyntaxNode,input, i8...index, s8)
1659
- r8.extend(Array0)
1660
- else
1661
- @index = i8
1662
- r8 = nil
1663
- end
1687
+ r8 = instantiate_node(SyntaxNode,input, i8...index, s8)
1688
+ s5 << r8
1664
1689
  if r8
1665
- s7 << r8
1666
- else
1667
- break
1690
+ r14 = _nt_OC
1691
+ s5 << r14
1668
1692
  end
1669
1693
  end
1670
- r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
1671
- s4 << r7
1672
- if r7
1673
- r13 = _nt_OC
1674
- s4 << r13
1675
- end
1676
1694
  end
1677
- end
1678
- if s4.last
1679
- r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
1680
- r4.extend(Array1)
1681
- else
1682
- @index = i4
1683
- r4 = nil
1684
- end
1685
- if r4
1686
- r3 = r4
1687
- else
1688
- r3 = instantiate_node(SyntaxNode,input, index...index)
1689
- end
1690
- s0 << r3
1691
- if r3
1692
- if (match_len = has_terminal?("]", false, index))
1693
- r14 = true
1694
- @index += match_len
1695
+ if s5.last
1696
+ r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
1697
+ r5.extend(Array1)
1695
1698
  else
1696
- terminal_parse_failure('"]"')
1697
- r14 = nil
1699
+ @index = i5
1700
+ r5 = nil
1701
+ end
1702
+ if r5
1703
+ r4 = r5
1704
+ else
1705
+ r4 = instantiate_node(SyntaxNode,input, index...index)
1706
+ end
1707
+ s0 << r4
1708
+ if r4
1709
+ if (match_len = has_terminal?("]", false, index))
1710
+ r15 = true
1711
+ @index += match_len
1712
+ else
1713
+ terminal_parse_failure('"]"')
1714
+ r15 = nil
1715
+ end
1716
+ s0 << r15
1698
1717
  end
1699
- s0 << r14
1700
1718
  end
1701
1719
  end
1702
1720
  end
@@ -1747,16 +1765,20 @@ module EDNGRAMMAR
1747
1765
  elements[1]
1748
1766
  end
1749
1767
 
1768
+ def S
1769
+ elements[2]
1770
+ end
1771
+
1750
1772
  end
1751
1773
 
1752
1774
  module Map3
1753
1775
  def ast
1754
- r = if e = elements[2].elements
1776
+ r = if e = elements[3].elements
1755
1777
  Hash[ [e[0].ast] + e[2].elements.map {|x| x.kp.ast } ]
1756
1778
  else
1757
1779
  {}
1758
1780
  end
1759
- if ei = spec.ast
1781
+ if ei = spec.text_value[1..-1]
1760
1782
  if ei == ""
1761
1783
  r.cbor_stream!
1762
1784
  else
@@ -1791,79 +1813,83 @@ module EDNGRAMMAR
1791
1813
  r2 = _nt_spec
1792
1814
  s0 << r2
1793
1815
  if r2
1794
- i4, s4 = index, []
1795
- r5 = _nt_kp
1796
- s4 << r5
1797
- if r5
1798
- r6 = _nt_S
1799
- s4 << r6
1816
+ r3 = _nt_S
1817
+ s0 << r3
1818
+ if r3
1819
+ i5, s5 = index, []
1820
+ r6 = _nt_kp
1821
+ s5 << r6
1800
1822
  if r6
1801
- s7, i7 = [], index
1802
- loop do
1803
- i8, s8 = index, []
1804
- if (match_len = has_terminal?(",", false, index))
1805
- r9 = true
1806
- @index += match_len
1807
- else
1808
- terminal_parse_failure('","')
1809
- r9 = nil
1810
- end
1811
- s8 << r9
1812
- if r9
1813
- r10 = _nt_S
1814
- s8 << r10
1823
+ r7 = _nt_S
1824
+ s5 << r7
1825
+ if r7
1826
+ s8, i8 = [], index
1827
+ loop do
1828
+ i9, s9 = index, []
1829
+ if (match_len = has_terminal?(",", false, index))
1830
+ r10 = true
1831
+ @index += match_len
1832
+ else
1833
+ terminal_parse_failure('","')
1834
+ r10 = nil
1835
+ end
1836
+ s9 << r10
1815
1837
  if r10
1816
- r11 = _nt_kp
1817
- s8 << r11
1838
+ r11 = _nt_S
1839
+ s9 << r11
1818
1840
  if r11
1819
- r12 = _nt_S
1820
- s8 << r12
1841
+ r12 = _nt_kp
1842
+ s9 << r12
1843
+ if r12
1844
+ r13 = _nt_S
1845
+ s9 << r13
1846
+ end
1821
1847
  end
1822
1848
  end
1849
+ if s9.last
1850
+ r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
1851
+ r9.extend(Map0)
1852
+ else
1853
+ @index = i9
1854
+ r9 = nil
1855
+ end
1856
+ if r9
1857
+ s8 << r9
1858
+ else
1859
+ break
1860
+ end
1823
1861
  end
1824
- if s8.last
1825
- r8 = instantiate_node(SyntaxNode,input, i8...index, s8)
1826
- r8.extend(Map0)
1827
- else
1828
- @index = i8
1829
- r8 = nil
1830
- end
1862
+ r8 = instantiate_node(SyntaxNode,input, i8...index, s8)
1863
+ s5 << r8
1831
1864
  if r8
1832
- s7 << r8
1833
- else
1834
- break
1865
+ r14 = _nt_OC
1866
+ s5 << r14
1835
1867
  end
1836
1868
  end
1837
- r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
1838
- s4 << r7
1839
- if r7
1840
- r13 = _nt_OC
1841
- s4 << r13
1842
- end
1843
1869
  end
1844
- end
1845
- if s4.last
1846
- r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
1847
- r4.extend(Map1)
1848
- else
1849
- @index = i4
1850
- r4 = nil
1851
- end
1852
- if r4
1853
- r3 = r4
1854
- else
1855
- r3 = instantiate_node(SyntaxNode,input, index...index)
1856
- end
1857
- s0 << r3
1858
- if r3
1859
- if (match_len = has_terminal?("}", false, index))
1860
- r14 = true
1861
- @index += match_len
1870
+ if s5.last
1871
+ r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
1872
+ r5.extend(Map1)
1862
1873
  else
1863
- terminal_parse_failure('"}"')
1864
- r14 = nil
1874
+ @index = i5
1875
+ r5 = nil
1876
+ end
1877
+ if r5
1878
+ r4 = r5
1879
+ else
1880
+ r4 = instantiate_node(SyntaxNode,input, index...index)
1881
+ end
1882
+ s0 << r4
1883
+ if r4
1884
+ if (match_len = has_terminal?("}", false, index))
1885
+ r15 = true
1886
+ @index += match_len
1887
+ else
1888
+ terminal_parse_failure('"}"')
1889
+ r15 = nil
1890
+ end
1891
+ s0 << r15
1865
1892
  end
1866
- s0 << r14
1867
1893
  end
1868
1894
  end
1869
1895
  end
@@ -2411,7 +2437,7 @@ module EDNGRAMMAR
2411
2437
  end
2412
2438
 
2413
2439
  module Streamstring1
2414
- def spec1
2440
+ def S1
2415
2441
  elements[1]
2416
2442
  end
2417
2443
 
@@ -2419,7 +2445,7 @@ module EDNGRAMMAR
2419
2445
  elements[2]
2420
2446
  end
2421
2447
 
2422
- def S
2448
+ def S2
2423
2449
  elements[3]
2424
2450
  end
2425
2451
 
@@ -2451,16 +2477,16 @@ module EDNGRAMMAR
2451
2477
  end
2452
2478
 
2453
2479
  i0, s0 = index, []
2454
- if (match_len = has_terminal?("(", false, index))
2455
- r1 = true
2480
+ if (match_len = has_terminal?("(_", false, index))
2481
+ r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
2456
2482
  @index += match_len
2457
2483
  else
2458
- terminal_parse_failure('"("')
2484
+ terminal_parse_failure('"(_"')
2459
2485
  r1 = nil
2460
2486
  end
2461
2487
  s0 << r1
2462
2488
  if r1
2463
- r2 = _nt_spec1
2489
+ r2 = _nt_S
2464
2490
  s0 << r2
2465
2491
  if r2
2466
2492
  r3 = _nt_string
@@ -2540,17 +2566,6 @@ module EDNGRAMMAR
2540
2566
  end
2541
2567
 
2542
2568
  module Spec0
2543
- def S
2544
- elements[2]
2545
- end
2546
- end
2547
-
2548
- module Spec1
2549
- def ast;
2550
- if (e1 = elements[1].elements) && !e1[0].empty?
2551
- e1[1].text_value
2552
- end
2553
- end
2554
2569
  end
2555
2570
 
2556
2571
  def _nt_spec
@@ -2585,10 +2600,6 @@ module EDNGRAMMAR
2585
2600
  end
2586
2601
  r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
2587
2602
  s1 << r3
2588
- if r3
2589
- r5 = _nt_S
2590
- s1 << r5
2591
- end
2592
2603
  end
2593
2604
  if s1.last
2594
2605
  r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
@@ -2608,49 +2619,6 @@ module EDNGRAMMAR
2608
2619
  r0
2609
2620
  end
2610
2621
 
2611
- module Spec10
2612
- def S
2613
- elements[1]
2614
- end
2615
- end
2616
-
2617
- def _nt_spec1
2618
- start_index = index
2619
- if node_cache[:spec1].has_key?(index)
2620
- cached = node_cache[:spec1][index]
2621
- if cached
2622
- node_cache[:spec1][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2623
- @index = cached.interval.end
2624
- end
2625
- return cached
2626
- end
2627
-
2628
- i0, s0 = index, []
2629
- if (match_len = has_terminal?("_", false, index))
2630
- r1 = true
2631
- @index += match_len
2632
- else
2633
- terminal_parse_failure('"_"')
2634
- r1 = nil
2635
- end
2636
- s0 << r1
2637
- if r1
2638
- r2 = _nt_S
2639
- s0 << r2
2640
- end
2641
- if s0.last
2642
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
2643
- r0.extend(Spec10)
2644
- else
2645
- @index = i0
2646
- r0 = nil
2647
- end
2648
-
2649
- node_cache[:spec1][start_index] = r0
2650
-
2651
- r0
2652
- end
2653
-
2654
2622
  module DoubleQuoted0
2655
2623
  def ast; text_value end
2656
2624
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: edn-abnf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carsten Bormann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-06 00:00:00.000000000 Z
11
+ date: 2023-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler