let existing_ty = Monad.liftM (fmap fst) $ Map.lookup htype typemap
case existing_ty of
Just ty -> do
- let lit = idToVHDLExpr $ mkVHDLExtId $ Name.getOccString dcname
+ let lit = AST.PrimLit $ show $ getConstructorIndex htype $ Name.getOccString dcname
return lit
Nothing -> error $ "\nVHDLTools.dataconToVHDLExpr: Trying to make value for non-representable DataCon: " ++ pprString dc
-- Error when constructing htype
[AST.CaseSmAlt [AST.ChoiceE $ AST.PrimLit $ show x]
[AST.ReturnSm (Just $ ((genExprFCall showId) . (selectedName adtPar) $ mkVHDLBasicId conLbl) AST.:&: showFields x)] | x <- [0..(length conIds) -1]]
showFields i = if (null (elemIdss!!i)) then
- AST.PrimLit "''"
+ AST.PrimLit "nul"
else
foldr1 (\e1 e2 -> e1 AST.:&: e2) $
map ((AST.PrimLit "' '" AST.:&:) . (genExprFCall showId) . (selectedName adtPar))