Typecheck
This commit is contained in:
parent
09ebe6339e
commit
7aba10f5fc
23
main.ml
23
main.ml
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user