diff options
| author | peb <unknown> | 2004-06-02 11:17:15 +0000 |
|---|---|---|
| committer | peb <unknown> | 2004-06-02 11:17:15 +0000 |
| commit | 7716f818869971da138cf706c124a6be73bbab62 (patch) | |
| tree | 4ec44ec8a042d15b48a4554ef8333e6395487689 /src/GF/UseGrammar/Parsing.hs | |
| parent | 9b0a96859790a4d30bf2071a20a7e7d29dbd1131 (diff) | |
*** empty log message ***
Diffstat (limited to 'src/GF/UseGrammar/Parsing.hs')
| -rw-r--r-- | src/GF/UseGrammar/Parsing.hs | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/GF/UseGrammar/Parsing.hs b/src/GF/UseGrammar/Parsing.hs index 91e811f22..6e6356081 100644 --- a/src/GF/UseGrammar/Parsing.hs +++ b/src/GF/UseGrammar/Parsing.hs @@ -20,7 +20,7 @@ import Option import Custom import ShellState -import qualified ExportParser as N +import qualified ParseGFCviaCFG as N import Operations @@ -43,9 +43,9 @@ parseStringC opts0 sg cat s ---- to test peb's new parser 6/10/2003 | oElem newParser opts0 = do let pm = maybe "" id $ getOptVal opts0 useParser -- -parser=pm - gr = grammar sg + gr = stateGrammarST sg ct = cfCat2Cat cat - ts <- checkErr $ N.newParser pm gr (cfCat2Cat cat) s + ts <- checkErr $ N.newParser pm sg ct s -- peb 27/5-04 (changed gr -> sg) mapM (checkErr . (annotate gr)) ts | otherwise = do @@ -58,11 +58,13 @@ parseStringC opts0 sg cat s tokens2trms opts sg cn parser (tok s) tokens2trms :: Options ->StateGrammar ->Ident -> CFParser -> [CFTok] -> Check [Tree] -tokens2trms opts sg cn parser as = do - let res@(trees,info) = parser as - ts0 <- return $ cfParseResults res -- removed nub, peb 25/5-04 - -- ts0 <- return $ nub (cfParseResults res) -- nub gives quadratic behaviour! - -- SortedList.nubsort is O(n log n) +tokens2trms opts sg cn parser toks = trees2trms opts sg cn toks trees info + where result = parser toks + info = snd result + trees = {- nub $ -} cfParseResults result -- peb 25/5-04: removed nub (O(n^2)) + +trees2trms :: Options -> StateGrammar -> Ident -> [CFTok] -> [CFTree] -> String -> Check [Tree] +trees2trms opts sg cn as ts0 info = do ts <- case () of _ | null ts0 -> checkWarn "No success in cf parsing" >> return [] _ | raw -> do |
