edn-abnf 0.1.6 → 0.2.1

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: 4a6d50c20324f9915e90cb313aae08cb443bc60102e99eab1c40bd64744371d2
4
- data.tar.gz: 4a90a0f27bc2fdb1827a0537a68bdd9a97968945aef23dc8fb94ba379719c4ef
3
+ metadata.gz: 53d9d76f5b3a4ac6e05c39d9050d8638ee9c7a7ab40b85e63d76f5deaf908343
4
+ data.tar.gz: 026a649f7b15be50650baa42b81975ddd6ca791458010dfc5f9a11a0e947bb69
5
5
  SHA512:
6
- metadata.gz: cddfcc37da78d059dd33d771ec1759d19be1111512335c5a89fafc50402249ee9755197aed94628b2c5b7469e7b765f661ce0f26ba9c914e5665daa9efd8f9b8
7
- data.tar.gz: 1bf62702cbb69f420832f24ec82cf42db7f13c15179adf519899aa2e2f655e0ea1d4f9250051c8305e7cf955421b37169a2bd147ead874f123ab470dc9abf4cc
6
+ metadata.gz: 50342e06dcd4acd09737a50f0f9ee52f52b997368339e98049dd59816cd137f937605514167c3bd9225b73262219ea7797855bc0d7716732c80e6e8f5fca7f99
7
+ data.tar.gz: bc2286703fc79b9a182019ff2a30b56953b829f63e22b9bf7df738928ad3379b01c1344e4bf561c6b4de1af0177efe8a747e40a4d15026950877296a76c7c8a9
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.1.6"
3
+ s.version = "0.2.1"
4
4
  s.summary = "CBOR Extended Diagnostic Notation (EDN) implemented in ABNF"
5
5
  s.description = %q{edn-abnf implements converters and miscellaneous tools for CBOR EDN's ABNF}
6
6
  s.author = "Carsten Bormann"
@@ -10,16 +10,16 @@ module EDNGRAMMAR
10
10
  end
11
11
 
12
12
  module Seq0
13
- def S1
14
- elements[1]
13
+ def OC
14
+ elements[0]
15
15
  end
16
16
 
17
17
  def item
18
- elements[2]
18
+ elements[1]
19
19
  end
20
20
 
21
- def S2
22
- elements[3]
21
+ def S
22
+ elements[2]
23
23
  end
24
24
  end
25
25
 
@@ -38,13 +38,10 @@ module EDNGRAMMAR
38
38
  end
39
39
 
40
40
  module Seq2
41
- def S1
41
+ def S
42
42
  elements[0]
43
43
  end
44
44
 
45
- def S2
46
- elements[2]
47
- end
48
45
  end
49
46
 
50
47
  module Seq3
@@ -87,24 +84,14 @@ module EDNGRAMMAR
87
84
  s6, i6 = [], index
88
85
  loop do
89
86
  i7, s7 = index, []
90
- if (match_len = has_terminal?(",", false, index))
91
- r8 = true
92
- @index += match_len
93
- else
94
- terminal_parse_failure('","')
95
- r8 = nil
96
- end
87
+ r8 = _nt_OC
97
88
  s7 << r8
98
89
  if r8
99
- r9 = _nt_S
90
+ r9 = _nt_item
100
91
  s7 << r9
101
92
  if r9
102
- r10 = _nt_item
93
+ r10 = _nt_S
103
94
  s7 << r10
104
- if r10
105
- r11 = _nt_S
106
- s7 << r11
107
- end
108
95
  end
109
96
  end
110
97
  if s7.last
@@ -123,8 +110,8 @@ module EDNGRAMMAR
123
110
  r6 = instantiate_node(SyntaxNode,input, i6...index, s6)
124
111
  s3 << r6
125
112
  if r6
126
- r12 = _nt_OC
127
- s3 << r12
113
+ r11 = _nt_OC
114
+ s3 << r11
128
115
  end
129
116
  end
130
117
  end
@@ -141,10 +128,6 @@ module EDNGRAMMAR
141
128
  r2 = instantiate_node(SyntaxNode,input, index...index)
142
129
  end
143
130
  s0 << r2
144
- if r2
145
- r13 = _nt_S
146
- s0 << r13
147
- end
148
131
  end
149
132
  if s0.last
150
133
  r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
@@ -360,12 +343,16 @@ module EDNGRAMMAR
360
343
  end
361
344
 
362
345
  module String0
363
- def S
346
+ def S1
364
347
  elements[0]
365
348
  end
366
349
 
350
+ def S2
351
+ elements[2]
352
+ end
353
+
367
354
  def string1e
368
- elements[1]
355
+ elements[3]
369
356
  end
370
357
  end
371
358
 
@@ -391,7 +378,7 @@ module EDNGRAMMAR
391
378
  end
392
379
  end
393
380
  def ast
394
- arr = [elements[0].ast] + elements[1].elements.map {|x| x.elements[1].ast}
381
+ arr = [elements[0].ast] + elements[1].elements.map {|x| x.elements[3].ast}
395
382
  charr = arr.chunk(&:class).to_a
396
383
  if charr.size == 1
397
384
  unpack_chunk(*charr.first)
@@ -422,8 +409,22 @@ module EDNGRAMMAR
422
409
  r4 = _nt_S
423
410
  s3 << r4
424
411
  if r4
425
- r5 = _nt_string1e
412
+ if (match_len = has_terminal?("+", false, index))
413
+ r5 = true
414
+ @index += match_len
415
+ else
416
+ terminal_parse_failure('"+"')
417
+ r5 = nil
418
+ end
426
419
  s3 << r5
420
+ if r5
421
+ r6 = _nt_S
422
+ s3 << r6
423
+ if r6
424
+ r7 = _nt_string1e
425
+ s3 << r7
426
+ end
427
+ end
427
428
  end
428
429
  if s3.last
429
430
  r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
@@ -1920,16 +1921,16 @@ module EDNGRAMMAR
1920
1921
  end
1921
1922
 
1922
1923
  module Array0
1923
- def S1
1924
- elements[1]
1924
+ def OC
1925
+ elements[0]
1925
1926
  end
1926
1927
 
1927
1928
  def item
1928
- elements[2]
1929
+ elements[1]
1929
1930
  end
1930
1931
 
1931
- def S2
1932
- elements[3]
1932
+ def S
1933
+ elements[2]
1933
1934
  end
1934
1935
  end
1935
1936
 
@@ -2014,24 +2015,14 @@ module EDNGRAMMAR
2014
2015
  s8, i8 = [], index
2015
2016
  loop do
2016
2017
  i9, s9 = index, []
2017
- if (match_len = has_terminal?(",", false, index))
2018
- r10 = true
2019
- @index += match_len
2020
- else
2021
- terminal_parse_failure('","')
2022
- r10 = nil
2023
- end
2018
+ r10 = _nt_OC
2024
2019
  s9 << r10
2025
2020
  if r10
2026
- r11 = _nt_S
2021
+ r11 = _nt_item
2027
2022
  s9 << r11
2028
2023
  if r11
2029
- r12 = _nt_item
2024
+ r12 = _nt_S
2030
2025
  s9 << r12
2031
- if r12
2032
- r13 = _nt_S
2033
- s9 << r13
2034
- end
2035
2026
  end
2036
2027
  end
2037
2028
  if s9.last
@@ -2050,8 +2041,8 @@ module EDNGRAMMAR
2050
2041
  r8 = instantiate_node(SyntaxNode,input, i8...index, s8)
2051
2042
  s5 << r8
2052
2043
  if r8
2053
- r14 = _nt_OC
2054
- s5 << r14
2044
+ r13 = _nt_OC
2045
+ s5 << r13
2055
2046
  end
2056
2047
  end
2057
2048
  end
@@ -2070,13 +2061,13 @@ module EDNGRAMMAR
2070
2061
  s0 << r4
2071
2062
  if r4
2072
2063
  if (match_len = has_terminal?("]", false, index))
2073
- r15 = true
2064
+ r14 = true
2074
2065
  @index += match_len
2075
2066
  else
2076
2067
  terminal_parse_failure('"]"')
2077
- r15 = nil
2068
+ r14 = nil
2078
2069
  end
2079
- s0 << r15
2070
+ s0 << r14
2080
2071
  end
2081
2072
  end
2082
2073
  end
@@ -2096,16 +2087,16 @@ module EDNGRAMMAR
2096
2087
  end
2097
2088
 
2098
2089
  module Map0
2099
- def S1
2100
- elements[1]
2090
+ def OC
2091
+ elements[0]
2101
2092
  end
2102
2093
 
2103
2094
  def kp
2104
- elements[2]
2095
+ elements[1]
2105
2096
  end
2106
2097
 
2107
- def S2
2108
- elements[3]
2098
+ def S
2099
+ elements[2]
2109
2100
  end
2110
2101
  end
2111
2102
 
@@ -2189,24 +2180,14 @@ module EDNGRAMMAR
2189
2180
  s8, i8 = [], index
2190
2181
  loop do
2191
2182
  i9, s9 = index, []
2192
- if (match_len = has_terminal?(",", false, index))
2193
- r10 = true
2194
- @index += match_len
2195
- else
2196
- terminal_parse_failure('","')
2197
- r10 = nil
2198
- end
2183
+ r10 = _nt_OC
2199
2184
  s9 << r10
2200
2185
  if r10
2201
- r11 = _nt_S
2186
+ r11 = _nt_kp
2202
2187
  s9 << r11
2203
2188
  if r11
2204
- r12 = _nt_kp
2189
+ r12 = _nt_S
2205
2190
  s9 << r12
2206
- if r12
2207
- r13 = _nt_S
2208
- s9 << r13
2209
- end
2210
2191
  end
2211
2192
  end
2212
2193
  if s9.last
@@ -2225,8 +2206,8 @@ module EDNGRAMMAR
2225
2206
  r8 = instantiate_node(SyntaxNode,input, i8...index, s8)
2226
2207
  s5 << r8
2227
2208
  if r8
2228
- r14 = _nt_OC
2229
- s5 << r14
2209
+ r13 = _nt_OC
2210
+ s5 << r13
2230
2211
  end
2231
2212
  end
2232
2213
  end
@@ -2245,13 +2226,13 @@ module EDNGRAMMAR
2245
2226
  s0 << r4
2246
2227
  if r4
2247
2228
  if (match_len = has_terminal?("}", false, index))
2248
- r15 = true
2229
+ r14 = true
2249
2230
  @index += match_len
2250
2231
  else
2251
2232
  terminal_parse_failure('"}"')
2252
- r15 = nil
2233
+ r14 = nil
2253
2234
  end
2254
- s0 << r15
2235
+ s0 << r14
2255
2236
  end
2256
2237
  end
2257
2238
  end
@@ -2786,16 +2767,16 @@ module EDNGRAMMAR
2786
2767
  end
2787
2768
 
2788
2769
  module Streamstring0
2789
- def S1
2790
- elements[1]
2770
+ def OC
2771
+ elements[0]
2791
2772
  end
2792
2773
 
2793
2774
  def string
2794
- elements[2]
2775
+ elements[1]
2795
2776
  end
2796
2777
 
2797
- def S2
2798
- elements[3]
2778
+ def S
2779
+ elements[2]
2799
2780
  end
2800
2781
  end
2801
2782
 
@@ -2861,24 +2842,14 @@ module EDNGRAMMAR
2861
2842
  s5, i5 = [], index
2862
2843
  loop do
2863
2844
  i6, s6 = index, []
2864
- if (match_len = has_terminal?(",", false, index))
2865
- r7 = true
2866
- @index += match_len
2867
- else
2868
- terminal_parse_failure('","')
2869
- r7 = nil
2870
- end
2845
+ r7 = _nt_OC
2871
2846
  s6 << r7
2872
2847
  if r7
2873
- r8 = _nt_S
2848
+ r8 = _nt_string
2874
2849
  s6 << r8
2875
2850
  if r8
2876
- r9 = _nt_string
2851
+ r9 = _nt_S
2877
2852
  s6 << r9
2878
- if r9
2879
- r10 = _nt_S
2880
- s6 << r10
2881
- end
2882
2853
  end
2883
2854
  end
2884
2855
  if s6.last
@@ -2897,17 +2868,17 @@ module EDNGRAMMAR
2897
2868
  r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
2898
2869
  s0 << r5
2899
2870
  if r5
2900
- r11 = _nt_OC
2901
- s0 << r11
2902
- if r11
2871
+ r10 = _nt_OC
2872
+ s0 << r10
2873
+ if r10
2903
2874
  if (match_len = has_terminal?(")", false, index))
2904
- r12 = true
2875
+ r11 = true
2905
2876
  @index += match_len
2906
2877
  else
2907
2878
  terminal_parse_failure('")"')
2908
- r12 = nil
2879
+ r11 = nil
2909
2880
  end
2910
- s0 << r12
2881
+ s0 << r11
2911
2882
  end
2912
2883
  end
2913
2884
  end
@@ -2983,7 +2954,7 @@ module EDNGRAMMAR
2983
2954
  end
2984
2955
 
2985
2956
  module DoubleQuoted0
2986
- def ast; text_value end
2957
+ def ast; text_value.gsub("\r", "") end
2987
2958
  end
2988
2959
 
2989
2960
  module DoubleQuoted1
@@ -3104,7 +3075,7 @@ module EDNGRAMMAR
3104
3075
  end
3105
3076
 
3106
3077
  module SingleQuoted0
3107
- def ast; text_value end
3078
+ def ast; text_value.gsub("\r", "") end
3108
3079
  end
3109
3080
 
3110
3081
  module SingleQuoted1
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.1.6
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carsten Bormann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-23 00:00:00.000000000 Z
11
+ date: 2024-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -85,12 +85,10 @@ description: edn-abnf implements converters and miscellaneous tools for CBOR EDN
85
85
  email: cabo@tzi.org
86
86
  executables:
87
87
  - edn-abnf
88
- - edn-abnf~
89
88
  extensions: []
90
89
  extra_rdoc_files: []
91
90
  files:
92
91
  - bin/edn-abnf
93
- - bin/edn-abnf~
94
92
  - edn-abnf.gemspec
95
93
  - lib/cbor-diagnostic-app/b64.rb
96
94
  - lib/cbor-diagnostic-app/b64grammar.rb
@@ -122,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
120
  - !ruby/object:Gem::Version
123
121
  version: '0'
124
122
  requirements: []
125
- rubygems_version: 3.5.4
123
+ rubygems_version: 3.5.14
126
124
  signing_key:
127
125
  specification_version: 4
128
126
  summary: CBOR Extended Diagnostic Notation (EDN) implemented in ABNF
data/bin/edn-abnf~ DELETED
@@ -1,57 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'pp'
3
- require 'yaml'
4
- require 'treetop'
5
- require 'json'
6
-
7
- require_relative '../lib/edn-abnf.rb'
8
-
9
- def snaky(name)
10
- name.gsub(/-/, "_")
11
- end
12
-
13
- Encoding.default_external = Encoding::UTF_8
14
- require 'optparse'
15
- require 'ostruct'
16
-
17
- $options = OpenStruct.new
18
- begin
19
- op = OptionParser.new do |opts|
20
- opts.banner = "Usage: edn-abnf.rb [options] [file.edn... | -]"
21
-
22
- opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
23
- $options.verbose = v
24
- end
25
- opts.on("-tFMT", "--to=FMT", [:basic, :neat, :json, :yaml, :edn, :diag], "Target format") do |v|
26
- $options.target = v
27
- end
28
- end
29
- op.parse!
30
- rescue Exception => e
31
- warn e
32
- exit 1
33
- end
34
-
35
- if ARGV == []
36
- puts op
37
- exit 1
38
- end
39
-
40
- edn_file = ARGF.read
41
-
42
- edn = EDN.from_edn(edn_file)
43
- result = edn.tree # XXX .tree?
44
-
45
- case $options.target
46
- when :basic, nil
47
- pp result
48
- when :neat, :json
49
- require 'neatjson'
50
- puts JSON.neat_generate(result, after_comma: 1, after_colon: 1)
51
- when :yaml
52
- puts result.to_yaml
53
- when :edn, :diag
54
- puts result.cbor_diagnostic
55
- else
56
- warn ["Unknown target format: ", $options.target].inspect
57
- end