class RgGen::SystemVerilog::Common::Utility::FunctionDefinition
Public Instance Methods
return_type(**attributes)
click to toggle source
# File lib/rggen/systemverilog/common/utility/function_definition.rb, line 12 def return_type(**attributes) attributes.size.zero? || ( @return_type = DataObject.new(:variable, **attributes) ) @return_type end
Private Instance Methods
argument_declarations(code)
click to toggle source
# File lib/rggen/systemverilog/common/utility/function_definition.rb, line 42 def argument_declarations(code) wrap(code, '(', ')') do add_declarations_to_header(code, Array(arguments)) end end
function_header_begin(code)
click to toggle source
# File lib/rggen/systemverilog/common/utility/function_definition.rb, line 29 def function_header_begin(code) code << 'function' end
function_header_end(code)
click to toggle source
# File lib/rggen/systemverilog/common/utility/function_definition.rb, line 48 def function_header_end(code) code << semicolon end
function_name(code)
click to toggle source
# File lib/rggen/systemverilog/common/utility/function_definition.rb, line 38 def function_name(code) code << space << name end
header_code(code)
click to toggle source
# File lib/rggen/systemverilog/common/utility/function_definition.rb, line 21 def header_code(code) function_header_begin(code) return_type_declaration(code) function_name(code) argument_declarations(code) function_header_end(code) end
return_type_declaration(code)
click to toggle source
# File lib/rggen/systemverilog/common/utility/function_definition.rb, line 33 def return_type_declaration(code) return unless @return_type code << [space, return_type.declaration] end