flea 0.1.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 (113) hide show
  1. data/.gitignore +1 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +274 -0
  4. data/Rakefile +36 -0
  5. data/VERSION +1 -0
  6. data/bin/flea +39 -0
  7. data/examples/guess-the-number.scm +18 -0
  8. data/flea-language-spec/README.rdoc +3 -0
  9. data/flea-language-spec/flea-language-spec.yaml +2 -0
  10. data/flea-language-spec/test-cases/01-display-and-basic-literals/01-display-string-literal.scm +5 -0
  11. data/flea-language-spec/test-cases/01-display-and-basic-literals/02-display-integer-literal.scm +5 -0
  12. data/flea-language-spec/test-cases/01-display-and-basic-literals/03-display-boolean-true-literal.scm +5 -0
  13. data/flea-language-spec/test-cases/01-display-and-basic-literals/04-display-boolean-false-literal.scm +5 -0
  14. data/flea-language-spec/test-cases/01-display-and-basic-literals/05-display-list-literal-using-quote.scm +5 -0
  15. data/flea-language-spec/test-cases/01-display-and-basic-literals/06-display-identifier-quoted.scm +5 -0
  16. data/flea-language-spec/test-cases/02-variables/01-define-with-string.scm +6 -0
  17. data/flea-language-spec/test-cases/02-variables/02-define-with-integer.scm +6 -0
  18. data/flea-language-spec/test-cases/02-variables/03-define-with-boolean-true.scm +6 -0
  19. data/flea-language-spec/test-cases/02-variables/04-define-with-boolean-false.scm +6 -0
  20. data/flea-language-spec/test-cases/02-variables/05-define-with-list.scm +6 -0
  21. data/flea-language-spec/test-cases/03-basic-built-in-procedures/01-addition.scm +5 -0
  22. data/flea-language-spec/test-cases/03-basic-built-in-procedures/02-subtraction.scm +5 -0
  23. data/flea-language-spec/test-cases/03-basic-built-in-procedures/03-multiplication.scm +5 -0
  24. data/flea-language-spec/test-cases/03-basic-built-in-procedures/04-division.scm +5 -0
  25. data/flea-language-spec/test-cases/03-basic-built-in-procedures/05-equality-true-integer.scm +5 -0
  26. data/flea-language-spec/test-cases/03-basic-built-in-procedures/06-equality-false-integer.scm +5 -0
  27. data/flea-language-spec/test-cases/03-basic-built-in-procedures/07-equal?/01-equal?-true-integer.scm +5 -0
  28. data/flea-language-spec/test-cases/03-basic-built-in-procedures/07-equal?/02-equal?-false-integer.scm +5 -0
  29. data/flea-language-spec/test-cases/03-basic-built-in-procedures/07-equal?/03-equal?-true-string.scm +5 -0
  30. data/flea-language-spec/test-cases/03-basic-built-in-procedures/07-equal?/04-equal?-false-string.scm +5 -0
  31. data/flea-language-spec/test-cases/03-basic-built-in-procedures/07-equal?/05-equal?-true-boolean.scm +5 -0
  32. data/flea-language-spec/test-cases/03-basic-built-in-procedures/07-equal?/06-equal?-false-boolean.scm +5 -0
  33. data/flea-language-spec/test-cases/03-basic-built-in-procedures/07-equal?/07-equal?-true-list.scm +7 -0
  34. data/flea-language-spec/test-cases/03-basic-built-in-procedures/07-equal?/08-equal?-false-list.scm +7 -0
  35. data/flea-language-spec/test-cases/04-comma-quoting/01-comma-quoting.scm +5 -0
  36. data/flea-language-spec/test-cases/05-lambda/01-lambda.scm +5 -0
  37. data/flea-language-spec/test-cases/05-lambda/02-call-in-place-lambda.scm +5 -0
  38. data/flea-language-spec/test-cases/05-lambda/03-define-with-lambda.scm +6 -0
  39. data/flea-language-spec/test-cases/05-lambda/04-define-and-call-lambda.scm +8 -0
  40. data/flea-language-spec/test-cases/05-lambda/05-lambda-repeated-argument.scm +9 -0
  41. data/flea-language-spec/test-cases/05-lambda/06-lambda-list-argument.scm +8 -0
  42. data/flea-language-spec/test-cases/05-lambda/07-lambda-n-or-more-arguments.scm +12 -0
  43. data/flea-language-spec/test-cases/05-lambda/08-lambda-should-return-last-result.scm +16 -0
  44. data/flea-language-spec/test-cases/06-if/01-if-true-single-arg.scm +6 -0
  45. data/flea-language-spec/test-cases/06-if/02-if-false-single-arg.scm +6 -0
  46. data/flea-language-spec/test-cases/06-if/03-if-true-two-args.scm +7 -0
  47. data/flea-language-spec/test-cases/06-if/04-if-false-two-args.scm +7 -0
  48. data/flea-language-spec/test-cases/07-set/01-should-not-set-undefined-variable.scm +5 -0
  49. data/flea-language-spec/test-cases/07-set/02-set-previously-defined-variable.scm +8 -0
  50. data/flea-language-spec/test-cases/08-derived-expressions/01-begin/01-begin.scm +8 -0
  51. data/flea-language-spec/test-cases/09-list-manipulation/01-car.scm +7 -0
  52. data/flea-language-spec/test-cases/09-list-manipulation/02-cdr.scm +7 -0
  53. data/flea-language-spec/test-cases/09-list-manipulation/03-list-tail.scm +7 -0
  54. data/flea-language-spec/test-cases/09-list-manipulation/04-append.scm +10 -0
  55. data/flea-language-spec/test-cases/09-list-manipulation/05-list.scm +5 -0
  56. data/flea-language-spec/test-cases/10-functional-examples/countdown.scm +15 -0
  57. data/lib/flea.rb +5 -0
  58. data/lib/flea/environment.rb +38 -0
  59. data/lib/flea/interpreter.rb +67 -0
  60. data/lib/flea/standard_library/addition_operator.scm +7 -0
  61. data/lib/flea/standard_library/append.scm +7 -0
  62. data/lib/flea/standard_library/begin.scm +11 -0
  63. data/lib/flea/standard_library/car.scm +7 -0
  64. data/lib/flea/standard_library/cdr.scm +7 -0
  65. data/lib/flea/standard_library/cons.scm +13 -0
  66. data/lib/flea/standard_library/display.scm +8 -0
  67. data/lib/flea/standard_library/division_operator.scm +7 -0
  68. data/lib/flea/standard_library/equality_operator.scm +8 -0
  69. data/lib/flea/standard_library/gets.scm +6 -0
  70. data/lib/flea/standard_library/greater_than.scm +8 -0
  71. data/lib/flea/standard_library/if.scm +10 -0
  72. data/lib/flea/standard_library/lambda.scm +57 -0
  73. data/lib/flea/standard_library/less_than.scm +8 -0
  74. data/lib/flea/standard_library/list.scm +8 -0
  75. data/lib/flea/standard_library/list_predicate.scm +6 -0
  76. data/lib/flea/standard_library/list_tail.scm +5 -0
  77. data/lib/flea/standard_library/multiplication_operator.scm +7 -0
  78. data/lib/flea/standard_library/null.scm +3 -0
  79. data/lib/flea/standard_library/quote.scm +6 -0
  80. data/lib/flea/standard_library/rand.scm +6 -0
  81. data/lib/flea/standard_library/read.scm +6 -0
  82. data/lib/flea/standard_library/set.scm +9 -0
  83. data/lib/flea/standard_library/string_to_num.scm +6 -0
  84. data/lib/flea/standard_library/subtraction_operator.scm +7 -0
  85. data/spec/flea/environment_spec.rb +114 -0
  86. data/spec/flea/interpreter_spec.rb +85 -0
  87. data/spec/flea/standard_library/addition_operator_spec.rb +23 -0
  88. data/spec/flea/standard_library/append_spec.rb +17 -0
  89. data/spec/flea/standard_library/begin_spec.rb +20 -0
  90. data/spec/flea/standard_library/car_spec.rb +17 -0
  91. data/spec/flea/standard_library/cdr_spec.rb +17 -0
  92. data/spec/flea/standard_library/cons_spec.rb +25 -0
  93. data/spec/flea/standard_library/display_spec.rb +36 -0
  94. data/spec/flea/standard_library/division_operator_spec.rb +29 -0
  95. data/spec/flea/standard_library/equality_operator_spec.rb +45 -0
  96. data/spec/flea/standard_library/gets_spec.rb +23 -0
  97. data/spec/flea/standard_library/greater_than_spec.rb +29 -0
  98. data/spec/flea/standard_library/if_spec.rb +59 -0
  99. data/spec/flea/standard_library/lambda_spec.rb +70 -0
  100. data/spec/flea/standard_library/less_than_spec.rb +29 -0
  101. data/spec/flea/standard_library/list_predicate_spec.rb +25 -0
  102. data/spec/flea/standard_library/list_spec.rb +24 -0
  103. data/spec/flea/standard_library/list_tail_spec.rb +17 -0
  104. data/spec/flea/standard_library/mutiplication_operator_spec.rb +23 -0
  105. data/spec/flea/standard_library/null_spec.rb +26 -0
  106. data/spec/flea/standard_library/quote_spec.rb +20 -0
  107. data/spec/flea/standard_library/rand_spec.rb +25 -0
  108. data/spec/flea/standard_library/read_spec.rb +23 -0
  109. data/spec/flea/standard_library/set_spec.rb +23 -0
  110. data/spec/flea/standard_library/string_to_num_spec.rb +28 -0
  111. data/spec/flea/standard_library/subtraction_operator_spec.rb +24 -0
  112. data/spec/spec_helper.rb +10 -0
  113. metadata +231 -0
@@ -0,0 +1,25 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe "Standard Library" do
4
+ describe "list?" do
5
+ before :each do
6
+ @interpreter = Flea::Interpreter.new
7
+ end
8
+
9
+ it "should should return true for an empty list" do
10
+ result = @interpreter.run("(list? '())")
11
+ result.should == true
12
+ end
13
+
14
+ it "return true for a populated list" do
15
+ result = @interpreter.run("(list? '(a b c))")
16
+ result.should == true
17
+ end
18
+
19
+ it "should return false for an atom" do
20
+ result = @interpreter.run("(list? 'a)")
21
+ result.should == false
22
+ end
23
+
24
+ end
25
+ end
@@ -0,0 +1,24 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe "Standard Library" do
4
+ describe "list" do
5
+ before :each do
6
+ @interpreter = Flea::Interpreter.new
7
+ end
8
+
9
+ it "should create a list from it's arguments" do
10
+ result = @interpreter.run('(list 9 2 2)')
11
+ result.should == [9, 2, 2]
12
+ end
13
+
14
+ it "should evaluate its arguments before creating the list" do
15
+ result = @interpreter.run('
16
+ (define a 2)
17
+ (define b 9)
18
+ (list b a a)
19
+ ')
20
+ result.should == [9, 2, 2]
21
+ end
22
+
23
+ end
24
+ end
@@ -0,0 +1,17 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe "Standard Library" do
4
+ describe "list-tail" do
5
+ before :each do
6
+ @interpreter = Flea::Interpreter.new
7
+ end
8
+
9
+ it "should return trailing subset of list" do
10
+ result = @interpreter.run('
11
+ (list-tail (quote (1 2 3 4 5)) 2)
12
+ ')
13
+ result.should == [3, 4, 5]
14
+ end
15
+
16
+ end
17
+ end
@@ -0,0 +1,23 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe "Standard Library" do
4
+ describe "multiplication operator" do
5
+ before :each do
6
+ @interpreter = Flea::Interpreter.new
7
+ end
8
+
9
+ it "should multiply several numbers" do
10
+ result = @interpreter.run('(* 2 2 2)')
11
+ result.should == 8
12
+ end
13
+
14
+ it "should evaluate its arguments before multiplying them" do
15
+ result = @interpreter.run('
16
+ (define a 2)
17
+ (* a a a)
18
+ ')
19
+ result.should == 8
20
+ end
21
+
22
+ end
23
+ end
@@ -0,0 +1,26 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe "Standard Library" do
4
+ describe "null?" do
5
+ before :each do
6
+ @interpreter = Flea::Interpreter.new
7
+ end
8
+
9
+ it "should return true for an empty list" do
10
+ result = @interpreter.run('
11
+ (null? \'())
12
+ ')
13
+ result.should == true
14
+ end
15
+
16
+ ["1", '"abc"', "(1 2 3)"].each do |value|
17
+ it "should return false for #{value}" do
18
+ result = @interpreter.run("
19
+ (null? (quote #{value}))
20
+ ")
21
+ result.should == false
22
+ end
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,20 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe "Standard Library" do
4
+ describe "quote" do
5
+ before :each do
6
+ @interpreter = Flea::Interpreter.new
7
+ end
8
+
9
+ it "should quote a list" do
10
+ result = @interpreter.run('(quote (1 2 3))')
11
+ result.should == [1, 2, 3]
12
+ end
13
+
14
+ it "should quote a single literal" do
15
+ result = @interpreter.run('(quote 1)')
16
+ result.should == 1
17
+ end
18
+
19
+ end
20
+ end
@@ -0,0 +1,25 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe "Standard Library" do
4
+ describe "rand" do
5
+ before :each do
6
+ @interpreter = Flea::Interpreter.new
7
+ end
8
+
9
+ 10.times do
10
+ it "should return a random number lower than or equal to 10" do
11
+ result = @interpreter.run('(rand 10)')
12
+ result.should < 11
13
+ end
14
+
15
+ it "should evaluate its arguments" do
16
+ result = @interpreter.run('
17
+ (define a 10)
18
+ (rand a)
19
+ ')
20
+ result.should < 11
21
+ end
22
+ end
23
+
24
+ end
25
+ end
@@ -0,0 +1,23 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe "Standard Library" do
4
+ describe "read" do
5
+ before :each do
6
+ @interpreter = Flea::Interpreter.new
7
+ @old_stdin = $stdin
8
+ @buffer = StringIO.new
9
+ $stdin = @buffer
10
+ end
11
+
12
+ it "should read data structure from STDIN" do
13
+ @buffer.string = "(1 2.0 test (1 2 3))\n"
14
+ result = @interpreter.run('(read)')
15
+ result.should == [[1, 2.0, :test, [1, 2, 3]]]
16
+ end
17
+
18
+ after :each do
19
+ $stdin = @old_stdin
20
+ end
21
+
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe "Standard Library" do
4
+ describe "set!" do
5
+ before :each do
6
+ @interpreter = Flea::Interpreter.new
7
+ end
8
+
9
+ it "should change the value of an existing variable" do
10
+ @interpreter.run('
11
+ (define test 1)
12
+ (set! test 2)')
13
+ @interpreter.base_environment.find(:test).should == 2
14
+ end
15
+
16
+ it "should raise error when attempting to set unbound variable" do
17
+ lambda {
18
+ @interpreter.run('(set! test 1)')
19
+ }.should raise_error
20
+ end
21
+
22
+ end
23
+ end
@@ -0,0 +1,28 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe "Standard Library" do
4
+ describe "string-to-num" do
5
+ before :each do
6
+ @interpreter = Flea::Interpreter.new
7
+ end
8
+
9
+ it "should convert string to integer" do
10
+ result = @interpreter.run('(string-to-num "10")')
11
+ result.should == 10
12
+ end
13
+
14
+ it "should convert string to float" do
15
+ result = @interpreter.run('(string-to-num "23.0")')
16
+ result.should == 23.0
17
+ end
18
+
19
+ it "should evaluate its arguments" do
20
+ result = @interpreter.run('
21
+ (define a 2)
22
+ (string-to-num a)
23
+ ')
24
+ result.should == 2
25
+ end
26
+
27
+ end
28
+ end
@@ -0,0 +1,24 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe "Standard Library" do
4
+ describe "subtraction operator" do
5
+ before :each do
6
+ @interpreter = Flea::Interpreter.new
7
+ end
8
+
9
+ it "should subtract several numbers" do
10
+ result = @interpreter.run('(- 9 2 2)')
11
+ result.should == 5
12
+ end
13
+
14
+ it "should evaluate its arguments before subtracting them" do
15
+ result = @interpreter.run('
16
+ (define a 2)
17
+ (define b 9)
18
+ (- b a a)
19
+ ')
20
+ result.should == 5
21
+ end
22
+
23
+ end
24
+ end
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ require 'rspec'
3
+ require 'stringio'
4
+
5
+ require_files = []
6
+ require_files << File.join(File.dirname(__FILE__), '..', 'lib', 'flea.rb')
7
+
8
+ require_files.each do |file|
9
+ require File.expand_path(file)
10
+ end
metadata ADDED
@@ -0,0 +1,231 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: flea
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 0
9
+ version: 0.1.0
10
+ platform: ruby
11
+ authors:
12
+ - Aaron Gough
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2011-03-13 00:00:00 -05:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: sexpistol
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ version: "0"
31
+ type: :runtime
32
+ version_requirements: *id001
33
+ - !ruby/object:Gem::Dependency
34
+ name: any-spec
35
+ prerelease: false
36
+ requirement: &id002 !ruby/object:Gem::Requirement
37
+ none: false
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ segments:
42
+ - 0
43
+ version: "0"
44
+ type: :development
45
+ version_requirements: *id002
46
+ description: Flea is an extremely simple, but extremely extensible Lisp interpreter written in Ruby.
47
+ email: aaron@aarongough.com
48
+ executables:
49
+ - flea
50
+ - flea
51
+ extensions: []
52
+
53
+ extra_rdoc_files:
54
+ - MIT-LICENSE
55
+ - README.rdoc
56
+ files:
57
+ - .gitignore
58
+ - MIT-LICENSE
59
+ - README.rdoc
60
+ - Rakefile
61
+ - VERSION
62
+ - bin/flea
63
+ - examples/guess-the-number.scm
64
+ - flea-language-spec/README.rdoc
65
+ - flea-language-spec/flea-language-spec.yaml
66
+ - flea-language-spec/test-cases/01-display-and-basic-literals/01-display-string-literal.scm
67
+ - flea-language-spec/test-cases/01-display-and-basic-literals/02-display-integer-literal.scm
68
+ - flea-language-spec/test-cases/01-display-and-basic-literals/03-display-boolean-true-literal.scm
69
+ - flea-language-spec/test-cases/01-display-and-basic-literals/04-display-boolean-false-literal.scm
70
+ - flea-language-spec/test-cases/01-display-and-basic-literals/05-display-list-literal-using-quote.scm
71
+ - flea-language-spec/test-cases/01-display-and-basic-literals/06-display-identifier-quoted.scm
72
+ - flea-language-spec/test-cases/02-variables/01-define-with-string.scm
73
+ - flea-language-spec/test-cases/02-variables/02-define-with-integer.scm
74
+ - flea-language-spec/test-cases/02-variables/03-define-with-boolean-true.scm
75
+ - flea-language-spec/test-cases/02-variables/04-define-with-boolean-false.scm
76
+ - flea-language-spec/test-cases/02-variables/05-define-with-list.scm
77
+ - flea-language-spec/test-cases/03-basic-built-in-procedures/01-addition.scm
78
+ - flea-language-spec/test-cases/03-basic-built-in-procedures/02-subtraction.scm
79
+ - flea-language-spec/test-cases/03-basic-built-in-procedures/03-multiplication.scm
80
+ - flea-language-spec/test-cases/03-basic-built-in-procedures/04-division.scm
81
+ - flea-language-spec/test-cases/03-basic-built-in-procedures/05-equality-true-integer.scm
82
+ - flea-language-spec/test-cases/03-basic-built-in-procedures/06-equality-false-integer.scm
83
+ - flea-language-spec/test-cases/03-basic-built-in-procedures/07-equal?/01-equal?-true-integer.scm
84
+ - flea-language-spec/test-cases/03-basic-built-in-procedures/07-equal?/02-equal?-false-integer.scm
85
+ - flea-language-spec/test-cases/03-basic-built-in-procedures/07-equal?/03-equal?-true-string.scm
86
+ - flea-language-spec/test-cases/03-basic-built-in-procedures/07-equal?/04-equal?-false-string.scm
87
+ - flea-language-spec/test-cases/03-basic-built-in-procedures/07-equal?/05-equal?-true-boolean.scm
88
+ - flea-language-spec/test-cases/03-basic-built-in-procedures/07-equal?/06-equal?-false-boolean.scm
89
+ - flea-language-spec/test-cases/03-basic-built-in-procedures/07-equal?/07-equal?-true-list.scm
90
+ - flea-language-spec/test-cases/03-basic-built-in-procedures/07-equal?/08-equal?-false-list.scm
91
+ - flea-language-spec/test-cases/04-comma-quoting/01-comma-quoting.scm
92
+ - flea-language-spec/test-cases/05-lambda/01-lambda.scm
93
+ - flea-language-spec/test-cases/05-lambda/02-call-in-place-lambda.scm
94
+ - flea-language-spec/test-cases/05-lambda/03-define-with-lambda.scm
95
+ - flea-language-spec/test-cases/05-lambda/04-define-and-call-lambda.scm
96
+ - flea-language-spec/test-cases/05-lambda/05-lambda-repeated-argument.scm
97
+ - flea-language-spec/test-cases/05-lambda/06-lambda-list-argument.scm
98
+ - flea-language-spec/test-cases/05-lambda/07-lambda-n-or-more-arguments.scm
99
+ - flea-language-spec/test-cases/05-lambda/08-lambda-should-return-last-result.scm
100
+ - flea-language-spec/test-cases/06-if/01-if-true-single-arg.scm
101
+ - flea-language-spec/test-cases/06-if/02-if-false-single-arg.scm
102
+ - flea-language-spec/test-cases/06-if/03-if-true-two-args.scm
103
+ - flea-language-spec/test-cases/06-if/04-if-false-two-args.scm
104
+ - flea-language-spec/test-cases/07-set/01-should-not-set-undefined-variable.scm
105
+ - flea-language-spec/test-cases/07-set/02-set-previously-defined-variable.scm
106
+ - flea-language-spec/test-cases/08-derived-expressions/01-begin/01-begin.scm
107
+ - flea-language-spec/test-cases/09-list-manipulation/01-car.scm
108
+ - flea-language-spec/test-cases/09-list-manipulation/02-cdr.scm
109
+ - flea-language-spec/test-cases/09-list-manipulation/03-list-tail.scm
110
+ - flea-language-spec/test-cases/09-list-manipulation/04-append.scm
111
+ - flea-language-spec/test-cases/09-list-manipulation/05-list.scm
112
+ - flea-language-spec/test-cases/10-functional-examples/countdown.scm
113
+ - lib/flea.rb
114
+ - lib/flea/environment.rb
115
+ - lib/flea/interpreter.rb
116
+ - lib/flea/standard_library/addition_operator.scm
117
+ - lib/flea/standard_library/append.scm
118
+ - lib/flea/standard_library/begin.scm
119
+ - lib/flea/standard_library/car.scm
120
+ - lib/flea/standard_library/cdr.scm
121
+ - lib/flea/standard_library/cons.scm
122
+ - lib/flea/standard_library/display.scm
123
+ - lib/flea/standard_library/division_operator.scm
124
+ - lib/flea/standard_library/equality_operator.scm
125
+ - lib/flea/standard_library/gets.scm
126
+ - lib/flea/standard_library/greater_than.scm
127
+ - lib/flea/standard_library/if.scm
128
+ - lib/flea/standard_library/lambda.scm
129
+ - lib/flea/standard_library/less_than.scm
130
+ - lib/flea/standard_library/list.scm
131
+ - lib/flea/standard_library/list_predicate.scm
132
+ - lib/flea/standard_library/list_tail.scm
133
+ - lib/flea/standard_library/multiplication_operator.scm
134
+ - lib/flea/standard_library/null.scm
135
+ - lib/flea/standard_library/quote.scm
136
+ - lib/flea/standard_library/rand.scm
137
+ - lib/flea/standard_library/read.scm
138
+ - lib/flea/standard_library/set.scm
139
+ - lib/flea/standard_library/string_to_num.scm
140
+ - lib/flea/standard_library/subtraction_operator.scm
141
+ - spec/flea/environment_spec.rb
142
+ - spec/flea/interpreter_spec.rb
143
+ - spec/flea/standard_library/addition_operator_spec.rb
144
+ - spec/flea/standard_library/append_spec.rb
145
+ - spec/flea/standard_library/begin_spec.rb
146
+ - spec/flea/standard_library/car_spec.rb
147
+ - spec/flea/standard_library/cdr_spec.rb
148
+ - spec/flea/standard_library/cons_spec.rb
149
+ - spec/flea/standard_library/display_spec.rb
150
+ - spec/flea/standard_library/division_operator_spec.rb
151
+ - spec/flea/standard_library/equality_operator_spec.rb
152
+ - spec/flea/standard_library/gets_spec.rb
153
+ - spec/flea/standard_library/greater_than_spec.rb
154
+ - spec/flea/standard_library/if_spec.rb
155
+ - spec/flea/standard_library/lambda_spec.rb
156
+ - spec/flea/standard_library/less_than_spec.rb
157
+ - spec/flea/standard_library/list_predicate_spec.rb
158
+ - spec/flea/standard_library/list_spec.rb
159
+ - spec/flea/standard_library/list_tail_spec.rb
160
+ - spec/flea/standard_library/mutiplication_operator_spec.rb
161
+ - spec/flea/standard_library/null_spec.rb
162
+ - spec/flea/standard_library/quote_spec.rb
163
+ - spec/flea/standard_library/rand_spec.rb
164
+ - spec/flea/standard_library/read_spec.rb
165
+ - spec/flea/standard_library/set_spec.rb
166
+ - spec/flea/standard_library/string_to_num_spec.rb
167
+ - spec/flea/standard_library/subtraction_operator_spec.rb
168
+ - spec/spec_helper.rb
169
+ has_rdoc: true
170
+ homepage: http://github.com/aarongough/flea
171
+ licenses: []
172
+
173
+ post_install_message:
174
+ rdoc_options:
175
+ - --charset=UTF-8
176
+ - --line-numbers
177
+ - --inline-source
178
+ require_paths:
179
+ - lib
180
+ required_ruby_version: !ruby/object:Gem::Requirement
181
+ none: false
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ segments:
186
+ - 0
187
+ version: "0"
188
+ required_rubygems_version: !ruby/object:Gem::Requirement
189
+ none: false
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ segments:
194
+ - 0
195
+ version: "0"
196
+ requirements: []
197
+
198
+ rubyforge_project:
199
+ rubygems_version: 1.3.7
200
+ signing_key:
201
+ specification_version: 3
202
+ summary: A tiny but flexible Lisp interpreter written in Ruby
203
+ test_files:
204
+ - spec/flea/environment_spec.rb
205
+ - spec/flea/interpreter_spec.rb
206
+ - spec/flea/standard_library/addition_operator_spec.rb
207
+ - spec/flea/standard_library/append_spec.rb
208
+ - spec/flea/standard_library/begin_spec.rb
209
+ - spec/flea/standard_library/car_spec.rb
210
+ - spec/flea/standard_library/cdr_spec.rb
211
+ - spec/flea/standard_library/cons_spec.rb
212
+ - spec/flea/standard_library/display_spec.rb
213
+ - spec/flea/standard_library/division_operator_spec.rb
214
+ - spec/flea/standard_library/equality_operator_spec.rb
215
+ - spec/flea/standard_library/gets_spec.rb
216
+ - spec/flea/standard_library/greater_than_spec.rb
217
+ - spec/flea/standard_library/if_spec.rb
218
+ - spec/flea/standard_library/lambda_spec.rb
219
+ - spec/flea/standard_library/less_than_spec.rb
220
+ - spec/flea/standard_library/list_predicate_spec.rb
221
+ - spec/flea/standard_library/list_spec.rb
222
+ - spec/flea/standard_library/list_tail_spec.rb
223
+ - spec/flea/standard_library/mutiplication_operator_spec.rb
224
+ - spec/flea/standard_library/null_spec.rb
225
+ - spec/flea/standard_library/quote_spec.rb
226
+ - spec/flea/standard_library/rand_spec.rb
227
+ - spec/flea/standard_library/read_spec.rb
228
+ - spec/flea/standard_library/set_spec.rb
229
+ - spec/flea/standard_library/string_to_num_spec.rb
230
+ - spec/flea/standard_library/subtraction_operator_spec.rb
231
+ - spec/spec_helper.rb