cauldron 0.1.3 → 0.1.5

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 (409) hide show
  1. data/.gitignore +51 -0
  2. data/Gemfile +6 -3
  3. data/Gemfile.lock +16 -3
  4. data/Rakefile +94 -92
  5. data/VERSION +1 -1
  6. data/bin/cauldron +2 -2
  7. data/cauldron.gemspec +15 -451
  8. data/features/cauldron_new_approach.feature +46 -0
  9. data/features/step_definitions/cauldron_steps.rb +11 -0
  10. data/features/step_definitions/terminal_steps.rb +0 -2
  11. data/features/support/env.rb +11 -1
  12. data/features/support/hooks.rb +5 -0
  13. data/lib/cauldron.rb +13 -7
  14. data/lib/cauldron/array_reverse_operator.rb +39 -0
  15. data/lib/cauldron/concat_operator.rb +34 -0
  16. data/lib/cauldron/if_relationship.rb +37 -0
  17. data/lib/cauldron/numeric_operator.rb +45 -0
  18. data/lib/cauldron/pot.rb +54 -162
  19. data/lib/cauldron/relationship.rb +5 -0
  20. data/lib/cauldron/terminal.rb +4 -60
  21. data/lib/cauldron/version.rb +3 -0
  22. data/lib/core/string.rb +21 -0
  23. data/sandbox.rb +27 -6
  24. data/spec/cauldron/array_reverse_operator_spec.rb +59 -0
  25. data/spec/cauldron/concat_operator_spec.rb +89 -0
  26. data/spec/cauldron/if_relationship_spec.rb +25 -0
  27. data/spec/cauldron/numeric_operator_spec.rb +70 -0
  28. data/spec/cauldron/pot_spec.rb +81 -151
  29. data/spec/cauldron/terminal_spec.rb +1 -39
  30. data/spec/examples/adding_if_statement.yml +13 -0
  31. data/spec/examples/simple_head_theory.txt +13 -0
  32. data/spec/spec_helper.rb +1 -14
  33. data/tasks/theory_tasks.rake +207 -207
  34. metadata +92 -532
  35. data/cauldron/.autotest +0 -23
  36. data/cauldron/History.txt +0 -6
  37. data/cauldron/Manifest.txt +0 -8
  38. data/cauldron/README.txt +0 -57
  39. data/cauldron/Rakefile +0 -27
  40. data/cauldron/bin/cauldron +0 -3
  41. data/cauldron/lib/cauldron.rb +0 -3
  42. data/cauldron/test/test_cauldron.rb +0 -8
  43. data/features/cauldron_example_cases.feature +0 -13
  44. data/features/cauldron_generates_runtime_method.feature +0 -16
  45. data/features/cauldron_generates_single_paramter_methods.feature +0 -25
  46. data/features/cauldron_interactive_start_terminal.feature +0 -17
  47. data/features/cauldron_quit_terminal.feature +0 -9
  48. data/features/cauldron_start_terminal.feature +0 -12
  49. data/features/support/method_1.example +0 -3
  50. data/features/support/method_2.example +0 -6
  51. data/lib/Chain.rb +0 -771
  52. data/lib/ChainMapping.rb +0 -172
  53. data/lib/CodeHandler.rb +0 -513
  54. data/lib/Mapping.rb +0 -27
  55. data/lib/MappingValues.rb +0 -24
  56. data/lib/PartialChain.rb +0 -253
  57. data/lib/Theory.rb +0 -295
  58. data/lib/UnifiedChain.rb +0 -351
  59. data/lib/cauldron/conversion.rb +0 -15
  60. data/lib/cauldron/demos.rb +0 -280
  61. data/lib/cauldron/env.rb +0 -1
  62. data/lib/cauldron/sexp2cauldron.rb +0 -139
  63. data/lib/cauldron/theory_factory.rb +0 -10
  64. data/lib/cauldron/util/home.rb +0 -21
  65. data/lib/cauldron/util/saver.rb +0 -45
  66. data/lib/core/ActsAsCode.rb +0 -25
  67. data/lib/core/BlockToken.rb +0 -33
  68. data/lib/core/CCall.rb +0 -7
  69. data/lib/core/CTestCase.rb +0 -27
  70. data/lib/core/ClassMethodCallContainer.rb +0 -58
  71. data/lib/core/Container.rb +0 -95
  72. data/lib/core/InstanceCallContainer.rb +0 -298
  73. data/lib/core/MethodUsage.rb +0 -65
  74. data/lib/core/PrintVariables.rb +0 -25
  75. data/lib/core/TheoryGenerator.rb +0 -753
  76. data/lib/core/Token.rb +0 -7
  77. data/lib/core/assignment/Assignment.rb +0 -18
  78. data/lib/core/assignment/Equal.rb +0 -39
  79. data/lib/core/assignment/Equivalent.rb +0 -20
  80. data/lib/core/assignment/NotEqual.rb +0 -14
  81. data/lib/core/call_container/CallContainer.rb +0 -72
  82. data/lib/core/class_method_call/New.rb +0 -15
  83. data/lib/core/class_method_call/RuntimeClassMethodCall.rb +0 -31
  84. data/lib/core/declaration/Declaration.rb +0 -16
  85. data/lib/core/declaration/LiteralDeclaration.rb +0 -47
  86. data/lib/core/declaration/VariableDeclaration.rb +0 -59
  87. data/lib/core/instance_call/ArrayEach.rb +0 -23
  88. data/lib/core/instance_call/ArrayLength.rb +0 -15
  89. data/lib/core/instance_call/Chop.rb +0 -19
  90. data/lib/core/instance_call/Copy.rb +0 -22
  91. data/lib/core/instance_call/DeclaredVariable.rb +0 -18
  92. data/lib/core/instance_call/InstanceCall.rb +0 -77
  93. data/lib/core/instance_call/Params.rb +0 -15
  94. data/lib/core/instance_call/Push.rb +0 -20
  95. data/lib/core/instance_call/StringLength.rb +0 -32
  96. data/lib/core/instance_call/Times.rb +0 -20
  97. data/lib/core/instance_call/instance_calls.rb +0 -176
  98. data/lib/core/instance_call/length_equal.rb +0 -15
  99. data/lib/core/kernal/EvalCall.rb +0 -15
  100. data/lib/core/kernal/LocalVariablesCall.rb +0 -15
  101. data/lib/core/literal/Literal.rb +0 -111
  102. data/lib/core/literal/Raw.rb +0 -23
  103. data/lib/core/literal/RuntimeMethodLiteral.rb +0 -21
  104. data/lib/core/literal/StatementLiteral.rb +0 -28
  105. data/lib/core/method_call/AvailableVariablesCall.rb +0 -25
  106. data/lib/core/method_call/ClassCall.rb +0 -33
  107. data/lib/core/method_call/DefCall.rb +0 -72
  108. data/lib/core/method_call/EvaluateClassCall.rb +0 -29
  109. data/lib/core/method_call/MethodNameCall.rb +0 -27
  110. data/lib/core/method_call/ToDeclarationCall.rb +0 -15
  111. data/lib/core/requirement/Requirement.rb +0 -292
  112. data/lib/core/runtime_class/ArrayClass.rb +0 -19
  113. data/lib/core/runtime_class/ClassCallClass.rb +0 -23
  114. data/lib/core/runtime_class/ClassEvaluationClass.rb +0 -19
  115. data/lib/core/runtime_class/ClassName.rb +0 -18
  116. data/lib/core/runtime_class/DefCallClass.rb +0 -21
  117. data/lib/core/runtime_class/EqualClass.rb +0 -19
  118. data/lib/core/runtime_class/FixnumClass.rb +0 -15
  119. data/lib/core/runtime_class/InstanceCallClass.rb +0 -19
  120. data/lib/core/runtime_class/InstanceCallContainerClass.rb +0 -16
  121. data/lib/core/runtime_class/InstanceClassCallClass.rb +0 -19
  122. data/lib/core/runtime_class/LiteralClass.rb +0 -19
  123. data/lib/core/runtime_class/MethodParameterClass.rb +0 -27
  124. data/lib/core/runtime_class/MethodUsageClass.rb +0 -27
  125. data/lib/core/runtime_class/RequirementClass.rb +0 -19
  126. data/lib/core/runtime_class/ReturnClass.rb +0 -21
  127. data/lib/core/runtime_class/RuntimeClass.rb +0 -30
  128. data/lib/core/runtime_class/RuntimeClassClass.rb +0 -19
  129. data/lib/core/runtime_class/RuntimeMethodClass.rb +0 -34
  130. data/lib/core/runtime_class/StatementClass.rb +0 -53
  131. data/lib/core/runtime_class/StringClass.rb +0 -23
  132. data/lib/core/runtime_class/StringLengthClass.rb +0 -19
  133. data/lib/core/runtime_class/StringVariableClass.rb +0 -19
  134. data/lib/core/runtime_class/ThisClass.rb +0 -15
  135. data/lib/core/runtime_class/UnknownClass.rb +0 -23
  136. data/lib/core/runtime_class/class_names.rb +0 -95
  137. data/lib/core/runtime_class/runtime_class.rb +0 -123
  138. data/lib/core/runtime_method/ActsAsRuntimeMethod.rb +0 -293
  139. data/lib/core/runtime_method/ParametersContainer.rb +0 -29
  140. data/lib/core/runtime_method/RealisedRuntimeMethod.rb +0 -94
  141. data/lib/core/runtime_method/RuntimeMethod.rb +0 -814
  142. data/lib/core/runtime_method/WriteParameters.rb +0 -35
  143. data/lib/core/statement/ActsAsStatement.rb +0 -20
  144. data/lib/core/statement/ArrayAccess.rb +0 -122
  145. data/lib/core/statement/BlockStatement.rb +0 -348
  146. data/lib/core/statement/DeclarationStatement.rb +0 -19
  147. data/lib/core/statement/HackStatement.rb +0 -25
  148. data/lib/core/statement/HashAccess.rb +0 -18
  149. data/lib/core/statement/OpenStatement.rb +0 -178
  150. data/lib/core/statement/RealisedStatement.rb +0 -5
  151. data/lib/core/statement/SingleLineBlockStatement.rb +0 -39
  152. data/lib/core/statement/Statement.rb +0 -1091
  153. data/lib/core/statement/StatementGroup.rb +0 -157
  154. data/lib/core/statement/StatementStructure2.rb +0 -224
  155. data/lib/core/statement/TheoryStatement.rb +0 -68
  156. data/lib/core/statement/TopologicalStatements.rb +0 -34
  157. data/lib/core/syntax/Addition.rb +0 -26
  158. data/lib/core/syntax/BlockContainer.rb +0 -102
  159. data/lib/core/syntax/Boolean.rb +0 -15
  160. data/lib/core/syntax/Code.rb +0 -11
  161. data/lib/core/syntax/Do.rb +0 -20
  162. data/lib/core/syntax/False.rb +0 -12
  163. data/lib/core/syntax/If.rb +0 -36
  164. data/lib/core/syntax/Nil.rb +0 -15
  165. data/lib/core/syntax/Return.rb +0 -33
  166. data/lib/core/syntax/Subtract.rb +0 -19
  167. data/lib/core/syntax/This.rb +0 -40
  168. data/lib/core/syntax/True.rb +0 -20
  169. data/lib/core/syntax/syntax.rb +0 -24
  170. data/lib/core/tracking/ActsAsTrackable.rb +0 -65
  171. data/lib/core/tracking/History.rb +0 -167
  172. data/lib/core/tracking/RuntimeTrackingMethod.rb +0 -32
  173. data/lib/core/tracking/Step.rb +0 -52
  174. data/lib/core/variable/ArrayVariable.rb +0 -76
  175. data/lib/core/variable/BaseVariable.rb +0 -152
  176. data/lib/core/variable/BlockVariable.rb +0 -92
  177. data/lib/core/variable/FixnumVariable.rb +0 -35
  178. data/lib/core/variable/HistoryVariable.rb +0 -8
  179. data/lib/core/variable/MethodParameter.rb +0 -179
  180. data/lib/core/variable/MethodUsageVariable.rb +0 -60
  181. data/lib/core/variable/NilVariable.rb +0 -29
  182. data/lib/core/variable/RuntimeMethodParameter.rb +0 -67
  183. data/lib/core/variable/StatementVariable.rb +0 -72
  184. data/lib/core/variable/StepVariable.rb +0 -7
  185. data/lib/core/variable/StringVariable.rb +0 -46
  186. data/lib/core/variable/TypeVariable.rb +0 -72
  187. data/lib/core/variable/Unknown.rb +0 -102
  188. data/lib/core/variable/UnknownVariable.rb +0 -29
  189. data/lib/core/variable/Variable.rb +0 -70
  190. data/lib/core/variable/VariableContainer.rb +0 -28
  191. data/lib/core/variable/VariableIncluded.rb +0 -27
  192. data/lib/core/variable/VariableReference.rb +0 -85
  193. data/lib/error/FailedToFindStatementContainerError.rb +0 -7
  194. data/lib/error/FailedToFindStatementError.rb +0 -7
  195. data/lib/error/FailedToFindVariableError.rb +0 -7
  196. data/lib/error/FailedToLiteraliseError.rb +0 -7
  197. data/lib/error/FailedVariableMatch.rb +0 -7
  198. data/lib/error/ImproperStatementUsageError.rb +0 -7
  199. data/lib/error/IncompatiableRequirementsError.rb +0 -7
  200. data/lib/error/InvalidStatementError.rb +0 -7
  201. data/lib/error/MethodSizeError.rb +0 -7
  202. data/lib/error/RuntimeSyntaxError.rb +0 -7
  203. data/lib/error/UnexpectedStatementTypeError.rb +0 -7
  204. data/lib/error/UnknownStatementType.rb +0 -7
  205. data/lib/error/UnliteralisableError.rb +0 -7
  206. data/lib/implemented_chain.rb +0 -35
  207. data/lib/intrinsic/IntrinsicLastRuntimeMethod.rb +0 -20
  208. data/lib/intrinsic/IntrinsicLiteral.rb +0 -26
  209. data/lib/intrinsic/IntrinsicObject.rb +0 -22
  210. data/lib/intrinsic/IntrinsicRuntimeMethod.rb +0 -27
  211. data/lib/intrinsic/IntrinsicTestCases.rb +0 -17
  212. data/lib/logger/StandardLogger.rb +0 -62
  213. data/lib/required.rb +0 -222
  214. data/lib/ruby_code/Array.rb +0 -95
  215. data/lib/ruby_code/Fixnum.rb +0 -39
  216. data/lib/ruby_code/Hash.rb +0 -25
  217. data/lib/ruby_code/NilClass.rb +0 -19
  218. data/lib/ruby_code/Object.rb +0 -24
  219. data/lib/ruby_code/String.rb +0 -63
  220. data/lib/ruby_code/Symbol.rb +0 -7
  221. data/lib/standard_library/Tasks.rb +0 -12
  222. data/lib/theories.rb +0 -166
  223. data/lib/theory/ActionImplementation.rb +0 -17
  224. data/lib/theory/TheoryAction.rb +0 -100
  225. data/lib/theory/TheoryChainValidator.rb +0 -103
  226. data/lib/theory/TheoryComponent.rb +0 -59
  227. data/lib/theory/TheoryConnector.rb +0 -756
  228. data/lib/theory/TheoryDependent.rb +0 -135
  229. data/lib/theory/TheoryImplementation.rb +0 -75
  230. data/lib/theory/TheoryResult.rb +0 -131
  231. data/lib/theory/TheoryVariable.rb +0 -63
  232. data/lib/theory/theory_collection.rb +0 -62
  233. data/lib/util/ClassEvaluation.rb +0 -44
  234. data/lib/util/CodeEvaluation.rb +0 -39
  235. data/lib/util/DeclarationStatementEvaluation.rb +0 -32
  236. data/lib/util/MethodEvaluation.rb +0 -49
  237. data/lib/util/MethodTester.rb +0 -71
  238. data/lib/util/MethodValidation.rb +0 -149
  239. data/lib/util/MethodWriter.rb +0 -66
  240. data/lib/util/Parser.rb +0 -305
  241. data/lib/util/StatementCheck.rb +0 -44
  242. data/lib/util/StringToTheory.rb +0 -142
  243. data/lib/util/System.rb +0 -8
  244. data/spec/cauldron/chain_spec.rb +0 -24
  245. data/spec/cauldron/demos_spec.rb +0 -30
  246. data/spec/cauldron/runtime_method_spec.rb +0 -92
  247. data/spec/cauldron/saver_spec.rb +0 -45
  248. data/spec/cauldron/sexp_2_cauldron_spec.rb +0 -118
  249. data/spec/cauldron/theory_action_spec.rb +0 -25
  250. data/spec/cauldron/theory_connector_spec.rb +0 -52
  251. data/spec/cauldron/theory_spec.rb +0 -59
  252. data/spec/cauldron/unified_chain_spec.rb +0 -140
  253. data/test/fixtures/chains/1/declaration.txt +0 -26
  254. data/test/fixtures/chains/1/dump +0 -0
  255. data/test/fixtures/chains/2/declaration.txt +0 -26
  256. data/test/fixtures/chains/2/dump +0 -0
  257. data/test/fixtures/chains/3/declaration.txt +0 -26
  258. data/test/fixtures/chains/3/dump +0 -0
  259. data/test/fixtures/implementation_results/0/declaration.txt +0 -3
  260. data/test/fixtures/implementation_results/0/dump +0 -0
  261. data/test/fixtures/theories/0/declaration.txt +0 -9
  262. data/test/fixtures/theories/0/desc +0 -10
  263. data/test/fixtures/theories/0/dump +0 -0
  264. data/test/fixtures/theories/1/declaration.txt +0 -15
  265. data/test/fixtures/theories/1/desc +0 -11
  266. data/test/fixtures/theories/1/dump +0 -0
  267. data/test/fixtures/theories/10/declaration.txt +0 -23
  268. data/test/fixtures/theories/10/desc +0 -17
  269. data/test/fixtures/theories/10/dump +0 -0
  270. data/test/fixtures/theories/11/declaration.txt +0 -20
  271. data/test/fixtures/theories/11/desc +0 -14
  272. data/test/fixtures/theories/11/dump +0 -0
  273. data/test/fixtures/theories/12/declaration.txt +0 -18
  274. data/test/fixtures/theories/12/desc +0 -12
  275. data/test/fixtures/theories/12/dump +0 -0
  276. data/test/fixtures/theories/13/declaration.txt +0 -24
  277. data/test/fixtures/theories/13/desc +0 -20
  278. data/test/fixtures/theories/13/dump +0 -0
  279. data/test/fixtures/theories/14/declaration.txt +0 -26
  280. data/test/fixtures/theories/14/desc +0 -20
  281. data/test/fixtures/theories/14/dump +0 -0
  282. data/test/fixtures/theories/15/declaration.txt +0 -20
  283. data/test/fixtures/theories/15/desc +0 -14
  284. data/test/fixtures/theories/15/dump +0 -0
  285. data/test/fixtures/theories/16/declaration.txt +0 -30
  286. data/test/fixtures/theories/16/desc +0 -14
  287. data/test/fixtures/theories/16/dump +0 -0
  288. data/test/fixtures/theories/17/declaration.txt +0 -25
  289. data/test/fixtures/theories/17/desc +0 -11
  290. data/test/fixtures/theories/17/dump +0 -0
  291. data/test/fixtures/theories/18/declaration.txt +0 -23
  292. data/test/fixtures/theories/18/desc +0 -11
  293. data/test/fixtures/theories/18/dump +0 -0
  294. data/test/fixtures/theories/19/declaration.txt +0 -23
  295. data/test/fixtures/theories/19/desc +0 -11
  296. data/test/fixtures/theories/19/dump +0 -0
  297. data/test/fixtures/theories/2/declaration.txt +0 -12
  298. data/test/fixtures/theories/2/desc +0 -10
  299. data/test/fixtures/theories/2/dump +0 -0
  300. data/test/fixtures/theories/20/declaration.txt +0 -23
  301. data/test/fixtures/theories/20/desc +0 -17
  302. data/test/fixtures/theories/20/dump +0 -0
  303. data/test/fixtures/theories/3/declaration.txt +0 -19
  304. data/test/fixtures/theories/3/desc +0 -11
  305. data/test/fixtures/theories/3/dump +0 -0
  306. data/test/fixtures/theories/4/declaration.txt +0 -11
  307. data/test/fixtures/theories/4/desc +0 -11
  308. data/test/fixtures/theories/4/dump +0 -0
  309. data/test/fixtures/theories/5/declaration.txt +0 -6
  310. data/test/fixtures/theories/5/desc +0 -9
  311. data/test/fixtures/theories/5/dump +0 -0
  312. data/test/fixtures/theories/6/declaration.txt +0 -13
  313. data/test/fixtures/theories/6/desc +0 -11
  314. data/test/fixtures/theories/6/dump +0 -0
  315. data/test/fixtures/theories/7/declaration.txt +0 -19
  316. data/test/fixtures/theories/7/desc +0 -11
  317. data/test/fixtures/theories/7/dump +0 -0
  318. data/test/fixtures/theories/8/declaration.txt +0 -21
  319. data/test/fixtures/theories/8/desc +0 -11
  320. data/test/fixtures/theories/8/dump +0 -0
  321. data/test/fixtures/theories/9/declaration.txt +0 -24
  322. data/test/fixtures/theories/9/desc +0 -20
  323. data/test/fixtures/theories/9/dump +0 -0
  324. data/test/fixtures/theory_implementations/0/declaration.txt +0 -11
  325. data/test/fixtures/theory_implementations/0/desc.txt +0 -9
  326. data/test/fixtures/theory_implementations/0/dump +0 -0
  327. data/test/fixtures/theory_implementations/0/theory_id +0 -1
  328. data/test/fixtures/theory_implementations/1/declaration.txt +0 -11
  329. data/test/fixtures/theory_implementations/1/desc.txt +0 -9
  330. data/test/fixtures/theory_implementations/1/dump +0 -1
  331. data/test/fixtures/theory_implementations/1/theory_id +0 -1
  332. data/test/fixtures/theory_implementations/2/declaration.txt +0 -11
  333. data/test/fixtures/theory_implementations/2/desc.txt +0 -9
  334. data/test/fixtures/theory_implementations/2/dump +0 -0
  335. data/test/fixtures/theory_implementations/2/theory_id +0 -1
  336. data/test/output/simple_method.txt +0 -5
  337. data/test/output/test_method/first_possible_method.txt +0 -6
  338. data/test/output/test_simple_cases/simple_case_01.txt +0 -8
  339. data/test/output/test_simple_cases/simple_case_02.txt +0 -7
  340. data/test/output/test_simple_cases/simple_case_03.txt +0 -8
  341. data/test/output/test_simple_cases/simple_case_04.txt +0 -8
  342. data/test/output/test_simple_cases/simple_case_05.txt +0 -8
  343. data/test/output/test_simple_cases/simple_case_06.txt +0 -9
  344. data/test/output/test_simple_cases/simple_case_07.txt +0 -9
  345. data/test/output/test_simple_cases/simple_case_08.txt +0 -9
  346. data/test/tc_describe.rb +0 -46
  347. data/test/tc_method.rb +0 -130
  348. data/test/tc_requirement.rb +0 -30
  349. data/test/tc_suite_complete.rb +0 -26
  350. data/test/tc_variable.rb +0 -52
  351. data/test/ts_complete.rb +0 -74
  352. data/test/ts_stable.rb +0 -81
  353. data/test/unit/core/declaration/tc_literal_declaration.rb +0 -34
  354. data/test/unit/core/method_call/tc_class_call.rb +0 -20
  355. data/test/unit/core/runtime_method/tc_realised_runtime_method.rb +0 -132
  356. data/test/unit/core/runtime_method/tc_runtime_method.rb +0 -546
  357. data/test/unit/core/statement/tc_array_access.rb +0 -63
  358. data/test/unit/core/statement/tc_block_statement.rb +0 -53
  359. data/test/unit/core/statement/tc_hack_statement.rb +0 -26
  360. data/test/unit/core/statement/tc_open_statement.rb +0 -79
  361. data/test/unit/core/statement/tc_statement.rb +0 -483
  362. data/test/unit/core/statement/tc_statement_group.rb +0 -35
  363. data/test/unit/core/statement/tc_statement_replace_variable.rb +0 -61
  364. data/test/unit/core/statement/tc_theory_statement.rb +0 -53
  365. data/test/unit/core/syntax/tc_block_container.rb +0 -32
  366. data/test/unit/core/syntax/tc_if_container.rb +0 -39
  367. data/test/unit/core/tc_class_method_call.rb +0 -34
  368. data/test/unit/core/tc_container.rb +0 -41
  369. data/test/unit/core/tc_ctest_case.rb +0 -25
  370. data/test/unit/core/tc_instance_call_container.rb +0 -93
  371. data/test/unit/core/tc_literal.rb +0 -30
  372. data/test/unit/core/tc_theory_generator.rb +0 -336
  373. data/test/unit/core/tc_theory_generator_heavy.rb +0 -42
  374. data/test/unit/core/tracking/tc_history.rb +0 -104
  375. data/test/unit/core/tracking/tc_step.rb +0 -65
  376. data/test/unit/core/variable/tc_array_variable.rb +0 -61
  377. data/test/unit/core/variable/tc_block_variable.rb +0 -17
  378. data/test/unit/core/variable/tc_fixnum_variable.rb +0 -54
  379. data/test/unit/core/variable/tc_method_parameter_variable.rb +0 -22
  380. data/test/unit/core/variable/tc_runtime_method_variable.rb +0 -32
  381. data/test/unit/core/variable/tc_string_variable.rb +0 -37
  382. data/test/unit/core/variable/tc_unknown.rb +0 -24
  383. data/test/unit/core/variable/tc_variable_reference.rb +0 -28
  384. data/test/unit/ruby_code/tc_array.rb +0 -64
  385. data/test/unit/ruby_code/tc_fixnum.rb +0 -18
  386. data/test/unit/ruby_code/tc_hash.rb +0 -41
  387. data/test/unit/ruby_code/tc_string.rb +0 -38
  388. data/test/unit/tc_chain.rb +0 -434
  389. data/test/unit/tc_chain_mapping.rb +0 -62
  390. data/test/unit/tc_chain_with_case_1.rb +0 -169
  391. data/test/unit/tc_instance_call.rb +0 -40
  392. data/test/unit/tc_method_usage.rb +0 -35
  393. data/test/unit/tc_pot.rb +0 -124
  394. data/test/unit/tc_runtime_tracking_method.rb +0 -40
  395. data/test/unit/tc_theory.rb +0 -531
  396. data/test/unit/tc_variable_declaration.rb +0 -32
  397. data/test/unit/theory/tc_theory_action.rb +0 -108
  398. data/test/unit/theory/tc_theory_action_implementation.rb +0 -23
  399. data/test/unit/theory/tc_theory_chain_validator.rb +0 -340
  400. data/test/unit/theory/tc_theory_connector.rb +0 -361
  401. data/test/unit/theory/tc_theory_dependent.rb +0 -153
  402. data/test/unit/theory/tc_theory_implementation.rb +0 -137
  403. data/test/unit/theory/tc_theory_result.rb +0 -112
  404. data/test/unit/theory/tc_theory_variable.rb +0 -45
  405. data/test/unit/util/tc_method_validation.rb +0 -101
  406. data/test/unit/util/tc_parser.rb +0 -110
  407. data/test/unit/util/tc_string_to_theory.rb +0 -300
  408. data/test/unit/variable/tc_method_usage_variable.rb +0 -25
  409. data/tmp/runtime_method_evaluation.rb +0 -16
@@ -1,23 +0,0 @@
1
- class StringClass < ClassName
2
-
3
- def initialize
4
- super
5
- end
6
-
7
- def write(context=nil)
8
- return 'String'
9
- end
10
-
11
- def copy
12
- return StringClass.new
13
- end
14
-
15
- def value
16
- return String
17
- end
18
-
19
- def declaration_statement
20
- return ClassMethodCallContainer.new(StringClass.new,New.new)
21
- end
22
-
23
- end
@@ -1,19 +0,0 @@
1
- class StringLengthClass
2
-
3
- def initialize
4
- super
5
- end
6
-
7
- def write
8
- return 'StringLength'
9
- end
10
-
11
- def describe
12
- return 'StringLength'
13
- end
14
-
15
- def copy
16
- return StringLengthClass.new
17
- end
18
-
19
- end
@@ -1,19 +0,0 @@
1
- class StringVariableClass < ClassName
2
-
3
- def initialize
4
- super
5
- end
6
-
7
- def write(context=nil)
8
- return 'StringVariable'
9
- end
10
-
11
- def copy
12
- return StringVariableClass.new
13
- end
14
-
15
- def value
16
- return StringVariable
17
- end
18
-
19
- end
@@ -1,15 +0,0 @@
1
- class ThisClass < ClassName
2
-
3
- def initialize
4
- super
5
- end
6
-
7
- def write
8
- return 'This'
9
- end
10
-
11
- def copy
12
- return ThisClass.new
13
- end
14
-
15
- end
@@ -1,23 +0,0 @@
1
- class UnknownClass < ClassName
2
-
3
- def initialize
4
- super
5
- end
6
-
7
- def write(context=nil)
8
- return 'Unknown'
9
- end
10
-
11
- def copy
12
- return UnknownClass.new
13
- end
14
-
15
- def value
16
- return Unknown
17
- end
18
-
19
- def declaration_statement
20
- return ClassMethodCallContainer.new(Unknown.new,New.new)
21
- end
22
-
23
- end
@@ -1,95 +0,0 @@
1
- class EquivalentClass < ClassName
2
-
3
- def initialize
4
- super
5
- end
6
-
7
- def write(context=nil)
8
- return 'Equivalent'
9
- end
10
-
11
- end
12
-
13
- class OpenStatementClass < ClassName
14
-
15
- def initialize
16
- super
17
- end
18
-
19
- def write(context=nil)
20
- return 'OpenStatement'
21
- end
22
-
23
- end
24
-
25
- class BlockStatementClass < ClassName
26
-
27
- def initialize
28
- super
29
- end
30
-
31
- def write(tab=0)
32
- return 'BlockStatement'
33
- end
34
-
35
- end
36
-
37
- class ContainerClass < ClassName
38
-
39
- def initialize
40
- super
41
- end
42
-
43
- def write(tab=0)
44
- return 'Container'
45
- end
46
-
47
- end
48
-
49
- class SubtractClass < ClassName
50
-
51
- def initialize
52
- super
53
- end
54
-
55
- def write(tab=0)
56
- return 'Subtract'
57
- end
58
-
59
- end
60
-
61
- class TimesClass < ClassName
62
-
63
- def initialize
64
- super
65
- end
66
-
67
- def write(tab=0)
68
- return 'Times'
69
- end
70
-
71
- end
72
-
73
- class ChopClass < ClassName
74
-
75
- def initialize
76
- super
77
- end
78
-
79
- def write(tab=0)
80
- return 'Chop'
81
- end
82
-
83
- end
84
-
85
- class IfClass < ClassName
86
-
87
- def initialize
88
- super
89
- end
90
-
91
- def write(tab=0)
92
- return 'If'
93
- end
94
-
95
- end
@@ -1,123 +0,0 @@
1
- class TheoryStatementClass < ClassName
2
-
3
- def initialize
4
- super
5
- end
6
-
7
- def write(context=nil)
8
- return 'TheoryStatement'
9
- end
10
-
11
- def copy
12
- return TheoryStatementClass.new
13
- end
14
-
15
- def value
16
- return TheoryStatement
17
- end
18
-
19
- # TODO I'm not sure if this is needed
20
- def declaration_statement
21
- return ClassMethodCallContainer.new(TheoryStatementClass.new,New.new)
22
- end
23
-
24
- def class_method_calls(available=[])
25
- end
26
-
27
- end
28
-
29
- class ParserClass < ClassName
30
-
31
- def initialize
32
- super
33
- end
34
-
35
- def write(context=nil)
36
- return 'Parser'
37
- end
38
-
39
- def copy
40
- return ParserClass.new
41
- end
42
-
43
- def value
44
- return parser
45
- end
46
-
47
- # TODO I'm not sure if this is needed
48
- def declaration_statement
49
- return ClassMethodCallContainer.new(ParserClass.new,New.new)
50
- end
51
-
52
- def class_method_calls(available=[])
53
- end
54
-
55
- end
56
-
57
- class AdditionClass < ClassName
58
-
59
- def initialize
60
- super
61
- end
62
-
63
- def write(context=nil)
64
- return 'Addition'
65
- end
66
-
67
- def copy
68
- return AdditionClass.new
69
- end
70
-
71
- def value
72
- return Addition.class
73
- end
74
-
75
- def declaration_statement
76
- return ClassMethodCallContainer.new(AdditionClass.new,New.new)
77
- end
78
-
79
- def class_method_calls(available=[])
80
- end
81
-
82
- end
83
-
84
- class CTestCaseClass < ClassName
85
-
86
- def initialize
87
- super
88
- end
89
-
90
- def write(context=nil)
91
- return 'CTestCase'
92
- end
93
-
94
- def value
95
- return CTestCase.class
96
- end
97
-
98
- def declaration_statement
99
- return ClassMethodCallContainer.new(CTestCaseClass.new,New.new)
100
- end
101
-
102
- end
103
-
104
- class FixnumClass < ClassName
105
-
106
- def initialize
107
- super
108
- end
109
-
110
- def write(context=nil)
111
- return 'Fixnum'
112
- end
113
-
114
- def value
115
- return CTestCase.class
116
- end
117
-
118
- def declaration_statement
119
- return ClassMethodCallContainer.new(FixnumClass.new,New.new)
120
- end
121
-
122
- end
123
-
@@ -1,293 +0,0 @@
1
-
2
- module ActsAsRuntimeMethod
3
- include WriteParameters
4
-
5
- # Returns a variable instance with the id specified. This essential just finds the varialbe
6
- # at the last line of the method.
7
- #
8
- # @param id The uniq id of the variable that is being looked for - this should be the unique
9
- # variable id.
10
- #
11
- def find_variable(uniq_id)
12
-
13
- # TODO I don't know if progressively building up the method is necessary now
14
-
15
- # TODO This method can probably be just used in StatementGroup and shared between nested statement
16
- # and runtime method.
17
- self.each do |x|
18
-
19
- # TODO SHould be unique variable id
20
- if x.kind_of?(Statement)
21
- if x.created_variable.uniq_id == uniq_id
22
- temp = x.find_actual_variable(uniq_id)
23
- return temp.copy
24
- end
25
- next
26
- end
27
- if x.kind_of?(BlockStatement)
28
- begin
29
- # TODO Write tests for this using uniq_id
30
- return x.find_variable(uniq_id)
31
- # TODO Should have a custom FailedToFindVariable error or similar
32
- rescue StandardError
33
- next
34
- end
35
- end
36
- end
37
- raise FailedToFindVariableError.new('Unable to find variable '+uniq_id.to_s+' in method '+method_id.to_s)
38
- end
39
-
40
- # TODO Write tests esp when I start to bring out varients of the same variable
41
- #
42
- def find_statement_that_declares_variable(variable_id)
43
- self.each do |x|
44
- if x.kind_of?(Statement)
45
- if x.declared_variable_id == variable_id then return x.copy end
46
- next
47
- end
48
- if x.kind_of?(BlockStatement)
49
- begin
50
- return x.find_statement_that_declares_variable(variable_id)
51
- rescue StandardError
52
- next
53
- end
54
- end
55
- end
56
- raise StandardError.new('Failed to find statement that declared variable '+variable_id.to_s)
57
- end
58
-
59
- def find_statement_that_created_variable(uniq_id)
60
- self.each do |x|
61
- if x.kind_of?(Statement)
62
- if x.created_variable.uniq_id == uniq_id then return x.copy end
63
- next
64
- end
65
- if x.kind_of?(BlockStatement)
66
- begin
67
- return x.find_statement_that_created_variable(variable_id)
68
- rescue StandardError
69
- next
70
- end
71
- end
72
- end
73
- raise StandardError.new('Failed to find statement that created variable with uniq id '+uniq_id.to_s)
74
- end
75
-
76
- def method_name
77
- return 'method_'+@method_id.to_s
78
- end
79
-
80
- # Writes out the runtime method for general use. If the parameters are supplied
81
- # then they are used, otherwise the methods usage parameters are used.
82
- #
83
- # @param params
84
- # @param tab
85
- # @param additional_comments
86
- #
87
- def write(params=nil,tab=0,additional_comments=nil)
88
-
89
- # Check that the paramters have been defined for the method before it can be written
90
- # raise_if_parameters_missing
91
- raise StandardError.new('Incorrect use of write ') if params.kind_of?(Fixnum)
92
-
93
- line = "\n"
94
- tab.times {|x| line += " " }
95
- line += "#\n"
96
-
97
- if params.nil?
98
-
99
- @usage.each_with_index do |var,i|
100
-
101
- tab.times {|x| line += " " }
102
- line += "# @param "
103
-
104
- # Get a description of the requirements (this can multiple lines)
105
- line_prefix = ''
106
- desc = var.describe(tab)
107
- desc.each_line do |l|
108
- line += line_prefix+l
109
-
110
- # Assides the first line pre-fix a "# " to the start
111
- (tab-1).times {|x| line += " " }
112
- line_prefix = "# "
113
-
114
- end
115
-
116
- end
117
-
118
- else
119
-
120
- params.each_with_index do |var,i|
121
- tab.times {|x| line += " " }
122
- line += "# @param "
123
-
124
- # Get a description of the requirements (this can multiple lines)
125
- line_prefix = ''
126
-
127
- desc = var.describe(tab)
128
- desc.each_line do |l|
129
- line += line_prefix+l
130
-
131
- # Assides the first line pre-fix a "# " to the start
132
- (tab-1).times {|x| line += " " }
133
- line_prefix = "# "
134
-
135
- end
136
-
137
- end
138
-
139
- end
140
-
141
- # Add some some additional comment if supplied
142
- unless additional_comments.nil?
143
- tab.times {|x| line += " " }
144
- line += "#"
145
- tab.times {|x| line += " " }
146
- line += additional_comments+"\n"
147
- end
148
-
149
- tab.times {|x| line += " " }
150
- line += "#\n"
151
-
152
- tab.times {|x| line += " "}
153
- line += basic_write(tab)
154
-
155
- end
156
-
157
- def basic_write(tab=0)
158
- line = ''
159
- line += 'def '+method_name
160
-
161
- #line += write_params(@parameters)
162
- line += write_params(@usage)
163
- line += "\n"
164
-
165
- # Write out any statements within the method
166
- self.each do |statement|
167
- line += statement.write(tab+1)+"\n"
168
- end
169
-
170
- # Close the method
171
- tab.times {|x| line += " " }
172
- line += "end"+"\n"
173
-
174
- return line
175
- end
176
-
177
- # [DEBUG] Does the same as the write method but includes the uniq_id
178
- #
179
- # TODO This duplicates allot of the code in write
180
- #
181
- def write_with_uniq_id(params=nil,tab=0,additional_comments=nil)
182
-
183
- # Check that the paramters have been defined for the method before it can be written
184
- # raise_if_parameters_missing
185
- raise StandardError.new('Incorrect use of write ') if params.kind_of?(Fixnum)
186
-
187
- line = "\n"
188
- tab.times {|x| line += " " }
189
- line += "#\n"
190
-
191
- if params.nil?
192
-
193
- @usage.each_with_index do |var,i|
194
-
195
- tab.times {|x| line += " " }
196
- line += "# @param "
197
-
198
- # Get a description of the requirements (this can multiple lines)
199
- line_prefix = ''
200
- desc = var.describe(tab)
201
- desc.each_line do |l|
202
- line += line_prefix+l
203
-
204
- # Assides the first line pre-fix a "# " to the start
205
- (tab-1).times {|x| line += " " }
206
- line_prefix = "# "
207
-
208
- end
209
-
210
- end
211
-
212
- else
213
-
214
- params.each_with_index do |var,i|
215
- tab.times {|x| line += " " }
216
- line += "# @param "
217
-
218
- # Get a description of the requirements (this can multiple lines)
219
- line_prefix = ''
220
-
221
- desc = var.describe(tab)
222
- desc.each_line do |l|
223
- line += line_prefix+l
224
-
225
- # Assides the first line pre-fix a "# " to the start
226
- (tab-1).times {|x| line += " " }
227
- line_prefix = "# "
228
-
229
- end
230
-
231
- end
232
-
233
- end
234
-
235
- # Add some some additional comment if supplied
236
- unless additional_comments.nil?
237
- tab.times {|x| line += " " }
238
- line += "#"
239
- tab.times {|x| line += " " }
240
- line += additional_comments+"\n"
241
- end
242
-
243
- tab.times {|x| line += " " }
244
- line += "#\n"
245
-
246
- tab.times {|x| line += " "}
247
- line += 'def '+method_name
248
-
249
- #line += write_params(@parameters)
250
- line += write_params(@usage)
251
- line += "\n"
252
-
253
- # Write out any statements within the method
254
- self.each do |statement|
255
- line += statement.write_with_uniq_id(tab+1)+"\n"
256
- end
257
- line += "\n" if self.empty?
258
-
259
- # Close the method
260
- tab.times {|x| line += " " }
261
- line += "end"+"\n"
262
-
263
- return line
264
-
265
- end
266
-
267
- # Returns an array of variables currently available in the
268
- # method. Essentially this is all the variables after the
269
- # last statement. This is a little crude since it doesn't
270
- # take into account if statements or loops.
271
- #
272
- def available_variables(params=[])
273
-
274
- # raise StandardError.new('The parameters have not been set for this method') if @parameters.nil?
275
- collected_variables = []
276
- collected_variables += params
277
- self.each do |statement|
278
-
279
- # Nested statements don't provide any variables for the end of the method
280
- next if statement.kind_of?(BlockStatement)
281
- next if statement.kind_of?(OpenStatement)
282
-
283
- statement.each_variable do |var|
284
- unless collected_variables.any? {|known_var| known_var.variable_id == var.variable_id}
285
- collected_variables.push(var.copy)
286
- end
287
- end
288
- end
289
- return collected_variables
290
-
291
- end
292
-
293
- end