Преглед изворни кода

Evaluate identifier referents

master
Dylan Baker пре 5 година
родитељ
комит
0b46e6cb5a
4 измењених фајлова са 4 додато и 4 уклоњено
  1. 1
    1
      lib/chervil/ast/identifier.rb
  2. 1
    1
      spec/ast/function_spec.rb
  3. 1
    1
      spec/ast/identifier_spec.rb
  4. 1
    1
      spec/interpreter_spec.rb

+ 1
- 1
lib/chervil/ast/identifier.rb Прегледај датотеку

11
     end
11
     end
12
 
12
 
13
     def evaluate(env)
13
     def evaluate(env)
14
-      env.get(@name)
14
+      env.get(@name).evaluate(env)
15
     end
15
     end
16
   end
16
   end
17
 end
17
 end

+ 1
- 1
spec/ast/function_spec.rb Прегледај датотеку

17
             )
17
             )
18
           ],
18
           ],
19
         ).call(
19
         ).call(
20
-          [5.0]
20
+          [AST::Number.new(5.0)]
21
         )
21
         )
22
       ).to eq(25.0)
22
       ).to eq(25.0)
23
     end
23
     end

+ 1
- 1
spec/ast/identifier_spec.rb Прегледај датотеку

6
       value = AST::Number.new(5.0)
6
       value = AST::Number.new(5.0)
7
       definition = AST::Definition.new(identifier, value)
7
       definition = AST::Definition.new(identifier, value)
8
       definition.evaluate(env)
8
       definition.evaluate(env)
9
-      expect(identifier.evaluate(env)).to eq(value)
9
+      expect(identifier.evaluate(env)).to eq(5.0)
10
     end
10
     end
11
   end
11
   end
12
 end
12
 end

+ 1
- 1
spec/interpreter_spec.rb Прегледај датотеку

10
       env = Env.new
10
       env = Env.new
11
       interpret('(define x 5)', env)
11
       interpret('(define x 5)', env)
12
       expect(env.get("x")).to eq(AST::Number.new(5.0))
12
       expect(env.get("x")).to eq(AST::Number.new(5.0))
13
-      expect(interpret('x', env).first).to eq(AST::Number.new(5.0))
13
+      expect(interpret('x', env).first).to eq(5.0)
14
     end
14
     end
15
   end
15
   end
16
 end
16
 end

Loading…
Откажи
Сачувај