vertigo_vhdl 0.8.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.
Files changed (183) hide show
  1. checksums.yaml +7 -0
  2. data/bin/vertigo +7 -0
  3. data/lib/vertigo.rb +4 -0
  4. data/lib/vertigo/ast.rb +87 -0
  5. data/lib/vertigo/ast_vertigo_rkgen.rb +607 -0
  6. data/lib/vertigo/code.rb +57 -0
  7. data/lib/vertigo/compiler.rb +61 -0
  8. data/lib/vertigo/generic_lexer.rb +61 -0
  9. data/lib/vertigo/generic_parser.rb +44 -0
  10. data/lib/vertigo/indent.rb +20 -0
  11. data/lib/vertigo/lexer.rb +172 -0
  12. data/lib/vertigo/parser.rb +1458 -0
  13. data/lib/vertigo/pretty_printer.rb +749 -0
  14. data/lib/vertigo/runner.rb +115 -0
  15. data/lib/vertigo/tb_generator.rb +81 -0
  16. data/lib/vertigo/template.tb.vhd +72 -0
  17. data/lib/vertigo/token.rb +67 -0
  18. data/lib/vertigo/version.rb +3 -0
  19. data/lib/vertigo/vertigo.rkg +354 -0
  20. data/lib/vertigo/visitor_vertigo_rkgen.rb +447 -0
  21. data/tests/ghdl_tests/fsm.vhd +98 -0
  22. data/tests/ghdl_tests/fsm_synth.vhd +248 -0
  23. data/tests/ghdl_tests/test_fsm.vhd +162 -0
  24. data/tests/parser_tests/else.vhd +64 -0
  25. data/tests/parser_tests/test_MUST_fail.vhd +1 -0
  26. data/tests/parser_tests/test_accelerator.vhd +160 -0
  27. data/tests/parser_tests/test_accelerator_pp.vhd +144 -0
  28. data/tests/parser_tests/test_aggregate.vhd +17 -0
  29. data/tests/parser_tests/test_aggregate_pp.vhd +15 -0
  30. data/tests/parser_tests/test_archi_1.vhd +45 -0
  31. data/tests/parser_tests/test_archi_1_pp.vhd +41 -0
  32. data/tests/parser_tests/test_array_array_00.vhd +25 -0
  33. data/tests/parser_tests/test_array_array_00_pp.vhd +25 -0
  34. data/tests/parser_tests/test_array_urange.vhd +25 -0
  35. data/tests/parser_tests/test_array_urange_pp.vhd +25 -0
  36. data/tests/parser_tests/test_chu-1.vhd +80 -0
  37. data/tests/parser_tests/test_chu-1_pp.vhd +104 -0
  38. data/tests/parser_tests/test_concat.vhd +11 -0
  39. data/tests/parser_tests/test_concat_pp.vhd +14 -0
  40. data/tests/parser_tests/test_counter.vhd +35 -0
  41. data/tests/parser_tests/test_counter_pp.vhd +35 -0
  42. data/tests/parser_tests/test_de2.vhd +358 -0
  43. data/tests/parser_tests/test_de2_pp.vhd +274 -0
  44. data/tests/parser_tests/test_encode.vhd +2679 -0
  45. data/tests/parser_tests/test_encode_pp.vhd +2549 -0
  46. data/tests/parser_tests/test_fsm.vhd +162 -0
  47. data/tests/parser_tests/test_fsm_pp.vhd +125 -0
  48. data/tests/parser_tests/test_fsm_synth.vhd +248 -0
  49. data/tests/parser_tests/test_fsm_synth_pp.vhd +197 -0
  50. data/tests/parser_tests/test_function-01.vhd +33 -0
  51. data/tests/parser_tests/test_function-01_pp.vhd +18 -0
  52. data/tests/parser_tests/test_lfsr.vhd +75 -0
  53. data/tests/parser_tests/test_lfsr_pp.vhd +44 -0
  54. data/tests/parser_tests/test_microwatt_cache_ram.vhd +1 -0
  55. data/tests/parser_tests/test_microwatt_cache_ram_pp.vhd +68 -0
  56. data/tests/parser_tests/test_microwatt_common.vhd +1 -0
  57. data/tests/parser_tests/test_microwatt_common_pp.vhd +336 -0
  58. data/tests/parser_tests/test_microwatt_control.vhd +1 -0
  59. data/tests/parser_tests/test_microwatt_control_pp.vhd +187 -0
  60. data/tests/parser_tests/test_microwatt_core.vhd +1 -0
  61. data/tests/parser_tests/test_microwatt_core_debug.vhd +1 -0
  62. data/tests/parser_tests/test_microwatt_core_debug_pp.vhd +104 -0
  63. data/tests/parser_tests/test_microwatt_core_pp.vhd +231 -0
  64. data/tests/parser_tests/test_microwatt_core_tb.vhd +1 -0
  65. data/tests/parser_tests/test_microwatt_core_tb_pp.vhd +43 -0
  66. data/tests/parser_tests/test_microwatt_countzero.vhd +1 -0
  67. data/tests/parser_tests/test_microwatt_countzero_pp.vhd +120 -0
  68. data/tests/parser_tests/test_microwatt_countzero_tb.vhd +1 -0
  69. data/tests/parser_tests/test_microwatt_countzero_tb_pp.vhd +70 -0
  70. data/tests/parser_tests/test_microwatt_cr_file.vhd +1 -0
  71. data/tests/parser_tests/test_microwatt_cr_file_pp.vhd +74 -0
  72. data/tests/parser_tests/test_microwatt_cr_hazard.vhd +1 -0
  73. data/tests/parser_tests/test_microwatt_cr_hazard_pp.vhd +51 -0
  74. data/tests/parser_tests/test_microwatt_crhelpers.vhd +1 -0
  75. data/tests/parser_tests/test_microwatt_crhelpers_pp.vhd +48 -0
  76. data/tests/parser_tests/test_microwatt_dcache.vhd +1 -0
  77. data/tests/parser_tests/test_microwatt_dcache_pp.vhd +481 -0
  78. data/tests/parser_tests/test_microwatt_dcache_tb.vhd +1 -0
  79. data/tests/parser_tests/test_microwatt_dcache_tb_pp.vhd +98 -0
  80. data/tests/parser_tests/test_microwatt_decode1.vhd +1 -0
  81. data/tests/parser_tests/test_microwatt_decode1_pp.vhd +138 -0
  82. data/tests/parser_tests/test_microwatt_decode2.vhd +1 -0
  83. data/tests/parser_tests/test_microwatt_decode2_pp.vhd +300 -0
  84. data/tests/parser_tests/test_microwatt_decode_types.vhd +1 -0
  85. data/tests/parser_tests/test_microwatt_decode_types_pp.vhd +67 -0
  86. data/tests/parser_tests/test_microwatt_divider.vhd +1 -0
  87. data/tests/parser_tests/test_microwatt_divider_pp.vhd +132 -0
  88. data/tests/parser_tests/test_microwatt_divider_tb.vhd +1 -0
  89. data/tests/parser_tests/test_microwatt_divider_tb_pp.vhd +95 -0
  90. data/tests/parser_tests/test_microwatt_dmi_dtm_dummy.vhd +1 -0
  91. data/tests/parser_tests/test_microwatt_dmi_dtm_dummy_pp.vhd +29 -0
  92. data/tests/parser_tests/test_microwatt_dmi_dtm_tb.vhd +1 -0
  93. data/tests/parser_tests/test_microwatt_dmi_dtm_tb_pp.vhd +197 -0
  94. data/tests/parser_tests/test_microwatt_dmi_dtm_xilinx.vhd +1 -0
  95. data/tests/parser_tests/test_microwatt_dmi_dtm_xilinx_pp.vhd +139 -0
  96. data/tests/parser_tests/test_microwatt_execute1.vhd +1 -0
  97. data/tests/parser_tests/test_microwatt_execute1_pp.vhd +689 -0
  98. data/tests/parser_tests/test_microwatt_fetch1.vhd +1 -0
  99. data/tests/parser_tests/test_microwatt_fetch1_pp.vhd +88 -0
  100. data/tests/parser_tests/test_microwatt_fetch2.vhd +1 -0
  101. data/tests/parser_tests/test_microwatt_fetch2_pp.vhd +79 -0
  102. data/tests/parser_tests/test_microwatt_glibc_random.vhd +1 -0
  103. data/tests/parser_tests/test_microwatt_glibc_random_helpers.vhd +1 -0
  104. data/tests/parser_tests/test_microwatt_glibc_random_helpers_pp.vhd +25 -0
  105. data/tests/parser_tests/test_microwatt_glibc_random_pp.vhd +41 -0
  106. data/tests/parser_tests/test_microwatt_gpr_hazard.vhd +1 -0
  107. data/tests/parser_tests/test_microwatt_gpr_hazard_pp.vhd +68 -0
  108. data/tests/parser_tests/test_microwatt_helpers.vhd +1 -0
  109. data/tests/parser_tests/test_microwatt_helpers_pp.vhd +153 -0
  110. data/tests/parser_tests/test_microwatt_icache.vhd +1 -0
  111. data/tests/parser_tests/test_microwatt_icache_pp.vhd +337 -0
  112. data/tests/parser_tests/test_microwatt_icache_tb.vhd +1 -0
  113. data/tests/parser_tests/test_microwatt_icache_tb_pp.vhd +104 -0
  114. data/tests/parser_tests/test_microwatt_insn_helpers.vhd +1 -0
  115. data/tests/parser_tests/test_microwatt_insn_helpers_pp.vhd +208 -0
  116. data/tests/parser_tests/test_microwatt_loadstore1.vhd +1 -0
  117. data/tests/parser_tests/test_microwatt_loadstore1_pp.vhd +222 -0
  118. data/tests/parser_tests/test_microwatt_logical.vhd +1 -0
  119. data/tests/parser_tests/test_microwatt_logical_pp.vhd +87 -0
  120. data/tests/parser_tests/test_microwatt_multiply.vhd +1 -0
  121. data/tests/parser_tests/test_microwatt_multiply_pp.vhd +84 -0
  122. data/tests/parser_tests/test_microwatt_multiply_tb.vhd +1 -0
  123. data/tests/parser_tests/test_microwatt_multiply_tb_pp.vhd +75 -0
  124. data/tests/parser_tests/test_microwatt_plru.vhd +1 -0
  125. data/tests/parser_tests/test_microwatt_plru_pp.vhd +46 -0
  126. data/tests/parser_tests/test_microwatt_plru_tb.vhd +1 -0
  127. data/tests/parser_tests/test_microwatt_plru_tb_pp.vhd +93 -0
  128. data/tests/parser_tests/test_microwatt_ppc_fx_insns.vhd +1 -0
  129. data/tests/parser_tests/test_microwatt_ppc_fx_insns_pp.vhd +665 -0
  130. data/tests/parser_tests/test_microwatt_register_file.vhd +1 -0
  131. data/tests/parser_tests/test_microwatt_register_file_pp.vhd +86 -0
  132. data/tests/parser_tests/test_microwatt_rotator.vhd +1 -0
  133. data/tests/parser_tests/test_microwatt_rotator_pp.vhd +149 -0
  134. data/tests/parser_tests/test_microwatt_rotator_tb.vhd +1 -0
  135. data/tests/parser_tests/test_microwatt_rotator_tb_pp.vhd +134 -0
  136. data/tests/parser_tests/test_microwatt_sim_bram.vhd +1 -0
  137. data/tests/parser_tests/test_microwatt_sim_bram_helpers.vhd +1 -0
  138. data/tests/parser_tests/test_microwatt_sim_bram_helpers_pp.vhd +52 -0
  139. data/tests/parser_tests/test_microwatt_sim_bram_pp.vhd +53 -0
  140. data/tests/parser_tests/test_microwatt_sim_console.vhd +1 -0
  141. data/tests/parser_tests/test_microwatt_sim_console_pp.vhd +43 -0
  142. data/tests/parser_tests/test_microwatt_sim_jtag.vhd +1 -0
  143. data/tests/parser_tests/test_microwatt_sim_jtag_pp.vhd +64 -0
  144. data/tests/parser_tests/test_microwatt_sim_jtag_socket.vhd +1 -0
  145. data/tests/parser_tests/test_microwatt_sim_jtag_socket_pp.vhd +36 -0
  146. data/tests/parser_tests/test_microwatt_sim_uart.vhd +1 -0
  147. data/tests/parser_tests/test_microwatt_sim_uart_pp.vhd +90 -0
  148. data/tests/parser_tests/test_microwatt_soc.vhd +1 -0
  149. data/tests/parser_tests/test_microwatt_soc_pp.vhd +195 -0
  150. data/tests/parser_tests/test_microwatt_utils.vhd +1 -0
  151. data/tests/parser_tests/test_microwatt_utils_pp.vhd +39 -0
  152. data/tests/parser_tests/test_microwatt_wishbone_arbiter.vhd +1 -0
  153. data/tests/parser_tests/test_microwatt_wishbone_arbiter_pp.vhd +54 -0
  154. data/tests/parser_tests/test_microwatt_wishbone_bram_tb.vhd +1 -0
  155. data/tests/parser_tests/test_microwatt_wishbone_bram_tb_pp.vhd +157 -0
  156. data/tests/parser_tests/test_microwatt_wishbone_bram_wrapper.vhd +1 -0
  157. data/tests/parser_tests/test_microwatt_wishbone_bram_wrapper_pp.vhd +62 -0
  158. data/tests/parser_tests/test_microwatt_wishbone_debug_master.vhd +1 -0
  159. data/tests/parser_tests/test_microwatt_wishbone_debug_master_pp.vhd +124 -0
  160. data/tests/parser_tests/test_microwatt_wishbone_types.vhd +1 -0
  161. data/tests/parser_tests/test_microwatt_wishbone_types_pp.vhd +38 -0
  162. data/tests/parser_tests/test_microwatt_writeback.vhd +1 -0
  163. data/tests/parser_tests/test_microwatt_writeback_pp.vhd +87 -0
  164. data/tests/parser_tests/test_package-1.vhd +68 -0
  165. data/tests/parser_tests/test_package-1_pp.vhd +53 -0
  166. data/tests/parser_tests/test_precedence.vhd +13 -0
  167. data/tests/parser_tests/test_precedence_pp.vhd +16 -0
  168. data/tests/parser_tests/test_selected_sig.vhd +14 -0
  169. data/tests/parser_tests/test_selected_sig_pp.vhd +10 -0
  170. data/tests/parser_tests/test_slice.vhd +15 -0
  171. data/tests/parser_tests/test_slice_pp.vhd +16 -0
  172. data/tests/parser_tests/test_tb-00.vhd +94 -0
  173. data/tests/parser_tests/test_tb-00_pp.vhd +71 -0
  174. data/tests/parser_tests/test_type_decl_02.vhd +9 -0
  175. data/tests/parser_tests/test_type_decl_02_pp.vhd +11 -0
  176. data/tests/parser_tests/test_use.vhd +7 -0
  177. data/tests/parser_tests/test_use_pp.vhd +10 -0
  178. data/tests/parser_tests/test_while_1.vhd +38 -0
  179. data/tests/parser_tests/test_while_1_pp.vhd +26 -0
  180. data/tests/parser_tests/test_with-00.vhd +21 -0
  181. data/tests/parser_tests/test_with-00_pp.vhd +12 -0
  182. data/tests/tb_gen_tests/test_accelerator.vhd +160 -0
  183. metadata +224 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: f5ba8043aca76da72831078060182a4c8e80b986c7d3c0020872e0f7fbc166d5
4
+ data.tar.gz: facc1e042ad028d75924b43718ea25abe1ed5384d6535fed110b3bc599277391
5
+ SHA512:
6
+ metadata.gz: dd8fbbdee4bd9919466d6e41b8edd4d012a1c3e018a812337648e7afcf7a23e5cdb6596aaff909ca6548689343ecda33cd28d7cb512cc50531c010f5716a2643
7
+ data.tar.gz: 337349a7c82934c101408dff9faabfbf2c2cb2fe7279f96e61d776b226e9d9f680f77c5e9545baca45d3ea0f2ab55bd3c2fdc11a3ae8ccebc8671788f526ca45
data/bin/vertigo ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../lib/vertigo'
4
+
5
+ $verbose=true
6
+
7
+ Vertigo::Runner.run(*ARGV)
data/lib/vertigo.rb ADDED
@@ -0,0 +1,4 @@
1
+ require_relative "./vertigo/runner"
2
+ require_relative "./vertigo/version"
3
+ module Vertigo
4
+ end
@@ -0,0 +1,87 @@
1
+ require_relative "ast_vertigo_rkgen"
2
+
3
+ module Vertigo
4
+
5
+ class AstNode
6
+ attr_accessor :label
7
+ attr_accessor :pos
8
+ end
9
+
10
+ class Root < AstNode
11
+ def <<(e)
12
+ @design_units << e
13
+ end
14
+
15
+ def flatten!
16
+ @design_units.flatten!
17
+ end
18
+ end
19
+
20
+ class RecordDecl AstNode
21
+ def <<(e)
22
+ @elements << e
23
+ end
24
+ end
25
+
26
+ class Ident < AstNode
27
+ def self.create str
28
+ Ident.new(Vertigo::Token.create(:ident,str))
29
+ end
30
+ end
31
+
32
+ class Else < AstNode
33
+ def <<(e)
34
+ @body||=Body.new
35
+ @body << e
36
+ end
37
+ end
38
+
39
+ class Body < AstNode
40
+ def <<(e)
41
+ @elements << e
42
+ end
43
+ end
44
+
45
+ class Sensitivity < AstNode
46
+ def << e
47
+ @elements << e
48
+ end
49
+ end
50
+
51
+ class EnumDecl < AstNode
52
+ def << e
53
+ @elements << e
54
+ end
55
+ end
56
+
57
+ class Case < AstNode
58
+ def << e
59
+ @whens << e
60
+ end
61
+ end
62
+
63
+ class Aggregate < AstNode
64
+ def << e
65
+ @elements << e
66
+ end
67
+ end
68
+
69
+ class PortMap < AstNode
70
+ def << e
71
+ @elements << e
72
+ end
73
+ end
74
+
75
+ class GenericMap < AstNode
76
+ def << e
77
+ @elements << e
78
+ end
79
+ end
80
+
81
+ class Alternative < AstNode
82
+ def << e
83
+ @elements << e
84
+ end
85
+ end
86
+
87
+ end
@@ -0,0 +1,607 @@
1
+ # ============================================================
2
+ # This code was generated by rkgen utility.
3
+ # DO NOT MODIFY !
4
+ # ============================================================
5
+
6
+ module Vertigo
7
+
8
+ class AstNode
9
+ def accept(visitor, arg=nil)
10
+ name = self.class.name.split(/::/).last
11
+ visitor.send("visit#{name}".to_sym, self ,arg) # Metaprograming !
12
+ end
13
+
14
+ def str
15
+ ppr=PrettyPrinter.new
16
+ self.accept(ppr)
17
+ end
18
+ end
19
+
20
+ class Root < AstNode
21
+ attr_accessor :design_units
22
+ def initialize design_units=[]
23
+ @design_units=design_units
24
+ end
25
+ end
26
+
27
+ class Comment < AstNode
28
+ attr_accessor :str
29
+ def initialize str=nil
30
+ @str=str
31
+ end
32
+ end
33
+
34
+ class Library < AstNode
35
+ attr_accessor :name
36
+ def initialize name=nil
37
+ @name=name
38
+ end
39
+ end
40
+
41
+ class Use < AstNode
42
+ attr_accessor :library,:package,:element
43
+ def initialize library=nil,package=nil,element=nil
44
+ @library,@package,@element=library,package,element
45
+ end
46
+ end
47
+
48
+ class Entity < AstNode
49
+ attr_accessor :name,:generics,:ports
50
+ def initialize name=nil,generics=[],ports=[]
51
+ @name,@generics,@ports=name,generics,ports
52
+ end
53
+ end
54
+
55
+ class Generic < AstNode
56
+ attr_accessor :name,:type,:init
57
+ def initialize name=nil,type=nil,init=nil
58
+ @name,@type,@init=name,type,init
59
+ end
60
+ end
61
+
62
+ class Input < AstNode
63
+ attr_accessor :name,:type,:init
64
+ def initialize name=nil,type=nil,init=nil
65
+ @name,@type,@init=name,type,init
66
+ end
67
+ end
68
+
69
+ class Output < AstNode
70
+ attr_accessor :name,:type,:init
71
+ def initialize name=nil,type=nil,init=nil
72
+ @name,@type,@init=name,type,init
73
+ end
74
+ end
75
+
76
+ class InOut < AstNode
77
+ attr_accessor :name,:type,:init
78
+ def initialize name=nil,type=nil,init=nil
79
+ @name,@type,@init=name,type,init
80
+ end
81
+ end
82
+
83
+ class Package < AstNode
84
+ attr_accessor :name,:decls
85
+ def initialize name=nil,decls=[]
86
+ @name,@decls=name,decls
87
+ end
88
+ end
89
+
90
+ class PackageBody < AstNode
91
+ attr_accessor :name,:decls
92
+ def initialize name=nil,decls=[]
93
+ @name,@decls=name,decls
94
+ end
95
+ end
96
+
97
+ class ProcedureDecl < AstNode
98
+ attr_accessor :name,:formal_args,:decls,:body
99
+ def initialize name=nil,formal_args=[],decls=[],body=nil
100
+ @name,@formal_args,@decls,@body=name,formal_args,decls,body
101
+ end
102
+ end
103
+
104
+ class FormalArg < AstNode
105
+ attr_accessor :signal,:direction,:name,:type
106
+ def initialize signal=nil,direction=nil,name=nil,type=nil
107
+ @signal,@direction,@name,@type=signal,direction,name,type
108
+ end
109
+ end
110
+
111
+ class ProcedureCall < AstNode
112
+ attr_accessor :name,:actual_args
113
+ def initialize name=nil,actual_args=[]
114
+ @name,@actual_args=name,actual_args
115
+ end
116
+ end
117
+
118
+ class Architecture < AstNode
119
+ attr_accessor :name,:entity_name,:decls,:body
120
+ def initialize name=nil,entity_name=nil,decls=[],body=nil
121
+ @name,@entity_name,@decls,@body=name,entity_name,decls,body
122
+ end
123
+ end
124
+
125
+ class Body < AstNode
126
+ attr_accessor :elements
127
+ def initialize elements=[]
128
+ @elements=elements
129
+ end
130
+ end
131
+
132
+ class Process < AstNode
133
+ attr_accessor :sensitivity,:decls,:body
134
+ def initialize sensitivity=nil,decls=[],body=nil
135
+ @sensitivity,@decls,@body=sensitivity,decls,body
136
+ end
137
+ end
138
+
139
+ class Sensitivity < AstNode
140
+ attr_accessor :elements
141
+ def initialize elements=[]
142
+ @elements=elements
143
+ end
144
+ end
145
+
146
+ class EntityInstance < AstNode
147
+ attr_accessor :full_name,:arch_name,:generic_map,:port_map
148
+ def initialize full_name=nil,arch_name=nil,generic_map=nil,port_map=nil
149
+ @full_name,@arch_name,@generic_map,@port_map=full_name,arch_name,generic_map,port_map
150
+ end
151
+ end
152
+
153
+ class ComponentDecl < AstNode
154
+ attr_accessor :name,:generics,:ports
155
+ def initialize name=nil,generics=[],ports=[]
156
+ @name,@generics,@ports=name,generics,ports
157
+ end
158
+ end
159
+
160
+ class ComponentInstance < AstNode
161
+ attr_accessor :name,:generic_map,:port_map
162
+ def initialize name=nil,generic_map=nil,port_map=nil
163
+ @name,@generic_map,@port_map=name,generic_map,port_map
164
+ end
165
+ end
166
+
167
+ class PortMap < AstNode
168
+ attr_accessor :elements
169
+ def initialize elements=[]
170
+ @elements=elements
171
+ end
172
+ end
173
+
174
+ class GenericMap < AstNode
175
+ attr_accessor :elements
176
+ def initialize elements=[]
177
+ @elements=elements
178
+ end
179
+ end
180
+
181
+ class Map < AstNode
182
+ attr_accessor :lhs,:rhs
183
+ def initialize lhs=nil,rhs=nil
184
+ @lhs,@rhs=lhs,rhs
185
+ end
186
+ end
187
+
188
+ class AttributeDecl < AstNode
189
+ attr_accessor :name,:type
190
+ def initialize name=nil,type=nil
191
+ @name,@type=name,type
192
+ end
193
+ end
194
+
195
+ class AttributeSpec < AstNode
196
+ attr_accessor :name,:entity_spec,:expr
197
+ def initialize name=nil,entity_spec=nil,expr=nil
198
+ @name,@entity_spec,@expr=name,entity_spec,expr
199
+ end
200
+ end
201
+
202
+ class EntitySpec < AstNode
203
+ attr_accessor :elements,:entity_class
204
+ def initialize elements=[],entity_class=nil
205
+ @elements,@entity_class=elements,entity_class
206
+ end
207
+ end
208
+
209
+ class SigAssign < AstNode
210
+ attr_accessor :lhs,:rhs
211
+ def initialize lhs=nil,rhs=nil
212
+ @lhs,@rhs=lhs,rhs
213
+ end
214
+ end
215
+
216
+ class VarAssign < AstNode
217
+ attr_accessor :lhs,:rhs
218
+ def initialize lhs=nil,rhs=nil
219
+ @lhs,@rhs=lhs,rhs
220
+ end
221
+ end
222
+
223
+ class Wait < AstNode
224
+ attr_accessor :until_,:for_
225
+ def initialize until_=nil,for_=nil
226
+ @until_,@for_=until_,for_
227
+ end
228
+ end
229
+
230
+ class If < AstNode
231
+ attr_accessor :cond,:body,:elsifs,:else_
232
+ def initialize cond=nil,body=nil,elsifs=[],else_=nil
233
+ @cond,@body,@elsifs,@else_=cond,body,elsifs,else_
234
+ end
235
+ end
236
+
237
+ class Elsif < AstNode
238
+ attr_accessor :cond,:body
239
+ def initialize cond=nil,body=nil
240
+ @cond,@body=cond,body
241
+ end
242
+ end
243
+
244
+ class Else < AstNode
245
+ attr_accessor :body
246
+ def initialize body=nil
247
+ @body=body
248
+ end
249
+ end
250
+
251
+ class Case < AstNode
252
+ attr_accessor :expr,:whens
253
+ def initialize expr=nil,whens=[]
254
+ @expr,@whens=expr,whens
255
+ end
256
+ end
257
+
258
+ class CaseWhen < AstNode
259
+ attr_accessor :expr,:body
260
+ def initialize expr=nil,body=nil
261
+ @expr,@body=expr,body
262
+ end
263
+ end
264
+
265
+ class Alternative < AstNode
266
+ attr_accessor :elements
267
+ def initialize elements=[]
268
+ @elements=elements
269
+ end
270
+ end
271
+
272
+ class NullStmt < AstNode
273
+ attr_accessor :dummy
274
+ def initialize dummy=nil
275
+ @dummy=dummy
276
+ end
277
+ end
278
+
279
+ class Assert < AstNode
280
+ attr_accessor :cond,:report,:severity
281
+ def initialize cond=nil,report=nil,severity=nil
282
+ @cond,@report,@severity=cond,report,severity
283
+ end
284
+ end
285
+
286
+ class Report < AstNode
287
+ attr_accessor :expr,:severity
288
+ def initialize expr=nil,severity=nil
289
+ @expr,@severity=expr,severity
290
+ end
291
+ end
292
+
293
+ class Severity < AstNode
294
+ attr_accessor :type
295
+ def initialize type=nil
296
+ @type=type
297
+ end
298
+ end
299
+
300
+ class Return < AstNode
301
+ attr_accessor :expr
302
+ def initialize expr=nil
303
+ @expr=expr
304
+ end
305
+ end
306
+
307
+ class WithSelect < AstNode
308
+ attr_accessor :with_expr,:assigned,:selected_whens
309
+ def initialize with_expr=nil,assigned=nil,selected_whens=[]
310
+ @with_expr,@assigned,@selected_whens=with_expr,assigned,selected_whens
311
+ end
312
+ end
313
+
314
+ class SelectedWhen < AstNode
315
+ attr_accessor :lhs,:rhs
316
+ def initialize lhs=nil,rhs=nil
317
+ @lhs,@rhs=lhs,rhs
318
+ end
319
+ end
320
+
321
+ class IfGenerate < AstNode
322
+ attr_accessor :cond,:body
323
+ def initialize cond=nil,body=nil
324
+ @cond,@body=cond,body
325
+ end
326
+ end
327
+
328
+ class ForGenerate < AstNode
329
+ attr_accessor :index,:range,:decls,:body
330
+ def initialize index=nil,range=nil,decls=[],body=nil
331
+ @index,@range,@decls,@body=index,range,decls,body
332
+ end
333
+ end
334
+
335
+ class IsolatedRange < AstNode
336
+ attr_accessor :lhs,:rhs
337
+ def initialize lhs=nil,rhs=nil
338
+ @lhs,@rhs=lhs,rhs
339
+ end
340
+ end
341
+
342
+ class TypeDecl < AstNode
343
+ attr_accessor :name,:spec
344
+ def initialize name=nil,spec=nil
345
+ @name,@spec=name,spec
346
+ end
347
+ end
348
+
349
+ class SubTypeDecl < AstNode
350
+ attr_accessor :name,:spec
351
+ def initialize name=nil,spec=nil
352
+ @name,@spec=name,spec
353
+ end
354
+ end
355
+
356
+ class EnumDecl < AstNode
357
+ attr_accessor :elements
358
+ def initialize elements=[]
359
+ @elements=elements
360
+ end
361
+ end
362
+
363
+ class RecordDecl < AstNode
364
+ attr_accessor :elements
365
+ def initialize elements=[]
366
+ @elements=elements
367
+ end
368
+ end
369
+
370
+ class RecordItem < AstNode
371
+ attr_accessor :name,:type
372
+ def initialize name=nil,type=nil
373
+ @name,@type=name,type
374
+ end
375
+ end
376
+
377
+ class ArrayDecl < AstNode
378
+ attr_accessor :dim_decls,:type
379
+ def initialize dim_decls=[],type=nil
380
+ @dim_decls,@type=dim_decls,type
381
+ end
382
+ end
383
+
384
+ class ArrayDimDecl < AstNode
385
+ attr_accessor :type_mark,:range
386
+ def initialize type_mark=nil,range=nil
387
+ @type_mark,@range=type_mark,range
388
+ end
389
+ end
390
+
391
+ class Constant < AstNode
392
+ attr_accessor :name,:type,:expr
393
+ def initialize name=nil,type=nil,expr=nil
394
+ @name,@type,@expr=name,type,expr
395
+ end
396
+ end
397
+
398
+ class Signal < AstNode
399
+ attr_accessor :name,:type,:init
400
+ def initialize name=nil,type=nil,init=nil
401
+ @name,@type,@init=name,type,init
402
+ end
403
+ end
404
+
405
+ class Variable < AstNode
406
+ attr_accessor :name,:type,:init
407
+ def initialize name=nil,type=nil,init=nil
408
+ @name,@type,@init=name,type,init
409
+ end
410
+ end
411
+
412
+ class Alias < AstNode
413
+ attr_accessor :designator,:type,:name,:signature
414
+ def initialize designator=nil,type=nil,name=nil,signature=nil
415
+ @designator,@type,@name,@signature=designator,type,name,signature
416
+ end
417
+ end
418
+
419
+ class StdType < AstNode
420
+ attr_accessor :ident
421
+ def initialize ident=nil
422
+ @ident=ident
423
+ end
424
+ end
425
+
426
+ class RangedType < AstNode
427
+ attr_accessor :type,:range
428
+ def initialize type=nil,range=nil
429
+ @type,@range=type,range
430
+ end
431
+ end
432
+
433
+ class NamedType < AstNode
434
+ attr_accessor :ident
435
+ def initialize ident=nil
436
+ @ident=ident
437
+ end
438
+ end
439
+
440
+ class ArrayType < AstNode
441
+ attr_accessor :name,:discrete_ranges
442
+ def initialize name=nil,discrete_ranges=[]
443
+ @name,@discrete_ranges=name,discrete_ranges
444
+ end
445
+ end
446
+
447
+ class DiscreteRange < AstNode
448
+ attr_accessor :lhs,:dir,:rhs
449
+ def initialize lhs=nil,dir=nil,rhs=nil
450
+ @lhs,@dir,@rhs=lhs,dir,rhs
451
+ end
452
+ end
453
+
454
+ class Parenth < AstNode
455
+ attr_accessor :expr
456
+ def initialize expr=nil
457
+ @expr=expr
458
+ end
459
+ end
460
+
461
+ class Waveform < AstNode
462
+ attr_accessor :elements
463
+ def initialize elements=[]
464
+ @elements=elements
465
+ end
466
+ end
467
+
468
+ class CondExpr < AstNode
469
+ attr_accessor :whens,:else_
470
+ def initialize whens=[],else_=nil
471
+ @whens,@else_=whens,else_
472
+ end
473
+ end
474
+
475
+ class When < AstNode
476
+ attr_accessor :expr,:cond
477
+ def initialize expr=nil,cond=nil
478
+ @expr,@cond=expr,cond
479
+ end
480
+ end
481
+
482
+ class Binary < AstNode
483
+ attr_accessor :lhs,:op,:rhs
484
+ def initialize lhs=nil,op=nil,rhs=nil
485
+ @lhs,@op,@rhs=lhs,op,rhs
486
+ end
487
+ end
488
+
489
+ class After < AstNode
490
+ attr_accessor :lhs,:rhs
491
+ def initialize lhs=nil,rhs=nil
492
+ @lhs,@rhs=lhs,rhs
493
+ end
494
+ end
495
+
496
+ class Timed < AstNode
497
+ attr_accessor :lhs,:rhs
498
+ def initialize lhs=nil,rhs=nil
499
+ @lhs,@rhs=lhs,rhs
500
+ end
501
+ end
502
+
503
+ class Attributed < AstNode
504
+ attr_accessor :lhs,:rhs
505
+ def initialize lhs=nil,rhs=nil
506
+ @lhs,@rhs=lhs,rhs
507
+ end
508
+ end
509
+
510
+ class Concat < AstNode
511
+ attr_accessor :lhs,:rhs
512
+ def initialize lhs=nil,rhs=nil
513
+ @lhs,@rhs=lhs,rhs
514
+ end
515
+ end
516
+
517
+ class Qualified < AstNode
518
+ attr_accessor :lhs,:rhs
519
+ def initialize lhs=nil,rhs=nil
520
+ @lhs,@rhs=lhs,rhs
521
+ end
522
+ end
523
+
524
+ class Sliced < AstNode
525
+ attr_accessor :expr,:lhs,:dir,:rhs
526
+ def initialize expr=nil,lhs=nil,dir=nil,rhs=nil
527
+ @expr,@lhs,@dir,@rhs=expr,lhs,dir,rhs
528
+ end
529
+ end
530
+
531
+ class Ident < AstNode
532
+ attr_accessor :tok
533
+ def initialize tok=nil
534
+ @tok=tok
535
+ end
536
+ end
537
+
538
+ class IntLit < AstNode
539
+ attr_accessor :tok
540
+ def initialize tok=nil
541
+ @tok=tok
542
+ end
543
+ end
544
+
545
+ class CharLit < AstNode
546
+ attr_accessor :tok
547
+ def initialize tok=nil
548
+ @tok=tok
549
+ end
550
+ end
551
+
552
+ class BoolLit < AstNode
553
+ attr_accessor :tok
554
+ def initialize tok=nil
555
+ @tok=tok
556
+ end
557
+ end
558
+
559
+ class SelectedName < AstNode
560
+ attr_accessor :lhs,:rhs
561
+ def initialize lhs=nil,rhs=nil
562
+ @lhs,@rhs=lhs,rhs
563
+ end
564
+ end
565
+
566
+ class FuncProtoDecl < AstNode
567
+ attr_accessor :name,:formal_args,:return_type
568
+ def initialize name=nil,formal_args=[],return_type=nil
569
+ @name,@formal_args,@return_type=name,formal_args,return_type
570
+ end
571
+ end
572
+
573
+ class FuncDecl < AstNode
574
+ attr_accessor :name,:formal_args,:return_type,:decls,:body
575
+ def initialize name=nil,formal_args=[],return_type=nil,decls=nil,body=nil
576
+ @name,@formal_args,@return_type,@decls,@body=name,formal_args,return_type,decls,body
577
+ end
578
+ end
579
+
580
+ class FuncCall < AstNode
581
+ attr_accessor :name,:actual_args
582
+ def initialize name=nil,actual_args=[]
583
+ @name,@actual_args=name,actual_args
584
+ end
585
+ end
586
+
587
+ class Aggregate < AstNode
588
+ attr_accessor :elements
589
+ def initialize elements=[]
590
+ @elements=elements
591
+ end
592
+ end
593
+
594
+ class Label < AstNode
595
+ attr_accessor :ident
596
+ def initialize ident=nil
597
+ @ident=ident
598
+ end
599
+ end
600
+
601
+ class Assoc < AstNode
602
+ attr_accessor :lhs,:rhs
603
+ def initialize lhs=nil,rhs=nil
604
+ @lhs,@rhs=lhs,rhs
605
+ end
606
+ end
607
+ end # Vertigo