diff options
Diffstat (limited to 'src/GF/Grammar/Lookup.hs')
| -rw-r--r-- | src/GF/Grammar/Lookup.hs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/GF/Grammar/Lookup.hs b/src/GF/Grammar/Lookup.hs index 19dc4cda1..be69a1656 100644 --- a/src/GF/Grammar/Lookup.hs +++ b/src/GF/Grammar/Lookup.hs @@ -101,6 +101,18 @@ qualifAnnotPar m t = case t of Con c -> QC m c _ -> composSafeOp (qualifAnnotPar m) t +lookupAbsDef :: SourceGrammar -> Ident -> Ident -> Err (Maybe Term) +lookupAbsDef gr m c = errIn ("looking up absdef of" +++ prt c) $ do + mi <- lookupModule gr m + case mi of + ModMod mo -> do + info <- lookupInfo mo c + case info of + AbsFun _ (Yes t) -> return $ return t + AnyInd _ n -> lookupAbsDef gr n c + _ -> return Nothing + _ -> Bad $ prt m +++ "is not an abstract module" + lookupLincat :: SourceGrammar -> Ident -> Ident -> Err Type lookupLincat gr m c | elem c [zIdent "String", zIdent "Int"] = |
