5 Mar
2016
5 Mar
'16
16:35
+ (* Symbol i.e identifier *) + | Pvar (loc, name) -> begin + try + (* 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