Commit Graph

471 Commits

Author SHA1 Message Date
c7f1b81c9d Improve associated functions so you can now call them on numbers too 2025-08-03 01:33:52 +03:00
101ee2d8e5 Account for intrinsic associated functions with autocomplete 2025-08-03 01:00:02 +03:00
4ea0913842 Add autocomplete for associated functions and struct fields 2025-08-03 00:13:53 +03:00
bb9f69ee53 Add autocomplete for imports 2025-08-02 23:03:11 +03:00
8595da0c30 Make LSP use a more general analysis structure 2025-08-02 21:11:33 +03:00
658450993a Fix hover types for for-loops 2025-08-02 20:10:48 +03:00
4fada0036c Fix debug info for structs 2025-07-31 23:25:46 +03:00
4f0ee72c83 Edit example a bit, fix macro generation in function parameters 2025-07-31 22:48:16 +03:00
deed96bbfd Fix bitwise operators requiring U64 for rhs 2025-07-31 22:17:58 +03:00
1e094eeea0 Allow wider expressions for when self is not taken as borrow 2025-07-29 23:55:31 +03:00
3adb745576 Fix struct recursion testing 2025-07-29 23:38:26 +03:00
8f7b785664 Fix two small bugs, add new example to test 2025-07-29 23:16:56 +03:00
b71c253942 Add types to hovers in LSP, fix around and add metas 2025-07-29 21:39:14 +03:00
7d3aaa143a Start adding type-information to tooltips 2025-07-29 20:44:15 +03:00
6619f1f0a9 Add simple error diagnostic from parser 2025-07-29 19:53:12 +03:00
c262418f88 Add comments and whitespace to lexer 2025-07-29 16:41:07 +03:00
2dd3a5904b Add whitespace to lexer 2025-07-29 16:37:58 +03:00
ff1da716e9 Update README.md 2025-07-29 16:08:54 +03:00
2303bf757a Rename macro to include_bytes!() 2025-07-29 15:57:26 +03:00
7234cad5f0 Allow &[ty; _] to be cast into *ty 2025-07-29 15:56:06 +03:00
baa068a371 Load file contents relative to module path instead of PWD 2025-07-29 15:44:14 +03:00
8b1d1084a6 Improve formatting for globals 2025-07-29 15:25:14 +03:00
f5f55079a9 Make global identifier for macro-generated globals better 2025-07-29 15:19:14 +03:00
baa7bafafc Add length-intrinsic 2025-07-29 01:15:09 +03:00
f700c577f1 Add reading file to buffer macro, only works for one global per file 2025-07-29 00:50:07 +03:00
140d963d9b Read file contents to binary within macro 2025-07-29 00:18:50 +03:00
480ba5155a Initialize global arrays in macros 2025-07-29 00:07:40 +03:00
2207c3df83 Add initial support for array globals 2025-07-29 00:06:47 +03:00
735c3231b1 Make macros generate globals 2025-07-28 23:49:22 +03:00
50a875ad21 Add compilation of global values 2025-07-28 23:32:47 +03:00
30257e1a2b Add global api support for llvm-lib 2025-07-28 23:20:13 +03:00
a7ac974f46 Change macro pass workflow a little bit 2025-07-28 22:57:06 +03:00
3d8f4bbd24 Implement macro-pass 2025-07-28 22:37:24 +03:00
33ed1fd813 Add macro call convention 2025-07-28 22:18:30 +03:00
67a5fcd002 Basically revert everything, create macro-pass 2025-07-28 22:11:46 +03:00
80bdf4eba8 Merge branch 'main' into macros 2025-07-28 22:03:06 +03:00
bd8994bb37 Fix linking associated functions, fix other examples 2025-07-28 22:02:49 +03:00
2e153922f1 Start adding macros 2025-07-28 21:54:51 +03:00
89850d7b4f Change intrinsic alloca to malloc and actually use libc malloc 2025-07-28 21:22:15 +03:00
13be3e9c02 Namespace all functions, except those that are explicitly extern 2025-07-28 21:13:53 +03:00
5026013df3 Add intrinsic malloc, use that in alloca 2025-07-28 20:46:58 +03:00
beaba4e7de Mangle function names, except for user defined externs 2025-07-28 20:25:36 +03:00
e14efa2ea7 Update allocator to remove dynamic allocations from lists/structs 2025-07-28 19:52:49 +03:00
b643c13582 Use metadata instead of names for allocator identification 2025-07-28 19:22:03 +03:00
e412a2e1d7 Fix allocator 2025-07-28 19:04:37 +03:00
1b1a5934f5 Implement lexical scopes 2025-07-28 18:40:42 +03:00
726251e39c Fix warnings, cleanup 2025-07-28 18:22:51 +03:00
61d3ea61ee Fix debug info 2025-07-28 18:20:00 +03:00
60860498df Possibly fix binop type inference infinite recursion 2025-07-28 17:31:18 +03:00
7ca8949e8c Start adding lexical scopes 2025-07-28 16:11:20 +03:00
bb7347c97b Possibly fix binop type inferrence 2025-07-28 14:30:57 +03:00
a680064b0f Improve binary operation inference, still not great 2025-07-28 14:22:27 +03:00
469ce3ce77 Improve type inferrence for binops 2025-07-28 13:02:02 +03:00
97948d8c38 Help typechecker a little bit 2025-07-28 12:18:42 +03:00
a4e18af983 Add intrinsic bit-operators 2025-07-28 12:16:14 +03:00
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
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
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