stuff (more)

This commit is contained in:
NikolajDanger
2022-04-30 16:18:37 +02:00
parent b9ef4bb00e
commit 95c254d573

View File

@ -24,9 +24,6 @@ let rec lookup v = function
| (v', k) :: vtab -> if v = v' then k else lookup v vtab
| (_ : SymTab) -> failwith ("unbound variable : " + v)
(* HELP FUNCTIONS *)
let VALUEtoint = function INT x -> x
(* EVALUATION *)
(*****************************************************
@ -42,8 +39,8 @@ let rec eval (vtab : SymTab) (e : EXP) : VALUE =
| VARIABLE v ->
lookup v vtab
| OPERATE (op, e1, e2) ->
let exp1 = VALUEtoint (eval vtab e1)
let exp2 = VALUEtoint (eval vtab e2)
let (INT exp1) = eval vtab e1
let (INT exp2) = eval vtab e2
match op with
| BPLUS -> INT (exp1 + exp2)
| BMINUS -> INT (exp1 - exp2)
@ -53,8 +50,8 @@ let rec eval (vtab : SymTab) (e : EXP) : VALUE =
let vtab = bind var exp1 vtab
eval vtab e2
| OVER (rop, var, e1, e2, e3) ->
let exp1 = VALUEtoint (eval vtab e1)
let exp2 = VALUEtoint (eval vtab e2)
let (INT exp1) = eval vtab e1
let (INT exp2) = eval vtab e2
let results = [
for i in exp1..exp2 ->
let vtab = bind var (INT i) vtab