Class: Basic101::PrintStatement

Inherits:
Statement show all
Defined in:
lib/basic101/print_statement.rb

Instance Attribute Summary

Attributes inherited from Statement

#index, #line

Instance Method Summary collapse

Methods inherited from Statement

#data_items, #exec, #line_number, #raise_error_with_line_number

Methods included from Identity

#==

Constructor Details

#initialize(args = []) ⇒ PrintStatement

Returns a new instance of PrintStatement.



9
10
11
# File 'lib/basic101/print_statement.rb', line 9

def initialize(args = [])
  @args = args
end

Instance Method Details

#execute(runtime) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/basic101/print_statement.rb', line 13

def execute(runtime)
  if @args.empty?
    runtime.output.print "\n"
  else
    arg_values = @args.map do |arg|
      arg.eval(runtime)
    end
    arg_values.each do |value| 
     value.print_string runtime.output
    end
    arg_values.last.print_new_line runtime.output
  end
end