Commit graph

312 commits

Author SHA1 Message Date
09b4b4e688 Interpreter - Refactored getter/setter support as a trait on an instance ref 2023-01-11 19:44:52 +01:00
8b19f546c8 Parser - Removed handling of 'return' special cases
* This has been implemented in the resolver so it's pretty pointless
    to do it twice
2023-01-11 15:33:41 +01:00
ee53c2fba4 Resolver - Improved handling of 'return' 2023-01-11 15:33:21 +01:00
57a5a62300 Resolver - Check return statements in the resolver 2023-01-11 15:30:24 +01:00
406400bf71 Resolver - Don't reset scope types while parsing function blocks 2023-01-11 15:29:48 +01:00
aa48973e23 Resolver - Support and detection of the initializer scope type 2023-01-11 15:19:21 +01:00
0a581f042d Resolver - Keep track of the container scope's type 2023-01-11 15:15:40 +01:00
47c4136c25 Interpreter - Refactored instance to avoid runtime borrom problems 2023-01-11 08:21:48 +01:00
c4f0f0f721 Interpreter - Fixed special case for init 2023-01-11 08:03:42 +01:00
3af544a78e Interpreter - Initialize support in instances
* Doesn't work at this point
2023-01-11 07:50:02 +01:00
783a2e3dd0 Interpreter - Special case for initializer methods 2023-01-11 07:46:13 +01:00
98eef78583 Clippity clip clippy 2023-01-11 07:21:50 +01:00
ecc8f2ec8b Removed various bits of unused code 2023-01-11 07:20:29 +01:00
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