parsanol 1.3.118-arm-linux → 1.3.120-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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 39962f129ecc8a6784427d72a89e3315def4846f2ac53f8d4620307a97267146
4
- data.tar.gz: 9b7876d7e6089e045805e934135b676a27d9ba3f9c00f5c376279819f637bdce
3
+ metadata.gz: 77711562d9591e8a438d229e2fb8dac148a7b8b522d7f1c2c4c0b94eea1fde0e
4
+ data.tar.gz: bcdc10500b54b5ae24dde57248d547cfd931a0d6fc52d71d1667575441c5974c
5
5
  SHA512:
6
- metadata.gz: 6979be028243348639a9c47968245eade17a901bafc511d5b8a132f09915e046e264ed669bf90fd45b74d7331acd1bb51c8a622dcb7019d9e89d2525a3d55599
7
- data.tar.gz: 8d9d87f58830a08fe54b8e6bd5e1730246fd474b218dd6d87a71d150229ef5a2cc883723493066e83f0cc0eb920f3b690c6de7ff9f3f07b44d7dac3a2415b9c2
6
+ metadata.gz: c727d8109a8622bcb3c8e863632b2e7b728aa64e4f6b42bf9e8c342bd3a5e4f1b09f62b009e46816aec4fcd8f22acc165a7c18eb6522d3040f389a1fd80fb19a
7
+ data.tar.gz: ab7d8a0ec2269fe160898483356f6d41a022e22f497b27ce0bce80c5c142bbbc3ef700c582cb5cc0c704f556e9c111712e5e6ee5228855efd8f839fa22382ef1
@@ -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: 39429652 bytes
4
- sha256: 45ce33580b00606411af09dfd70154f8b7a7d3b637a1016c7e0c6357ccbd6338
3
+ size: 39543680 bytes
4
+ sha256: cb23ae5b9e3c6d9e196ba94c32b99ff12ceac4d65f9803f11768b78d4755fcc4
@@ -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: 39614896 bytes
4
- sha256: 4703aace96daba132de6aafca89a2b2c3aee0ce3dc658e243e9d060f30667604
3
+ size: 39728972 bytes
4
+ sha256: 591bb9417818c14220442123b595a34b95e695b6333ae1659bb52af80c8569b6
@@ -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: 39609016 bytes
4
- sha256: 02f80c3867f3cef679ec6c3678289bbd7720cf26ab6f4925cb35f0ba9f1a76b9
3
+ size: 39723064 bytes
4
+ sha256: ac2443455cc3d52d53c1060ea134d91a7b39e4b97d8eee4fdf5c2d71e010cdc4
@@ -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: 39618692 bytes
4
- sha256: bebefd8aa90fe05eb6308cbdfd1022ad5007490d89a942b55314830d661ae582
3
+ size: 39732740 bytes
4
+ sha256: d183ddfcb7c9a08e75711fcd852bef72e7a7f65b27a14bb8fdc5c365b73df9c1
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
2
  name: data/lib/parsanol/native/libparsanol.so
3
- size: 35750340 bytes
4
- sha256: 340420f6c770586cb519033e4f8802606378ade7cf9610a142aa4dcb4b3788ef
3
+ size: 35864872 bytes
4
+ sha256: e0bbe3d01539221af1af284ab8c0c04eeb2437f7f45e2dd44286b65c2f2a0038
@@ -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)
@@ -37,8 +37,8 @@ module Parsanol
37
37
  @grammar_name = nil
38
38
  # The default capture dialect is v1 (the owner's reversal,
39
39
  # 2026-10-28): runtime compiles of unpinned sources keep the
40
- # legacy shapes — the pubid fleet froze against them. mode "v2"
41
- # stays the named-trees opt-in via the grammar header.
40
+ # legacy shapes — the pubid fleet froze against them. edition
41
+ # "v2" is the named-trees opt-in via the grammar header.
42
42
  @edition = "v1"
43
43
  @version = "0.0.0"
44
44
  @source = nil
@@ -261,12 +261,16 @@ module Parsanol
261
261
  # the author declares, per grammar, which tree semantics the
262
262
  # grammar means. THE DEFAULT IS 1 (the legacy shapes — the
263
263
  # owner's 2026-10-28 reversal). 2 = fully named trees +
264
- # explicit spans. `mode` remains accepted as a deprecated
265
- # alias for the keyword. The edition is canonicalized here —
266
- # everything downstream only ever sees "v1"/"v2".
267
- if peek&.type == :ident && %w[edition mode].include?(peek.value)
264
+ # explicit spans. The edition is canonicalized here —
265
+ # everything downstream only ever sees "v1"/"v2". The
266
+ # pre-1.3.113 `mode` alias was removed (the owner's
267
+ # 2026-10-31 ruling): the header fails with the fix named.
268
+ if peek&.type == :ident && peek.value == "edition"
268
269
  advance
269
270
  document.edition = edition_value
271
+ elsif peek&.type == :ident && peek.value == "mode"
272
+ raise ParseError,
273
+ 'the grammar header keyword is edition; mode (the pre-1.3.113 alias) was removed — write edition "v1" or edition "v2"'
270
274
  end
271
275
  punct("{")
272
276
  skip_newlines
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Parsanol
4
- VERSION = "1.3.118"
4
+ VERSION = "1.3.120"
5
5
  end
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.118
4
+ version: 1.3.120
5
5
  platform: arm-linux
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-10-31 00:00:00.000000000 Z
11
+ date: 2026-11-01 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