Class: Calculator

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeCalculator

Returns a new instance of Calculator.



7
8
9
10
11
# File 'lib/calculator.rb', line 7

def initialize()
  @memory = 0
  @map = Hash.new(0)
  @vblis = ""
end

Instance Attribute Details

#memoryObject

Returns the value of attribute memory.



5
6
7
# File 'lib/calculator.rb', line 5

def memory
  @memory
end

Instance Method Details

#ArgNoPri(varia) ⇒ Object



52
53
54
55
56
57
58
59
# File 'lib/calculator.rb', line 52

def ArgNoPri(varia)
  pr = varia.index('=') 
  if pr != nil then
    var = varia[0,pr]
    val = varia[pr+1,varia.length].to_i
    $calc.guardarAE(var,val)
  end
end

#ArgPri(varia) ⇒ Object



41
42
43
44
45
46
47
48
49
50
# File 'lib/calculator.rb', line 41

def ArgPri(varia)
  pr = varia.index('=') 
  if pr != nil then
    var = varia[0,pr]
    if @map.has_key?(var) == false then
      val = varia[pr+1,varia.length].to_i
      $calc.guardarAE(var,val)
    end
  end
end

#EnvVarObject



31
32
33
34
35
36
37
38
39
# File 'lib/calculator.rb', line 31

def EnvVar
  ENV.each do |k,v|
    if k.match("CALCVAR") then
      var = k[7,k.length]
      val = v.to_i
      $calc.guardarAE(var,val)
    end
  end
end

#eval(expr) ⇒ Object



13
14
15
16
# File 'lib/calculator.rb', line 13

def eval(expr)
  parser = Parser.new(expr)
  parser.parse()
end

#guardar(var, val) ⇒ Object



18
19
20
21
# File 'lib/calculator.rb', line 18

def guardar(var,val)
  @map[var] = val
  @vblis += var + " <- " + val.to_s + ", "
end

#guardarAE(var, val) ⇒ Object



23
24
25
# File 'lib/calculator.rb', line 23

def guardarAE(var,val)
   @map[var] = val
end

#imprimir(line, result) ⇒ Object



61
62
63
64
65
66
67
68
69
# File 'lib/calculator.rb', line 61

def imprimir(line,result)
  if line.include? "=" then
    copva = @vblis.chop.chop
    puts "=> " + result.to_s + " [" + copva + "]"
    @vblis = ""
  else
    puts "=> " + result.to_s
  end
end

#llamar(var) ⇒ Object



27
28
29
# File 'lib/calculator.rb', line 27

def llamar(var)
  return @map[var]
end