kalc 0.5.3 → 0.5.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -73,6 +73,18 @@ module Kalc
73
73
  end
74
74
  end
75
75
 
76
+ class ParenExpression
77
+ attr_reader :value
78
+
79
+ def initialize(value)
80
+ @value = value
81
+ end
82
+
83
+ def eval(context)
84
+ @value.eval(context)
85
+ end
86
+ end
87
+
76
88
  class Ops
77
89
  attr_reader :left
78
90
  attr_reader :ops
@@ -148,7 +148,7 @@ class Kalc::Grammar < Parslet::Parser
148
148
  # Atoms can self-evaluate
149
149
  # This where the grammar starts
150
150
  rule(:atom) {
151
- boolean | variable.as(:variable) | number | string | paren_expression
151
+ paren_expression.as(:paren_expression) | boolean | variable.as(:variable) | number | string
152
152
  }
153
153
 
154
154
  # (1 + 2)
@@ -77,6 +77,10 @@ module Kalc
77
77
  []
78
78
  }
79
79
 
80
+ rule(:paren_expression => simple(:paren_expression)) {
81
+ Ast::ParenExpression.new(paren_expression)
82
+ }
83
+
80
84
  rule(:function_call => {:name => simple(:name),
81
85
  :variable_list => sequence(:variable_list)}) {
82
86
  Ast::FunctionCall.new(name, variable_list)
@@ -1,3 +1,3 @@
1
1
  module Kalc
2
- VERSION = "0.5.3"
2
+ VERSION = "0.5.4"
3
3
  end
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.3
4
+ version: 0.5.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: