Better names for the parsing info components in GFCC.

This commit is contained in:
bringert
2008-01-09 13:51:21 +00:00
parent ad355515b0
commit 10a9e25ceb

View File

@@ -78,14 +78,14 @@ toPInfo = foldl add (FCFPInfo {
add :: FCFPInfo -> RExp -> FCFPInfo add :: FCFPInfo -> RExp -> FCFPInfo
add p (App (CId f) ts) = add p (App (CId f) ts) =
case f of case f of
"rules" -> p { allRules = mkArray (lmap toFRule ts) } "rules" -> p { allRules = mkArray (lmap toFRule ts) }
"topdownrules" -> p { topdownRules = toAssoc expToInt (lmap expToInt) ts } "catrules" -> p { topdownRules = toAssoc expToInt (lmap expToInt) ts }
"epsilonrules" -> p { epsilonRules = lmap expToInt ts } "epsilonrules" -> p { epsilonRules = lmap expToInt ts }
"lccats" -> p { leftcornerCats = toAssoc expToInt (lmap expToInt) ts } "firstcatrules" -> p { leftcornerCats = toAssoc expToInt (lmap expToInt) ts }
"lctoks" -> p { leftcornerTokens = toAssoc expToStr (lmap expToInt) ts } "firsttokrules" -> p { leftcornerTokens = toAssoc expToStr (lmap expToInt) ts }
"cats" -> p { grammarCats = lmap expToInt ts } "cats" -> p { grammarCats = lmap expToInt ts }
"toks" -> p { grammarToks = lmap expToStr ts } "toks" -> p { grammarToks = lmap expToStr ts }
"startupcats" -> p { startupCats = fromList [(c, lmap expToInt cs) | App c cs <- ts] } "gfcats" -> p { startupCats = fromList [(c, lmap expToInt cs) | App c cs <- ts] }
toFRule :: RExp -> FRule toFRule :: RExp -> FRule
toFRule (App (CId "rule") toFRule (App (CId "rule")
[n, [n,
@@ -234,14 +234,14 @@ fromTerm e = case e of
fromPInfo :: FCFPInfo -> RExp fromPInfo :: FCFPInfo -> RExp
fromPInfo p = app "parser" [ fromPInfo p = app "parser" [
app "rules" [fromFRule rule | rule <- Array.elems (allRules p)], app "rules" [fromFRule rule | rule <- Array.elems (allRules p)],
app "topdownrules" (fromAssoc intToExp (lmap intToExp) (topdownRules p)), app "catrules" (fromAssoc intToExp (lmap intToExp) (topdownRules p)),
app "epsilonrules" (lmap intToExp (epsilonRules p)), app "epsilonrules" (lmap intToExp (epsilonRules p)),
app "lccats" (fromAssoc intToExp (lmap intToExp) (leftcornerCats p)), app "firstcatrules" (fromAssoc intToExp (lmap intToExp) (leftcornerCats p)),
app "lctoks" (fromAssoc AStr (lmap intToExp) (leftcornerTokens p)), app "firsttokrules" (fromAssoc AStr (lmap intToExp) (leftcornerTokens p)),
app "cats" (lmap intToExp (grammarCats p)), app "cats" (lmap intToExp (grammarCats p)),
app "toks" (lmap AStr (grammarToks p)), app "toks" (lmap AStr (grammarToks p)),
app "startupcats" [App f (lmap intToExp cs) | (f,cs) <- toList (startupCats p)] app "gfcats" [App f (lmap intToExp cs) | (f,cs) <- toList (startupCats p)]
] ]
fromAssoc :: Ord a => (a -> RExp) -> (b -> [RExp]) -> Assoc a b -> [RExp] fromAssoc :: Ord a => (a -> RExp) -> (b -> [RExp]) -> Assoc a b -> [RExp]