diff options
| author | krasimir <krasimir@chalmers.se> | 2008-05-30 13:07:11 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2008-05-30 13:07:11 +0000 |
| commit | 150940b8704a6a61ed08c6bbd99ba4b05a42c59c (patch) | |
| tree | 277a97a4a3ba770e49e51a5526cf2e46bc2c6e1a /src-3.0/PGF/Parsing | |
| parent | 8bb0c32a9cf2cbad0375ab5886b7f2be37109477 (diff) | |
cleaned up and documented PGF API
Diffstat (limited to 'src-3.0/PGF/Parsing')
| -rw-r--r-- | src-3.0/PGF/Parsing/FCFG.hs | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src-3.0/PGF/Parsing/FCFG.hs b/src-3.0/PGF/Parsing/FCFG.hs index 81fc6a3e4..a7453fff8 100644 --- a/src-3.0/PGF/Parsing/FCFG.hs +++ b/src-3.0/PGF/Parsing/FCFG.hs @@ -28,16 +28,17 @@ import qualified Data.Map as Map -- main parsing function -parseFCF :: - String -> -- ^ parsing strategy - ParserInfo -> -- ^ compiled grammar (fcfg) - CId -> -- ^ starting category - [String] -> -- ^ input tokens - Err [Exp] -- ^ resulting GF terms +parseFCF :: String -- ^ parsing strategy + -> ParserInfo -- ^ compiled grammar (fcfg) + -> CId -- ^ starting category + -> [String] -- ^ input tokens + -> Err [Exp] -- ^ resulting GF terms parseFCF strategy pinfo startCat inString = do let inTokens = input inString - startCats <- Map.lookup startCat (startupCats pinfo) - fcfParser <- {- trace lctree $ -} parseFCF strategy + startCats <- case Map.lookup startCat (startupCats pinfo) of + Just cats -> return cats + Nothing -> fail $ "Unknown startup category: " ++ prCId startCat + fcfParser <- parseFCF strategy let chart = fcfParser pinfo startCats inTokens (i,j) = inputBounds inTokens finalEdges = [makeFinalEdge cat i j | cat <- startCats] @@ -46,6 +47,6 @@ parseFCF strategy pinfo startCat inString = return $ nubsort $ filteredForests >>= forest2exps where parseFCF :: String -> Err (FCFParser) - parseFCF "bottomup" = Ok $ parse "b" - parseFCF "topdown" = Ok $ parse "t" - parseFCF strat = Bad $ "FCFG parsing strategy not defined: " ++ strat + parseFCF "bottomup" = return $ parse "b" + parseFCF "topdown" = return $ parse "t" + parseFCF strat = fail $ "FCFG parsing strategy not defined: " ++ strat |
