Miscellany
public text v1 · immutable
(* LtOp *)
| trexp (A.OpExp{left,oper=A.LtOp,right,pos}) =
let val {exp=_, ty=tyleft} = trexp(left)
val {exp=_, ty=tyright} = trexp(right)
in if (tyleft = tyright) = true then
case tyleft of E.INT => {exp={}, ty=E.INT}
| E.STRING => {exp={}, ty=E.INT}
| _ => (error pos "INT or STRING required"; {exp={}, ty=E.ERROR})
else {exp={}, ty=E.ERROR}
end