Commit graph

99 commits

Author SHA1 Message Date
3415b1a3f6 [fine] Here are some tests 2024-02-05 06:13:32 -08:00
ac3c158a81 [fine] While loops, nothing 2024-02-05 06:11:37 -08:00
1cc5ce6ca9 [fine] Clean up warnings 2024-02-04 20:22:31 -08:00
a8ab907eee [fine] A lot more typing/environmenting, doing better on example
Time to start actual tests
2024-02-04 20:19:08 -08:00
28ec6b5e85 [fine] Improve wildcard parsing, fix ephemera bug with peek_next 2024-02-04 20:04:55 -08:00
65ec2d4cca [fine] Implement the wildcard pattern 2024-02-04 19:36:47 -08:00
e0721d09fc [fine] Notes on patterns 2024-02-04 19:13:56 -08:00
deed9d9a45 [fine] Starting on pattern matching, make patterns explicit 2024-02-04 07:47:16 -08:00
f00b9e22e7 [fine] Bindings in if remain in scope! 2024-02-03 09:54:46 -08:00
198dc5bdb3 [fine] Evaluate is expressions, SO MANY BUG FIXES 2024-02-03 09:38:28 -08:00
b5b56b49a9 [fine] fix some bugs, semantics for is 2024-02-03 07:59:49 -08:00
ba5b37f5ff [fine] Parse is expression, partially 2024-02-02 06:32:03 -08:00
afa4812074 [fine] Parse alternate types 2024-02-01 07:56:30 -08:00
f7acfd588d [fine] Even more resilience, I can stop now
Also fix a bug, could not return from a method OOPS
2024-02-01 06:35:43 -08:00
7f30d0ccc3 [fine] More resilience
We don't lose function declarations and whatnot, although we get lost
with broken return types.
2024-01-31 07:46:20 -08:00
93c9dcd13b [fine] Suggestion for improvement in match
No special keyword. Exhaustivity is harder.
2024-01-30 06:39:10 -08:00
f2e82942df [fine] Some resilience, a design improvement for iterator 2024-01-29 10:04:47 -08:00
15548afc38 [fine] Split environment and type fully
Environment and type are now fully split, so that neither directly
depends on each other, to remove another class of circular dependency.
2024-01-29 06:42:51 -08:00
019d780f85 [fine] Design for "intersection" types 2024-01-28 22:15:13 -08:00
f634e4da18 [fine] Don't panic on this parse error 2024-01-28 22:15:01 -08:00
607847abc3 [fine] ICE sorts errors on reporting 2024-01-28 22:12:30 -08:00
36ed61b8bb [fine] Name the type comparison method properly 2024-01-25 22:09:59 -08:00
e66ffbb5ae [fine] Design notes, more garbage 2024-01-25 22:09:44 -08:00
19e57db724 [fine] Static methods I guess 2024-01-25 06:44:53 -08:00
bc57978dda [fine] No methods assigned to variables! 2024-01-24 09:11:55 -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
0d48bfb113 [fine] starting to work on methods 2024-01-22 06:04:13 -08:00
fde5579479 [fine] Some design notes
Just like... write some stuff down.
2024-01-21 09:23:45 -08:00
741a729f8d [fine] Working on parser resilience 2024-01-21 09:23:20 -08:00
11cb7199e9 [fine] Fix a problem with a stuck parser
Whoops
2024-01-21 09:02:48 -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
d0b74db715 [fine] Error checking for some cases 2024-01-20 11:13:22 -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
e6c96fde38 [fine] Some tests to make work at some point I guess 2024-01-19 21:01:10 -08:00
f20f5a5e03 [fine] Assignments!
And new error capabilities!
2024-01-19 19:08:17 -08:00
92cf840766 [fine] A little more test 2024-01-17 16:10:07 -08:00
9ee8d39963 [fine] Starting on lists, god help me 2024-01-17 15:58:48 -08:00
106f2eb30f [fine] Giving up on generics for now 2024-01-17 09:12:00 -08:00
b92287ec1f [fine] Starting to work on generic parameters (yikes) 2024-01-16 19:52:45 -08:00
aaa88717f5 [fine] Error on generic parameters 2024-01-16 19:36:13 -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
55749af917 [fine] Some fixes around return statements 2024-01-15 09:04:28 -08:00
44bc072b04 [fine] Test for function return type mismatch 2024-01-15 07:52:49 -08:00
d893002ec2 [fine] Check the return type of functions
A function returns what it says it does, the check is that the body
returns the right value.
2024-01-15 07:46:20 -08:00
257a7e64c2 [fine] More test more! 2024-01-15 07:19:29 -08:00
2f8e1bad85 [fine] More test! 2024-01-14 19:40:47 -08:00
40d611ae37 [fine] Fix block compilation 2024-01-14 19:19:53 -08:00