diff options
| author | aarne <aarne@cs.chalmers.se> | 2007-11-28 22:11:47 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2007-11-28 22:11:47 +0000 |
| commit | be080aff39f3b7047978182055e029a179e2db76 (patch) | |
| tree | acb6ea93394b39e2db1e596d5156a3d9f3ce8242 /src/GF/Devel/Lookup.hs | |
| parent | 813e899ebb4280112f6c81ad582f2e6059db192e (diff) | |
judgement construction after parsing
Diffstat (limited to 'src/GF/Devel/Lookup.hs')
| -rw-r--r-- | src/GF/Devel/Lookup.hs | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/GF/Devel/Lookup.hs b/src/GF/Devel/Lookup.hs index c2f60f743..13e854480 100644 --- a/src/GF/Devel/Lookup.hs +++ b/src/GF/Devel/Lookup.hs @@ -2,6 +2,7 @@ module GF.Devel.Lookup where import GF.Devel.Modules import GF.Devel.Judgements +import GF.Devel.Macros import GF.Devel.Terms import GF.Infra.Ident @@ -24,7 +25,7 @@ lookupJForm = lookupJField jform lookupCatContext :: GF -> Ident -> Ident -> Err Context lookupCatContext gf m c = do ty <- lookupJField jtype gf m c - return [] ---- context of ty + return $ contextOfType ty lookupFunType :: GF -> Ident -> Ident -> Err Term lookupFunType = lookupJField jtype @@ -35,10 +36,24 @@ lookupLin = lookupJField jlin lookupLincat :: GF -> Ident -> Ident -> Err Term lookupLincat = lookupJField jlin +lookupOperType :: GF -> Ident -> Ident -> Err Term +lookupOperType = lookupJField jtype + +lookupOperDef :: GF -> Ident -> Ident -> Err Term +lookupOperDef = lookupJField jlin + +lookupParams :: GF -> Ident -> Ident -> Err [(Ident,Context)] +lookupParams gf m c = do + ty <- lookupJField jtype gf m c + return [(k,contextOfType t) | (k,t) <- contextOfType ty] + +lookupParamConstructor :: GF -> Ident -> Ident -> Err Type +lookupParamConstructor = lookupJField jlin + lookupParamValues :: GF -> Ident -> Ident -> Err [Term] lookupParamValues gf m c = do - j <- lookupJudgement gf m c - case jdef j of + d <- lookupJField jdef gf m c + case d of V _ ts -> return ts _ -> raise "no parameter values" |
