ast 2.4.1 → 2.4.3
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/ast/node.rb +11 -3
- data/lib/ast/processor.rb +1 -1
- data/lib/ast/sexp.rb +2 -2
- data/lib/ast.rb +3 -3
- metadata +8 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5082859d425411058e1012ed6b088037409f8c794dd4fc33b991a760c50dd441
|
4
|
+
data.tar.gz: d2c3464d367d35652e8eda7c78a9047da7e26032337d1e2a78cf5256b74a71ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3482c4313010bab4e9bd270cd13548f8564f04a5fff0b4ec4b523049c327440dfc5e6b04e6b588efa86c8a70b5d992561d826870fa06ba1429610641eb063961
|
7
|
+
data.tar.gz: e7d976b0666b74bcff7a03a3d3186440fabef609463d28c487fde4d818633ed7c81651b491ffa14db3fa2d4f951469247d27f4b40348ee08ba6a068882c65b9a
|
data/lib/ast/node.rb
CHANGED
@@ -57,7 +57,7 @@ module AST
|
|
57
57
|
alias to_a children
|
58
58
|
|
59
59
|
# Returns the precomputed hash value for this node
|
60
|
-
# @return [
|
60
|
+
# @return [Integer]
|
61
61
|
attr_reader :hash
|
62
62
|
|
63
63
|
# Constructs a new instance of Node.
|
@@ -229,9 +229,9 @@ module AST
|
|
229
229
|
def to_ast
|
230
230
|
self
|
231
231
|
end
|
232
|
-
|
232
|
+
|
233
233
|
# Converts `self` to an Array where the first element is the type as a Symbol,
|
234
|
-
# and subsequent elements are the same representation of its children.
|
234
|
+
# and subsequent elements are the same representation of its children.
|
235
235
|
#
|
236
236
|
# @return [Array<Symbol, [...Array]>]
|
237
237
|
def to_sexp_array
|
@@ -246,6 +246,14 @@ module AST
|
|
246
246
|
[type, *children_sexp_arrs]
|
247
247
|
end
|
248
248
|
|
249
|
+
# Enables matching for Node, where type is the first element
|
250
|
+
# and the children are remaining items.
|
251
|
+
#
|
252
|
+
# @return [Array]
|
253
|
+
def deconstruct
|
254
|
+
[type, *children]
|
255
|
+
end
|
256
|
+
|
249
257
|
protected
|
250
258
|
|
251
259
|
# Returns `@type` with all underscores replaced by dashes. This allows
|
data/lib/ast/processor.rb
CHANGED
data/lib/ast/sexp.rb
CHANGED
@@ -3,8 +3,8 @@ module AST
|
|
3
3
|
# to define deeply nested ASTs from Ruby code, for example, in
|
4
4
|
# tests. It should be used like this:
|
5
5
|
#
|
6
|
-
# describe YourLanguage
|
7
|
-
# include Sexp
|
6
|
+
# describe YourLanguage do
|
7
|
+
# include ::AST::Sexp
|
8
8
|
#
|
9
9
|
# it "should correctly parse expressions" do
|
10
10
|
# YourLanguage.parse("1 + 2 * 3").should ==
|
data/lib/ast.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ast
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- whitequark
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-03-19 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: rake
|
@@ -16,42 +15,28 @@ dependencies:
|
|
16
15
|
requirements:
|
17
16
|
- - "~>"
|
18
17
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
18
|
+
version: '13.2'
|
20
19
|
type: :development
|
21
20
|
prerelease: false
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
23
22
|
requirements:
|
24
23
|
- - "~>"
|
25
24
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
25
|
+
version: '13.2'
|
27
26
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
27
|
+
name: rspec
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
30
29
|
requirements:
|
31
30
|
- - "~>"
|
32
31
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
32
|
+
version: '3.13'
|
34
33
|
type: :development
|
35
34
|
prerelease: false
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
37
36
|
requirements:
|
38
37
|
- - "~>"
|
39
38
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: bacon-colored_output
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
39
|
+
version: '3.13'
|
55
40
|
- !ruby/object:Gem::Dependency
|
56
41
|
name: simplecov
|
57
42
|
requirement: !ruby/object:Gem::Requirement
|
@@ -126,7 +111,6 @@ homepage: https://whitequark.github.io/ast/
|
|
126
111
|
licenses:
|
127
112
|
- MIT
|
128
113
|
metadata: {}
|
129
|
-
post_install_message:
|
130
114
|
rdoc_options: []
|
131
115
|
require_paths:
|
132
116
|
- lib
|
@@ -141,8 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
125
|
- !ruby/object:Gem::Version
|
142
126
|
version: '0'
|
143
127
|
requirements: []
|
144
|
-
rubygems_version: 3.
|
145
|
-
signing_key:
|
128
|
+
rubygems_version: 3.6.2
|
146
129
|
specification_version: 4
|
147
130
|
summary: A library for working with Abstract Syntax Trees.
|
148
131
|
test_files: []
|