cast-to-yaml 0.1.1 → 0.1.2
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/cast-to-yaml.gemspec +1 -1
- data/lib/cast-to-yaml/to_yaml.rb +29 -18
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6414c24c96b94ec4c511017a89e19e77f1555bd761f4e90429cb9144ca1cb248
|
4
|
+
data.tar.gz: 5155474197891e24f1b22cd75576e7407a7911fa447033ca3ce38bf950c02906
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0733e59623ea7d45e7d8f14772be6399b2f2f32cdf50b4b0325b9107506abf09bd76367999e0bce6a7f43af4390163ee4cb6118687fac5f6837718235ad5e393
|
7
|
+
data.tar.gz: 4793adf466fba2cf74cc6b9f19746f086b4f45308534f2312baf42fbcdd105ed281fe3045c0bca1914a94d09f146ee4cc73e1109305fc2bd7348c262841a9a7e
|
data/cast-to-yaml.gemspec
CHANGED
data/lib/cast-to-yaml/to_yaml.rb
CHANGED
@@ -49,12 +49,19 @@ module C
|
|
49
49
|
class Declaration
|
50
50
|
|
51
51
|
def to_a
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
52
|
+
# Anonymous nested composites
|
53
|
+
if declarators.empty?
|
54
|
+
if (type.kind_of?(Struct) || type.kind_of?(Union)) && type.members && !type.name
|
55
|
+
[{"type" => self.type.to_h_split}]
|
56
|
+
end
|
57
|
+
else
|
58
|
+
declarators.collect { |d|
|
59
|
+
res = d.to_h_split(self)
|
60
|
+
res["storage"] = storage.to_s if storage
|
61
|
+
res["inline"] = true if inline?
|
62
|
+
res
|
63
|
+
}
|
64
|
+
end
|
58
65
|
end
|
59
66
|
|
60
67
|
def extract(res = Hash::new { |h, k| h[k] = [] }, declarations: true)
|
@@ -94,35 +101,39 @@ module C
|
|
94
101
|
end
|
95
102
|
}
|
96
103
|
end
|
97
|
-
if type.kind_of?(Struct) && type.members
|
98
|
-
s = {}
|
99
|
-
s["name"] = type.name
|
104
|
+
if type.kind_of?(Struct) && type.members
|
100
105
|
m = []
|
101
106
|
type.members.each { |mem|
|
102
107
|
mem.extract(res, declarations: false)
|
103
108
|
m += mem.to_a
|
104
109
|
}
|
105
|
-
|
106
|
-
|
107
|
-
|
110
|
+
if type.name
|
111
|
+
s = {}
|
112
|
+
s["name"] = type.name
|
113
|
+
s["members"] = m
|
114
|
+
res["structs"].push s
|
115
|
+
end
|
116
|
+
elsif type.kind_of?(Enum) && type.members && (type.name || (declarators.empty? && declarations))
|
108
117
|
s = {}
|
109
|
-
s["name"] = type.name
|
118
|
+
s["name"] = type.name if type.name
|
110
119
|
m = []
|
111
120
|
type.members.each { |mem|
|
112
121
|
m.push mem.to_h_split
|
113
122
|
}
|
114
123
|
s["members"] = m
|
115
124
|
res["enums"].push s
|
116
|
-
elsif type.kind_of?(Union) && type.members
|
117
|
-
s = {}
|
118
|
-
s["name"] = type.name
|
125
|
+
elsif type.kind_of?(Union) && type.members
|
119
126
|
m = []
|
120
127
|
type.members.each { |mem|
|
121
128
|
mem.extract(res, declarations: false)
|
122
129
|
m += mem.to_a
|
123
130
|
}
|
124
|
-
|
125
|
-
|
131
|
+
if type.name
|
132
|
+
s = {}
|
133
|
+
s["name"] = type.name
|
134
|
+
s["members"] = m
|
135
|
+
res["unions"].push s
|
136
|
+
end
|
126
137
|
end
|
127
138
|
res
|
128
139
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cast-to-yaml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brice Videau
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cast
|
@@ -30,7 +30,7 @@ dependencies:
|
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 0.3.0
|
33
|
-
description:
|
33
|
+
description:
|
34
34
|
email: bvideau@anl.gov
|
35
35
|
executables: []
|
36
36
|
extensions: []
|
@@ -45,7 +45,7 @@ homepage: https://github.com/alcf-perfengr/cast-to-yaml
|
|
45
45
|
licenses:
|
46
46
|
- MIT
|
47
47
|
metadata: {}
|
48
|
-
post_install_message:
|
48
|
+
post_install_message:
|
49
49
|
rdoc_options: []
|
50
50
|
require_paths:
|
51
51
|
- lib
|
@@ -60,8 +60,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
requirements: []
|
63
|
-
rubygems_version: 3.
|
64
|
-
signing_key:
|
63
|
+
rubygems_version: 3.4.20
|
64
|
+
signing_key:
|
65
65
|
specification_version: 4
|
66
66
|
summary: Extract information fom a c ast
|
67
67
|
test_files: []
|