parsanol 1.3.43-x86_64-linux → 1.3.44-x86_64-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: 3f44d218858ed9ae0469ab9cd8d1f0e491b9b9584b66254dc8ae615a5642a1ac
4
- data.tar.gz: 574a718a7edc84bcfc278731610aeaefc948b0d57aad704861cba38f160db8cc
3
+ metadata.gz: 3462396a466396e4051285e9dfffad10efc49b495c3730018e360dc53765ce1e
4
+ data.tar.gz: f3a4f6478ef3efacfd17b3532c7b3b044f18154f94743525a916ee248294a254
5
5
  SHA512:
6
- metadata.gz: 5c6b3a7a3ae4182e3e5dc003f38def7136f280434d96d8fc08bc132e6cb0f4a126957775a36902f1bb475c4c328ab14cb1980e2a97539fd8bbbdc7dcd539c2b4
7
- data.tar.gz: a4c8320cc46b6703ed03b3c0ca58510cee9a81f9272cd77c413eeff3b849cb4f428837226d26c9d24314de274c93531f679bef0fe2f5b4cb2ef81440adfd4830
6
+ metadata.gz: e2fce0073aa484546216662e8cfa5752a94df0f38ccf2941851d4201634f936b352b6807bc5d6dcf3037caef723bfb1fb1c9e28262a87f1a750a1bf803129311
7
+ data.tar.gz: eea570245005ac91445440385e7cde74b56aabd5e5ec39934500220a90494a11bb588853849c4d4cbe4791eadf36b45352967ba5b9df9341929180dec8c10471
Binary file
Binary file
Binary file
Binary file
@@ -154,16 +154,25 @@ module Parsanol
154
154
 
155
155
  return nil unless result
156
156
 
157
- # Return the result (should be a parslet/atom)
158
- result
157
+ # Capture-write contract (GH-80): return the atom and the
158
+ # post-call captures hash; the Rust bridge diffs it against
159
+ # the seeded values and propagates the block's writes
160
+ # (ctx.captures[:k] = v) into the parse's capture state,
161
+ # where backtracking scopes discard them on branch failure.
162
+ [result, ctx.captures]
159
163
  end
160
164
  end
161
165
  end
162
166
 
163
167
  # Context object passed to dynamic callbacks
164
168
  #
165
- # Provides read-only access to the parsing context including
166
- # input string, current position, and captured values.
169
+ # Provides access to the parsing context including input string,
170
+ # current position, and captured values. Capture READS see state
171
+ # set before the dynamic atom (capture atoms and earlier blocks'
172
+ # writes). Capture WRITES (ctx.captures[:k] = v) propagate into
173
+ # the parse's capture state and are visible to later blocks —
174
+ # and are discarded with the enclosing branch when backtracking
175
+ # fails it (parsanol-ruby#80).
167
176
  #
168
177
  # @example
169
178
  # dynamic { |ctx|
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Parsanol
4
- VERSION = "1.3.43"
4
+ VERSION = "1.3.44"
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.43
4
+ version: 1.3.44
5
5
  platform: x86_64-linux
6
6
  authors:
7
7
  - Ribose Inc.