ctsk
59d5984e3d
[rlox] Implement Globals (and cleanup a...lot)
2024-11-24 20:52:45 +01:00
ctsk
895b0f6b72
[rlox] More error handling, less panicking
2024-09-13 11:28:19 +02:00
ctsk
2d8190c4bb
[jlox] Fix class definition parsing
2024-09-05 09:46:55 +02:00
ctsk
7d0a7b072a
[jlox] Match error messages to official impl
...
.... For easier automated testing
2024-09-05 09:46:13 +02:00
ctsk
8d524a05e1
[tlox] Cache ConcatNode for String add
2024-09-02 16:55:13 +02:00
ctsk
2c8817aa69
[tlox] Implement TruffleLanguage class
2024-09-02 16:15:15 +02:00
ctsk
a62fdeb8e4
[tlox] Implement String concatenation
2024-09-02 16:13:39 +02:00
ctsk
297ec48bdb
[rlox] Add parse errors, pop expr statements
2024-09-01 23:44:38 +02:00
ctsk
80b0c20ccd
[rlox] Implement Print Statements
2024-08-30 13:10:27 +02:00
ctsk
78ef9fdc07
[rlox] Fix string interning
2024-08-27 15:59:56 +02:00
ctsk
0d7980ddc7
[rlox] Implement basic linked-list allocation management
2024-08-27 15:59:49 +02:00
ctsk
2fe0743fd2
[rlox] summer cleanup (clippy stuff)
2024-08-17 13:05:33 +02:00
ctsk
94fe68aedc
[rlox] Error when add operands are of wrong types
2023-10-21 12:16:17 +02:00
ctsk
1d0fde3594
[rlox] Fix comment scanning
2023-10-21 10:36:18 +02:00
ctsk
584536c059
[rlox] Add strings
2023-10-16 20:40:53 +02:00
ctsk
90e70c4cd2
[rlox] Make nil falsey + add equal and comparisons
2023-10-09 13:47:46 +02:00
ctsk
8ea397881c
[rlox] Add trace to repl
2023-10-09 11:44:37 +02:00
ctsk
f617738674
[rlox] Add Not op
2023-10-08 21:31:07 +02:00
ctsk
8ace98a215
[rlox] Add boolean literals
2023-10-08 20:58:17 +02:00
ctsk
ef7c53a55c
[rlox] Add dedicated instruction for Nil
2023-10-08 20:30:43 +02:00
ctsk
68b165bebe
[rlox] Lint main.rs
2023-10-08 13:38:42 +02:00
ctsk
824ab73dcf
[rlox] Support Nil
2023-10-08 13:38:30 +02:00
ctsk
957463bf2f
[rlox] Handle incomplete expression
2023-10-08 12:44:32 +02:00
ctsk
45014fbe77
[rlox] Add repl
2023-10-08 12:25:21 +02:00
ctsk
e7e7ef3b10
[rlox] Clean up
2023-10-08 11:20:00 +02:00
ctsk
8ce54fc17c
[rlox] Add first sprout of parser
2023-06-04 19:19:48 +02:00
ctsk
20cb2e90d2
[rlox] Move name out of Chunk
2023-06-03 13:45:31 +02:00
ctsk
6d9511e7f2
[rlox] Faactor out scanner tests
2023-04-19 10:22:49 +02:00
ctsk
02dd735ea6
[rlox] refactor
2023-04-14 15:27:24 +02:00
ctsk
50780273f2
[rlox] Implement Scanner
2023-04-14 14:37:39 +02:00
ctsk
5be9950d99
[rlox] mini-cleanup
2023-04-04 20:49:42 +02:00
ctsk
d227e3d3ba
[rlox] Implement basic arithmetic ops
2023-04-04 19:03:57 +02:00
ctsk
c0447cf7ab
[tlox] LoxException -> runtime.LoxException
2023-03-30 21:25:44 +02:00
ctsk
278bcf5a54
[rlox] Dedop tracing
2023-03-30 20:43:36 +02:00
ctsk
acc95c36e9
[rlox] Implement VM Stack
2023-03-30 11:49:38 +02:00
ctsk
73a3d93f82
[rlox] Add line information to chunk
2023-03-29 21:15:41 +02:00
ctsk
d6e6b1d3ab
[rlox] Use fewer files
2023-03-29 20:07:31 +02:00
ctsk
ff67071f5b
[rlox] init
2023-03-29 20:03:16 +02:00
ctsk
26cbca5c55
[jlox] conformance tests (wip)
2022-10-11 14:38:29 +02:00
ctsk
da00410738
Implement super
2022-10-11 13:18:40 +02:00
ctsk
f0b55491d8
[jlox] Interpret superclasses
2022-10-11 12:58:28 +02:00
ctsk
e68b3036f7
[jlox] Resolve superclasses
2022-10-11 12:12:32 +02:00
ctsk
6d20bb63c2
[jlox] Parse superclass
2022-10-11 12:07:44 +02:00
ctsk
5729dbc010
[jlox] Add get/set for instance fields
2022-10-10 20:44:31 +02:00
ctsk
f1eeff583c
[jlox] Classes
2022-09-17 22:17:52 +02:00
ctsk
a744ca18f9
Revert "[tlox] global vars"
...
This reverts commit c8f5edc494 .
2022-09-17 20:48:05 +02:00
ctsk
c8f5edc494
[tlox] global vars
2022-09-15 17:22:00 +02:00
ctsk
63d502d6f9
[tlox] Add 'Nil'
2022-09-15 10:03:06 +02:00
ctsk
94ffb5370b
[tlox] Add string and boolean literals
2022-09-14 22:55:19 +02:00
ctsk
b400c6b4ef
[jlox] Add Resolution and Binding
...
A very subtle bug: The resolution relies on the fact that Java has a
concept of object identity: Even when the "Contents" of two objects are
equal, those objects are not considered equal.
This does not hold for records:
```
record Test(int val) {}
var a = new Test(1);
var b = new Test(1);
var m = new HashMap<>();
m.put(a, "Hello");
m.get(b); // returns "Hello"
```
tl;dr - got bitten by trying to do things fancy
2022-09-14 20:45:54 +02:00