Janis
486a634ea1
more fixes
2025-03-06 18:40:17 +01:00
Janis
8b3789d7b0
placeness solver on ast after parsing
2025-03-06 15:41:34 +01:00
Janis
d6450b5f32
using the new visitor for debug rendering
2025-03-06 12:41:39 +01:00
Janis
f30b7827b8
pulled out modules into separate files
2025-03-06 02:28:02 +01:00
Janis
6cc1822ec6
trying to fix declrefs to params being places
2025-03-06 02:18:46 +01:00
Janis
8c95a2ba3d
single-threaded interior mutably wrapper for internpool
2025-03-06 02:18:15 +01:00
Janis
f5fc8195f4
fix, lint
2025-03-06 01:12:25 +01:00
Janis
1be3f29e23
place-value stuff should work now
2025-03-06 01:02:35 +01:00
Janis
6d70231c91
this should be correct?
2025-03-05 22:21:36 +01:00
Janis
51aa119af2
i dont think this is the right way to do this, in hindsight
2025-03-05 15:49:19 +01:00
Janis
028c74753e
place and value expression conversion in ast
2025-03-05 15:48:46 +01:00
Janis
1a20acd763
ast visiting for IR building
2025-03-04 18:58:55 +01:00
Janis
379769bc59
split ast tag arrays
2025-03-01 19:22:31 +01:00
Janis
43c828d96f
irgen of ast2
2024-12-29 19:57:29 +01:00
Janis
f6b956deee
normalising BlockTrailingExpr where it returns into Block with a Ret expr
2024-12-27 03:49:50 +01:00
Janis
e002a6ddc9
small fixes/visiter pattern/pub visibility
2024-12-27 03:49:25 +01:00
Janis
1b5cc3302b
rename ast_visitor module to visitor
2024-12-26 01:03:30 +01:00
Janis
f6fc83ce02
using visitor for rendering ast
2024-12-26 01:02:40 +01:00
Janis
4e59e02178
visitor pattern for ast
2024-12-26 00:40:11 +01:00
Janis
13df06421c
intern struct type the first time it is defined
...
at that point the fields might not yet have proper types
2024-12-25 20:37:35 +01:00
Janis
1bd6c43341
iterate over multiple files and compile&execute in test.sh
2024-12-23 03:40:30 +01:00
Janis
d743292710
compile help script
...
fix issue where mir interpreted intern indices as data for constants
2024-12-23 03:08:13 +01:00
Janis
7c01afbf2f
TOO MUCH!!!! InternPool use everywhere in old ast
2024-12-23 02:34:02 +01:00
Janis
7801fefa17
mir function type and using internpool
2024-12-23 02:33:43 +01:00
Janis
3be955aebf
internpool helpers/ fixes
2024-12-23 02:32:43 +01:00
Janis
d9e6d99286
bit-length helper for integers and byte slices
2024-12-23 00:55:19 +01:00
Janis
6ba146f565
intern/key display printing
2024-12-23 00:54:19 +01:00
Janis
632729af52
InternPool bytes
...
make intern::Index a bit safer/clearer to use
added bytes to internpool
more helper functions for interning numbers/bytes/strings
2024-12-22 23:55:58 +01:00
Janis
a3bee90ac3
mir/triples use internpool now for types
2024-12-22 22:25:01 +01:00
Janis
0994f4b187
fix comptime eval
2024-12-22 19:12:15 +01:00
Janis
96863e0397
cargo fmt
2024-12-22 19:01:22 +01:00
Janis
30ce12988d
insert symbol on functiondecl
...
return ident from parse_fn_proto
2024-12-22 19:00:29 +01:00
Janis
7cea2452d1
from none doesn't need data to be passed
2024-12-22 18:58:20 +01:00
Janis
1df5429eab
extracting ast2::intern into its own file
2024-12-22 18:57:19 +01:00
Janis
6494e827fb
nightly fixes 22.12.24
2024-12-22 18:21:23 +01:00
Janis
006e982cde
untracked files and changes
2024-10-17 15:20:16 +02:00
Janis
cbbbb7989a
array types can now use an expression to define the array size
...
this was surprisingly non-trivial
2024-09-16 17:18:23 +02:00
Janis
4f70fa2246
comptime folding,
...
- reduced scope of foldability to just simple expressions and declrefs to globaldecls
2024-09-16 16:55:04 +02:00
Janis
3d014ad985
casting of comptimenumbers into other comptime numbers
2024-09-16 16:53:58 +02:00
Janis
4e27002fb9
void comptimenumber type for easier erroring on non-value ast nodes
2024-09-16 16:53:30 +02:00
Janis
464baa7bd7
creating graph for comptime folding dependencies
2024-09-16 01:04:52 +02:00
Janis
5ad0e9e8e7
calculate which nodes are comptime evaluable
2024-09-16 00:15:39 +02:00
Janis
888517f2ea
soooo many thigns in need to commit more often
...
also, types exist in the ast, but are interned after parsing
refs and typerefs are resolved
true and false in the intern pool, need to add them to primaryexpr
structs in the internpool take a decl to differentiate struct types of the same
name
field access postfix expr? also nesting postfix expr (e.g. var[1][2])
arrays can only be specified with integral constants as length
fixes:
sinttype and uinttype store bits inline in item.index correctly
mut/var decl assignment? have correct doc strings
let/var symbol is inserted after the assignment expr, so that the expr can still
use
now-shadowed variables
structs can have fields of type pointer-to-self (ast)
lots of wrong-cases in node children getting
2024-09-15 00:38:50 +02:00
Janis
a565c1e1e9
parsing struct definitions in ast
2024-09-14 13:09:17 +02:00
Janis
de22a9e01a
helper function for parsing text within () or {}
2024-09-13 22:47:04 +02:00
Janis
4432cf198e
better debug impls for types, fix for simpletype key
2024-09-13 19:36:13 +02:00
Janis
5c38969ef8
cooooool stuff for the new ast generator and intern pool and symbol table
...
basically, btrees are awesome.
2024-09-13 19:07:42 +02:00
Janis
6f3a7dc56c
helpers for reading ast Data
and getting children of ast nodes
2024-09-09 15:41:56 +02:00
Janis
45653380cf
new ast parser
2024-09-09 15:01:53 +02:00
Janis
44fa241a79
new ast module
2024-09-03 22:58:46 +02:00