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