a3ae4339cf
[fine] Many more import-related shuffles
2024-02-15 06:12:18 -08:00
994268abb6
[fine] Oh no a runtime and module loading and stuff
...
Lots of test work to use the new mechanism. I'm not sure I like it.
2024-02-12 22:49:34 -08:00
2dbdbb3957
[fine] Lifetime garbage, big refactor
...
So it turns out that I can't hold `&str` in token because it makes it
impossible to encapsulate a source file in the larger context- self
referential structure problems again. Everything gets rebuilt so that
the source can be passed through. While we're at it, more things
become Rc<> because, man..... life it too short.
Semantics in particular has become a giant hub of the module state: we
can basically just hold an Rc<Semantics> and have everything we could
possibly want to know about a source file, computed lazily if
necessary.
2024-02-11 09:31:51 -08:00
d5059dd450
[fine] List iteration... works?
...
A little hacky but it works!
2024-02-08 22:25:00 -08:00
5f67aa72d5
[fine] Remember to use this function
2024-02-07 06:11:25 -08:00
239e859eaf
[fine] Support assignment to member, loops with iterators
...
Hmm it's starting to look like something.
2024-02-07 01:57:41 -08:00
ac3c158a81
[fine] While loops, nothing
2024-02-05 06:11:37 -08:00
65ec2d4cca
[fine] Implement the wildcard pattern
2024-02-04 19:36:47 -08:00
deed9d9a45
[fine] Starting on pattern matching, make patterns explicit
2024-02-04 07:47:16 -08:00
198dc5bdb3
[fine] Evaluate is expressions, SO MANY BUG FIXES
2024-02-03 09:38:28 -08:00
afa4812074
[fine] Parse alternate types
2024-02-01 07:56:30 -08:00
36ed61b8bb
[fine] Name the type comparison method properly
2024-01-25 22:09:59 -08:00
19e57db724
[fine] Static methods I guess
2024-01-25 06:44:53 -08:00
0c69758b11
[fine] Methods!
2024-01-24 09:03:45 -08:00
2839b43f6d
[fine] Improvements to classes
...
- Classes are defined lazily
- Member access is via environment
- Member access is just a binary expression with a weird environment
- Slot loads look like variable loads now
- Associativity in the parser (ugh)
2024-01-22 23:17:02 -08:00
5f0a0b3268
[fine] Many test improvements, error improvements
...
- Check for more error conditions
- Move to more definitive error assertions
- Simpler error messages in some cases
- Test more conditions more thoroughly, revisit old tests
2024-01-21 08:14:42 -08:00
4505996710
[fine] Classes!
...
It's kinda amazing this works actually
2024-01-20 11:03:33 -08:00
0ee89bf26b
[fine] WIP: Classes
2024-01-20 08:56:53 -08:00
f20f5a5e03
[fine] Assignments!
...
And new error capabilities!
2024-01-19 19:08:17 -08:00
9ee8d39963
[fine] Starting on lists, god help me
2024-01-17 15:58:48 -08:00
b92287ec1f
[fine] Starting to work on generic parameters (yikes)
2024-01-16 19:52:45 -08:00
01798236ec
[fine] Compile iteratively instead of recursively
2024-01-16 09:26:05 -08:00
7fb88ef199
[fine] More tests and also comparisons
2024-01-15 09:43:56 -08:00
40d611ae37
[fine] Fix block compilation
2024-01-14 19:19:53 -08:00
1eb7da77fc
[fine] The VM lives! We can test it a little!
2024-01-14 16:06:14 -08:00
866830b485
[fine] A wild VM appears!
...
Untested though
2024-01-14 09:28:05 -08:00
65fef78c44
[fine] OK
2024-01-13 15:07:38 -08:00
5ebede4a21
[fine] Gobs of work
...
- Assertion improvements
- Type check function calls
- Functions in the environment
- Compile function calls
2024-01-13 08:12:39 -08:00
d8988cb2cf
[fine] test compilation, start removing print
2024-01-11 06:33:08 -08:00
f8f5c9bfac
[fine] lets can be local or global
2024-01-09 09:17:37 -08:00
fa53841af9
[fine] Starting to look like something
2024-01-09 07:56:14 -08:00
d14c9a72df
[fine] Fully untested compiler
2024-01-08 22:30:34 -08:00
6d2fd446ee
[fine] Garbage Compile
2024-01-08 18:43:47 -08:00