|
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 |
|
|
d96fc51b9c
|
Fix adding to string that was allocated earlier
|
2025-07-23 21:27:45 +03:00 |
|
|
0d3abe8e42
|
Fix add_num_to_string not printing 10
|
2025-07-23 21:18:38 +03:00 |
|
|
14537743ed
|
Fix for-loops
|
2025-07-23 21:17:16 +03:00 |
|
|
a9abb55287
|
Merge branch 'loops'
|
2025-07-23 21:07:42 +03:00 |
|
|
c4017715d2
|
Codegen for/while loops
|
2025-07-23 21:07:12 +03:00 |
|
|
a251be2715
|
Make loops typecheck and type infere
|
2025-07-23 20:53:11 +03:00 |
|
|
15ff9c5906
|
Fix warnings
|
2025-07-23 20:44:58 +03:00 |
|
|
75a7a435d1
|
Make for-loops syntax sugar instead
|
2025-07-23 20:44:30 +03:00 |
|
|
1a5e3ef1d9
|
Add loops ast -> mir
|
2025-07-23 20:29:13 +03:00 |
|
|
ef4964ed86
|
Add parsing for for/while loops
|
2025-07-23 20:14:35 +03:00 |
|
|
c699b67d75
|
Add clamp and abs to std, credit to @neon
|
2025-07-23 19:54:20 +03:00 |
|
|
431aae0b0d
|
Add lexing to loops
|
2025-07-23 19:52:46 +03:00 |
|
|
ccb5741666
|
Fix add_num_to_str to accept arbitrary length numbers
|
2025-07-23 19:39:32 +03:00 |
|
|
9fcf19383c
|
Check that tests always return a specific value
|
2025-07-23 19:33:58 +03:00 |
|
|
59ecaa0d92
|
Make e2e test execute compiled binaries
|
2025-07-23 19:18:01 +03:00 |
|
|
bb69ce4968
|
Fix LD-environment variable
|
2025-07-23 19:01:24 +03:00 |
|
|
1a65b4085f
|
Add LDRunner
|
2025-07-23 18:57:56 +03:00 |
|
|
c622d59c93
|
Fix borrow derefs
|
2025-07-23 17:52:28 +03:00 |
|
|
fe4e41c435
|
Fix seeing same type multiple times when importing
|
2025-07-23 17:21:33 +03:00 |
|
|
8be6ce1549
|
Fix borrow-example
|
2025-07-23 16:58:44 +03:00 |
|
|
4de346e3c0
|
Make tests also codegen correctly
|
2025-07-23 16:33:12 +03:00 |
|
|
efeefe0bfe
|
Add scaffolding to return some errors from codegen
|
2025-07-23 16:06:05 +03:00 |
|
|
8b79959288
|
Fix typedefinition in scope
|
2025-07-23 15:34:01 +03:00 |
|
|
82758ae333
|
Only test for typedefinitions in current module
|
2025-07-23 15:22:58 +03:00 |
|
|
b723ff2d06
|
Upodate e2e tests
|
2025-07-23 15:17:23 +03:00 |
|
|
3a68154ae5
|
Add codegen for div and mod
|
2025-07-23 15:12:21 +03:00 |
|
|
b9459a19bb
|
Add div/mod parsing
|
2025-07-23 14:59:51 +03:00 |
|
|
c643bb235f
|
Add production of .llir and .mir -files for LLIR and MIR
|
2025-07-22 23:49:44 +03:00 |
|
|
b39b829061
|
Add production of .llir and .mir -files for LLIR and MIR
|
2025-07-22 23:32:32 +03:00 |
|
|
97f5eebf22
|
Fix some warnings
|
2025-07-22 23:25:49 +03:00 |
|
|
9df1593de9
|
Fix decimal parsing, add u128-support for integer parsing
|
2025-07-22 23:20:38 +03:00 |
|
|
8954d1a6d0
|
Add binop_hint
|
2025-07-22 23:14:38 +03:00 |
|
|
38b7030e98
|
Fix binary operations
|
2025-07-22 22:55:44 +03:00 |
|
|
1e86a9a2aa
|
Remove main.rs, remove debug prints
|
2025-07-22 22:42:29 +03:00 |
|
|
2f56f148cb
|
Fix assert_known
|
2025-07-22 22:41:20 +03:00 |
|
|
8bbee5eb41
|
Fix binops not using hint properly
|
2025-07-22 22:34:07 +03:00 |
|
|
ef427f5e58
|
Fix checking that parameters and return-type is known
|
2025-07-22 22:29:00 +03:00 |
|
|
0a90ac4497
|
Fix inner block generation
|
2025-07-22 22:15:34 +03:00 |
|
|
f944387847
|
Merge branch 'main' into if-expr-lhs-rhs
|
2025-07-22 21:50:43 +03:00 |
|
|
59c8b641ca
|
Move cli to main, update version
|
2025-07-22 21:39:54 +03:00 |
|
|
04ecc94403
|
Commit to git
|
2025-07-22 21:34:59 +03:00 |
|
|
682295b04a
|
Fix casting from the same size of integer
|
2025-07-22 21:05:52 +03:00 |
|
|
e5f6b37210
|
Fix std
|
2025-07-22 21:02:14 +03:00 |
|
|
29d790e583
|
Start working on if-expression hands being expressions
|
2025-07-22 20:58:32 +03:00 |
|
|
5c5c9c5f7b
|
Improve error for statement-failure
|
2025-07-22 20:54:06 +03:00 |
|
|
8f45c8cf92
|
Fix nested if/else, add add_num_to_str to standard library
|
2025-07-22 20:47:39 +03:00 |
|
|
32059682ee
|
Make add_char and set_char work
|
2025-07-22 20:27:29 +03:00 |
|
|
64418635a5
|
Add from_str to stdlib
|
2025-07-22 20:07:42 +03:00 |
|
|
28437aecb6
|
Fix indexing return type and casting to and from a char
|
2025-07-22 20:03:25 +03:00 |
|
|
bbdfae081d
|
Fix std Strings
|
2025-07-22 19:50:54 +03:00 |
|
|
3d73c52cb4
|
Fix casting within setters
|
2025-07-22 19:31:35 +03:00 |
|
|
81ce1dfc2e
|
Fix a bunch of bugs with debug information and stuff
|
2025-07-22 19:16:45 +03:00 |
|
|
78a1e9f06b
|
Fix typedef issue with modules
|
2025-07-22 18:03:15 +03:00 |
|
|
f35f1ef701
|
Repurpose module map and rename old to ErrorModules
|
2025-07-22 17:34:01 +03:00 |
|
|
fa6b7bdf87
|
Add temporary line number for for non-local structs
|
2025-07-22 16:35:15 +03:00 |
|
|
e9bca63f0d
|
Add module id to CustomType, String to std
|
2025-07-22 16:16:46 +03:00 |
|
|
1224c612c7
|
Codegen & compile char, change *str to *char
|
2025-07-22 15:07:33 +03:00 |
|
|
108cf6efa5
|
Add FCmp to codegen
|
2025-07-22 15:01:02 +03:00 |
|
|
9b9398ac26
|
Add lexing of escaped characters, add parsing of characters
|
2025-07-22 14:57:09 +03:00 |
|
|
e220900ac3
|
Start adding chars
|
2025-07-22 14:44:28 +03:00 |
|
|
9c0d373f9d
|
Fix casting to same type
|
2025-07-22 14:21:17 +03:00 |
|
|
e27aa4b8ab
|
Fix pointer-casting
|
2025-07-22 14:19:28 +03:00 |
|
|
c03a5188ea
|
Finish casting codegen
|
2025-07-22 14:12:31 +03:00 |
|
|
104205ee5d
|
Type-infer and check typecasting
|
2025-07-22 13:24:53 +03:00 |
|
|
3378f556ec
|
Add AST -> MIR for typecasting
|
2025-07-21 21:28:39 +03:00 |
|
|
c4ab4ac0b3
|
Add parsing of casting
|
2025-07-21 21:23:37 +03:00 |
|
|
471c2eaf87
|
Fix struct-parsing interfering with if-parsing
|
2025-07-21 20:52:39 +03:00 |
|
|
fe145ad2ef
|
Fix comparisons not working for integers
|
2025-07-21 20:25:28 +03:00 |
|
|
836a532d8d
|
Fix UserPointer being completely monkeypatched, found the issue
|
2025-07-21 20:13:15 +03:00 |
|
|
10d62eb1f7
|
Allow_identifiers_to_have_underscores
|
2025-07-21 19:36:44 +03:00 |
|
|
069c277516
|
Update String to be *str
|
2025-07-21 19:32:40 +03:00 |
|
|
eb99a4c74e
|
Fix range in literals
|
2025-07-21 19:18:39 +03:00 |
|
|
3d3a9a34f9
|
Fix binary operators for floats, make library functions extern
|
2025-07-21 17:32:20 +03:00 |
|
|
feac7163f2
|
Add a bunch of operations to lib
|
2025-07-21 17:03:21 +03:00 |
|
|
f0f828d1eb
|
Fix float type coercion and compilation
|
2025-07-21 16:54:50 +03:00 |
|
|
ec0c7fa194
|
Fix float coersion rules
|
2025-07-21 16:53:29 +03:00 |
|
|
a1507e14ca
|
Add flag to ignore no-main-error
|
2025-07-21 16:47:51 +03:00 |
|
|
7c7dde03f9
|
Fix error reporting on No-Main-Function and add fp compilation
|
2025-07-21 16:44:16 +03:00 |
|
|
bcc93dd60c
|
Add parsing to floats
|
2025-07-21 16:18:14 +03:00 |
|
|
e370e17ffd
|
Only include STD if it is imported
|
2025-07-21 15:47:02 +03:00 |
|
|
b23577aa18
|
Check for trivial expressions that they are >0 when unsigned
|
2025-07-21 15:44:47 +03:00 |
|
|
d65b0153a1
|
Implement unary operators as syntax sugar
|
2025-07-21 15:12:49 +03:00 |
|
|
ed9c8638d5
|
Get pointers working
|
2025-07-21 14:43:24 +03:00 |
|
|
9db508bd9c
|
Change user-space pointer to different type
|
2025-07-21 13:52:37 +03:00 |
|
|
a49105b07a
|
Add typecheck/infer for pointers
|
2025-07-21 13:29:19 +03:00 |
|
|
3b43689650
|
Add parsing pointer-type
|
2025-07-21 13:25:01 +03:00 |
|
|
1ba1ae3213
|
Try add some display for LLIR
|
2025-07-21 12:07:42 +03:00 |
|
|
f55040ad00
|
Update how types are formatted
|
2025-07-21 11:06:42 +03:00 |
|
|
ce645519ce
|
Fix NamedVarRefrence tokenrange
|
2025-07-21 10:52:33 +03:00 |
|
|
37386db437
|
Check for mutability when doing a let
|
2025-07-21 10:43:24 +03:00 |
|
|
5763df948f
|
Check borrow mutability against variable mutability
|
2025-07-21 10:39:19 +03:00 |
|
|
1fadaa60f2
|
Add mutability compatibility check to borrows
|
2025-07-21 10:33:37 +03:00 |
|
|
74ce296a05
|
Refactor a bit
|
2025-07-21 10:29:26 +03:00 |
|
|
b9f6f2ba0f
|
Make param mutable based on type
|
2025-07-21 10:23:30 +03:00 |
|
|
60818842a5
|
Add borrow mutability
|
2025-07-21 10:21:25 +03:00 |
|
|
8da32c25c5
|
Make borrows work as function parameters as well
|
2025-07-21 10:07:56 +03:00 |
|
|
2e829bc8a9
|
Fix linker, add e2e tests
|
2025-07-21 09:59:35 +03:00 |
|
|
09cec9c110
|
Implement borrowing in codegen
|
2025-07-21 09:54:55 +03:00 |
|
|
893eaaa865
|
Clean up and fix some warnings
|
2025-07-20 22:36:38 +03:00 |
|
|
550fec2827
|
Fix typeinference and checking for borrows/derefs
|
2025-07-20 22:33:00 +03:00 |
|