kalc 0.5.7.1 → 0.5.8
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/kalc/grammar.rb +1 -1
- data/lib/kalc/version.rb +1 -1
- data/spec/interpreter_spec.rb +16 -0
- metadata +2 -2
data/lib/kalc/grammar.rb
CHANGED
@@ -122,7 +122,7 @@ class Kalc::Grammar < Parslet::Parser
|
|
122
122
|
|
123
123
|
# Should look like 'Name'
|
124
124
|
rule(:variable) {
|
125
|
-
identifier | (str("'") >> identifier >> str("'")) >> spaces?
|
125
|
+
identifier | (str("'") >> spaces? >> identifier.repeat >> str("'")) >> spaces?
|
126
126
|
}
|
127
127
|
|
128
128
|
# Does not self-evaluate
|
data/lib/kalc/version.rb
CHANGED
data/spec/interpreter_spec.rb
CHANGED
@@ -25,6 +25,22 @@ describe Kalc::Interpreter do
|
|
25
25
|
|
26
26
|
it { evaluate("10 >= 10").should == true }
|
27
27
|
|
28
|
+
it "should be able to load variables" do
|
29
|
+
evaluate("a = 1; 1 + a").should == 2
|
30
|
+
evaluate("a = 1; b = 2; 1 + b").should == 3
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should be able to load single quoted variables" do
|
34
|
+
evaluate("'a' = 1; 1 + 'a'").should == 2
|
35
|
+
evaluate("'a' = 1; 'b' = 2; 'b' + 'a'").should == 3
|
36
|
+
|
37
|
+
evaluate("'a b' = 1; 'a b' + 1").should == 2
|
38
|
+
end
|
39
|
+
|
40
|
+
it { evaluate("((75.0)*(25.0))+((125.0)*(25.0))+((150.0)*(25.0))+((250.0)*(25.0))").should == 15000 }
|
41
|
+
|
42
|
+
it { evaluate("(((40.0)/1000*(4380.0)*(200.0))-((40.0)/1000*(4380.0)*((((75.0)*(25.0))+((125.0)*(25.0))+((150.0)*(25.0))+((250.0)*(25.0)))/(10.0)/(40.0)/(0.8))))*(0.05)").should == 1341.375 }
|
43
|
+
|
28
44
|
private
|
29
45
|
def evaluate(expression)
|
30
46
|
g = @grammar.parse(expression)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kalc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04-
|
12
|
+
date: 2012-04-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|