]> git.xonotic.org Git - xonotic/gmqcc.git/log
xonotic/gmqcc.git
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

11 years ago'local' becomes a keyword
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 14:10:17 +0000 (16:10 +0200)]
'local' becomes a keyword

11 years agoallow a semicolon after function bodies - make it mandatory with -std=qcc
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 12:38:02 +0000 (14:38 +0200)]
allow a semicolon after function bodies - make it mandatory with -std=qcc

11 years agoactually print the prototype's file+line, not the current one
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 12:19:44 +0000 (14:19 +0200)]
actually print the prototype's file+line, not the current one

11 years agotype comparison, function prototypes
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 12:14:56 +0000 (14:14 +0200)]
type comparison, function prototypes

11 years agothe error about an already-declared variable should display the place its been previo...
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 11:50:55 +0000 (13:50 +0200)]
the error about an already-declared variable should display the place its been previously declared at

11 years agoremoved redundant error+file+line in parseerror()
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 11:15:55 +0000 (13:15 +0200)]
removed redundant error+file+line in parseerror()

11 years agoremoving all direct 'printfs' from ast and ir, replaced by the error interface
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 11:14:32 +0000 (13:14 +0200)]
removing all direct 'printfs' from ast and ir, replaced by the error interface

11 years agoit's .file, not .name'
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 10:17:34 +0000 (12:17 +0200)]
it's .file, not .name'

11 years agorenamign 'errtype' to 'msgtype' here... makes more sense... plus I had it on the...
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 10:17:08 +0000 (12:17 +0200)]
renamign 'errtype' to 'msgtype' here... makes more sense... plus I had it on the paramlist :P

11 years agooops... removing wrongly placed semicolons
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 10:15:05 +0000 (12:15 +0200)]
oops... removing wrongly placed semicolons

11 years agoerror-print functions which take lex_ctx
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 10:06:28 +0000 (12:06 +0200)]
error-print functions which take lex_ctx

11 years agoAnd a colon for the colored version too ...
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 10:00:09 +0000 (12:00 +0200)]
And a colon for the colored version too ...

11 years agoAdd a colon after the linenumber
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 09:54:48 +0000 (11:54 +0200)]
Add a colon after the linenumber

11 years agodon't add the general 'parse error' message if an error has already been printed
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 09:54:27 +0000 (11:54 +0200)]
don't add the general 'parse error' message if an error has already been printed

11 years agoused the wrong va_list there... why didn't gcc warn about this being uninitialized...
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 09:54:06 +0000 (11:54 +0200)]
used the wrong va_list there... why didn't gcc warn about this being uninitialized...

11 years agoWorking towards a saner error-output system, adding -Werror
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 09:34:07 +0000 (11:34 +0200)]
Working towards a saner error-output system, adding -Werror

11 years agoremove now unused files
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 08:57:09 +0000 (10:57 +0200)]
remove now unused files

11 years agoMerge branch 'master' into blub/parser
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 08:42:34 +0000 (10:42 +0200)]
Merge branch 'master' into blub/parser

11 years agoast_binstore, used for +=, -=, ++, -- etc
Wolfgang (Blub) Bumiller [Tue, 14 Aug 2012 08:40:48 +0000 (10:40 +0200)]
ast_binstore, used for +=, -=, ++, -- etc

11 years agostoring generated values and returning them early if they exist - will error when...
Wolfgang (Blub) Bumiller [Mon, 13 Aug 2012 17:54:53 +0000 (19:54 +0200)]
storing generated values and returning them early if they exist - will error when that doesn't make sense eg when trying to call codegen ast_ifthen more than once

11 years agoinitialize ast_expression_common.outl/outr
Wolfgang (Blub) Bumiller [Mon, 13 Aug 2012 17:40:06 +0000 (19:40 +0200)]
initialize ast_expression_common.outl/outr

11 years agoprototypes for ast_binstore, and storing outl/outr in ast_expression_common, TODO...
Wolfgang (Blub) Bumiller [Mon, 13 Aug 2012 17:39:35 +0000 (19:39 +0200)]
prototypes for ast_binstore, and storing outl/outr in ast_expression_common, TODO: let ast_codegen functions reuse previous results so that binstore can call codegen twice

11 years agowhile, for
Wolfgang (Blub) Bumiller [Mon, 13 Aug 2012 15:10:13 +0000 (17:10 +0200)]
while, for

11 years agofactored out 'if' parsing code into a function, added 'while' parsing, and errors...
Wolfgang (Blub) Bumiller [Mon, 13 Aug 2012 14:45:35 +0000 (16:45 +0200)]
factored out 'if' parsing code into a function, added 'while' parsing, and errors for more unsupported operators

11 years agoEven more operators
Wolfgang (Blub) Bumiller [Mon, 13 Aug 2012 13:33:32 +0000 (15:33 +0200)]
Even more operators

11 years agoMerge branch 'master' into blub/parser
Wolfgang (Blub) Bumiller [Mon, 13 Aug 2012 13:25:40 +0000 (15:25 +0200)]
Merge branch 'master' into blub/parser

11 years agotype_eq_instr[], type_ne_instr[]
Wolfgang (Blub) Bumiller [Mon, 13 Aug 2012 13:25:14 +0000 (15:25 +0200)]
type_eq_instr[], type_ne_instr[]

11 years agoMore operations
Wolfgang (Blub) Bumiller [Mon, 13 Aug 2012 13:24:55 +0000 (15:24 +0200)]
More operations

11 years agonicer error messages, bitand and bitor for floats allowed
Wolfgang (Blub) Bumiller [Mon, 13 Aug 2012 13:13:43 +0000 (15:13 +0200)]
nicer error messages, bitand and bitor for floats allowed

11 years agoCheck types on + and - operations
Wolfgang (Blub) Bumiller [Mon, 13 Aug 2012 13:09:27 +0000 (15:09 +0200)]
Check types on + and - operations

11 years agoadding missing initializer for ir_value's member array
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 19:56:53 +0000 (21:56 +0200)]
adding missing initializer for ir_value's member array

11 years agoafter a closing paren another operator has to be expected again
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 18:21:21 +0000 (20:21 +0200)]
after a closing paren another operator has to be expected again

11 years agosome debug outputs which can be activated via a define, fixing a bug where the shunti...
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 18:13:14 +0000 (20:13 +0200)]
some debug outputs which can be activated via a define, fixing a bug where the shunting yard tries to apply operators when there are none left

11 years agoreturn an error code at exit after compile errors
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 18:12:32 +0000 (20:12 +0200)]
return an error code at exit after compile errors

11 years agoit's a member of entity, not of a field...
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 17:29:18 +0000 (19:29 +0200)]
it's a member of entity, not of a field...

11 years ago-std=gmqcc way to handle fields by 'namespace'
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 17:24:08 +0000 (19:24 +0200)]
-std=gmqcc way to handle fields by 'namespace'

11 years agowithout -std=gmqcc fields are accessible anywhere where globals are
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 17:02:52 +0000 (19:02 +0200)]
without -std=gmqcc fields are accessible anywhere where globals are

11 years agoRecognize a dot as operator when not in 'no-ops' mode in the lexer
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 17:00:44 +0000 (19:00 +0200)]
Recognize a dot as operator when not in 'no-ops' mode in the lexer

11 years agodon't rewind local variables too far
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 16:58:46 +0000 (18:58 +0200)]
don't rewind local variables too far

11 years agoMerge branch 'master' into blub/parser
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 16:45:22 +0000 (18:45 +0200)]
Merge branch 'master' into blub/parser

11 years agoprint error and return NULL when trying to create an invalid member access
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 16:44:58 +0000 (18:44 +0200)]
print error and return NULL when trying to create an invalid member access

11 years agoMerge branch 'master' into blub/parser
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 09:39:52 +0000 (11:39 +0200)]
Merge branch 'master' into blub/parser

11 years agofixed: ast_member needs to allow type_vector instead of type_float as base
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 09:39:43 +0000 (11:39 +0200)]
fixed: ast_member needs to allow type_vector instead of type_float as base

11 years agoMerge branch 'master' into blub/bc3
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 09:36:41 +0000 (11:36 +0200)]
Merge branch 'master' into blub/bc3

11 years agoast_binary now keeps track of types
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 09:36:28 +0000 (11:36 +0200)]
ast_binary now keeps track of types

11 years agoast_istype should add the TYPE_ prefix
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 09:36:15 +0000 (11:36 +0200)]
ast_istype should add the TYPE_ prefix

11 years agofixing the messup of MUL_FV and _VF being swapped - getting rid of additions that...
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 09:34:41 +0000 (11:34 +0200)]
fixing the messup of MUL_FV and _VF being swapped - getting rid of additions that really have no place here (YET) (matrix/quaternion types)

11 years agomerging master
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 09:28:52 +0000 (11:28 +0200)]
merging master

11 years agodefault case for ir_value_dump's type switch
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 09:28:18 +0000 (11:28 +0200)]
default case for ir_value_dump's type switch

11 years agoir_instr_dump to print CALL+paramcountfor calls rather than CALL0 always
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 08:19:33 +0000 (10:19 +0200)]
ir_instr_dump to print CALL+paramcountfor calls rather than CALL0 always

11 years agoTYPE_FUNCTION in ir_value_dump to show '(function)' rather than '(void)'
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 08:15:27 +0000 (10:15 +0200)]
TYPE_FUNCTION in ir_value_dump to show '(function)' rather than '(void)'

11 years agoindentation of ir debug dump functions
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 08:14:22 +0000 (10:14 +0200)]
indentation of ir debug dump functions

11 years agoMerging master to handle vector members, fields, and members of vector fields
Wolfgang (Blub) Bumiller [Sun, 12 Aug 2012 08:08:41 +0000 (10:08 +0200)]
Merging master to handle vector members, fields, and members of vector fields

11 years agoWorking vector-field test
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 20:14:55 +0000 (22:14 +0200)]
Working vector-field test

11 years agoIR generation of vector-fields put the 'main' vector offset at the wrong position...
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 20:14:45 +0000 (22:14 +0200)]
IR generation of vector-fields put the 'main' vector offset at the wrong position - fixed that

11 years agoast_member_new now fixed up for fields, ast_shallow_type added for creation of a...
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 20:14:16 +0000 (22:14 +0200)]
ast_member_new now fixed up for fields, ast_shallow_type added for creation of a type-only ast_expression

11 years agosame +1 offset in LOAD_V as STOREP fixed
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 20:11:08 +0000 (22:11 +0200)]
same +1 offset in LOAD_V as STOREP fixed

11 years agotesting writing to multiple fields, including a vector field
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 19:18:46 +0000 (21:18 +0200)]
testing writing to multiple fields, including a vector field

11 years agoprint builtin now prints all the passed strings, not just the first
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 19:18:15 +0000 (21:18 +0200)]
print builtin now prints all the passed strings, not just the first

11 years agofixing address check INSTR_STOREP_V in execloop - it kept us from writing to a vector...
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 19:17:49 +0000 (21:17 +0200)]
fixing address check INSTR_STOREP_V in execloop - it kept us from writing to a vector when it was the last declared entityfield

11 years agoir_block_create_store/p will now honor -fadjust-vector-fields by using STORE_V/STOREP...
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 17:38:02 +0000 (19:38 +0200)]
ir_block_create_store/p will now honor -fadjust-vector-fields by using STORE_V/STOREP_V instead of _FLD on vector-fields

11 years ago-fadjust-vector-fields
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 17:35:08 +0000 (19:35 +0200)]
-fadjust-vector-fields

11 years agoalso generate _y and _z data for fieldpointers
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 17:34:58 +0000 (19:34 +0200)]
also generate _y and _z data for fieldpointers

11 years agoto support .vector's _y and _z we need to add the global-data pointing to _y and...
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 17:08:23 +0000 (19:08 +0200)]
to support .vector's _y and _z we need to add the global-data pointing to _y and _z...

11 years agotestcase for print(ftos(pawn.mema)) slightly changed, now not using a temporary location
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 16:09:45 +0000 (18:09 +0200)]
testcase for print(ftos(pawn.mema)) slightly changed, now not using a temporary location

11 years agoSTOREP also has the destination in OPB rather than OPC
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 16:06:10 +0000 (18:06 +0200)]
STOREP also has the destination in OPB rather than OPC

11 years agoGenerating fields using ir_builder_create_field
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 16:05:56 +0000 (18:05 +0200)]
Generating fields using ir_builder_create_field

11 years agogenerate address of store_return values created with ir_value_out properly
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 15:53:41 +0000 (17:53 +0200)]
generate address of store_return values created with ir_value_out properly

11 years agoNeed to keep prog->entities up to date when spawning entities
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 15:35:55 +0000 (17:35 +0200)]
Need to keep prog->entities up to date when spawning entities

11 years agoexperimental support for spawn() in the executor
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 15:31:08 +0000 (17:31 +0200)]
experimental support for spawn() in the executor

11 years agouse the correct STORE instruction, make pawn a local
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 14:39:04 +0000 (16:39 +0200)]
use the correct STORE instruction, make pawn a local

11 years agoir_block_create_store_op checks whether or not the storetype is an SSA value - do...
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 14:38:17 +0000 (16:38 +0200)]
ir_block_create_store_op checks whether or not the storetype is an SSA value - do not do that for storeP instructions

11 years agoast macros to use the return value of a call, trying to spawn an entity, setting...
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 14:28:07 +0000 (16:28 +0200)]
ast macros to use the return value of a call, trying to spawn an entity, setting a member, and reading the member back, using print+ftos to print it then

11 years agoast macros to create a field, generating fields in ast-test
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 14:10:33 +0000 (16:10 +0200)]
ast macros to create a field, generating fields in ast-test

11 years ago-std=gmqcc should add a dot prefix to the globals for fields, the field itself doesn...
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 14:08:38 +0000 (16:08 +0200)]
-std=gmqcc should add a dot prefix to the globals for fields, the field itself doesn't use the dot prefix for its name though

11 years agoremoving an unused variable
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 13:41:37 +0000 (15:41 +0200)]
removing an unused variable

11 years agoir_value_set_field
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 13:41:10 +0000 (15:41 +0200)]
ir_value_set_field

11 years agotempcomitting parser changes for fields
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 13:40:03 +0000 (15:40 +0200)]
tempcomitting parser changes for fields

11 years agorecognize a dot as a single char token
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 12:45:49 +0000 (14:45 +0200)]
recognize a dot as a single char token

11 years agoMerge branch 'master' into blub/bc3
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 09:46:59 +0000 (11:46 +0200)]
Merge branch 'master' into blub/bc3

11 years agounnamed globals in the trace output use [@addr] now instead of [#addr] since # is...
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 09:46:44 +0000 (11:46 +0200)]
unnamed globals in the trace output use [@addr] now instead of [#addr] since # is used as a prefix for all immediates, so now it's less confusing

11 years agodon't set globaladdr directly, use a setter, the setter will update the member values...
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 09:45:26 +0000 (11:45 +0200)]
don't set globaladdr directly, use a setter, the setter will update the member values used for vector access too

11 years agoMerge branch 'master' into blub/bc3
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 09:32:12 +0000 (11:32 +0200)]
Merge branch 'master' into blub/bc3

11 years agonicer trace output, strings now get escaped
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 09:31:50 +0000 (11:31 +0200)]
nicer trace output, strings now get escaped

11 years agohandling if/else, shunting yard now leaves unmatched closing paren-tokens on the...
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 09:17:46 +0000 (11:17 +0200)]
handling if/else, shunting yard now leaves unmatched closing paren-tokens on the parser for this purpose

11 years agoHandling blocks and inner blocks
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 08:35:10 +0000 (10:35 +0200)]
Handling blocks and inner blocks

11 years agolet's be less insane with function naming and prepare parsing for control structures
Wolfgang (Blub) Bumiller [Sat, 11 Aug 2012 08:30:54 +0000 (10:30 +0200)]
let's be less insane with function naming and prepare parsing for control structures

11 years agocreating vector's _xyz globals now, accessing them
Wolfgang (Blub) Bumiller [Fri, 10 Aug 2012 20:59:47 +0000 (22:59 +0200)]
creating vector's _xyz globals now, accessing them

11 years agoMerge branch 'master' into blub/bc3
Wolfgang (Blub) Bumiller [Fri, 10 Aug 2012 18:48:42 +0000 (20:48 +0200)]
Merge branch 'master' into blub/bc3

11 years agoExperimental ast_member to access vector members
Wolfgang (Blub) Bumiller [Wed, 8 Aug 2012 12:49:37 +0000 (14:49 +0200)]
Experimental ast_member to access vector members

11 years agoMerge branch 'master' into blub/bc3
Wolfgang (Blub) Bumiller [Wed, 8 Aug 2012 10:43:26 +0000 (12:43 +0200)]
Merge branch 'master' into blub/bc3