16151bd326
Actually made "this" work in the interpreter
2023-01-10 09:03:57 +01:00
3e4aea0d78
Interpreter - Working bound methods
2023-01-09 11:19:42 +01:00
542bc56aad
Interpreter - Initial implementation of bound methods
2023-01-09 10:50:24 +01:00
a2986a1342
Resolver - Class definitions create a scope that contains "this"
2023-01-09 10:48:50 +01:00
e46b399399
Interpreter - Handle references to "this"
2023-01-09 08:03:41 +01:00
f9359cfe03
Interpreter - Refactored lookup_var() to use VariableExpr
2023-01-09 08:02:59 +01:00
ea4717c8bd
Resolver - Handle the "this" keyword
2023-01-09 07:59:55 +01:00
1f4aecd099
Resolver - Refactored resolve_use() to use VariableExpr
2023-01-09 07:59:04 +01:00
7e7c8ffc37
Parser - Handle the "this" keyword
2023-01-09 07:56:58 +01:00
c9f74cdc55
AST - "this" keyword
2023-01-09 07:53:56 +01:00
dbd0f6d20f
Interpreter - Handle AST refactorings
2023-01-09 07:51:40 +01:00
b12c7a05cf
Resolver - Handle AST refactorings
2023-01-09 07:49:19 +01:00
0c588942bf
Parser - Handle AST refactorings
2023-01-09 07:46:42 +01:00
bb2765d057
AST - Refactored variable reference expressions
2023-01-09 07:43:45 +01:00
75387c5ac4
AST - Refactored binary expressions
2023-01-09 07:40:28 +01:00
58c1bbcf68
Interpreter - Access methods through get expressions
2023-01-09 07:32:50 +01:00
e371217df0
Interpreter - Initialize methods when creating classes
2023-01-09 07:32:29 +01:00
392aaa630d
Resolver - Apply resolution to methods
2023-01-09 07:22:15 +01:00
16bf06c7a1
Resolver - Added some spacing
2023-01-09 07:11:18 +01:00
5cfe6d3e5c
Interpreter - Set instance properties
2023-01-09 07:10:10 +01:00
7634354122
Resolver - Set expressions
2023-01-09 07:02:52 +01:00
a52e386e8d
Parser - Set expressions
2023-01-09 07:00:52 +01:00
a5172e103b
Dumper - Set expressions
2023-01-09 06:56:47 +01:00
2bdf675090
Dumper - Get expressions
2023-01-09 06:55:41 +01:00
082acaaa1e
AST - Set expressions
2023-01-09 06:54:03 +01:00
2b4ecf6d2c
Made Clippy slightly less unhappy
2023-01-08 15:27:19 +01:00
1c5efe7e62
AST - Replaced dumper
...
* Rewrote as a kind of "pretty" printer
* It isn't actually pretty but it does restore Lox code from the AST.
2023-01-08 15:25:27 +01:00
728c7a3857
Interpreter - Renamed class submodule to classes
2023-01-08 12:02:45 +01:00
5062e6c348
Interpreter - Instance fields
2023-01-08 12:01:05 +01:00
f8bcc2d703
Interpreter - Evaluate get expressions
2023-01-08 12:00:50 +01:00
20aa06ac25
Parser - Fixed parameter parsing bug
2023-01-08 12:00:01 +01:00
e963868aa7
Interpreter - Value helper methods to run code against instances
2023-01-08 11:57:56 +01:00
d07dbb2e89
Resolver - Get expressions
2023-01-08 11:32:09 +01:00
334dc99752
Parser - Some refactoring of code that handles identifiers
2023-01-08 11:31:02 +01:00
e006a12c80
Parser - Support for get expressions
2023-01-08 11:22:49 +01:00
616565bb0d
Token - Helper methods to better handle identifiers
2023-01-08 11:22:14 +01:00
0cebffbf9b
AST - Getter expression
2023-01-08 11:04:32 +01:00
7306fa0cfa
Parsed - Fixed class parser
2023-01-08 10:58:02 +01:00
af68acde70
Clippy, clippy, clippy!
2023-01-08 10:44:46 +01:00
d8dba3ac5f
Rewrote value storage and implemented class instantiation
...
* Probably not the last time.
* Object-like things (functions, classes, etc...) are stored as
ref-counted cells.
* Separate data structure for native functions.
* with_callable() method on value to run specific code on objects
that are callable
* Instance type added.
* Instance construction implemented
2023-01-08 10:40:36 +01:00
85e9c7db38
Interpreter - Callables now receive the callee value as an argument
2023-01-08 07:58:56 +01:00
692531ca65
Interpreter - Class declarations
2023-01-07 14:21:10 +01:00
f834d84365
Interpreter - Class values
2023-01-07 14:15:04 +01:00
6fa335b2f6
Interpreter - Basic, mostly empty class data structure
2023-01-07 14:14:45 +01:00
afb465d6df
Interpreter - Use Value.to_string() for print statements
2023-01-07 14:14:24 +01:00
621ca9d9f1
Interpreter - Class submodule
2023-01-07 14:08:31 +01:00
9bfb549a22
Resolver - Class declarations
2023-01-07 14:07:59 +01:00
5702abe44d
Parser - Parse classes
...
* New FunctionKind value for methods (with only 254 arguments)
* Class parsing
* Some minor refactoring of function parsing
2023-01-07 14:05:17 +01:00
36026681f7
AST - Added class declaration statements
2023-01-07 13:53:43 +01:00
1af25457d5
AST - Refactored function declarations as a separate struct
2023-01-07 12:18:18 +01:00