summaryrefslogtreecommitdiff
path: root/src/GF/CF/CanonToCF.hs
diff options
context:
space:
mode:
authoraarne <unknown>2003-11-03 16:27:55 +0000
committeraarne <unknown>2003-11-03 16:27:55 +0000
commit94326929b144913642121bef8f8ecc98feb992e7 (patch)
tree07d59cc33cbef2ac79c6f3f573b9718c51322e7a /src/GF/CF/CanonToCF.hs
parent2728e6e7ceec92c7f781368b4a523b37e5dee3b9 (diff)
Fixed several things, e.g. tokenizer.
Diffstat (limited to 'src/GF/CF/CanonToCF.hs')
-rw-r--r--src/GF/CF/CanonToCF.hs18
1 files changed, 7 insertions, 11 deletions
diff --git a/src/GF/CF/CanonToCF.hs b/src/GF/CF/CanonToCF.hs
index 6f7dc6d6b..6651b0100 100644
--- a/src/GF/CF/CanonToCF.hs
+++ b/src/GF/CF/CanonToCF.hs
@@ -27,8 +27,9 @@ canon2cf opts gr c = do
let mms = [(a, tree2list (M.jments m)) | m <- cncs]
rules0 <- liftM concat $ mapM (uncurry (cnc2cfCond opts)) mms
let rules = filter (not . isCircularCF) rules0 ---- temporarily here
- let predef = const [] ---- mkCFPredef cfcats
- return $ CF (groupCFRules rules, predef)
+ let grules = groupCFRules rules
+ let predef = mkCFPredef $ map fst grules
+ return $ CF (grules, predef)
cnc2cfCond :: Options -> Ident -> [(Ident,Info)] -> Err [CFRule]
cnc2cfCond opts m gr =
@@ -144,14 +145,9 @@ term2CFItems m t = errIn "forming cf items" $ case t of
---- ??
_ -> prtBad "cannot extract record field from" arg
-{- Proof + 1 @ 4 catVarCF :: CFCat
-PNonterm CIdent Integer Label Bool -- cat, position, part/bind, whether arg
-
-
mkCFPredef :: [CFCat] -> CFPredef
mkCFPredef cats s =
- [(cat, metaCFFun) | TM _ _ <- [s], cat <- cats] ++
- [(cat, varCFFun x) | TV x <- [s], cat <- cats] ++
- [(cat, lit) | TL t <- [s], Just (cat,lit) <- [getCFLiteral t]] ++
- [(cat, lit) | TI i <- [s], Just (cat,lit) <- [getCFLiteral (show i)]] ---
--}
+ [(cat, metaCFFun) | TM _ _ <- [s], cat <- cats] ++
+ [(cat, varCFFun x) | TV x <- [s], cat <- cats] ++
+ [(cfCatString, stringCFFun t) | TL t <- [s]] ++
+ [(cfCatInt, intCFFun t) | TI t <- [s]]