summaryrefslogtreecommitdiff
path: root/src-3.0/PGF/BuildParser.hs
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2008-06-25 16:54:35 +0000
committeraarne <aarne@cs.chalmers.se>2008-06-25 16:54:35 +0000
commite9e80fc389365e24d4300d7d5390c7d833a96c50 (patch)
treef0b58473adaa670bd8fc52ada419d8cad470ee03 /src-3.0/PGF/BuildParser.hs
parentb96b36f43de3e2f8b58d5f539daa6f6d47f25870 (diff)
changed names of resource-1.3; added a note on homepage on release
Diffstat (limited to 'src-3.0/PGF/BuildParser.hs')
-rw-r--r--src-3.0/PGF/BuildParser.hs64
1 files changed, 0 insertions, 64 deletions
diff --git a/src-3.0/PGF/BuildParser.hs b/src-3.0/PGF/BuildParser.hs
deleted file mode 100644
index 9dfab3130..000000000
--- a/src-3.0/PGF/BuildParser.hs
+++ /dev/null
@@ -1,64 +0,0 @@
----------------------------------------------------------------------
--- |
--- Maintainer : Krasimir Angelov
--- Stability : (stable)
--- Portability : (portable)
---
--- FCFG parsing, parser information
------------------------------------------------------------------------------
-
-module PGF.BuildParser where
-
-import GF.Data.SortedList
-import GF.Data.Assoc
-import PGF.CId
-import PGF.Data
-import PGF.Parsing.FCFG.Utilities
-
-import Data.Array
-import Data.Maybe
-import qualified Data.Map as Map
-import qualified Data.Set as Set
-import Debug.Trace
-
-
-------------------------------------------------------------
--- parser information
-
-getLeftCornerTok (FRule _ _ _ _ lins)
- | inRange (bounds syms) 0 = case syms ! 0 of
- FSymTok tok -> [tok]
- _ -> []
- | otherwise = []
- where
- syms = lins ! 0
-
-getLeftCornerCat (FRule _ _ args _ lins)
- | inRange (bounds syms) 0 = case syms ! 0 of
- FSymCat _ d -> [args !! d]
- _ -> []
- | otherwise = []
- where
- syms = lins ! 0
-
-buildParserInfo :: FGrammar -> ParserInfo
-buildParserInfo (grammar,startup) = -- trace (unlines [prt (x,Set.toList set) | (x,set) <- Map.toList leftcornFilter]) $
- ParserInfo { allRules = allrules
- , topdownRules = topdownrules
- -- , emptyRules = emptyrules
- , epsilonRules = epsilonrules
- , leftcornerCats = leftcorncats
- , leftcornerTokens = leftcorntoks
- , grammarCats = grammarcats
- , grammarToks = grammartoks
- , startupCats = startup
- }
-
- where allrules = listArray (0,length grammar-1) grammar
- topdownrules = accumAssoc id [(cat, ruleid) | (ruleid, FRule _ _ _ cat _) <- assocs allrules]
- epsilonrules = [ ruleid | (ruleid, FRule _ _ _ _ lins) <- assocs allrules,
- not (inRange (bounds (lins ! 0)) 0) ]
- leftcorncats = accumAssoc id [ (cat, ruleid) | (ruleid, rule) <- assocs allrules, cat <- getLeftCornerCat rule ]
- leftcorntoks = accumAssoc id [ (tok, ruleid) | (ruleid, rule) <- assocs allrules, tok <- getLeftCornerTok rule ]
- grammarcats = aElems topdownrules
- grammartoks = nubsort [t | (FRule _ _ _ _ lins) <- grammar, lin <- elems lins, FSymTok t <- elems lin]