lisp-interpreter 0.3.3 → 0.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: '04861fa302be02832ee0c9046fd0cef4fcd26b23'
4
- data.tar.gz: c9321964af29b7aba0e0cb7b9682d68f79795b68
3
+ metadata.gz: b6584d9c2b08667819afb7881eb05cb0bf48ef8e
4
+ data.tar.gz: 925a17053ce726096af39feca3c3323ba1c2c522
5
5
  SHA512:
6
- metadata.gz: c33ff37553a332339d73ec5120cd56922126f481d8d7aaa3ae1bd68b7919ce542e6e6bc60e57231ac43e9078fe4cd265aaedd0f54b25f5575023508519eef63b
7
- data.tar.gz: 496f3e3511eb5e7c478c49d3e42b24586a49bb90dd001367fcf7813cc3399cda2c8cc123e47eb84f0cce1f77b44791f806f803f5058aebf454fd3a3b9905679b
6
+ metadata.gz: f77bb6673b06e2ade1e66b9b6ecb505cc22bb61e9412082fdd73f1edc17f0286753c3cbf199807fd6d8b62d34960e494c488a5e95885036e1c076f8a6f81787c
7
+ data.tar.gz: 6569b82688035c53ed943e8955b2cde78aadedb648d2f7d62a45eae9d2138db314af86f5429ea06291beabb0a845f5c31b4b4bf4d9d318bf38ce14299e9cf920
@@ -28,12 +28,6 @@ module SchemeChecker
28
28
  false
29
29
  end
30
30
 
31
- def check_instance_var(var)
32
- return false if var.is_a? Proc
33
- return false unless valid_var_name var
34
- instance_variable_defined?("@#{var}")
35
- end
36
-
37
31
  def check_for_symbol(var)
38
32
  var = var.join('') if var.is_a? Array
39
33
  return true if var == '#\space'
@@ -42,4 +36,10 @@ module SchemeChecker
42
36
  return true if is_instance_var && (check_for_character get_var var)
43
37
  false
44
38
  end
39
+
40
+ def check_instance_var(var)
41
+ return false if var.is_a? Proc
42
+ return false unless valid_var_name var
43
+ @procs.key? var.to_s
44
+ end
45
45
  end
@@ -163,7 +163,7 @@ module FunctionalSchemeHelper
163
163
  def define_var(var, values)
164
164
  raise arg_err_build 1, values.size if values.size != 1
165
165
  raise 'Invalid variable name' unless valid_var_name var
166
- set_var_helper var, values[0]
166
+ set_var var, values[0]
167
167
  end
168
168
 
169
169
  def set_values_define(other, params, args)
@@ -61,30 +61,20 @@ module TokenizerHelper
61
61
 
62
62
  def set_reserved_keywords
63
63
  @reserved.each do |key, value|
64
- instance_variable_set("@#{key}", value)
64
+ @procs[key.to_s] = value
65
65
  end
66
66
  end
67
67
 
68
- def set_var_helper(var, value)
68
+ def set_var(var, value)
69
+ raise 'Cannot predefine reserved keyword' if @reserved.key? var.to_s
69
70
  valid = (valid_var value.to_s) || (value.is_a? Proc)
70
71
  raise 'Invalid parameter' unless valid
71
- if value.is_a? Proc
72
- remove_instance_variable("@#{var}") if check_instance_var var
73
- @procs[var] = value if value.is_a? Proc
74
- else
75
- @procs.delete var
76
- set_var var, value
77
- end
78
- end
79
-
80
- def set_var(var, value)
81
- raise 'Cannot predefine reserved keyword' if @reserved.key? var
82
- instance_variable_set("@#{var}", value)
72
+ @procs[var] = value
83
73
  end
84
74
 
85
75
  def get_var(var)
86
76
  check = check_instance_var var
87
- return instance_variable_get("@#{var}") if check
77
+ return @procs[var.to_s] if check
88
78
  val = (predefined_method_caller [var])
89
79
  return val unless val.nil?
90
80
  valid = valid_var var
@@ -17,7 +17,8 @@ module Validator
17
17
  end
18
18
 
19
19
  def valid_var_name(var)
20
- !var.match(/^[[:alpha:]]+$/).nil?
20
+ symbols = %r{[<|<=|=|>|>=|*|\/|+|-|&|^|#|@|]}
21
+ !var.match(/[[:alpha:]]/).nil? || !var.match(symbols).nil?
21
22
  end
22
23
 
23
24
  def valid_var(var)
@@ -1,5 +1,5 @@
1
1
  module Lisp
2
2
  module Interpreter
3
- VERSION = '0.3.3'.freeze
3
+ VERSION = '0.3.4'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lisp-interpreter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zaki Petrov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-08-05 00:00:00.000000000 Z
11
+ date: 2017-08-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler