summaryrefslogtreecommitdiff
path: root/src/GF/Speech
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2007-10-05 12:54:29 +0000
committeraarne <aarne@cs.chalmers.se>2007-10-05 12:54:29 +0000
commit48623470cdba12f03f914c19677c6f7dc2072035 (patch)
treec46daa2cbe4cb9fe9016181fba3e1aff183fd00c /src/GF/Speech
parent945a49214bd49fb082e8f613fc68d192a1b38743 (diff)
gf works with the new gfcc format
Diffstat (limited to 'src/GF/Speech')
-rw-r--r--src/GF/Speech/GrammarToVoiceXML.hs12
-rw-r--r--src/GF/Speech/TransformCFG.hs9
2 files changed, 11 insertions, 10 deletions
diff --git a/src/GF/Speech/GrammarToVoiceXML.hs b/src/GF/Speech/GrammarToVoiceXML.hs
index 5415c8184..f84033e9c 100644
--- a/src/GF/Speech/GrammarToVoiceXML.hs
+++ b/src/GF/Speech/GrammarToVoiceXML.hs
@@ -11,9 +11,9 @@
module GF.Speech.GrammarToVoiceXML (grammar2vxml) where
import GF.Canon.CanonToGFCC (mkCanon2gfcc)
-import qualified GF.Canon.GFCC.AbsGFCC as C
-import GF.Canon.GFCC.DataGFCC (GFCC(..), Abstr(..), mkGFCC, lookMap)
-
+import qualified GF.GFCC.AbsGFCC as C
+import GF.GFCC.DataGFCC (GFCC(..), Abstr(..), mkGFCC)
+import GF.GFCC.Macros
import qualified GF.Canon.GFC as GFC
import GF.Canon.AbsGFC (Term)
import GF.Canon.PrintGFC (printTree)
@@ -65,14 +65,14 @@ prid :: VIdent -> String
prid (C.CId x) = x
vSkeleton :: GFC.CanonGrammar -> (VIdent,VSkeleton)
-vSkeleton = gfccSkeleton . mkGFCC . mkCanon2gfcc
+vSkeleton = gfccSkeleton . mkCanon2gfcc
gfccSkeleton :: GFCC -> (VIdent,VSkeleton)
gfccSkeleton gfcc = (absname gfcc, ts)
where a = abstract gfcc
- ts = [(c,[(f,ft f) | f <- fs]) | (c,fs) <- Map.toList (cats a)]
+ ts = [(c,[(f,ft f) | f <- fs]) | (c,fs) <- Map.toList (catfuns a)]
ft f = case lookMap (error $ prid f) f (funs a) of
- C.Typ args _ -> args
+ (ty,_) -> fst $ GF.GFCC.Macros.catSkeleton ty
--
-- * Questions to ask
diff --git a/src/GF/Speech/TransformCFG.hs b/src/GF/Speech/TransformCFG.hs
index bca42d4fe..bcd61f428 100644
--- a/src/GF/Speech/TransformCFG.hs
+++ b/src/GF/Speech/TransformCFG.hs
@@ -17,8 +17,9 @@
module GF.Speech.TransformCFG where
import GF.Canon.CanonToGFCC (mkCanon2gfcc)
-import qualified GF.Canon.GFCC.AbsGFCC as C
-import GF.Canon.GFCC.DataGFCC (GFCC, mkGFCC, lookType)
+import qualified GF.GFCC.AbsGFCC as C
+import GF.GFCC.Macros (lookType,catSkeleton)
+import GF.GFCC.DataGFCC (GFCC)
import GF.Conversion.Types
import GF.CF.PPrCF (prCFCat)
import GF.Data.Utilities
@@ -70,7 +71,7 @@ cfgToCFRules s =
nameToTerm (Name IW [Unify [n]]) = CFRes n
nameToTerm (Name f@(IC c) prs) =
CFObj f (zipWith profileToTerm args prs)
- where C.Typ args _ = lookType gfcc (C.CId c)
+ where (args,_) = catSkeleton $ lookType gfcc (C.CId c)
nameToTerm n = error $ "cfgToCFRules.nameToTerm" ++ show n
profileToTerm (C.CId t) (Unify []) = CFMeta t
profileToTerm _ (Unify xs) = CFRes (last xs) -- FIXME: unify
@@ -84,7 +85,7 @@ getStartCatCF :: Options -> StateGrammar -> String
getStartCatCF opts sgr = getStartCat opts sgr ++ "{}.s"
stateGFCC :: StateGrammar -> GFCC
-stateGFCC = mkGFCC . mkCanon2gfcc . stateGrammarST
+stateGFCC = mkCanon2gfcc . stateGrammarST
-- * Grammar filtering