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
66aa36b73f
start implementing storage classes (extern, static, etc)
2002-06-28 17:59:32 +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
Ragnvald Maartmann-Moe IV
c963f300e6
Add include for string.h. Needs to be done more portably, but I'm too tired.
2002-06-26 23:01:25 +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
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
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
f90f78990a
ok, I'm happy with this now (bit fields anent' so great for portable file
...
formats:/)
2002-06-18 21:00:41 +00:00
Bill Currie
8263d3bd85
start working on the format for the object files
2002-06-17 05:29:20 +00:00
Bill Currie
37d3fecd5d
remove an unneeded field
2002-06-17 05:28:43 +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
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
Bill Currie
58782333a9
give scopes types (static, params, locals for now)
2002-06-09 05:19:13 +00:00
Bill Currie
1e57351be1
there, no more PR_* functions or pr_* files :)
2002-06-09 04:30:02 +00:00
Bill Currie
943c2eefb3
redo def allocation to come from configurable `spaces' (locals, globals, far
...
globals, etc).
2002-06-09 03:57:20 +00:00
Bill Currie
1cc91e9f10
add reloc.h
2002-06-08 21:12:14 +00:00
Bill Currie
541f7ed1b8
some def stuff shuffling
2002-06-07 21:17:51 +00:00
Bill Currie
0477b43f80
get rid of PR_GetArray: it's redundant
2002-06-07 18:14:39 +00:00
Bill Currie
00a54ad918
redo relocations
2002-06-07 17:29:30 +00:00
Bill Currie
8aa98c0d20
fix several silly mistakes
2002-06-06 21:51:47 +00:00
Bill Currie
f31705380f
call malloc a little less often
2002-06-05 21:13:29 +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
c58a4c59b7
forgot to move the prototypes
2002-06-04 21:54:47 +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
77d244220b
more qfcc cleanup. split out some functions and kill some dead code
2002-06-04 05:25:37 +00:00
Bill Currie
328b591aa0
some qfcc.c cleanup
2002-06-04 04:36:57 +00:00
Bill Currie
7b993f97d2
more cleanups
2002-06-01 05:30:16 +00:00
Bill Currie
c4d0c574ee
clean up qfcc.h a bit
2002-06-01 05:06:19 +00:00
Bill Currie
8f2d1fa2d9
more cmdlib cleanup
2002-06-01 04:41:25 +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
6fbf011073
rpm building fixes
2002-05-27 20:28:10 +00:00
Bill Currie
34ec521198
vararg functions can now be imlemented in qc using @argc (number of params
...
passed through ...) and @argv (array of vectors, one for each ... param)
2002-05-22 20:43:29 +00:00
Bill Currie
3967f5cf95
type.h:
...
*type_method to type_Method
emit.c:
support casting between pointers
expr.c:
support casting between pointers
method.c:
correct the type for _cmd
type_method to type_Method.aux_type
qc-lex.l:
Method type is a poniter to a method
qc-parse.y:
support , args to messages (not fully implemented yet)
type.c:
*type_method to type_Method and make type_Method a pointer to a method
2002-05-22 05:03:36 +00:00
Bill Currie
a1fe5efd27
initialize class_Class.super_class iff @keywords are seen (ie, compiling
...
obj code).
2002-05-22 01:39:07 +00:00
Bill Currie
9f06f89d57
write out the module data needed for the obj runtime
2002-05-21 21:28:40 +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
451bfbddfe
fix a snafu with current_class and get ivar access working properly (cross
...
fingers:)
2002-05-17 19:35:26 +00:00
Bill Currie
b1d1159ae2
allow methods to be builtins
2002-05-17 18:35:54 +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
6965642030
get ivars working better (need to get rid of self.) and [super ...] now
...
works.
2002-05-17 06:20:27 +00:00