dagon 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 (80) hide show
  1. data/.gitignore +2 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE +22 -0
  5. data/README.md +86 -0
  6. data/Rakefile +40 -0
  7. data/bin/dagon +44 -0
  8. data/bin/dspec +35 -0
  9. data/bin/idg +15 -0
  10. data/bin/idgr +16 -0
  11. data/build/parser.rb +1015 -0
  12. data/build/scanner.rb +686 -0
  13. data/core/array.rb +64 -0
  14. data/core/block.rb +38 -0
  15. data/core/class.rb +91 -0
  16. data/core/false.rb +38 -0
  17. data/core/float.rb +93 -0
  18. data/core/frame.rb +24 -0
  19. data/core/hash.rb +51 -0
  20. data/core/integer.rb +98 -0
  21. data/core/object.rb +50 -0
  22. data/core/string.rb +57 -0
  23. data/core/true.rb +37 -0
  24. data/core/vm.rb +125 -0
  25. data/core/void.rb +37 -0
  26. data/dagon.gemspec +19 -0
  27. data/dagon.vim +45 -0
  28. data/dagon/ast/array_node.rb +17 -0
  29. data/dagon/ast/assignment_node.rb +21 -0
  30. data/dagon/ast/block_node.rb +19 -0
  31. data/dagon/ast/class_definition_node.rb +24 -0
  32. data/dagon/ast/constant_ref_node.rb +15 -0
  33. data/dagon/ast/frame.rb +23 -0
  34. data/dagon/ast/function_call_node.rb +33 -0
  35. data/dagon/ast/function_definition_node.rb +15 -0
  36. data/dagon/ast/function_node.rb +23 -0
  37. data/dagon/ast/hash_node.rb +16 -0
  38. data/dagon/ast/if_node.rb +20 -0
  39. data/dagon/ast/instance_init_node.rb +28 -0
  40. data/dagon/ast/instance_var_ref_node.rb +21 -0
  41. data/dagon/ast/literal_node.rb +23 -0
  42. data/dagon/ast/node.rb +22 -0
  43. data/dagon/ast/root_node.rb +19 -0
  44. data/dagon/ast/string_node.rb +16 -0
  45. data/dagon/ast/unary_function_call_node.rb +17 -0
  46. data/dagon/ast/var_ref_node.rb +19 -0
  47. data/dagon/ast/while_node.rb +17 -0
  48. data/dagon/parser.y +151 -0
  49. data/dagon/scanner.rl +143 -0
  50. data/examples/assert.dg +8 -0
  51. data/examples/assignment.dg +2 -0
  52. data/examples/block.dg +8 -0
  53. data/examples/class.dg +6 -0
  54. data/examples/conditional.dg +3 -0
  55. data/examples/conditions.dg +6 -0
  56. data/examples/equality.dg +6 -0
  57. data/examples/error.dg +1 -0
  58. data/examples/eval.dg +1 -0
  59. data/examples/fibonacci.dg +15 -0
  60. data/examples/greeter.dg +6 -0
  61. data/examples/input.dg +3 -0
  62. data/examples/instance_variables.dg +11 -0
  63. data/examples/iterate.dg +2 -0
  64. data/examples/method_call.dg +9 -0
  65. data/examples/method_definition.dg +4 -0
  66. data/examples/operators.dg +6 -0
  67. data/examples/output.dg +1 -0
  68. data/examples/require.dg +1 -0
  69. data/spec/array_spec.dg +26 -0
  70. data/spec/assertions.dg +11 -0
  71. data/spec/boolean_spec.dg +48 -0
  72. data/spec/dspec.dg +16 -0
  73. data/spec/float_spec.dg +15 -0
  74. data/spec/hash_spec.dg +6 -0
  75. data/spec/number_spec.dg +18 -0
  76. data/spec/return_spec.dg +12 -0
  77. data/spec/string_spec.dg +18 -0
  78. data/spec/void_spec.dg +9 -0
  79. data/spec/while_spec.dg +7 -0
  80. metadata +180 -0
@@ -0,0 +1,9 @@
1
+ void-test:
2
+ if false
3
+ true
4
+
5
+ describe("Void") ->
6
+ it("is equal to itself") ->
7
+ assert-equal(void, void)
8
+ it("is returned from a function with a false conditional") ->
9
+ assert-equal(void, void-test)
@@ -0,0 +1,7 @@
1
+ describe("while") ->
2
+ it("executes until condition is false") ->
3
+ x: 0
4
+ while x < 5
5
+ x: x + 1
6
+
7
+ assert-equal(x, 5)
metadata ADDED
@@ -0,0 +1,180 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dagon
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.1.0
6
+ platform: ruby
7
+ authors:
8
+ - Caleb Thompson
9
+ - Matt Mongeau
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2013-02-26 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rake
17
+ version_requirements: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ requirement: !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ! '>='
27
+ - !ruby/object:Gem::Version
28
+ version: '0'
29
+ type: :development
30
+ prerelease: false
31
+ - !ruby/object:Gem::Dependency
32
+ name: racc
33
+ version_requirements: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirement: !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ type: :development
46
+ prerelease: false
47
+ - !ruby/object:Gem::Dependency
48
+ name: pry
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ requirement: !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ! '>='
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ type: :development
62
+ prerelease: false
63
+ description: ! 'The Dagon programming language: whitespace, enumerators, blocks, One
64
+ Way'
65
+ email:
66
+ - cjaysson@gmail.com
67
+ - halogenandtoast@gmail.com
68
+ executables:
69
+ - dagon
70
+ - dspec
71
+ - idgr
72
+ extensions: []
73
+ extra_rdoc_files: []
74
+ files:
75
+ - .gitignore
76
+ - .rspec
77
+ - Gemfile
78
+ - LICENSE
79
+ - README.md
80
+ - Rakefile
81
+ - bin/dagon
82
+ - bin/dspec
83
+ - bin/idg
84
+ - bin/idgr
85
+ - build/parser.rb
86
+ - build/scanner.rb
87
+ - core/array.rb
88
+ - core/block.rb
89
+ - core/class.rb
90
+ - core/false.rb
91
+ - core/float.rb
92
+ - core/frame.rb
93
+ - core/hash.rb
94
+ - core/integer.rb
95
+ - core/object.rb
96
+ - core/string.rb
97
+ - core/true.rb
98
+ - core/vm.rb
99
+ - core/void.rb
100
+ - dagon.gemspec
101
+ - dagon.vim
102
+ - dagon/ast/array_node.rb
103
+ - dagon/ast/assignment_node.rb
104
+ - dagon/ast/block_node.rb
105
+ - dagon/ast/class_definition_node.rb
106
+ - dagon/ast/constant_ref_node.rb
107
+ - dagon/ast/frame.rb
108
+ - dagon/ast/function_call_node.rb
109
+ - dagon/ast/function_definition_node.rb
110
+ - dagon/ast/function_node.rb
111
+ - dagon/ast/hash_node.rb
112
+ - dagon/ast/if_node.rb
113
+ - dagon/ast/instance_init_node.rb
114
+ - dagon/ast/instance_var_ref_node.rb
115
+ - dagon/ast/literal_node.rb
116
+ - dagon/ast/node.rb
117
+ - dagon/ast/root_node.rb
118
+ - dagon/ast/string_node.rb
119
+ - dagon/ast/unary_function_call_node.rb
120
+ - dagon/ast/var_ref_node.rb
121
+ - dagon/ast/while_node.rb
122
+ - dagon/parser.y
123
+ - dagon/scanner.rl
124
+ - examples/assert.dg
125
+ - examples/assignment.dg
126
+ - examples/block.dg
127
+ - examples/class.dg
128
+ - examples/conditional.dg
129
+ - examples/conditions.dg
130
+ - examples/equality.dg
131
+ - examples/error.dg
132
+ - examples/eval.dg
133
+ - examples/fibonacci.dg
134
+ - examples/greeter.dg
135
+ - examples/input.dg
136
+ - examples/instance_variables.dg
137
+ - examples/iterate.dg
138
+ - examples/method_call.dg
139
+ - examples/method_definition.dg
140
+ - examples/operators.dg
141
+ - examples/output.dg
142
+ - examples/require.dg
143
+ - spec/array_spec.dg
144
+ - spec/assertions.dg
145
+ - spec/boolean_spec.dg
146
+ - spec/dspec.dg
147
+ - spec/float_spec.dg
148
+ - spec/hash_spec.dg
149
+ - spec/number_spec.dg
150
+ - spec/return_spec.dg
151
+ - spec/string_spec.dg
152
+ - spec/void_spec.dg
153
+ - spec/while_spec.dg
154
+ homepage: https://github.com/calebthompson/dagon
155
+ licenses: []
156
+ post_install_message:
157
+ rdoc_options: []
158
+ require_paths:
159
+ - core
160
+ - dagon
161
+ required_ruby_version: !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ required_rubygems_version: !ruby/object:Gem::Requirement
168
+ none: false
169
+ requirements:
170
+ - - ! '>='
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ requirements: []
174
+ rubyforge_project:
175
+ rubygems_version: 1.8.25
176
+ signing_key:
177
+ specification_version: 3
178
+ summary: The Esoteric Order of Dagon
179
+ test_files: []
180
+ has_rdoc: