Commit Graph
100 Commits
Author SHA1 Message Date
Krzosa Karol ab663d0b01 Getting packages out of resolve_name 2022-06-10 17:07:58 +02:00
Krzosa Karol 957dbbd5cc Fix not top level ast's getting into ordered list. Delete parent nodes 2022-06-10 16:47:49 +02:00
Krzosa Karol 6ad5f4e706 Nicer error messages 2022-06-10 16:26:26 +02:00
Krzosa Karol 11e7bd52fd Solved the problem of scope when resolving out of order!!! 2022-06-10 16:23:34 +02:00
Krzosa Karol e2d07923c8 Add parent_scope on all nodes 2022-06-10 16:12:47 +02:00
Krzosa Karol 3402b4fe4d Add DECL_TYPE 2022-06-10 15:05:44 +02:00
Krzosa Karol 89b3e00ae4 Closer to old state 2022-06-10 14:08:27 +02:00
Krzosa Karol d5d9911f3e More work on packages 2022-06-10 11:05:08 +02:00
Krzosa Karol b0077fe9df Basic resolving, codegen with packages 2022-06-10 10:35:10 +02:00
Krzosa Karol fbe911d267 Complete rework, adding packages 2022-06-09 21:30:52 +02:00
Krzosa Karol 4edd2a4799 Big renames, prepare for scope changes 2022-06-09 17:45:30 +02:00
Krzosa Karol 2ec901f6da Big renames 2022-06-09 14:22:04 +02:00
Krzosa Karol 2f127dea98 Before adding pointer idea 2022-06-08 12:59:43 +02:00
Krzosa Karol 19356026fe More compile timers, euler3 2022-06-08 10:04:34 +02:00
Krzosa Karol 87d6737a10 Working on euler using the compiler + squashing bugs 2022-06-08 09:53:13 +02:00
Krzosa Karol 5744da8899 Passing arrays as arguments to functions working 2022-06-07 21:34:02 +02:00
Krzosa Karol b65a5f78bf Working on arrays 2022-06-07 21:19:06 +02:00
Krzosa Karol c3e071b3bb Squashing lexer bugs related to EOF 2022-06-07 21:18:49 +02:00
Krzosa Karol c69d2b7fe2 Language actually gets properly stepped through using debugger! 2022-06-07 17:53:04 +02:00
Krzosa Karol 9cdc5ee6c9 Codegen basic arrays with size attached 2022-06-07 17:38:15 +02:00
Krzosa Karol ec89defb5d Fix type complete not called properly 2022-06-07 15:54:39 +02:00
Krzosa Karol 44d26d6939 Can call the compiler from command line with argument 2022-06-07 15:27:18 +02:00
Krzosa Karol 1a67fe3402 Require boolean in for, if 2022-06-07 13:50:16 +02:00
Krzosa Karol d45ee5ec8a Fix scope bug, fix parsing bug 2022-06-07 13:37:57 +02:00
Krzosa Karol af5865b059 Working on actually making a program 2022-06-07 12:10:20 +02:00
Krzosa Karol 759825172c Printf is working !! 2022-06-07 11:27:09 +02:00
Krzosa Karol a59283903b Add var args for using printf 2022-06-07 11:16:30 +02:00
Krzosa Karol b7df759d9d Add foreign functions 2022-06-07 09:56:19 +02:00
Krzosa Karol c5b82c0532 Added unary ++ --, prefix and postfix, working on running a program 2022-06-07 09:05:02 +02:00
Krzosa Karol d3da979d64 More for loop variations working 2022-06-06 23:55:44 +02:00
Krzosa Karol f852a23fcb Fixing bugs, pointer arithmetic checking, better for, working on first program 2022-06-06 23:50:38 +02:00
Krzosa Karol 729e7aee86 Fixing type checking 2022-06-06 22:14:30 +02:00
Krzosa Karol d042251c21 Bit Negating now works properly for different types 2022-06-06 17:14:42 +02:00
Krzosa Karol 7173557d26 Testing big ints 2022-06-06 17:00:01 +02:00
Krzosa Karol dc56bd54f3 Managing bigint memory 2022-06-06 16:49:41 +02:00
Krzosa Karol 06d6ec7525 Working on casts 2022-06-06 13:24:01 +02:00
Krzosa Karol 4f876a36a4 Switched to bigint in lexer 2022-06-06 10:00:53 +02:00
Krzosa Karol 960523b443 Remove int uint, all programs compiling 2022-06-06 09:36:37 +02:00
Krzosa Karol 325050300a Cleanup 2022-06-06 09:17:34 +02:00
Krzosa Karol 6157325d8f Compiling with new untyped system 2022-06-06 08:56:03 +02:00
Krzosa Karol e12e0ee561 Checking if in range 2022-06-05 15:09:40 +02:00
Krzosa Karol 867297c41e More work on 128bit arithmetic 2022-06-05 13:58:02 +02:00
Krzosa Karol 73ca0c5405 Division? 2022-06-05 13:08:41 +02:00
Krzosa Karol 968a6ac708 Researching 128bit integers 2022-06-05 12:12:54 +02:00
Krzosa Karol a73b12d54d Add big int file 2022-06-04 09:34:43 +02:00
Krzosa Karol f3527be36a Add unicode literal 2022-06-04 09:27:59 +02:00
Krzosa Karol c3f235bd44 Cleanup 2022-06-04 09:12:27 +02:00
Krzosa Karol 4910671ab9 Delete lex.c 2022-06-03 23:16:15 +02:00
Krzosa Karol a324a5abf0 Compiling and running first program! 2022-06-03 23:15:16 +02:00
Krzosa Karol 5e798bd179 Add string accessors, working towards first program 2022-06-03 21:59:51 +02:00
Krzosa Karol 827cad0127 Negations and Nots working, more bugs introduced, it's getting quite complex :( 2022-06-03 18:21:47 +02:00
Krzosa Karol 42699034ae Got all programs working, now adding unary not and neg 2022-06-03 17:58:20 +02:00
Krzosa Karol 25820a0c5b More work on types 2022-06-03 16:06:33 +02:00
Krzosa Karol 14af46125d Fix if parsing bug 2022-06-03 15:38:29 +02:00
Krzosa Karol dd8fbc20ed Boolean operators 2022-06-03 15:35:27 +02:00
Krzosa Karol cc387af8ed Add bit ops to binary 2022-06-03 14:57:10 +02:00
Krzosa Karol 84b393ce2f Guarding agains big ints which are not implemented yet 2022-06-03 14:16:51 +02:00
Krzosa Karol c2f501bf36 More work on conversions and constant evaluation 2022-06-03 14:13:45 +02:00
Krzosa Karol e200a006a2 More work on typechecking and type conversions 2022-06-03 14:03:01 +02:00
Krzosa Karol 7e4b9777e6 Cleanup 2022-06-03 12:07:17 +02:00
Krzosa Karol 71d0abf122 Adding Unary [-] [+] to new type system 2022-06-03 11:17:46 +02:00
Krzosa Karol 081e559520 Basic type conversion when assigning, added + - unary 2022-06-03 10:48:07 +02:00
Krzosa Karol e2e684294e Add bool values to parser, and bool nodes to ast 2022-06-02 23:48:03 +02:00
Krzosa Karol 2909214ee0 Add floats 2022-06-02 22:52:16 +02:00
Krzosa Karol a416007bba AST_INT, AST_STR to AST_VALUE 2022-06-02 22:37:42 +02:00
Krzosa Karol 173ef843df New types, Value rework, Sym cleanup 2022-06-02 22:17:28 +02:00
Krzosa Karol 9a58e407a4 Remove null 2022-06-02 09:59:12 +02:00
Krzosa Karol ebb21df015 Before adding untyped types 2022-06-01 21:38:39 +02:00
Krzosa Karol 75985de125 Add more operators to lexer 2022-06-01 19:12:56 +02:00
Krzosa Karol 494a937d1f Rewritten the expression parser, tldr that '.' is actually right associative binary operator, I brain farted really hard this time 2022-06-01 18:59:38 +02:00
Krzosa Karol 364daed1c7 Fix field parsing 2022-06-01 15:00:27 +02:00
Krzosa Karol 82bb3ae493 Fix lexer end of file not unwinding scopes, Trying to run a program 2022-06-01 14:00:42 +02:00
Krzosa Karol 02b6a1c85b RValue, LValue concept working, Assigning to numbers is now illegal! 2022-06-01 13:28:38 +02:00
Krzosa Karol a5267bb8ae Adding lvalue rvalue concept, Cleanup 2022-06-01 13:23:21 +02:00
Krzosa Karol 94704a5340 Cleanup, adding rvalues, lvalues 2022-06-01 12:57:12 +02:00
Krzosa Karol 631cfce534 Cleanup 2022-06-01 12:28:58 +02:00
Krzosa Karol 9b18c106b6 Basic variable reassignments 2022-06-01 12:13:02 +02:00
Krzosa Karol 86aec0b1eb More cleanup 2022-05-31 23:01:55 +02:00
Krzosa Karol 98d2389c9f Cleanup 2022-05-31 22:52:56 +02:00
Krzosa Karol 7ea0dfc7a6 Generating for stmt 2022-05-31 18:50:41 +02:00
Krzosa Karol 0360086bab Restructure 2022-05-31 18:29:35 +02:00
Krzosa Karol 20accf8293 Parsing for stmt 2022-05-31 16:45:20 +02:00
Krzosa Karol 41697dec80 Ast_Init is not Ast_Binary with TK_Comma 2022-05-31 16:24:04 +02:00
Krzosa Karol 7dfc4c7b36 Generating nested structs 2022-05-31 16:12:18 +02:00
Krzosa Karol ef9c2f4ee5 Cleanup 2022-05-31 15:53:49 +02:00
Krzosa Karol 04d38511a9 Fix regression, constant variables now get properly rewritten 2022-05-31 14:01:18 +02:00
Krzosa Karol 369418b042 Rewriting field.accesses that evaluate to constants 2022-05-31 13:39:34 +02:00
Krzosa Karol 1168965ba4 Accessing constant values in structs 2022-05-31 13:27:21 +02:00
Krzosa Karol 437a776d78 Folding constant enum access into constant int value 2022-05-31 13:10:56 +02:00
Krzosa Karol 627e2bad88 Initial enums working 2022-05-31 11:50:36 +02:00
Krzosa Karol 5e0aabb1cb Update todo 2022-05-30 18:55:15 +02:00
Krzosa Karol a9b0318720 Wanky constant in structs sort of working but long way to go 2022-05-30 18:46:01 +02:00
Krzosa Karol 980a3b68b9 Struct field access. Damn, I coded for like 30 minutes and then it just worked on the first try 2022-05-30 18:27:06 +02:00
Krzosa Karol 0e0b95ab52 Constants in structs 2022-05-30 13:44:10 +02:00
Krzosa Karol 55fd4ca40c For from pointer to reference 2022-05-30 13:34:04 +02:00
Krzosa Karol 3a97e739a8 More work on calls and compound statements 2022-05-30 13:22:57 +02:00
Krzosa Karol b2d3e9d8e1 Fix invalid pointer in struct type, more work on calls 2022-05-30 11:20:00 +02:00
Krzosa Karol 671853287a Fix bug with indexing function call 2022-05-30 11:10:27 +02:00
Krzosa Karol 9e24a608cb Rewriting function calls to have named parameters, default values 2022-05-30 11:00:30 +02:00
Krzosa Karol 54e3cb5261 On constructors 2022-05-30 09:10:15 +02:00