Commit graph

250 commits

Author SHA1 Message Date
Wolfgang Bumiller
340daeabc4 ir_block_create_storep for storing through pointers, the IR does not implicitly create conversions for now when using pointers, but it could 2012-05-01 11:58:52 +02:00
Dale Weiler
95152c1f5c VECTOR_PROT 2012-04-29 19:08:20 -04:00
Dale Weiler
f19cbe1400 Parse vector constants and add them to the constants table now for the assembler. 2012-04-29 19:03:06 -04:00
Dale Weiler
8156374a71 Invoke tests 2012-04-29 17:28:01 -04:00
Dale Weiler
453ca45176 added test_ast, test_ir, and test, as well as default, and all to the Makefile target list. Also made all tests C90 conformant code. 2012-04-29 16:54:41 -04:00
Dale Weiler
8c91adeb9f Merge branch 'master' into ast-and-ir 2012-04-29 16:39:43 -04:00
Dale Weiler
1db21393cf Remove Makefile_win (useless) 2012-04-29 16:38:38 -04:00
Wolfgang Bumiller
69d93409e5 params should be deleted, not unref()d 2012-04-29 19:45:14 +02:00
Dale Weiler
5d64001c36 64bit signed/unsigned integer support from the compiler if LONG_MAX != 0x7FFFFFFF 2012-04-29 12:09:30 -04:00
Dale Weiler
c3df4edebd Remove trailing whitespace 2012-04-28 19:03:16 -04:00
Wolfgang Bumiller
5751e41993 After moving ast_instantiate up, the checks which return NULL now must mem_d(self) 2012-04-29 00:41:35 +02:00
Dale Weiler
674ae4b7da Fix macro spacing 2012-04-28 18:56:44 -04:00
Dale Weiler
3e7a8c0e78 All code is now C89/C90 compat 2012-04-28 18:56:09 -04:00
Dale Weiler
206952b920 Merge branch 'master' into ast-and-ir 2012-04-28 16:45:02 -04:00
Dale Weiler
05966ee009 Remove trailing whitespace from everything 2012-04-28 16:43:39 -04:00
Dale Weiler
a5e1f40b85 gitattributes for whitespace 2012-04-28 16:40:03 -04:00
Dale Weiler
f697a5f999 lex.c -> lex_init s/lex->line = 0/lex->line = 1/ 2012-04-28 16:31:30 -04:00
Dale Weiler
37ff28a3b5 This should fix line counting issues with the lexer 2012-04-28 16:30:44 -04:00
Dale Weiler
7a81848d88 Lexer fixes 2012-04-28 16:25:43 -04:00
Wolfgang Bumiller
6dff77aa95 ast and ir testers - to use: compile into gmqcc and execut the functions in main() 2012-04-28 21:42:21 +02:00
Dale Weiler
bdb238b705 param_argument cleanup 2012-04-28 15:36:39 -04:00
Dale Weiler
1b13c86cc9 param_argument cleanup 2012-04-28 15:20:13 -04:00
Wolfgang Bumiller
488859a218 Do not force -[aci] parameters' arguments to be in the same argv; (Allow 'gmqcc -c foo' to act like 'gmqcc -cfoo' 2012-04-28 20:55:42 +02:00
Wolfgang Bumiller
2a9b3c7877 ast_function gets a handle to its ir_function, ast_global_codegen to generate an ir global, or an ir_function 2012-04-28 20:55:41 +02:00
Wolfgang Bumiller
eef92df092 First delete the blocks, THEN the locals, since blocks USE locals, darn 2012-04-28 20:55:41 +02:00
Wolfgang Bumiller
6145ecf7e0 ast_binary takes 2 expressions, not 2 values, ast_store takes a value and and expression for now until we support pointers, also: dropped the 'keep' param from ast_value_new, values are always to be stored somewhere to be deleted independently from their uses 2012-04-28 20:55:41 +02:00
Wolfgang Bumiller
0f38a560b6 ast_value and ast_function are linked together when using ast_function_new, note however, that neither will delete the other in their _delete functions. 2012-04-28 20:55:41 +02:00
Dale Weiler
df9a685f61 surpress empty bodies 2012-04-28 15:13:41 -04:00
Dale Weiler
7d66144c1b vector parsing for assembly 2012-04-28 07:27:03 -04:00
Wolfgang Bumiller
e4a839df95 Get rid of ast_setfunc 2012-04-28 12:51:44 +02:00
Dale Weiler
b4caecf088 Cut at comma 2012-04-28 06:35:42 -04:00
Dale Weiler
261e47d9b4 Merge remote-tracking branch 'origin/ast-and-ir' into ast-and-ir 2012-04-28 06:32:32 -04:00
Dale Weiler
1d6594a491 Fixed all invalid mmeory accesses 2012-04-28 06:31:16 -04:00
Dale Weiler
b09d75518c almost ISO C now, fixed all the MEM_VECTOR trailing semicolon issues. 2012-04-28 05:54:24 -04:00
Wolfgang Bumiller
50f00fb0a7 Adding debug dump functions 2012-04-28 11:50:09 +02:00
Wolfgang Bumiller
8035563a45 Fixed: block-labels were NULLed after being set -_- 2012-04-28 11:50:09 +02:00
Wolfgang Bumiller
f3a9c8c362 2 missind free->mem_d in MEM_VECTOR macros 2012-04-28 11:50:09 +02:00
Wolfgang Bumiller
75b78720fd lex_ctx_t -> lex_ctx, vector_t -> vector 2012-04-28 11:15:29 +02:00
Dale Weiler
72053e16d2 Interface change 2012-04-28 05:35:32 -04:00
Dale Weiler
33b1995fa5 struct lex_file -> lex_file 2012-04-28 05:25:19 -04:00
Dale Weiler
89ed723efa astir.h -> gmqcc.h 2012-04-28 05:08:03 -04:00
Dale Weiler
434bf4b5b2 Merge branch 'blub/ast-and-ir-merging' of github.com:graphitemaster/gmqcc into ast-and-ir 2012-04-28 05:03:31 -04:00
Dale Weiler
857ca631a4 windows makefile update 2012-04-28 05:01:19 -04:00
Wolfgang Bumiller
da827e6098 Removed the qc_type enum and replaced all qc_* by TYPE_* 2012-04-28 10:42:03 +02:00
Wolfgang Bumiller
e74ecabedd Add shouldn't clear on failure either, it would be rather ugly to handle 2012-04-28 10:32:10 +02:00
Wolfgang Bumiller
1bf4aa379a Header guards and macros get {} in oneline ifs and loops 2012-04-28 10:17:32 +02:00
Dale Weiler
858d9734a2 Merge branch 'assembler' into ast-and-ir 2012-04-28 04:12:24 -04:00
Dale Weiler
de01d34925 type parsing for constants, globals and locals. Sanatize constants to select internal functions to prevent possible runtime issues that could be a result of atoi working for what we consider invalid strings containing constants. 2012-04-28 03:53:23 -04:00
Dale Weiler
fd31c203dc Better codegen 2012-04-28 03:37:14 -04:00
Dale Weiler
07c6aea7dc assembler can parse internal functions. Wrote all internal functions (that are not extensions) to test.qs 2012-04-28 03:26:40 -04:00