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
|
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 *)
|
(* Show a message only if the input is read from stdin *)
|
||||||
let show s = match file with
|
let show s = match file with
|
||||||
| None -> Printf.printf "%s" s
|
| None -> Printf.printf "%s" s
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user