Implement Let, LetIn, Match inference, REPL now saves type environment and state for type variables.#21
Conversation
Signed-off-by: Gleb Nasretdinov <gleb.nasretdinov@proton.me>
Signed-off-by: Gleb Nasretdinov <gleb.nasretdinov@proton.me>
Signed-off-by: Gleb Nasretdinov <gleb.nasretdinov@proton.me>
Signed-off-by: Gleb Nasretdinov <gleb.nasretdinov@proton.me>
Signed-off-by: Gleb Nasretdinov <gleb.nasretdinov@proton.me>
Signed-off-by: Gleb Nasretdinov <gleb.nasretdinov@proton.me>
Signed-off-by: Gleb Nasretdinov <gleb.nasretdinov@proton.me>
Signed-off-by: Gleb Nasretdinov <gleb.nasretdinov@proton.me>
Signed-off-by: Gleb Nasretdinov <gleb.nasretdinov@proton.me>
Signed-off-by: Gleb Nasretdinov <gleb.nasretdinov@proton.me>
Signed-off-by: Gleb Nasretdinov <gleb.nasretdinov@proton.me>
Signed-off-by: Gleb Nasretdinov <gleb.nasretdinov@proton.me>
Signed-off-by: Gleb Nasretdinov <gleb.nasretdinov@proton.me>
Signed-off-by: Gleb Nasretdinov <gleb.nasretdinov@proton.me>
Signed-off-by: Gleb Nasretdinov <gleb.nasretdinov@proton.me>
Ycyken
pushed a commit
that referenced
this pull request
Jan 19, 2025
* add: typechecker #14 * add: simple tcheck template Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * add: multiple declaration check for func iddents & args Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * add: check multiple declarations in func body Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * add: main returns and args check Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * add: some undefined vars & func calls check Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * add: full check of idents defining Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * add: var decls typechecck Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * fix: fixe minor bugs with func args & added binop typecheck Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * fix: binops typecheck fix & add bin opers returns & binoper args check Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * fix: fixed warnings & some minor fixes Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * add: typecheck on assign & decl mismatch check Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * fix: func returns type check Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * add: func returns typecheck Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * ref: some code ref & some new test Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * ref: some coderef #2 Signed-off-by: Aleksei <dmt.alex2005@gmail.com> --------- Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * ref: zanuda lints #15 * ref: use function where possible Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * ref: check_main function Signed-off-by: Karim Shakirov <karimshak06@gmail.com> --------- Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * add: anon_func typecheck #16 * add: add Ctype for typechecker to check multiple returns Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * add: multiple returns w. long var decl check Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * add: preparations for afunc typecheck Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * add: anon_func typecheck Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * ref: some coderef & anon func test Signed-off-by: Aleksei <dmt.alex2005@gmail.com> --------- Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * Add unary oper and array indicies typecheck (#17) * ref: move errors and baseMonad to separate directories Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * ref: move typecheck tests to separate directory Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * test: add tests for main func and top level declarations Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * add: unary oper, lvalue and array index typecheck + ref Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * ref: rename variables Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * ref: use guard instead of if else Signed-off-by: Karim Shakirov <karimshak06@gmail.com> --------- Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * Major fixes, chan typecheck, tests, coderef and DOC (#18) * ref: remove redundant func & some improvements Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * add: func arg checck for multiple returns & simple types Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * fix: fixed multiple returns in args for stmt Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * fix: a lot of major fixes: chans, multiple returns in single-value context, nested func returns, multiple returns declaration & assign Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * add: doc & some minor coderef Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * ref: make returns type' list Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * ref: rename vars and remove redundant code Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * fix: chan send in check_init Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * ref: apply dune formatter Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * add: tcheck mli file Signed-off-by: Aleksei <dmt.alex2005@gmail.com> --------- Signed-off-by: Aleksei <dmt.alex2005@gmail.com> Signed-off-by: Karim Shakirov <karimshak06@gmail.com> Co-authored-by: Karim Shakirov <karimshak06@gmail.com> * ref: types and var names #19 * raf: coderef changed "= return" and etc. Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * ref: types in typeCheckMonad.mli Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * ref: rename vars anf apply dune formatter Signed-off-by: Karim Shakirov <karimshak06@gmail.com> --------- Signed-off-by: Aleksei <dmt.alex2005@gmail.com> Signed-off-by: Karim Shakirov <karimshak06@gmail.com> Co-authored-by: Aleksei <dmt.alex2005@gmail.com> * ref: zanuda lints Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * ref: zanuda lints 2 Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * fix: typecheck arrays & and doc #20 * add: const array inits typecheck Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * test: add some expr typecheck tests Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * fix: multi-dim array fix Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * add: new doc & multi-dim array indexes check in assignment Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * test: completed array tests & some coderef & improve doc Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * ref: change doc comments Signed-off-by: Karim Shakirov <karimshak06@gmail.com> --------- Signed-off-by: Karim Shakirov <karimshak06@gmail.com> Signed-off-by: Aleksei <dmt.alex2005@gmail.com> Co-authored-by: Karim Shakirov <karimshak06@gmail.com> * fix: rename forgotten type Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * test: add closure typecheck test Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * ref: remove global env, add let*, true/false #21 * ref: get rid of global env Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * ref: use let*, try/with and eta Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * add: predeclared true and false Signed-off-by: Karim Shakirov <karimshak06@gmail.com> --------- Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * fix: tests expected results Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * ref: doc comments + redundant pp in parser tests Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * fix: unused open Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * Add polymorphic functions make/print/panic typecheck, some minor fixes (#22) * add: type with func arg support Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * fix: fixed nested returns check & some minor fixes Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * add: polymirphic funcs & generics for make Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * test: add tests for predeclared functions Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * add: recover, nil typecheck Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * fix: error msg Signed-off-by: Karim Shakirov <karimshak06@gmail.com> --------- Signed-off-by: Aleksei <dmt.alex2005@gmail.com> Signed-off-by: Karim Shakirov <karimshak06@gmail.com> Co-authored-by: Karim Shakirov <karimshak06@gmail.com> * Fix PR advices & some coderef (#23) * fix: pr advices & some coderef Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * fix: nil assignment Signed-off-by: Karim Shakirov <karimshak06@gmail.com> --------- Signed-off-by: Aleksei <dmt.alex2005@gmail.com> Signed-off-by: Karim Shakirov <karimshak06@gmail.com> Co-authored-by: Karim Shakirov <karimshak06@gmail.com> * ref: zanuda lints Signed-off-by: Karim Shakirov <karimshak06@gmail.com> * ref: removed redundant inner typecheck error, some ref Signed-off-by: Aleksei <dmt.alex2005@gmail.com> * fmt: fix ocamlformat advices Signed-off-by: Aleksei <dmt.alex2005@gmail.com> --------- Signed-off-by: Aleksei <dmt.alex2005@gmail.com> Signed-off-by: Karim Shakirov <karimshak06@gmail.com> Co-authored-by: Karim Shakirov <karimshak06@gmail.com> Co-authored-by: Andrei <therain.i@yahoo.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.