diff options
Diffstat (limited to 'haddock-api')
| -rw-r--r-- | haddock-api/test/Haddock/Backends/Hyperlinker/ParserSpec.hs | 18 | 
1 files changed, 18 insertions, 0 deletions
| diff --git a/haddock-api/test/Haddock/Backends/Hyperlinker/ParserSpec.hs b/haddock-api/test/Haddock/Backends/Hyperlinker/ParserSpec.hs index fa880a37..5e69b446 100644 --- a/haddock-api/test/Haddock/Backends/Hyperlinker/ParserSpec.hs +++ b/haddock-api/test/Haddock/Backends/Hyperlinker/ParserSpec.hs @@ -67,6 +67,24 @@ parseSpec = do              , TkIdentifier, TkSpace, TkGlyph, TkSpace, TkIdentifier              ] +    it "should parse do-notation syntax" $ do +        "do { foo <- getLine; putStrLn foo }" `shouldParseTo` +            [ TkKeyword, TkSpace, TkSpecial, TkSpace +            , TkIdentifier, TkSpace, TkGlyph, TkSpace +            , TkIdentifier, TkSpecial, TkSpace +            , TkIdentifier, TkSpace, TkIdentifier, TkSpace, TkSpecial +            ] + +        unlines +            [ "do" +            , "    foo <- getLine" +            , "    putStrLn foo" +            ] `shouldParseTo` +            [ TkKeyword, TkSpace, TkIdentifier +            , TkSpace, TkGlyph, TkSpace, TkIdentifier, TkSpace +            , TkIdentifier, TkSpace, TkIdentifier, TkSpace +            ] +  shouldParseTo :: String -> [TokenType] -> Expectation  str `shouldParseTo` tokens = map tkType (parse str) `shouldBe` tokens | 
