Commit graph

32 commits

Author SHA1 Message Date
0a581f042d Resolver - Keep track of the container scope's type 2023-01-11 15:15:40 +01:00
98eef78583 Clippity clip clippy 2023-01-11 07:21:50 +01:00
a2986a1342 Resolver - Class definitions create a scope that contains "this" 2023-01-09 10:48:50 +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
b12c7a05cf Resolver - Handle AST refactorings 2023-01-09 07:49:19 +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
7634354122 Resolver - Set expressions 2023-01-09 07:02:52 +01:00
d07dbb2e89 Resolver - Get expressions 2023-01-08 11:32:09 +01:00
9bfb549a22 Resolver - Class declarations 2023-01-07 14:07:59 +01:00
1af25457d5 AST - Refactored function declarations as a separate struct 2023-01-07 12:18:18 +01:00
6252bed605 Happy clippy is happy (and Clippy) 2023-01-07 11:59:32 +01:00
8741692fad Resolver - Store declaration tokens as references 2023-01-07 11:55:41 +01:00
34991d4b4b Resolver - Report an error if a symbol isn't used 2023-01-07 11:41:04 +01:00
4bce85e14b Resolver - Errors on undefined symbols 2023-01-07 11:10:24 +01:00
06917ca2d6 Resolver - Split resolve_local() into specific methods 2023-01-07 11:06:22 +01:00
24d9d6d880 Resolver - Handle the global namespace as well 2023-01-07 10:58:02 +01:00
c971df6f60 Resolver - Refactored declare() 2023-01-07 10:53:05 +01:00
8d65c288a3 Resolver - Refactored entering/exiting scopes 2023-01-07 10:51:34 +01:00
6dceae73a0 Resolver - Additional checks
* Ensure all locals are defined before they are used.
  * Prevent functions declared using fun from being assigned to.
  * Mark locals as used when they are accessed.
2023-01-07 10:17:08 +01:00
ec70ded29e Fixed variable lookups and assignments 2023-01-07 08:48:21 +01:00
754659ed12 Resolver - Removed invalid fix mistakenly committed in 79a0667 2023-01-05 07:13:20 +01:00
c90731b62d Resolver - Comments 2023-01-05 07:12:21 +01:00
64bc8312dd Resolver - resolve_function() shouldn't be a method from ResolverState 2023-01-05 07:09:35 +01:00
b5573cee3b Resolver - Fixed off-by-one error in resolve_local() 2023-01-05 07:06:27 +01:00
79a0667f34 Resolver - Errors on duplicate declarations 2023-01-05 06:58:29 +01:00
7961a92ad1 Further attempts at refactoring the error handling code
* Everything's still broken though
2023-01-04 07:35:40 +01:00
acb29e7123 Resolver - Refactored error handling 2023-01-03 22:50:47 +01:00
1346e0ccf0 Resolver - Return the map of resolved variables 2023-01-03 12:56:40 +01:00
376f28044c Resolver - Fixed function handling
* Since the arguments are stored in an intermediate environment, an
    additional scope is required
2023-01-03 12:55:48 +01:00
5a12ce44c1 Resolver - Initial implementation
* Not sure about using pointers to Expr nodes in order to remember how
    they can be resolved.
  * Unused and untested.
2023-01-03 08:50:12 +01:00