Improvement to test script, distinguishes when input ends with whitespace

This commit is contained in:
John J. Camilleri
2021-05-03 20:51:24 +02:00
parent 437bd8e7f9
commit 588cd6ddb1

View File

@@ -1,4 +1,6 @@
import PGF2
import qualified Data.Char as C
import qualified Data.List as L
import qualified Data.Map as M
main :: IO ()
@@ -8,8 +10,13 @@ main = do
Just concr = M.lookup "FoodsEng" (languages pgf)
loop = do
putStr "> "
tks <- words <$> getLine
let pr = complete concr (startCat pgf) (unwords (init tks)) (last tks) Nothing
input <- getLine
let
(sent,pfx) =
if C.isSpace (last input)
then (input, "")
else let toks = words input in (unwords (init toks), last toks)
let pr = complete concr (startCat pgf) sent pfx Nothing
case pr of
ParseOk x -> print x
ParseFailed x s -> putStrLn $ "parse failed at " ++ show x ++ " " ++ s