class Ikra::Symbolic::ReduceInput
Similar to [SingleInput], but two values are passed to the block.
Public Instance Methods
accept(visitor)
click to toggle source
# File lib/symbolic/input_visitor.rb, line 31 def accept(visitor) visitor.visit_reduce_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 18 def get_parameters(parent_command:, start_eat_params_offset: 0) # TODO: Fix type inference (sometimes type has to be expanded) return [ Translator::Variable.new( name: parent_command.block_parameter_names[start_eat_params_offset], type: command.result_type), Translator::Variable.new( name: parent_command.block_parameter_names[start_eat_params_offset + 1], type: command.result_type)] end
translate_input(parent_command:, command_translator:, start_eat_params_offset: 0)
click to toggle source
# File lib/translator/input_translator.rb, line 25 def translate_input(parent_command:, command_translator:, start_eat_params_offset: 0) # Translate input using visitor input_command_translation_result = command_translator.translate_input(self) # TODO: Fix type inference (sometimes type has to be expanded) parameters = [ Translator::Variable.new( name: parent_command.block_parameter_names[start_eat_params_offset], type: input_command_translation_result.result_type), Translator::Variable.new( name: parent_command.block_parameter_names[start_eat_params_offset + 1], type: input_command_translation_result.result_type)] return Translator::InputTranslationResult.new( parameters: parameters, command_translation_result: input_command_translation_result) end