Commit graph

163 commits

Author SHA1 Message Date
Wolfgang (Blub) Bumiller
20448b93dc Corrected parsing of declarations of multiple variables 2012-08-20 17:59:19 +02:00
Wolfgang (Blub) Bumiller
f0f9680774 add the backticks for a warning 2012-08-19 20:41:31 +02:00
Wolfgang (Blub) Bumiller
af3d9e0bdf ir_value_set_string needs to use a strdup which doesn't return NULL for an emptystring 2012-08-19 20:35:51 +02:00
Wolfgang (Blub) Bumiller
c12e60a510 take 'warnreturn' into account, don't ignore the parsewarnin's Werror status 2012-08-19 20:32:07 +02:00
Wolfgang (Blub) Bumiller
7ef248aadb set -Wmissing-return-values to on by default, new warning: control reaches end of non-void... 2012-08-19 20:26:54 +02:00
Wolfgang (Blub) Bumiller
66ec592f94 parse_block gets a warn-return bool flag 2012-08-19 20:20:39 +02:00
Wolfgang (Blub) Bumiller
adda894976 have function declarations of functions with prototypes take over the actual declaration's body's context data 2012-08-19 19:39:58 +02:00
Wolfgang (Blub) Bumiller
481baeeedc relax parse_close_paren to allow values in parenthesis with no operators... duh 2012-08-19 19:35:45 +02:00
Wolfgang (Blub) Bumiller
a93ed6ae80 fix: use thinkfunc not nextthink, nextthink is set later 2012-08-19 19:25:37 +02:00
Wolfgang (Blub) Bumiller
bd64d7d7b4 Automatic prototyping of frame-functions 2012-08-19 19:24:43 +02:00
Wolfgang (Blub) Bumiller
dae13e87de First draft of handling the [frame,think] notation 2012-08-19 16:13:29 +02:00
Wolfgang (Blub) Bumiller
92d40e0925 Factoring out duplicate code into a function: create_vector_members; creating vector members for vector function parameters 2012-08-19 14:34:23 +02:00
Wolfgang (Blub) Bumiller
78d04a8352 implement correct behaviour for shadows locals 2012-08-18 21:56:42 +02:00
Wolfgang (Blub) Bumiller
ee3aaa58b3 -Wlocal-shadows - note that -std=gmqcc is very different from the rest 2012-08-18 21:54:19 +02:00
Wolfgang (Blub) Bumiller
deccf4e708 splitting parser_find_local up into find_local and find_param - find_local also takes a bool-ptr to tell the caller if it was a local or a global 2012-08-18 21:42:52 +02:00
Wolfgang (Blub) Bumiller
28891c5a37 quotes around the variable name in some messages 2012-08-18 21:35:47 +02:00
Wolfgang (Blub) Bumiller
cd820c831f remove trailing \n from 2 error messages 2012-08-18 21:32:29 +02:00
Wolfgang (Blub) Bumiller
83a758e446 set olddecl so we don't access a NULL value when a variable already exists 2012-08-18 21:31:53 +02:00
Wolfgang (Blub) Bumiller
fc1622140b oops - parsewarning returns true on -Werror, so we gotta invert here 2012-08-18 21:07:23 +02:00
Wolfgang (Blub) Bumiller
4d0be789ac -Wtoo-few-parameters on by deafult - for -std=gmqcc it's always an error 2012-08-18 21:04:16 +02:00
Wolfgang (Blub) Bumiller
6223d78ee3 -Wmissing-return-values, off by default, ignored with -std=gmqcc because in that standard it'll error 2012-08-18 20:19:43 +02:00
Wolfgang (Blub) Bumiller
588cd5018f data/vars.qc - when declaring a function, and it had a prototype - use the new parameter names instead of the ones from the prototype, otherwise things get messy 2012-08-18 20:16:51 +02:00
Wolfgang (Blub) Bumiller
7cc1609117 Disable the member-of namespace check when -std != gmqcc 2012-08-18 19:43:34 +02:00
Wolfgang (Blub) Bumiller
d88e3e8f24 move the member-of check for '.' to after applying the previous dot operators so we don't need parens around 'a.b' of 'a.b.c = x' 2012-08-18 19:42:38 +02:00
Wolfgang (Blub) Bumiller
586bb07c4d Use the current context, not the one from a NULL value... for ast_return 2012-08-18 18:00:20 +02:00
Wolfgang (Blub) Bumiller
701c387dbf parse 'return' without values better 2012-08-18 17:58:51 +02:00
Wolfgang (Blub) Bumiller
2cf4895cc7 Fixup some possibly uninitialized value when parsing 'return' 2012-08-18 17:48:29 +02:00
Wolfgang (Blub) Bumiller
0e3bc87c75 Don't re-add defs which had a prototype 2012-08-18 17:42:38 +02:00
Wolfgang (Blub) Bumiller
24a21d0816 ast_value_copy should copy the expression substructure as well - exposing ast_value_copy to the outside since the parser needs to copy complete types when multiple variables are declared with commas 2012-08-18 17:16:20 +02:00
Wolfgang (Blub) Bumiller
6daf47fc5b set parser->lex to NULL after closing 2012-08-18 16:42:17 +02:00
Wolfgang (Blub) Bumiller
16b5f28b40 don't deallocate the parser on a compile error -_- 2012-08-18 16:40:20 +02:00
Wolfgang (Blub) Bumiller
b6ab0207b1 ast_block_collect: add to ast_block->collect and set the node's .keep=true, those will now always be deleted by the ast_block dtor 2012-08-18 16:27:40 +02:00
Wolfgang (Blub) Bumiller
68e4a937f2 collect vector-member locals in ast_block->collect, like a garbage collection... 2012-08-18 16:24:26 +02:00
Wolfgang (Blub) Bumiller
897bd5727e Revert "let ast_node have a use-counter, helpful for the parser to delete unused fields which otherwise get lost in the void"
This reverts commit 25ffd11aa6.
2012-08-18 16:20:45 +02:00
Wolfgang (Blub) Bumiller
d4587e5667 Revert "delete ast_members from parser->locals when they were unused"
This reverts commit cdeffb6de9.
2012-08-18 16:20:23 +02:00
Wolfgang (Blub) Bumiller
cdeffb6de9 delete ast_members from parser->locals when they were unused 2012-08-18 16:20:17 +02:00
Wolfgang (Blub) Bumiller
25ffd11aa6 let ast_node have a use-counter, helpful for the parser to delete unused fields which otherwise get lost in the void 2012-08-18 16:16:43 +02:00
Wolfgang (Blub) Bumiller
d5e01ba904 clear all the remaining vectors in the parser 2012-08-18 15:59:29 +02:00
Wolfgang (Blub) Bumiller
2045321296 free parser->fields and parser->locals at parser_cleanup 2012-08-18 15:55:50 +02:00
Wolfgang (Blub) Bumiller
483ce89d78 Delete fields in parser_cleanup 2012-08-18 15:51:53 +02:00
Wolfgang (Blub) Bumiller
e2faedcca8 the opening paren is now an operator - to fix up the precedence rules, now 'anentity.afunction()' compiles 2012-08-18 15:25:45 +02:00
Wolfgang (Blub) Bumiller
267bb7d41e get rid of additional trailing \n on parseerror 2012-08-18 14:55:37 +02:00
Wolfgang (Blub) Bumiller
46b4eb1f46 WARN_ERROR -> opts_werror in parser.c 2012-08-18 14:51:12 +02:00
Wolfgang (Blub) Bumiller
7ecd9714b0 add the type of whatever is 'not a function' to that error message 2012-08-18 12:45:51 +02:00
Wolfgang (Blub) Bumiller
6b1a0541c9 parser_strdup to wrap util_strdup and actually dup empty strings 2012-08-18 12:26:21 +02:00
Wolfgang (Blub) Bumiller
e00c8da849 Added support for some modelgen/spritegen commands 2012-08-16 20:47:31 +02:00
Wolfgang (Blub) Bumiller
54dcbc22bf NOT for entity, function and string - we're not constant-folding it for functions and entities right now 2012-08-16 16:24:47 +02:00
Wolfgang (Blub) Bumiller
31a8cd80c8 unary NOT operator for float and vector 2012-08-16 16:21:19 +02:00
Wolfgang (Blub) Bumiller
1a3a0014c5 even in non-qcc mode we need to search the variables for fields because of field-pointers 2012-08-16 16:21:09 +02:00
Wolfgang (Blub) Bumiller
7c731b70cf verbose error about unhandled operators 2012-08-16 16:07:00 +02:00