summaryrefslogtreecommitdiff
path: root/indra/lscript/lscript_compile/indra.l
diff options
context:
space:
mode:
authorDave Hiller <daveh@lindenlab.com>2008-07-31 12:15:15 +0000
committerDave Hiller <daveh@lindenlab.com>2008-07-31 12:15:15 +0000
commit9a7d68cfce5f71cf9d89536431d72941dc369749 (patch)
treef7e0ce093abef0fcc7737cac63bc2a8dbf11b729 /indra/lscript/lscript_compile/indra.l
parentf0f2a416911ba8de9ac1e08cd90720c0d789bb2e (diff)
svn merge -r93014:93396 svn+ssh://svn.lindenlab.com/svn/linden/branches/mono-r93014-qar633 dataserver-is-deprecated
Diffstat (limited to 'indra/lscript/lscript_compile/indra.l')
-rw-r--r--indra/lscript/lscript_compile/indra.l29
1 files changed, 12 insertions, 17 deletions
diff --git a/indra/lscript/lscript_compile/indra.l b/indra/lscript/lscript_compile/indra.l
index 14f8acb551..09008379a2 100644
--- a/indra/lscript/lscript_compile/indra.l
+++ b/indra/lscript/lscript_compile/indra.l
@@ -676,7 +676,7 @@ int yyerror(const char *fmt, ...)
//#define EMIT_CIL_ASSEMBLER
BOOL lscript_compile(const char* src_filename, const char* dst_filename,
- const char* err_filename, BOOL is_god_like)
+ const char* err_filename, BOOL compile_to_mono, const char* class_name, BOOL is_god_like)
{
BOOL b_parse_ok = FALSE;
BOOL b_dummy = FALSE;
@@ -718,6 +718,8 @@ BOOL lscript_compile(const char* src_filename, const char* dst_filename,
}
gScriptp->mGodLike = is_god_like;
+
+ gScriptp->setClassName(class_name);
gScopeStringTable = new LLStringTable(16384);
#ifdef EMERGENCY_DEBUG_PRINTOUTS
@@ -733,34 +735,25 @@ BOOL lscript_compile(const char* src_filename, const char* dst_filename,
#ifdef EMERGENCY_DEBUG_PRINTOUTS
gScriptp->recurse(yyout, 0, 0, LSCP_EMIT_ASSEMBLY, LSPRUNE_INVALID, b_dummy, NULL, type, type, b_dummy_count, NULL, NULL, 0, NULL, 0, NULL);
#endif
-#ifdef EMIT_CIL_ASSEMBLER
- const char* cil_output_file_name = dst_filename? dst_filename : "lscript.cil";
- LLFILE* cilout = LLFile::fopen(cil_output_file_name, "w");
- if(NULL == cilout)
+ if(TRUE == compile_to_mono)
{
- fprintf(yyout, "Error opening cil output file %s\n", cil_output_file_name);
+ gScriptp->recurse(yyout, 0, 0, LSCP_EMIT_CIL_ASSEMBLY, LSPRUNE_INVALID, b_dummy, NULL, type, type, b_dummy_count, NULL, NULL, 0, NULL, 0, NULL);
}
else
{
- gScriptp->recurse(cilout, 0, 0, LSCP_EMIT_CIL_ASSEMBLY, LSPRUNE_INVALID, b_dummy, NULL, type, type, b_dummy_count, NULL, NULL, 0, NULL, 0, NULL);
- if(fclose(cilout) == EOF)
- {
- fprintf(yyout, "Error closing cil output file %s\n", cil_output_file_name);
- }
+ gScriptp->recurse(yyout, 0, 0, LSCP_EMIT_BYTE_CODE, LSPRUNE_INVALID, b_dummy, NULL, type, type, b_dummy_count, NULL, NULL, 0, NULL, 0, NULL);
}
-#endif
- gScriptp->recurse(yyout, 0, 0, LSCP_EMIT_BYTE_CODE, LSPRUNE_INVALID, b_dummy, NULL, type, type, b_dummy_count, NULL, NULL, 0, NULL, 0, NULL);
}
delete gScopeStringTable;
gScopeStringTable = NULL;
#ifdef EMERGENCY_DEBUG_PRINTOUTS
fclose(compfile);
#endif
+ fclose(yyout);
}
- fclose(yyout);
+ fclose(yyin);
}
- fclose(yyin);
delete gAllocationManager;
delete gScopeStringTable;
@@ -768,13 +761,15 @@ BOOL lscript_compile(const char* src_filename, const char* dst_filename,
}
-BOOL lscript_compile(char *filename, BOOL is_god_like = FALSE)
+BOOL lscript_compile(char *filename, BOOL compile_to_mono, BOOL is_god_like = FALSE)
{
char src_filename[MAX_STRING];
sprintf(src_filename, "%s.lsl", filename);
char err_filename[MAX_STRING];
sprintf(err_filename, "%s.out", filename);
- return lscript_compile(src_filename, NULL, err_filename, is_god_like);
+ char class_name[MAX_STRING];
+ sprintf(class_name, "%s", filename);
+ return lscript_compile(src_filename, NULL, err_filename, compile_to_mono, class_name, is_god_like);
}