This commit is contained in:
Mylloon 2023-11-28 01:59:55 +01:00
parent ae2b764821
commit 3ee85d7766
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

View file

@ -67,16 +67,19 @@ let rec synth_expression
: HopixTypes.typing_environment -> HopixAST.expression Position.located : HopixTypes.typing_environment -> HopixAST.expression Position.located
-> HopixTypes.aty -> HopixTypes.aty
= =
fun env Position.{ value = e; position = pos } -> function fun env Position.{ value = e; position = pos } ->
match e with
| Literal l -> type_of_literal l.value | Literal l -> type_of_literal l.value
| Variable (id, tlist) -> failwith "Students! This is your job! Variable" | Variable (id, tlist) -> failwith "Students! This is your job! Variable"
| Tagged(cons,_,[]) -> HopixTypes.hbool (*Pas sûr, j'ai regardé comme dans hopixInterpreter au début*) | Tagged (cons, _, []) ->
HopixTypes.hbool (*Pas sûr, j'ai regardé comme dans hopixInterpreter au début*)
| Apply (a, b) -> failwith "Students! This is your job! Apply" | Apply (a, b) -> failwith "Students! This is your job! Apply"
| Record (field, tliste) -> failwith "Students! This is your job! Record" | Record (field, tliste) -> failwith "Students! This is your job! Record"
| Fun(_) -> failwith "Students! This is your job! Fun synth" (* TODO : ici on ne peut pas synthesisé. cf Cours*) | Fun _ ->
failwith "Students! This is your job! Fun synth"
(* TODO : ici on ne peut pas synthesisé. cf Cours*)
| TypeAnnotation (expr, t) -> failwith "Students! This is your job! TypeAnnotation" | TypeAnnotation (expr, t) -> failwith "Students! This is your job! TypeAnnotation"
and type_of_literal l = and type_of_literal l =
match l with match l with
| LInt _ -> HopixTypes.hint | LInt _ -> HopixTypes.hint
@ -87,10 +90,10 @@ and check_expression
: HopixTypes.typing_environment -> HopixAST.expression Position.located : HopixTypes.typing_environment -> HopixAST.expression Position.located
-> HopixTypes.aty -> unit -> HopixTypes.aty -> unit
= =
fun env (Position.{ value = e; position = pos } as exp) expected -> function fun env (Position.{ value = e; position = pos } as exp) expected ->
match e with
| Fun df -> failwith "Students! This is your job! Fun check" | Fun df -> failwith "Students! This is your job! Fun check"
| _ -> failwith "Students! This is your job! check_expression wildcard"
and check_value_definition and check_value_definition
: HopixTypes.typing_environment -> HopixAST.value_definition : HopixTypes.typing_environment -> HopixAST.value_definition