(* Symbol i.e identifier *)| Pvar (loc, name) -> begintry(* Send Variable loc *)let idx = senv_lookup name ctx in(make_var name idx loc), ctx;with Not_found ->(* Add Variable *)let ctx = senv_add_var name loc ctx in(make_var name 0 loc), ctx; end
Ça n'a pas l'air correct: si "name" n'est pas dans le contexte, alors c'est simplement une erreur.
La fonction ne devrait pas renvoyer de contexte.
Stefan