some var parser bug fixes

This commit is contained in:
aarne
2004-08-24 11:49:46 +00:00
parent 9e05ef01aa
commit 9d404ba7a4
13 changed files with 40 additions and 17 deletions

View File

@@ -320,6 +320,7 @@ customTokenizer =
,(strCI "vars", const $ tokVars)
,(strCI "chars", const $ map (tS . singleton))
,(strCI "code", const $ lexHaskell)
,(strCI "codevars", const $ (mkTokVars lexHaskell))
,(strCI "text", const $ lexText)
,(strCI "unglue", \gr -> map tS . decomposeWords (stateMorpho gr))
,(strCI "codelit", lexHaskellLiteral . stateIsWord)

View File

@@ -20,6 +20,7 @@ import Option
import Custom
import ShellState
import PPrCF (prCFTree)
import qualified ParseGFC as N
import Operations
@@ -69,7 +70,10 @@ trees2trms opts sg cn as ts0 info = do
_ | null ts0 -> checkWarn "No success in cf parsing" >> return []
_ | raw -> do
ts1 <- return (map cf2trm0 ts0) ----- should not need annot
mapM (checkErr . (annotate gr) . trExp) ts1 ---- complicated; often fails
checks [
mapM (checkErr . (annotate gr) . trExp) ts1 ---- complicated, often fails
,checkWarn (unlines ("Raw CF trees:":(map prCFTree ts0))) >> return []
]
_ -> do
let num = optIntOrN opts flagRawtrees 99999
let (ts01,rest) = splitAt num ts0

View File

@@ -35,6 +35,11 @@ mkCFTokVar s = case s of
'$':xs@(_:_) -> if last s == '$' then tV (init xs) else tS s
_ -> tS s
mkTokVars :: (String -> [CFTok]) -> String -> [CFTok]
mkTokVars tok = map tv . tok where
tv (TS s) = mkCFTokVar s
tv t = t
mkLit :: String -> CFTok
mkLit s = if (all isDigit s) then (tI s) else (tL s)