|
91a4872c34
|
Merge solver back with checker and apply algorithm for eager constraint
solving
|
2023-06-22 16:19:51 +02:00 |
|
|
2f9b6db5af
|
Adjust the way let-declarations are visited in the type-checker
Let-declarations are now roughly visited in the order they are
referenced, resulting in constraints being propagated in the same way.
|
2023-06-22 15:30:14 +02:00 |
|
|
6df807440a
|
Upgrade dependencies and check in package-lock.json
|
2023-06-21 16:58:02 +02:00 |
|
|
f58011e50e
|
Refactor by splitting into multiple files
|
2023-06-21 16:56:04 +02:00 |
|
|
935420d418
|
Fix bug in lexing a word directly after an empty comment
|
2023-06-15 16:40:28 +02:00 |
|
|
8b1263c376
|
Revert "Make it possible to nest match-expressions"
This reverts commit ac7467bccb .
The commit breaks too much syntax.
|
2023-06-15 16:29:35 +02:00 |
|
|
ac7467bccb
|
Make it possible to nest match-expressions
Although this fixes #46, this introduces a new bug for expressions that
require punctuation to be turned off. We will adress this in a separate
issue.
|
2023-06-12 22:00:46 +02:00 |
|
|
8addcb0990
|
Add some more automated test snippets
|
2023-06-12 16:54:41 +02:00 |
|
|
a3f40d51ef
|
Some enhancements in the parser
- Fix MemberExpression and IfStatementPart not receiving annotations
- Enable parsing of elif-statements
- Refactor some code
|
2023-06-12 16:53:26 +02:00 |
|
|
2be3deb5f6
|
Add missing ConsolePrinter.hpp and ConsolePrinter.cc
|
2023-06-12 16:52:10 +02:00 |
|
|
35bcf38eb3
|
Only create scope in LetDeclaration if it is a function
|
2023-06-12 16:50:55 +02:00 |
|
|
d81e92231f
|
Some minor enhancements
- Make if-elif-else possible
- Add more tests
- Ensure that failed tests fail tools like xargs
- Refactor printing logic out of ConsoleDiagnostics
|
2023-06-11 11:04:04 +02:00 |
|
|
d278456290
|
Add experimental support for compiler annotations
|
2023-06-08 20:27:01 +02:00 |
|
|
c0c36ca698
|
Add the missing very basic evaluatator
|
2023-06-06 17:30:24 +02:00 |
|
|
abae39c791
|
Move all tests to test/ improve Checker tests
|
2023-06-06 17:28:56 +02:00 |
|
|
0326bbe7f9
|
Record variant constructors for future use
|
2023-06-05 15:53:24 +02:00 |
|
|
d0b9c9702b
|
Fix simplifyType not expanding to the full solution
|
2023-06-05 15:51:40 +02:00 |
|
|
1147c751b9
|
Introduce new algorithm for better handling of recursive functions
|
2023-06-05 15:51:04 +02:00 |
|
|
1853612284
|
Add InferContext::add()
|
2023-06-05 14:45:13 +02:00 |
|
|
ebe1612112
|
Fix crash when using SourceFile.File when the reference no long exists
|
2023-06-05 12:16:54 +02:00 |
|
|
bc25ef77e4
|
Remove debug statement in main.cc
|
2023-06-05 11:25:07 +02:00 |
|
|
3c7aec7d5d
|
Rewrite main.cc to make use of the new zen::po
|
2023-06-04 22:46:44 +02:00 |
|
|
f63d892662
|
Re-introduce let declarations
Closes #42
|
2023-06-03 14:35:02 +02:00 |
|
|
73559460ec
|
Add a very simple evaluator for a subset of the language
|
2023-06-03 11:54:31 +02:00 |
|
|
4294063921
|
Simplify TArrow type as described in issue #42
|
2023-06-03 11:45:14 +02:00 |
|
|
eef23feb1c
|
Fix bug in TApp case of Type::hasTypeVar()
|
2023-06-03 11:20:22 +02:00 |
|
|
ebfcb2a2eb
|
Remove comment from Checker.cc
|
2023-06-02 21:46:35 +02:00 |
|
|
566bc497f3
|
Fix issue with swapping in Unifier::unifyField()
|
2023-06-02 21:45:47 +02:00 |
|
|
3a93952b36
|
Fix error while printing record types
|
2023-06-02 21:38:06 +02:00 |
|
|
af7fcb52b4
|
Fix some logic not making use of Checker::makeEqual
|
2023-06-02 21:18:35 +02:00 |
|
|
6234a49feb
|
Rename Value to LiteralValue in CST.hpp
|
2023-06-02 20:58:03 +02:00 |
|
|
bf77031dd5
|
Add Checker::makeEqual between CEqual and Checker::addConstraint
|
2023-06-02 20:56:12 +02:00 |
|
|
ca2eb24da2
|
Remove unused CClass constraint
|
2023-06-02 20:55:27 +02:00 |
|
|
aede794e43
|
Keep track of errors in DiagnosticEngine
|
2023-06-02 16:28:05 +02:00 |
|
|
693301bac6
|
Improve support for type classes and simplify algorithm
|
2023-06-01 16:22:37 +02:00 |
|
|
b467f9e644
|
Attempt to fix the eager solver in Checker.cc
|
2023-06-01 15:15:53 +02:00 |
|
|
a460b3b28a
|
Fix some bugs in print logic of CST nodes
|
2023-05-31 15:05:47 +02:00 |
|
|
25928c288b
|
Allow { and } on mupltiple lines with any indentation
|
2023-05-31 14:22:35 +02:00 |
|
|
b64b18216a
|
Second attemmpt at fixing critical bug in Node::unref()
|
2023-05-31 13:14:46 +02:00 |
|
|
717a2a663a
|
Some fixes and new pattern syntax
- Fix critical bug in deallocator
- Add TuplePattern
- Add ListPattern
- Make Checker hold a ListType
|
2023-05-31 12:39:19 +02:00 |
|
|
fa294b826e
|
Fix diagnostic message for Parser::parsePattern()
|
2023-05-31 11:16:28 +02:00 |
|
|
eaead44b18
|
Fix some parsing issues in MatchExpression
|
2023-05-31 11:15:31 +02:00 |
|
|
fd462f6d05
|
Tidy up Checker.cc/Checker.hpp a bit
|
2023-05-30 23:11:41 +02:00 |
|
|
75e0ebc14b
|
Disable printing the full type(s) on error for now
|
2023-05-30 21:36:46 +02:00 |
|
|
87af4686b7
|
Split let-declaration up into function/variable declarations
|
2023-05-30 21:34:40 +02:00 |
|
|
053d45868e
|
Rename Checker::pushContext() to Checker::setContext()
|
2023-05-30 17:00:15 +02:00 |
|
|
63547ee0a5
|
Fix some regressions due to previous commits
|
2023-05-30 15:27:21 +02:00 |
|
|
a8f8658f27
|
Make InferContext have a parent context
|
2023-05-30 13:37:47 +02:00 |
|
|
83e89f4e8c
|
Let VSCode update settings.json
|
2023-05-30 13:36:13 +02:00 |
|
|
41aa820bca
|
Fix scope resolution
|
2023-05-30 13:35:26 +02:00 |
|