Commit graph

50 commits

Author SHA1 Message Date
c8be65dc4c Interpreter - Remove checks for duplicate argument names 2023-01-02 21:49:45 +01:00
db781ed00f HAPPY CLIPPY IS HAPPY!!!! 2023-01-02 21:44:02 +01:00
f1145bfbdf Interpreter - Lambda support 2023-01-02 21:37:56 +01:00
0ef1318a35 Interpreter - Function name is optional (lambdas...) 2023-01-02 21:37:29 +01:00
d6ea1c3099 Interpreter - Handle return value in functions 2023-01-02 20:46:34 +01:00
0de6b927b5 Interpreter - Return statement 2023-01-02 20:41:59 +01:00
e4a86eb1de AST - Fixed statement nodes with *Stmt names 2023-01-02 20:13:51 +01:00
6acf492aa2 Interpreter - Handle function definitions 2023-01-02 20:08:47 +01:00
cf3284cd88 Interpreter - Handle errors for multiple definitions of an argument 2023-01-02 20:08:05 +01:00
7b20ec2f3a Interpreter - Define functions from name/params/body
* Used to be defined from statement, but this is cleaner and easier
2023-01-02 20:07:15 +01:00
360ec57914 Interpreter - Fixed typo 2023-01-02 20:06:12 +01:00
ca3ec46bdc Interpreter - Data structure for functions 2023-01-02 19:50:55 +01:00
f02d15fa83 Interpreter - Scope change for a few functions 2023-01-02 19:49:58 +01:00
e963a9f7ca Interpreter - New submodule for functions 2023-01-02 18:58:20 +01:00
0a38903154 I <3 CLIPPY 2023-01-02 18:23:12 +01:00
9d555acae0 Interpreter - Default environment includes native functions 2023-01-02 18:20:23 +01:00
24b57d35d0 Interpreter - clock() native function 2023-01-02 18:20:02 +01:00
7b8405119b Interpreter - CallableRef type alias 2023-01-02 18:19:45 +01:00
d450f186b4 Interpreter - Added the native_fn empty mod 2023-01-02 17:57:34 +01:00
113fffb872 Interpreter - Environment::default() implemented manually 2023-01-02 17:55:05 +01:00
6a227c96ee Interpreter - Fixed silly english/french confusion 2023-01-02 17:49:35 +01:00
3750b5226b Interpreter - Check arity before calling 2023-01-02 17:47:53 +01:00
d47adab0f8 Interpreter - Call implementation 2023-01-02 17:45:56 +01:00
8ab144f3c5 Interpreter - Move function call arguments 2023-01-02 17:45:19 +01:00
1ad55e95f5 Interpreter - Use EnvironmentRef in Callable 2023-01-02 17:44:51 +01:00
34619a8125 Interpreter - Callable extends Debug and ToString 2023-01-02 17:40:06 +01:00
696a363ec6 Interpreter - Implement PartialEq manually for values 2023-01-02 17:39:31 +01:00
a4875ff876 Interpreter - Actually use the callable module 2023-01-02 16:04:44 +01:00
3b5778ff47 Interpreter - Function re-ordering 2023-01-02 16:00:10 +01:00
b1d0db5ea4 Interpreter - Callable interface definition 2023-01-02 15:54:50 +01:00
a317e54426 CLIPPY IS GOD. 2023-01-02 14:10:32 +01:00
2f0798bfe1 Interpreter - Implemented new version of the loop statement 2023-01-02 12:18:00 +01:00
7541a8bda6 Interpreter - Support for loop labels 2023-01-02 11:26:12 +01:00
2599c0ebdc Interpreter - Don't return interpreter results from the environment's methods 2023-01-02 11:25:48 +01:00
ddf6625326 Interpreter - While loops 2023-01-01 18:44:35 +01:00
a671836655 Interpreter - Support for logical or / and 2023-01-01 18:27:45 +01:00
79c594afa9 Interpreter - Fixed == operator. Oops. 2023-01-01 18:27:33 +01:00
9a84283245 Interpreter - If statement 2023-01-01 11:10:48 +01:00
81aef09c5b Interpreter - Additional errors for variables
* Uninitialized variable usage
  * Redefining variables
2023-01-01 10:52:29 +01:00
e92628a4eb Interpreter - Nested environments 2022-12-31 17:27:09 +01:00
d9e3ef2623 Environment - Rc<RefCell<...>> to store the parent 2022-12-31 17:26:40 +01:00
c71bdd8c87 Environment - Attempt at nesting support 2022-12-31 16:56:00 +01:00
f4111577ca Interpreter - Variable assignment 2022-12-31 16:36:29 +01:00
8d6191c7ee Environment - Support for assignment 2022-12-31 16:32:59 +01:00
c486b81cba Interpreter - Support for initializing and using variables 2022-12-31 16:13:40 +01:00
90557e6600 Interpreter - Create and pass the environment when evaluating 2022-12-31 16:01:47 +01:00
8b44af08ba Interpreter - Initial environment implementation 2022-12-31 15:57:54 +01:00
7f94906412 Interpreter - Created environment module 2022-12-31 15:50:23 +01:00
bf6e150085 Interpreter - Split into multiple modules 2022-12-31 15:49:31 +01:00
81b5f27f0a Interpreter - Moved module to subdirectory 2022-12-31 15:45:28 +01:00