kalc 0.5.7 → 0.5.7.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/kalc/ast.rb +19 -0
- data/lib/kalc/grammar.rb +1 -0
- data/lib/kalc/transform.rb +4 -0
- data/lib/kalc/version.rb +1 -1
- metadata +1 -1
data/lib/kalc/ast.rb
CHANGED
@@ -49,6 +49,25 @@ module Kalc
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
|
+
# Does nothing. For compat.
|
53
|
+
class Positive
|
54
|
+
attr_reader :value
|
55
|
+
|
56
|
+
def initialize(value)
|
57
|
+
@value = value
|
58
|
+
end
|
59
|
+
|
60
|
+
def eval(context)
|
61
|
+
begin
|
62
|
+
+(@value.eval(context))
|
63
|
+
rescue
|
64
|
+
@value.eval(context)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
|
70
|
+
|
52
71
|
class BooleanValue
|
53
72
|
attr_reader :value
|
54
73
|
|
data/lib/kalc/grammar.rb
CHANGED
@@ -166,6 +166,7 @@ class Kalc::Grammar < Parslet::Parser
|
|
166
166
|
# AND(1, 2, ...)
|
167
167
|
rule(:function_call_expression) {
|
168
168
|
(identifier.as(:name) >> paren_variable_list.as(:variable_list)).as(:function_call) |
|
169
|
+
(str('+') >> non_ops_expression).as(:positive) |
|
169
170
|
(str('-') >> non_ops_expression).as(:negative) | non_ops_expression
|
170
171
|
}
|
171
172
|
|
data/lib/kalc/transform.rb
CHANGED
data/lib/kalc/version.rb
CHANGED