diff options
Diffstat (limited to 'src/GF/Devel/Judgements.hs')
| -rw-r--r-- | src/GF/Devel/Judgements.hs | 50 |
1 files changed, 2 insertions, 48 deletions
diff --git a/src/GF/Devel/Judgements.hs b/src/GF/Devel/Judgements.hs index 36ff90e68..9d2afdc6a 100644 --- a/src/GF/Devel/Judgements.hs +++ b/src/GF/Devel/Judgements.hs @@ -3,16 +3,11 @@ module GF.Devel.Judgements where import GF.Devel.Terms import GF.Infra.Ident -import GF.Data.Operations - -import Control.Monad -import Data.Map - data Judgement = Judgement { jform :: JudgementForm, -- cat fun oper param - jtype :: Type, -- context type type type + jtype :: Type, -- context type type constructors jdef :: Term, -- lindef def - values - jlin :: Term, -- lincat lin def constructors + jlin :: Term, -- lincat lin def - jprintname :: Term -- printname printname - - } @@ -23,44 +18,3 @@ data JudgementForm = | JParam deriving Eq --- constructing judgements from parse tree - -emptyJudgement :: JudgementForm -> Judgement -emptyJudgement form = Judgement form meta meta meta meta where - meta = Meta 0 - -absCat :: Context -> Judgement -absCat co = (emptyJudgement JCat) {jtype = Sort "Type"} ---- works for empty co - -absFun :: Type -> Judgement -absFun ty = (emptyJudgement JFun) {jtype = ty} - -cncCat :: Type -> Judgement -cncCat ty = (emptyJudgement JCat) {jlin = ty} - -cncFun :: Term -> Judgement -cncFun tr = (emptyJudgement JFun) {jlin = tr} - -resOperType :: Type -> Judgement -resOperType ty = (emptyJudgement JOper) {jtype = ty} - -resOperDef :: Term -> Judgement -resOperDef tr = (emptyJudgement JOper) {jlin = tr} - -resOper :: Type -> Term -> Judgement -resOper ty tr = (emptyJudgement JOper) {jtype = ty, jlin = tr} - --- unifying contents of judgements - -unifyJudgement :: Judgement -> Judgement -> Err Judgement -unifyJudgement old new = do - testErr (jform old == jform new) "different judment forms" - [jty,jde,jli,jpri] <- mapM unifyField [jtype,jdef,jlin,jprintname] - return $ old{jtype = jty, jdef = jde, jlin = jli, jprintname = jpri} - where - unifyField field = unifyTerm (field old) (field new) - unifyTerm oterm nterm = case (oterm,nterm) of - (Meta _,t) -> return t - (t,Meta _) -> return t - _ -> testErr (nterm == oterm) "incompatible fields" >> return nterm - |
