parsanol 1.3.117-aarch64-linux → 1.3.119-aarch64-linux

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: c3b437c6c7e0fb3a4455f0fdf304f0dac6168efcb7865c4d6fb36d5501105c80
4
- data.tar.gz: 8f56aa483c8456e148a7453fe7843ec265b1ca1862ded288709a05ab97631400
3
+ metadata.gz: 6bc69c6f8f149a49877c287b58554039837d9fadd5b2ffa5cfc7156fe8ea2669
4
+ data.tar.gz: 497b4e676d00db7ed7cd568b838afdf5dbc483d6f1b31ed410d0b5b40e659568
5
5
  SHA512:
6
- metadata.gz: f11d4e285d3c83f31055bc2ac4d93ef6465d5c04f6eacedc8cc3e8047610d39b9b9137014a5522aad5f852072fec1f9e36f5352225820b87bff71d2fb071a68b
7
- data.tar.gz: 25792217f32bb607978c22934e0fa8ccbb36d2cc0dfe9f8cd2c0cb5b35ef345f45a82d61f70f24b826b0b4b53e977ee7734ed2e6362508067fa61660121b6209
6
+ metadata.gz: 1e536466c856f63bec93ea0304bb243824a93166755cde9523027e24e4bbd9f5cbea480af7d54002ba767b3264a77d61607ea5d26f6db705501516692e763417
7
+ data.tar.gz: 7d1528295c1662ecc4bdc5d7921cd6881a84eba23aa9decfa80c51a8cebb37aa56d8f74b8b35f97a6b04f8a3dfa5a5e704165d39d6f05d966c9a51fa8c276b82
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
2
  name: data/lib/parsanol/3.2/parsanol_native.so
3
- size: 46565312 bytes
4
- sha256: 3f157f1fa0af1004087c94c804cf9c4344085a1b50d67cd2eda349a36e697551
3
+ size: 46706480 bytes
4
+ sha256: 5de57a3ae0a6b69ccc574b10b082af001e7563abc1df957cbfabd5b63693d719
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
2
  name: data/lib/parsanol/3.3/parsanol_native.so
3
- size: 46804488 bytes
4
- sha256: d3e84e55f95334893a64bb4a4643f85f8b7e717d47039b29be4c7e0b8bf62bf8
3
+ size: 46945656 bytes
4
+ sha256: 3ce89e2447627d3f0499290944460878aafd2c28fdf525ec498df97ed1a564c3
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
2
  name: data/lib/parsanol/3.4/parsanol_native.so
3
- size: 46808544 bytes
4
- sha256: a0ebea5baf40f9e711bc83813866d20faf5e992ff8de3961db483afa69840b13
3
+ size: 46949720 bytes
4
+ sha256: c999b162128e3ae05612ea69d7d3ccf8d47de5556e68f905b482a153d20307f0
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
2
  name: data/lib/parsanol/4.0/parsanol_native.so
3
- size: 46818520 bytes
4
- sha256: 2294a40d16a8f3586ee711363bc493171be5615f7fb2091d5bb3e7c0108d11f8
3
+ size: 46959696 bytes
4
+ sha256: 198a181b482ad960478f3ca9d00622654922bc84965a91bf5a48a3d6a528eac2
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
2
  name: data/lib/parsanol/native/libparsanol.so
3
- size: 42274720 bytes
4
- sha256: 2b4ed62ee2d5a06171575e2c61ecbbec68772143eb8350678b9b90e3a5f18bad
3
+ size: 42415720 bytes
4
+ sha256: aad9b75d82e5e890f31c7be9e6acf9c6f692bb027033b5f4d1f0eb4a242dd329
@@ -74,6 +74,14 @@ module Parsanol
74
74
  # any instance keep the legacy occurrence pairing.
75
75
  instances = shape && group_instances(shape, prefix)
76
76
  if instances
77
+ # The occurrence path's `return if count.zero?`: a repetition
78
+ # that fired zero iterations (the tree carries `parts: []`)
79
+ # binds no key — the recorded native expectations and the
80
+ # pubid builders rely on the absent reading (the empty-array
81
+ # binding regression, caught by the pubid corpus gate; see
82
+ # parsanol-rs#370).
83
+ return if instances.empty?
84
+
77
85
  list = (out[prefix.to_sym] ||= [])
78
86
  instances.each do |instance|
79
87
  found = collect_captures(instance)
@@ -185,9 +193,31 @@ module Parsanol
185
193
 
186
194
  value.to_s
187
195
  when "boolean" then value == true || value.to_s.casecmp("true").zero?
196
+ when "any"
197
+ # The ONE plain shape on every engine (ruby#383): scalars and
198
+ # capture leaves render as their text, named groups as plain
199
+ # string-keyed hashes, repeats as arrays — so (any)-bound keys
200
+ # survive a cross-engine gate without consumer shims.
201
+ plain(value)
188
202
  else value
189
203
  end
190
204
  end
205
+
206
+ # The engine-neutral reduction behind (any): capture leaves
207
+ # (Parsanol::Slice, native wire objects) and scalars render as
208
+ # their text, hashes as string-keyed plain hashes, arrays
209
+ # recurse. Nil passes through (absent captures stay absent —
210
+ # assign_scalar/assign_array skip them upstream).
211
+ def plain(value)
212
+ case value
213
+ when nil then nil
214
+ when String then value
215
+ when Hash
216
+ value.to_h { |key, item| [key.to_s, plain(item)] }
217
+ when Array then value.map { |item| plain(item) }
218
+ else value.to_s
219
+ end
220
+ end
191
221
  end
192
222
  end
193
223
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Parsanol
4
- VERSION = "1.3.117"
4
+ VERSION = "1.3.119"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parsanol
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.117
4
+ version: 1.3.119
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - Ribose Inc.