#include "parser.h"
#include "parser.tab.h"
#include "compiler.h"
+#include "registry.h"
+#include "assets.h"
#include "../os.h"
#ifdef HAVE_SYS_STAT_H
#include <sys/stat.h>
{
add_include_dir(dir);
}
-void as3_set_option(char*key, char*value)
+void as3_set_option(const char*key, const char*value)
{
if(!strcmp(key, "recurse")) {
config_recurse=atoi(value);
a3_parse();
as3_lex_destroy();
finish_file();
+ if(fi) fclose(fi);
}
typedef struct _scheduled_file {
}
filename = normalize_path(filename);
-
+
if(dict_contains(scheduled_dict, filename)) {
return; //already processed
} else {
compile_list = 0;
as3_pass = 1;
- as3_parse_file_or_array(filename, fullfilename, 0,0);
+ as3_schedule_file(filename, fullfilename);
as3_parse_scheduled();
registry_resolve_all();
char*dirname = strdup(package);
int s=0;
while(dirname[s]) {
- if(dirname[s]=='.') dirname[s]='/';
+ if(dirname[s]=='.')
+ dirname[s] = path_seperator;
s++;
};
if(!as3_schedule_directory(dirname))
strcpy(filename+t, cls);
strcpy(filename+t+l2, ".as");
- char*f=0;
- if(!(f=find_file(filename, error))) {
+ char*f=find_file(filename, error);
+ if(!f) {
int i;
- /* try lower case filename (not packagename!), too */
- for(i=t;i<t+l2;i++) {
- if(filename[i]>='A' && filename[i]<='Z')
- filename[i] += 'a'-'A';
- }
- if(!(f=find_file(filename, error))) {
- if(error) {
- strcpy(filename+t, cls);
- strcpy(filename+t+l2, ".as");
- as3_warning("Could not open file %s", filename);
- }
- return;
- }
+ filename = filename_to_lowercase(filename);
+ f=find_file(filename, error);
+ }
+ if(!f) {
+ if(error) {
+ strcpy(filename+t, cls);
+ strcpy(filename+t+l2, ".as");
+ as3_warning("Could not open file %s", filename);
+ }
+ return;
}
as3_schedule_file(filename, f);
}
}
return as3code;
}
+void* as3_getassets(void*t)
+{
+ return swf_AssetsToTags((TAG*)t, registry_getassets());
+}
char* as3_getglobalclass()
{
return as3_globalclass;