Class: Rucc::IntEvaluator

Inherits:
Object
  • Object
show all
Defined in:
lib/rucc/int_evaluator.rb

Class Method Summary collapse

Class Method Details

.eval(node) ⇒ <Integer, (Node, NilClass)>

Parameters:

Returns:

  • (<Integer, (Node, NilClass)>)


6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/rucc/int_evaluator.rb', line 6

def eval(node)
  i, addr = do_eval(node)

  case i
  when TrueClass
    r = 1
  when FalseClass
    r = 0
  when Integer
    r = i
  else
    raise "Integer expression expected, but got #{node}"
  end

  return r, addr
end