diff options
| author | peb <unknown> | 2005-05-09 08:25:56 +0000 |
|---|---|---|
| committer | peb <unknown> | 2005-05-09 08:25:56 +0000 |
| commit | 2b059b811db03a53e8e0f8ec1a655e507851a995 (patch) | |
| tree | 467ad9a1849bf454b22d5b2a457d09f8247041e6 /src/GF/Parsing/MCFG.hs | |
| parent | 01696e4f86fa156d079f2febaf103fbe229ffdb1 (diff) | |
"Committed_by_peb"
Diffstat (limited to 'src/GF/Parsing/MCFG.hs')
| -rw-r--r-- | src/GF/Parsing/MCFG.hs | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/src/GF/Parsing/MCFG.hs b/src/GF/Parsing/MCFG.hs index 11c845365..4cfc6e2ec 100644 --- a/src/GF/Parsing/MCFG.hs +++ b/src/GF/Parsing/MCFG.hs @@ -4,9 +4,9 @@ -- Stability : (stable) -- Portability : (portable) -- --- > CVS $Date: 2005/04/21 16:23:07 $ --- > CVS $Author: bringert $ --- > CVS $Revision: 1.3 $ +-- > CVS $Date: 2005/05/09 09:28:45 $ +-- > CVS $Author: peb $ +-- > CVS $Revision: 1.4 $ -- -- MCFG parsing ----------------------------------------------------------------------------- @@ -23,20 +23,37 @@ import GF.Parsing.MCFG.PInfo import qualified GF.Parsing.MCFG.Naive as Naive import qualified GF.Parsing.MCFG.Active as Active -import qualified GF.Parsing.MCFG.Range as Range (makeRange) +import qualified GF.Parsing.MCFG.Active2 as Active2 +import qualified GF.Parsing.MCFG.Incremental as Incremental +import qualified GF.Parsing.MCFG.Incremental2 as Incremental2 ---------------------------------------------------------------------- -- parsing -parseMCF :: (Ord c, Ord n, Ord l, Ord t) => String -> Err (MCFParser c n l t) -parseMCF "n" = Ok $ Naive.parse -parseMCF "an" = Ok $ Active.parse "n" -parseMCF "ab" = Ok $ Active.parse "b" -parseMCF "at" = Ok $ Active.parse "t" +-- parseMCF :: (Ord c, Ord n, Ord l, Ord t) => String -> Err (MCFParser c n l t) + +parseMCF "n" pinfo starts toks = Ok $ Naive.parse pinfo starts toks +parseMCF "an" pinfo starts toks = Ok $ Active.parse "n" pinfo starts toks +parseMCF "ab" pinfo starts toks = Ok $ Active.parse "b" pinfo starts toks +parseMCF "at" pinfo starts toks = Ok $ Active.parse "t" pinfo starts toks +parseMCF "i" pinfo starts toks = Ok $ Incremental.parse pinfo starts toks + +parseMCF "an2" pinfo starts toks = Ok $ Active2.parse "n" pinfo starts toks +parseMCF "ab2" pinfo starts toks = Ok $ Active2.parse "b" pinfo starts toks +parseMCF "at2" pinfo starts toks = Ok $ Active2.parse "t" pinfo starts toks +parseMCF "i2" pinfo starts toks = Ok $ Incremental2.parse pinfo starts toks + +parseMCF "rn" pinfo starts toks = Ok $ Naive.parseR (rrP pinfo toks) starts +parseMCF "ran" pinfo starts toks = Ok $ Active.parseR "n" (rrP pinfo toks) starts +parseMCF "rab" pinfo starts toks = Ok $ Active.parseR "b" (rrP pinfo toks) starts +parseMCF "rat" pinfo starts toks = Ok $ Active.parseR "t" (rrP pinfo toks) starts +parseMCF "ri" pinfo starts toks = Ok $ Incremental.parseR (rrP pinfo toks) starts ntoks + where ntoks = snd (inputBounds toks) + -- default parsers: -parseMCF "a" = parseMCF "an" +parseMCF "" pinfo starts toks = parseMCF "n" pinfo starts toks -- error parser: -parseMCF prs = Bad $ "Parser not defined: " ++ prs - +parseMCF prs pinfo starts toks = Bad $ "Parser not defined: " ++ prs +rrP pi = rangeRestrictPInfo pi |
