Class: TuringTarpit::Interpreter
- Inherits:
-
Object
- Object
- TuringTarpit::Interpreter
- Defined in:
- lib/turing_tarpit/interpreter.rb
Constant Summary collapse
- FORWARD_JUMP =
"["
- BACKWARD_JUMP =
"]"
- OPERATIONS =
{ "+" => :increment_cell_value, "-" => :decrement_cell_value, ">" => :increment_pointer, "<" => :decrement_pointer, "." => :output_cell_value, "," => :input_cell_value }
Instance Method Summary collapse
-
#initialize(chars) ⇒ Interpreter
constructor
A new instance of Interpreter.
- #next_operation(cell_value) ⇒ Object
Constructor Details
#initialize(chars) ⇒ Interpreter
Returns a new instance of Interpreter.
13 14 15 16 |
# File 'lib/turing_tarpit/interpreter.rb', line 13 def initialize(chars) self.chars = chars self.index = -1 end |
Instance Method Details
#next_operation(cell_value) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/turing_tarpit/interpreter.rb', line 18 def next_operation(cell_value) case next_char when FORWARD_JUMP if cell_value.zero? jump_forward else skip_while(FORWARD_JUMP) end when BACKWARD_JUMP if cell_value.zero? skip_while(BACKWARD_JUMP) else jump_back end end OPERATIONS[current_char] end |