Commit Graph

1018 Commits

Author SHA1 Message Date
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 fe654959ee qfcc man page updates. 2004-04-28 04:49:15 +00:00
Jeff Teunissen 31f5bb5d96 Small changes to the QFCC book. 2004-04-28 00:43:03 +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 8220d6d3c9 for loop tests 2004-03-30 02:31:50 +00:00
Bill Currie 25ac9cb07b fix "for (;;)" etc 2004-03-30 02:31:02 +00:00
Bill Currie 5bd524cd8b add a note about memory consuption 2004-02-24 02:56:32 +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 7ed77fd18b ignore pdf files 2004-02-12 21:58:52 +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 afdbd90bc1 some tests I've accumulated over time. don't want to lose them accidently
:)
2004-02-11 02:23:40 +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
Ragnvald Maartmann-Moe IV 2b8fc38a2c Fix an ypo. ;) 2004-02-09 16:51:06 +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 4f9a24d94d and another one 2004-02-03 03:38:51 +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 16e4964a31 fix a couple struct forward ref issues 2004-01-30 07:16:48 +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 2469c36302 yay, short circuit logic done :) 2003-10-23 06:21:07 +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
Bill Currie cc0d8b364d fix a couple "value computed is not used" not used warnings 2003-07-31 02:16:26 +00:00
Bill Currie ab94498503 heh, that was a symptom. forget &void :) 2003-07-30 21:55:32 +00:00