mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
SRG: when making top-level categories, handle value categories introduced by -conversion=finite.
This commit is contained in:
@@ -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])]
|
||||
|
||||
Reference in New Issue
Block a user