parsanol 1.3.126-aarch64-linux → 1.3.127-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 +1 -1
- data/lib/parsanol/3.3/parsanol_native.so +1 -1
- data/lib/parsanol/3.4/parsanol_native.so +1 -1
- data/lib/parsanol/4.0/parsanol_native.so +1 -1
- data/lib/parsanol/native/libparsanol.so +2 -2
- data/lib/parsanol/parg/bindings.rb +16 -17
- data/lib/parsanol/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a414d7d80c3c60e8c75348b4af940ebc39ece665b2161f78a087fc8387fd9fd8
|
|
4
|
+
data.tar.gz: 78f18689b7a0f96ddca6a92ddc0358c854ef0c7b5be1dd2c35a0f5ac8714e6f4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b1287ff6268999ad7eaece78fa3a506e020be8d258c1dc195c2462ea72b137fcb3ecfc06843e192f1b2de69600ee68a9cc8bea2351730268b40e8baf8524d336
|
|
7
|
+
data.tar.gz: 95be672cb009898a4a23fe1e397751386f558b2cb6251e41aa6daed41e1c9da287d6e5baf632934b338508f37af89d6c500605d595cd352da5559ade668450ed
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
[diffend] Oversized file quarantined before diffing.
|
|
2
2
|
name: data/lib/parsanol/3.2/parsanol_native.so
|
|
3
3
|
size: 46910336 bytes
|
|
4
|
-
sha256:
|
|
4
|
+
sha256: 5cd5a302f76b0909f10f387af4c8a22dfe9da90192063253ca8410520d77267e
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
[diffend] Oversized file quarantined before diffing.
|
|
2
2
|
name: data/lib/parsanol/3.3/parsanol_native.so
|
|
3
3
|
size: 47149512 bytes
|
|
4
|
-
sha256:
|
|
4
|
+
sha256: e104c338a85bc11c45bd64f8492fd960dc47d7965da09d5ee248a2fb70c62901
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
[diffend] Oversized file quarantined before diffing.
|
|
2
2
|
name: data/lib/parsanol/3.4/parsanol_native.so
|
|
3
3
|
size: 47153584 bytes
|
|
4
|
-
sha256:
|
|
4
|
+
sha256: fe0565167c22afdb6643360716d5e19a5d73536fdaa663fa4b7af2e12dc0131f
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
[diffend] Oversized file quarantined before diffing.
|
|
2
2
|
name: data/lib/parsanol/4.0/parsanol_native.so
|
|
3
3
|
size: 47163544 bytes
|
|
4
|
-
sha256:
|
|
4
|
+
sha256: feab8ac11d723ae37873cd5b48940c7c7e1e0ca0d1240286cd02500309d9757d
|
|
@@ -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: 42619384 bytes
|
|
4
|
+
sha256: 6b86ec205cdca97b35f0f249d5b1e4af27278c3ec6e6c62279af613fa8ec882d
|
|
@@ -36,10 +36,24 @@ module Parsanol
|
|
|
36
36
|
# bound map (parsanol-ruby#413): a capture present in the parse
|
|
37
37
|
# but bound nowhere is silent data loss, the one case the
|
|
38
38
|
# binding layer's other checks miss. Absence in the TREE is
|
|
39
|
-
# legitimate optionality and never raises.
|
|
39
|
+
# legitimate optionality and never raises. Coverage is checked
|
|
40
|
+
# against every hash key anywhere in the bound map, not just the
|
|
41
|
+
# binding's own leaf: a `(raw)` binding carries its entire
|
|
42
|
+
# subtree, so captures nested inside a raw-bound ancestor are
|
|
43
|
+
# delivered through it (parsanol-ruby#427 — BS 9113 bundled_list).
|
|
44
|
+
bound_keys = {}
|
|
45
|
+
walk_keys = lambda do |node|
|
|
46
|
+
case node
|
|
47
|
+
when Hash
|
|
48
|
+
node.each_key { |key| bound_keys[key.to_sym] = true }
|
|
49
|
+
node.each_value { |value| walk_keys.call(value) }
|
|
50
|
+
when Array then node.each(&walk_keys)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
walk_keys.call(out)
|
|
40
54
|
lost = bindings.select do |binding|
|
|
41
55
|
capture = binding["capture"].to_sym
|
|
42
|
-
present.include?(capture) && !
|
|
56
|
+
present.include?(capture) && !bound_keys.key?(capture)
|
|
43
57
|
end
|
|
44
58
|
unless lost.empty?
|
|
45
59
|
raise BindError,
|
|
@@ -49,21 +63,6 @@ module Parsanol
|
|
|
49
63
|
out
|
|
50
64
|
end
|
|
51
65
|
|
|
52
|
-
# Did this binding contribute anything to the bound map? Scalars
|
|
53
|
-
# bind under their leaf key; array groups bind under their prefix.
|
|
54
|
-
def bound?(out, binding)
|
|
55
|
-
path = binding["path"].to_s
|
|
56
|
-
if path.include?("[]")
|
|
57
|
-
prefix = path.split("[]").first.to_sym
|
|
58
|
-
rows = out[prefix]
|
|
59
|
-
rows.is_a?(Array) && rows.any? do |row|
|
|
60
|
-
row.is_a?(Hash) && row.key?(leaf_key(binding))
|
|
61
|
-
end
|
|
62
|
-
else
|
|
63
|
-
out.key?(leaf_key(binding))
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
|
|
67
66
|
# Canonical test-value form: one equality surface for capture and
|
|
68
67
|
# example expectations on both sides of the comparison (Slice vs
|
|
69
68
|
# source literal was comparing heterogeneous types). Terminals
|
data/lib/parsanol/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: parsanol
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
4
|
+
version: 1.3.127
|
|
5
5
|
platform: aarch64-linux
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-11-
|
|
11
|
+
date: 2026-11-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: A small Ruby library for constructing parsers in the PEG (Parsing Expression
|
|
14
14
|
Grammar) fashion. Parsanol provides Parslet-compatible API with additional features
|