summaryrefslogtreecommitdiff
path: root/src/GF/Grammar
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2009-03-05 09:08:52 +0000
committerkrasimir <krasimir@chalmers.se>2009-03-05 09:08:52 +0000
commit993ceb63bcec89295485b831bdb974bd7b47c6bc (patch)
treeb6b242f5d0ec8a3d499e355e2294cd85e899b6c1 /src/GF/Grammar
parent1d675e9c803c66e4ed587a5ad5a52edca16f6ebb (diff)
in GF.Grammar.Update - remove the indirection before to print the error message
Diffstat (limited to 'src/GF/Grammar')
-rw-r--r--src/GF/Grammar/Lookup.hs8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/GF/Grammar/Lookup.hs b/src/GF/Grammar/Lookup.hs
index f11f7d428..312cfd38e 100644
--- a/src/GF/Grammar/Lookup.hs
+++ b/src/GF/Grammar/Lookup.hs
@@ -19,6 +19,7 @@ module GF.Grammar.Lookup (
lookupIdent,
lookupIdentInfo,
lookupIdentInfoIn,
+ lookupOrigInfo,
lookupResDef,
lookupResDefKind,
lookupResType,
@@ -139,13 +140,14 @@ lookupOverload gr m c = do
AnyInd _ n -> lookupOverload gr n c
_ -> Bad $ prt c +++ "is not an overloaded operation"
-lookupOrigInfo :: SourceGrammar -> Ident -> Ident -> Err Info
+-- | returns the original 'Info' and the module where it was found
+lookupOrigInfo :: SourceGrammar -> Ident -> Ident -> Err (Ident,Info)
lookupOrigInfo gr m c = do
mo <- lookupModule gr m
info <- lookupIdentInfo mo c
case info of
AnyInd _ n -> lookupOrigInfo gr n c
- i -> return i
+ i -> return (m,i)
lookupParams :: SourceGrammar -> Ident -> Ident -> Err ([Param],Maybe PValues)
lookupParams gr = look True where
@@ -194,7 +196,7 @@ lookupIndexValue gr ty i = do
allOrigInfos :: SourceGrammar -> Ident -> [(Ident,Info)]
allOrigInfos gr m = errVal [] $ do
mo <- lookupModule gr m
- return [(c,i) | (c,_) <- tree2list (jments mo), Ok i <- [look c]]
+ return [(c,i) | (c,_) <- tree2list (jments mo), Ok (_,i) <- [look c]]
where
look = lookupOrigInfo gr m