From 73b0f72d2bf09a6c007cf0ae54980a8d38eba6ac Mon Sep 17 00:00:00 2001 From: bringert Date: Wed, 3 Jan 2007 23:14:10 +0000 Subject: [PATCH] SRG: when making top-level categories, handle value categories introduced by -conversion=finite. --- src/GF/Speech/SRG.hs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/GF/Speech/SRG.hs b/src/GF/Speech/SRG.hs index 01ccf04be..2edca0368 100644 --- a/src/GF/Speech/SRG.hs +++ b/src/GF/Speech/SRG.hs @@ -167,7 +167,13 @@ allSRGCats SRG { rules = rs } = [c | SRGRule c _ _ <- rs] cfgCatToGFCat :: SRGCat -> Maybe String cfgCatToGFCat c - | '-' `elem` c = Nothing -- categories introduced by removeLeftRecursion contain dashes + -- categories introduced by removeLeftRecursion contain dashes + | '-' `elem` c = Nothing + -- some categories introduced by -conversion=finite have the form + -- "{fun:cat}..." + | "{" `isPrefixOf` c = case dropWhile (/=':') $ takeWhile (/='}') $ tail c of + ':':c' -> Just c' + _ -> error $ "cfgCatToGFCat: Strange category " ++ show c | otherwise = Just $ takeWhile (/='{') c srgTopCats :: SRG -> [(String,[SRGCat])]