EHTo Code

Eifl

Changes to EHCodeAbsSyn

Let bindings

The first place to add type info would be in the let bindings. Here we need the information of the bound variables.

There are two places to do this. One is extend the CBind_Bind to include the Type of the bind variable. The other is in the CExpr_Let. Here we can add name, type pairs (alike binds). On advise of Atze (Who wrote the translation to Code) we choose to change the CExpr_Let.

function source file description
ceStrictIn EHCode.cag builds a let! (let it bang!) which is a strict let binding.
mkCExprLet   builds a let when there are bindings given, otherwise just returns the body of the let.
rceMatchCon EHCodeGen.cag  
rceMatchVar    
rceMatch    
rceMatchVarCon    

Remarks

ceStrictIn
it accepts a "build the let body" function which takes an Expression only, we probably need to pass some type info into it. This function is only used in EHCodeGen.cag:237.

rceMatch

Used in Lambda - EHGenCode.cag:33 Case - EHGenCode.cag:39 rceMatchVar, rceMatchCon functions

other places

will follow...

CBind_Bind

Currently we switched to change CBind_Bind. It is actualy not much different than to change Let.

-- ChristofDouma - 15 Oct 2004