class Ikra::Symbolic::SingleInput

A single input value produced by one command.

Public Class Methods

new(command:, pattern:) click to toggle source
Calls superclass method Ikra::Symbolic::Input::new
# File lib/symbolic/input.rb, line 34
def initialize(command:, pattern:)
    super(pattern: pattern)

    @command = command
end

Public Instance Methods

accept(visitor) click to toggle source
# File lib/symbolic/input_visitor.rb, line 13
def accept(visitor)
    visitor.visit_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 10
def get_parameters(parent_command:, start_eat_params_offset: 0)
    return [Translator::Variable.new(
        name: parent_command.block_parameter_names[start_eat_params_offset],
        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 10
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)

    parameters = [Translator::Variable.new(
        name: parent_command.block_parameter_names[start_eat_params_offset],
        type: input_command_translation_result.result_type)]

    return Translator::InputTranslationResult.new(
        parameters: parameters,
        command_translation_result: input_command_translation_result)
end