From 142b5016d7cfb17e008d7c7dbea19bd7c2e0216d Mon Sep 17 00:00:00 2001 From: pixel Date: Mon, 28 May 2007 07:12:26 +0000 Subject: Adding luac. --- src/luac.cc | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 src/luac.cc (limited to 'src') diff --git a/src/luac.cc b/src/luac.cc new file mode 100644 index 0000000..882d41a --- /dev/null +++ b/src/luac.cc @@ -0,0 +1,69 @@ +#include + +#include +#include +#include +#include + +struct option long_options[] = { + {"help", 0, NULL, 'h'}, + {"verbose", 0, NULL, 'v'}, + {"output", 1, NULL, 'o'}, + {"debug", 0, NULL, 'd'}, + {0, 0, NULL, 0 } +}; + +CODE_BEGINS +void showhelp() { + printm(M_BARE, +"Usage:\n" +"%s [options] [lua-script1] [lua-script2] ...\n" +"\n" +"Options:\n" +" -v sets verbosity.\n" +" -d sets debug mode.\n" +" -o set output filename.\n" +, argv[0]); + +} + +virtual int startup() throw (GeneralException) { + Lua * L = new Lua(); + bool strip = true; + char * output = "a.clua"; + bool todo; + + while ((c = getopt_long(argc, argv, "Hhvo:d", long_options, NULL)) != EOF) { + case 'h': + case 'H': + case '?': + showhelp(); + return 0; + case 'v': + verbosity = M_INFO; + break; + case 'o': + output = strdup(optarg); + break; + case 'd': + strip = false; + break; + } + + /* Loading all the scripts */ + while (optind < argc) { + todo = true; + L->load(&Input(argv[optind++]), false); + } + + /* Doh... */ + if (!todo) { + showhelp(); + return 0; + } + + L->dump(&Output(output), strip); + + return 0; +} +CODE_ENDS -- cgit v1.2.3