00001 #include "cppscript"
00002 #include "dynamic/extensions.hpp"
00003
00004 extern var script_main(var);
00005
00006 extern "C" int main(int argc, char *argv[])
00007 {
00008 internal::use_new_apartment a;
00009
00010 try
00011 {
00012 stack_trace_entry e("script_main");
00013 return script_main(array_it(argv+1, argv+argc)).as_int();
00014 }
00015 catch(dynamic::exception & ex)
00016 {
00017 std::cerr << "An uncaught exception occurred:\n" << exception_description(ex) << std::endl;
00018 return 100;
00019 }
00020 catch(var & ex)
00021 {
00022 std::cerr << "Uncaught exception: " << ex.as_string() << std::endl;
00023 return 101;
00024 }
00025 catch(std::exception & ex)
00026 {
00027 std::cerr << "Uncaught exception: " << ex.what() << std::endl;
00028 return 102;
00029 }
00030 catch(...)
00031 {
00032 std::cerr << "Uncaught exception: unknown\n";
00033 return 103;
00034 }
00035 }