summaryrefslogtreecommitdiff
path: root/src/GF/Parsing/MCFG/PInfo.hs
diff options
context:
space:
mode:
authorpeb <peb@cs.chalmers.se>2006-06-07 16:18:28 +0000
committerpeb <peb@cs.chalmers.se>2006-06-07 16:18:28 +0000
commitda3a5d27e319dd7812cbc2ec1c2843a05838d767 (patch)
treefa0ffa291d326b24d36f7064dd4b6955b0e4acc4 /src/GF/Parsing/MCFG/PInfo.hs
parent55cb508a0f54a2461bf70a94ee04081c2ad1711c (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.hs11
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 ++