Commit graph

971 commits

Author SHA1 Message Date
Bill Currie
01a9372add fix the corrupted locals problem (df->locals was getting set too early) 2001-06-28 02:58:45 +00:00
Bill Currie
daf5fc96ea reset temps after emitting a function. it helps :) (fixes the wierd entity
errors)
2001-06-27 23:36:03 +00:00
Bill Currie
dfdff6cc59 more testing and add traceon/traceoff to the builtins 2001-06-27 22:56:52 +00:00
Bill Currie
59ff35558f create empty defs for vertex and quaternion compontents 2001-06-27 22:24:28 +00:00
Bill Currie
768c4a49d3 fix . type checking 2001-06-27 21:43:10 +00:00
Bill Currie
b285ab003d more tests 2001-06-27 21:15:15 +00:00
Bill Currie
774a1fe6cd fix // comments at end of file (ie, no trailing \n) 2001-06-27 20:47:41 +00:00
Bill Currie
9c30c0c455 make simple assignments (a = b;) generate code 2001-06-27 20:32:27 +00:00
Bill Currie
1eef491c1c handle -ve constants 2001-06-27 19:40:43 +00:00
Bill Currie
1fd4590212 report file as well 2001-06-27 18:15:24 +00:00
Bill Currie
66a524d7bf correct the prototype for QFGL_ProcAddress 2001-06-27 17:55:41 +00:00
Bill Currie
febb139a41 free temp defs at the end of each expr block. CustomTF has gone from 64 to 25
locals.
2001-06-27 17:11:21 +00:00
Bill Currie
9d2bf8df19 better function argument code generation 2001-06-27 16:43:56 +00:00
Jeff Teunissen
76e28aeaaa Portability fixes. plugin.c will, in all likelihood, work on Windows now. 2001-06-27 08:34:48 +00:00
Jeff Teunissen
06227cf37d Portability fixes, also use the new ProcAddress setup. 2001-06-27 07:52:00 +00:00
Jeff Teunissen
aa7389e8b1 *** empty log message *** 2001-06-27 07:40:10 +00:00
Bill Currie
1c54a3ddb7 why not? 2001-06-27 05:48:25 +00:00
Bill Currie
a35c049744 main.c:
give instruction address in opcode dump
main.qc:
	more test code
2001-06-27 05:46:53 +00:00
Bill Currie
504d03a21a expr.c:
fix a silly stanfu with goto
qc-parse.y:
	suffle the debug code
2001-06-27 05:45:20 +00:00
Bill Currie
18ba72b544 shh!! :) 2001-06-27 04:18:39 +00:00
Bill Currie
673e6e66b7 turns out qcc wasn't so stupid about = vs ||/&& precedence after all (just
my interpretation of the code was:/) why oh why didn't John use bison or yacc
in the first place? :/
2001-06-27 00:10:34 +00:00
Bill Currie
ff42e81127 remove some debug info 2001-06-26 23:51:15 +00:00
Bill Currie
c629de9b3b function calls work now 2001-06-26 23:42:11 +00:00
Bill Currie
50ae388caa initialisations now seem to work, including cows (mooOOoo:) 2001-06-26 22:43:28 +00:00
Bill Currie
c32bcb7262 immediates now seem to work 2001-06-26 22:07:09 +00:00
Bill Currie
ce2f26f0b9 lables are working, but immediates and function return values are borked 2001-06-26 21:32:22 +00:00
Bill Currie
5785b93107 implement branches and top level call 2001-06-26 20:06:56 +00:00
Bill Currie
19a7285f6c implement state 2001-06-26 19:54:50 +00:00
Bill Currie
aee129ca7d assignments now seem to work in that they no longer seg qfcc 2001-06-26 19:48:03 +00:00
Bill Currie
63ad87db68 return defs of the correct type 2001-06-26 17:34:21 +00:00
Bill Currie
69f869087b oops 2001-06-26 16:24:11 +00:00
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
3268fcbe02 add quaternion type (not yet supported in the code). Forgot to commit this
last night.
2001-06-26 14:14:47 +00:00
Adam Olsen
72d16d7713 remove extra space from "CD Audio system: " line. 2001-06-26 11:37:57 +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
Jeff Teunissen
d485ca1fb1 Still broken, but apparently it works for Mercury. 2001-06-26 02:59:37 +00:00
Bill Currie
749d460041 duplicate code cleanup 2001-06-26 02:46:02 +00:00
Zephaniah E. Hull
908d265212 Clean up and repair of the run time linking, does NOT work until deek
commits his gl_funcs.c.
2001-06-26 02:26:46 +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
Bill Currie
3dbc913903 this is C, not C++ ;) 2001-06-25 15:42:05 +00:00
Jeff Teunissen
5e1de4c8a7 Clean up gl_funcs.c, it's actually readable now. Unfortunately, it sig11s
for me. This may be due to the NVIDIA libGL problem (which they claim is a
bug in libc), but it could very well be that Mercury was right and we
can't have the same names internally as the libGL names. Even so, this
code will probably work on Windows.
2001-06-25 09:32:08 +00:00