kalc 0.5.3 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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: