mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-22 19:22:50 -06:00
fixes in parsing
This commit is contained in:
@@ -161,10 +161,11 @@ allLinTables gr c t = do
|
||||
gets (ps,t) = liftM (curry id ps . cc . map str2strings) $ strsFromTerm t
|
||||
cc = concat . intersperse ["/"]
|
||||
|
||||
prLinTable :: [[(Label,[([Patt],[String])])]] -> [String]
|
||||
prLinTable = concatMap prOne . concat where
|
||||
prOne (lab,pss) = prt lab : map pr pss ----
|
||||
pr (ps,ss) = unwords (map prt_ ps) +++ ":" +++ unwords ss
|
||||
prLinTable :: Bool -> [[(Label,[([Patt],[String])])]] -> [String]
|
||||
prLinTable pars = concatMap prOne . concat where
|
||||
prOne (lab,pss) = (if pars then ((prt lab) :) else id) (map pr pss) ----
|
||||
pr (ps,ss) = (if pars then ((unwords (map prt_ ps) +++ ":") +++)
|
||||
else id) (unwords ss)
|
||||
|
||||
{-
|
||||
-- the value is a list of strs
|
||||
|
||||
@@ -71,7 +71,14 @@ trees2trms opts sg cn as ts0 info = do
|
||||
ts1 <- return (map cf2trm0 ts0) ----- should not need annot
|
||||
mapM (checkErr . (annotate gr) . trExp) ts1 ---- complicated; often fails
|
||||
_ -> do
|
||||
(ts1,ss) <- checkErr $ mapErrN 10 postParse ts0
|
||||
let num = optIntOrN opts flagRawtrees 99999
|
||||
let (ts01,rest) = splitAt num ts0
|
||||
if null rest then return ()
|
||||
else checkWarn ("Warning: only" +++ show num +++ "raw parses out of" +++
|
||||
show (length ts0) +++
|
||||
"considered; use -rawtrees=<Int> to see more"
|
||||
)
|
||||
(ts1,ss) <- checkErr $ mapErrN 10 postParse ts01
|
||||
if null ts1 then raise ss else return ()
|
||||
ts2 <- mapM (checkErr . annotate gr . refreshMetas [] . trExp) ts1 ----
|
||||
if forgive then return ts2 else do
|
||||
|
||||
Reference in New Issue
Block a user