/* ** luac.c ** lua compiler (saves bytecodes to files) */ char* rcs_luac="$Id: luac.c,v 1.16 1996/03/13 17:33:03 lhf Exp $"; #include #include #include "luac.h" static void compile(char* filename); static int listing=0; /* list bytecodes? */ static int dumping=1; /* dump bytecodes? */ static FILE* D; /* output file */ static void usage(void) { fprintf(stderr,"usage: luac [-dlpv] [-o output] file ...\n"); exit(0); } #define IS(s) (strcmp(argv[i],s)==0) int main(int argc, char* argv[]) { char* d="luac.out"; /* default output file */ int i; for (i=1; inext; /* list only built after first main */ luaI_freefunc(tf); tf=nf; } } static void do_compile(void) { TFunc* tf=new(TFunc); luaI_initTFunc(tf); tf->fileName = lua_parsedfile; lua_parse(tf); do_dump(tf); } static void compile(char* filename) { if (lua_openfile(filename)==NULL) { fprintf(stderr,"luac: cannot open "); perror(filename); exit(1); } do_compile(); lua_closefile(); }