]> git.xonotic.org Git - xonotic/gmqcc.git/log
xonotic/gmqcc.git
11 years agoRevert "ast_usecount macro for convenience"
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 14:20:36 +0000 (16:20 +0200)]
Revert "ast_usecount macro for convenience"

This reverts commit e86c8ff0eb55b40c5a30accd5915be3a9b08e784.

11 years agoRevert "delete ast_members from parser->locals when they were unused"
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 14:20:23 +0000 (16:20 +0200)]
Revert "delete ast_members from parser->locals when they were unused"

This reverts commit cdeffb6de9b92b7c498380d802d3250ef9ba73aa.

11 years agodelete ast_members from parser->locals when they were unused
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 14:20:17 +0000 (16:20 +0200)]
delete ast_members from parser->locals when they were unused

11 years agoast_usecount macro for convenience
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 14:18:51 +0000 (16:18 +0200)]
ast_usecount macro for convenience

11 years agolet ast_node have a use-counter, helpful for the parser to delete unused fields which...
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 14:16:43 +0000 (16:16 +0200)]
let ast_node have a use-counter, helpful for the parser to delete unused fields which otherwise get lost in the void

11 years agoclear lex->modelname
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 14:04:20 +0000 (16:04 +0200)]
clear lex->modelname

11 years agoclear all the remaining vectors in the parser
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 13:59:29 +0000 (15:59 +0200)]
clear all the remaining vectors in the parser

11 years agoclear items_data in main
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 13:58:20 +0000 (15:58 +0200)]
clear items_data in main

11 years agoclean lex->frames in lex_close
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 13:57:21 +0000 (15:57 +0200)]
clean lex->frames in lex_close

11 years agofree parser->fields and parser->locals at parser_cleanup
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 13:55:50 +0000 (15:55 +0200)]
free parser->fields and parser->locals at parser_cleanup

11 years agofix a MEM_VECTOR_CLEAR to be done AFTER clearing the contents...
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 13:53:35 +0000 (15:53 +0200)]
fix a MEM_VECTOR_CLEAR to be done AFTER clearing the contents...

11 years agoDelete fields in parser_cleanup
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 13:51:53 +0000 (15:51 +0200)]
Delete fields in parser_cleanup

11 years agothe opening paren is now an operator - to fix up the precedence rules, now 'anentity...
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 13:25:45 +0000 (15:25 +0200)]
the opening paren is now an operator - to fix up the precedence rules, now 'anentity.afunction()' compiles

11 years agoadd 'local' keyword in fields.qc, it's for qcc standard anyway
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 12:56:15 +0000 (14:56 +0200)]
add 'local' keyword in fields.qc, it's for qcc standard anyway

11 years agoget rid of additional trailing \n on parseerror
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 12:55:37 +0000 (14:55 +0200)]
get rid of additional trailing \n on parseerror

11 years agoWARN_ERROR -> opts_werror in parser.c
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 12:51:12 +0000 (14:51 +0200)]
WARN_ERROR -> opts_werror in parser.c

11 years agofields: testing function-fields
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 12:50:30 +0000 (14:50 +0200)]
fields: testing function-fields

11 years agoreplacing WARN_ERROR with opts_werror
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 12:36:33 +0000 (14:36 +0200)]
replacing WARN_ERROR with opts_werror

11 years agoFix indentation of lexer.c - was still using some tabs there
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 12:27:19 +0000 (14:27 +0200)]
Fix indentation of lexer.c - was still using some tabs there

11 years agolexer now turns '(' into an operator if noops=false
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 12:26:25 +0000 (14:26 +0200)]
lexer now turns '(' into an operator if noops=false

11 years agodebug warn def on top of the flag list
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 12:23:38 +0000 (14:23 +0200)]
debug warn def on top of the flag list

11 years agoadd the type of whatever is 'not a function' to that error message
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 10:45:51 +0000 (12:45 +0200)]
add the type of whatever is 'not a function' to that error message

11 years agoAdd an error output in the ast where I missed one (there are probably more places...
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 10:45:29 +0000 (12:45 +0200)]
Add an error output in the ast where I missed one (there are probably more places which need one)

11 years agoadd LOAD for TYPE_FUNCTION as LOAD_FNC so we can actually access function fields
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 10:44:17 +0000 (12:44 +0200)]
add LOAD for TYPE_FUNCTION as LOAD_FNC so we can actually access function fields

11 years agoparser_strdup to wrap util_strdup and actually dup empty strings
Wolfgang (Blub) Bumiller [Sat, 18 Aug 2012 10:26:21 +0000 (12:26 +0200)]
parser_strdup to wrap util_strdup and actually dup empty strings

11 years agoSupport for $modelname and $framerestore
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 19:02:56 +0000 (21:02 +0200)]
Support for $modelname and $framerestore

11 years agoDon't expand frame macros when they don't have a $ prefix
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 18:49:58 +0000 (20:49 +0200)]
Don't expand frame macros when they don't have a $ prefix

11 years agoAdded support for some modelgen/spritegen commands
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 18:47:31 +0000 (20:47 +0200)]
Added support for some modelgen/spritegen commands

11 years ago'$' is now its own token, used for modeldata
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 18:03:53 +0000 (20:03 +0200)]
'$' is now its own token, used for modeldata

11 years agodata/fields.qc now tests fieldpointer parameters - requires -std=qcc to build
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 14:39:43 +0000 (16:39 +0200)]
data/fields.qc now tests fieldpointer parameters - requires -std=qcc to build

11 years agoCALL instructions need to offset the st++ too
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 14:38:57 +0000 (16:38 +0200)]
CALL instructions need to offset the st++ too

11 years agoFix a possible endless loop in ir_values_overlap
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 14:38:36 +0000 (16:38 +0200)]
Fix a possible endless loop in ir_values_overlap

11 years agoentityfield tests
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 14:29:41 +0000 (16:29 +0200)]
entityfield tests

11 years agoprog_leavefunction needs to take the ++st into account - otherwise INSTR_RETURN ends...
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 14:28:59 +0000 (16:28 +0200)]
prog_leavefunction needs to take the ++st into account - otherwise INSTR_RETURN ends up skipping the instruction after the calling INSTR_CALL

11 years agoNOT for entity, function and string - we're not constant-folding it for functions...
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 14:24:47 +0000 (16:24 +0200)]
NOT for entity, function and string - we're not constant-folding it for functions and entities right now

11 years agounary NOT operator for float and vector
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 14:21:19 +0000 (16:21 +0200)]
unary NOT operator for float and vector

11 years agoeven in non-qcc mode we need to search the variables for fields because of field...
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 14:21:09 +0000 (16:21 +0200)]
even in non-qcc mode we need to search the variables for fields because of field-pointers

11 years agoverbose error about unhandled operators
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 14:07:00 +0000 (16:07 +0200)]
verbose error about unhandled operators

11 years agolexer: recognize != as operator when noops=false
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 14:06:12 +0000 (16:06 +0200)]
lexer: recognize != as operator when noops=false

11 years agoFix an error message
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 13:59:09 +0000 (15:59 +0200)]
Fix an error message

11 years agoprint a proper error message when a function lacks a body
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 13:31:46 +0000 (15:31 +0200)]
print a proper error message when a function lacks a body

11 years agoAllow fieldpointer parameters in functions, allow function fields again
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 13:27:06 +0000 (15:27 +0200)]
Allow fieldpointer parameters in functions, allow function fields again

11 years agoactivate -Wfield-redeclared by default
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 13:15:46 +0000 (15:15 +0200)]
activate -Wfield-redeclared by default

11 years agoallow redeclaration of fields, but warn about them
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 13:14:39 +0000 (15:14 +0200)]
allow redeclaration of fields, but warn about them

11 years agoReorganizing expression parsing to allow prefix-operators like unary minus
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 13:11:03 +0000 (15:11 +0200)]
Reorganizing expression parsing to allow prefix-operators like unary minus

11 years agoOP_PREFIX flag for ~ and !
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 12:24:12 +0000 (14:24 +0200)]
OP_PREFIX flag for ~ and !

11 years agounary - operator implemented, adding imm_vector_zero and imm_float_zero since those...
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 12:23:18 +0000 (14:23 +0200)]
unary - operator implemented, adding imm_vector_zero and imm_float_zero since those should be accessible quickly

11 years ago-_- file->filename
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 12:05:04 +0000 (14:05 +0200)]
-_- file->filename

11 years agoutil_fopen...
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 12:01:47 +0000 (14:01 +0200)]
util_fopen...

11 years agofopen -> fopen_s on windows
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 11:45:45 +0000 (13:45 +0200)]
fopen -> fopen_s on windows

11 years agosscanf -> sscanf_s on windows
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 11:44:53 +0000 (13:44 +0200)]
sscanf -> sscanf_s on windows

11 years agostrcpy->memcpy in util_getline
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 11:01:30 +0000 (13:01 +0200)]
strcpy->memcpy in util_getline

11 years agomake the 'vector' type use qcfloat instead of float
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 10:58:54 +0000 (12:58 +0200)]
make the 'vector' type use qcfloat instead of float

11 years agoit's not undefined, stupid
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 10:58:26 +0000 (12:58 +0200)]
it's not undefined, stupid

11 years agocast mem_a returns in util_getline
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 10:38:00 +0000 (12:38 +0200)]
cast mem_a returns in util_getline

11 years agoadd some missing casts to some mem_a
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 10:34:28 +0000 (12:34 +0200)]
add some missing casts to some mem_a

11 years agoShutup visual studio...
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 10:32:01 +0000 (12:32 +0200)]
Shutup visual studio...

11 years agoReplacing execloop.h ... wish I could just use a copy of DP's execloop, I hate licenses
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 10:10:24 +0000 (12:10 +0200)]
Replacing execloop.h ... wish I could just use a copy of DP's execloop, I hate licenses

11 years agoinclude stdio.h in exec.c for snprintf...
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 09:36:28 +0000 (11:36 +0200)]
include stdio.h in exec.c for snprintf...

11 years agodon't try to access function-local functions outside of functions...
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 09:36:16 +0000 (11:36 +0200)]
don't try to access function-local functions outside of functions...

11 years agotest for constants
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 09:34:11 +0000 (11:34 +0200)]
test for constants

11 years agoassigning values to constant globals
Wolfgang (Blub) Bumiller [Thu, 16 Aug 2012 09:33:29 +0000 (11:33 +0200)]
assigning values to constant globals

11 years agoir.c: strcmp->memcpy
Wolfgang (Blub) Bumiller [Wed, 15 Aug 2012 15:02:48 +0000 (17:02 +0200)]
ir.c: strcmp->memcpy

11 years agostrpcy->memcpy
Wolfgang (Blub) Bumiller [Wed, 15 Aug 2012 15:01:16 +0000 (17:01 +0200)]
strpcy->memcpy

11 years agoparser_finish needs to be called in progs.src mode as well
Wolfgang (Blub) Bumiller [Wed, 15 Aug 2012 15:01:09 +0000 (17:01 +0200)]
parser_finish needs to be called in progs.src mode as well

11 years agoremove MEM_VECTOR_INIT - the memset does it all, don't give a false sense of initiali...
Wolfgang (Blub) Bumiller [Wed, 15 Aug 2012 10:13:15 +0000 (12:13 +0200)]
remove MEM_VECTOR_INIT - the memset does it all, don't give a false sense of initialization since it wasn't complete anyway

11 years agoMerge branch 'master' of git://github.com/graphitemaster/gmqcc
Wolfgang (Blub) Bumiller [Wed, 15 Aug 2012 10:11:45 +0000 (12:11 +0200)]
Merge branch 'master' of git://github.com/graphitemaster/gmqcc

11 years agoFix memset on the parser...
Wolfgang (Blub) Bumiller [Wed, 15 Aug 2012 10:11:15 +0000 (12:11 +0200)]
Fix memset on the parser...

11 years agogmqcc now builds on visual studio
Dale Weiler [Tue, 14 Aug 2012 23:06:53 +0000 (19:06 -0400)]
gmqcc now builds on visual studio

11 years agoAdding another test qc file, for constant folding
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 21:53:55 +0000 (23:53 +0200)]
Adding another test qc file, for constant folding

11 years agobit-and const-fold should use bitand not bitor
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 21:52:57 +0000 (23:52 +0200)]
bit-and const-fold should use bitand not bitor

11 years agoconstant folding for bit and logic ops, added some macros to shorten the code (by...
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 21:50:49 +0000 (23:50 +0200)]
constant folding for bit and logic ops, added some macros to shorten the code (by a lot)

11 years agoconst folding for division
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 21:43:08 +0000 (23:43 +0200)]
const folding for division

11 years agoconstant folding for +, - and *
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 20:51:05 +0000 (22:51 +0200)]
constant folding for +, - and *

11 years agoget rid of more duplicate code
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 20:34:20 +0000 (22:34 +0200)]
get rid of more duplicate code

11 years agoAllow multiple fields to be declared using comma
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 20:31:08 +0000 (22:31 +0200)]
Allow multiple fields to be declared using comma

11 years agovector fields now get _x, _y and _z too
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 18:00:11 +0000 (20:00 +0200)]
vector fields now get _x, _y and _z too

11 years agoprogs.src mode added
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 17:30:03 +0000 (19:30 +0200)]
progs.src mode added

11 years agocombine 2 ifs to shorten code a little
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 15:48:22 +0000 (17:48 +0200)]
combine 2 ifs to shorten code a little

11 years ago-= operator
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 15:44:14 +0000 (17:44 +0200)]
-= operator

11 years agoerror message replacement
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 15:36:20 +0000 (17:36 +0200)]
error message replacement

11 years agofixing ast_binstore_codegen's lvalue flag setting, now += on entfields works correctly
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 15:35:02 +0000 (17:35 +0200)]
fixing ast_binstore_codegen's lvalue flag setting, now += on entfields works correctly

11 years ago+= operator implemented
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 15:30:55 +0000 (17:30 +0200)]
+= operator implemented

11 years agomake the += operator use binstore actually, currently it was acting like a regular...
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 15:27:52 +0000 (17:27 +0200)]
make the += operator use binstore actually, currently it was acting like a regular plus

11 years agoreplacing lots of error messages
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 15:27:26 +0000 (17:27 +0200)]
replacing lots of error messages

11 years agoshush typo
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 15:17:35 +0000 (17:17 +0200)]
shush typo

11 years agodifferent warning message
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 15:08:00 +0000 (17:08 +0200)]
different warning message

11 years agoanother -Wextensions situation: -std=qcc has no for loops
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 14:59:14 +0000 (16:59 +0200)]
another -Wextensions situation: -std=qcc has no for loops

11 years agoPushing my current testcode
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 14:53:18 +0000 (16:53 +0200)]
Pushing my current testcode

11 years agofix wrong count on IF/IFNOT jumps
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 14:48:20 +0000 (16:48 +0200)]
fix wrong count on IF/IFNOT jumps

11 years agofixup do-while parsing, expect a semicolon afterwards
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 14:42:29 +0000 (16:42 +0200)]
fixup do-while parsing, expect a semicolon afterwards

11 years agodo-while loops
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 14:38:11 +0000 (16:38 +0200)]
do-while loops

11 years agoparsewarning() now gets GMQCC_WARN since parsewarning returns whether or not the...
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 14:26:42 +0000 (16:26 +0200)]
parsewarning() now gets GMQCC_WARN since parsewarning returns whether or not the warning was treated as an error, thus we need to bail if it returns true

11 years agothe 'local' keyword now also introduces the declaration of a local variable
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 14:22:38 +0000 (16:22 +0200)]
the 'local' keyword now also introduces the declaration of a local variable

11 years agoflags and warnings not printed anymore without -dump
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 14:20:39 +0000 (16:20 +0200)]
flags and warnings not printed anymore without -dump

11 years ago-dump option, by default the IR is not dumped anymore
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 14:19:23 +0000 (16:19 +0200)]
-dump option, by default the IR is not dumped anymore

11 years ago-Wextensions for -std=qcc: warn about missing 'local' keyword when declaring a variab...
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 14:17:09 +0000 (16:17 +0200)]
-Wextensions for -std=qcc: warn about missing 'local' keyword when declaring a variable without it

11 years ago-Wextensions on by default
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 14:16:32 +0000 (16:16 +0200)]
-Wextensions on by default

11 years agoeof after parsing the semicolon of a function declaration shouldn't be an error...
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 14:14:26 +0000 (16:14 +0200)]
eof after parsing the semicolon of a function declaration shouldn't be an error...

11 years agoGetting rid of some debug output
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 14:12:12 +0000 (16:12 +0200)]
Getting rid of some debug output