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