瀏覽代碼

Evaluate numbers

master
Dylan Baker 6 年之前
父節點
當前提交
7c02e3cfe9
共有 4 個檔案被更改,包括 23 行新增0 行删除
  1. 1
    0
      lib/chervil.rb
  2. 4
    0
      lib/chervil/ast/number.rb
  3. 11
    0
      lib/chervil/interpreter.rb
  4. 7
    0
      spec/ast/number_spec.rb

+ 1
- 0
lib/chervil.rb 查看文件

@@ -1,4 +1,5 @@
1 1
 require 'chervil/ast'
2
+require 'chervil/interpreter'
2 3
 require 'chervil/lexer'
3 4
 require 'chervil/parser'
4 5
 require 'chervil/token'

+ 4
- 0
lib/chervil/ast/number.rb 查看文件

@@ -6,6 +6,10 @@ module Chervil::AST
6 6
       @value = value
7 7
     end
8 8
 
9
+    def evaluate
10
+      @value
11
+    end
12
+
9 13
     def ==(other)
10 14
       @value == other.value
11 15
     end

+ 11
- 0
lib/chervil/interpreter.rb 查看文件

@@ -0,0 +1,11 @@
1
+module Chervil
2
+  class Interpreter
3
+    def initialize(tree)
4
+      @tree = tree
5
+    end
6
+
7
+    def interpret
8
+      @tree.map(&:evaluate)
9
+    end
10
+  end
11
+end

+ 7
- 0
spec/ast/number_spec.rb 查看文件

@@ -0,0 +1,7 @@
1
+module Chervil::AST
2
+  RSpec.describe Number do
3
+    it 'evaluates' do
4
+      expect(Number.new(5.0).evaluate).to eq(5.0)
5
+    end
6
+  end
7
+end

Loading…
取消
儲存