Bill Currie
de89733c5b
fix a missing & that was causing problems with writing function refs
2002-07-11 20:14:45 +00:00
Bill Currie
bc5beea311
getting closer to being able to link
2002-07-11 17:06:15 +00:00
Bill Currie
2df43ef941
make data handling a little easier
2002-07-11 15:42:20 +00:00
Bill Currie
1db26eea86
can't call pointer_type untill after the types are chained
2002-07-09 19:00:52 +00:00
Bill Currie
2cb6138f2b
fix a silly segfault and make statement allocation saner
2002-07-08 20:31:59 +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
e815669b7a
finish (for now:/) qfo_to_progs
2002-07-08 16:13:06 +00:00
Bill Currie
24e242ed35
move the type strings into their own string pool so the progs strings don't
...
get cluttered
2002-07-08 05:26:50 +00:00
Bill Currie
598edb26fd
parse a type back from its encoding (some info will be lost)
2002-07-08 05:10:05 +00:00
Bill Currie
4c8e157db2
nuke pr.statement_linenums as it was redundant and the info never used anyway
2002-07-08 03:05:44 +00:00
Bill Currie
5b98893003
bah, getting my "last changes vs last compile" backwards again :/
2002-07-05 20:19:13 +00:00
Bill Currie
8a402381e6
redo how progs strings are stored so multiple pools can exist
2002-07-05 20:02:10 +00:00
Bill Currie
7132e67f60
type encoding improvements
2002-07-05 16:59:25 +00:00
Bill Currie
0ef4a7513d
d'oh, I thought I tested with those lines in :/
2002-07-03 21:38:14 +00:00
Bill Currie
46bad45c7a
move s_file, pr_source_line and pr_error_count into pr, make the linker
...
errors more meaningful, and fix a blasted string.h issue (damn old gcc;P)
2002-07-03 21:32:03 +00:00
Bill Currie
102eab0d84
linker.[ch]:
...
start working on the linker.
class.[ch]:
redo class defs so the pointer works (needs relocs still)
obj_file.h:
add prototype for read_obj_file, QFO_* data access macros and include
pr_debug.h
type.[ch]:
separate type system initialisation and recording of the standard types
so find_type works properly in multiple compilation
def.c:
don't mark static defs as initialized
expr.c:
proper class pointer def stuff
immediate.c:
clean out dead vars/code
obj_file.c:
allocate space for the line info and bail if the file can't be opened.
qfcc.c:
register the standard types for each compile pass and start linking the
files
2002-07-03 20:16:32 +00:00
Bill Currie
9332ea30bc
oops, forgot to copy the string again when I went from strdup to save_string
2002-07-03 19:12:29 +00:00
Bill Currie
b81f77803c
make extern more of a no-op when the def alread exists
2002-07-03 06:42:54 +00:00
Ragnvald Maartmann-Moe IV
4bd03bfff3
Hack to make error-on-warnings happy. *pokes taniwha*
2002-07-03 00:36:44 +00:00
Bill Currie
211b11c8ae
some storage and obj file fixes
2002-07-02 23:08:44 +00:00
Bill Currie
e6c4e0b576
some more storage class work
2002-07-02 21:34:40 +00:00
Bill Currie
66aa36b73f
start implementing storage classes (extern, static, etc)
2002-06-28 17:59:32 +00:00
Bill Currie
8e2dbc1947
gzwrite doesn't like 0 bytes
2002-06-28 16:52:41 +00:00
Bill Currie
1a0b69e1d9
"qfcc *.qc" can now get through the prozac source withtout crashing (oodles
...
of compile errors, though:)
2002-06-28 16:38:05 +00:00
Bill Currie
8415db2d84
clear out the hash tables for compiling multiple object files
2002-06-28 16:00:01 +00:00
Bill Currie
001571e25a
various memory saving tricks. seems to have not broken anything
2002-06-27 22:48:28 +00:00
Bill Currie
be50d0e15a
sometimes, gcc 2.95 can be such a pain
2002-06-27 15:13:43 +00:00
Bill Currie
26dce371d9
clean up type allocation a little and also reloc allocation
2002-06-26 22:10:59 +00:00
Bill Currie
362ec2a23a
do some freeing
2002-06-26 16:27:23 +00:00
Bill Currie
78a626066e
get command line parsing working in an appropriate manner for separate
...
compilation
2002-06-25 21:36:10 +00:00
Bill Currie
ecdb5a5cb4
allow the output file to be specified on the command line
2002-06-24 22:53:21 +00:00
Bill Currie
4d496a2cd6
more endianess corrections and read/write line numbers
2002-06-24 22:36:04 +00:00
Bill Currie
29d679154f
forgot to byteswap the code and data
2002-06-24 21:41:05 +00:00
Bill Currie
f77bb44df3
load a qfo back into memory. next step is to figure out linking
2002-06-22 05:10:34 +00:00
Bill Currie
9fee1d07dd
initial work on actually writing .qfo files. seems to work, but only test.qfo
...
is ever writtin :)
2002-06-21 20:46:56 +00:00
Bill Currie
f8dee80355
add unions
2002-06-20 20:28:01 +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
3476138988
make --tradiontial cause "!foo & bar" evaluate as "!(foo & bar)" as per
...
qfcc's broken behaviour.
2002-06-20 18:51:46 +00:00
Bill Currie
37d3fecd5d
remove an unneeded field
2002-06-17 05:28:43 +00:00
Bill Currie
cbffb4b140
clean up the vector def setup
2002-06-17 02:43:38 +00:00
Bill Currie
b519c0b7cd
fix a silly typo that was causing the _y of vectors to get pointed to the
...
wrong place
2002-06-17 01:22:45 +00:00
Bill Currie
2264c28310
pr_strings:
...
remove a bogus 0x which caused confusion in an error message
def.c:
vector fields still need an extra 3 globals for their component fields
2002-06-16 05:24:58 +00:00
Bill Currie
e774943f24
va.[ch]:
...
new va function: nva which returns a strduped buffer
expr.c options.c:
use nva instead of strdup (va (...
struct.c type.c:
make type encoding work properly for structs
2002-06-13 16:39:33 +00:00
Bill Currie
fb0318621d
and for my next amazing feat, I'll remove the debug code :P
2002-06-13 07:22:53 +00:00
Bill Currie
5bbcbe0185
arrays seem to be working nicely now (menus work:)
2002-06-13 07:20:15 +00:00
Bill Currie
71c9cdcc08
create pointer types correctly
2002-06-13 04:40:09 +00:00
Bill Currie
88fc0be127
arrays are /almost/ working again
2002-06-12 22:37:18 +00:00
Bill Currie
331df31f6a
get the function number early so things don't get mixed up when new functions
...
get created while parsing a function
2002-06-11 06:54:32 +00:00
Bill Currie
f7d8c2968f
better global (and other space) def re-use
2002-06-10 23:14:32 +00:00
Bill Currie
1f67ea412d
add a global flag to def_t to make checking easier
...
rename pr.globals to pr.near_data and add pr.far_data
2002-06-10 20:54:22 +00:00