summaryrefslogtreecommitdiff
path: root/src/GF/Grammar/Lookup.hs
diff options
context:
space:
mode:
authoraarne <unknown>2005-02-08 15:35:58 +0000
committeraarne <unknown>2005-02-08 15:35:58 +0000
commit4fd0c636f8590bf800715f2598e54ccc22c99b90 (patch)
tree6415ac64c06f2cf27bce3b5b154eeb58f18d3776 /src/GF/Grammar/Lookup.hs
parent6fe9cca0ff4f0730de4f254482cb68ce494f58d7 (diff)
unlexer concat
Diffstat (limited to 'src/GF/Grammar/Lookup.hs')
-rw-r--r--src/GF/Grammar/Lookup.hs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/GF/Grammar/Lookup.hs b/src/GF/Grammar/Lookup.hs
index 1cfb63be6..06672cb72 100644
--- a/src/GF/Grammar/Lookup.hs
+++ b/src/GF/Grammar/Lookup.hs
@@ -17,6 +17,7 @@ module Lookup where
import Operations
import Abstract
import Modules
+import Lockfield
import List (nub)
import Monad
@@ -34,6 +35,11 @@ lookupResDef gr = look True where
ResOper _ (Yes t) -> return $ qualifAnnot m t
ResOper _ Nope -> return (Q m c) ---- if isTop then lookExt m c
---- else prtBad "cannot find in exts" c
+
+ CncCat (Yes ty) _ _ -> lockRecType c $ ty
+ CncCat _ _ _ -> lockRecType c $ defLinType
+ CncFun _ (Yes tr) _ -> unlockRecord c tr
+
AnyInd _ n -> look False n c
ResParam _ -> return $ QC m c
ResValue _ -> return $ QC m c
@@ -51,6 +57,11 @@ lookupResType gr m c = do
case info of
ResOper (Yes t) _ -> return $ qualifAnnot m t
ResOper (May n) _ -> lookupResType gr n c
+
+ -- used in reused concrete
+ CncCat _ _ _ -> return typeType
+ CncFun (Just (_,(cont,val))) _ _ -> return $ mkProd (cont, val, [])
+
AnyInd _ n -> lookupResType gr n c
ResParam _ -> return $ typePType
ResValue (Yes t) -> return $ qualifAnnotPar m t