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.
- data/.gitignore +51 -0
- data/Gemfile +6 -3
- data/Gemfile.lock +16 -3
- data/Rakefile +94 -92
- data/VERSION +1 -1
- data/bin/cauldron +2 -2
- data/cauldron.gemspec +15 -451
- data/features/cauldron_new_approach.feature +46 -0
- data/features/step_definitions/cauldron_steps.rb +11 -0
- data/features/step_definitions/terminal_steps.rb +0 -2
- data/features/support/env.rb +11 -1
- data/features/support/hooks.rb +5 -0
- data/lib/cauldron.rb +13 -7
- data/lib/cauldron/array_reverse_operator.rb +39 -0
- data/lib/cauldron/concat_operator.rb +34 -0
- data/lib/cauldron/if_relationship.rb +37 -0
- data/lib/cauldron/numeric_operator.rb +45 -0
- data/lib/cauldron/pot.rb +54 -162
- data/lib/cauldron/relationship.rb +5 -0
- data/lib/cauldron/terminal.rb +4 -60
- data/lib/cauldron/version.rb +3 -0
- data/lib/core/string.rb +21 -0
- data/sandbox.rb +27 -6
- data/spec/cauldron/array_reverse_operator_spec.rb +59 -0
- data/spec/cauldron/concat_operator_spec.rb +89 -0
- data/spec/cauldron/if_relationship_spec.rb +25 -0
- data/spec/cauldron/numeric_operator_spec.rb +70 -0
- data/spec/cauldron/pot_spec.rb +81 -151
- data/spec/cauldron/terminal_spec.rb +1 -39
- data/spec/examples/adding_if_statement.yml +13 -0
- data/spec/examples/simple_head_theory.txt +13 -0
- data/spec/spec_helper.rb +1 -14
- data/tasks/theory_tasks.rake +207 -207
- metadata +92 -532
- data/cauldron/.autotest +0 -23
- data/cauldron/History.txt +0 -6
- data/cauldron/Manifest.txt +0 -8
- data/cauldron/README.txt +0 -57
- data/cauldron/Rakefile +0 -27
- data/cauldron/bin/cauldron +0 -3
- data/cauldron/lib/cauldron.rb +0 -3
- data/cauldron/test/test_cauldron.rb +0 -8
- data/features/cauldron_example_cases.feature +0 -13
- data/features/cauldron_generates_runtime_method.feature +0 -16
- data/features/cauldron_generates_single_paramter_methods.feature +0 -25
- data/features/cauldron_interactive_start_terminal.feature +0 -17
- data/features/cauldron_quit_terminal.feature +0 -9
- data/features/cauldron_start_terminal.feature +0 -12
- data/features/support/method_1.example +0 -3
- data/features/support/method_2.example +0 -6
- data/lib/Chain.rb +0 -771
- data/lib/ChainMapping.rb +0 -172
- data/lib/CodeHandler.rb +0 -513
- data/lib/Mapping.rb +0 -27
- data/lib/MappingValues.rb +0 -24
- data/lib/PartialChain.rb +0 -253
- data/lib/Theory.rb +0 -295
- data/lib/UnifiedChain.rb +0 -351
- data/lib/cauldron/conversion.rb +0 -15
- data/lib/cauldron/demos.rb +0 -280
- data/lib/cauldron/env.rb +0 -1
- data/lib/cauldron/sexp2cauldron.rb +0 -139
- data/lib/cauldron/theory_factory.rb +0 -10
- data/lib/cauldron/util/home.rb +0 -21
- data/lib/cauldron/util/saver.rb +0 -45
- data/lib/core/ActsAsCode.rb +0 -25
- data/lib/core/BlockToken.rb +0 -33
- data/lib/core/CCall.rb +0 -7
- data/lib/core/CTestCase.rb +0 -27
- data/lib/core/ClassMethodCallContainer.rb +0 -58
- data/lib/core/Container.rb +0 -95
- data/lib/core/InstanceCallContainer.rb +0 -298
- data/lib/core/MethodUsage.rb +0 -65
- data/lib/core/PrintVariables.rb +0 -25
- data/lib/core/TheoryGenerator.rb +0 -753
- data/lib/core/Token.rb +0 -7
- data/lib/core/assignment/Assignment.rb +0 -18
- data/lib/core/assignment/Equal.rb +0 -39
- data/lib/core/assignment/Equivalent.rb +0 -20
- data/lib/core/assignment/NotEqual.rb +0 -14
- data/lib/core/call_container/CallContainer.rb +0 -72
- data/lib/core/class_method_call/New.rb +0 -15
- data/lib/core/class_method_call/RuntimeClassMethodCall.rb +0 -31
- data/lib/core/declaration/Declaration.rb +0 -16
- data/lib/core/declaration/LiteralDeclaration.rb +0 -47
- data/lib/core/declaration/VariableDeclaration.rb +0 -59
- data/lib/core/instance_call/ArrayEach.rb +0 -23
- data/lib/core/instance_call/ArrayLength.rb +0 -15
- data/lib/core/instance_call/Chop.rb +0 -19
- data/lib/core/instance_call/Copy.rb +0 -22
- data/lib/core/instance_call/DeclaredVariable.rb +0 -18
- data/lib/core/instance_call/InstanceCall.rb +0 -77
- data/lib/core/instance_call/Params.rb +0 -15
- data/lib/core/instance_call/Push.rb +0 -20
- data/lib/core/instance_call/StringLength.rb +0 -32
- data/lib/core/instance_call/Times.rb +0 -20
- data/lib/core/instance_call/instance_calls.rb +0 -176
- data/lib/core/instance_call/length_equal.rb +0 -15
- data/lib/core/kernal/EvalCall.rb +0 -15
- data/lib/core/kernal/LocalVariablesCall.rb +0 -15
- data/lib/core/literal/Literal.rb +0 -111
- data/lib/core/literal/Raw.rb +0 -23
- data/lib/core/literal/RuntimeMethodLiteral.rb +0 -21
- data/lib/core/literal/StatementLiteral.rb +0 -28
- data/lib/core/method_call/AvailableVariablesCall.rb +0 -25
- data/lib/core/method_call/ClassCall.rb +0 -33
- data/lib/core/method_call/DefCall.rb +0 -72
- data/lib/core/method_call/EvaluateClassCall.rb +0 -29
- data/lib/core/method_call/MethodNameCall.rb +0 -27
- data/lib/core/method_call/ToDeclarationCall.rb +0 -15
- data/lib/core/requirement/Requirement.rb +0 -292
- data/lib/core/runtime_class/ArrayClass.rb +0 -19
- data/lib/core/runtime_class/ClassCallClass.rb +0 -23
- data/lib/core/runtime_class/ClassEvaluationClass.rb +0 -19
- data/lib/core/runtime_class/ClassName.rb +0 -18
- data/lib/core/runtime_class/DefCallClass.rb +0 -21
- data/lib/core/runtime_class/EqualClass.rb +0 -19
- data/lib/core/runtime_class/FixnumClass.rb +0 -15
- data/lib/core/runtime_class/InstanceCallClass.rb +0 -19
- data/lib/core/runtime_class/InstanceCallContainerClass.rb +0 -16
- data/lib/core/runtime_class/InstanceClassCallClass.rb +0 -19
- data/lib/core/runtime_class/LiteralClass.rb +0 -19
- data/lib/core/runtime_class/MethodParameterClass.rb +0 -27
- data/lib/core/runtime_class/MethodUsageClass.rb +0 -27
- data/lib/core/runtime_class/RequirementClass.rb +0 -19
- data/lib/core/runtime_class/ReturnClass.rb +0 -21
- data/lib/core/runtime_class/RuntimeClass.rb +0 -30
- data/lib/core/runtime_class/RuntimeClassClass.rb +0 -19
- data/lib/core/runtime_class/RuntimeMethodClass.rb +0 -34
- data/lib/core/runtime_class/StatementClass.rb +0 -53
- data/lib/core/runtime_class/StringClass.rb +0 -23
- data/lib/core/runtime_class/StringLengthClass.rb +0 -19
- data/lib/core/runtime_class/StringVariableClass.rb +0 -19
- data/lib/core/runtime_class/ThisClass.rb +0 -15
- data/lib/core/runtime_class/UnknownClass.rb +0 -23
- data/lib/core/runtime_class/class_names.rb +0 -95
- data/lib/core/runtime_class/runtime_class.rb +0 -123
- data/lib/core/runtime_method/ActsAsRuntimeMethod.rb +0 -293
- data/lib/core/runtime_method/ParametersContainer.rb +0 -29
- data/lib/core/runtime_method/RealisedRuntimeMethod.rb +0 -94
- data/lib/core/runtime_method/RuntimeMethod.rb +0 -814
- data/lib/core/runtime_method/WriteParameters.rb +0 -35
- data/lib/core/statement/ActsAsStatement.rb +0 -20
- data/lib/core/statement/ArrayAccess.rb +0 -122
- data/lib/core/statement/BlockStatement.rb +0 -348
- data/lib/core/statement/DeclarationStatement.rb +0 -19
- data/lib/core/statement/HackStatement.rb +0 -25
- data/lib/core/statement/HashAccess.rb +0 -18
- data/lib/core/statement/OpenStatement.rb +0 -178
- data/lib/core/statement/RealisedStatement.rb +0 -5
- data/lib/core/statement/SingleLineBlockStatement.rb +0 -39
- data/lib/core/statement/Statement.rb +0 -1091
- data/lib/core/statement/StatementGroup.rb +0 -157
- data/lib/core/statement/StatementStructure2.rb +0 -224
- data/lib/core/statement/TheoryStatement.rb +0 -68
- data/lib/core/statement/TopologicalStatements.rb +0 -34
- data/lib/core/syntax/Addition.rb +0 -26
- data/lib/core/syntax/BlockContainer.rb +0 -102
- data/lib/core/syntax/Boolean.rb +0 -15
- data/lib/core/syntax/Code.rb +0 -11
- data/lib/core/syntax/Do.rb +0 -20
- data/lib/core/syntax/False.rb +0 -12
- data/lib/core/syntax/If.rb +0 -36
- data/lib/core/syntax/Nil.rb +0 -15
- data/lib/core/syntax/Return.rb +0 -33
- data/lib/core/syntax/Subtract.rb +0 -19
- data/lib/core/syntax/This.rb +0 -40
- data/lib/core/syntax/True.rb +0 -20
- data/lib/core/syntax/syntax.rb +0 -24
- data/lib/core/tracking/ActsAsTrackable.rb +0 -65
- data/lib/core/tracking/History.rb +0 -167
- data/lib/core/tracking/RuntimeTrackingMethod.rb +0 -32
- data/lib/core/tracking/Step.rb +0 -52
- data/lib/core/variable/ArrayVariable.rb +0 -76
- data/lib/core/variable/BaseVariable.rb +0 -152
- data/lib/core/variable/BlockVariable.rb +0 -92
- data/lib/core/variable/FixnumVariable.rb +0 -35
- data/lib/core/variable/HistoryVariable.rb +0 -8
- data/lib/core/variable/MethodParameter.rb +0 -179
- data/lib/core/variable/MethodUsageVariable.rb +0 -60
- data/lib/core/variable/NilVariable.rb +0 -29
- data/lib/core/variable/RuntimeMethodParameter.rb +0 -67
- data/lib/core/variable/StatementVariable.rb +0 -72
- data/lib/core/variable/StepVariable.rb +0 -7
- data/lib/core/variable/StringVariable.rb +0 -46
- data/lib/core/variable/TypeVariable.rb +0 -72
- data/lib/core/variable/Unknown.rb +0 -102
- data/lib/core/variable/UnknownVariable.rb +0 -29
- data/lib/core/variable/Variable.rb +0 -70
- data/lib/core/variable/VariableContainer.rb +0 -28
- data/lib/core/variable/VariableIncluded.rb +0 -27
- data/lib/core/variable/VariableReference.rb +0 -85
- data/lib/error/FailedToFindStatementContainerError.rb +0 -7
- data/lib/error/FailedToFindStatementError.rb +0 -7
- data/lib/error/FailedToFindVariableError.rb +0 -7
- data/lib/error/FailedToLiteraliseError.rb +0 -7
- data/lib/error/FailedVariableMatch.rb +0 -7
- data/lib/error/ImproperStatementUsageError.rb +0 -7
- data/lib/error/IncompatiableRequirementsError.rb +0 -7
- data/lib/error/InvalidStatementError.rb +0 -7
- data/lib/error/MethodSizeError.rb +0 -7
- data/lib/error/RuntimeSyntaxError.rb +0 -7
- data/lib/error/UnexpectedStatementTypeError.rb +0 -7
- data/lib/error/UnknownStatementType.rb +0 -7
- data/lib/error/UnliteralisableError.rb +0 -7
- data/lib/implemented_chain.rb +0 -35
- data/lib/intrinsic/IntrinsicLastRuntimeMethod.rb +0 -20
- data/lib/intrinsic/IntrinsicLiteral.rb +0 -26
- data/lib/intrinsic/IntrinsicObject.rb +0 -22
- data/lib/intrinsic/IntrinsicRuntimeMethod.rb +0 -27
- data/lib/intrinsic/IntrinsicTestCases.rb +0 -17
- data/lib/logger/StandardLogger.rb +0 -62
- data/lib/required.rb +0 -222
- data/lib/ruby_code/Array.rb +0 -95
- data/lib/ruby_code/Fixnum.rb +0 -39
- data/lib/ruby_code/Hash.rb +0 -25
- data/lib/ruby_code/NilClass.rb +0 -19
- data/lib/ruby_code/Object.rb +0 -24
- data/lib/ruby_code/String.rb +0 -63
- data/lib/ruby_code/Symbol.rb +0 -7
- data/lib/standard_library/Tasks.rb +0 -12
- data/lib/theories.rb +0 -166
- data/lib/theory/ActionImplementation.rb +0 -17
- data/lib/theory/TheoryAction.rb +0 -100
- data/lib/theory/TheoryChainValidator.rb +0 -103
- data/lib/theory/TheoryComponent.rb +0 -59
- data/lib/theory/TheoryConnector.rb +0 -756
- data/lib/theory/TheoryDependent.rb +0 -135
- data/lib/theory/TheoryImplementation.rb +0 -75
- data/lib/theory/TheoryResult.rb +0 -131
- data/lib/theory/TheoryVariable.rb +0 -63
- data/lib/theory/theory_collection.rb +0 -62
- data/lib/util/ClassEvaluation.rb +0 -44
- data/lib/util/CodeEvaluation.rb +0 -39
- data/lib/util/DeclarationStatementEvaluation.rb +0 -32
- data/lib/util/MethodEvaluation.rb +0 -49
- data/lib/util/MethodTester.rb +0 -71
- data/lib/util/MethodValidation.rb +0 -149
- data/lib/util/MethodWriter.rb +0 -66
- data/lib/util/Parser.rb +0 -305
- data/lib/util/StatementCheck.rb +0 -44
- data/lib/util/StringToTheory.rb +0 -142
- data/lib/util/System.rb +0 -8
- data/spec/cauldron/chain_spec.rb +0 -24
- data/spec/cauldron/demos_spec.rb +0 -30
- data/spec/cauldron/runtime_method_spec.rb +0 -92
- data/spec/cauldron/saver_spec.rb +0 -45
- data/spec/cauldron/sexp_2_cauldron_spec.rb +0 -118
- data/spec/cauldron/theory_action_spec.rb +0 -25
- data/spec/cauldron/theory_connector_spec.rb +0 -52
- data/spec/cauldron/theory_spec.rb +0 -59
- data/spec/cauldron/unified_chain_spec.rb +0 -140
- data/test/fixtures/chains/1/declaration.txt +0 -26
- data/test/fixtures/chains/1/dump +0 -0
- data/test/fixtures/chains/2/declaration.txt +0 -26
- data/test/fixtures/chains/2/dump +0 -0
- data/test/fixtures/chains/3/declaration.txt +0 -26
- data/test/fixtures/chains/3/dump +0 -0
- data/test/fixtures/implementation_results/0/declaration.txt +0 -3
- data/test/fixtures/implementation_results/0/dump +0 -0
- data/test/fixtures/theories/0/declaration.txt +0 -9
- data/test/fixtures/theories/0/desc +0 -10
- data/test/fixtures/theories/0/dump +0 -0
- data/test/fixtures/theories/1/declaration.txt +0 -15
- data/test/fixtures/theories/1/desc +0 -11
- data/test/fixtures/theories/1/dump +0 -0
- data/test/fixtures/theories/10/declaration.txt +0 -23
- data/test/fixtures/theories/10/desc +0 -17
- data/test/fixtures/theories/10/dump +0 -0
- data/test/fixtures/theories/11/declaration.txt +0 -20
- data/test/fixtures/theories/11/desc +0 -14
- data/test/fixtures/theories/11/dump +0 -0
- data/test/fixtures/theories/12/declaration.txt +0 -18
- data/test/fixtures/theories/12/desc +0 -12
- data/test/fixtures/theories/12/dump +0 -0
- data/test/fixtures/theories/13/declaration.txt +0 -24
- data/test/fixtures/theories/13/desc +0 -20
- data/test/fixtures/theories/13/dump +0 -0
- data/test/fixtures/theories/14/declaration.txt +0 -26
- data/test/fixtures/theories/14/desc +0 -20
- data/test/fixtures/theories/14/dump +0 -0
- data/test/fixtures/theories/15/declaration.txt +0 -20
- data/test/fixtures/theories/15/desc +0 -14
- data/test/fixtures/theories/15/dump +0 -0
- data/test/fixtures/theories/16/declaration.txt +0 -30
- data/test/fixtures/theories/16/desc +0 -14
- data/test/fixtures/theories/16/dump +0 -0
- data/test/fixtures/theories/17/declaration.txt +0 -25
- data/test/fixtures/theories/17/desc +0 -11
- data/test/fixtures/theories/17/dump +0 -0
- data/test/fixtures/theories/18/declaration.txt +0 -23
- data/test/fixtures/theories/18/desc +0 -11
- data/test/fixtures/theories/18/dump +0 -0
- data/test/fixtures/theories/19/declaration.txt +0 -23
- data/test/fixtures/theories/19/desc +0 -11
- data/test/fixtures/theories/19/dump +0 -0
- data/test/fixtures/theories/2/declaration.txt +0 -12
- data/test/fixtures/theories/2/desc +0 -10
- data/test/fixtures/theories/2/dump +0 -0
- data/test/fixtures/theories/20/declaration.txt +0 -23
- data/test/fixtures/theories/20/desc +0 -17
- data/test/fixtures/theories/20/dump +0 -0
- data/test/fixtures/theories/3/declaration.txt +0 -19
- data/test/fixtures/theories/3/desc +0 -11
- data/test/fixtures/theories/3/dump +0 -0
- data/test/fixtures/theories/4/declaration.txt +0 -11
- data/test/fixtures/theories/4/desc +0 -11
- data/test/fixtures/theories/4/dump +0 -0
- data/test/fixtures/theories/5/declaration.txt +0 -6
- data/test/fixtures/theories/5/desc +0 -9
- data/test/fixtures/theories/5/dump +0 -0
- data/test/fixtures/theories/6/declaration.txt +0 -13
- data/test/fixtures/theories/6/desc +0 -11
- data/test/fixtures/theories/6/dump +0 -0
- data/test/fixtures/theories/7/declaration.txt +0 -19
- data/test/fixtures/theories/7/desc +0 -11
- data/test/fixtures/theories/7/dump +0 -0
- data/test/fixtures/theories/8/declaration.txt +0 -21
- data/test/fixtures/theories/8/desc +0 -11
- data/test/fixtures/theories/8/dump +0 -0
- data/test/fixtures/theories/9/declaration.txt +0 -24
- data/test/fixtures/theories/9/desc +0 -20
- data/test/fixtures/theories/9/dump +0 -0
- data/test/fixtures/theory_implementations/0/declaration.txt +0 -11
- data/test/fixtures/theory_implementations/0/desc.txt +0 -9
- data/test/fixtures/theory_implementations/0/dump +0 -0
- data/test/fixtures/theory_implementations/0/theory_id +0 -1
- data/test/fixtures/theory_implementations/1/declaration.txt +0 -11
- data/test/fixtures/theory_implementations/1/desc.txt +0 -9
- data/test/fixtures/theory_implementations/1/dump +0 -1
- data/test/fixtures/theory_implementations/1/theory_id +0 -1
- data/test/fixtures/theory_implementations/2/declaration.txt +0 -11
- data/test/fixtures/theory_implementations/2/desc.txt +0 -9
- data/test/fixtures/theory_implementations/2/dump +0 -0
- data/test/fixtures/theory_implementations/2/theory_id +0 -1
- data/test/output/simple_method.txt +0 -5
- data/test/output/test_method/first_possible_method.txt +0 -6
- data/test/output/test_simple_cases/simple_case_01.txt +0 -8
- data/test/output/test_simple_cases/simple_case_02.txt +0 -7
- data/test/output/test_simple_cases/simple_case_03.txt +0 -8
- data/test/output/test_simple_cases/simple_case_04.txt +0 -8
- data/test/output/test_simple_cases/simple_case_05.txt +0 -8
- data/test/output/test_simple_cases/simple_case_06.txt +0 -9
- data/test/output/test_simple_cases/simple_case_07.txt +0 -9
- data/test/output/test_simple_cases/simple_case_08.txt +0 -9
- data/test/tc_describe.rb +0 -46
- data/test/tc_method.rb +0 -130
- data/test/tc_requirement.rb +0 -30
- data/test/tc_suite_complete.rb +0 -26
- data/test/tc_variable.rb +0 -52
- data/test/ts_complete.rb +0 -74
- data/test/ts_stable.rb +0 -81
- data/test/unit/core/declaration/tc_literal_declaration.rb +0 -34
- data/test/unit/core/method_call/tc_class_call.rb +0 -20
- data/test/unit/core/runtime_method/tc_realised_runtime_method.rb +0 -132
- data/test/unit/core/runtime_method/tc_runtime_method.rb +0 -546
- data/test/unit/core/statement/tc_array_access.rb +0 -63
- data/test/unit/core/statement/tc_block_statement.rb +0 -53
- data/test/unit/core/statement/tc_hack_statement.rb +0 -26
- data/test/unit/core/statement/tc_open_statement.rb +0 -79
- data/test/unit/core/statement/tc_statement.rb +0 -483
- data/test/unit/core/statement/tc_statement_group.rb +0 -35
- data/test/unit/core/statement/tc_statement_replace_variable.rb +0 -61
- data/test/unit/core/statement/tc_theory_statement.rb +0 -53
- data/test/unit/core/syntax/tc_block_container.rb +0 -32
- data/test/unit/core/syntax/tc_if_container.rb +0 -39
- data/test/unit/core/tc_class_method_call.rb +0 -34
- data/test/unit/core/tc_container.rb +0 -41
- data/test/unit/core/tc_ctest_case.rb +0 -25
- data/test/unit/core/tc_instance_call_container.rb +0 -93
- data/test/unit/core/tc_literal.rb +0 -30
- data/test/unit/core/tc_theory_generator.rb +0 -336
- data/test/unit/core/tc_theory_generator_heavy.rb +0 -42
- data/test/unit/core/tracking/tc_history.rb +0 -104
- data/test/unit/core/tracking/tc_step.rb +0 -65
- data/test/unit/core/variable/tc_array_variable.rb +0 -61
- data/test/unit/core/variable/tc_block_variable.rb +0 -17
- data/test/unit/core/variable/tc_fixnum_variable.rb +0 -54
- data/test/unit/core/variable/tc_method_parameter_variable.rb +0 -22
- data/test/unit/core/variable/tc_runtime_method_variable.rb +0 -32
- data/test/unit/core/variable/tc_string_variable.rb +0 -37
- data/test/unit/core/variable/tc_unknown.rb +0 -24
- data/test/unit/core/variable/tc_variable_reference.rb +0 -28
- data/test/unit/ruby_code/tc_array.rb +0 -64
- data/test/unit/ruby_code/tc_fixnum.rb +0 -18
- data/test/unit/ruby_code/tc_hash.rb +0 -41
- data/test/unit/ruby_code/tc_string.rb +0 -38
- data/test/unit/tc_chain.rb +0 -434
- data/test/unit/tc_chain_mapping.rb +0 -62
- data/test/unit/tc_chain_with_case_1.rb +0 -169
- data/test/unit/tc_instance_call.rb +0 -40
- data/test/unit/tc_method_usage.rb +0 -35
- data/test/unit/tc_pot.rb +0 -124
- data/test/unit/tc_runtime_tracking_method.rb +0 -40
- data/test/unit/tc_theory.rb +0 -531
- data/test/unit/tc_variable_declaration.rb +0 -32
- data/test/unit/theory/tc_theory_action.rb +0 -108
- data/test/unit/theory/tc_theory_action_implementation.rb +0 -23
- data/test/unit/theory/tc_theory_chain_validator.rb +0 -340
- data/test/unit/theory/tc_theory_connector.rb +0 -361
- data/test/unit/theory/tc_theory_dependent.rb +0 -153
- data/test/unit/theory/tc_theory_implementation.rb +0 -137
- data/test/unit/theory/tc_theory_result.rb +0 -112
- data/test/unit/theory/tc_theory_variable.rb +0 -45
- data/test/unit/util/tc_method_validation.rb +0 -101
- data/test/unit/util/tc_parser.rb +0 -110
- data/test/unit/util/tc_string_to_theory.rb +0 -300
- data/test/unit/variable/tc_method_usage_variable.rb +0 -25
- data/tmp/runtime_method_evaluation.rb +0 -16
@@ -1,34 +0,0 @@
|
|
1
|
-
|
2
|
-
#class TopologicalStatements
|
3
|
-
# include TSort
|
4
|
-
#
|
5
|
-
# def initialize
|
6
|
-
# @dependencies = {}
|
7
|
-
# end
|
8
|
-
#
|
9
|
-
# def add_dependency(task,*relies_on)
|
10
|
-
# @dependencies[task] = relies_on
|
11
|
-
# end
|
12
|
-
#
|
13
|
-
# def tsort_each_node(&block)
|
14
|
-
# @dependencies.each_key(&block)
|
15
|
-
# end
|
16
|
-
#
|
17
|
-
# def tsort_each_child(node,&block)
|
18
|
-
# deps = @dependencies[node]
|
19
|
-
# deps.each(&block) if deps
|
20
|
-
# end
|
21
|
-
#
|
22
|
-
#end
|
23
|
-
|
24
|
-
# See http://www.ruby-doc.org/stdlib/libdoc/tsort/rdoc/classes/TSort.html#M009366
|
25
|
-
class TopologicalStatements < Hash
|
26
|
-
include TSort
|
27
|
-
|
28
|
-
alias tsort_each_node each_key
|
29
|
-
def tsort_each_child(node, &block)
|
30
|
-
fetch(node).each(&block)
|
31
|
-
end
|
32
|
-
|
33
|
-
|
34
|
-
end
|
data/lib/core/syntax/Addition.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
# TODO Move to InstanceCall
|
2
|
-
|
3
|
-
class Addition < InstanceCall
|
4
|
-
|
5
|
-
def initialize
|
6
|
-
|
7
|
-
end
|
8
|
-
|
9
|
-
def copy
|
10
|
-
return self.class.new
|
11
|
-
end
|
12
|
-
|
13
|
-
def write
|
14
|
-
return ' + '
|
15
|
-
end
|
16
|
-
|
17
|
-
def to_literal_string
|
18
|
-
return write
|
19
|
-
end
|
20
|
-
|
21
|
-
def closure
|
22
|
-
#return [' ','']
|
23
|
-
return ['','']
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
@@ -1,102 +0,0 @@
|
|
1
|
-
class BlockContainer < Array
|
2
|
-
|
3
|
-
def initialize(*parameters)
|
4
|
-
super()
|
5
|
-
|
6
|
-
parameters.each { |x| self.push(x) }
|
7
|
-
end
|
8
|
-
|
9
|
-
def write
|
10
|
-
l = '|'
|
11
|
-
self.each do |x|
|
12
|
-
l += x.write
|
13
|
-
l += ', ' unless x.object_id == self.last.object_id
|
14
|
-
end
|
15
|
-
l += '|'
|
16
|
-
return l
|
17
|
-
end
|
18
|
-
|
19
|
-
def describe
|
20
|
-
l = '|'
|
21
|
-
self.each do |x|
|
22
|
-
l += x.describe
|
23
|
-
l += ', ' unless x.object_id == self.last.object_id
|
24
|
-
end
|
25
|
-
l += '|'
|
26
|
-
return l
|
27
|
-
end
|
28
|
-
|
29
|
-
def write_with_uniq_id
|
30
|
-
l = '|'
|
31
|
-
self.each do |x|
|
32
|
-
(x.respond_to?('write_with_uniq_id')) ? l += x.write_with_uniq_id : l += x.write
|
33
|
-
l += ', ' unless x.object_id == self.last.object_id
|
34
|
-
end
|
35
|
-
l += '|'
|
36
|
-
return l
|
37
|
-
end
|
38
|
-
|
39
|
-
# Returns the block variables but with their values next to them. This
|
40
|
-
# presumes that the block container has been realised.
|
41
|
-
#
|
42
|
-
def write_with_value
|
43
|
-
l = '|'
|
44
|
-
self.each do |x|
|
45
|
-
l += x.write_with_value
|
46
|
-
l += ', ' unless x.object_id == self.last.object_id
|
47
|
-
end
|
48
|
-
l += '|'
|
49
|
-
return l
|
50
|
-
end
|
51
|
-
|
52
|
-
# TODO Write tests for this
|
53
|
-
def copy
|
54
|
-
return BlockContainer.new(*self.collect {|x| x.copy})
|
55
|
-
end
|
56
|
-
|
57
|
-
# Returns true if all the block variables returned true.
|
58
|
-
def realised?
|
59
|
-
|
60
|
-
# Go through each of the block variables and determine if they're realised
|
61
|
-
return false if self.any? {|x| x.realised? == false }
|
62
|
-
return true
|
63
|
-
|
64
|
-
end
|
65
|
-
|
66
|
-
# Returns an updated block container where all the values for the block
|
67
|
-
# have been realised through the method map.
|
68
|
-
#
|
69
|
-
# @param method_map The history of the method that the block container
|
70
|
-
# is used in.
|
71
|
-
#
|
72
|
-
def realise2(method_map)
|
73
|
-
return self.copy if realised?
|
74
|
-
result = BlockContainer.new
|
75
|
-
self.each do |x|
|
76
|
-
result.push(x.realise(method_map))
|
77
|
-
end
|
78
|
-
return result
|
79
|
-
end
|
80
|
-
|
81
|
-
# Returns an array of all the unrealised variables within the
|
82
|
-
# block container.
|
83
|
-
#
|
84
|
-
def unrealised_variables
|
85
|
-
return variables.find_all {|x| x.realised? == false}
|
86
|
-
end
|
87
|
-
|
88
|
-
# Returns an array of all the variables within this block container.
|
89
|
-
#
|
90
|
-
def variables
|
91
|
-
return self.collect {|x| x.copy}
|
92
|
-
end
|
93
|
-
|
94
|
-
# Returns each variable used within the block in turn.
|
95
|
-
#
|
96
|
-
def each_variable
|
97
|
-
variables.each do |x|
|
98
|
-
yield x
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
end
|
data/lib/core/syntax/Boolean.rb
DELETED
data/lib/core/syntax/Code.rb
DELETED
data/lib/core/syntax/Do.rb
DELETED
data/lib/core/syntax/False.rb
DELETED
data/lib/core/syntax/If.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
class If
|
2
|
-
include Code
|
3
|
-
|
4
|
-
def initialize
|
5
|
-
super
|
6
|
-
end
|
7
|
-
|
8
|
-
def write(tab=0)
|
9
|
-
return ("\t"*tab)+'if'
|
10
|
-
end
|
11
|
-
|
12
|
-
def describe(tab=0)
|
13
|
-
return write(tab)
|
14
|
-
end
|
15
|
-
|
16
|
-
def copy
|
17
|
-
return If.new
|
18
|
-
end
|
19
|
-
|
20
|
-
def creation
|
21
|
-
return 'If.new'
|
22
|
-
end
|
23
|
-
|
24
|
-
def to_literal_string
|
25
|
-
return write
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
29
|
-
|
30
|
-
# TODO I need to go over my "if statement" construction
|
31
|
-
|
32
|
-
# t = OpenStatement.new(
|
33
|
-
# Statement.new(
|
34
|
-
# If.new,test_cases[0][:params][0], Equivalent.new, test_cases[0][:output]
|
35
|
-
# )
|
36
|
-
# )
|
data/lib/core/syntax/Nil.rb
DELETED
data/lib/core/syntax/Return.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
|
2
|
-
class Return
|
3
|
-
include Code
|
4
|
-
|
5
|
-
def initialize
|
6
|
-
super
|
7
|
-
end
|
8
|
-
|
9
|
-
def write(method_context=nil)
|
10
|
-
return 'return '
|
11
|
-
end
|
12
|
-
|
13
|
-
def describe
|
14
|
-
return write
|
15
|
-
end
|
16
|
-
|
17
|
-
def copy
|
18
|
-
return Return.new
|
19
|
-
end
|
20
|
-
|
21
|
-
def creation
|
22
|
-
return 'Return.new'
|
23
|
-
end
|
24
|
-
|
25
|
-
def to_declaration
|
26
|
-
return VariableDeclaration.new(self.class.to_s)
|
27
|
-
end
|
28
|
-
|
29
|
-
def to_literal_string
|
30
|
-
return write
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|
data/lib/core/syntax/Subtract.rb
DELETED
data/lib/core/syntax/This.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
# Not sure how or is this class will be used but it is meant as contextual
|
2
|
-
# reference to a different instance.
|
3
|
-
#
|
4
|
-
# TODO Check whether this needs to be an array
|
5
|
-
#
|
6
|
-
class This < Array
|
7
|
-
|
8
|
-
#
|
9
|
-
# @param method_call The name of any method call if any. For example:
|
10
|
-
# self.class
|
11
|
-
#
|
12
|
-
def initialize(*parameters)
|
13
|
-
super()
|
14
|
-
|
15
|
-
# Save any requirements
|
16
|
-
parameters.collect {|param| self.push param}
|
17
|
-
end
|
18
|
-
|
19
|
-
# @param variable The variable "self" refers to. This is dependent on
|
20
|
-
# where the instance is used.
|
21
|
-
#
|
22
|
-
def write(context=nil,variable=nil)
|
23
|
-
if context.nil? then return 'self' end
|
24
|
-
if variable.nil? then return 'self' end
|
25
|
-
return context.display_name_for(variable)
|
26
|
-
end
|
27
|
-
|
28
|
-
def describe(context=nil,variable=nil)
|
29
|
-
return write(context,variable)+"\n"
|
30
|
-
end
|
31
|
-
|
32
|
-
def copy
|
33
|
-
return This.new
|
34
|
-
end
|
35
|
-
|
36
|
-
def declaration_statement
|
37
|
-
return ClassMethodCallContainer.new(ThisClass.new,New.new)
|
38
|
-
end
|
39
|
-
|
40
|
-
end
|
data/lib/core/syntax/True.rb
DELETED
data/lib/core/syntax/syntax.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
class Next
|
2
|
-
include Code
|
3
|
-
|
4
|
-
def initialize
|
5
|
-
super
|
6
|
-
end
|
7
|
-
|
8
|
-
def write(tab=0)
|
9
|
-
return ("\t"*tab)+'next'
|
10
|
-
end
|
11
|
-
|
12
|
-
def copy
|
13
|
-
return Next.new
|
14
|
-
end
|
15
|
-
|
16
|
-
def to_declaration
|
17
|
-
return VariableDeclaration.new(self.class.to_s)
|
18
|
-
end
|
19
|
-
|
20
|
-
def to_literal_string
|
21
|
-
return write
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
@@ -1,65 +0,0 @@
|
|
1
|
-
module ActsAsTrackable
|
2
|
-
|
3
|
-
# Returns a tracking statement for the line supplied. The tracking call
|
4
|
-
# contains the following values.
|
5
|
-
#
|
6
|
-
# line The line the statement occurs on
|
7
|
-
# action The statement written as a literal string - I'm not sure whether or not this is
|
8
|
-
# important value or not yet.
|
9
|
-
# variables An array of variables used in the statement - they are saved in the following format
|
10
|
-
# {'id'=>4,'value'=>'Project Purity'}. As such the variables only have literal values.
|
11
|
-
# NOTE: Currently I am only saving the variables in the statement but it might be
|
12
|
-
# prudent later to save all the variables available to statement.
|
13
|
-
# local_variables saves an array with the name of all the variables in scope.
|
14
|
-
#
|
15
|
-
# @param tracking_method The runtime method that gets called to retain to tracking information
|
16
|
-
# @param line The line the tracking call represents (NOTE Currently the line is represented
|
17
|
-
# by the length of an array to keep scope between methods)
|
18
|
-
# TODO I would rather be able to use a single variable.
|
19
|
-
# @param statement The statement represented by the tracking call this can be nil if it is
|
20
|
-
# the start of a method.
|
21
|
-
# @param variables_value An array of variable values and ids stored in a hash e.g.
|
22
|
-
# [{'id'=>4,'value'=>'Project Purity'},..]
|
23
|
-
#
|
24
|
-
def tracking_statement(tracking_method,line,statement_id=nil,variables_value=[],statement=nil)
|
25
|
-
(statement.nil?) ? action = '' : action = statement.to_literal_string
|
26
|
-
params = [line.length,statement_id,variables_value,action]
|
27
|
-
line.push(1)
|
28
|
-
track_statement = Statement.new(DefCall.new(NilVariable.new,tracking_method,*params))
|
29
|
-
return track_statement
|
30
|
-
end
|
31
|
-
|
32
|
-
# Returns an array of variables abstracted from the variable containers in
|
33
|
-
# the format used by the tracking statement. A variable container includes
|
34
|
-
# a statement, nested statement, block container and runtime method. This is
|
35
|
-
# essentially every variable used in the variable container.
|
36
|
-
#
|
37
|
-
# The variables are returned in the following format:
|
38
|
-
# [{id'=>4,'value'=>'Project Purity'},
|
39
|
-
# {id'=>4,'value'=>'Vault 101'},
|
40
|
-
# {id'=>4,'value'=>'Brotherhood of Steel'}]
|
41
|
-
#
|
42
|
-
# @param variable_containers Any number of elements that may contain variables.
|
43
|
-
#
|
44
|
-
def abstract_variables_for_tracking(*variable_containers)
|
45
|
-
results = []
|
46
|
-
variable_containers.each do |x|
|
47
|
-
# NOTE This breaks on the ParametersContainer
|
48
|
-
#x.each_variable do |y|
|
49
|
-
# NOTE This breaks on statements
|
50
|
-
#x.each do |y|
|
51
|
-
# NOTE: This breaks histroy
|
52
|
-
#x.select {|z| z.kind_of?(Variable)}.each do |y|
|
53
|
-
x.select_all {|z| z.kind_of?(Variable)}.each do |y|
|
54
|
-
results.push(Hash[
|
55
|
-
'id'=>y.variable_id,
|
56
|
-
'uniq_id'=>y.uniq_id,
|
57
|
-
'value'=>InstanceCallContainer.new(y,Copy.new),
|
58
|
-
'abs_id'=>EvalCall.new("#{y.write}.object_id.to_s")
|
59
|
-
])
|
60
|
-
end
|
61
|
-
end
|
62
|
-
return results
|
63
|
-
end
|
64
|
-
|
65
|
-
end
|