1
0
forked from GitHub/gf-core

internal representation for param value index

This commit is contained in:
aarne
2006-11-14 19:13:33 +00:00
parent f10d657df1
commit 546e778ba8
14 changed files with 85 additions and 61 deletions

View File

@@ -90,7 +90,7 @@ trAnyDef (i,info) = let i' = tri i in case info of
ResOper pty ptr -> [P.DefOper [trDef i' pty ptr]]
ResParam pp -> [P.DefPar [case pp of
Yes ps -> P.ParDefDir i' [P.ParConstr (tri c) (map trDecl co) | (c,co) <- ps]
Yes (ps,_) -> P.ParDefDir i' [P.ParConstr (tri c) (map trDecl co) | (c,co) <- ps]
May b -> P.ParDefIndir i' $ tri b
_ -> P.ParDefAbs i']]

View File

@@ -293,8 +293,9 @@ transResDef x = case x of
pardefs' <- mapM transParDef pardefs
returnl $ [(p, G.ResParam (if null pars
then nope -- abstract param type
else (yes pars))) | (p,pars) <- pardefs']
++ [(f, G.ResValue (yes (M.mkProdSimple co (G.Cn p)))) |
else (yes (pars,Nothing))))
| (p,pars) <- pardefs']
++ [(f, G.ResValue (yes (M.mkProdSimple co (G.Cn p),Nothing))) |
(p,pars) <- pardefs', (f,co) <- pars]
DefOper defs -> do
defs' <- liftM concat $ mapM getDefs defs