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 +4 -4
- data/lib/parsanol/3.2/parsanol_native.so +2 -2
- data/lib/parsanol/3.3/parsanol_native.so +2 -2
- data/lib/parsanol/3.4/parsanol_native.so +2 -2
- data/lib/parsanol/4.0/parsanol_native.so +2 -2
- data/lib/parsanol/native/libparsanol.so +2 -2
- data/lib/parsanol/parg/bindings.rb +30 -0
- data/lib/parsanol/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6bc69c6f8f149a49877c287b58554039837d9fadd5b2ffa5cfc7156fe8ea2669
|
|
4
|
+
data.tar.gz: 497b4e676d00db7ed7cd568b838afdf5dbc483d6f1b31ed410d0b5b40e659568
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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:
|
|
4
|
-
sha256:
|
|
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:
|
|
4
|
-
sha256:
|
|
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:
|
|
4
|
-
sha256:
|
|
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:
|
|
4
|
-
sha256:
|
|
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:
|
|
4
|
-
sha256:
|
|
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
|
data/lib/parsanol/version.rb
CHANGED