Bill Currie
f8a41cb1bc
completely nuke the concept of "priority" from opcodes and use get_op_string
...
in emit_sub_expr instead of a redundant switch.
2001-10-25 17:48:35 +00:00
Bill Currie
952f029e6d
rename def_t.initialized to def_t.constant
2001-10-18 17:15:05 +00:00
Bill Currie
85834ab8c3
handle a couple of missed ex_nil cases
2001-10-17 18:36:19 +00:00
Bill Currie
dcb51dc586
expr.h:
...
get_type and extract_type prototypes and add extern for type_names
emit.c:
use extract_type instead of get_type
expr.c:
get_type now returns the type pointer rather than the qc type enum.
extract_type uses get_type to return the qc type enum.
make type_names global
use get_type instead of ex_expr/ex_def to cover more cases
clean up function call/return processing as a result of get_type
pr_opcode.c:
use opcode_priority_type_table_ab when var_c is null and a minor
cleanup in PR_Opcode_Find
2001-10-02 18:55:52 +00:00
Bill Currie
7407e4f1b7
and some more
2001-09-28 07:09:38 +00:00
Bill Currie
2054ec016a
fix a slew of false positives with unused var checking
2001-09-23 04:08:03 +00:00
Bill Currie
7aec6e253a
unused local variable detection
2001-09-22 23:41:47 +00:00
Bill Currie
d7675ada7a
move the particle count multiplication out of the renderer and into the clien
...
(for blood and gunshot, anyway).
2001-09-06 05:41:15 +00:00
Bill Currie
ea451ab02d
Remove unnecessary temps from function return values. This has one
...
*/CRITICAL/* implication: DO NOT /EVER/ RELY ON EVALUATION ORDER. This
isn't /really/ that bad: evaluation order will be consistent for similar
expressions, but for (eg) foo() + bar()*2, bar will be called first.
2001-08-24 21:47:52 +00:00
Bill Currie
08f73bed78
better code generation for foo(bar(baz)). foo(snafu,bar(baz)) isn't optimal
...
yet, but the code is at least correct
2001-08-24 21:14:04 +00:00
Bill Currie
4c48851096
fix a buffer overflow in new_label_expr
...
use reference counting for temp defs and call PR_FreeTempDefs at the end
of emit_sub_expr as well as emit_expr.
fix a (relatively harmless) bug in type processesing of foo.bar =
2001-08-22 21:55:01 +00:00
Bill Currie
cd59628199
move the chained funcion support out of emit_function_expr into funciton_expr
2001-08-20 04:56:00 +00:00
Bill Currie
d55199bece
re-arrange the types of store and storep so things make a little more sense
2001-08-13 23:00:17 +00:00
Bill Currie
c103adc17d
clean up the code generated for a = b ? c : d
2001-08-12 02:38:12 +00:00
Bill Currie
248de6858d
hopefully take care of freebsd
2001-08-11 21:46:02 +00:00
Bill Currie
c2d3d8f3ab
temp def expressions and ?:
...
seems to work :)
2001-08-11 21:15:24 +00:00
Bill Currie
a8e858f77d
fix a bug where every 2nd(?) arg was being skipped when setting up a function
...
call
2001-08-10 21:31:48 +00:00
Adam Olsen
caeb31e6ca
start of the support for chained function calls. Actually, they
...
should work fine now, there's just some extra temp vars we want to
remove before we can consider it "done" :)
2001-08-10 20:35:42 +00:00
Adam Olsen
6414897dae
got a few new operators for qc :)
...
<< >> % which all act like their C counterparts
+= -= *= /= &= ^= |= <<= >>= %= which just expand into the obvious,
also like the C versions.
2001-08-10 16:17:00 +00:00
Bill Currie
27ccfa67c5
fix the efficiency of unary expressions as args to a function
2001-08-09 17:05:30 +00:00
Bill Currie
081d8f3c47
^ and ~ operators for qc (^ from Rhamphoryncus) and clean up the punctuation
...
line in qc-lex.l (why didn't I think to do that in the first place?!?)
2001-08-09 16:34:46 +00:00
Bill Currie
28b1598e7e
break the emit_* functions out of expr.c into emit.c
2001-07-26 05:15:34 +00:00