Wolfgang Bumiller
|
b4e38a8fed
|
Fix: ast_value.cvq must be an int, not a bool;
Fixes #62
|
2012-12-22 12:30:20 +01:00 |
|
Wolfgang Bumiller
|
a985a5cab1
|
while/for/do now all use process_condition, ast_loop got 2 new parameters for more efficient translation
|
2012-12-20 20:22:31 +01:00 |
|
Wolfgang (Blub) Bumiller
|
ba434c8e22
|
removing ast_expression_common.variadic, adding ast_expression_common.flags, added AST_FLAG_VARIADIC and AST_FLAG_NORETURN
|
2012-12-19 20:45:48 +01:00 |
|
Wolfgang (Blub) Bumiller
|
8777624fe2
|
ast_block_add_expr now lets the block fully adopt the type of the added expression
|
2012-12-05 12:57:00 +01:00 |
|
Wolfgang (Blub) Bumiller
|
02ec45363e
|
Get rid of some code duplication
|
2012-12-02 17:57:08 +01:00 |
|
Wolfgang (Blub) Bumiller
|
2a3e7c1cff
|
field constants - revert globals generated after fields
|
2012-11-30 21:11:25 +01:00 |
|
Wolfgang (Blub) Bumiller
|
316298650e
|
remember if an ast_value is a field-declaration, build fields before globals
|
2012-11-30 21:03:57 +01:00 |
|
Wolfgang (Blub) Bumiller
|
6acd159c9c
|
Keeping track of numbers for debugging
|
2012-11-30 16:23:42 +01:00 |
|
Wolfgang (Blub) Bumiller
|
5e23e8296d
|
don't just store a 'bool constant' in the ast/ir, store the complete qualifier: 'int cvq', moved CV_ defines into gmqcc.h
|
2012-11-30 13:47:28 +01:00 |
|
Wolfgang (Blub) Bumiller
|
ec2ff09eff
|
operator &~= must not cause the generated binstore to free the destination twice
|
2012-11-26 00:15:07 +01:00 |
|
Wolfgang (Blub) Bumiller
|
24f9b63475
|
parsing goto
|
2012-11-25 21:53:14 +01:00 |
|
Wolfgang (Blub) Bumiller
|
f431b7a693
|
Support codegen of ast_label and ast_goto in any order
|
2012-11-25 21:40:26 +01:00 |
|
Wolfgang (Blub) Bumiller
|
474d8bd6f0
|
ast_label, and labels later used for goto
|
2012-11-25 21:27:14 +01:00 |
|
Wolfgang (Blub) Bumiller
|
39f572fe99
|
constant flag, -finitialized-nonconstants to turn initialized globals into mutable variables
|
2012-11-25 19:35:00 +01:00 |
|
Wolfgang (Blub) Bumiller
|
6e400ca81f
|
ast: isconst->hasvalue, const keyword will set the const flag
|
2012-11-25 19:30:10 +01:00 |
|
Wolfgang (Blub) Bumiller
|
ca033e5acd
|
Some side-effect propagation for better warnings, so that comma-operators with assignments in them don't cause the -Weffectless-statement warning, and fixing ternary precedence for fte operator list
|
2012-11-25 19:19:36 +01:00 |
|
Wolfgang (Blub) Bumiller
|
613e1e7247
|
Change the parser to use the hashtable functions
|
2012-11-25 13:23:37 +01:00 |
|
Wolfgang (Blub) Bumiller
|
a7fb45f102
|
removed phi_out from ast_ternary since we have a place in ast_expression_common for this kind of value
|
2012-11-21 20:13:31 +01:00 |
|
Wolfgang (Blub) Bumiller
|
21c2fcb929
|
A note about how early-out in if-expressions can be translated more efficiently
|
2012-11-21 19:22:28 +01:00 |
|
Wolfgang (Blub) Bumiller
|
06ba28f2a0
|
ast_switch
|
2012-11-19 21:17:44 +01:00 |
|
Wolfgang (Blub) Bumiller
|
ea75003cf4
|
break and continue support
|
2012-11-19 19:39:52 +01:00 |
|
Wolfgang (Blub) Bumiller
|
906f319673
|
Replaced it all...
|
2012-11-15 18:32:09 +01:00 |
|
Wolfgang (Blub) Bumiller
|
0340a6a6e7
|
support for ast_entfield nodes with specific output types, fixing array-field instantiating code to print the correct name on error
|
2012-11-12 22:39:43 +01:00 |
|
Wolfgang (Blub) Bumiller
|
1ab303c528
|
Store accessors in the ast_value for access from within the ast - generate accessors after generating all the globals to not mess up the order of globals in the output
|
2012-11-11 16:22:09 +01:00 |
|
Wolfgang (Blub) Bumiller
|
7d9568f806
|
array accessor function genaration
|
2012-11-11 16:06:27 +01:00 |
|
Wolfgang (Blub) Bumiller
|
62d062f860
|
for arrays, ast_value will contain several ir_values, ir_v will point to the [0] element
|
2012-11-11 10:51:40 +01:00 |
|
Wolfgang (Blub) Bumiller
|
1869440fd9
|
Preparing to parse arrays: adding TYPE_ARRAY and union/struct TYPE_ constants to be consistent with fteqcc, filled type-arrays with their data, attempting to parse an array variable and added some error messages to the IR in case of unhandled types
|
2012-11-11 10:13:01 +01:00 |
|
Wolfgang (Blub) Bumiller
|
52daf02444
|
Support in the AST for TYPE_FIELD globals which are no actual fields
|
2012-11-11 10:13:00 +01:00 |
|
Wolfgang (Blub) Bumiller
|
90419eb13c
|
A comment/note/hint about how to deal with not-yet declared things later in past-0.2
|
2012-10-31 18:55:03 +01:00 |
|
Wolfgang (Blub) Bumiller
|
f56c5f425a
|
ast_type_to_string function
|
2012-10-28 20:30:55 +01:00 |
|
Wolfgang (Blub) Bumiller
|
478a9249a0
|
add error for function parameters of invalid types
|
2012-10-28 15:44:27 +01:00 |
|
Wolfgang (Blub) Bumiller
|
c84830bdee
|
Warna bout unused variables - -Wunused-variable, on by default
|
2012-08-23 20:25:54 +02:00 |
|
Wolfgang (Blub) Bumiller
|
f22112bcb8
|
Variadic functions: works for builtins, warns for implemenetd functions, -Wvariadic-function, on by default
|
2012-08-23 11:29:48 +02:00 |
|
Wolfgang (Blub) Bumiller
|
bd64d7d7b4
|
Automatic prototyping of frame-functions
|
2012-08-19 19:24:43 +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
|
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
|
5b2d99bc99
|
Revert "ast_usecount macro for convenience"
This reverts commit e86c8ff0eb .
|
2012-08-18 16:20:36 +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
|
65fb4b34b5
|
type comparison, function prototypes
|
2012-08-14 14:14:56 +02:00 |
|
Wolfgang (Blub) Bumiller
|
722be55fa9
|
removing all direct 'printfs' from ast and ir, replaced by the error interface
|
2012-08-14 13:14:32 +02:00 |
|
Wolfgang (Blub) Bumiller
|
cfdf915b25
|
ast_binstore, used for +=, -=, ++, -- etc
|
2012-08-14 10:40:48 +02:00 |
|
Wolfgang (Blub) Bumiller
|
406a32bea6
|
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
|
2012-08-13 19:39:35 +02:00 |
|
Wolfgang (Blub) Bumiller
|
5240aa8379
|
ast_istype should add the TYPE_ prefix
|
2012-08-12 11:36:15 +02:00 |
|
Wolfgang (Blub) Bumiller
|
9c2e6a2334
|
Experimental ast_member to access vector members
|
2012-08-08 14:49:37 +02:00 |
|
Wolfgang Bumiller
|
47a8a69f1c
|
ast nodes now store their type id, and can be checked via ast_istype
|
2012-07-29 10:03:13 +02:00 |
|
Wolfgang Bumiller
|
c5ba27da6f
|
ast_store to take ast_expression on its left, rather than ast_value. Assigning to a vector member would not put an ast_value on the left, but an ast_member, thus: ast_expression now already
|
2012-07-28 18:13:12 +02:00 |
|
Wolfgang Bumiller
|
42168fde00
|
removing an old comment
|
2012-07-27 15:27:34 +02:00 |
|