Wolfgang (Blub) Bumiller
|
4cf017bb6b
|
keep the filenames of all lexed files in a global lex_filenames vector because we don't strdup the filenames into lex_ctx, but copy the pointer
|
2012-08-18 16:47:33 +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
|
304cf173cd
|
ast_member's are now kept, since they are used like variables: multiple times
|
2012-08-18 16:38:50 +02:00 |
|
Wolfgang (Blub) Bumiller
|
ff1506983b
|
Add a comment about why we don't delete the owner
|
2012-08-18 16:32:07 +02:00 |
|
Wolfgang (Blub) Bumiller
|
6acf131369
|
Doh... wrong comment type
|
2012-08-18 16:30:28 +02:00 |
|
Wolfgang (Blub) Bumiller
|
ffd41cb1c7
|
ast_member will not unref/delete the owner: first of all the owner is always an ast_value, which won't get deleted anyway, secondly: the ast_members are collected and deleted after the owners, so ast_unref(owner) will cause invalid memory access
|
2012-08-18 16:30:09 +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
|
5a78270ada
|
initialize ast_block->collect properly
|
2012-08-18 16:25:21 +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
|
5b2d99bc99
|
Revert "ast_usecount macro for convenience"
This reverts commit e86c8ff0eb .
|
2012-08-18 16:20:36 +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
|
e86c8ff0eb
|
ast_usecount macro for convenience
|
2012-08-18 16:18:51 +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
|
a67110410b
|
clear lex->modelname
|
2012-08-18 16:04:20 +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
|
9ed976d304
|
clear items_data in main
|
2012-08-18 15:58:20 +02:00 |
|
Wolfgang (Blub) Bumiller
|
3efad75336
|
clean lex->frames in lex_close
|
2012-08-18 15:57:21 +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
|
9eede6d303
|
fix a MEM_VECTOR_CLEAR to be done AFTER clearing the contents...
|
2012-08-18 15:53:35 +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
|
efc540ceba
|
add 'local' keyword in fields.qc, it's for qcc standard anyway
|
2012-08-18 14:56:15 +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
|
cb2f89e5bb
|
fields: testing function-fields
|
2012-08-18 14:50:30 +02:00 |
|
Wolfgang (Blub) Bumiller
|
b421c42d4b
|
replacing WARN_ERROR with opts_werror
|
2012-08-18 14:36:33 +02:00 |
|
Wolfgang (Blub) Bumiller
|
d3492d4a13
|
Fix indentation of lexer.c - was still using some tabs there
|
2012-08-18 14:27:19 +02:00 |
|
Wolfgang (Blub) Bumiller
|
bc94d3f5b8
|
lexer now turns '(' into an operator if noops=false
|
2012-08-18 14:26:25 +02:00 |
|
Wolfgang (Blub) Bumiller
|
1a2c3c505c
|
debug warn def on top of the flag list
|
2012-08-18 14:23:38 +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
|
a74b26a9bc
|
Add an error output in the ast where I missed one (there are probably more places which need one)
|
2012-08-18 12:45:29 +02:00 |
|
Wolfgang (Blub) Bumiller
|
39f37262db
|
add LOAD for TYPE_FUNCTION as LOAD_FNC so we can actually access function fields
|
2012-08-18 12:44:17 +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
|
076503770d
|
Support for $modelname and $framerestore
|
2012-08-16 21:02:56 +02:00 |
|
Wolfgang (Blub) Bumiller
|
3b9a6b3ace
|
Don't expand frame macros when they don't have a $ prefix
|
2012-08-16 20:49:58 +02:00 |
|
Wolfgang (Blub) Bumiller
|
e00c8da849
|
Added support for some modelgen/spritegen commands
|
2012-08-16 20:47:31 +02:00 |
|
Wolfgang (Blub) Bumiller
|
91ee7658a6
|
'$' is now its own token, used for modeldata
|
2012-08-16 20:03:53 +02:00 |
|
Wolfgang (Blub) Bumiller
|
bf161e3919
|
data/fields.qc now tests fieldpointer parameters - requires -std=qcc to build
|
2012-08-16 16:39:43 +02:00 |
|
Wolfgang (Blub) Bumiller
|
84bc8f3662
|
CALL instructions need to offset the st++ too
|
2012-08-16 16:38:57 +02:00 |
|
Wolfgang (Blub) Bumiller
|
32c095b622
|
Fix a possible endless loop in ir_values_overlap
|
2012-08-16 16:38:36 +02:00 |
|
Wolfgang (Blub) Bumiller
|
1bc6d10898
|
entityfield tests
|
2012-08-16 16:29:41 +02:00 |
|
Wolfgang (Blub) Bumiller
|
9f951e36a9
|
prog_leavefunction needs to take the ++st into account - otherwise INSTR_RETURN ends up skipping the instruction after the calling INSTR_CALL
|
2012-08-16 16:28:59 +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 |
|
Wolfgang (Blub) Bumiller
|
7bc564f175
|
lexer: recognize != as operator when noops=false
|
2012-08-16 16:06:12 +02:00 |
|