Age | Commit message (Collapse) | Author | |
---|---|---|---|
2025-08-10 | Added term level type literals (for function type signatures) | Joel Kronqvist | |
2025-08-10 | Added into_type and used it to implement implicit conversions in type checking | Joel Kronqvist | |
2025-08-10 | Implemented aka. Changed Nil:st type to NilType from an empty list. | Joel Kronqvist | |
2025-08-10 | Added tests for conversions. Excluded emacs-files in .gitignore. | Joel Kronqvist | |
2025-08-10 | Added let bind history to REPL + other minor refactors in REPL | Joel Kronqvist | |
2025-08-09 | Implemented print as ? -> () | Joel Kronqvist | |
2025-08-09 | Revert adding of print (its behavior was poorly designed). | Joel Kronqvist | |
This reverts commit 3e1bf7f9946efe70d452c71494ac77ed39110804. | |||
2025-08-06 | Added print, raised level on which UnboundGeneric error is returned | Joel Kronqvist | |
2025-08-06 | Implemented let-bindings | Joel Kronqvist | |
2025-08-06 | Added boilerplate and tests for let-binds | Joel Kronqvist | |
2025-08-05 | Implemented vector. | Joel Kronqvist | |
2025-08-05 | Added vectors and tests for their evaluation and typing | Joel Kronqvist | |
2025-08-05 | Fix: quote is not a typewise identity function. Added vt(&str) as util for ↵ | Joel Kronqvist | |
VarType(String). | |||
2025-08-05 | Fixed type of Not, added documentation to the tour for booleans | Joel Kronqvist | |
2025-08-05 | Implemented booleans (no if-else yet) | Joel Kronqvist | |
2025-08-05 | Added boilerplate and tests for booleans, integer comparisons and boolean ↵ | Joel Kronqvist | |
operators. | |||
2025-08-05 | Changed project name | Joel Kronqvist | |
2025-08-04 | Added repl and some documentation. Improved error messages. Removed dead code. | Joel Kronqvist | |
* Removed same_variant in parse::parsetree * Added SExp::multistep (for use of the repl) Improved error messages: * Added parenthesis around types * Changed how errors propagate inferring generics: added the error variant ArgumentsDontMatchGeneric, implemented the displaying of it, added tests for it. * Had to change some tests to match for the new changes | |||
2025-08-04 | Implemented infer_type. Changed is_concrete tests and implemented it. | Joel Kronqvist | |
Error messages still need improvement, maybe some new variants? is_concrete was changed to hold information on the first unbound variable through Result<(), String>. | |||
2025-08-04 | Implemented generic substitution (tested) for use in inferring generics. | Joel Kronqvist | |
2025-08-03 | Changed UndefinedType to VarType(String) for generics and added tests for ↵ | Joel Kronqvist | |
inferring them. Inferring is done by method Type::infer_generics. Whether it is executed is controlled by method Type::is_concrete. Also had to change the Display for Type and its tests, as the enum variants changed. | |||
2025-08-03 | Implemented type_check, added method parts for SExp | Joel Kronqvist | |
'parts' is different from 'into_vec', because it doesn't require flat structure and always succeeds | |||
2025-08-02 | Added tests for type_check. Implemented std::fmt::Display for many enums. ↵ | Joel Kronqvist | |
Added type variants List(Type), and UndefinedType for use in error messages. Implemented type utility arr(a, b). | |||
2025-08-01 | Added boilerplate for Type, TypeError and type_check | Joel Kronqvist | |
(small commit, had to sync between desktop and laptop) | |||
2025-08-01 | Modified quote so the values of lists are evaluated | Joel Kronqvist | |
2025-07-31 | Added parse_to_ast for public use from other modules | Joel Kronqvist | |
2025-07-31 | Implemented tokens_to_ast. On second thought we should've just parsed the ↵ | Joel Kronqvist | |
code straight to ast without tokenization (implementing a parser on tokens was such a pain...) | |||
2025-07-30 | Merge work done on laptop to desktop computer | Joel Kronqvist | |
Merge branch 'devel' of ssh://cron4.fi/~/melisp into devel | |||
2025-07-30 | Added tests for tokens_to_ast | Joel Kronqvist | |
2025-07-30 | Implemented evaluation according to tests. Quite a bit of changes were ↵ | Joel Kronqvist | |
required, see rest of commit message. SExp::Quote was added to let the interpreter know whether a list should be evaluated or treated as a literal list. It still needs code to be added for parsing it successfully. Some utility functions were needed: * SExp::is_value * SExp::consists_of_values * SExp::into_vec | |||
2025-07-29 | Added Nil and modified tests to make this more of a list interpreter rather ↵ | Joel Kronqvist | |
than just a do-what-you-want-with-s-expressions thing | |||
2025-07-27 | Implemented tokenize with tests - note it doesn't check syntax | Joel Kronqvist | |
2025-07-27 | Implemented parse_token | Joel Kronqvist | |
2025-07-27 | Created parse_token and added tests for it | Joel Kronqvist | |
2025-07-26 | Implemented substitution | Joel Kronqvist | |
2025-07-26 | Added variables and tests for their substitution | Joel Kronqvist | |
2025-07-26 | Implemented integer operator dynamics, fixed some tests and added a ↵ | Joel Kronqvist | |
combination test. | |||
2025-07-26 | Created necessary data structures and utilities for integers and their ↵ | Joel Kronqvist | |
operations; added tests for them | |||
2025-07-26 | Initialized project and added nom as dependency | Joel Kronqvist | |