rubymotionlisp 0.2.2 → 1.0.0

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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +129 -2
  3. data/lib/rubylisp/atom.rb +25 -6
  4. data/lib/rubylisp/boolean.rb +9 -6
  5. data/lib/rubylisp/builtins.rb +33 -0
  6. data/lib/rubylisp/character.rb +14 -275
  7. data/lib/rubylisp/class_object.rb +56 -0
  8. data/lib/rubylisp/cons_cell.rb +50 -20
  9. data/lib/rubylisp/environment.rb +27 -0
  10. data/lib/rubylisp/environment_frame.rb +24 -6
  11. data/lib/rubylisp/eof_object.rb +26 -0
  12. data/lib/rubylisp/exception.rb +61 -61
  13. data/lib/rubylisp/ext.rb +32 -6
  14. data/lib/rubylisp/ffi_new.rb +2 -1
  15. data/lib/rubylisp/ffi_send.rb +15 -5
  16. data/lib/rubylisp/frame.rb +5 -164
  17. data/lib/rubylisp/function.rb +4 -3
  18. data/lib/rubylisp/macro.rb +13 -8
  19. data/lib/rubylisp/{object.rb → native_object.rb} +0 -15
  20. data/lib/rubylisp/number.rb +5 -0
  21. data/lib/rubylisp/parser.rb +81 -52
  22. data/lib/rubylisp/port.rb +27 -0
  23. data/lib/rubylisp/prim_alist.rb +115 -0
  24. data/lib/rubylisp/prim_assignment.rb +61 -0
  25. data/lib/rubylisp/prim_character.rb +273 -0
  26. data/lib/rubylisp/{ffi_class.rb → prim_class_object.rb} +16 -69
  27. data/lib/rubylisp/prim_environment.rb +203 -0
  28. data/lib/rubylisp/prim_equivalence.rb +93 -0
  29. data/lib/rubylisp/prim_frame.rb +166 -0
  30. data/lib/rubylisp/prim_io.rb +266 -0
  31. data/lib/rubylisp/prim_list_support.rb +496 -0
  32. data/lib/rubylisp/{logical.rb → prim_logical.rb} +9 -14
  33. data/lib/rubylisp/prim_math.rb +397 -0
  34. data/lib/rubylisp/prim_native_object.rb +21 -0
  35. data/lib/rubylisp/prim_relational.rb +42 -0
  36. data/lib/rubylisp/{special_forms.rb → prim_special_forms.rb} +97 -84
  37. data/lib/rubylisp/prim_string.rb +792 -0
  38. data/lib/rubylisp/prim_system.rb +55 -0
  39. data/lib/rubylisp/prim_type_checks.rb +58 -0
  40. data/lib/rubylisp/prim_vector.rb +497 -0
  41. data/lib/rubylisp/primitive.rb +51 -6
  42. data/lib/rubylisp/string.rb +4 -803
  43. data/lib/rubylisp/symbol.rb +0 -1
  44. data/lib/rubylisp/tokenizer.rb +160 -136
  45. data/lib/rubylisp/vector.rb +10 -31
  46. data/lib/rubymotion/debug.rb +40 -0
  47. data/lib/rubymotion/require-fix.rb +1 -0
  48. data/lib/rubymotionlisp.rb +4 -0
  49. metadata +28 -17
  50. data/lib/rubylisp/alist.rb +0 -230
  51. data/lib/rubylisp/assignment.rb +0 -65
  52. data/lib/rubylisp/equivalence.rb +0 -118
  53. data/lib/rubylisp/io.rb +0 -74
  54. data/lib/rubylisp/list_support.rb +0 -526
  55. data/lib/rubylisp/math.rb +0 -405
  56. data/lib/rubylisp/motion_builtins.rb +0 -31
  57. data/lib/rubylisp/relational.rb +0 -46
  58. data/lib/rubylisp/system.rb +0 -20
  59. data/lib/rubylisp/testing.rb +0 -136
  60. data/lib/rubylisp/type_checks.rb +0 -60
@@ -32,7 +32,6 @@ module Lisp
32
32
  def naked?
33
33
  @naked
34
34
  end
35
-
36
35
 
37
36
  def type
38
37
  :symbol
@@ -4,27 +4,60 @@ module Lisp
4
4
 
5
5
  attr_reader :line_number
6
6
 
7
+ def self.from_string(str)
8
+ self.new(StringIO.new(str, "r"))
9
+ end
10
+
11
+ def self.from_file(f)
12
+ self.new(f)
13
+ end
14
+
7
15
  def initialize(src)
8
- @lookahead_token = 0
9
- @lookahead_literal = ''
10
16
  @source = src
11
- @position = 0
17
+ @lookahead_token = nil
18
+ @lookahead_literal = ''
19
+ @eof = false
20
+ @almost_eof = false
21
+ @curent_ch = nil
22
+ @next_ch = nil
23
+ @next_next_ch = nil
24
+ init
12
25
  end
13
26
 
27
+ def advance
28
+ if @source.eof?
29
+ @eof = true
30
+ @almost_eof = true
31
+ @current_ch = nil
32
+ @next_ch = nil
33
+ else
34
+ @current_ch = @source.readchar
35
+ if @source.eof?
36
+ @almost_eof = true
37
+ @next_ch = nil
38
+ else
39
+ @next_ch = @source.readchar
40
+ if @source.eof?
41
+ @next_next_ch = nil
42
+ else
43
+ @next_next_ch = @source.readchar
44
+ @source.ungetc(@next_next_ch)
45
+ end
46
+ @source.ungetc(@next_ch)
47
+ end
48
+ end
49
+ end
50
+
14
51
  def next_token
15
52
  return @lookahead_token, @lookahead_literal
16
53
  end
17
54
 
18
55
  def eof?
19
- @position >= @source.length
56
+ @eof
20
57
  end
21
58
 
22
59
  def almost_eof?
23
- @position == @source.length - 1
24
- end
25
-
26
- def next_char
27
- almost_eof? ? nil : @source[@position + 1]
60
+ @almost_eof
28
61
  end
29
62
 
30
63
  def letter?(ch)
@@ -40,7 +73,7 @@ module Lisp
40
73
  end
41
74
 
42
75
  def number?(ch)
43
- digit?(ch) || (ch == '-' && digit?(next_char))
76
+ digit?(ch) || (ch == '-' && digit?(@next_ch))
44
77
  end
45
78
 
46
79
 
@@ -49,50 +82,55 @@ module Lisp
49
82
  end
50
83
 
51
84
 
85
+ def graph?(ch)
86
+ ch =~ /[[:graph:]]/
87
+ end
88
+
89
+
52
90
  def symbol_character?(ch)
53
- return true if letter?(ch)
54
- return true if (?0..?9).include?(ch)
55
- return "-_?!:*=<>".include?(ch)
91
+ graph?(ch) && !("();\"'`|[]{}#,.".include?(ch))
56
92
  end
57
93
 
58
94
  def read_symbol
59
- start = @position
95
+ lit = ""
60
96
  tok = nil
61
- if @source[@position] == '.'
62
- @position += 1
97
+ if @current_ch == '.'
98
+ lit << @current_ch
99
+ advance
63
100
  tok = :FFI_SEND_SYMBOL
64
101
  end
65
102
 
66
- while !eof? && (symbol_character?(@source[@position]) ||
67
- (@source[@position] == '.' && !symbol_character?(@source[@position+1]) && tok.nil?) ||
68
- (@source[@position] == '/' && symbol_character?(@source[@position+1])))
69
- tok ||= :FFI_NEW_SYMBOL if @source[@position] == '.'
70
- tok = :FFI_STATIC_SYMBOL if @source[@position] == '/'
71
- @position += 1
103
+ while !eof? && ((@current_ch == '.' && !symbol_character?(@next_ch) && tok.nil?) ||
104
+ (@current_ch == '/' && symbol_character?(@next_ch)) ||
105
+ (symbol_character?(@current_ch)))
106
+ tok ||= :FFI_NEW_SYMBOL if @current_ch == '.' && !lit.empty?
107
+ tok = :FFI_STATIC_SYMBOL if @current_ch == '/' && !lit.empty?
108
+ lit << @current_ch
109
+ advance
72
110
  end
73
111
 
74
112
  tok ||= :SYMBOL
75
113
  return tok, case tok
76
114
  when :SYMBOL, :FFI_STATIC_SYMBOL
77
- @source[start...@position]
115
+ lit
78
116
  when :FFI_SEND_SYMBOL
79
- @source[start+1...@position]
117
+ lit[1..-1]
80
118
  when :FFI_NEW_SYMBOL
81
- @source[start...@position-1]
119
+ lit[0..-2]
82
120
  end
83
121
  end
84
122
 
85
- def read_number
86
- start = @position
87
- @position += 1 if @source[@position] == '-'
88
- hex = @source[@position, 2] == "#x"
123
+ def read_number(hex)
124
+ lit = ""
125
+ if @current_ch == '-'
126
+ lit << @current_ch
127
+ advance
128
+ end
89
129
  is_float = false
90
- @position += 2 if hex
91
- ch = @source[@position]
92
- while !eof? && (digit?(ch) || (hex && hex?(ch)) || (!hex && !is_float && ch == ?.))
93
- is_float ||= (ch == ?.)
94
- @position += 1
95
- ch = @source[@position]
130
+ while !eof? && (digit?(@current_ch) || (hex && hex?(@current_ch)) || (!hex && !is_float && @current_ch == '.'))
131
+ is_float ||= !hex && (@current_ch == '.')
132
+ lit << @current_ch
133
+ advance
96
134
  end
97
135
 
98
136
  tok = if hex
@@ -103,7 +141,7 @@ module Lisp
103
141
  :NUMBER
104
142
  end
105
143
 
106
- return tok, @source[start...@position]
144
+ return tok, lit
107
145
  end
108
146
 
109
147
 
@@ -111,15 +149,15 @@ module Lisp
111
149
  i = 0
112
150
  processed_str = ""
113
151
  while i < str.length
114
- if str[i] == ?\\
152
+ if str[i] == '\\'
115
153
  processed_str << if i < (str.length - 1)
116
154
  i += 1
117
155
  case (str[i])
118
- when ?n
156
+ when 'n'
119
157
  "\n"
120
- when ?t
158
+ when 't'
121
159
  "\t"
122
- when ?\\
160
+ when '\\'
123
161
  "\\"
124
162
  else
125
163
  "\\#{str[i]}"
@@ -137,15 +175,15 @@ module Lisp
137
175
 
138
176
 
139
177
  def read_string
140
- start = @position
141
- @position += 1
142
- while !eof? && @source[@position] != ?"
143
- @position += 1
178
+ lit = ""
179
+ while !eof? && @current_ch != '"'
180
+ lit << @current_ch
181
+ advance
144
182
  end
145
183
 
146
184
  return :EOF, '' if eof?
147
- @position += 1
148
- return :STRING, process_escapes(@source[start...@position])
185
+ advance
186
+ return :STRING, process_escapes(lit)
149
187
  end
150
188
 
151
189
 
@@ -155,122 +193,107 @@ module Lisp
155
193
 
156
194
 
157
195
  def read_character
158
- @position += 2
159
- start = @position
160
- @position += 1
161
- while !eof? && !divider?(@source[@position])
162
- @position += 1
196
+ lit = ""
197
+ lit << @current_ch
198
+ advance
199
+ while !eof? && !divider?(@current_ch)
200
+ lit << @current_ch
201
+ advance
163
202
  end
164
203
 
165
- return :CHARACTER, @source[start...@position]
204
+ return :CHARACTER, lit
166
205
  end
167
206
 
168
207
 
169
208
  def read_next_token
170
209
  return :EOF, '' if eof?
171
210
 
172
- while space?(@source[@position])
173
- @line_number += 1 if @source[@position] == ?\n
174
- @position += 1
211
+ while space?(@current_ch)
212
+ @line_number += 1 if @current_ch == "\n"
213
+ advance
175
214
  return :EOF, '' if eof?
176
215
  end
177
216
 
178
- current_ch = @source[@position]
179
- next_ch = @source[@position + 1] unless almost_eof?
180
-
181
- if letter?(current_ch) || ('*._'.include?(current_ch) && letter?(next_ch))
182
- return read_symbol
183
- elsif number?(current_ch)
184
- return read_number
185
- elsif current_ch == ?- && number?(next_ch)
186
- return read_number
187
- elsif current_ch == ?# && next_ch == ?x
188
- return read_number
189
- elsif current_ch == ?"
217
+ if number?(@current_ch)
218
+ return read_number(false)
219
+ elsif @current_ch == '-' && number?(@next_ch)
220
+ return read_number(false)
221
+ elsif @current_ch == '#' && @next_ch == 'x'
222
+ advance
223
+ advance
224
+ return read_number(true)
225
+ elsif @current_ch == '"'
226
+ advance
190
227
  return read_string
191
- elsif current_ch == ?# && next_ch == ?\\
228
+ elsif @current_ch == '#' && @next_ch == '\\'
229
+ advance
230
+ advance
192
231
  return read_character
193
- elsif current_ch == ?'
194
- @position += 1
232
+ elsif @current_ch == '\'' && @next_ch == '{'
233
+ advance
234
+ advance
235
+ return :QUOTE_LBRACE, "'{"
236
+ elsif @current_ch == '\'' && @next_ch == '#' && @next_next_ch == '('
237
+ advance
238
+ advance
239
+ advance
240
+ return :QUOTE_HASH_LPAREN, "'#("
241
+ elsif @current_ch == '\''
242
+ advance
195
243
  return :QUOTE, "'"
196
- elsif current_ch == ?`
197
- @position += 1
244
+ elsif @current_ch == '`'
245
+ advance
198
246
  return :BACKQUOTE, "`"
199
- elsif current_ch == ?, && next_ch == ?@
200
- @position += 2
247
+ elsif @current_ch == ',' && @next_ch == '@'
248
+ advance
249
+ advance
201
250
  return :COMMAAT, ",@"
202
- elsif current_ch == ?,
203
- @position += 1
251
+ elsif @current_ch == ','
252
+ advance
204
253
  return :COMMA, ","
205
- elsif current_ch == ?(
206
- @position += 1
254
+ elsif @current_ch == '('
255
+ advance
207
256
  return :LPAREN, "("
208
- elsif current_ch == ?)
209
- @position += 1
257
+ elsif @current_ch == '#' && @next_ch == '('
258
+ advance
259
+ advance
260
+ return :HASH_LPAREN, "#("
261
+ elsif @current_ch == ')'
262
+ advance
210
263
  return :RPAREN, ")"
211
- elsif current_ch == ?{
212
- @position += 1
264
+ elsif @current_ch == '{'
265
+ advance
213
266
  return :LBRACE, "{"
214
- elsif current_ch == ?}
215
- @position += 1
267
+ elsif @current_ch == '}'
268
+ advance
216
269
  return :RBRACE, "}"
217
- elsif current_ch == ?[
218
- @position += 1
270
+ elsif @current_ch == '['
271
+ advance
219
272
  return :LBRACKET, "["
220
- elsif current_ch == ?]
221
- @position += 1
273
+ elsif @current_ch == ']'
274
+ advance
222
275
  return :RBRACKET, "]"
223
- elsif current_ch == ?.
224
- @position += 1
276
+ elsif @current_ch == '.' && space?(@next_ch)
277
+ advance
225
278
  return :PERIOD, "."
226
- elsif current_ch == ?/ && next_ch == ?=
227
- @position += 2
228
- return :SYMBOL, "!="
229
- elsif current_ch == ?- && next_ch == ?>
230
- @position += 2
231
- return :SYMBOL, "->"
232
- elsif current_ch == ?= && next_ch == ?>
233
- @position += 2
234
- return :SYMBOL, "=>"
235
- elsif "+-*/%".include?(current_ch)
236
- @position += 1
237
- return :SYMBOL, current_ch.to_s
238
- elsif current_ch == ?< && next_ch == ?=
239
- @position += 2
240
- return :SYMBOL, "<="
241
- elsif current_ch == ?<
242
- @position += 1
243
- return :SYMBOL, "<"
244
- elsif current_ch == ?> && next_ch == ?=
245
- @position += 2
246
- return :SYMBOL, ">="
247
- elsif current_ch == ?>
248
- @position += 1
249
- return :SYMBOL, ">"
250
- elsif current_ch == ?= && next_ch == ?=
251
- @position += 2
252
- return :SYMBOL, "="
253
- elsif current_ch == ?=
254
- @position += 1
255
- return :SYMBOL, "="
256
- elsif current_ch == ?! && next_ch == ?=
257
- @position += 2
258
- return :SYMBOL, "!="
259
- elsif current_ch == ?!
260
- @position += 1
261
- return :SYMBOL, "!"
262
- elsif current_ch == ?# && next_ch == ?t
263
- @position += 2
279
+ elsif @current_ch == '.' && symbol_character?(@next_ch)
280
+ return read_symbol
281
+ elsif symbol_character?(@current_ch)
282
+ return read_symbol
283
+ elsif @current_ch == '#' && @next_ch == 't'
284
+ advance
285
+ advance
264
286
  return :TRUE, "#t"
265
- elsif current_ch == ?# && next_ch == ?f
266
- @position += 2
287
+ elsif @current_ch == '#' && @next_ch == 'f'
288
+ advance
289
+ advance
267
290
  return :FALSE, "#f"
268
- elsif current_ch == ?;
269
- start = @position
291
+ elsif @current_ch == ';'
292
+ lit = ""
270
293
  while true
271
- return :COMMENT, @source[start..-1] if eof?
272
- return :COMMENT, @source[start...@position] if @source[@position] == ?\n
273
- @position += 1
294
+ return :COMMENT, lit if eof? || @current_ch == "\n"
295
+ lit << @current_ch
296
+ advance
274
297
  end
275
298
  else
276
299
  return :ILLEGAL, ''
@@ -278,12 +301,13 @@ module Lisp
278
301
  end
279
302
 
280
303
  def consume_token
281
- @lookahead_token, @lookahead_literal = read_next_token
304
+ @lookahead_token, @lookahead_literal = self.read_next_token
282
305
  consume_token if @lookahead_token == :COMMENT
283
306
  end
284
307
 
285
308
  def init
286
309
  @line_number = 0
310
+ advance
287
311
  consume_token
288
312
  end
289
313
 
@@ -2,31 +2,6 @@ module Lisp
2
2
 
3
3
  class Vector < Atom
4
4
 
5
- def self.register
6
- Primitive.register("make-vector") {|args, env| Lisp::Vector::make_vector_impl(args, env) }
7
- Primitive.register("vector") {|args, env| Lisp::Vector::vector_impl(args, env) }
8
- end
9
-
10
- def self.make_vector_impl(args, env)
11
- c = args
12
- a = []
13
- while !c.nil?
14
- a << c.car.evaluate(env)
15
- c = c.cdr
16
- end
17
-
18
- Lisp::Vector.new(a)
19
- end
20
-
21
-
22
- def self.vector_impl(args, env)
23
- return Lisp::Debug.process_error("vector requires a single list argument.", env) unless args.length == 1
24
-
25
- c = args.car.evaluate(env)
26
- Lisp::Vector.new(c.to_a)
27
- end
28
-
29
-
30
5
  def self.with_array(a)
31
6
  self.new(a)
32
7
  end
@@ -38,6 +13,10 @@ module Lisp
38
13
  end
39
14
 
40
15
 
16
+ def update!(a)
17
+ @value = a
18
+ end
19
+
41
20
  def type
42
21
  :vector
43
22
  end
@@ -70,24 +49,24 @@ module Lisp
70
49
 
71
50
 
72
51
  def to_s
73
- "[#{@value.join(' ')}]"
52
+ "#(#{@value.join(' ')})"
74
53
  end
75
54
 
76
55
 
77
56
  def at(n)
78
- @value[n - 1]
57
+ @value[n]
79
58
  end
80
59
  alias_method :nth, :at
81
60
 
82
61
 
83
62
  def nth_tail(n)
84
63
  return Lisp::Vector.new if n > @value.size
85
- Lisp::Vector.new(@value[(n - 1)..-1])
64
+ Lisp::Vector.new(@value[n..-1])
86
65
  end
87
66
 
88
67
 
89
68
  def at_put(n, d)
90
- @value[n - 1] = d
69
+ @value[n] = d
91
70
  end
92
71
 
93
72
 
@@ -96,11 +75,11 @@ module Lisp
96
75
  end
97
76
 
98
77
 
99
- def eq?(other)
78
+ def equal?(other)
100
79
  return false unless other.vector?
101
80
  return false unless @value.size == other.value.size
102
81
  (0..@value.size).each do |i|
103
- return false unless Lisp::Equivalence.equal_check(other.value[i], value[i]).value
82
+ return false unless other.value[i].equal?(value[i])
104
83
  end
105
84
  true
106
85
  end
@@ -0,0 +1,40 @@
1
+ # Copyright 2014 David R. Astels. All rights reserved.
2
+ # Use of this source code is governed by a BSD-style
3
+ # license that can be found in the LICENSE file.
4
+
5
+
6
+ module Lisp
7
+
8
+ class Debug
9
+
10
+ class <<self
11
+ attr_accessor :trace, :on_error, :on_entry, :single_step, :interactive, :target_env, :eval_in_debug_repl
12
+ end
13
+
14
+
15
+ def self.register
16
+ self.trace = false
17
+ self.on_error = false
18
+ self.on_entry = []
19
+ self.single_step = false
20
+ self.interactive = false
21
+ self.target_env = nil
22
+ self.eval_in_debug_repl = false
23
+ end
24
+
25
+
26
+ def self.process_error(error_message, env)
27
+ raise error_message
28
+ end
29
+
30
+
31
+ def self.log_eval(sexpr, env)
32
+ end
33
+
34
+
35
+ def self.log_result(result, env)
36
+ end
37
+
38
+
39
+ end
40
+ end
@@ -0,0 +1 @@
1
+ def require(*args); end
@@ -2,11 +2,15 @@ unless defined?(Motion::Project::Config)
2
2
  raise "This file must be required within a RubyMotion project Rakefile."
3
3
  end
4
4
 
5
+ lib_dir_path = File.dirname(File.expand_path(__FILE__))
5
6
  Motion::Project::App.setup do |app|
6
7
  insert_point = app.files.find_index { |file| file =~ /^(?:\.\/)?app\// } || 0
7
8
 
8
9
  Dir.glob(File.join(File.dirname(__FILE__), 'rubylisp/*.rb')).reverse.each do |file|
9
10
  app.files.insert(insert_point, file)
10
11
  end
12
+ Dir.glob(File.join(File.dirname(__FILE__), 'rubymotion/*.rb')).reverse.each do |file|
13
+ app.files.insert(insert_point, file)
14
+ end
11
15
 
12
16
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubymotionlisp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dave Astels
@@ -17,42 +17,53 @@ extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
19
  - README.md
20
- - lib/rubylisp/alist.rb
21
- - lib/rubylisp/assignment.rb
22
20
  - lib/rubylisp/atom.rb
23
21
  - lib/rubylisp/binding.rb
24
22
  - lib/rubylisp/boolean.rb
23
+ - lib/rubylisp/builtins.rb
25
24
  - lib/rubylisp/character.rb
25
+ - lib/rubylisp/class_object.rb
26
26
  - lib/rubylisp/cons_cell.rb
27
+ - lib/rubylisp/environment.rb
27
28
  - lib/rubylisp/environment_frame.rb
28
- - lib/rubylisp/equivalence.rb
29
+ - lib/rubylisp/eof_object.rb
29
30
  - lib/rubylisp/exception.rb
30
31
  - lib/rubylisp/ext.rb
31
- - lib/rubylisp/ffi_class.rb
32
32
  - lib/rubylisp/ffi_new.rb
33
33
  - lib/rubylisp/ffi_send.rb
34
34
  - lib/rubylisp/ffi_static.rb
35
35
  - lib/rubylisp/frame.rb
36
36
  - lib/rubylisp/function.rb
37
- - lib/rubylisp/io.rb
38
- - lib/rubylisp/list_support.rb
39
- - lib/rubylisp/logical.rb
40
37
  - lib/rubylisp/macro.rb
41
- - lib/rubylisp/math.rb
42
- - lib/rubylisp/motion_builtins.rb
38
+ - lib/rubylisp/native_object.rb
43
39
  - lib/rubylisp/number.rb
44
- - lib/rubylisp/object.rb
45
40
  - lib/rubylisp/parser.rb
41
+ - lib/rubylisp/port.rb
42
+ - lib/rubylisp/prim_alist.rb
43
+ - lib/rubylisp/prim_assignment.rb
44
+ - lib/rubylisp/prim_character.rb
45
+ - lib/rubylisp/prim_class_object.rb
46
+ - lib/rubylisp/prim_environment.rb
47
+ - lib/rubylisp/prim_equivalence.rb
48
+ - lib/rubylisp/prim_frame.rb
49
+ - lib/rubylisp/prim_io.rb
50
+ - lib/rubylisp/prim_list_support.rb
51
+ - lib/rubylisp/prim_logical.rb
52
+ - lib/rubylisp/prim_math.rb
53
+ - lib/rubylisp/prim_native_object.rb
54
+ - lib/rubylisp/prim_relational.rb
55
+ - lib/rubylisp/prim_special_forms.rb
56
+ - lib/rubylisp/prim_string.rb
57
+ - lib/rubylisp/prim_system.rb
58
+ - lib/rubylisp/prim_type_checks.rb
59
+ - lib/rubylisp/prim_vector.rb
46
60
  - lib/rubylisp/primitive.rb
47
- - lib/rubylisp/relational.rb
48
- - lib/rubylisp/special_forms.rb
49
61
  - lib/rubylisp/string.rb
50
62
  - lib/rubylisp/symbol.rb
51
- - lib/rubylisp/system.rb
52
- - lib/rubylisp/testing.rb
53
63
  - lib/rubylisp/tokenizer.rb
54
- - lib/rubylisp/type_checks.rb
55
64
  - lib/rubylisp/vector.rb
65
+ - lib/rubymotion/debug.rb
66
+ - lib/rubymotion/require-fix.rb
56
67
  - lib/rubymotionlisp.rb
57
68
  homepage: https://bitbucket.org/dastels/rubylisp
58
69
  licenses:
@@ -74,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
74
85
  version: '0'
75
86
  requirements: []
76
87
  rubyforge_project:
77
- rubygems_version: 2.2.2
88
+ rubygems_version: 2.5.0
78
89
  signing_key:
79
90
  specification_version: 4
80
91
  summary: Lisp in RubyMotion