trying to understand the CHARABIA
This commit is contained in:
parent
ceb2caa21e
commit
44744cc667
1 changed files with 15 additions and 2 deletions
|
@ -336,8 +336,21 @@ let rec evaluate runtime ast =
|
||||||
|
|
||||||
E, M ⊢ dv ⇒ E', M' *)
|
E, M ⊢ dv ⇒ E', M' *)
|
||||||
and definition runtime d =
|
and definition runtime d =
|
||||||
(* TODO *)
|
match Position.value d with
|
||||||
failwith "Students! This is your job!"
|
| DefineValue vd -> value_definition runtime vd
|
||||||
|
(* On ignore tout ce qui n'est pas une value car on interprète *)
|
||||||
|
| _ -> runtime
|
||||||
|
|
||||||
|
and value_definition runtime = function
|
||||||
|
| SimpleValue (id, _, expr) ->
|
||||||
|
(* TODO: Ici il faut associer l'ID et l'expression
|
||||||
|
* => Retourner l'environnement modifié *)
|
||||||
|
runtime
|
||||||
|
| RecFunctions rf ->
|
||||||
|
(* TODO: Ici faut ajouter les noms des fonctions à l'environnement
|
||||||
|
* pour qu'elles puissent s'appeller dans leur corps de fonction
|
||||||
|
* => Il faut retourner un environnement modifié *)
|
||||||
|
runtime
|
||||||
|
|
||||||
and expression' environment memory e =
|
and expression' environment memory e =
|
||||||
expression (position e) environment memory (value e)
|
expression (position e) environment memory (value e)
|
||||||
|
|
Reference in a new issue