Previous Up Next

Interface for module Translate

module Frame : Frames.FRAME

type level
type access (∗ not the same as Frame.access ∗)

val outermostlevel
val new_levellevel → Symbol.symbol → bool list → (level × Temp.label)
val formalslevel → access list
val alloc_locallevel → bool → access

type exp (∗ abstract data type ∗)

val unEx : exp → Tree.exp
val unNx : exp → Tree.stm
val unCx : exp → Temp.label → Temp.label → Tree.stm

val int_expint → exp
val nil_expunit → exp
val string_expstring → exp
val op_expexp × Absynt.oper × exp → exp
val assign_exprexp × exp → exp
val seqlistexp list × Types.ty → exp

val if_exprexp × exp × exp option → exp
val while_expexp × exp × Temp.label → exp
val break_expTemp.label → exp
val simple_varaccess × level → exp (∗ p. 154 ∗) 
val subscript_varexp × exp → exp
val field_varexp × int → exp
val array_expexp × exp → exp
val record_expexp list → exp
val call_expTemp.label × exp list × level × level → exp

exception Translation_error of string

val proc_entry_exit: (level × exp) → unit (∗ cf. p. 169 ∗)
val get_resultunit → Frame.frag list (∗ p. 169, extract the remembered fragment list ∗)

– Debugging –
val string_of_expexp → string
val string_of_accessaccess → string

 ,
Previous Up Next