Commit Graph

445 Commits

Author SHA1 Message Date
49084ea0af Add AST -> MIR for bitwise-operations and or 2025-07-28 11:59:20 +03:00
516833d26f Add parsing for bitwise or/and, xor and bitshifts 2025-07-28 11:53:50 +03:00
1c7a600b96 Fix pass for inner expressions 2025-07-28 02:02:30 +03:00
8e71c6a47d Fix nullptr type 2025-07-28 01:47:43 +03:00
9c2f47534a Update how line number is shown in errors 2025-07-28 01:43:30 +03:00
cea756b2ad Fix derefs with casts 2025-07-28 01:36:35 +03:00
57b5a5cce4 Increment versions 2025-07-28 01:15:17 +03:00
2a6aceb052 Apply same self-thing to all dot-syntaxes, actually 2025-07-28 01:10:27 +03:00
00c91fff60 Update standard library documentation 2025-07-28 00:52:02 +03:00
8838223a7d Add free to String, update hello_world_harder 2025-07-28 00:44:52 +03:00
1f56fa5dc3 Fix using self within self 2025-07-28 00:41:35 +03:00
dc360ef196 Implement importing of associated functions with types 2025-07-27 23:28:24 +03:00
5104555890 Fix type updating for associated function calls 2025-07-27 23:12:40 +03:00
9d5a20e76a Allow pub-keyword for impl-block 2025-07-27 22:55:34 +03:00
a6a903a45d Allow borrows in associated function &self 2025-07-27 22:45:34 +03:00
676554b6a0 Improve deref parsing 2025-07-27 22:24:38 +03:00
cc367a38e7 Allow mutable borrows to coerce into immutable 2025-07-27 21:41:34 +03:00
1c83ca44ab Add dot syntax for associated functions 2025-07-27 21:29:39 +03:00
7b27f30b9e Implement builtin associated alloca and nullptr 2025-07-27 20:46:17 +03:00
f3471473a2 Test associated functions, cleanup codegen a bit 2025-07-27 20:04:54 +03:00
537167fe4f Add intrinsic associated functions 2025-07-27 19:55:28 +03:00
0613fc5c53 Allow associated functions to take self as owned 2025-07-27 18:41:51 +03:00
4f57ed399f Add formatting, fix typechecking for associated functions 2025-07-27 18:35:02 +03:00
24f11a77d2 Add codegen for assoc functions 2025-07-27 18:32:17 +03:00
4d7c17a854 Add typeinference and typechecking for Associated Functions 2025-07-27 18:24:49 +03:00
46668b7099 Fix a bunch of warnings 2025-07-27 18:11:18 +03:00
ab94bd7df0 Add AST -> MIR processing for associated functions 2025-07-27 03:08:34 +03:00
09f1784810 Update AssociatedFunctionBlock parsing 2025-07-27 02:56:47 +03:00
5eef265652 Add parsing for associated function calls 2025-07-27 02:54:01 +03:00
a253c032d8 Add parsing for &self and &mut self 2025-07-27 02:49:08 +03:00
bee31f4b92 Add associated function parsing partially 2025-07-27 02:33:11 +03:00
185bd36cd9 Add Book of Reid 2025-07-27 01:20:37 +03:00
5991a75d32 Add imported_type to e2e-tests 2025-07-26 14:05:06 +03:00
0ba1fa90e7 Update readme, clean up a little 2025-07-26 14:04:24 +03:00
c316d94b75 Fix bug in custom binops where their return types aren't inferred 2025-07-26 14:01:53 +03:00
0196fb53ed Import binops while importing types as well 2025-07-26 13:18:55 +03:00
58cc633f98 Update typerefs in statements and expressions as well for extern types 2025-07-26 12:56:42 +03:00
59e4c38770 Fix type references for function return types .. for now 2025-07-26 01:34:37 +03:00
19120492b9 Update get_type to accept imported types as well 2025-07-26 01:02:25 +03:00
269de327b8 Allow importing types 2025-07-26 00:57:39 +03:00
12e2851a8b Add Not-Unary 2025-07-25 23:40:57 +03:00
bf878c02a7 Fix struct field ordering mattering 2025-07-25 23:36:23 +03:00
4c9633132f Fix missing fields not warning in structs 2025-07-25 23:30:57 +03:00
45d381f865 Hide intrinsic binary operators in alternate mode 2025-07-25 22:43:19 +03:00
17e8cf4807 Make hint be HintKind and not Option 2025-07-25 22:35:27 +03:00
c466b8eb2a Fix everything except for casts 2025-07-25 22:21:11 +03:00
8396aa4613 Fix casting indexed accesses 2025-07-25 21:27:21 +03:00
5149ef8727 Fix intrinsic binops 2025-07-25 21:11:30 +03:00
307137d0d9 Fix a significant problem in how the typerefs aren't narrowed properly 2025-07-25 20:16:54 +03:00
63f48f7df9 Implement a bunch of intrinsic binops 2025-07-25 18:48:16 +03:00
7ba3204803 Implement typechecking and inference logic for binops 2025-07-25 18:10:22 +03:00
2cb61de294 Fix binop-fetching 2025-07-25 16:57:44 +03:00
8d3dd4a49f Improve binop type narrowing 2025-07-25 16:55:32 +03:00
f8d2e4996a Refactor typecheck into it's own module 2025-07-25 16:19:55 +03:00
0b3ee3bf92 Refactor some more 2025-07-25 15:55:14 +03:00
6ee43d4012 Refactor stuff into codegen-module 2025-07-25 15:52:52 +03:00
b288fee2d5 Fix parsing of explicitly typed literals 2025-07-25 03:04:04 +03:00
242cf9fb2d Fix debug info for local variables 2025-07-25 02:02:55 +03:00
6634597c92 Add ability to specify variable types in let 2025-07-25 00:41:38 +03:00
ea8a833bdf Fix warnings and issues 2025-07-25 00:32:49 +03:00
023d3b75b6 Add flags and cpu to options that are configurable 2025-07-25 00:28:58 +03:00
dbd539fb76 Improve typed literal parsing somewhat 2025-07-25 00:14:03 +03:00
5b46e973d4 Add types to number-literals 2025-07-24 23:04:35 +03:00
211cca50b8 Update readme and tests 2025-07-24 22:06:58 +03:00
0e63219205 Implement shorthand for array definition 2025-07-24 22:04:48 +03:00
be3c415a57 Implement void returns 2025-07-24 21:54:55 +03:00
22160b0802 Add octal, binary and hexadecimal representation 2025-07-24 21:33:03 +03:00
25fb6bf0fd Fix uppercase/lowercase, add custom_binop to e2e tests 2025-07-24 21:26:32 +03:00
a09bccb255 Add hexadecimal numerics 2025-07-24 21:24:17 +03:00
f6425fc37e Embrace having megaintrinsic binops 2025-07-24 20:15:13 +03:00
ccdefe7033 Add u16 div and mod to intrinsics 2025-07-24 19:07:35 +03:00
bb0b7c12c3 Fix collapsing of both types in type inferrer 2025-07-24 19:03:03 +03:00
27db67dd99 Possibly fix typechecking for binops 2025-07-24 18:42:10 +03:00
8810d34d54 Get intrinsics to inline at codegen 2025-07-24 17:14:49 +03:00
436ab319b8 Add intrinsic binops 2025-07-24 16:01:23 +03:00
d448c8b9f1 Implement codegen for binops 2025-07-24 15:52:46 +03:00
b12e0a18a9 Add typechecking for custom binops 2025-07-24 15:38:08 +03:00
9f7022b4c0 Add operator to scopebinop, add some typechecking for binops 2025-07-24 15:09:27 +03:00
aec7d55e9b Add codegen to custom binops 2025-07-24 15:03:05 +03:00
4a7f27205c Do similar change to allocator 2025-07-24 14:34:40 +03:00
56b8506f50 Reorder function definition codegen to separate function 2025-07-24 14:32:09 +03:00
a7795f83db Use FunctionDefinitionKind for binops 2025-07-24 13:40:06 +03:00
7c6de93b31 Check for existance of pre-existing binops 2025-07-24 13:25:33 +03:00
50af50c43f Typecheck custom binops 2025-07-24 13:07:49 +03:00
974c7e98f1 Add AST -> MIR for custom binops 2025-07-24 12:34:16 +03:00
5ef329d570 Add custom binop parsing 2025-07-24 12:29:39 +03:00
eda78fc924 Add binop impl lexing 2025-07-24 12:23:19 +03:00
89002f34e4 Add function double-definition checking 2025-07-24 12:13:34 +03:00
954f3438d3 Codegen intrinsics 2025-07-24 11:56:44 +03:00
b793ef7526 Add intrinsic code generation part 1 2025-07-24 11:34:44 +03:00
5ff5651f5f Work on intrinsics, clean up code a bit 2025-07-24 11:29:58 +03:00
4f1dc5e59d Merge branch 'main' into intrinsicts 2025-07-24 11:18:33 +03:00
3404f0fb6e Add static allocator, fix loop_hard 2025-07-24 03:29:02 +03:00
6664b25932 Fix deref expecting a codegenptr and not borrow 2025-07-24 01:51:44 +03:00
87a8eac61b Fix for loops causing issues together 2025-07-24 01:48:25 +03:00
f7500b886a Add two failing examples 2025-07-24 01:42:47 +03:00
4bef1c2379 Start implementing intrinsics 2025-07-24 01:39:49 +03:00
7027ee3645 Fix default for arrays 2025-07-23 23:11:20 +03:00
aeca557b6f Make breaking changes to stdlib 2025-07-23 22:04:34 +03:00
de803e9024 Fix from_str in stdlib, add concat_strings 2025-07-23 22:01:14 +03:00