Bill Currie
d783a024b3
record an expression's line number and file and sort of handle state
...
expressions
2001-06-26 16:23:21 +00:00
Bill Currie
3242c04798
fix the redef error
2001-06-26 16:12:01 +00:00
Bill Currie
c1753046a9
start on actually generating code. doesn't work yet (getting a weird type
...
redeclaration error and not all expressions are handled yet).
2001-06-26 07:21:20 +00:00
Bill Currie
e99796c4cf
new expression type: ex_block. forms a linked list of expressions for fast
...
appending and ease of manipulation.
2001-06-26 03:33:01 +00:00
Bill Currie
749d460041
duplicate code cleanup
2001-06-26 02:46:02 +00:00
Bill Currie
3fa3ab59a9
clean up error reporting a little
2001-06-25 23:42:49 +00:00
Bill Currie
625915288c
hopefully make line directives work
2001-06-25 23:38:32 +00:00
Bill Currie
90b5c57266
fix lost initial char of string constants
...
make expression strings char * instead of string_t (don't put them into
pr_strings prematurely);
2001-06-25 22:53:15 +00:00
Bill Currie
53b66ef2e0
better label handling and strings are now completely parsed (including escapes)
2001-06-25 22:11:20 +00:00
Bill Currie
1779a124c5
expr.h:
...
nuke the ex_statement and estatement_[st] stuff
add label_expr prototype
expr.c:
ex_statement nukage
correct new_expr's decl
add label_expr to ease label creation
don't crash when printing a null expression (bare return)
qc-parse.y:
estatement_t nukage
statement statements and statement_block are type expr
generate `expressions' for statements
a full parse tree for each function is now generated. there are several
special expression opcodes for statements:
d done \
r return -> unary: expression to return or null
i if binary: evaluated expression, destination label
n ifnot binary: evaluated expression, destination label
c call binary: function def, args (expr list, rev order)
s state binary: frame const, function def
g goto unary: destination label
l label unary: label number
in a top level expression, l (label) defines the label, otherwise it is a
reference.
2001-06-25 20:52:04 +00:00
Bill Currie
2d87eeb57d
functions are now initialized, but no code is yet generated
2001-06-25 18:23:29 +00:00
Bill Currie
df897255ff
make usage of the new parser easier to configure
2001-06-25 18:22:53 +00:00
Bill Currie
ab051248e8
expr.h:
...
add prototype for print_expr
expr.c:
add print_expr
correct string accessors
currect the result type for unary operators
qc-lex.l:
correct string, vector and quaternion parsing
qc-parse.y:
precedence corrections and more function scope work
CustomTF gets through the parsing again.
2001-06-25 17:15:56 +00:00
Zephaniah E. Hull
3715430479
This is changing more then I wanted to at once, however.
...
The major change is that we no longer require libGL to even exist on the
system at compile time for the GL targets, we dynamicly link to the
libGL of choice at run time. (This probably breaks most non-linux
systems, and all GL targets except -glx, some fixup will be needed.)
(This also kills glquake, dead dead DEAD! GONE FOREVER! WHEE!)
Some gl_draw cleanup.
Commented out equake alias model occlusion test stuff, very experimental.
Added the .lo and .la patterns to the .gitignore files.
Some minor sbar cleanup. (We don't use the disc in use symbol for
anything.)
2001-06-24 09:25:55 +00:00
Bill Currie
c12ac3278e
a little progress on functions
2001-06-21 07:08:34 +00:00
Bill Currie
ae98ed8603
field types are parsed correctly, but parameters have been lost for the
...
moment
2001-06-20 23:32:13 +00:00
Bill Currie
aac91d8cd6
more expression handling. turns out I'm mis-parsing field types, so that's next
2001-06-20 21:18:04 +00:00
Jeff Teunissen
ba17807833
whitespace.
2001-06-20 19:53:37 +00:00
Bill Currie
226b40483d
beginnings of expression and statement processing
2001-06-20 07:02:36 +00:00
Bill Currie
56aafce20c
qfcc.h:
...
rearrange def_t a little and add def_next (leaving next free for other
uses)
pr_def.c:
use def_next instead of next to link /all/ of the named defs
qfcc.c:
ditto
2001-06-20 03:05:50 +00:00
Bill Currie
327e95a3c8
gcc 3.0 fixes
2001-06-20 02:07:20 +00:00
Bill Currie
90a0cdfedf
now seems to get through CustomTF properly, but better def handling is needed
2001-06-19 23:35:09 +00:00
Adam Olsen
67e4fa85bf
add support for \<, \>, and \^ to qfcc. \< bolds all characters (toggles bold really) until \>, and \^ bolds (toggles) the next character.
2001-06-19 23:27:07 +00:00
Bill Currie
20bf698330
fix \x handling for 0-9
2001-06-19 22:26:16 +00:00
Bill Currie
f50ce04ccb
d'oh, forgot to add 10 for a-f and A-F
2001-06-19 22:13:35 +00:00
Bill Currie
af701d74cd
fix infinite loop for \x...
2001-06-19 21:45:57 +00:00
Bill Currie
2647e63810
finally fix the tupe corruption.
2001-06-19 16:01:38 +00:00
Bill Currie
bdc0ba32ca
pr_lex.c:
...
add PR_PrintType (and lotsa debug to PR_FindType)
qc-parse.y:
fix up one bit of type corruption, only to find another :/
2001-06-19 07:28:50 +00:00
Bill Currie
89fecd7cee
slowly getting there with defs processing. still borked
2001-06-18 22:51:49 +00:00
Bill Currie
9f158b148e
now cross builds out-of-the-box
2001-06-16 05:16:02 +00:00
Bill Currie
7254dc0052
rename filelength to FileLength to avoid a name clash in windows
2001-06-16 04:27:22 +00:00
Bill Currie
b595f0122f
got function params scope sort of sorted out
2001-06-15 20:38:57 +00:00
Bill Currie
eeaab95be5
beginnings of expression and def handling.
2001-06-15 19:38:43 +00:00
Bill Currie
373ea8132a
more work on the code generation and make generally usable again by disabling
...
the new stuff
2001-06-15 07:16:18 +00:00
Bill Currie
f9baacd440
beginnings of code generation. hangs :)
2001-06-14 21:49:47 +00:00
Bill Currie
00f1288940
don't delete processed files if --keep is given
2001-06-13 22:56:20 +00:00
Bill Currie
d7ebba6a74
parses CustomTF now, but no code generation
2001-06-13 18:35:41 +00:00
Bill Currie
c89da89b69
almost parses CustomTF ($macro junk next)
2001-06-13 07:16:39 +00:00
Bill Currie
2c26de2c2b
oops
2001-06-12 22:26:52 +00:00
Bill Currie
72b93d0062
more stuff
2001-06-12 22:26:10 +00:00
Bill Currie
d59048d592
pass given params to qfcc
2001-06-12 22:20:45 +00:00
Bill Currie
489ddbc7a7
getting closer. soon timie to start putting real code in there
2001-06-12 21:06:28 +00:00
Bill Currie
7d52f12248
clean up C warnings
2001-06-12 20:24:02 +00:00
Bill Currie
3be018e1f9
beginnings of a bison grammar for qc
2001-06-12 19:44:26 +00:00
Bill Currie
c0654f3541
miss tagged string != string
2001-06-12 15:29:05 +00:00
Bill Currie
aa825853bf
full \ handling in strings (including \e for escape (why C doesn't have that
...
is beyond me))
2001-06-11 23:37:01 +00:00
Bill Currie
73ce5c6f9c
what's this .vimrc? :)
2001-06-11 20:12:29 +00:00
Bill Currie
fcd29459e4
produce line directive output and clean up the generated files
2001-06-11 18:04:32 +00:00
Bill Currie
dfb6062f9d
fix an out-by-one for line directives at the beginning of the file
2001-06-11 17:51:09 +00:00
Bill Currie
c732d098f4
add '# 1 "foo.qcc" ...' (flags ignored) processing to qfcc so preprocessed
...
output can make sense.
2001-06-11 15:43:06 +00:00
Adam Olsen
f094db3977
add support for --with-qf=/usr/local as a prefix for lib and include dirs
2001-06-10 13:07:30 +00:00
Bill Currie
bbc97079e0
pr_comp.h:
...
define PROG_ID_VERSION as 6 and redefine PROG_VERSION as 0x00fff001
(0.fff.001) for the new qc features.
pr_edict.c:
support version 6 and version 0.fff.001 progs
qfcc.h:
add version field to options_t
add min_version field to opcode_t
pr_opcode.c:
set the minumum version of each opcode (gee, that table is getting ugly)
filter out opcodes with too high a min_version when initializing the opcode
hash tables.
qfcc.c:
update help output.
accept --id to limit code generation to id compatable (ver 6) progs.
default progs generation to 0.fff.001
2001-06-09 06:25:33 +00:00
Bill Currie
e61884fefb
add a test for initialized locals
2001-06-08 22:54:34 +00:00
Bill Currie
0186732130
make initialized local variables work /properly/
...
local float urk = 0;
STORE_F 46(IMMEDIATE) 0.0 55(?)
2001-06-08 20:13:10 +00:00
Bill Currie
7ef4c2776e
Immidiate sharing now /works/ (shaved off two pr_globals from CustomTF, too:).
...
Detect assignments to initialized globals and give an error, unless the --cow
(copy on write) option is given, and then allocate a new global for the var,
clear its initialized flag.
Relocate all globals.
2001-06-08 06:32:15 +00:00
Bill Currie
8656eb998a
add ChangeLog
2001-06-08 00:18:53 +00:00
Bill Currie
ef99ad24b0
const merge testing. qfcc is currently borked in that dept.
2001-06-08 00:14:11 +00:00
Bill Currie
bddf7069a2
might as well return the result of the main in the progs
2001-06-06 21:30:58 +00:00
Bill Currie
e349ed3013
implement file io for qwaq (and cat in qc }:> )
2001-06-06 20:05:08 +00:00
Bill Currie
3d566d47e3
more testing
2001-06-06 00:38:24 +00:00
Bill Currie
867260d27d
report the size of the locals pool
2001-06-06 00:34:35 +00:00
Bill Currie
c3cdfce12b
don't bother writing out local defs as they mess up progs dumping now that
...
they overlap
2001-06-06 00:12:10 +00:00
Bill Currie
1e6d69e2be
main.c:
...
allow dumping to work with entities
main.qc:
more tests
2001-06-05 23:53:55 +00:00
Bill Currie
d86ed9a3b9
relocate the locals defs as well as their references
2001-06-05 23:52:34 +00:00
Bill Currie
bbb37d0080
customTF is now down to 4989 pr_globals. all parameters, local veriables and
...
termporary variables sit in one pool of memory (at the end of the globals)
thus drasticly reducing globals requirements. This works because the whole
lot is declared to be in the function's local variable space which is copied
to the locals stack in the progs engine.
2001-06-05 08:09:12 +00:00
Bill Currie
a26f799de4
allocate temps based on size rather than type (get better re-usage this way)
...
put temps onto the local scope.
2001-06-05 05:22:11 +00:00
Bill Currie
17e19f3892
regain about 5000 globals for customTF, but this fixes possible breakage with
...
premature temp var re-usage (ie, it puts the temps back into the locals space).
2001-06-04 22:35:54 +00:00
Bill Currie
55d58f8d46
ignore .vimrc
2001-06-04 18:33:50 +00:00
Bill Currie
42c880ab8a
formatting cleanup
2001-06-04 18:33:32 +00:00
Bill Currie
1b930b73d1
execute qfcc on completion for that one stop shopping experience
2001-06-04 18:20:14 +00:00
Bill Currie
e090f3c9e3
do proper temp def handling so we don'e use any where near as many defs for
...
temporary variables (customTF went from 35941 to 12587 pr_globals).
2001-06-04 17:52:50 +00:00
Bill Currie
53e9fb65d1
prepare PR_Statement for proper temporary usage
2001-06-04 05:45:51 +00:00
Bill Currie
e339e82c01
hash.h is now const correct as is a lot of qfcc
2001-06-04 04:52:14 +00:00
Bill Currie
4aa47d728a
use the correct STORE_ op for function arges, rather than STORE_V. Should
...
speed up progs in general.
2001-06-04 03:57:15 +00:00
Bill Currie
275e74161b
string comparison operators
2001-06-04 03:36:35 +00:00
Bill Currie
7178824ee6
put ADD_S up where it belongs :)
2001-06-04 02:49:59 +00:00
Bill Currie
ddcd172a03
re-write the opcode selection to be a hash table lookup and statment generation
...
to get the opcode from the table record rather than the location within the
table (ewww). gives a nice speed boost /and/ makes the opcode table easier to
maintain.
2001-06-04 02:41:45 +00:00
Bill Currie
09118bc01e
pr_comp.h:
...
add OP_ADD_S. WARNING!!! this /will/ move.
progs.h:
add prototype for PR_PrintStatement
pr_edict.c:
add OP_ADD_S support in the progs checker
pr_exec.c:
implement OP_ADD_S
tools/qfcc/include/.gitignore:
add config.h.in
qfcc.h:
nuke PR_NameImmediate and change PR_ParseImmediate's prototype (see
pr_imm.c)
pr_comp.c:
add ADD_S, adjust for PR_ParseImmediate's prototype, make
PR_ParseExpression work with non-sequential opcodes (slow, will work on
that next). Fix up initialised global parsing.
pr_imm.c:
nuke PR_NameImmediate. didn't work well and wasn't such a good idea anyway.
PR_ParseImmediate now accepts a def_t * arg. if null, will allocate a
new global def, otherwise it will initialize the def passed in.
qwaq/main.c:
sports some debugging code (dumps info about the progs it's running)
qwaq/main.qc:
better ADD_S testing
2001-06-03 17:36:49 +00:00
Jeff Teunissen
b60efa59f4
Bunch of changes. Project has been almost completely rewritten, and now
...
compiles. The rest are just the results of a simple conversion script I
wrote.
2001-06-03 04:52:36 +00:00
Bill Currie
297f7c0567
this shouldn't be here
2001-06-02 05:23:00 +00:00
Bill Currie
25b02984b8
fix nested else statements
2001-06-02 03:37:06 +00:00
Bill Currie
02003cf229
build the progs automaticly
2001-06-01 22:05:36 +00:00
Bill Currie
6c0791e4f4
d'oh
2001-06-01 22:00:35 +00:00
Bill Currie
e3e4915c03
s/qctest/qwaq/ and update .gitignore
2001-06-01 21:59:46 +00:00
Bill Currie
8a23ae0a48
stand alone qc interpreter. So I'm on some serious qwaq :) (actuallly, its
...
main purpose is language extention testing)
2001-06-01 21:57:59 +00:00
Bill Currie
351e70b3bd
replace a missing / when producing files.dat
2001-05-22 18:23:29 +00:00
Jeff Teunissen
ef5fd0ed6d
New Preferences class -- it may not seem like it, but this is a Big
...
Deal. :)
2001-05-08 08:38:34 +00:00
Bill Currie
461ce64685
white space
2001-05-07 21:10:45 +00:00
Bill Currie
1205401b38
Finally, a preqcc with source :) Seems to work ok, but it's far from
...
complete. It does, however, build customTF without any appearent problems.
2001-05-07 20:53:50 +00:00
Jeff Teunissen
e943e13eb2
Autoconf support for Forge. It's incomplete, but it's mostly working.
2001-05-07 09:44:17 +00:00
Jeff Teunissen
a45dd9b289
Forge: Map and PopScrollView build now.
2001-05-07 09:43:25 +00:00
Bill Currie
fa3851b11f
ignore the results of building mingw in here
2001-04-11 03:39:32 +00:00
Bill Currie
659eb45e96
tools to help with cross copiling QF under mingw in linux
2001-04-10 23:31:50 +00:00
Bill Currie
2f2ba28bb7
pr_lex.c:
...
rewrite PR_LexPunctuation to avoid looping. 6x speedup for that function
according to gprof on customTF
configure.in:
--enable-profile
2001-04-03 16:50:31 +00:00
Bill Currie
f896506835
heh, seem to have forgotten this
2001-04-02 21:30:16 +00:00
Bill Currie
b7aba0b643
allow named constants to be checked for immediate constants. qfcc now produces
...
the same number of globals etc as it used to
2001-04-02 18:43:10 +00:00
Bill Currie
f517dc6ce6
fix a silly bug and an incorrect interpretation of the old code
2001-04-02 18:10:43 +00:00
Bill Currie
02b09f4e5c
no more redundant strings. costs ~7ms, though, but HALVING the strofs size
...
in frikbot seems worth it.
2001-04-01 06:40:51 +00:00
Bill Currie
59e55834ed
Another massive speadup caused by using hash tables to lookup already
...
generated immediate values. frikbot now compiles in just over 1s on my
machine.
2001-04-01 06:01:02 +00:00
Bill Currie
43ea8f4fc0
Rip out I_FloatTime from cmdlib.
...
Use Sys_DoubleTime instead of I_FloatTime and print out ms for compilation
2001-04-01 03:33:11 +00:00
Bill Currie
ec16ffaa65
move to using hash tables for variable lookups.
...
WARNING: this fixes a scope bug in qcc and thus you WILL get different (but
now correct) code for the following:
float foo;
void () bar =
{
local float foo;
foo = 0;
}
ie, the local foo will, as is correct, now be a separate var to the global
foo.
2001-04-01 02:12:57 +00:00
Bill Currie
f5ae853de8
don't need to worry about zlib any more because that's now taken care of by
...
libQFutil
2001-03-31 03:54:00 +00:00
Bill Currie
d5345b7db9
add .vimrc
2001-03-31 01:04:38 +00:00
Bill Currie
1d9791553f
make qfcc use detect and use the installed libs/headers. currently doesn't work
...
due to modularity problems in libQFutil
2001-03-29 21:26:56 +00:00
Bill Currie
a23c5e82e0
correct the qf libs path
2001-03-28 23:42:36 +00:00
Bill Currie
8866d86fba
rip out the crc code in favour of libqfutil
2001-03-28 23:40:54 +00:00
Bill Currie
cb5c262ffc
qtypes.h:
...
remove includes of qdefs.h and compat.h
pr_comp.h:
merge pr_comp.h from quake and qfcc, removing the copy in qfcc
cmdlib.[ch]:
nuke the endian code.
qendian.c:
initialise the LittleLong etc pointers at compile time rather than run
time
com.c (both nq and qw):
nuke the LittleLong etc init code
everything else:
fix up after the qtypes.h cleanup
2001-03-28 17:17:56 +00:00
Bill Currie
cea45d19d4
bah, another premature commit
2001-03-27 21:47:44 +00:00
Bill Currie
82b533e1ef
forgot that .S files don't have dependency info :/
2001-03-27 21:46:49 +00:00
Bill Currie
c958372f51
enable use of qf libs independent of where they are in relation to the qfcc
...
source. nothing is actually used yet, but it will be :)
2001-03-27 21:13:18 +00:00
Bill Currie
a3c9af646b
back out my premature commit
2001-03-27 20:37:12 +00:00
Bill Currie
f78b973978
move the api headers into include/QF and clean up (most of) the resulting mess.
...
target specific files that I don't build won't compile yet. just put QF/
infront of the offending headers.
Also move ver_check into libqfutils
2001-03-27 20:33:07 +00:00
Bill Currie
5e993575a4
put a comment in the right place
2001-03-27 00:52:52 +00:00
Bill Currie
c34868c117
attack cmdlib with a chainsaw. All unused functions are gone.
2001-03-26 21:02:18 +00:00
Bill Currie
19b146748a
add .vimrc
2001-03-26 16:36:44 +00:00
Bill Currie
135e533e77
raise some limits so customtf will build. this is NOT the right solution :(
2001-03-26 05:33:02 +00:00
Jeff Teunissen
ed2f2ce2ca
Forge: InspectorControl and KeypairView compile with no warnings now.
2001-03-16 19:19:24 +00:00
Bill Currie
6247233e0e
when checking a token, they type of the token must be taken into account.
2001-03-14 04:14:09 +00:00
Bill Currie
32d14bac22
ignore generated files
2001-03-12 21:16:26 +00:00
Bill Currie
21fa23a747
the crc field in progs.dat is evily generated from the crc of progsdef.h, so
...
change the header to produce a matching crc. This is an interrim fix until a
better solution can be found.
2001-03-12 20:04:22 +00:00
Jeff Teunissen
ade87c72b3
Woo, one more file builds cleanly...very few actual changes needed.
2001-03-02 09:36:51 +00:00
Jeff Teunissen
14772123d3
Forge.m now builds cleanly. It probably doesn't work, I had to comment out
...
a lot of PostScript-related code.
2001-03-02 09:13:35 +00:00
Jeff Teunissen
1bd5d98c4d
Compile fixes, we're getting a bit closer.
2001-03-02 07:01:51 +00:00
Jeff Teunissen
25f8a50ef4
Okay, that was stupid. ProjectCenter isn't good enough yet, so I'm back to
...
writing makefiles by hand.
Add a makefile preamble to set up our flags.
Compartmentalize all the headers into a Headers/ dir.
2001-02-27 21:18:27 +00:00
Jeff Teunissen
e21ff3503e
Update cmdlib.c to be in sync with qfcc
2001-02-27 20:44:53 +00:00
Jeff Teunissen
01f4df0ad4
Continuing work: Forge.* builds a little further.
2001-02-27 19:48:21 +00:00
Jeff Teunissen
5996198345
NSPoints are not passed by reference.
2001-02-27 19:28:22 +00:00
Jeff Teunissen
acb42de4d5
whitespace.
2001-02-27 19:27:03 +00:00
Jeff Teunissen
2dd03876af
QFCC -- the QuakeForge Code Compiler -- an autoconfiscated qcc.
...
It sucks, but it works, and will form the basis for something that Does
Not Suck.
2001-02-24 06:58:54 +00:00
Ragnvald Maartmann-Moe IV
c6da49206e
More typos, spelling corrections, and case fixes fed to the nearest handy fiend.
2001-02-22 00:15:03 +00:00
Bill Currie
8ad4a755a2
more fix up work. Nothing totally right, yet, but getting closer.
2001-02-12 09:20:26 +00:00
Jeff Teunissen
091e4f77b1
Clean up the Forge source tree. Also, I'm starting to use ProjectCenter to
...
manage the makefile.
2001-02-10 20:07:39 +00:00
Bill Currie
c1e3e1e9e7
Map now compiles (but probably doesn't work: lots of warnings)
2001-02-09 06:50:40 +00:00
Bill Currie
27ed336d44
EntityArray now compiles
2001-02-09 06:08:53 +00:00
Jeff Teunissen
317d3bddb8
New program (incomplete, and horridly broken): Forge.app. It's going to be
...
a GNUstep port of the original Quake editor for NeXTstep, QuakeEd.app.
2001-02-09 01:52:44 +00:00
Bill Currie
bcd28f5e77
and some more
2001-01-18 00:59:42 +00:00
Bill Currie
4e54c4c5ac
a little progress
2001-01-17 22:47:08 +00:00
Bill Currie
e728066e40
forgot this :)
2001-01-11 00:56:48 +00:00
Bill Currie
381eb80872
beginnings of the new pak util
2001-01-11 00:56:31 +00:00
Bill Currie
330a818329
fix usage
2001-01-09 23:51:55 +00:00
Bill Currie
76867b931f
add a comment
2001-01-09 22:49:14 +00:00
Bill Currie
ad0eee5dfe
bring in the tools from newtree and nuq. the two pythong files are from nuq
...
and the rest from newtree
2001-01-09 05:58:40 +00:00