class Ikra::Symbolic::StencilSingleInput
Attributes
offsets[R]
out_of_bounds_value[R]
Public Class Methods
new(command:, pattern:, offsets:, out_of_bounds_value:)
click to toggle source
Calls superclass method
Ikra::Symbolic::Input::new
# File lib/symbolic/input.rb, line 65 def initialize(command:, pattern:, offsets:, out_of_bounds_value:) super(pattern: pattern) @command = command @offsets = offsets @out_of_bounds_value = out_of_bounds_value end
Public Instance Methods
==(other)
click to toggle source
Calls superclass method
Ikra::Symbolic::Input#==
# File lib/symbolic/input.rb, line 73 def ==(other) return super(other) && offsets == other.offsets && out_of_bounds_value == other.out_of_bounds_value end
accept(visitor)
click to toggle source
# File lib/symbolic/input_visitor.rb, line 25 def accept(visitor) visitor.visit_stencil_single_input(self, pattern: pattern) end
get_parameters(parent_command:, start_eat_params_offset: 0)
click to toggle source
# File lib/types/inference/input_inference.rb, line 42 def get_parameters(parent_command:, start_eat_params_offset: 0) # Pass separate parameters # Count number of parameters num_parameters = parent_command.offsets.size # Take return type from previous computation parameters = [] for index in start_eat_params_offset...(start_eat_params_offset + num_parameters) parameters.push(Translator::Variable.new( name: parent_command.block_parameter_names[index], type: command.result_type)) end return parameters end
translate_input(parent_command:, command_translator:, start_eat_params_offset: 0)
click to toggle source
# File lib/translator/input_translator.rb, line 91 def translate_input(parent_command:, command_translator:, start_eat_params_offset: 0) # Pass separate parameters # Translate input using visitor input_command_translation_result = command_translator.translate_input(self) # Count number of parameters num_parameters = parent_command.offsets.size # Take return type from previous computation parameters = [] for index in start_eat_params_offset...(start_eat_params_offset + num_parameters) parameters.push(Translator::Variable.new( name: parent_command.block_parameter_names[index], type: input_command_translation_result.result_type)) end return Translator::InputTranslationResult.new( parameters: parameters, command_translation_result: input_command_translation_result) end