mirror of
https://github.com/nzp-team/fteqw.git
synced 2024-11-10 14:42:13 +00:00
Print out a warning count, added an entnum intrinsic.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@1718 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
db19960aaf
commit
0371d2cab6
4 changed files with 31 additions and 2 deletions
|
@ -752,7 +752,7 @@ void *QCC_PR_Malloc (int size);
|
|||
|
||||
|
||||
extern QCC_def_t *pr_scope;
|
||||
extern int pr_error_count;
|
||||
extern int pr_error_count, pr_warning_count;
|
||||
|
||||
void QCC_PR_NewLine (pbool incomment);
|
||||
QCC_def_t *QCC_PR_GetDef (QCC_type_t *type, char *name, QCC_def_t *scope, pbool allocate, int arraysize);
|
||||
|
|
|
@ -2471,6 +2471,26 @@ QCC_def_t *QCC_PR_ParseFunctionCall (QCC_def_t *func) //warning, the func could
|
|||
def_ret.type = rettype;
|
||||
return &def_ret;
|
||||
}
|
||||
else if (!strcmp(func->name, "entnum") && !QCC_PR_CheckToken(")"))
|
||||
{
|
||||
//t = (a/%1) / (nextent(world)/%1)
|
||||
//a/%1 does a (int)entity to float conversion type thing
|
||||
|
||||
e = QCC_PR_Expression(TOP_PRIORITY);
|
||||
QCC_PR_Expect(")");
|
||||
e = QCC_PR_Statement(&pr_opcodes[OP_DIV_F], e, QCC_MakeIntDef(1), (QCC_dstatement_t **)0xffffffff);
|
||||
|
||||
d = QCC_PR_GetDef(NULL, "nextent", NULL, false, 0);
|
||||
if (!d)
|
||||
QCC_PR_ParseError(0, "the nextent builtin is not defined");
|
||||
QCC_FreeTemp(QCC_PR_Statement(&pr_opcodes[OP_STORE_F], e, &def_parms[0], (QCC_dstatement_t **)0xffffffff));
|
||||
d = QCC_PR_Statement(&pr_opcodes[OP_CALL0], d, NULL, NULL);
|
||||
d = QCC_PR_Statement(&pr_opcodes[OP_DIV_F], d, QCC_MakeIntDef(1), (QCC_dstatement_t **)0xffffffff);
|
||||
|
||||
e = QCC_PR_Statement(&pr_opcodes[OP_DIV_F], e, d, (QCC_dstatement_t **)0xffffffff);
|
||||
|
||||
return e;
|
||||
}
|
||||
} //so it's not an intrinsic.
|
||||
|
||||
if (opt_precache_file) //should we strip out all precache_file calls?
|
||||
|
@ -3276,7 +3296,8 @@ QCC_def_t *QCC_PR_ParseValue (QCC_type_t *assumeclass)
|
|||
if (!d)
|
||||
{
|
||||
if ( (!strcmp(name, "random" )) ||
|
||||
(!strcmp(name, "randomv")) ) //intrinsics, any old function with no args will do.
|
||||
(!strcmp(name, "randomv")) ||
|
||||
(!strcmp(name, "entnum")) ) //intrinsics, any old function with no args will do.
|
||||
od = d = QCC_PR_GetDef (type_function, name, NULL, true, 1);
|
||||
else if (keyword_class && !strcmp(name, "this"))
|
||||
{
|
||||
|
|
|
@ -34,6 +34,7 @@ QCC_eval_t pr_immediate;
|
|||
char pr_immediate_string[8192];
|
||||
|
||||
int pr_error_count;
|
||||
int pr_warning_count;
|
||||
|
||||
|
||||
CompilerConstant_t *CompilerConstant;
|
||||
|
@ -2396,7 +2397,10 @@ void VARGS QCC_PR_ParseWarning (int type, char *error, ...)
|
|||
pr_error_count++;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf ("%s:%i: warning: %s\n", strings + s_file, pr_source_line, string);
|
||||
pr_warning_count++;
|
||||
}
|
||||
}
|
||||
|
||||
void VARGS QCC_PR_Warning (int type, char *file, int line, char *error, ...)
|
||||
|
@ -2415,6 +2419,7 @@ void VARGS QCC_PR_Warning (int type, char *file, int line, char *error, ...)
|
|||
printf ("%s:%i: warning: %s\n", file, line, string);
|
||||
else
|
||||
printf ("warning: %s\n", string);
|
||||
pr_warning_count++;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1477,6 +1477,7 @@ void QCC_PR_BeginCompilation (void *memory, int memsize)
|
|||
pr.types = NULL;
|
||||
// type_function->next = NULL;
|
||||
pr_error_count = 0;
|
||||
pr_warning_count = 0;
|
||||
recursivefunctiontype = 0;
|
||||
|
||||
freeofs = NULL;
|
||||
|
@ -3112,6 +3113,8 @@ void QCC_FinishCompile(void)
|
|||
|
||||
printf("numtemps %i\n", numtemps);
|
||||
|
||||
printf("%i warnings\n", pr_warning_count);
|
||||
|
||||
qcc_compileactive = false;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue