dagon 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: