Skip to content

Implement Let, LetIn, Match inference, REPL now saves type environment and state for type variables.#21

Merged
Ycyken merged 15 commits intomasterfrom
typecheck
Dec 16, 2024
Merged

Implement Let, LetIn, Match inference, REPL now saves type environment and state for type variables.#21
Ycyken merged 15 commits intomasterfrom
typecheck

Conversation

@Ycyken
Copy link
Owner

@Ycyken Ycyken commented Dec 16, 2024

No description provided.

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 Ycyken merged commit 1d8c2bb into master Dec 16, 2024
2 checks passed
@Ycyken Ycyken deleted the typecheck branch December 17, 2024 13:51
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant