summaryrefslogtreecommitdiff
path: root/src/GF/Canon/GFC.hs
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2006-09-16 18:42:46 +0000
committeraarne <aarne@cs.chalmers.se>2006-09-16 18:42:46 +0000
commit927ad7b1355a3b72d30970cac808792f848551a6 (patch)
tree7d58fcad9db47000abf973f8aeab7707a7f677e0 /src/GF/Canon/GFC.hs
parent3917291e92ae5070fc9ec0ea8d37f77a68f243ba (diff)
bug fixes in multigrammar handling and GFCC generation
Diffstat (limited to 'src/GF/Canon/GFC.hs')
-rw-r--r--src/GF/Canon/GFC.hs21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/GF/Canon/GFC.hs b/src/GF/Canon/GFC.hs
index ae34dc249..ae9097c44 100644
--- a/src/GF/Canon/GFC.hs
+++ b/src/GF/Canon/GFC.hs
@@ -21,7 +21,11 @@ module GF.Canon.GFC (Context,
Printname,
prPrintnamesGrammar,
mapInfoTerms,
- setFlag
+ setFlag,
+ flagIncomplete,
+ isIncompleteCanon,
+ hasFlagCanon,
+ flagCanon
) where
import GF.Canon.AbsGFC
@@ -69,7 +73,20 @@ mapInfoTerms f i = case i of
_ -> i
setFlag :: String -> String -> [Flag] -> [Flag]
-setFlag n v fs = Flg (IC n) (IC v):[f | f@(Flg (IC n') _) <- fs, n' /= n]
+setFlag n v fs = flagCanon n v : [f | f@(Flg (IC n') _) <- fs, n' /= n]
+
+flagIncomplete :: Flag
+flagIncomplete = flagCanon "incomplete" "true"
+
+isIncompleteCanon :: CanonModule -> Bool
+isIncompleteCanon = hasFlagCanon flagIncomplete
+
+hasFlagCanon :: Flag -> CanonModule -> Bool
+hasFlagCanon f (_,M.ModMod mo) = elem f $ M.flags mo
+hasFlagCanon f _ = True ---- safe, useless
+
+flagCanon :: String -> String -> Flag
+flagCanon f v = Flg (identC f) (identC v)
-- for Ha-Jo 20/2/2005