rggen-c-header 0.2.0 → 0.3.0
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/LICENSE +1 -1
- data/README.md +1 -1
- data/lib/rggen/c_header/feature.rb +1 -1
- data/lib/rggen/c_header/register/c_header.rb +7 -22
- data/lib/rggen/c_header/register_block/c_header.rb +1 -3
- data/lib/rggen/c_header/version.rb +1 -1
- data/lib/rggen/c_header.rb +0 -1
- metadata +5 -6
- data/lib/rggen/c_header/utility/macro_definition.rb +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5dbb6ddb7c867f003e9ba685413ac4d3deb5ae9978ef5e59cca1919de9c51378
|
4
|
+
data.tar.gz: 34f5d2b0bec9eba0c63bec761ec8927214c118ddf70d3b9a4ae17ca6f9cd5c54
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a862a0468553d95a8bd094ebf309f53d0745c23619109491b30b968d1bf0200df2bb5d014c632791e04bffc54db4d13ae9447496cbd5541ef44f8a8863475b02
|
7
|
+
data.tar.gz: 7e97c33f3efe07cc93cfb3d09447393b2ddb121de7751cc07a1c1b44fa2d465ac24a20ca96f671544adcac708952050519c1b0a8c6611f1ddea854468b8cd771
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -41,7 +41,7 @@ Feedbacks, bus reports, questions and etc. are welcome! You can post them bu usi
|
|
41
41
|
|
42
42
|
## Copyright & License
|
43
43
|
|
44
|
-
Copyright © 2022 Taichi Ishitani. RgGen::CHeader is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
|
44
|
+
Copyright © 2022-2023 Taichi Ishitani. RgGen::CHeader is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
|
45
45
|
|
46
46
|
## Code of Conduct
|
47
47
|
|
@@ -23,17 +23,21 @@ RgGen.define_simple_feature(:register, :c_header) do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def byte_size
|
26
|
-
|
26
|
+
register.byte_size(hierarchical: true)
|
27
27
|
end
|
28
28
|
|
29
29
|
def array?
|
30
|
-
|
30
|
+
register.array?(hierarchical: true)
|
31
31
|
end
|
32
32
|
|
33
33
|
def shared_address?
|
34
34
|
register.settings[:support_shared_address]
|
35
35
|
end
|
36
36
|
|
37
|
+
def array_size
|
38
|
+
register.array_size(hierarchical: true)
|
39
|
+
end
|
40
|
+
|
37
41
|
def define_array_macros
|
38
42
|
size_list = array_size
|
39
43
|
define_macro("#{full_name}_array_dimension", size_list.size)
|
@@ -53,31 +57,12 @@ RgGen.define_simple_feature(:register, :c_header) do
|
|
53
57
|
end
|
54
58
|
|
55
59
|
def address_list
|
56
|
-
|
57
|
-
upper_address_list.product(local_address_list).map(&:sum)
|
58
|
-
end
|
59
|
-
|
60
|
-
def local_address_list
|
61
|
-
Array.new(register.count) do |i|
|
62
|
-
if shared_address?
|
63
|
-
register.offset_address
|
64
|
-
else
|
65
|
-
register.offset_address + register.byte_width * i
|
66
|
-
end
|
67
|
-
end
|
60
|
+
register.expanded_offset_addresses
|
68
61
|
end
|
69
62
|
|
70
63
|
def array_suffix
|
71
64
|
index_list = array_size.map { |size| size.times.to_a }
|
72
65
|
index_list.first.product(*index_list[1..]).map { |index| index.join('_') }
|
73
66
|
end
|
74
|
-
|
75
|
-
def array_size_upper_layer
|
76
|
-
register_files.flat_map(&:array_size).compact
|
77
|
-
end
|
78
|
-
|
79
|
-
def array_size
|
80
|
-
[*register_files, register].flat_map(&:array_size).compact
|
81
|
-
end
|
82
67
|
end
|
83
68
|
end
|
@@ -20,10 +20,8 @@ RgGen.define_simple_feature(:register_block, :c_header) do
|
|
20
20
|
write_file '<%= register_block.name %>.h' do |f|
|
21
21
|
f.include_guard
|
22
22
|
f.include_file 'stdint.h'
|
23
|
+
f.macro_definitions register_block.macro_definitions
|
23
24
|
f.body do |code|
|
24
|
-
register_block.macro_definitions.each do |macro|
|
25
|
-
code << macro << nl
|
26
|
-
end
|
27
25
|
register_block.struct_definitions.each do |struct|
|
28
26
|
code << struct
|
29
27
|
end
|
data/lib/rggen/c_header.rb
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
require_relative 'c_header/version'
|
4
4
|
require_relative 'c_header/utility/declaration'
|
5
5
|
require_relative 'c_header/utility/struct_definition'
|
6
|
-
require_relative 'c_header/utility/macro_definition'
|
7
6
|
require_relative 'c_header/utility/source_file'
|
8
7
|
require_relative 'c_header/utility'
|
9
8
|
require_relative 'c_header/struct_builder'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rggen-c-header
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Taichi Ishitani
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -45,7 +45,6 @@ files:
|
|
45
45
|
- lib/rggen/c_header/struct_builder.rb
|
46
46
|
- lib/rggen/c_header/utility.rb
|
47
47
|
- lib/rggen/c_header/utility/declaration.rb
|
48
|
-
- lib/rggen/c_header/utility/macro_definition.rb
|
49
48
|
- lib/rggen/c_header/utility/source_file.rb
|
50
49
|
- lib/rggen/c_header/utility/struct_definition.rb
|
51
50
|
- lib/rggen/c_header/version.rb
|
@@ -66,15 +65,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
66
65
|
requirements:
|
67
66
|
- - ">="
|
68
67
|
- !ruby/object:Gem::Version
|
69
|
-
version: 2.
|
68
|
+
version: 2.7.0
|
70
69
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
70
|
requirements:
|
72
71
|
- - ">="
|
73
72
|
- !ruby/object:Gem::Version
|
74
73
|
version: '0'
|
75
74
|
requirements: []
|
76
|
-
rubygems_version: 3.
|
75
|
+
rubygems_version: 3.4.1
|
77
76
|
signing_key:
|
78
77
|
specification_version: 4
|
79
|
-
summary: rggen-c-header-0.
|
78
|
+
summary: rggen-c-header-0.3.0
|
80
79
|
test_files: []
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RgGen
|
4
|
-
module CHeader
|
5
|
-
module Utility
|
6
|
-
class MacroDefinition
|
7
|
-
def initialize(name, value = nil)
|
8
|
-
@name = name
|
9
|
-
@value = value
|
10
|
-
end
|
11
|
-
|
12
|
-
def to_s
|
13
|
-
@value && "#define #{@name} #{@value}" || "#define #{@name}"
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|