Bill Currie
|
258c896e4d
|
Create a function to build if/else blocks.
|
2011-01-13 14:33:16 +09:00 |
|
Bill Currie
|
21d7c78eb7
|
Allow deep copying of expression trees.
Certain expression types (eg labels) are created fresh.
|
2011-01-11 12:05:29 +09:00 |
|
Bill Currie
|
abe471110c
|
Make inc/dec_users return the the expression.
Just for convenience.
|
2011-01-11 08:44:43 +09:00 |
|
Bill Currie
|
18ae178eaf
|
Make new_vector_expr and new_quaternion_expr const-correct.
|
2011-01-11 08:43:34 +09:00 |
|
Bill Currie
|
75ec6bf244
|
Clean out some unnecessary types from the progs engine and clean up the mess.
This is a nasty commit, sorry, but 99% of the commit is interdependent.
|
2011-01-10 12:25:31 +09:00 |
|
Bill Currie
|
02f78e46f8
|
More expression docs.
|
2011-01-03 16:25:59 +09:00 |
|
Bill Currie
|
58042719e5
|
A little more documentation for expressions.
|
2011-01-03 16:19:28 +09:00 |
|
Bill Currie
|
6c631c6d5d
|
Start documenting qfcc.
|
2010-12-19 11:35:18 +09:00 |
|
Bill Currie
|
67beaf4487
|
Nil is a constant, so allow it in global initializers.
|
2010-11-24 17:01:18 +09:00 |
|
Bill Currie
|
ae4fc3147d
|
allow '*pointer' expressions
|
2010-01-13 06:31:41 +00:00 |
|
Bill Currie
|
ccb8faf6ef
|
produce a warning for the likes of "x - x & y"
|
2010-01-13 06:26:18 +00:00 |
|
Bill Currie
|
40fefff847
|
fix incorrect users for temps resulting from casting the result of ?:
There are probably other situations, but I'll fix them as they show up.
|
2010-01-13 06:25:06 +00:00 |
|
Bill Currie
|
72af804b31
|
nested include reporting
|
2007-03-31 15:27:36 +00:00 |
|
Bill Currie
|
66257e3a88
|
run in fear, function overloading is here
This is an imperfect revision of history.
|
2004-11-13 11:50:00 +00:00 |
|
Bill Currie
|
4d044bfea4
|
make entity.vector.x work properly by making relative field offset work. also don't emit a field def for the resulting immediate
This is an imperfect revision of history.
|
2004-11-12 10:49:00 +00:00 |
|
Bill Currie
|
7b28c555ba
|
quaternion field access now works
|
2004-04-09 04:12:44 +00:00 |
|
Bill Currie
|
c3f41e3e69
|
new opcode: state.f. same as state, but takes a 3rd float operand to
specify the step for calculating nextthink. accessed using
[frame, think, step] (state is [frame, think])
|
2004-02-11 01:43:33 +00:00 |
|
Bill Currie
|
51b0a66ac7
|
better constant folding with auto-conversion between scalar types (might
make that optional for non-constants)
|
2004-01-25 08:55:03 +00:00 |
|
Bill Currie
|
945006494f
|
short circuit logic for && and || (as per C). forces standard precedence
(ie, breaks --traditional) when enabled (no choice at the moment, next fix)
|
2003-10-22 08:05:17 +00:00 |
|
Bill Currie
|
11538d4745
|
access arrays in structs more efficiently (especially when using constant
indeces)
|
2003-09-02 17:41:16 +00:00 |
|
Bill Currie
|
b38486d405
|
make rel_def_op work properly
|
2003-08-22 19:48:14 +00:00 |
|
Bill Currie
|
dd9ab1e050
|
get unsigned mostly working
|
2003-08-01 21:20:04 +00:00 |
|
Bill Currie
|
dedb2fa6bf
|
get [super ...] working correctly
|
2003-05-15 05:58:31 +00:00 |
|
Bill Currie
|
2f6fc5d80c
|
general revamp so params and the return value use proper defs rather than
hardcoded locations. this will allow use of quaternions in the future.
|
2003-04-22 15:29:32 +00:00 |
|
Bill Currie
|
ef762e21eb
|
allow initialized globals (since they're constant) to be used in most places
constants are required (switch, initializing globals, enums)
|
2003-02-28 04:54:07 +00:00 |
|
Bill Currie
|
567b905590
|
copyright block work
|
2002-10-22 14:53:18 +00:00 |
|
Bill Currie
|
7bb6dd7197
|
make chained structure assignments (mostly) work. found a bug in the
handling of pointer immediates which needs fixing before this will work in
general
|
2002-10-20 02:35:12 +00:00 |
|
Bill Currie
|
6af57049d5
|
make pointers work a bit better
|
2002-10-16 02:04:06 +00:00 |
|
Bill Currie
|
324b89696a
|
create new_*_expr functions for all basic expression types except ex_poitner
and use them instead of new_expr and setting the fields each time. Serious
code cleanup :)
|
2002-09-11 16:21:26 +00:00 |
|
Bill Currie
|
a94bdb199f
|
@sizeof (foo) should work now
|
2002-08-18 04:08:02 +00:00 |
|
Bill Currie
|
06390e10e6
|
more relocs fixups. my little OO hello world progs works now :)
|
2002-07-14 03:41:13 +00:00 |
|
Bill Currie
|
c1894db59f
|
split the emit stuf out of expr.h into emit.h
|
2002-07-08 18:53:07 +00:00 |
|
Bill Currie
|
f8e4215ba9
|
implement compiler "notices": potentially important information that isn't
really a warning (unless requested) and can be silenced.
|
2002-06-20 19:29:06 +00:00 |
|
Bill Currie
|
00a54ad918
|
redo relocations
|
2002-06-07 17:29:30 +00:00 |
|
Bill Currie
|
e17604f9c2
|
remove all arbitrary limits except for globals. they'll need a little more
work. Once they're done, it should take quite a big mod to crash qfcc due
to too many strings/statements/etc :)
|
2002-06-05 17:12:55 +00:00 |
|
Bill Currie
|
69605d0b19
|
even more cleanup
|
2002-06-04 21:23:39 +00:00 |
|
Bill Currie
|
06bddd3ee6
|
more cleanup
|
2002-06-04 18:44:03 +00:00 |
|
Bill Currie
|
b3adadc347
|
@this will provide an id field named ".this" (ie, .id .this (if .this would
parse in the first place:))
also kill build_type now that a field_type function is available in type.c
|
2002-05-31 16:58:42 +00:00 |
|
Bill Currie
|
e11e2f3718
|
SELF -> @self (looks better (IMO:)) and make sure the .self def gets
generatoed and used when @self is seen
|
2002-05-18 00:30:14 +00:00 |
|
Bill Currie
|
ef9f9cda2f
|
pr_obj.h:
define the class info stuff
expr.h pr_def.c:
fix a FIXME
class.c expr.c type.c:
make id ev_pointer.ev_object rather than ev_pointer.ev_class
|
2002-05-17 17:37:44 +00:00 |
|
Bill Currie
|
7cdbef2b11
|
make class_def return a correct def
|
2002-05-16 22:33:11 +00:00 |
|
Bill Currie
|
9b516ff84f
|
mild namespace cleanup
|
2002-05-11 03:37:36 +00:00 |
|
Bill Currie
|
1b875c8b06
|
work on getting obj expressions going
|
2002-05-08 23:12:49 +00:00 |
|
Bill Currie
|
54fb180fad
|
expr.h:
__attribute__((const)) has rather nasty results when it's not true
expr.c:
fix up some mis-timed ex_error checks
|
2002-05-02 05:03:57 +00:00 |
|
Bill Currie
|
05788e55e5
|
don't generate useless expression warnings when that expression was caused
by an error
|
2002-05-01 22:08:59 +00:00 |
|
Bill Currie
|
80723fdec7
|
o don't ice when ex_name or ex_nil expressions show up in emit_expr.
instead, treat as useless epxression.
o mark rvalue expressions as such
o increment the users of a managed temp def when in an rvalue expr
|
2002-02-21 20:34:04 +00:00 |
|
Bill Currie
|
f2d097c013
|
resolve the case value before checking its type
|
2002-01-21 19:18:41 +00:00 |
|
Bill Currie
|
64c5983742
|
enum support
|
2002-01-21 19:03:29 +00:00 |
|
Bill Currie
|
cef918df83
|
get array initialisation worrking
|
2002-01-18 08:26:37 +00:00 |
|
Bill Currie
|
d69762facd
|
integer() and float() casts seem to work
|
2002-01-17 19:32:04 +00:00 |
|