Bill Currie
067359b39d
d'oh, missed a ;
2002-05-01 21:42:29 +00:00
Bill Currie
962dc8e46e
rewrite the type and def parsing to allow more flexible types
2002-05-01 21:35:39 +00:00
Bill Currie
4725a44098
print out field types correctly
2002-05-01 21:33:59 +00:00
Jeff Teunissen
b871c678f4
test commit.
2002-05-01 20:26:47 +00:00
Bill Currie
98fea9ff55
remove some debug code and fix some missing ;s
2002-04-27 02:51:00 +00:00
Bill Currie
fc6fb804d7
support all but \b, \< and \> of qccx' character escapes.
2002-04-26 22:23:28 +00:00
Bill Currie
1f468e2508
fix a silly parse snafu
2002-04-26 21:49:35 +00:00
Bill Currie
aa006ecf64
qfcc now supports implicit string constant concatentation.
2002-04-26 21:42:50 +00:00
Bill Currie
4f7245d634
allow type (parm, parm, ...) to compile (the parms aren't type checked yet)
2002-04-26 21:28:06 +00:00
Bill Currie
313c82efef
use dstring_new instead of dstring_newstr to avoid allocating memory that's
...
only going to be reallocated immediatly anyway.
2002-04-15 22:24:47 +00:00
Bill Currie
03ab75704f
-p N or --strip-path N will strip up to N leading path elements for a
...
source file's path.
2002-04-10 19:52:48 +00:00
Bill Currie
c71ce480ad
fix a seg when trying to print a null type
2002-04-09 21:37:46 +00:00
Bill Currie
b29c0d70b7
more signed char indeces
2002-04-07 05:44:34 +00:00
Bill Currie
0f198f118e
%d and pid_t don't mix on solaris, so use %ld and cast to long
2002-04-07 05:40:27 +00:00
Bill Currie
d7487a1344
compile fix for win32
2002-03-18 22:40:52 +00:00
Bill Currie
2338d0c157
make zpak work with the new pak
2002-03-18 22:16:37 +00:00
Bill Currie
b4b14b096f
fix an oopsie with the verbose output of extract and create
2002-03-18 22:16:14 +00:00
Bill Currie
568e7ecdb2
make pak get built with the rest of the system
2002-03-18 22:01:51 +00:00
Bill Currie
1757030521
extraction works
2002-03-18 21:37:39 +00:00
Bill Currie
311811bd25
start working on file extraction
2002-03-18 20:52:21 +00:00
Bill Currie
b0b36d8cd1
can now create pak files
2002-03-18 18:03:26 +00:00
Bill Currie
655fe17e18
fix handling of pointers in function params and local vars for qc functions
2002-03-18 07:30:21 +00:00
Bill Currie
3ad92d30d5
still only tests, but at least now it won't seg :)
2002-03-15 18:52:12 +00:00
Bill Currie
91ca4104a2
remove a bonus TRACE
2002-03-14 19:40:59 +00:00
Bill Currie
b97ac96204
fix the win32 side of pre-preocessing
2002-03-14 00:05:04 +00:00
Bill Currie
6cefb63e2e
get back to work on creating a good command line pak file util. currently
...
only dumps the file names/sizes and segs if it's used incorrectly, but it's
a start.
2002-03-12 23:45:36 +00:00
Bill Currie
b5ed8a7ddb
tracing code can now be selected by setting GLSTUB_TRACE to a non-zero
...
value (eg, export GLSTUB_TRACE=1)
2002-03-12 00:07:43 +00:00
Bill Currie
1d420edcd0
start work on instrumenting GLstub.so
2002-03-11 23:55:50 +00:00
Bill Currie
5a2538faaf
dstring.[ch]:
...
create dsprintf and dvsprintf to do formated prints to dynamic strings.
rest
Use the new functions :)
2002-03-08 23:11:42 +00:00
Bill Currie
d3870a1ec4
fix a missing dstring_adjust call (I guess I need to make a dsprintf:)
2002-03-08 20:56:22 +00:00
Bill Currie
de60a142ef
break out the preprocessing code into a function so I can later preprocess
...
the progs.src file. also use snax's new dynamic strings for the tempname.
2002-03-07 18:36:48 +00:00
Bill Currie
860e3ebb1d
make unsigned arrays/pointers more useful by allowing them to be used as
...
unbounded arrays
2002-02-24 01:11:34 +00:00
Bill Currie
80723fdec7
o don't ice when ex_name or ex_nil expressions show up in emit_expr.
...
instead, treat as useless epxression.
o mark rvalue expressions as such
o increment the users of a managed temp def when in an rvalue expr
2002-02-21 20:34:04 +00:00
Bill Currie
0c511d3da5
a couple fixes pointed out by raorn (thanks)
2002-02-21 08:46:22 +00:00
Bill Currie
e38259e01f
warn when a top-level local shadows a parameter
2002-02-19 00:16:56 +00:00
Bill Currie
d1fcfd1939
Implement --traditional so qfcc can be a nicer qcc. This disables several
...
keywords (quaternion integer function for break continue switch case default
NIL struct enum typedef) and converts some errors to warnings (assignment to
constants, insufficient function arguments, return; from non-void function,
anal function `pointer' type checks)
2002-02-18 06:23:59 +00:00
Bill Currie
49ef391664
make dist fix
...
----------------------------------------------------------------------
2002-02-16 05:15:24 +00:00
Bill Currie
b4000200e3
move the getopt files from qfcc/source to libs/util, link qw-master against
...
libQFutil and enable the option parsting in qw-master for win32.
2002-02-12 17:44:41 +00:00
Bill Currie
4f6e61d68b
win32 compile fix
2002-02-05 22:56:21 +00:00
Bill Currie
16298914f0
default sourcedir to "" rather than "./" and strip leading paths from the
...
tempname when preserving temps
2002-02-05 22:08:19 +00:00
Bill Currie
cb0db8b8d1
disable debug putout and allow the cpp command line to be specified.
2002-02-05 19:35:45 +00:00
Bill Currie
f2a8f8ff28
make cpp command line selection more intelligent. This should take care of
...
the stuck cpp problem on openbsd.
2002-02-05 18:40:47 +00:00
Ragnvald Maartmann-Moe IV
a3c699a921
Fix three gitignores.
2002-01-31 07:49:29 +00:00
Bill Currie
ad6d847728
fix qfcc's incorrect allocation/initialization for pointers (eg, float [] foo)
2002-01-30 22:57:48 +00:00
Bill Currie
3d9c8a9a60
get nil conversions working fully and things like !pointer
2002-01-30 22:17:55 +00:00
Bill Currie
b7cfb95a64
update for new progs loader api and the makefile for the option of static
...
linking
2002-01-30 17:41:16 +00:00
Bill Currie
e5e157a804
update for new progs loader api
2002-01-30 17:20:10 +00:00
Jeff Teunissen
98f8642081
Oops. Well, I fscked that one up. It's fixed now.
2002-01-28 21:22:21 +00:00
Jeff Teunissen
418f922f0f
Minor Forge updates, clearing out the backlog so I can do some more
...
development.
2002-01-28 15:23:13 +00:00
Jeff Teunissen
7ea87aa47a
oops. Actually commit the new document icon this time.
2002-01-28 03:39:15 +00:00
Jeff Teunissen
29c68732c0
More Forge stuff.
...
Forge now loads the bundles in its resources first, and then loads the
bundles from the User, Local, Network, and System library directories,
in that order -- if it is told to by the defaults system.
Also, the MainPrefs class has some new options, to control what
directories Forge loads bundles from.
2002-01-26 22:09:15 +00:00
Jeff Teunissen
8ef321e2e8
Forge updates -- an icon for .forge files, some app info updates, and a
...
nib-loading fix for MainPrefs.
2002-01-26 05:13:25 +00:00
Jeff Teunissen
9585b6af92
Forge updates. Preferences is no more, since each bundle will have its
...
own prefs anyway. The "sample" bundle MainPrefs is more complete, and is
now loading its interface from a .gorm file -- this would be a .nib on
NeXTstep or Mac OS X, and it should be ready to run on those OSes
already -- since it doesn't do much. :)
2002-01-25 08:45:28 +00:00
Jeff Teunissen
4c8154a224
commit mods before I nuke the file.
2002-01-25 08:38:17 +00:00
Bill Currie
85588c8fcb
start implementing the api for input lines and clean up a couple csqc
...
prototype issues.
2002-01-23 22:37:44 +00:00
Bill Currie
6a393d175e
implement typedef
2002-01-23 20:50:25 +00:00
Bill Currie
3f958ae29b
more make dist fixes
2002-01-22 18:04:03 +00:00
Bill Currie
ecd539cbd3
some make dist fixes
2002-01-22 17:17:18 +00:00
Bill Currie
c8ef2d8b55
subdirs must come /after/ their parent in the AC_OUTPUT list
2002-01-22 07:42:35 +00:00
Bill Currie
8a24b28d97
scary, but the only changes qfcc needed to build as part of quakeforge was
...
to auto-substitued the libs and headers.
o unconditionally build qfcc (for now, anyway) when building quakeforge
(needed for cs-code compilation)
o when built as part of quakeforge (qfcc should still be buildable
independently) always enable cpp
o autoconfiscate the client-side code
o build the client-side code using the built qfcc
o install the client-side code in $(datadir)/quakeforge/id1
2002-01-22 05:48:03 +00:00
Bill Currie
f1f2dd713d
generate progdefs.h only for v6only
...
generate files.dat only if -F or --files is given on the command line
2002-01-21 23:30:54 +00:00
Bill Currie
7775dab7bb
remove debug
2002-01-21 19:19:07 +00:00
Bill Currie
f2d097c013
resolve the case value before checking its type
2002-01-21 19:18:41 +00:00
Bill Currie
2ce5a91373
allow enum {...} name; but ignore name (eases C <-> QC header compat)
2002-01-21 19:09:23 +00:00
Bill Currie
64c5983742
enum support
2002-01-21 19:03:29 +00:00
Bill Currie
cef918df83
get array initialisation worrking
2002-01-18 08:26:37 +00:00
Bill Currie
d69762facd
integer() and float() casts seem to work
2002-01-17 19:32:04 +00:00
Bill Currie
08c1d57c53
fix a param scoping error
2002-01-17 16:59:00 +00:00
Bill Currie
7227ab4363
qfcc.c:
...
add -P,--progs-src so you can specify the name of the progs.src file
rest:
add/use print_type
2002-01-17 08:19:53 +00:00
Jeff Teunissen
2e3c1a55c6
some minor Forge updates.
2002-01-14 15:06:00 +00:00
Jeff Teunissen
8c2d3f65c3
Add a couple symbols to qfcc's preprocessor lines
2002-01-05 19:18:27 +00:00
Jeff Teunissen
9f6dcec9dd
--save-temps support for qfcc. It'll leave files with the same filenames
...
they're generated from, with the exception that they will have an
extension of .p. Obviously, depends on cpp support.
2002-01-05 19:13:20 +00:00
Jeff Teunissen
a0370e52d2
Manpage should be both distributed and installed now.
2002-01-05 18:46:59 +00:00
Jeff Teunissen
33b6429aa7
Makefiles for docs.
2002-01-05 18:46:05 +00:00
Jeff Teunissen
abf73ea80a
Support nibs in MainPrefs.
2002-01-04 20:31:53 +00:00
Bill Currie
f591b27532
set the result of the block used for self.maxs = obj.origin; type expressions
2002-01-04 18:43:55 +00:00
Bill Currie
718a64343b
more old-code cleanup. move PR_LexString into make_string
2002-01-04 18:27:01 +00:00
Bill Currie
12d2338d1b
handle dos line endings a little better
2002-01-04 17:13:13 +00:00
Forest Hale
184ff4a216
made qfcc compile again, by renaming com_token to qfcc_com_token so it does not conflict with QFutil
2002-01-04 11:12:52 +00:00
Bill Currie
9d2739598a
character constants
2002-01-04 08:45:24 +00:00
Jeff Teunissen
c0e2639701
Add quaketoascii program, from Dwayne C. Litzenberger <dlitz@dlitz.net>
2001-12-31 18:10:20 +00:00
Bill Currie
375ada11bc
update to current version
2001-12-18 06:53:49 +00:00
Bill Currie
3dafbebf10
fix up #0 builtin functions at runtime. not done automaticly (need to call
...
PR_RelocateBuiltins) and fix a bug with profiling and unlimited execution
counts
2001-12-14 08:15:04 +00:00
Jeff Teunissen
2185e0a92e
Update qfcc man page.
2001-12-14 05:33:00 +00:00
Bill Currie
f392c395df
fix some uninitialized warnings my gcc missed, but misty's got
2001-12-13 16:40:46 +00:00
Bill Currie
d95bf0ada8
blah
2001-12-12 22:04:34 +00:00
Bill Currie
112f74a357
make integer constant division warnings optional
2001-12-12 22:00:42 +00:00
Bill Currie
195dd1032e
clean up some dead code
2001-12-12 21:52:07 +00:00
Bill Currie
2b458dd13d
clean up line/file management
2001-12-12 21:50:11 +00:00
Bill Currie
6d65fe853d
spontaneous temp defs need to have their users incremented when an
...
assignment is part of a sub expression
2001-12-12 21:29:04 +00:00
Bill Currie
7e38a8d9a0
clean up the return def selection for emit_assign_expr
2001-12-12 20:55:55 +00:00
Bill Currie
8ddce20949
pr_*: add storep.p so pointers can be stored into entities
...
emit.c: convert & (address) to . in unary .
rewrite emit_assign_expr
expr.c: remove debug code and make unary . less agressive on address calcs
also convert & (address) to . for lvals
2001-12-12 20:35:58 +00:00
Bill Currie
b56d7f3248
emit.c:
...
fix a missing else (should convert to switch)
expr.c:
fix address_expr for binary expressions
fix unary .
2001-12-12 18:34:41 +00:00
Bill Currie
f9149a0d6c
finally get around to renaming type_name to pr_type_name
2001-12-12 17:15:09 +00:00
Bill Currie
cc34e5954f
lots of work on better array/pointer/struct handline. doesn't quite work yet
2001-12-12 08:39:47 +00:00
Bill Currie
835468bcfb
beginnings of breaking out the type code
2001-12-11 19:58:12 +00:00
Bill Currie
0bb01f310f
don't crash when there are too many entities for update messages. just ignore
...
the excess.
2001-12-10 03:17:21 +00:00
Adam Olsen
e3508a5c64
- oops, count the command line properly
2001-12-09 16:52:43 +00:00
Adam Olsen
dfb405f4ae
A script that produces a PNG from the timeframes.txt produced by doing
...
"cl_timeframes 1" and running a timedemo. It uses grace to do the
work, so you need that installed.
2001-12-09 16:32:28 +00:00
Bill Currie
e976211faf
header block fixes
2001-12-08 20:40:50 +00:00
Bill Currie
00b2a45ecd
change the operator for "address" from "." to "&" so load.p can be implement.
...
this makes it so pointers in entities work.
2001-12-08 20:17:20 +00:00
Bill Currie
a184199146
get arrays of structures working
2001-12-08 17:36:58 +00:00
Bill Currie
b03a1bee42
ok, structures seem to generate correct code now
2001-12-08 08:19:48 +00:00
Bill Currie
3293c5e85f
beginnings of structure code. committed because cvs diff doesn't work on
...
new files
2001-12-08 00:09:11 +00:00
Bill Currie
1767ad435f
use the new immediate indeces to make small array indeces not use a global
2001-12-07 20:10:30 +00:00
Bill Currie
0c2f36f9a3
some dead code cleanup
2001-12-06 20:05:49 +00:00
Bill Currie
3c2c4aa9e6
indent whitespace cleanup. not perfect, but a bit more consistent now
2001-12-06 19:49:40 +00:00
Bill Currie
61786182d2
whitespace
2001-12-06 18:14:44 +00:00
Bill Currie
12a0a10d33
more alpha portability fixes
2001-11-29 19:35:25 +00:00
Jeff Teunissen
d16ab6eed0
Forge: stuff I did only partially.
2001-11-29 01:02:39 +00:00
Jeff Teunissen
a7dfe849fd
Forge updates. The app controller now has methods for bundles to call,
...
to register functionality with the app.
2001-11-28 23:46:37 +00:00
Jeff Teunissen
74e2f63188
*** empty log message ***
2001-11-28 23:44:26 +00:00
Bill Currie
4912f3083d
My gl stubs code for the null-renderer tests. Builds GLstub.so which should
...
then be used for the gl_driver cvar (you will generally need to give the full
path).
2001-11-27 23:56:10 +00:00
Jeff Teunissen
83a778467c
Preferences.m: function scoping fixes (static is your friend).
...
rest: bundle loading. It's alive! Alive, I tell you! Mwahahahaha!
...
uhh...
* Deek hides the bodies
2001-11-22 07:28:01 +00:00
Jeff Teunissen
84bb78abe4
Nuke some stuff from .gitignore
2001-11-21 22:30:32 +00:00
Jeff Teunissen
acddb949e3
Nuking the configure stuff. There's no need for it yet, maybe not ever.
...
Add some flags (-Wall -Werror) to GNUmakefile.preamble.
Fix some stuff -Wall found.
2001-11-21 22:22:14 +00:00
Jeff Teunissen
9c92717c15
The beginnings of bundle-loading support Scary, but it seems to work!
2001-11-21 18:47:08 +00:00
Bill Currie
3f7c4f146e
allocate space for field arrays and report entity size
2001-11-15 05:31:15 +00:00
Bill Currie
e45bb62f23
ok, correct code seems to be getting generated for both array access and
...
entity field access
2001-11-15 04:32:50 +00:00
Bill Currie
40d47e91cb
win32 portability fixes
2001-11-15 03:54:35 +00:00
Bill Currie
7d9266a3f0
beginnings of array support. no array initialization yet and foo[i] = bar is
...
broken.
2001-11-15 00:46:36 +00:00
Bill Currie
8aa83d04f3
oops, that's not how that works :)
2001-11-15 00:25:15 +00:00
Bill Currie
cf37275def
add -g option (shortcut for --code=debug)
2001-11-14 23:17:20 +00:00
Bill Currie
ed331517b3
more grammar re-work preparing for arrays and structs
2001-11-14 22:31:57 +00:00
Bill Currie
a2bfff5dc4
simplify the type rule
2001-11-14 07:16:58 +00:00
Bill Currie
3fe67eecd2
expr.c:
...
it helps if one understands /why/ something is done. I think this
might be it for the reference count tweeks
switch.c:
o better control over whether case ranges are built
o /always/ append the temp = test expression and use temp instead of
test for the != check
o only ever build case ranges if the switch expression is integer
2001-11-14 06:45:31 +00:00
Bill Currie
dc80f51d89
fix a missed immediate type missmatch case
2001-11-14 05:08:37 +00:00
Bill Currie
da36feff7f
oops, failed to notice that relocs on temp defs weren't being done correctly
...
memset wasn't such a good idea :P
2001-11-13 23:21:23 +00:00
Bill Currie
cfa47717c6
expr.c:
...
once again, temp def ref counts seem to be correct
pr_def.c:
reset recycled temp defs
2001-11-13 23:17:32 +00:00
Bill Currie
ad5deea582
missed this in the cleanup
2001-11-13 23:14:59 +00:00
Bill Currie
3874d78697
slightly better code, but the temp isn't getting ref-counted correctly
2001-11-13 22:11:45 +00:00
Bill Currie
68fb0a1147
clean out a bunch of unneeded code. this should take care of static linking
2001-11-13 20:34:21 +00:00
Bill Currie
645c400802
rearrange default jump for slightly better code generation
2001-11-13 20:27:05 +00:00
Bill Currie
4291f9c711
create new_bind_expr and more tweeks to temp def ref counting
2001-11-13 18:49:27 +00:00
Bill Currie
f2f8e096f3
qfcc.h:
...
o add a "freed" marker to def_t to prevent double freeing of
temp def offsets
emit.c:
o break out the bind code into emit_bind_expr (doesn't /really/
emit code, but still:)
o make bind work with disparate types (forces def_t->freed 1)
pr_def.c:
o mark array pointers as initialized and constant.
o don't free the offset for already freed temp defs
pr_imm.c
o fix a bug in uinteger support
o support disparate types for immediates
switch:
o fix a bug where gt.i was being used instead of gt.ui
o remove some debug code
2001-11-13 18:11:19 +00:00
Bill Currie
3d5447c71f
seems gcc3 drops the missed enum in switch warning :/
2001-11-13 16:08:50 +00:00
Bill Currie
07b59d2f07
pr_comp.h:
...
o add OP_JUMPB
o OP_JUMPB renumberd some opcodes, so up PROG_VERSION
pr_edict.c:
o make the version error reporting more informative
pr_exec.c:
o implement OP_JUMPB (goto *(ptr + index))
pr_opcode.c: (libs/gamecode/engine)
o add OP_JUMPB to the table
expr.h:
o ex_uinteger support
o some const correctness
o prototype new_label_expr
qfcc.h:
o uinteger ussport
o add pointers for op_jump and op_jumpb
o prototype PR_GetArray
emit.c:
o general uinteger support
o new reference/reloc type 3: absolute statement address
o jumpb support (binary goto)
expr.c:
o uinteger support
o break the label name creation out of new_label_expr into
new_label_name
o some const correctness
pr_def.c:
o add PR_GetArray to allocate an array in global space
o factor out some code common to PR_GetDef and PR_GetArray that would
otherwise be duplicated
pr_imm.c:
o some const correctness
o uinteger support
pr_lex.c:
o uinteger support
pr_opcode.c: (tools/qfcc/source)
o support jump and jumpb
switch.c:
o rewrite the binary search code to support ranges.
2001-11-13 08:58:54 +00:00
Bill Currie
d27cd9cc21
s/type_size/pr_type_size/
...
remove the redundant type_size from qfcc
2001-11-12 23:56:46 +00:00
Timothy C. McGrath
eb7d41b95c
Fix for configure to give it a zlib check, just like qfcc. qfdefs now compiles
...
again statically.
Tim McGrath
(Misty-chan)
2001-11-12 23:52:14 +00:00
Timothy C. McGrath
0a18c1256a
Fix configure for zlib and static compiling. static compiling is still broken
...
But I'm sure taniwha is going to fix that shortly anyway :)
Tim McGrath
(Misty-chan)
2001-11-12 23:49:08 +00:00
Bill Currie
dcfea9796e
strings now work in switch statements
2001-11-12 21:13:55 +00:00
Bill Currie
d168a3daee
this should remove the requirement for gmake on bsd systems
2001-11-12 16:23:41 +00:00
Jeff Teunissen
9f1f89f8f1
Forge: New -- a preferences panel. Doesn't do anything yet, but that's
...
only because I haven't created the main prefs view class yet. Trust me,
it's going to work. I think. :)
Anyway, what code there is works, and is linked into the menu -- just
hit Info -> Preferences... to see it.
2001-11-12 14:15:20 +00:00
Jeff Teunissen
150128f158
Localization for Forge.
2001-11-11 20:56:27 +00:00
Jeff Teunissen
316004e793
Forge updates. Preferences seems to be debugged now.
2001-11-11 20:54:59 +00:00
Bill Currie
928d343295
pr_comp.h:
...
o add ev_uniteger to the types enum
o add opcodes for ifbe, ifb, ifae, ifa, jump, lt.ui, gt.ui, le.ui, ge.ui
progs.h:
o add uinteger accessors
pr_exec.c:
o implement ifbe, ifb, ifae, ifa, jump, lt.ui, gt.ui, le.ui, ge.ui
pr_opcode.c:
o add opcodes for ifbe, ifb, ifae, ifa, jump, lt.ui, gt.ui, le.ui, ge.ui
expr.h:
o prototype inc_users
qfcc.h:
o add externs for op_ifbe, op_ifb, op_ifae and op_ifa
emit.c:
o don't bother emiting an assignment to a temp def that's only used once
(ie, it's never read, only written to)
o support the new if* instructions
expr.c:
o support the new if* insructions
o dectect expression loops in append_expr
o support unsigned integers
o re-work temp def usage counting
pr_def.c
o debugging for temp def usage counts
pr_opcode.c:
o support the new if* instructions
qc-parse.y:
o provide defines for IFBE IFB IFAE IFA
switch.c:
o do binary searches for strings, floats and ints if there are more than
8 cases in a switch. Strings need more testing.
2001-11-09 00:58:16 +00:00
Bill Currie
643aa795d6
fill the bsb and brush menus with a "dunno" filler that just, er, selects
...
"undo" for now. This is so Controller.m compiles on my system (using gcc 3)
2001-11-07 02:50:54 +00:00
Bill Currie
cb4ce6a634
remove the default label from the switch label table while fetching it.
2001-11-06 20:39:42 +00:00
Jeff Teunissen
5876ba1aba
Forge Updates. Menus mostly filled out now, the .gorm file inits the
...
controller.
2001-11-06 13:20:23 +00:00
Jeff Teunissen
1b834ba52e
Whoops. Fix the principal class.
2001-11-05 20:05:02 +00:00
Jeff Teunissen
5ff1de398e
Okay, tiny skeleton for Forge. It will be cleaner and probably faster to
...
treat Forge like an entirely new program, and not as a port. I'll still
be using many of the ideas from QuakeEd (and from my old Forge work),
but there's no promise that it'll be a duplicate, or even similar.
2001-11-05 19:58:25 +00:00
Jeff Teunissen
51a17f280b
Forge: more files history
2001-11-05 19:47:05 +00:00
Jeff Teunissen
2ab7a09812
Forge: More stuff gets the axe.
2001-11-05 19:45:09 +00:00
Jeff Teunissen
02dd74b2f7
Buh-bye headers.
2001-11-05 19:40:34 +00:00
Jeff Teunissen
2fbdbd5522
Forge: Committing the stuff I _was_ working on. These will all go away
...
in a few minutes.
2001-11-05 19:36:04 +00:00
Bill Currie
ccbb1c3f04
document all those weird opcodes :)
2001-11-05 19:32:50 +00:00
Bill Currie
13a177f217
use 'b' (bind) instead of '=' (assign) for switch's test temp def so simple
...
expressions (ie, just a def) don't generated wasted assignments and clean up
switch's debug info so you get the switch line rather than the line for the
closing }
2001-11-05 19:12:33 +00:00
Bill Currie
9b784e331b
remove '(' (never used, don't remember what it was intended for) and add
...
'b' (bind), 's' (state) and 'c' (call) to get_op_string.
2001-11-05 19:11:03 +00:00
Bill Currie
c60dc54697
Makefile:
...
update qfcc options
main.qc:
go back to the original intent :)
2001-11-02 03:03:01 +00:00
Bill Currie
5f5060cbf0
move the users and used setting code from emit_statement to
...
PR_AddStatementRef. This removes essentially duplicate code and 3 ifs :)
2001-10-31 18:40:02 +00:00
Bill Currie
b499d7e1e8
I've decided that shuffling the `sections' like that doesn't really gain
...
anything, so I'm reverting that change.
2001-10-31 17:55:35 +00:00
Bill Currie
3b2d2a1c88
re-arrange the order of the `sections' of a .dat file to match the header
...
order. this also `happens' to put the strings section just before the globals
section (both at the end) which will make pointer bounds checking easier.
2001-10-30 19:41:27 +00:00
Bill Currie
85c9e0ab1e
more externs cleaned up
2001-10-29 17:46:03 +00:00
Bill Currie
09f19fd9c9
remove some redundant data
2001-10-28 04:42:44 +00:00
Bill Currie
ccfe82cda4
*taniwha mops up the last drops of blood from extern
2001-10-28 04:38:24 +00:00
Bill Currie
3f45a8305c
*taniwha inflicts more carnage on extern
2001-10-28 04:29:30 +00:00
Jeff Teunissen
79544d6630
qfcc: More manpage updates.
2001-10-27 02:20:39 +00:00
Jeff Teunissen
901a8ec9c5
qfcc: update man page. It's pretty useful, so I'll probably be setting
...
it up as part of the install for qfcc.
2001-10-26 23:55:42 +00:00
Jeff Teunissen
274ff6e59a
Add getopt.h to the dist, just in case.
2001-10-26 23:54:20 +00:00
Jeff Teunissen
b07d60f6d6
add getopt.c and getopt1.c to the makefile. There is preprocessor
...
stuff in these files to detect when they need to be compiled, so they
don't need anything in configure.
2001-10-26 23:53:36 +00:00
Jeff Teunissen
5502558bb9
qfcc: Argument passing for cpp, shuffling the verbosity levels around a
...
bit.
2001-10-26 22:07:35 +00:00
Bill Currie
5eba9f155e
clean up some duplicate symbols
2001-10-26 17:49:23 +00:00
Bill Currie
d8e6bf9cb6
fix the verbosity levels to what they were
...
--no-cpp is now cpp or no-cpp in code
add cpp to code_options_t
2001-10-26 16:04:38 +00:00
Jeff Teunissen
c5d0d45edf
qfcc: Remove some debug info from taniwha's last commit -- I thought
...
*I*'d done that! :)
2001-10-26 08:55:24 +00:00
Jeff Teunissen
46c4174024
qfcc: forgot a newline in -V output
2001-10-26 08:17:04 +00:00
Jeff Teunissen
89c7e0df1a
qfcc: getopt support. Yes, it exists, and it works, and it's fun! :)
2001-10-26 08:14:05 +00:00
Bill Currie
5cbd50d835
count the number of digits needed rather than relying on -lm (now it's not
...
needed:)
2001-10-26 06:53:02 +00:00
Jeff Teunissen
581411e9e2
qfcc: Preparation for getopt.
2001-10-26 06:43:56 +00:00
Timothy C. McGrath
04e4da654a
Changes taniwha did to make qfcc work with statically compiled libs.
...
This is what was bugging me all night long with qfcc ><;;
Tim McGrath (Misty-chan)
2001-10-26 02:32:40 +00:00
Bill Currie
70bedc149f
allow returning NIL
2001-10-25 21:15:48 +00:00
Bill Currie
bc44f950af
enable passing NIL into a function
2001-10-25 20:51:56 +00:00
Bill Currie
f8a41cb1bc
completely nuke the concept of "priority" from opcodes and use get_op_string
...
in emit_sub_expr instead of a redundant switch.
2001-10-25 17:48:35 +00:00
Bill Currie
f029687ff0
switch statement. could do with lots of improvements, but this should be a
...
good start.
2001-10-25 06:41:52 +00:00
Bill Currie
09405469f6
throw PR_BeginCompilation's arguments out the nearest airlock
2001-10-24 22:53:27 +00:00
Bill Currie
f36e7bb22f
reorg
2001-10-24 22:52:50 +00:00
Adam Olsen
3bba5398ba
- audit malloc usage. now everything checks the return value :)
2001-10-24 22:50:06 +00:00
Bill Currie
133ce647fb
implement break and continue. only loops covered for now, but that's because
...
switch isn't implemented yet
2001-10-24 18:57:29 +00:00
Bill Currie
743bc5178b
fix uninitialized variable detection for nested scopes
2001-10-24 15:21:21 +00:00
Jeff Teunissen
890efff350
Forge: Remove some files that we can't use with OpenStep. If anyone needs them for porting to
...
NSGraphicsContext, let me know and I'll provide them.
2001-10-24 12:41:38 +00:00
Bill Currie
6553c81a41
proper scoping for QC ala C.
2001-10-24 06:39:49 +00:00
Bill Currie
b8a9a97c75
the usual
2001-10-22 18:47:45 +00:00
Jeff Teunissen
6af08f0468
Forge: rip some useless stuff out of configure.
2001-10-20 00:48:15 +00:00
Jeff Teunissen
c38e76fce7
Forge: Gorm updates -- figuring out how connections work :)
2001-10-20 00:37:20 +00:00
Jeff Teunissen
73e53986a3
Forge: Preferences updates -- use notifications instead of globals.
2001-10-20 00:33:54 +00:00
Bill Currie
2ef8adea09
handle more conditional code and check for unitied vars in the test of if ()
...
etc
2001-10-19 05:16:24 +00:00
Bill Currie
16c334b6b9
uninit var detection seems to work for if and if else
2001-10-19 03:22:04 +00:00
Bill Currie
3572a6be28
change def_list from def_t ** to hashtab_t * and comment out some debug code
2001-10-19 00:45:56 +00:00
Bill Currie
237d238a65
beginnings of "if" uninitialized variable support. doesn't make any
...
difference yet
2001-10-18 23:06:39 +00:00
Bill Currie
5ca785e7e8
uninitialized variable detection. not perfect (lots of false negatives, but
...
fewer than before;) but prozac isn't giving any false positives.
2001-10-18 20:05:26 +00:00
Bill Currie
96e4e1a232
the beginning of unititialized var detection. first victim: functions.
...
--undefined-function-warning is now --no-undefined-function-warning and
the default is to detect called but undefined functions.
2001-10-18 17:41:22 +00:00
Bill Currie
952f029e6d
rename def_t.initialized to def_t.constant
2001-10-18 17:15:05 +00:00
Bill Currie
85834ab8c3
handle a couple of missed ex_nil cases
2001-10-17 18:36:19 +00:00
Bill Currie
79ac85b54f
type checking now works much better and there is now a NIL builtin constant
...
which can be assigned (/only/) to anything.
2001-10-17 07:45:37 +00:00
Bill Currie
2d068c0745
massive windows.h and WIN32 cleanup.
2001-10-16 21:40:45 +00:00
Bill Currie
40489cb166
Config.h.in is generated, so remove from cvs
2001-10-14 06:10:45 +00:00
Jeff Teunissen
69c558d78c
Vector class for Forge. Don't know if we need it, but it helped me to
...
grok vectors.
2001-10-14 05:57:38 +00:00
Jeff Teunissen
f7b0227299
This is all seriously broken, but I'm committing it so that it can be
...
worked on by other people as well. :)
2001-10-14 05:55:21 +00:00
Bill Currie
c8e1e7942a
correct type error checking for vectors vs floats
2001-10-12 03:58:22 +00:00
Jeff Teunissen
510ce73d65
A Gorm file for the Forge interface.
2001-10-10 01:49:57 +00:00
Bill Currie
356492f683
don't convert float test epxressions for --id and fix a typo in an error
...
message for !expr
2001-10-06 04:48:52 +00:00
Ragnvald Maartmann-Moe IV
2080ae7db6
Fix stamp ignorance.
2001-10-05 19:42:17 +00:00
Bill Currie
922895ed99
comment out unused var
2001-10-02 19:33:31 +00:00
Bill Currie
67635e9dd0
fix a d'oh in the param/return type checking
2001-10-02 19:03:28 +00:00
Bill Currie
dcb51dc586
expr.h:
...
get_type and extract_type prototypes and add extern for type_names
emit.c:
use extract_type instead of get_type
expr.c:
get_type now returns the type pointer rather than the qc type enum.
extract_type uses get_type to return the qc type enum.
make type_names global
use get_type instead of ex_expr/ex_def to cover more cases
clean up function call/return processing as a result of get_type
pr_opcode.c:
use opcode_priority_type_table_ab when var_c is null and a minor
cleanup in PR_Opcode_Find
2001-10-02 18:55:52 +00:00
Bill Currie
1a3a599ab3
ignore gas2masm
2001-09-28 07:33:46 +00:00
Bill Currie
f442e0d980
make gendefs put its rcsid into its generated files
2001-09-28 07:27:13 +00:00
Bill Currie
7407e4f1b7
and some more
2001-09-28 07:09:38 +00:00
Bill Currie
bcd54926b4
make compile with gcc 3.0
2001-09-28 03:58:51 +00:00
Bill Currie
83db5c0194
fix --with-qf
2001-09-28 03:47:22 +00:00
Jeff Teunissen
cd5f322cc1
Move along, nothing to see here... :)
2001-09-26 03:39:44 +00:00
Bill Currie
06da30ac89
mingw build fixes again (including mostly working in sid: got some link issues)
2001-09-25 06:18:30 +00:00
Bill Currie
c74fc1c0df
make the unused var warning like gcc's
2001-09-24 17:51:15 +00:00
Bill Currie
2447983464
try three. this should work
2001-09-24 03:23:44 +00:00
Bill Currie
998855402c
try two
2001-09-24 02:48:09 +00:00
Bill Currie
5f9a3d9617
try to make --with-qf work while configuring
2001-09-24 02:38:28 +00:00
Bill Currie
789a11d2d8
don't print the file or line number for "warnings treated as errors"
2001-09-23 04:08:28 +00:00
Bill Currie
2054ec016a
fix a slew of false positives with unused var checking
2001-09-23 04:08:03 +00:00
Bill Currie
7aec6e253a
unused local variable detection
2001-09-22 23:41:47 +00:00
Bill Currie
9f715ae9f8
more small old-parser cleanups
2001-09-15 20:31:17 +00:00
Bill Currie
3557d375f3
add better scoping to TODO even though I'm likely to do it soon
2001-09-13 20:34:08 +00:00
Bill Currie
d7675ada7a
move the particle count multiplication out of the renderer and into the clien
...
(for blood and gunshot, anyway).
2001-09-06 05:41:15 +00:00
Jeff Teunissen
896d304ac9
New man page for qfcc -- doesn't match the program yet, I'm committing
...
it for comments.
2001-08-31 16:43:26 +00:00
Bill Currie
805c1bd242
foo (snafu, bar (baz)) no longer uses a temp for bar's return value
2001-08-24 23:22:02 +00:00
Bill Currie
f16886b7f1
missed a need to increment the users of the temp for chained functions
2001-08-24 22:29:06 +00:00
Bill Currie
cee850e499
remove debug
2001-08-24 22:03:50 +00:00
Bill Currie
8166ee7bfb
fix a whitespace snafu (gee, vim can be a pain somethings)
2001-08-24 21:57:07 +00:00
Bill Currie
ea451ab02d
Remove unnecessary temps from function return values. This has one
...
*/CRITICAL/* implication: DO NOT /EVER/ RELY ON EVALUATION ORDER. This
isn't /really/ that bad: evaluation order will be consistent for similar
expressions, but for (eg) foo() + bar()*2, bar will be called first.
2001-08-24 21:47:52 +00:00
Bill Currie
08f73bed78
better code generation for foo(bar(baz)). foo(snafu,bar(baz)) isn't optimal
...
yet, but the code is at least correct
2001-08-24 21:14:04 +00:00
Bill Currie
eeec89e6ba
don't put function args in temps when not needed. still need to take care
...
of the return value, but that can possibly be taken care of in an optimiser
pass.
2001-08-24 05:40:48 +00:00
Bill Currie
0eda635483
fix temp reference counting on function call args
2001-08-22 23:21:47 +00:00
Bill Currie
4c48851096
fix a buffer overflow in new_label_expr
...
use reference counting for temp defs and call PR_FreeTempDefs at the end
of emit_sub_expr as well as emit_expr.
fix a (relatively harmless) bug in type processesing of foo.bar =
2001-08-22 21:55:01 +00:00
Bill Currie
a32384f16c
report the name of the function using the most locals
2001-08-21 18:23:21 +00:00
Bill Currie
8d29efe552
remove a debug print
2001-08-21 17:22:55 +00:00
Bill Currie
e71cbaf5ef
fix for --
2001-08-20 22:16:07 +00:00
Bill Currie
2af74aedca
fix a segfault due to type mangling for ... functions
2001-08-20 18:23:47 +00:00
Bill Currie
cf4ca286f0
implement pre and post increment operators (++ and --)
2001-08-20 06:22:28 +00:00
Bill Currie
cd59628199
move the chained funcion support out of emit_function_expr into funciton_expr
2001-08-20 04:56:00 +00:00
Bill Currie
9ee3450265
extend the hash api to more easily support general cases
2001-08-16 02:51:53 +00:00
Bill Currie
d55199bece
re-arrange the types of store and storep so things make a little more sense
2001-08-13 23:00:17 +00:00
Bill Currie
c103adc17d
clean up the code generated for a = b ? c : d
2001-08-12 02:38:12 +00:00
Bill Currie
f343776b5a
mark some jobs done, correct a typo and sort them by done, in progress, planned
2001-08-11 22:07:03 +00:00
Bill Currie
79ce6c56ca
fix assignops with entity fields by cloning e1 rather than just re-using it
2001-08-11 22:02:59 +00:00
Bill Currie
248de6858d
hopefully take care of freebsd
2001-08-11 21:46:02 +00:00
Bill Currie
c2d3d8f3ab
temp def expressions and ?:
...
seems to work :)
2001-08-11 21:15:24 +00:00
Bill Currie
a8e858f77d
fix a bug where every 2nd(?) arg was being skipped when setting up a function
...
call
2001-08-10 21:31:48 +00:00
Bill Currie
11381ce593
the usual
2001-08-10 21:19:36 +00:00
Adam Olsen
caeb31e6ca
start of the support for chained function calls. Actually, they
...
should work fine now, there's just some extra temp vars we want to
remove before we can consider it "done" :)
2001-08-10 20:35:42 +00:00
Bill Currie
b44fd6ab91
move a var
2001-08-10 18:42:13 +00:00
Bill Currie
4388bf0519
good bye, old parser
2001-08-10 18:35:55 +00:00
Bill Currie
9e46265046
fix a silly error causing integer constants to not be re-used
2001-08-10 17:41:08 +00:00
Bill Currie
a33c834a39
move SHL and SHR down in expr
2001-08-10 17:00:53 +00:00
Adam Olsen
6414897dae
got a few new operators for qc :)
...
<< >> % which all act like their C counterparts
+= -= *= /= &= ^= |= <<= >>= %= which just expand into the obvious,
also like the C versions.
2001-08-10 16:17:00 +00:00
Bill Currie
27ccfa67c5
fix the efficiency of unary expressions as args to a function
2001-08-09 17:05:30 +00:00
Bill Currie
2774260898
test ^
2001-08-09 16:39:08 +00:00
Bill Currie
081d8f3c47
^ and ~ operators for qc (^ from Rhamphoryncus) and clean up the punctuation
...
line in qc-lex.l (why didn't I think to do that in the first place?!?)
2001-08-09 16:34:46 +00:00
Bill Currie
b341529fce
more --id support
2001-08-07 16:50:22 +00:00
Adam Olsen
c218ede288
Add support for checkfunction, which is a builtin that searches for
...
another builtin by name, and returns it.
Soon I'll change all our new builtins to by allocated dynamically, as
well as changing the number checkfunction uses, and happily break
everything that uses them :D
2001-08-04 09:11:50 +00:00
Bill Currie
1e1cb06a1f
disable integers for --id. probably not thorough enough yet :/
2001-08-03 07:47:15 +00:00
Adam Olsen
ae133d0a90
Modify progs to add builtins at runtime. It should be trivial to
...
lookup functions by name, and make all our new QC builtins allocate
numbers automatically.
2001-08-03 06:40:28 +00:00
Bill Currie
d89cd91e4b
make the expressions in for (a;b;c) optional
2001-08-01 06:29:09 +00:00
Bill Currie
f9d4351515
more jobs
2001-08-01 00:19:05 +00:00
Bill Currie
bfb8eff2f0
signed_const isn't needed any more
2001-07-27 21:01:01 +00:00
Bill Currie
89da47335b
tests, tests, tests
2001-07-27 20:56:16 +00:00
Bill Currie
ecc71c4a60
local var = expr; now works (globals must still be consants)
2001-07-27 20:55:14 +00:00
Bill Currie
28b1598e7e
break the emit_* functions out of expr.c into emit.c
2001-07-26 05:15:34 +00:00
Bill Currie
7718ca4c96
various little cleanups
2001-07-26 05:08:27 +00:00
Bill Currie
95ad5aa329
integer type done
2001-07-26 04:34:10 +00:00
Bill Currie
c553917c53
various tests
2001-07-25 21:48:20 +00:00
Bill Currie
d44f60f17c
drasticly simplify emit_assign_expr now that I have a much better
...
understanding of when an explicit assigment is needed. seems to work for
everything I throw at it.
Also, fix ! unary ops (caused by the - unary op fix:/)
2001-07-25 21:47:05 +00:00
Bill Currie
0c2cd8633c
fix -expr handling. generates sucky code atm, but at least it's generating
...
code now:P
2001-07-25 18:36:36 +00:00
Bill Currie
638cd005b0
return type testing
2001-07-25 02:28:04 +00:00
Bill Currie
620063628c
typecheck values for [frame, think] on thost functions and fix some misplaced
...
immediate defs
2001-07-24 23:53:35 +00:00
Bill Currie
9ad075b02e
make if/while/for use test_expr, make test_expr fix the new exp line/file,
...
fix some string const issues
2001-07-24 22:30:31 +00:00
Bill Currie
07fbe47294
tests for if (simple expression)
2001-07-24 22:29:16 +00:00
Bill Currie
576123060a
warn on passing integer constants into ... functions. Again, this will need
...
an option later
2001-07-24 20:43:18 +00:00
Bill Currie
d9cde786b3
use ev_type_count instead of ev_void for bad types so things like void
...
functions being used in expressions don't cause ICEs
2001-07-24 19:51:44 +00:00
Bill Currie
6d1671950a
expr.c:
...
warn for int const / int const. this will probably want an option for newer
games
qfcc.c:
clean up temp files when errors have occured
2001-07-24 04:45:53 +00:00
Bill Currie
a47a4d8038
make print_expr's output readable by mere mortals
2001-07-23 06:15:33 +00:00
Bill Currie
d2c266775c
fix a seg on return type mismatch
2001-07-23 05:46:00 +00:00
Bill Currie
4b744b6be5
fix numberous integer <-> float errors
...
type check function args in the correct order
2001-07-23 05:31:49 +00:00
Bill Currie
b8874cab1c
function return checking
2001-07-23 02:27:46 +00:00
Bill Currie
50fadb6866
function arg type checking with int->float /constant/ cooecion.
2001-07-23 01:56:49 +00:00
Bill Currie
c248372e20
Initial integer type support. qfcc /is/ partially broken when it comes to
...
integer constants and float function args/return values.
pr_comp.h:
o add the integer opcodes to pr_opcode_e
pr_edict.c:
o add "quaternion" and "integer" to type_name[]
o support quatnernion and integers types when printing values
o support the integer opcodes when bounds checking
pr_exec.c
o enable the integer opcodes
pr_opcode:
o add the integer opcodes to the opcode table
o logical operators all result in an integer rather than a value
expr.h:
o rename int_val to integer_val
qfcc.h:
o kill another magic number
expr.c:
o move the opcode to string conversion out of type_mismatch and into
get_op_string
o rename int_val to integer_val
o general integer type support.
o generate an internal comipiler error for null opcodes rather than
segging.
pr_imm.c:
o rename int_val to integer_val
o support integer constants, converting to float when needed.
pr_lex.c:
o magic number death and support quaternions and integers in type_size[]
qc-lex.l
o rename int_val to integer_val
o support quaternion and integer type keywords
qc-parse.y:
o rename int_val to integer_val
o use binary_expr instead of new_binary_expr for local initialized
variables
builtins.c:
o rename int_val to integer_val
o fix most (all?) of the INT related FIXMEs
defs.qc:
o use integer instead of float where it makes sense
main.c:
o read_result is now integer rather than float
main.qc:
o float -> integer where appropriate
o new test for int const to float arg
2001-07-23 01:31:22 +00:00
Bill Currie
55ac55c7ac
rename ev_int and ex_int to ev_integer and ex_integer. create type_integer
...
and def_integer (do I need that?), clean up and or coment on XXX and FIXME
2001-07-22 06:59:12 +00:00
Bill Currie
1fca85ee0a
kill some unneeded tests
2001-07-20 23:18:03 +00:00
Bill Currie
7c16afe7e9
add a --no-cpp command line option so that cpp enabled qfcc can still compile
...
qfpreqcc progs
2001-07-20 05:22:44 +00:00
Bill Currie
edcc313501
debug info for local variables is now used. only works when tracing atm:/
2001-07-19 07:27:14 +00:00
Bill Currie
00d409e80c
fix constant folding for |
2001-07-19 03:00:35 +00:00
Bill Currie
09ae07f64e
make --enable-cpp work when new-parser is left to default (which is on)
2001-07-19 03:00:08 +00:00
Bill Currie
47a6f2c9b5
pr_debug.c:
...
capitolise CRC and add a \n to the message
sv_progs.c (both nq and qw):
don't bother checking the progdefs.h crc: it's just not needed any more
pr_imm.c:
use r instead of rep when checking the hash tables.
main.c (quaq):
make developer work and set com_filesize (otherwise, progs crc doesn't
get set properly (com_filesize, not developer:))
2001-07-18 21:28:41 +00:00