parsanol 1.3.117-arm-linux → 1.3.119-arm-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: 81bf49f5afdc876e55e44e9be0f24f84948fe58dd34e9bb3c6fef9f08275b316
|
|
4
|
+
data.tar.gz: d3b812c019d718b6edc6d251788938599aa4a2b2446093d89288d3b85fac880d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3b7ae9e4c9b77e03272f6e9d91fa10958104f7cb4b9618cc53ea24d1c357267502f75d8a1aeeafd874d5359437894c680de1b4b3a0acb3f0499240eb495e3b59
|
|
7
|
+
data.tar.gz: fcec7f75e77ea07c34f0a969644bdef1748d0891a655343f0cfad296bd7a393fe511a8adb23d1d50bbde42562f58795ab0709514759d9f5e0db029f91d03e768
|
|
@@ -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: 39544876 bytes
|
|
4
|
+
sha256: e524b352f575dff3f01b7da7c82f2cd45393aa578eb89edf5c3fdf55b23c5ea0
|
|
@@ -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: 39730168 bytes
|
|
4
|
+
sha256: 88aa66d9210cb706edb129ef923cd4fc797d031122ceb6fa6733b5cfa3239d1c
|
|
@@ -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: 39724260 bytes
|
|
4
|
+
sha256: 13bc130ed29c503138a1bd14812ef7a02bfb664306a49df3396900f76d48084e
|
|
@@ -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: 39733932 bytes
|
|
4
|
+
sha256: b0ae5cf41e19fdefb953e27f7d94ca656cebad8762b8ccd278528e87b807860a
|
|
@@ -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: 35866044 bytes
|
|
4
|
+
sha256: 02e46e493ee557802cc02afb2b06d561113b91bc3850bdd8ec06ab48bb562cf5
|
|
@@ -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