Commit Graph

696 Commits

Author SHA1 Message Date
Bill Currie 1d35f4dd9e make ~ work for v6 progs by implementing ~x as -1 - x (will give bogus
results if x has fractional bits, but it's better than it was:)
2002-09-04 16:18:52 +00:00
Bill Currie 882d0f25ce the code memory block can move around so take the address of a statement
after statments have been emitted, not before.
2002-08-30 05:33:34 +00:00
Bill Currie 5da6fbe59c check for uninitialized variables used in function args 2002-08-29 03:06:00 +00:00
Bill Currie ec47e08e1c go back to using QFile, quakeio.h and quakefs.h 2002-08-27 07:16:28 +00:00
Bill Currie 2658c3098f use the LoadFile in libQFutil 2002-08-26 00:31:07 +00:00
Bill Currie aaab480676 fix a bunch of potential malloc (0) calls 2002-08-25 23:16:07 +00:00
Bill Currie 3e87e3ecdf allow ';' after @class ... 2002-08-20 21:13:18 +00:00
Bill Currie 371e92c448 finally fix chained function calls /properly/. need to make sure /all/ args
get their user count incremented, not just the head of the chain
2002-08-20 17:21:32 +00:00
Bill Currie c927b2e834 quakefs.c:
allow . and .. in a path so long as the result doesn't escape from the
	game directory
cl_menu/Makefile.am:
	don't strip source paths
optoins.qc:
	use InputLine object
def.c:
	use notice to show stray temps
emit.c:
	make sure expression args get emitted for function calls
expr.c:
	'C' is a cast
	rewrite cast_expr to handle casted pointere derefs
2002-08-20 06:11:10 +00:00
Bill Currie 5d7135600e gah, that /did/ work, dunno what happend. must have done a tweak before
committing again :/ This currently produces some pseudo warnings about
dangling temps, but that's better than producing broken code
2002-08-20 02:52:04 +00:00
Bill Currie b99a72e876 pr_obj.c:
call obj_find_message with super instead of class when doing a super
	lookup
client_menu.[ch]:
	use the InputLine object instead of directly using the api
InputLine.r:
	builint functions are = #0, not = 0 :P
function.[ch]:
	provide copy_params
method.[ch]
	provide copy_keywordargs
expr.c:
	call inc_users for the parm temp if it's a bind expression
	revers a copy of the selector when building the selector name so the
	selector doesn't get mangled
qc-parse.y:
	catch erronous func = const inintializers (should be func = #const)
2002-08-20 02:09:34 +00:00
Bill Currie a94bdb199f @sizeof (foo) should work now 2002-08-18 04:08:02 +00:00
Bill Currie c1c6c05cf5 pr_obj.c:
delay class fixups so order doesn't matter
class.c:
	write out the class and category diffs properly
2002-08-16 22:53:37 +00:00
Bill Currie 932ac624bd more error checking fixes 2002-08-16 20:49:32 +00:00
Bill Currie 8a431570b8 generate the selector name in the correct order for selector expressions 2002-08-16 19:50:16 +00:00
Bill Currie cab813c559 check the scope when checking for duplicate vector sub-defs 2002-08-16 16:51:00 +00:00
Bill Currie 45a1ef2140 allow assignment of any pointer type to void pointers 2002-08-15 20:13:18 +00:00
Bill Currie 36ca7b55bd fix several problems caused by insufficient error checking and some double
Qclose calls
2002-08-15 18:53:03 +00:00
Bill Currie 09ce2b0662 make sure a class' super class gets referenced when the class is implemented
to ensure the super class' object file gets linked in when it's in a library
2002-08-14 03:55:23 +00:00
Bill Currie fabaf84745 fix a missing reloc ref for .this 2002-08-14 03:44:41 +00:00
Bill Currie 53b257c918 preprocessising fixes, including detecting when to stop at the preprocessing
stage.
2002-08-13 22:02:07 +00:00
Bill Currie 8474f145d1 remove debug print 2002-08-13 21:54:10 +00:00
Bill Currie 0840678465 handle extern -> defined transition properly for vectors 2002-08-13 21:19:30 +00:00
Bill Currie 2f4094344b don't change the hidden parm type for protocol methods until they're used in a class 2002-08-13 21:18:17 +00:00
Bill Currie fa6f3cb09d loop over the method list correctly 2002-08-13 21:17:20 +00:00
Bill Currie 3971786ee1 clean up a follow on error for calling an undefined function 2002-08-13 21:16:42 +00:00
Bill Currie cd6f82c2c9 fix Class mangling when compiling multipe source files to objects 2002-08-13 17:03:26 +00:00
Bill Currie a431a2783c byteswap the reloc def field too (fixes the qfcc seg on big-endian systems) 2002-08-09 04:06:50 +00:00
Bill Currie ff8ea15c09 solaris compile fixes 2002-08-09 04:06:17 +00:00
Bill Currie 8de4d28238 print cpp invocation for win32 too 2002-08-02 19:09:02 +00:00
Brian Koropoff 439f9838d3 Whoops, missed some stuff that needed to be in idparse.h 2002-07-31 22:13:15 +00:00
Bill Currie 7c26fa28dc another cmdlib function dies 2002-07-31 16:42:21 +00:00
Bill Currie 5f65a53e81 fix a bug with obj_msgSend and obj_msgSend_super when more than one file is
compiled
2002-07-23 18:51:47 +00:00
Bill Currie 1e49f0d0c3 fix a segfault (what was I thinking when I wrote that line?) 2002-07-23 05:44:45 +00:00
Bill Currie c2a7564d55 implement -l, but -L isn't supported yet and the full lib name must be given 2002-07-21 07:12:17 +00:00
Bill Currie f1423cb0b3 print the cpp command line if verbosity is high enough 2002-07-20 05:20:40 +00:00
Ragnvald Maartmann-Moe IV e6ea44a9ad ? tools/qfcc/source/qfodump
Not anymore.
2002-07-19 14:13:37 +00:00
Bill Currie 60520e7981 allow things like pointer == pointer for different pointer types that are in
the same heirarchy
2002-07-18 05:16:12 +00:00
Bill Currie 95bbb6803d be a little clearer about cpp errors 2002-07-17 19:56:30 +00:00
Bill Currie fb4ef47af6 make the filename output high verbosity 2002-07-17 19:00:16 +00:00
Bill Currie e72b25144e relocate the strings in an initialized array/struct 2002-07-17 18:49:58 +00:00
Bill Currie 8d6c491390 fix branches (been broken for a while :/) 2002-07-17 18:45:17 +00:00
Bill Currie 90fa657a5f fix array type string parsing 2002-07-17 17:59:42 +00:00
Bill Currie 2c94688e87 default options.outputfile to "progs.dat" if not specified when linking 2002-07-17 17:49:17 +00:00
Bill Currie 5ea3042eec fix -c -o ... 2002-07-17 17:43:51 +00:00
Bill Currie 7fcdef1943 make sure current_type is set properly for struct fields 2002-07-17 17:17:05 +00:00
Bill Currie b0d568d85f local defs for debug info now work 2002-07-17 15:40:08 +00:00
Bill Currie 17cd41883e get the source line for the function from a more reliable location 2002-07-17 14:39:54 +00:00
Bill Currie 980be66c0e bah, missed this file 2002-07-17 14:21:52 +00:00
Bill Currie 34da93f251 get line numbers working on link and fix a bug in the creation of aux
functions
2002-07-17 14:19:30 +00:00
Bill Currie 8a96b5bbbc oops, forgot to remove the debug print :) 2002-07-16 22:00:55 +00:00
Bill Currie 678a45cfe2 entity fields seem to work. I guess this means separate compilation is now
useful :)
2002-07-16 21:59:47 +00:00
Bill Currie c36b7e36d2 fix external vectors and only complain about undefined externals that are
actually used
2002-07-16 20:09:14 +00:00
Bill Currie ac1392eb74 object.r:
define __obj_exec_class, obj_msgSend and obj_msgSend_super for the way
	qfcc now handles these defs
pr_edict.c:
	PR_ValueString now checks that the function is valid before trying to
	print its name.
class.c:
	__obj_exec_class is now extern
linker.c:
	fix more mangled relocs
method.c:
	obj_msgSend and obj_msgSend_super are now extern
qfcc.c:
	fixes so obj_module_t doesn't get zapped
type.c:
	fixes so obj_module_t doesn't get zapped
2002-07-16 19:03:56 +00:00
Bill Currie 3b1825b692 fix the mangled relocs. oo hello world works again 2002-07-16 17:35:40 +00:00
Bill Currie 17c2def821 def merging seems to mostly work (have some problems with method lists) 2002-07-16 06:40:34 +00:00
Bill Currie 4d214bfea1 more hacks 2002-07-16 04:38:17 +00:00
Bill Currie 4d69deb205 class.c:
use the correct type when creating the class def
struct.c:
	save the name
2002-07-16 04:37:51 +00:00
Bill Currie bf858856b8 fix a /really/ silly error that broke def relocations 2002-07-15 22:10:03 +00:00
Bill Currie a4ad662b63 make a little more robust 2002-07-15 21:58:39 +00:00
Bill Currie 295a9c1115 move external defs from the external table to the global table when they
get defined
2002-07-15 21:49:46 +00:00
Bill Currie 463c5724db clean up some duplicated code by using some template macros 2002-07-15 21:45:32 +00:00
Bill Currie b9a237b13d rename qfo_function_t to qfo_func_t and similar for other qfo *function* in
obj_file.[ch]
2002-07-15 21:37:52 +00:00
Bill Currie 8539d7987f make @self and @this work for separate compilation 2002-07-14 05:40:38 +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 e550ad670a more linking fixes, including seting up relocations. not quite working yet 2002-07-13 06:09:03 +00:00
Bill Currie 9b6980ac7b fix an off by one error that was mangling functions 2002-07-13 03:21:27 +00:00
Bill Currie 58ecbd1171 new_struct doesn't like "" names 2002-07-13 03:20:45 +00:00
Bill Currie c0880a94a9 print the name of the duplicate struct 2002-07-13 03:20:17 +00:00
Bill Currie c6ad0ff819 fixup_relocs doesn't need qfo any more 2002-07-13 02:24:06 +00:00
Bill Currie b48d71fdcc make qfo functions 0 based. now having weird def problems :/ 2002-07-12 22:27:40 +00:00
Bill Currie e6fc66aaa9 grr, and another one :P 2002-07-12 21:44:04 +00:00
Bill Currie b1b3c148e7 fix a bug in the parsing of structures 2002-07-12 21:43:27 +00:00
Bill Currie d80b448281 select the correct function when fixing its def 2002-07-12 21:14:46 +00:00
Bill Currie 2a121d000f fix a couple of dumb bugs and update the function number calculation 2002-07-12 20:43:11 +00:00
Bill Currie 06c03dd074 make local defs always come after global defs in linked qfo files and make
function relocations work better
2002-07-12 20:26:51 +00:00
Bill Currie 5a6907d969 some minor improvements 2002-07-12 20:22:06 +00:00
Bill Currie b9b9f03e82 keep short defs out too 2002-07-12 16:01:40 +00:00
Bill Currie 3cf754db30 keep the return def out of .qfo files (for now, anyway) 2002-07-12 15:54:46 +00:00
Bill Currie ddd7d82bcf quick and dirty util to dump the defs in a .qfo file 2002-07-12 06:19:02 +00:00
Bill Currie 24d473c386 more linking fixes 2002-07-12 06:17:24 +00:00
Bill Currie ce8f071b7c implement partial linking (doesn't work any better than full, though :P) 2002-07-12 04:50:31 +00:00
Bill Currie 33b3fd1887 fix some misc linking bugs 2002-07-12 03:26:47 +00:00
Bill Currie 0f5f68623f it's as broken as all-get-out, but object files can now be linked 2002-07-11 22:38:23 +00:00
Bill Currie a9899087d3 fix a bunch of silly bugs and get the linked output written (hangs, though) 2002-07-11 21:04:09 +00:00
Bill Currie 4d1dbc8cc1 re-write qfo writing from progs, make qfo creation easier, (mostly) finish
the linker. now for testing :)
2002-07-11 20:17:26 +00:00
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
Bill Currie 7a13e6b362 find the rest (I hope!) of the mis-tested scopes 2002-06-10 19:26:54 +00:00
Bill Currie a771beed74 qfcc.c:
def->scope is always non-0
qc-parse.y:
	link defs from child scopes correctly
2002-06-10 19:07:32 +00:00
Bill Currie 0747bcb099 set the debug function number correctly 2002-06-10 18:39:06 +00:00
Bill Currie e47570db69 must remember to test compile in the optimising tree :P 2002-06-09 16:34:50 +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 426dc07e53 fix a goof with the number of global defs 2002-06-09 03:41:11 +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 93169e1b91 rename two PR_* functions 2002-06-07 17:46:58 +00:00
Bill Currie dc0e31916f fix a minor oopsie with the relocations 2002-06-07 17:39:57 +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 38d3a15413 d'oh, forgot to compile test :P 2002-06-05 19:31:43 +00:00
Bill Currie cb395c5469 misc def improvments 2002-06-05 19:03:51 +00:00
Bill Currie 9474765e75 remove some direct usages of pr.globals 2002-06-05 17:45:44 +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 32215b1296 prepare functions and pr_globals for relocatability 2002-06-05 05:39:20 +00:00
Bill Currie 935f1e8c5e prepare the string hash table for relocatable strings space and fix a bug
causing more string space to be allocated than necessary
2002-06-05 05:24:42 +00:00
Bill Currie 69605d0b19 even more cleanup 2002-06-04 21:23:39 +00:00
Bill Currie 2d21e0e2fb idstuff is a better name for precache 2002-06-04 18:45:45 +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 be28957dff kill USE_CPP (and --enable-cpp) it's not needed any more 2002-06-04 04:48:21 +00:00
Bill Currie 328b591aa0 some qfcc.c cleanup 2002-06-04 04:36:57 +00:00
Bill Currie e1d66fdfb8 make sure qc-parse.h gets built before files that depend on it 2002-06-03 03:45:24 +00:00
Bill Currie c13e94db78 must be more careful with the return value of va 2002-06-02 01:10:31 +00:00
Bill Currie 84b46d720e slowly killing cmdlib 2002-06-01 06:59:02 +00:00
Bill Currie 12cfe6190b do some file renaming 2002-06-01 05:37:18 +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 4d267abd2a make things a little quieter 2002-05-31 07:24:54 +00:00
Bill Currie 24e7a88719 fix some method list emission bugs 2002-05-31 06:00:11 +00:00
Bill Currie ccf2a0b34a allocate defs using the correct size from the type 2002-05-31 05:04:16 +00:00
Bill Currie 3c7fb6a312 fix some missing ;s 2002-05-30 21:18:58 +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 60457ee7b8 clean up some expr creaion 2002-05-22 17:18:48 +00:00
Bill Currie 5b590c9301 that seems to have got the type parsing right. (void []) () foo will work
and .float () foo works too
2002-05-22 17:13:52 +00:00
Bill Currie ddcaef5b0b that didn't work so well :/
back it out for now till I figure out how to get it parsing .float () foo
correctly
2002-05-22 16:38:29 +00:00
Bill Currie 51fbbb7c5c qc-parse.y:
allow complex types for function return values
type.c:
	fix a missing break and an unneeded printout
2002-05-22 16:29:24 +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 4697ce281e define Protocol type correctly 2002-05-21 23:38:40 +00:00
Bill Currie 4315707008 class.c:
avoid possible segfault
expr.c:
	correct the return value type checking to handle super classes
2002-05-21 23:29:21 +00:00
Bill Currie 3a99ab8cea trim off the trailing _ from method def names 2002-05-21 23:02:56 +00:00
Bill Currie 2a73235d35 fix some method bugs 2002-05-21 22:51:46 +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 5be384da63 create a `SELF' keyword so the global self entity can be handled sanely.
Not fully implemented yet.
2002-05-17 20:25:46 +00:00
Bill Currie dc5cd8460e `super' is now a keyword 2002-05-17 19:47:15 +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 d8c66aef76 don't seg if strct is null 2002-05-17 19:34:40 +00:00
Bill Currie 2e8c18f8b6 handle unimplemented classes a little better (will do for now till I sort
out some sort of resolution for them)
2002-05-17 18:46:11 +00:00
Bill Currie b1d1159ae2 allow methods to be builtins 2002-05-17 18:35:54 +00:00
Bill Currie 97170e97b5 setup the default visibility properly 2002-05-17 17:58:57 +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
Bill Currie 372c391737 initialize the string hash table with "" 2002-05-16 23:32:25 +00:00
Bill Currie 04d76ce1cf build the method_list struct with the correct type 2002-05-16 23:32:03 +00:00
Bill Currie 7cdbef2b11 make class_def return a correct def 2002-05-16 22:33:11 +00:00