Commit graph

1233 commits

Author SHA1 Message Date
Bill Currie
530e8fae34 Rework class_type_t to be more useful.
This allows current_class to refer to procols as well (for error
reporting).
2011-01-03 16:25:29 +09:00
Bill Currie
f738ef5dba Remove redundant RETURN statement rule.
The same effect can be achieved with one rule using opt_expr.
2011-01-03 16:19:28 +09:00
Bill Currie
1a767849ab Sort the options in the switch.
Should make finding them a little easier.
2010-12-24 17:35:33 +09:00
Bill Currie
d6b3d4891a Finally, help output for qfprogs.
Nothing great, but better than nothing.
2010-12-24 17:33:57 +09:00
Bill Currie
f4d8b82115 Rearrange the options into alpha order. 2010-12-24 17:08:48 +09:00
Bill Currie
28740bb57f Add unsigned integer constant support. 2010-12-23 19:32:28 +09:00
Bill Currie
52e844ee48 Produce slightly better v6 modulo code for complex inputs.
I'm having problems with temp defs, but I imagine this code is rarely used
so I won't worry about it for now. It will, however, make a good test case
for when I rework emit.c after I do some reading.
2010-12-19 11:23:33 +09:00
Bill Currie
fa08e4afb7 Print users info when dumping statements. 2010-12-19 11:16:04 +09:00
Bill Currie
f5706f9c44 Make control of expression dumping less of a hassle. 2010-12-19 11:15:13 +09:00
Bill Currie
d981968208 v6 modulo implementation now produces good code.
At least for simple inputs, anyway. That needs to be tested next.
2010-12-18 22:21:55 +09:00
Bill Currie
00e50c0ad3 Rewrite the v6 modulo implementation.
While trying to understand bind expressions, I discovered that the v6
modulo code was incorrect. This version is correct but uses one too many
temps. That's next.
2010-12-18 22:21:55 +09:00
Bill Currie
699799bfc8 Don't warn when adding a new method to an implementation.
Methods defined in the implementation but not declared in the interface are
just fine.
2010-12-16 20:04:08 +09:00
Bill Currie
eace5b3c81 Get message checking working properly. 2010-12-16 16:41:16 +09:00
Bill Currie
4481ba9b0d Allow explicit references to classes and categories.
Use "@reference ClassName;" or "@reference ClassName(CategoryName);" to
create a refence to the class or category, forcing the defining object file
to be linked into the program when the object file is part of a library.
2010-12-12 20:27:56 +09:00
Bill Currie
2c84ae4898 Don't let casting in constfold increment users.
This fixes Deek's temp notice. No new notices have shown up, so this should
be the correct fix. The constant folding code no longer calls cast_expr
directly, but rather uses an internal wrapper that decrements users after
cast_expr increments it, resulting in a no-op.
2010-12-12 15:37:26 +09:00
Bill Currie
ac88c86dd3 Scripts now treat {}()': as single character tokens. 2010-11-28 15:31:30 +09:00
Bill Currie
023d3c89ec Source formatting. 2010-11-24 17:01:18 +09:00
Bill Currie
9a3f4d5a01 Handle method parameters that use incomplete types.
Compare the method's type pointers rather than the type strings as the pointer
won't change with the struct is completed.
2010-11-24 17:01:18 +09:00
Bill Currie
e28ee0378f Gracefully handle returning NIL though a bad type. 2010-11-24 17:01: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
799d46f83d Check for incomplete types and better param/return size checking. 2010-11-24 17:01:17 +09:00
Bill Currie
a623fb53a7 Proper support for empty structs and unions.
They now have a single private, void, unnamed member, resulting in a size of
1 word. This makes empty structs useful for typed opaque handles.
2010-11-24 17:01:17 +09:00
Bill Currie
e5e560cbaf Ensure struct params are small enough to fit in the param slots. 2010-11-24 17:01:17 +09:00
Bill Currie
669771681a split up and modernize configure.ac
Most of the guts of configure.ac have been moved to config.d and are then
brought in by m4_include. This will make maintaining configure.ac much easier.

Also drop use of PROGRAM and VERSION, using PACKAGE_NAME, PACKAGE_VERSION, and
on occasion, PACKAGE_STRING instead, and clean out some old files we no longer
need.
2010-08-19 15:01:43 +09:00
Bill Currie
0dfff8fd58 ignore stuff 2010-08-07 10:42:09 +00:00
Bill Currie
51a32f4f87 minor comment about scoping in traditional mode 2010-02-22 13:44:52 +00:00
Bill Currie
fac98536f0 make sure def->space points to the space the def's location is allocated from to ensure that freeing the location works properly (fixes the bogus address triggered by prozaccoop: thanks, phrosty) 2010-02-22 13:11:41 +00:00
Bill Currie
56d01ce267 found an uncontrollable warning 2010-02-20 12:01:49 +00:00
Bill Currie
7b9a682942 Make qfpreqcc a little noisier when qfcc can't be run. 2010-01-16 02:05:05 +00:00
Bill Currie
997102fea8 audit the usage of "only"
There are still a few iffy places (notably around certain prepositions), but
the relevant sentences are now much easier to read.
2010-01-13 06:42:26 +00:00
Bill Currie
8abb9a69aa remove support for an optional = in struct/union declarations 2010-01-13 06:34:32 +00:00
Bill Currie
0d4a2938a2 forgot to check for errors 2010-01-13 06:32:10 +00:00
Bill Currie
ae4fc3147d allow '*pointer' expressions 2010-01-13 06:31:41 +00:00
Bill Currie
22776f9ffd get double indirection working
do not try to optimize the output of the sub-dereference in a dereference
2010-01-13 06:31:06 +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
d558444b77 make temp def problems a little easier to understand
o  set return_address whenever a temp def is requested, no only when it is
    actually created.
 o  make the notices about temp reference counting problems a little more
    readable and include the name of the temp
2010-01-13 06:24:29 +00:00
Bill Currie
c2dcc20d2a allow (constant) expressions in array declarators 2010-01-13 06:23:32 +00:00
Bill Currie
a6c504936c get \8 and \9 right 2010-01-13 06:23:02 +00:00
Bill Currie
07b61aa23f missed \0-9 for the gold numbers from qccx 2010-01-13 06:22:01 +00:00
Bill Currie
36fe939ea5 don't hang when processing \{N} escape sequences and fix a comment 2010-01-13 06:21:29 +00:00
Bill Currie
090527eaec silence some debug output 2010-01-13 06:20:22 +00:00
Bill Currie
c3f47efb07 add --qccx-escapes to resolve the conflicts in escape sequences and document the escape sequences supported by qfcc. 2009-12-25 07:59:25 +00:00
Bill Currie
dcf593291d fix for new bison (must be explicit with the type of $$ in mid-rule actions) 2009-12-21 05:53:00 +00:00
Bill Currie
c8b7622e0e reduce the amount of memory wasted when generating the output file 2009-12-20 12:19:16 +00:00
Bill Currie
c542138300 more not-really initialized data 2009-12-20 11:54:19 +00:00
Bill Currie
1dc4683961 ensure all instructions are fully initialized. 2009-12-20 11:09:58 +00:00
Bill Currie
bfee029249 set current_func while building the init function to avoid issues with code expecting current_func to be set. 2008-08-01 22:55:10 +00:00
Bill Currie
9ac15436d9 More docs.
Enhance qfprogs qfo debugging.

Make sure functions marked as extern don't emit anything. Fixes the segfault
when building klik.
2008-08-01 13:54:24 +00:00
Bill Currie
fe95805d86 various gcc 4.3 fixes 2008-07-19 05:40:57 +00:00
Bill Currie
ac99aaf0d3 use "#line N file" instead of "# N file" (seems to be more portable) 2007-09-16 07:03:12 +00:00
Bill Currie
3431fea56d Make sure initialized locals that are treated as constants don't get relocated. Fixes the airfist bug in prozac 2007-09-15 07:58:39 +00:00
Bill Currie
3e50aae01f "print" command for dumping values in the progs and add return type info to the debugging information 2007-09-15 07:47:31 +00:00
Bill Currie
01b71c40d2 fix some issues when using --advanced with v6only 2007-09-15 07:44:31 +00:00
Bill Currie
411d6517cb make duplicate macros behave the same as qcc in traditional mode (ie, bump the number anyway) 2007-05-15 07:51:04 +00:00
Bill Currie
fee656eb68 warn about (and otherwise ignore) duplicate frame macros 2007-05-15 07:36:56 +00:00
Bill Currie
79fdf8db80 allow .imm symbols to be written in traditional mode 2007-05-15 07:25:47 +00:00
Bill Currie
680bc22697 better error reporting for redefines 2007-05-13 09:02:51 +00:00
Bill Currie
a521a78adb catch more uninitialized variables 2007-05-13 08:39:07 +00:00
Bill Currie
c81c074660 mark used constants as used 2007-05-13 08:20:19 +00:00
Bill Currie
b356f1cbd4 remove some debug 2007-05-13 07:06:59 +00:00
Bill Currie
f4d40650f5 make initialized locals behave similarly to qcc in traditional mode (note, they're not exactly the same) 2007-05-13 06:21:54 +00:00
Bill Currie
2149aefe67 not so sure that one's needed 2007-05-08 03:24:49 +00:00
Bill Currie
5798c9d67a wasn't catching the precedence inversion in (x - x & y) even though it was caught for (x & y - x). 2007-05-08 02:54:50 +00:00
Bill Currie
0e78c3f6da make STORAGEX lower priority than UNARY so casts work 2007-05-07 23:44:45 +00:00
Bill Currie
9609fe8ca4 bloody hell 2007-05-07 15:04:06 +00:00
Bill Currie
839c00b97b back out the large packet/entity related patches. they've provent to be troublesome and it seems FTE has a better solution. 2007-05-07 14:58:53 +00:00
Bill Currie
8f365c4512 that wasn't supposed to go in 2007-05-07 12:18:54 +00:00
Bill Currie
72daa2fd2b add some sounds to the menus (not yet finished) 2007-05-07 12:17:12 +00:00
Bill Currie
7ba41632d9 snax's fixes to clean up most of the shift/reduce conflicts 2007-04-28 08:49:07 +00:00
Bill Currie
3deee307a8 check for uninitialized variables in return statements 2007-04-28 08:48:01 +00:00
Bill Currie
a376e6f86d make control of progdefs.h generation saner 2007-04-28 05:40:22 +00:00
Bill Currie
e8e2d3a6e5 make "local" optional 2007-04-28 05:20:47 +00:00
Bill Currie
cfeb14fecf warn when local variables are redecalred in the same scope. This won't normally cause problems, but it can save a lot of grief when converting traditional quakec code. 2007-04-12 09:39:42 +00:00
Bill Currie
93ee2e489b more vc2005 patches from phrosty 2007-04-11 22:03:36 +00:00
Bill Currie
bac4096708 some doc improvements as pointed out by Hikaru and add --relocatable to the long options 2007-04-11 10:48:04 +00:00
Bill Currie
82aaa87b6b fast access to code, warning and notice help. 2007-04-10 14:53:44 +00:00
Bill Currie
992aa04994 Forgot to coorect the adjustment of the def's offset (yet I knew I was supposed to :P) 2007-04-10 14:03:34 +00:00
Bill Currie
f48d41848a *sigh* 2007-04-10 13:11:42 +00:00
Bill Currie
15dc16ff64 put in stubs for help for -C, -W and -N 2007-04-10 13:10:53 +00:00
Bill Currie
52d178b3be Add a code generation option, "local-merging", to control qfcc's merging of local variable blocks into one block. Defaults to on for advanced mode and off for traditional. 2007-04-10 13:00:21 +00:00
Bill Currie
4c4281c512 because builtin functions now get their params dumped to the debug symbols, @va_list needs to be initialized. 2007-04-10 09:10:09 +00:00
Bill Currie
30744a555e find the other place def_func relocs get emitted. I keep forgetting about the .y file when grepping source :P 2007-04-10 07:40:03 +00:00
Bill Currie
3b7c83a96f uncomment some lines that shouldn't have been commented (doesn't fix the bug, though) 2007-04-09 14:32:47 +00:00
Bill Currie
845b5ab2e2 don't write alias defs to the qfo 2007-04-09 14:25:44 +00:00
Bill Currie
642bb0f810 don't create a reloc for an external function 2007-04-09 14:06:12 +00:00
Bill Currie
e53e9944b6 spew a lot of guff about relocs 2007-04-09 13:33:59 +00:00
Bill Currie
3cd01223dd don't try to fix up function refs too early. fixes klik's segfault on firing 2007-04-09 08:56:23 +00:00
Bill Currie
a9678f1c06 dump globals direct from qfo 2007-04-09 07:47:51 +00:00
Bill Currie
48fdd0cb26 record the params for builtins, too. 2007-04-09 06:16:34 +00:00
Bill Currie
9509d0fd5e make qfo files typesize safe 2007-04-07 12:35:03 +00:00
Bill Currie
2399e79ca0 open all files in binary mode. ^Z is evil :P 2007-04-07 10:24:34 +00:00
Bill Currie
a6104bc0fc open input and output files in binary mode so ^Z doesn't bite us on windows 2007-04-07 10:15:17 +00:00
Bill Currie
25bf40a71a finish the break overloading and add some more tests (really need to get these automated) 2007-04-07 04:58:27 +00:00
Bill Currie
124506fda2 Fix the access alignment bug on 64 bit archs. 2007-04-07 01:41:23 +00:00
Bill Currie
c4d81cda19 use a proper charset instead of \w (too iffy on what it is) 2007-04-06 23:13:29 +00:00
Bill Currie
5baa6057cb give windows spawn*p* :P 2007-04-06 22:25:16 +00:00
Bill Currie
9e9318a3f1 use spawn instead of fork/exec/wait 2007-04-06 22:03:28 +00:00
Bill Currie
3f3450df2c fix a wrong name 2007-04-06 14:13:25 +00:00
Bill Currie
f6924f35e5 report the line of the previous declaration of the function 2007-04-06 12:02:34 +00:00
Bill Currie
a6388ee680 overload "break" and allow break to be used in --traditional 2007-04-06 11:46:21 +00:00
Bill Currie
6d21c50dee handle #line (hopefully) 2007-04-06 11:27:03 +00:00
Bill Currie
966c337bf5 use the def's declaration line rather than the function's when reporting auto-initialization 2007-04-06 11:05:52 +00:00
Bill Currie
c560744270 "use" parent defs 2007-04-06 11:01:34 +00:00
Bill Currie
240eab4b09 cleanup the tempfile from a failed preprocessor run on progs.src 2007-04-06 09:44:08 +00:00
Bill Currie
26e15db4ba handle comments and conditionals in preprogs.src 2007-04-06 09:27:56 +00:00
Bill Currie
04765083aa really warn only once for each uninitialized variable 2007-04-06 08:56:37 +00:00
Bill Currie
e7f478b197 by default, don't use cpp when compiling the output of qfpreqcc 2007-04-06 08:41:33 +00:00
Bill Currie
5a8143a9c7 support float = vector and vector = float for traditional 2007-04-06 08:23:07 +00:00
Bill Currie
eb9943973b handle . in frame macro names 2007-04-06 08:19:58 +00:00
Bill Currie
bff92d9d32 properly handle strings in comments and comments in strings 2007-04-06 08:19:20 +00:00
Bill Currie
6bbf54c7cd handle /* */ comments better 2007-04-06 07:12:47 +00:00
Bill Currie
0e4fb6c01a no-cpp implies no-single-cpp 2007-04-06 07:11:38 +00:00
Bill Currie
8079c9951c catch nested /* in comments 2007-04-06 06:31:47 +00:00
Bill Currie
ff0144f870 bring in the cleanups from my start at preqcc stuff (I don't know if that will ever go in, though, I'm thinking maybe it should be external) 2007-04-06 05:52:20 +00:00
Bill Currie
df2bebde7e more vc build patches from phrosy 2007-04-06 01:09:58 +00:00
Bill Currie
0382b05780 various unsigned long -> uintptr_t conversions 2007-04-04 11:22:48 +00:00
Bill Currie
72af804b31 nested include reporting 2007-03-31 15:27:36 +00:00
Bill Currie
5e98c49188 chase down a runaway else 2007-03-31 15:26:58 +00:00
Bill Currie
90129fc4ec add $frame_reset grab command to reset the frame macro counter and sneak the command in before each file in the single-cpp script. This fixes the bogus animations in nq (and anything else, for that matter) 2007-03-31 13:54:09 +00:00
Bill Currie
03e1d6c3bf re-implement the comment lexer using states to re-learn how things work prior to implementing preqcc support 2007-03-30 09:02:36 +00:00
Bill Currie
e52633c492 make protocol dump info more readable 2006-12-19 11:53:18 +00:00
Bill Currie
0bd92e439a fix an interal error caused by losing the error state 2006-12-16 11:45:47 +00:00
Bill Currie
48d9d96005 don't try to create multiple objects for the same protocol 2006-12-16 08:09:10 +00:00
Bill Currie
904197c70e allow assignment of arrays to poitners 2006-12-11 09:26:45 +00:00
Bill Currie
e9f49ca816 allow static local vars 2006-12-11 09:26:07 +00:00
Bill Currie
48f8bbd12e group the struct rules together 2006-12-02 06:49:55 +00:00
Bill Currie
b6a4a520d5 silence bison's new warnings 2006-12-01 08:17:55 +00:00
Bill Currie
1925bef0c1 fix a bunch of bugs with single-cpp processing when not keeping temps 2006-08-20 06:20:30 +00:00
Bill Currie
130e6c1a3f fix some intermediate file issues 2006-05-24 14:50:24 +00:00
Bill Currie
f7df6fea17 instead of having cpp args in progs.src, potentially breaking some mods, generate progs.i as a series of #includes and then compile everything in one pass 2006-05-24 14:35:39 +00:00
Bill Currie
ff28197da6 pass progs.src through cpp too 2006-05-24 11:19:48 +00:00
Bill Currie
ada9797009 why r+t? we don't need to write. 2006-05-24 11:18:18 +00:00
Bill Currie
728dde167d explicity state errors are errors rather than leaving it implicit (tracking
gcc's messages again;)
2005-08-17 23:05:10 +00:00
Bill Currie
3fb03fc2be hah, should have been using __attribute__((used)) all that time (rather
than __attribute__((unused))). fixes the missing console in -x11
2005-08-04 15:27:09 +00:00
Bill Currie
3f58823fed vector-calls now works with rcall :) 2005-06-12 11:37:28 +00:00
Bill Currie
aa6265859a allow -Cno-v6only to work when defaulting to traditional 2005-06-12 11:36:30 +00:00
Bill Currie
762aefc9b1 implement Raven's calling convention (rcall: first 2 params in opb and
opc). should give a general speedup to most progs.
2005-06-12 09:54:01 +00:00
Bill Currie
66cabb587f add the vector-calls "optimisation" from fteqcc. makes it possible to
compile the version of frogbot with waypoints for almost 300 maps.
2005-06-10 07:31:25 +00:00
Bill Currie
116860bb66 don't segfault when running out of globals 2005-06-10 05:16:20 +00:00
Bill Currie
9f662787e0 get struct copy to/from struct fields via pointers. fixes a bug found by
snax
2005-06-09 10:34:03 +00:00
Bill Currie
dff55040bc noticed a potential unused warning issue if that version of flex gets hit
again
2005-03-31 09:55:41 +00:00
Bill Currie
0edd694bac fix a default action type clash in some versions of bison 2005-03-31 08:23:11 +00:00
Bill Currie
b71f12a616 warning message cleanup
This is an imperfect revision of history.
2004-11-18 06:08:20 +00:00
Bill Currie
ae456dc3a4 `secret' .c support so automake's dependency style autodetection works
This is an imperfect revision of history.
2004-11-14 23:15:00 +00:00
Bill Currie
554f4d071a get the type right when accessing arrays in a struct (in a pointer?)
This is an imperfect revision of history.
2004-11-13 13:22:30 +00:00
Bill Currie
56838844d2 add support for -E and still compile when -MD is used
This is an imperfect revision of history.
2004-11-13 13:22:00 +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
9b81bc5ea6 allow access to the parameter type via @param and variable initializers for local arrays/structs.
This is an imperfect revision of history.
2004-11-13 04:02:00 +00:00
Bill Currie
5f34f87b58 ivar access control seems to work now :)
This is an imperfect revision of history.
2004-11-13 01:37: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
abf25e0e1c real fix for uninitialized functions
This is an imperfect revision of history.
2004-11-12 05:04:00 +00:00
Bill Currie
634dcbba95 forgot to allow struct move (for struct assigment)
This is an imperfect revision of history.
2004-11-11 22:41:00 +00:00
Bill Currie
64cc8c60d2 compile time protocol support seems to be complete now. fortunatly, protocols had never been written out so the corrections to the protocol related stuctures do not need a progs version bump. runtime protocol support hasn't been fully tested yet.
+load runtime support seems to be working.

This is an imperfect revision of history.
2004-11-11 00:34:00 +00:00
Bill Currie
7dfd9ab502 Use the script api to parse progs.src instead of idparse. Now any additional tokens on the first line of progs.src are ignored and any additional tokens on subsequent lines get cumulatively added to the cpp command line. See progs.src[.in] in tools/qwaq for a simple example.
This is an imperfect revision of history.
2004-11-11 00:24:00 +00:00
Bill Currie
a97f74a6ac that particular error case is a type mismatch rather than an internal error. found when trying to compare a SEL with a string... oops :)
This is an imperfect revision of history.
2004-11-11 00:20:00 +00:00
Bill Currie
b35561504c do proper selector registration. unfortunatly, I discovered I'd created pr_method_t incorrectly and so had to bump the progs version again
This is an imperfect revision of history.
2004-11-10 05:37:00 +00:00
Bill Currie
8770df39e5 start documenting things (progs building still borked)
This is an imperfect revision of history.
2004-11-08 23:27:00 +00:00
Bill Currie
b46cff08aa handle param name changes between prototype and declaration gracefully
This is an imperfect revision of history.
2004-11-02 23:54:00 +00:00
Bill Currie
9f52181e34 fixes for methods in categories or not in an interface
This is an imperfect revision of history.
2004-11-02 11:56:00 +00:00
Bill Currie
181df01add initialize the function tables properly when "converting" a qfo, fix a buffer overflow in file loading and remove the now unnecessary hunk initialization.
This is an imperfect revision of history.
2004-11-02 07:15:00 +00:00
Bill Currie
a3a2dd62e3 fix type of "self"
This is an imperfect revision of history.
2004-11-02 07:13:00 +00:00
Bill Currie
a4dbdb4d06 whitespace
This is an imperfect revision of history.
2004-11-02 07:08:00 +00:00
Bill Currie
fff41d664a detect re-declaring identifiers as different types (typedef, enum, var, etc)
This is an imperfect revision of history.
2004-11-02 07:02:00 +00:00
Bill Currie
a2e05dbe83 make bison output a state file
This is an imperfect revision of history.
2004-11-02 05:19:00 +00:00
Bill Currie
ca46503607 add -Wsign-compare (default for -Wall only in C++) and fix up the warnings 2004-07-13 19:14:01 +00:00
Bill Currie
8c10e2e355 this should fix the string case errors on sparc64 2004-05-15 01:00:47 +00:00
Bill Currie
3483b3b2b6 handle #pragma gracefully (ie, ignore it) 2004-05-09 02:12:49 +00:00
Jeff Teunissen
b057b6cb26 Some signed/unsigned formatting stuff found by lint. 2004-04-27 23:17:41 +00:00
Bill Currie
14900bb82e fast-float code option (defaults to on). kills almost 3000 statements from
prozac
2004-04-27 20:24:37 +00:00
Bill Currie
8a7bb9c4a0 fix a silly that messed up type mismatch errors 2004-04-12 23:46:21 +00:00
Bill Currie
9a3acc8035 get the field offset correctly 2004-04-09 04:30:19 +00:00
Bill Currie
7b28c555ba quaternion field access now works 2004-04-09 04:12:44 +00:00
Bill Currie
332ec82495 update the scope of local defs to the parent scope when the creation scope
goes away (doesn't get updated to the global scope). fixes a bug where
local defs would be miscounted (and sometimes lost)
2004-04-09 03:47:41 +00:00
Bill Currie
0b61dae402 allow .imm fields (need a better test, I think) 2004-04-09 03:45:55 +00:00
Bill Currie
50dc955652 fix a couple out-by-one errors highlighted by quaternions 2004-04-09 02:20:47 +00:00
Bill Currie
0e47ee96f8 spelling fixes 2004-04-08 18:53:46 +00:00
Bill Currie
4c4f40f137 fix a few bugs. basics seem to be working 2004-04-08 05:13:24 +00:00
Bill Currie
5869cb693e oops 2004-04-08 05:04:50 +00:00
Bill Currie
a7103c6732 quaternion conjugate 2004-04-08 04:59:10 +00:00
Bill Currie
fc2413ff72 more quaternion work (should be working, haven't come up with tests yet) 2004-04-08 03:32:14 +00:00
Bill Currie
4882005a49 compile fixes (oops) and start working on quaternion support in qfcc 2004-04-08 02:33:20 +00:00
Bill Currie
25ac9cb07b fix "for (;;)" etc 2004-03-30 02:31:02 +00:00
Bill Currie
f1c9a8d24b remove a mostly unused field 2004-02-21 05:58:01 +00:00
Bill Currie
14e8bfe94b auto-init for uninitialized locals in traditional mode as requested by
Grievre
2004-02-21 05:52:05 +00:00
Bill Currie
0360859a0f all warnings (except for @self and self) are now fully controllable 2004-02-17 00:39:21 +00:00
Bill Currie
efb52dc9f9 don't seg on null field names 2004-02-13 23:08:22 +00:00
Bill Currie
865b31caac make sure messages generated by issues within a function don't get
"At top level"
2004-02-13 04:57:15 +00:00
Bill Currie
b6c2320d5d change --include FILE to pre-include a file rather than add a directory search
path. Maps to -include FILE on the cpp command line.
2004-02-13 04:46:50 +00:00
Bill Currie
69730cae8b fix some type classes in older bison 2004-02-12 01:37:27 +00:00
Bill Currie
02d89ee7d5 allow computed functions for "think" in state expressions 2004-02-11 08:09:10 +00:00
Bill Currie
1c090c38a3 allow non-const expressions for the frame number and make sure the time
step is a float (for state expressions)
2004-02-11 04:00:11 +00:00
Bill Currie
0fe4c2a600 catch redefined functions 2004-02-11 01:53:17 +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
1fc517f7db C style functions can now (optionally) be used (void foo ();) 2004-02-11 00:36:34 +00:00
Bill Currie
e2602bc9d5 fix misparse of void () foo; 2004-02-10 23:49:45 +00:00
Bill Currie
7af8f8a6f6 ; at the end of a function is no longer required. void () foo = {} and
void () foo = {}; are both valid now.
2004-02-10 23:20:44 +00:00
Bill Currie
6e4c6478a1 getting closer to optional ; at the end of functions. also gets rid of the
need for the context-sensitivity hack used for distinquishing frunction
inits from struct/array inits
2004-02-10 03:25:24 +00:00
Bill Currie
ddc44f33da compress the 4 method building rules into 2 2004-02-09 07:35:19 +00:00
Bill Currie
3f27042e8d forgot to look after current_storage with methods 2004-02-09 07:17:44 +00:00
Bill Currie
1181fb267b don't seg when constants are involved in && or || expressions 2004-02-09 02:23:37 +00:00
Bill Currie
499dac6bb1 step one towards more flexible function declarations 2004-02-08 23:46:40 +00:00
Bill Currie
f70605f5f7 ensure a op= b treats b as if it was (b) 2004-02-08 05:28:30 +00:00
Bill Currie
bf592412f8 give temp defs a name, making it easier to read disassembly output (.tmpN) 2004-02-06 08:58:19 +00:00
Bill Currie
1d800caab7 make autoconvertion work for return 2004-02-06 08:40:28 +00:00
Chris Ison
6ec1cfe389 win32 fix for over-compliant getopt 2004-02-05 03:27:35 +00:00
Bill Currie
8a14e30896 cast block expressions 2004-02-04 06:41:07 +00:00
Bill Currie
d02b0686b1 don't seg if the method can't be found 2004-02-04 06:31:12 +00:00
Bill Currie
61da478188 these changes from earlier seem to be ok 2004-02-04 06:00:45 +00:00
Bill Currie
c43950abd8 autoconvert for function parameters now works :) 2004-02-04 05:49:54 +00:00
Bill Currie
892e80938b that made a royal mess :( 2004-02-04 04:49:46 +00:00
Bill Currie
b2474a2b97 better auto-conversion of function parameters (ugh, this is getting messy
:( )
2004-02-04 04:33:08 +00:00
Bill Currie
f79e34628b broke returning NIL 2004-02-04 02:30:18 +00:00
Bill Currie
ab4f0e7ca9 warn on return foo (); where foo returns void 2004-02-04 01:30:12 +00:00
Bill Currie
f748b6582a need to do relocs separately from ddef creation due to pr_globals needing
to be allocated first
2004-02-04 00:36:15 +00:00
Bill Currie
e8a9060219 oops, messed up things like float = int 2004-02-04 00:30:42 +00:00
Bill Currie
3cd806fdcc fix some over-conversions 2004-02-04 00:27:42 +00:00
Bill Currie
1068032f1b make implementation methods not in the interface work properly when
-Winterface-check isn't specified and make sure classes don't clash with
defs or enums
2004-02-03 07:48:23 +00:00
Bill Currie
0f94dd95d2 make @class foo work when foo is already defined 2004-02-03 07:29:20 +00:00
Bill Currie
389ff5be1c finally found the correct way to handle generated source 2004-02-03 05:30:11 +00:00
Bill Currie
9df4a7948e make dist fixes 2004-02-03 03:22:48 +00:00
Bill Currie
c16fc91328 update with qfprogs 2004-02-03 02:40:00 +00:00
Bill Currie
24294c8778 make printing of global contents in PR_PrintStatement optional so
disassembly output is cleaner
2004-01-31 04:26:01 +00:00
Bill Currie
f05be31cae fix for perc = itof (perc_val) / (100 / itof (size));
ie, better detection of function calls in binary expressions
2004-01-31 04:11:45 +00:00
Bill Currie
fb49b06c2c remove debug info 2004-01-30 07:29:04 +00:00
Bill Currie
394e83e419 perform relocations so disassembly dumps of qfo files make sense 2004-01-30 07:17:28 +00:00
Bill Currie
f87a5d14e2 convert the debug info, too. seems to work 2004-01-30 05:35:30 +00:00
Bill Currie
a2e8080a03 init entity info 2004-01-29 08:22:59 +00:00
Bill Currie
2e87490f3b pr_stringsize hasn't reflected static strings size for a while... 2004-01-29 08:11:04 +00:00
Bill Currie
206a15ef14 while not yet perfect, qfprogs now works with qfo files 2004-01-29 07:43:05 +00:00
Bill Currie
b2ccb50b81 move qfpreqcc in with qfcc for relationship reasons 2004-01-28 05:34:23 +00:00
Bill Currie
d3018dd79b move qfprogs in with qfcc (it's going to need to share code) 2004-01-28 05:23:43 +00:00
Bill Currie
ba901863d2 fix a missing ; 2004-01-27 04:41:20 +00:00
Bill Currie
897b49140a initialized locals are a little trickier... 2004-01-25 22:08:08 +00:00
Bill Currie
f8ed454547 warn on if (a = b) 2004-01-25 21:45:07 +00:00
Bill Currie
7423ee389d better timing for constant folding 2004-01-25 21:36:44 +00:00
Bill Currie
39c7ff1e90 disable debug output 2004-01-25 08:59:55 +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
3e5a103e55 proper error checking when openning progs.src 2004-01-22 04:16:19 +00:00
Bill Currie
8f440c7911 linker.c:
I think I found the real reason doxygen gets confused
expr.c:
	add a check for x & y == 2 (or similar) doesn't work for constant y at
	the moment.
2004-01-22 01:04:48 +00:00
Bill Currie
2f21926568 more constant folding 2004-01-21 21:58:34 +00:00
Bill Currie
e63b205fd2 don't seg when in traditional mode and @ is seen 2004-01-21 21:43:31 +00:00
Bill Currie
1ddd7da5ec remove redundant cast 2004-01-13 03:07:36 +00:00
Chris Ison
34f98e5a88 fix incompatable pointer type 2004-01-12 05:36:23 +00:00
Bill Currie
41106a1f01 hopefully shut doxygen up about a "const char" function 2004-01-11 05:52:19 +00:00
Bill Currie
802aacfaf4 allow constant expressions to be used for builtin numbers 2004-01-07 00:03:05 +00:00
Bill Currie
35d690c701 give an error message instead of segging for the following code:
@class foo;
@interface bar : foo
@end
2003-12-19 04:59:34 +00:00
Bill Currie
bb4e9de0db fix a real oopsie with if (const) 2003-11-16 07:17:18 +00:00
Bill Currie
834ab26be5 remove some buggy debug code :P 2003-10-27 21:48:13 +00:00
Bill Currie
63414ea836 more gccisms in the error reporting (In function ...) 2003-10-25 04:35:47 +00:00
Bill Currie
58d0f188f1 recover from errors in bool expressions (ie, don't segfault) 2003-10-24 22:23:56 +00:00
Bill Currie
8e030089a7 only one define/undefine/include per option 2003-10-24 21:23:03 +00:00
Bill Currie
7ef80d1da2 mske sure .self and .this are defined in progs.src mode (ie, @self and
@this)
2003-10-22 21:49:47 +00:00
Bill Currie
c76282c668 fix bools in function calls 2003-10-22 16:49:57 +00:00
Bill Currie
5f97de56d1 fix a few bugs 2003-10-22 09:14:53 +00:00
Bill Currie
969dad87eb fix a secfault in return_expr 2003-10-22 08:30:54 +00:00
Bill Currie
72ae59f882 short circuit logic can now be controlled (see man page) 2003-10-22 08:27:38 +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
99034fef27 initialized locals aren't constant 2003-09-25 02:05:43 +00:00
Bill Currie
4ce81b28d7 remove nested scopes for traditional mode 2003-09-23 17:59:46 +00:00
Bill Currie
91207c0180 make void functions actually return float in traditional mode (qcc allowed
things like foo = void_function)
2003-09-23 16:57:53 +00:00
Bill Currie
387464a27c mangle precedence of = relative to && and || for --traditional (bletch).
also make noise when assigning to bad lvalues (eg !x = y)
2003-09-23 16:42:03 +00:00
Bill Currie
ba26628b80 --traditional now "fixes" (ie, breaks) operator precedence to match qcc
except for the relationship between "=" and "&&" and "||": not sure I want
to go that far towards bug compatability.
2003-09-22 22:15:31 +00:00
Bill Currie
9027648721 kill -t for --traditional, add --advanced, default to --traditional for
progs.src mode and --advanced otherwise
2003-09-20 04:13:32 +00:00
Bill Currie
651fa8ca12 correct the operator precendece to match C. hopefully won't cause any
problems :)
2003-09-19 20:50:05 +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
f10829206a use a cast expression rather than and bind expression to do the unsigned
comparison for switches. clears the notice (bind seems to be correct in
general) and is more correct conceptually anyway.
2003-09-02 16:53:45 +00:00
Bill Currie
23b525059f cast between integer and unsigned just by changing access method
effectively deprecating conv.ui and conv.iu (they'll die eventually:)
2003-09-02 16:45:36 +00:00
Bill Currie
3a6c8b8b16 wrong place to decrement uses. now have a problem in switch :/ 2003-09-02 06:23:57 +00:00
Bill Currie
ef4ca0c798 some doxygen tweaks 2003-08-31 05:24:24 +00:00
Bill Currie
b01d4d4589 get the type for the destination from the right place (hope that wasn't
a bugfix for something else:)
2003-08-24 20:38:32 +00:00
Bill Currie
7cffeb27bf correct the temp def counting when casting 2003-08-24 08:17:31 +00:00
Bill Currie
6086aa2b99 allow casts between pointers and integers 2003-08-24 08:03:25 +00:00
Bill Currie
a08efafb7a make sure __VERSION6__ is defined when it should be 2003-08-24 07:26:02 +00:00
Bill Currie
385a90e8fb correct pr_symtab_t to include the pointer to the array of selectors used
in the module. Unfortunatly, this requires a version bump on both qfo and
progs files due to the changes structure layout.
2003-08-23 06:15:19 +00:00
Bill Currie
b38486d405 make rel_def_op work properly 2003-08-22 19:48:14 +00:00
Bill Currie
e9ca03416a create the temp def for bound defs properly 2003-08-22 18:16:30 +00:00
Bill Currie
d20b8bf0c1 pass NIL though ... safely 2003-08-22 06:04:31 +00:00
Bill Currie
303287dc11 don't seg on undefined vars 2003-08-22 05:48:19 +00:00
Bill Currie
204243fe95 better message type checking 2003-08-22 05:26:47 +00:00
Bill Currie
febc57e71b typecheck message params when possible 2003-08-22 04:08:33 +00:00
Bill Currie
7d09105740 remove debug code 2003-08-21 02:24:11 +00:00
Bill Currie
11c7c27f70 better relocations: pointers to structure members now work 2003-08-21 02:21:30 +00:00
Bill Currie
a2300387de fix a bunch of segfaults 2003-08-20 22:36:02 +00:00
Bill Currie
93cafe878a convert NIL properly in function calls 2003-08-20 20:28:28 +00:00
Bill Currie
7d830ffc1f make @defs work properly and don't do uninitialized checks on structs 2003-08-20 19:58:41 +00:00
Bill Currie
aa712c0169 make [super foo] work in category methods 2003-08-18 06:11:41 +00:00
Bill Currie
aa4f81b6da class.c:
whitespace
switch.c:
	set up the relocations for the switch jump table properly
2003-08-18 02:57:21 +00:00
Bill Currie
515dbaccc0 make qc-lex.c and qc-parse.[ch] part of the distribution (two less
requirements for the average user)
2003-08-12 18:22:11 +00:00
Bill Currie
4a680bf981 grovel around for the source file and line of an undefined def to give
better diagnostics
2003-08-06 21:36:07 +00:00
Bill Currie
448b6f24be make the useless expression warning more interesting 2003-08-05 21:41:48 +00:00
Bill Currie
329c91fce4 expr.c:
qcc actually had the precedence of "!x && y" correct, so don't invert
	the logic for it in traditional code.
qfcc.c:
	allow the .debug_file def to be emitted in traditional mode.
2003-08-05 17:48:16 +00:00
Bill Currie
3e3b316891 blah, double ; 2003-08-01 21:26:36 +00:00
Bill Currie
dd9ab1e050 get unsigned mostly working 2003-08-01 21:20:04 +00:00
Bill Currie
8e21ecd4d9 make private methods work properly and put overided methods into the
correct class
2003-08-01 16:24:44 +00:00
Bill Currie
1b5bf9d176 make methods showing up only in the implementation work when overiding an
inherited method
2003-08-01 05:08:15 +00:00
Bill Currie
24f4bcfebf initialize the new field properly 2003-08-01 02:43:51 +00:00
Bill Currie
0361cb261f fix an incorrect inherited attribute access caused by my "no ivars" fix
(part of the struct re-work)
2003-08-01 02:43:11 +00:00
Bill Currie
ae8e7553ce fix struct parsing and printing 2003-07-31 06:17:49 +00:00
Bill Currie
9f0d4cc746 must use save_string when source of string is unknown :P 2003-07-31 06:14:26 +00:00