From be080aff39f3b7047978182055e029a179e2db76 Mon Sep 17 00:00:00 2001 From: aarne Date: Wed, 28 Nov 2007 22:11:47 +0000 Subject: judgement construction after parsing --- src/GF/Devel/Lookup.hs | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'src/GF/Devel/Lookup.hs') 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" -- cgit v1.2.3