Sha256: b0f705b5f64d96cc4c9522511e9dddbe261542786c651f1fd4bed5972103d254

Contents?: true

Size: 727 Bytes

Versions: 3

Compression:

Stored size: 727 Bytes

Contents

# frozen_string_literal: true

require_relative 'statement'

module Basic101

  class NextStatement < Statement

    def initialize(reference)
      @reference = reference
    end

    def execute(runtime) 
      for_statement = if @reference.nil?
                        runtime.for_stack.top
                      else
                        runtime.for_stack[@reference]
                      end
      raise NextWithoutFor unless for_statement
      for_statement.increment(runtime)
      if for_statement.done?(runtime)
        for_statement.delete_from_stack(runtime)
      else
        for_statement.goto_following_statement(runtime)
      end
    end

    protected

    def state
      @reference
    end

  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
basic101-1.0.2 lib/basic101/next_statement.rb
basic101-1.0.1 lib/basic101/next_statement.rb
basic101-1.0.0 lib/basic101/next_statement.rb