diff options
| author | aarne <unknown> | 2004-11-01 21:41:18 +0000 |
|---|---|---|
| committer | aarne <unknown> | 2004-11-01 21:41:18 +0000 |
| commit | 2bd22e078aa0205f60bb414d2e7f17d73db1eaea (patch) | |
| tree | 4a070991183a09d21f4a517bf05fd4cfa1610df5 /src/GF/Grammar/Lookup.hs | |
| parent | 42ff99469a12e54958f07b58b24f69834c9c1569 (diff) | |
some bug fixes in type check and solve
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"] = |
