undefined methodのエラーの直し方がわかりません。


Ruby初心者です

<http://ascii.jp/elem/000/001/255/1255878/>  
のサイトを参考に  
下記のコードを作成しました。  
ーーーーーーーーーーーーーーーーーーーーー

[code]

    require "minruby"
    def evaluate(tree)
      case tree[0]
      when "lit"
        tree[1]
      when "+"
        left  = evaluate(tree[1])
        right = evaluate(tree[2])
        left + right
      when "-"
        left  = evaluate(tree[1])
        right = evaluate(tree[2])
        left - right
      when "*"
        left  = evaluate(tree[1])
        right = evaluate(tree[2])
        left * right
      else
        left  = evaluate(tree[1])
        right = evaluate(tree[2])
        left / right
      end
    end
    str = gets
    tree = minruby_parse(str)
    answer = evaluate(tree)
    
[/code]

ーーーーーーーーーーーーーーーーーーーー  
実行結果としては

[code]

    ex013.rb:3:in `evaluate': undefined method `  case' for main:Object (NoMethodError)
    
[/code]

ということでした。

３行目にある、case文がメソッドとして見つからないという意味だと思うのですが、解決することができません。

ご教授いただけると幸いです。




インデントに使われている空白が普通の空白ではなく、EN SPACE と呼ばれる別種の空白になっているようです。  
以下のように普通の空白に置き換えると解決します。

[code]

    require "minruby"
    def evaluate(tree)
      case tree[0]
      when "lit"
        tree[1]
      when "+"
        left  = evaluate(tree[1])
        right = evaluate(tree[2])
        left + right
      when "-"
        left  = evaluate(tree[1])
        right = evaluate(tree[2])
        left - right
      when "*"
        left  = evaluate(tree[1])
        right = evaluate(tree[2])
        left * right
      else
        left  = evaluate(tree[1])
        right = evaluate(tree[2])
        left / right
      end
    end
    str = gets
    tree = minruby_parse(str)
    answer = evaluate(tree)
    
[/code]

