diff options
| author | peb <peb@cs.chalmers.se> | 2006-06-07 16:18:28 +0000 |
|---|---|---|
| committer | peb <peb@cs.chalmers.se> | 2006-06-07 16:18:28 +0000 |
| commit | da3a5d27e319dd7812cbc2ec1c2843a05838d767 (patch) | |
| tree | fa0ffa291d326b24d36f7064dd4b6955b0e4acc4 /src/GF/Parsing/MCFG/PInfo.hs | |
| parent | 55cb508a0f54a2461bf70a94ee04081c2ad1711c (diff) | |
corrected bottomup MCFG parsing, added GF.Parsing.MCFG.FastActive
Diffstat (limited to 'src/GF/Parsing/MCFG/PInfo.hs')
| -rw-r--r-- | src/GF/Parsing/MCFG/PInfo.hs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/GF/Parsing/MCFG/PInfo.hs b/src/GF/Parsing/MCFG/PInfo.hs index 4fbe3e736..5a61a4edf 100644 --- a/src/GF/Parsing/MCFG/PInfo.hs +++ b/src/GF/Parsing/MCFG/PInfo.hs @@ -46,7 +46,8 @@ data MCFPInfo c n l t , nameRules :: Assoc n (SList (MCFRule c n l t)) , topdownRules :: Assoc c (SList (MCFRule c n l t)) -- ^ used in 'GF.Parsing.MCFG.Active' (Earley): - , emptyRules :: [MCFRule c n l t] + , epsilonRules :: [MCFRule c n l t] + -- ^ used in 'GF.Parsing.MCFG.Active' (Kilbury): , leftcornerCats :: Assoc c (SList (MCFRule c n l t)) , leftcornerTokens :: Assoc t (SList (MCFRule c n l t)) -- ^ used in 'GF.Parsing.MCFG.Active' (Kilbury): @@ -71,7 +72,7 @@ rangeRestrictPInfo (pinfo{-::MCFPInfo c n l t-}) inp = MCFPInfo { grammarTokens = nubsort (map edgeRange (inputEdges inp)) , nameRules = rrAssoc (nameRules pinfo) , topdownRules = rrAssoc (topdownRules pinfo) - , emptyRules = rrRules (emptyRules pinfo) + , epsilonRules = rrRules (epsilonRules pinfo) , leftcornerCats = rrAssoc (leftcornerCats pinfo) , leftcornerTokens = lctokens , grammarCats = grammarCats pinfo @@ -100,7 +101,7 @@ buildMCFPInfo grammar = MCFPInfo { grammarTokens = grammartokens , nameRules = namerules , topdownRules = topdownrules - , emptyRules = emptyrules + , epsilonRules = epsilonrules , leftcornerCats = leftcorncats , leftcornerTokens = leftcorntoks , grammarCats = grammarcats @@ -115,7 +116,7 @@ buildMCFPInfo grammar = [ (name, rule) | rule@(Rule (Abs _ _ name) _) <- allrules ] topdownrules = accumAssoc id [ (cat, rule) | rule@(Rule (Abs cat _ _) _) <- allrules ] - emptyrules = [ rule | rule@(Rule (Abs _ [] _) _) <- allrules ] + epsilonrules = [ rule | rule@(Rule _ (Cnc _ _ (Lin _ [] : _))) <- allrules ] leftcorncats = accumAssoc id [ (cat, rule) | rule@(Rule _ (Cnc _ _ (Lin _ (Cat(cat,_,_):_) : _))) <- allrules ] @@ -149,7 +150,7 @@ instance (Ord c, Ord n, Ord l, Ord t) => Print (MCFPInfo c n l t) where "; categories=" ++ sl grammarCats ++ "; nameRules=" ++ sla nameRules ++ "; tdRules=" ++ sla topdownRules ++ - "; emptyRules=" ++ sl emptyRules ++ + "; epsilonRules=" ++ sl epsilonRules ++ "; lcCats=" ++ sla leftcornerCats ++ "; lcTokens=" ++ sla leftcornerTokens ++ "; byToken=" ++ sla rulesByToken ++ |
