Typecheck

This commit is contained in:
Adrien Vannson 2022-05-16 23:19:18 +02:00
parent 09ebe6339e
commit 7aba10f5fc
No known key found for this signature in database
GPG Key ID: FE2E66FD978C1A55

23
main.ml
View File

@ -77,6 +77,29 @@ if !alpha_option then (
exit 0
);
if !typecheck_option then (
let lexbuf = Lexing.from_channel (match file with
| None -> stdin
| Some file -> file
)
in
let lambda_term =
try
Parser.main_lambda Lexer.token lexbuf
with e -> (
Printf.printf "Can't read lambda term\n";
raise e
)
in
Printf.printf "The type of %s is " (string_of_lam lambda_term);
if typecheck lambda_term then (
Printf.printf "correct\n"
) else (
Printf.printf "incorrect\n"
);
exit 0
);
(* Show a message only if the input is read from stdin *)
let show s = match file with
| None -> Printf.printf "%s" s