unparser 0.6.3 → 0.6.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 00d4cffb31b7caec2b5ff01f50de7727f085f6b25a884e1bddd265d737426d69
4
- data.tar.gz: b3afa658a70402378f6b9c902efe443836309ef491b4686363d9d423da2b575d
3
+ metadata.gz: bb5014c1ad5b93a94374f4f79c60735d626e7b678c2a0521c15d4aeef63bf4a4
4
+ data.tar.gz: c932ade7d867e5dafc58f538bef903c723717c03e5276cd6e00bb4b6ec1205e9
5
5
  SHA512:
6
- metadata.gz: 981ac69fd7dd0d5b6521fb15313274b22b2fac62adefe320a65274bdb2ca016b7bb774e626bb7ac02991173a3d20267a4ed97a991fd6b4afcd7948f268f5628e
7
- data.tar.gz: 171c271cf06e71e3585ac1614f38195026f142ad78b21806befcaa95f4e62caa436341f40632c55605c18c52c8dcc19d414806124b4b726b051c4644ca9bcc6b
6
+ metadata.gz: ba212ad02df6e81cebc47f085d0432c5a05f44a63c5e9869f356cbd78a52805fc9ef9b8ffe331e0c802399e6c450f1a2ecd6eea49d01fb1ca6b7c750200d09e1
7
+ data.tar.gz: 5fa98dd676c1f2ebd2fa4006920fb8df12056178df169728d3bb239b3b9152ce0b6ba8f8cce4359b3fc4ee935e1aa79f079d0dd72953e2f24b75b5612e00f553
@@ -127,7 +127,7 @@ module Unparser
127
127
 
128
128
  def dispatch
129
129
  write('&')
130
- visit(name)
130
+ visit(name) if name
131
131
  end
132
132
 
133
133
  end # BlockPass
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Unparser
4
+ class Emitter
5
+ # Emitter for in pattern nodes
6
+ class FindPattern < self
7
+ handle :find_pattern
8
+
9
+ private
10
+
11
+ def dispatch
12
+ write('[')
13
+ delimited(children)
14
+ write(']')
15
+ end
16
+ end # FindPattern
17
+ end # Emitter
18
+ end # Unparser
@@ -6,17 +6,25 @@ module Unparser
6
6
  class MatchPattern < self
7
7
 
8
8
  handle :match_pattern
9
- handle :match_pattern_p
10
9
 
11
10
  children :target, :pattern
12
11
 
12
+ # Modern ast format emits `match_pattern`
13
+ # node on single line pre 3.0, but 3.0+ uses `match_pattern_p`
14
+ SYMBOL =
15
+ if RUBY_VERSION < '3.0'
16
+ ' in '
17
+ else
18
+ ' => '
19
+ end
20
+
13
21
  private
14
22
 
15
23
  def dispatch
16
24
  visit(target)
17
- write(' in ')
25
+ write(SYMBOL)
18
26
  visit(pattern)
19
27
  end
20
- end # InPattern
28
+ end # MatchPattern
21
29
  end # Emitter
22
30
  end # Unparser
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Unparser
4
+ class Emitter
5
+ class MatchPatternP < self
6
+
7
+ handle :match_pattern_p
8
+
9
+ children :target, :pattern
10
+
11
+ private
12
+
13
+ def dispatch
14
+ visit(target)
15
+ write(' in ')
16
+ visit(pattern)
17
+ end
18
+ end # MatchPatternP
19
+ end # Emitter
20
+ end # Unparser
@@ -4,8 +4,15 @@ module Unparser
4
4
  class Emitter
5
5
  # Emiter for match rest nodes
6
6
  class MatchRest < self
7
+ handle :match_rest
8
+
7
9
  children :match_var
8
10
 
11
+ def dispatch
12
+ write('*')
13
+ visit(match_var) if match_var
14
+ end
15
+
9
16
  def emit_array_pattern
10
17
  write('*')
11
18
  emit_match_var
data/lib/unparser.rb CHANGED
@@ -218,7 +218,9 @@ require 'unparser/emitter/xstr'
218
218
  require 'unparser/emitter/yield'
219
219
  require 'unparser/emitter/kwargs'
220
220
  require 'unparser/emitter/pair'
221
+ require 'unparser/emitter/find_pattern'
221
222
  require 'unparser/emitter/match_pattern'
223
+ require 'unparser/emitter/match_pattern_p'
222
224
  require 'unparser/writer'
223
225
  require 'unparser/writer/binary'
224
226
  require 'unparser/writer/dynamic_string'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unparser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ version: 0.6.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Markus Schirp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-16 00:00:00.000000000 Z
11
+ date: 2022-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: diff-lcs
@@ -184,6 +184,7 @@ files:
184
184
  - lib/unparser/emitter/defined.rb
185
185
  - lib/unparser/emitter/dstr.rb
186
186
  - lib/unparser/emitter/dsym.rb
187
+ - lib/unparser/emitter/find_pattern.rb
187
188
  - lib/unparser/emitter/flipflop.rb
188
189
  - lib/unparser/emitter/float.rb
189
190
  - lib/unparser/emitter/flow_modifier.rb
@@ -203,6 +204,7 @@ files:
203
204
  - lib/unparser/emitter/match_alt.rb
204
205
  - lib/unparser/emitter/match_as.rb
205
206
  - lib/unparser/emitter/match_pattern.rb
207
+ - lib/unparser/emitter/match_pattern_p.rb
206
208
  - lib/unparser/emitter/match_rest.rb
207
209
  - lib/unparser/emitter/match_var.rb
208
210
  - lib/unparser/emitter/mlhs.rb
@@ -264,7 +266,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
264
266
  - !ruby/object:Gem::Version
265
267
  version: '0'
266
268
  requirements: []
267
- rubygems_version: 3.1.6
269
+ rubygems_version: 3.3.3
268
270
  signing_key:
269
271
  specification_version: 4
270
272
  summary: Generate equivalent source for parser gem AST nodes