summaryrefslogtreecommitdiff
path: root/src-3.0/GF/GFCC/BuildParser.hs
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2008-05-29 17:55:05 +0000
committerkrasimir <krasimir@chalmers.se>2008-05-29 17:55:05 +0000
commit88d3f61f41f7b6299e0d0f9e0047dd955cb67571 (patch)
tree62fd337e92ac607469d47ade41ed19cd5209e59c /src-3.0/GF/GFCC/BuildParser.hs
parent1bcc4aab8178434a890a3c723582b5fbd45a5a84 (diff)
change the library root namespace from GF.GFCC to PGF
Diffstat (limited to 'src-3.0/GF/GFCC/BuildParser.hs')
-rw-r--r--src-3.0/GF/GFCC/BuildParser.hs64
1 files changed, 0 insertions, 64 deletions
diff --git a/src-3.0/GF/GFCC/BuildParser.hs b/src-3.0/GF/GFCC/BuildParser.hs
deleted file mode 100644
index 1f9e6ab5f..000000000
--- a/src-3.0/GF/GFCC/BuildParser.hs
+++ /dev/null
@@ -1,64 +0,0 @@
----------------------------------------------------------------------
--- |
--- Maintainer : Krasimir Angelov
--- Stability : (stable)
--- Portability : (portable)
---
--- FCFG parsing, parser information
------------------------------------------------------------------------------
-
-module GF.GFCC.BuildParser where
-
-import GF.GFCC.Parsing.FCFG.Utilities
-import GF.Data.SortedList
-import GF.Data.Assoc
-import GF.GFCC.CId
-import GF.GFCC.DataGFCC
-
-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]