Earley-0.11.0.1: tests/ReversedWords.hs
module ReversedWords where
import Control.Applicative
import Test.Tasty
import Test.Tasty.HUnit as HU
import Text.Earley
someWords :: Grammar r (Prod r () Char [String])
someWords = return $ flip (:) <$> (map reverse <$> some (list "word")) <*> list "stop"
tests :: TestTree
tests = testGroup "Unit Tests"
[ HU.testCase "Some reversed words" $
let input = "wordwordstop"
l = length input in
allParses (parser someWords) input
@?= (,) [(["stop", "drow", "drow"], l)] Report { position = l
, expected = []
, unconsumed = []
}
]