gobstones 0.0.1.1 → 0.0.2

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 (128) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -3
  3. data/.ruby-version +1 -1
  4. data/.travis.yml +1 -1
  5. data/CHANGELOG +22 -2
  6. data/Gemfile +3 -3
  7. data/Gemfile.lock +32 -27
  8. data/bin/gobstones +1 -1
  9. data/examples/.gitkeep +0 -0
  10. data/gobstones.gemspec +2 -2
  11. data/lib/gobstones/cli/board_template +1 -1
  12. data/lib/gobstones/cli/printer.rb +1 -1
  13. data/lib/gobstones/cli/runner.rb +8 -2
  14. data/lib/gobstones/extensions/all.rb +2 -1
  15. data/lib/gobstones/extensions/boolean.rb +1 -1
  16. data/lib/gobstones/extensions/fixnum.rb +1 -1
  17. data/lib/gobstones/extensions/string.rb +9 -0
  18. data/lib/gobstones/lang/all.rb +1 -1
  19. data/lib/gobstones/lang/commands/all.rb +3 -2
  20. data/lib/gobstones/lang/commands/boom_cmd.rb +6 -3
  21. data/lib/gobstones/lang/commands/command_block.rb +1 -1
  22. data/lib/gobstones/lang/commands/conditional_cmd.rb +5 -1
  23. data/lib/gobstones/lang/commands/ir_al_origen_cmd.rb +1 -1
  24. data/lib/gobstones/lang/commands/mover_cmd.rb +4 -2
  25. data/lib/gobstones/lang/commands/multiple_assignment.rb +35 -0
  26. data/lib/gobstones/lang/commands/poner_cmd.rb +8 -4
  27. data/lib/gobstones/lang/commands/procedure_call.rb +1 -9
  28. data/lib/gobstones/lang/commands/repeat_with_cmd.rb +10 -6
  29. data/lib/gobstones/lang/commands/sacar_cmd.rb +9 -7
  30. data/lib/gobstones/lang/commands/{assignments.rb → single_assignment.rb} +5 -3
  31. data/lib/gobstones/lang/commands/skip_cmd.rb +2 -2
  32. data/lib/gobstones/lang/commands/vaciar_tablero_cmd.rb +1 -1
  33. data/lib/gobstones/lang/commands/while_cmd.rb +1 -1
  34. data/lib/gobstones/lang/definitions/all.rb +1 -1
  35. data/lib/gobstones/lang/definitions/definition.rb +47 -5
  36. data/lib/gobstones/lang/definitions/definition_call.rb +17 -5
  37. data/lib/gobstones/lang/definitions/function.rb +9 -0
  38. data/lib/gobstones/lang/definitions/main.rb +1 -1
  39. data/lib/gobstones/lang/definitions/no_return_statement.rb +7 -3
  40. data/lib/gobstones/lang/definitions/procedure.rb +5 -20
  41. data/lib/gobstones/lang/definitions/return_from_function.rb +12 -2
  42. data/lib/gobstones/lang/definitions/return_from_main.rb +5 -1
  43. data/lib/gobstones/lang/definitions/var_tuple.rb +13 -1
  44. data/lib/gobstones/lang/expressions/all.rb +1 -1
  45. data/lib/gobstones/lang/expressions/arithmetic_expressions.rb +1 -1
  46. data/lib/gobstones/lang/expressions/boolean_expressions.rb +3 -2
  47. data/lib/gobstones/lang/expressions/enclosed_by_parens_expression.rb +17 -0
  48. data/lib/gobstones/lang/expressions/function_call.rb +1 -1
  49. data/lib/gobstones/lang/expressions/one_arg_expression.rb +16 -4
  50. data/lib/gobstones/lang/expressions/primitive_functions.rb +18 -12
  51. data/lib/gobstones/lang/expressions/two_arg_expression.rb +7 -3
  52. data/lib/gobstones/lang/expressions/type_bound_functions.rb +1 -1
  53. data/lib/gobstones/lang/expressions/var_name.rb +9 -3
  54. data/lib/gobstones/lang/literals/all.rb +1 -1
  55. data/lib/gobstones/lang/literals/colors.rb +1 -1
  56. data/lib/gobstones/lang/literals/literal.rb +31 -21
  57. data/lib/gobstones/lang/literals/number.rb +1 -1
  58. data/lib/gobstones/lang/program.rb +13 -4
  59. data/lib/gobstones/modules/equal_by_class.rb +1 -1
  60. data/lib/gobstones/parser/ast/ast.rb +12 -8
  61. data/lib/gobstones/parser/grammar/gobstones.treetop +4 -4
  62. data/lib/gobstones/parser/parse_error.rb +1 -1
  63. data/lib/gobstones/runner/all.rb +1 -2
  64. data/lib/gobstones/runner/board.rb +13 -4
  65. data/lib/gobstones/runner/cell.rb +10 -0
  66. data/lib/gobstones/runner/errors/all.rb +1 -1
  67. data/lib/gobstones/runner/errors/definition_not_found_error.rb +1 -1
  68. data/lib/gobstones/runner/execution_context.rb +66 -16
  69. data/lib/gobstones/runner/head.rb +17 -3
  70. data/spec/gobstones_lang_test_objects.rb +75 -0
  71. data/spec/lang/commands/boom_cmd_spec.rb +3 -3
  72. data/spec/lang/commands/cmd_block_spec.rb +14 -14
  73. data/spec/lang/commands/if_cmd_spec.rb +21 -20
  74. data/spec/lang/commands/ir_al_origen_cmd_spec.rb +3 -3
  75. data/spec/lang/commands/mover_cmd_spec.rb +12 -14
  76. data/spec/lang/commands/multiple_assignment_spec.rb +37 -0
  77. data/spec/lang/commands/poner_cmd_spec.rb +13 -14
  78. data/spec/lang/commands/procedure_call_spec.rb +19 -24
  79. data/spec/lang/commands/procedure_spec.rb +32 -36
  80. data/spec/lang/commands/repeat_with_cmd_spec.rb +39 -20
  81. data/spec/lang/commands/sacar_cmd_spec.rb +17 -16
  82. data/spec/lang/commands/single_assignment_spec.rb +13 -0
  83. data/spec/lang/commands/skip_cmd_spec.rb +2 -2
  84. data/spec/lang/commands/vaciar_tablero_cmd_spec.rb +7 -6
  85. data/spec/lang/commands/while_cmd_spec.rb +21 -15
  86. data/spec/lang/definitions/no_return_statement_spec.rb +10 -0
  87. data/spec/lang/definitions/var_tuple_spec.rb +16 -0
  88. data/spec/lang/expressions/arithmetic_expressions_spec.rb +15 -15
  89. data/spec/lang/expressions/boolean_expressions_spec.rb +35 -25
  90. data/spec/lang/expressions/comparison_expressions_spec.rb +25 -28
  91. data/spec/lang/expressions/enclosed_by_parens_expression_spec.rb +11 -0
  92. data/spec/lang/expressions/function_call_spec.rb +29 -0
  93. data/spec/lang/expressions/primitive_functions_spec.rb +60 -62
  94. data/spec/lang/expressions/type_bound_functions_spec.rb +13 -13
  95. data/spec/lang/expressions/var_name_spec.rb +20 -8
  96. data/spec/lang/literals/booleans_spec.rb +5 -7
  97. data/spec/lang/literals/colors_spec.rb +4 -4
  98. data/spec/lang/literals/directions_spec.rb +12 -12
  99. data/spec/lang/literals/numbers_spec.rb +2 -2
  100. data/spec/matchers/parse_matcher.rb +9 -10
  101. data/spec/parser/arithmetic_expressions_spec.rb +19 -19
  102. data/spec/parser/assignments_spec.rb +24 -10
  103. data/spec/parser/boolean_expressions_spec.rb +18 -18
  104. data/spec/parser/command_block_spec.rb +17 -19
  105. data/spec/parser/data_types_spec.rb +23 -23
  106. data/spec/parser/function_calls_spec.rb +13 -12
  107. data/spec/parser/function_definitions_spec.rb +13 -18
  108. data/spec/parser/gobstones_program_spec.rb +15 -15
  109. data/spec/parser/if_command_spec.rb +13 -12
  110. data/spec/parser/main_definition_spec.rb +12 -12
  111. data/spec/parser/nested_expressions_spec.rb +16 -20
  112. data/spec/parser/primitive_expressions_spec.rb +27 -33
  113. data/spec/parser/procedure_calls_spec.rb +12 -12
  114. data/spec/parser/procedure_definitions_spec.rb +10 -16
  115. data/spec/parser/repeat_with_command_spec.rb +7 -10
  116. data/spec/parser/simple_commands_spec.rb +10 -10
  117. data/spec/parser/treetop_parser_spec.rb +11 -10
  118. data/spec/parser/var_tuple_spec.rb +7 -11
  119. data/spec/parser/while_command_spec.rb +9 -9
  120. data/spec/runner/board_spec.rb +23 -27
  121. data/spec/runner/cell_spec.rb +34 -38
  122. data/spec/runner/execution_context_spec.rb +38 -24
  123. data/spec/runner/head_spec.rb +54 -63
  124. data/spec/spec_helper.rb +4 -1
  125. data/spec/type_checker_spec.rb +13 -13
  126. metadata +33 -18
  127. data/lib/gobstones/lang/expressions/parentheses_expression.rb +0 -13
  128. data/spec/lang/commands/assignments_spec.rb +0 -13
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gobstones
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nahuel Garbezza
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-26 00:00:00.000000000 Z
11
+ date: 2015-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2'
19
+ version: '3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2'
26
+ version: '3'
27
27
  description: Ruby implementation of the Gobstones programming language
28
28
  email:
29
29
  - n.garbezza@gmail.com
@@ -32,11 +32,11 @@ executables:
32
32
  extensions: []
33
33
  extra_rdoc_files: []
34
34
  files:
35
- - .gitignore
36
- - .rspec
37
- - .ruby-version
38
- - .simplecov
39
- - .travis.yml
35
+ - ".gitignore"
36
+ - ".rspec"
37
+ - ".ruby-version"
38
+ - ".simplecov"
39
+ - ".travis.yml"
40
40
  - CHANGELOG
41
41
  - Gemfile
42
42
  - Gemfile.lock
@@ -44,6 +44,7 @@ files:
44
44
  - README.md
45
45
  - Rakefile
46
46
  - bin/gobstones
47
+ - examples/.gitkeep
47
48
  - gobstones.gemspec
48
49
  - lib/gobstones/cli/board_template
49
50
  - lib/gobstones/cli/printer.rb
@@ -51,19 +52,21 @@ files:
51
52
  - lib/gobstones/extensions/all.rb
52
53
  - lib/gobstones/extensions/boolean.rb
53
54
  - lib/gobstones/extensions/fixnum.rb
55
+ - lib/gobstones/extensions/string.rb
54
56
  - lib/gobstones/lang/all.rb
55
57
  - lib/gobstones/lang/commands/all.rb
56
- - lib/gobstones/lang/commands/assignments.rb
57
58
  - lib/gobstones/lang/commands/boom_cmd.rb
58
59
  - lib/gobstones/lang/commands/command_block.rb
59
60
  - lib/gobstones/lang/commands/conditional_cmd.rb
60
61
  - lib/gobstones/lang/commands/if_cmd.rb
61
62
  - lib/gobstones/lang/commands/ir_al_origen_cmd.rb
62
63
  - lib/gobstones/lang/commands/mover_cmd.rb
64
+ - lib/gobstones/lang/commands/multiple_assignment.rb
63
65
  - lib/gobstones/lang/commands/poner_cmd.rb
64
66
  - lib/gobstones/lang/commands/procedure_call.rb
65
67
  - lib/gobstones/lang/commands/repeat_with_cmd.rb
66
68
  - lib/gobstones/lang/commands/sacar_cmd.rb
69
+ - lib/gobstones/lang/commands/single_assignment.rb
67
70
  - lib/gobstones/lang/commands/skip_cmd.rb
68
71
  - lib/gobstones/lang/commands/vaciar_tablero_cmd.rb
69
72
  - lib/gobstones/lang/commands/while_cmd.rb
@@ -81,9 +84,9 @@ files:
81
84
  - lib/gobstones/lang/expressions/arithmetic_expressions.rb
82
85
  - lib/gobstones/lang/expressions/boolean_expressions.rb
83
86
  - lib/gobstones/lang/expressions/comparison_expressions.rb
87
+ - lib/gobstones/lang/expressions/enclosed_by_parens_expression.rb
84
88
  - lib/gobstones/lang/expressions/function_call.rb
85
89
  - lib/gobstones/lang/expressions/one_arg_expression.rb
86
- - lib/gobstones/lang/expressions/parentheses_expression.rb
87
90
  - lib/gobstones/lang/expressions/primitive_functions.rb
88
91
  - lib/gobstones/lang/expressions/two_arg_expression.rb
89
92
  - lib/gobstones/lang/expressions/type_bound_functions.rb
@@ -115,23 +118,29 @@ files:
115
118
  - lib/gobstones/runner/execution_context.rb
116
119
  - lib/gobstones/runner/head.rb
117
120
  - lib/gobstones/type_check_result.rb
118
- - spec/lang/commands/assignments_spec.rb
121
+ - spec/gobstones_lang_test_objects.rb
119
122
  - spec/lang/commands/boom_cmd_spec.rb
120
123
  - spec/lang/commands/cmd_block_spec.rb
121
124
  - spec/lang/commands/if_cmd_spec.rb
122
125
  - spec/lang/commands/ir_al_origen_cmd_spec.rb
123
126
  - spec/lang/commands/mover_cmd_spec.rb
127
+ - spec/lang/commands/multiple_assignment_spec.rb
124
128
  - spec/lang/commands/poner_cmd_spec.rb
125
129
  - spec/lang/commands/procedure_call_spec.rb
126
130
  - spec/lang/commands/procedure_spec.rb
127
131
  - spec/lang/commands/repeat_with_cmd_spec.rb
128
132
  - spec/lang/commands/sacar_cmd_spec.rb
133
+ - spec/lang/commands/single_assignment_spec.rb
129
134
  - spec/lang/commands/skip_cmd_spec.rb
130
135
  - spec/lang/commands/vaciar_tablero_cmd_spec.rb
131
136
  - spec/lang/commands/while_cmd_spec.rb
137
+ - spec/lang/definitions/no_return_statement_spec.rb
138
+ - spec/lang/definitions/var_tuple_spec.rb
132
139
  - spec/lang/expressions/arithmetic_expressions_spec.rb
133
140
  - spec/lang/expressions/boolean_expressions_spec.rb
134
141
  - spec/lang/expressions/comparison_expressions_spec.rb
142
+ - spec/lang/expressions/enclosed_by_parens_expression_spec.rb
143
+ - spec/lang/expressions/function_call_spec.rb
135
144
  - spec/lang/expressions/primitive_functions_spec.rb
136
145
  - spec/lang/expressions/type_bound_functions_spec.rb
137
146
  - spec/lang/expressions/var_name_spec.rb
@@ -175,38 +184,44 @@ require_paths:
175
184
  - lib
176
185
  required_ruby_version: !ruby/object:Gem::Requirement
177
186
  requirements:
178
- - - '>='
187
+ - - ">="
179
188
  - !ruby/object:Gem::Version
180
189
  version: 1.9.3
181
190
  required_rubygems_version: !ruby/object:Gem::Requirement
182
191
  requirements:
183
- - - '>='
192
+ - - ">="
184
193
  - !ruby/object:Gem::Version
185
194
  version: 1.3.6
186
195
  requirements: []
187
196
  rubyforge_project:
188
- rubygems_version: 2.0.2
197
+ rubygems_version: 2.4.5
189
198
  signing_key:
190
199
  specification_version: 4
191
200
  summary: Ruby implementation of the Gobstones programming language
192
201
  test_files:
193
- - spec/lang/commands/assignments_spec.rb
202
+ - spec/gobstones_lang_test_objects.rb
194
203
  - spec/lang/commands/boom_cmd_spec.rb
195
204
  - spec/lang/commands/cmd_block_spec.rb
196
205
  - spec/lang/commands/if_cmd_spec.rb
197
206
  - spec/lang/commands/ir_al_origen_cmd_spec.rb
198
207
  - spec/lang/commands/mover_cmd_spec.rb
208
+ - spec/lang/commands/multiple_assignment_spec.rb
199
209
  - spec/lang/commands/poner_cmd_spec.rb
200
210
  - spec/lang/commands/procedure_call_spec.rb
201
211
  - spec/lang/commands/procedure_spec.rb
202
212
  - spec/lang/commands/repeat_with_cmd_spec.rb
203
213
  - spec/lang/commands/sacar_cmd_spec.rb
214
+ - spec/lang/commands/single_assignment_spec.rb
204
215
  - spec/lang/commands/skip_cmd_spec.rb
205
216
  - spec/lang/commands/vaciar_tablero_cmd_spec.rb
206
217
  - spec/lang/commands/while_cmd_spec.rb
218
+ - spec/lang/definitions/no_return_statement_spec.rb
219
+ - spec/lang/definitions/var_tuple_spec.rb
207
220
  - spec/lang/expressions/arithmetic_expressions_spec.rb
208
221
  - spec/lang/expressions/boolean_expressions_spec.rb
209
222
  - spec/lang/expressions/comparison_expressions_spec.rb
223
+ - spec/lang/expressions/enclosed_by_parens_expression_spec.rb
224
+ - spec/lang/expressions/function_call_spec.rb
210
225
  - spec/lang/expressions/primitive_functions_spec.rb
211
226
  - spec/lang/expressions/type_bound_functions_spec.rb
212
227
  - spec/lang/expressions/var_name_spec.rb
@@ -1,13 +0,0 @@
1
- require 'gobstones/lang/expressions/one_arg_expression'
2
-
3
- module Gobstones
4
-
5
- module Lang
6
-
7
- class ParenthesesExpr < OneArgExpression
8
-
9
- end
10
-
11
- end
12
-
13
- end
@@ -1,13 +0,0 @@
1
- describe SingleAssignment do
2
-
3
- let(:context) { ExecutionContext.new }
4
- let(:a) { VarName.new 'a' }
5
-
6
- it "should associate the var name with the evaluated expression" do
7
- assign = SingleAssignment.new a, Add.new(3.to_gbs_num, 4.to_gbs_num)
8
- assign.evaluate context
9
- expect(context.has_variable_named?('a')).to be_true
10
- expect(context.get(a)).to eq(7.to_gbs_num)
11
- end
12
-
13
- end