X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fas3%2Fmain.c;h=4901e43812d0cd654b5f3d69f0b71b54cb9fe88f;hb=3e1312c39052252e112f435ba3193f550cf891cb;hp=09e26697b2f0a7fe2c429d2e7fead6f82f98c358;hpb=49adf2d8d2d0c799dd0ee52c100f518f95963cf5;p=swftools.git diff --git a/lib/as3/main.c b/lib/as3/main.c index 09e2669..4901e43 100644 --- a/lib/as3/main.c +++ b/lib/as3/main.c @@ -30,17 +30,21 @@ #include "tokenizer.h" #include "parser.tab.h" #include "parser.h" +#include "compiler.h" -void test_lexer() +void test_lexer(char*filename) { + char*fullfilename = enter_file(filename, 0); + FILE*fi = fopen(fullfilename, "rb"); + as3_set_in(fi); while(1) { - int token = avm2_lex(); + int token = as3_lex(); if(token==T_EOF) break; if(token>=32 && token<256) { printf("'%c'\n", token); } else { - printf("%s\n", token2string(token, avm2_lval)); + printf("%s\n", token2string(token, a3_lval)); } } } @@ -54,27 +58,25 @@ int main(int argn, char*argv[]) fprintf(stderr, "please supply a filename\n"); exit(1); } - filename=argv[1]; - - registry_init(); - - add_include_dir(getcwd(buf, 512)); - char*fullfilename = enter_file(filename, 0); - - FILE*fi = fopen(fullfilename, "rb"); - if(!fi) { - perror(fullfilename); - return 1; + filename=argv[argn-1]; + + int t=0; + for(t=1;t2 && !strcmp(argv[2], "-lex")) { - test_lexer(); - return 0; - } - avm2_parse(); - void*code = finalize_state(); + //extern int avm2_debug; + //avm2_debug = 1; + + as3_add_include_dir(getcwd(buf, 512)); + as3_parse_file(filename); + void*code = as3_getcode(); SWF swf; memset(&swf, 0, sizeof(swf)); @@ -86,12 +88,11 @@ int main(int argn, char*argv[]) TAG*tag = swf.firstTag = swf_InsertTag(0, ST_DOABC); swf_WriteABC(tag, code); - if(globalclass) { + if(as3_getglobalclass()) { tag = swf_InsertTag(tag, ST_SYMBOLCLASS); swf_SetU16(tag, 1); swf_SetU16(tag, 0); - swf_SetString(tag, globalclass); - free(globalclass);globalclass=0; + swf_SetString(tag, as3_getglobalclass()); } else { printf("Warning: no global public MovieClip subclass\n"); }