Commit graph

2753 commits

Author SHA1 Message Date
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
Dale Weiler
403901d6ee More assembly work 2012-04-28 02:34:39 -04:00
Dale Weiler
20f203495d More assembler code 2012-04-27 16:45:34 -04:00
Dale Weiler
7aee8ac2ef Working on the assembler 2012-04-27 16:31:38 -04:00
Wolfgang Bumiller
8d87767afa 2 missing return values 2012-04-27 18:00:57 +02:00
Wolfgang (Blub) Bumiller
9867ce26b3 a vector_remove shouldn't clear the vector when failing to reallocate as a smaller chunk, just return false. The value is still removed from the vector, so no unstable state is generated by this, which makes a _remove safe to ignore where it makes sense. 2012-04-27 13:54:00 +02:00
Wolfgang (Blub) Bumiller
ce43a35307 ast_value_set_name to return bool 2012-04-27 13:32:52 +02:00
Wolfgang (Blub) Bumiller
e4d92130da Using GMQCC_WARN some more where it makes sense 2012-04-27 13:31:40 +02:00
Wolfgang (Blub) Bumiller
86564686f3 Turned nearly every void-returning function into a bool-returning function, and checking return values wherever necessary to be able to properly exit on failures 2012-04-27 13:28:39 +02:00
Wolfgang (Blub) Bumiller
8f290e7989 Use GMQCC_WARN on generated vector functions 2012-04-27 12:38:53 +02:00
Wolfgang (Blub) Bumiller
348243ddf6 GMQCC_WARN macro 2012-04-27 12:35:59 +02:00
Wolfgang (Blub) Bumiller
4b6659bfe1 Get rid of realloc 2012-04-27 11:41:12 +02:00
Dale Weiler
8e13e8ab11 whitespace 2012-04-27 05:33:22 -04:00
Dale Weiler
422c085fba Sanity check 2012-04-27 05:33:02 -04:00
Wolfgang (Blub) Bumiller
69173876f1 Merge branch 'master' into blub/ast-and-ir-merging 2012-04-27 11:05:57 +02:00
Dale Weiler
db879bd626 Now compiles with mingw; added makefile for windows. 2012-04-26 23:24:32 -04:00
Dale Weiler
dd66080aaf removed clutter 2012-04-26 23:20:35 -04:00
Dale Weiler
63b6abb463 GMQCC_VERSION 2012-04-26 11:37:47 -04:00
Wolfgang (Blub) Bumiller
fdc98383d1 Adding a 'keep' bool to nodes: Generally, destroying an AST node should destroy all its child-nodes, global variables get 'keep' to be true to avoid them being deleted together with expressions they're used in. 2012-04-26 11:45:22 +02:00
Wolfgang (Blub) Bumiller
1a917a2659 Introduce an ast_store rather than splitting ast_binary 2012-04-26 11:36:46 +02:00
Wolfgang (Blub) Bumiller
06bdc46864 Use .o rather than .c in the Makefile... sorry for that mistake 2012-04-26 11:36:28 +02:00
Wolfgang (Blub) Bumiller
41a39125be ast_binary_new to initialize codegen function ptr, codegen proto for store and binary ast nodes 2012-04-26 10:38:00 +02:00
Wolfgang (Blub) Bumiller
c692794eb5 block and value codegen protos 2012-04-26 10:28:50 +02:00
Wolfgang (Blub) Bumiller
13ec68bc4f qbool -> bool 2012-04-26 10:16:15 +02:00
Wolfgang (Blub) Bumiller
234567cb9f Merge branch 'master' into blub/ast-and-ir-merging
-> Todo: take over bool from qbool
2012-04-26 10:13:07 +02:00
Dale Weiler
4c55dba10d Implemented platform[safe, neutral], compiler[safe, neutral] and C version[safe, neutral] <stdbool.h>. M$ Visual Studio doesn't provide support for C99 2012-04-25 17:03:56 -04:00
Dale Weiler
1fd2666fba code_strings_add replaced with proper multiplie element insertion vector support just added 2012-04-25 16:49:04 -04:00
Dale Weiler
fe5c322e38 Implemented support for multiple element (with assisted length) insertion on VECTOR_ expansions 2012-04-25 16:43:25 -04:00
Dale Weiler
e6ac367179 Make VECTOR_ more flexible for inside structures, and such. 2012-04-25 15:49:20 -04:00
Dale Weiler
168fd244bd TYPE_ macros 2012-04-25 11:45:01 -04:00
Dale Weiler
b102e77dca s/#define / / & s/[0-9]// & inplace enum { - end } 2012-04-25 11:42:20 -04:00
Wolfgang (Blub) Bumiller
8d121af47c Copyright notices 2012-04-25 17:27:49 +02:00
Wolfgang (Blub) Bumiller
6ba195bcfe todo note 2012-04-25 17:27:49 +02:00
Wolfgang (Blub) Bumiller
418430e05d Get stuff ready to compile - #if 0 on instructions not yet added to the instruction list (eg integer ones) 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
ef024e5b80 use CC ?= because clang crashes on me 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
522738de48 Adding liferange-calculation used later for templ-allocateion 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
095d403acc more weak typing 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
08f6e65b1c _naive_ phi solver 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
d1ce8de3e4 ifalse->false and true again, binop code 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
adb1ab6ce2 A few of the main IR operation implementations 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
8dd593b306 removed an old vector related function 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
e0cd68c72a ir.c: ir_value and style fixups 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
be620ff431 Same style fixups for ir_instr 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
38532ceb11 ir.c: ir_instr 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
dbe1b56f48 Same style fixup for ir_block as previous commits for function 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
2e0feca040 ir.c: importing ir_block 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
334e587c30 filecontext_t -> lex_ctx_t, removing some const 2012-04-25 17:27:48 +02:00
Wolfgang (Blub) Bumiller
9343936082 space idnentation, macros, strdup again 2012-04-25 17:27:48 +02:00