|
|
|
@@ -1,5 +1,7 @@ |
|
|
|
#include "libslime.cpp" |
|
|
|
|
|
|
|
using namespace Slime; |
|
|
|
|
|
|
|
s32 main(s32 argc, char* argv[]) { |
|
|
|
#ifdef SLIME_WINDOWS |
|
|
|
// enable colored terminal output for windows |
|
|
|
@@ -10,28 +12,29 @@ s32 main(s32 argc, char* argv[]) { |
|
|
|
SetConsoleMode(hOut, dwMode); |
|
|
|
#endif |
|
|
|
|
|
|
|
Memory::init(); |
|
|
|
Memory::load_pre(); |
|
|
|
Memory::push_user_environment(); |
|
|
|
defer { |
|
|
|
if_debug { |
|
|
|
Memory::free_everything(); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
if (argc > 1) { |
|
|
|
if (Slime::string_equal(argv[1], "--run-tests")) { |
|
|
|
s32 res = Slime::run_all_tests(); |
|
|
|
if (string_equal(argv[1], "--run-tests")) { |
|
|
|
s32 res = run_all_tests(); |
|
|
|
return res ? 0 : 1; |
|
|
|
} else if (Slime::string_equal(argv[1], "--generate-docs-file")) { |
|
|
|
Slime::Memory::init(); |
|
|
|
Slime::Memory::load_pre(); |
|
|
|
Slime::Memory::push_user_environment(); |
|
|
|
defer { |
|
|
|
if_debug { |
|
|
|
Slime::Memory::free_everything(); |
|
|
|
} |
|
|
|
}; |
|
|
|
if (Slime::Globals::error) return 1; |
|
|
|
Slime::built_in_load(Slime::Memory::create_string("generate-docs-file.slime")); |
|
|
|
} else if (string_equal(argv[1], "--generate-docs-file")) { |
|
|
|
if (Globals::error) return 1; |
|
|
|
built_in_load(Memory::create_string("generate-docs-file.slime")); |
|
|
|
} else { |
|
|
|
Slime::interprete_file(argv[1]); |
|
|
|
interprete_file(argv[1]); |
|
|
|
} |
|
|
|
} else { |
|
|
|
Slime::interprete_stdin(); |
|
|
|
interprete_stdin(); |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
if (Slime::Globals::error) return 1; |
|
|
|
if (Globals::error) return 1; |
|
|
|
} |