From 442d8c640fdde22d9f6bf5d1a729d8e17e2fa407 Mon Sep 17 00:00:00 2001 From: Justyna Ilczuk Date: Tue, 18 Dec 2012 21:51:57 +0100 Subject: [PATCH] Tidying up main function. Moving tests. --- Sencha-lang/Tests/TestASTInspector.cpp | 13 +++++ Sencha-lang/Tests/tests.h | 76 ++++++++++++++++++++++++++ Sencha-lang/main.cpp | 54 ++---------------- 3 files changed, 94 insertions(+), 49 deletions(-) create mode 100644 Sencha-lang/Tests/tests.h diff --git a/Sencha-lang/Tests/TestASTInspector.cpp b/Sencha-lang/Tests/TestASTInspector.cpp index 875fe76..4194dbe 100644 --- a/Sencha-lang/Tests/TestASTInspector.cpp +++ b/Sencha-lang/Tests/TestASTInspector.cpp @@ -18,14 +18,27 @@ TestASTInspector::~TestASTInspector() { std::string TestASTInspector::test_inspecting_basic_expression() { + + std::string test_report = ""; + + BasicExpression * be = build_basic_expression("+", SenchaObject(9), SenchaObject(122)); + be->accept(&inspector); + std::string assert_report = "Report: " + inspector.inspection_report; + muu_assert("dd", inspector.inspection_report == "tralala"); + + return test_report; } virtual std::string TestASTInspector::all_tests() { + std::string test_report = ""; + mu_run_test(test_inspecting_basic_expression); + + return test_report; } BasicExpression * TestASTInspector::build_basic_expression(std::string oper, SenchaObject arg1, SenchaObject arg2) diff --git a/Sencha-lang/Tests/tests.h b/Sencha-lang/Tests/tests.h new file mode 100644 index 0000000..0fb7aa3 --- /dev/null +++ b/Sencha-lang/Tests/tests.h @@ -0,0 +1,76 @@ +/* + * tests.h + * + * Created on: Dec 18, 2012 + * Author: att + */ + +#ifndef TESTS_H_ +#define TESTS_H_ +#include +#include "Lexer.h" +#include "Parser.h" + + +using namespace std; + +void test_lexer() +{ + string test_line = "dupa"; + string test_line2 = "def how_many_trees = 1; how_many_trees + 3 == 2; num cut_tree( num how_many) {return how_many -1; != <=}"; + Lexer lexer; + vector tokens = lexer.parse_line(test_line); + + + for(unsigned int i=0; i< tokens.size(); i++) + { + cout << tokens[i].get_value() << " type: " << tokens[i].get_type() << endl; + } + + + tokens = lexer.parse_line(test_line2); + +} + +void test_parser() +{ + vector lines; + lines.push_back("def i; bulb; i + 3; string banan = \"kartofel\"; banan = \"banan\"; string kaboom(num how_many_times) { def z; }"); + lines.push_back("num pun"); + lines.push_back("def how_many_trees = 1; how_many_trees + 3 == 2; num cut_tree(num how_many) {return how_many -1}"); + Lexer lexer; + Context context; + vector tokens; + + for(unsigned int i=0; i>>" << endl; + cout << "Instructions: " << endl ; + cout << lines[i] << endl << endl; + cout << parser.report_message; + cout << parser.error_message << endl; + } + +} + +void run_test_suites() +{ + TestLexer test_l; + test_l.run_tests(); + + + +} + +void run_tests() +{ + run_test_suites(); +} + + + +#endif /* TESTS_H_ */ diff --git a/Sencha-lang/main.cpp b/Sencha-lang/main.cpp index 6269f0a..baf455d 100644 --- a/Sencha-lang/main.cpp +++ b/Sencha-lang/main.cpp @@ -7,7 +7,7 @@ #include "Parser.h" #include "Tests/TestLexer.h" #include "Context.h" - +#include "Tests/tests.h" using namespace std; @@ -97,49 +97,8 @@ SenchaObject s_tan(vector arguments) return result; } -void test_lexer() -{ - string test_line = "dupa"; - string test_line2 = "def how_many_trees = 1; how_many_trees + 3 == 2; num cut_tree( num how_many) {return how_many -1; != <=}"; - Lexer lexer; - vector tokens = lexer.parse_line(test_line); - for(unsigned int i=0; i< tokens.size(); i++) - { - cout << tokens[i].get_value() << " type: " << tokens[i].get_type() << endl; - } - - - tokens = lexer.parse_line(test_line2); - -} - -void test_parser() -{ - vector lines; - lines.push_back("def i; bulb; i + 3; string banan = \"kartofel\"; banan = \"banan\"; string kaboom(num how_many_times) { def z; }"); - lines.push_back("num pun"); - lines.push_back("def how_many_trees = 1; how_many_trees + 3 == 2; num cut_tree(num how_many) {return how_many -1}"); - Lexer lexer; - Context context; - vector tokens; - - for(unsigned int i=0; i>>" << endl; - cout << "Instructions: " << endl ; - cout << lines[i] << endl << endl; - cout << parser.report_message; - cout << parser.error_message << endl; - } - -} - int how_depth_change(vector tokens) { int change = 0; @@ -208,17 +167,14 @@ int main(int argc, char *argv[]) { if(argc <= 1) { - //TestLexer test_l; - //test_l.run_tests(); - - - //test_parser(); - //test_lexer(); cout << "Sencha-lang interpreter, version 0.12" << endl; interactive(); } - else + else if(argv[1] == "--test") { + run_tests(); + } + else { auto name = argv[1]; Lexer lexer; Context context;