git.iko.soy/typeable/pandoc
on master help sign in
Haddock reader: improved error reporting.
commit7424454acef153176a14c3f95e925d5edd6b2e87 authorDavid Lazar <lazar6@illinois.edu> dateFri 29 Mar 2013, 10:22 (14 years ago) parent7cb8b60
3 files changed+9−6
src/Text/Pandoc/Readers/Haddock.hs+4−2 src/Text/Pandoc/Readers/Haddock/Lex.x+2−1 src/Text/Pandoc/Readers/Haddock/Parse.y+3−3
src/Text/Pandoc/Readers/Haddock.hs+4−2
@@ -24,8 +24,10 @@ readHaddock :: ReaderOptions -- ^ Reader options
2424readHaddock _ s = Pandoc (Meta [] [] []) blocks
2525 where
2626 blocks = case parseParas (tokenise s (0,0)) of
27− Nothing -> []
28− Just x -> mergeLists (toList x)
27+ Left [] -> error "parse failure"
28+ Left (tok:_) -> error $ "parse failure " ++ pos (tokenPos tok)
29+ where pos (l, c) = "(line " ++ show l ++ ", column " ++ show c ++ ")"
30+ Right x -> mergeLists (toList x)
2931
3032-- similar to 'docAppend' in Haddock.Doc
3133mergeLists :: [Block] -> [Block]
src/Text/Pandoc/Readers/Haddock/Lex.x+2−1
@@ -19,7 +19,8 @@
1919module Text.Pandoc.Readers.Haddock.Lex (
2020 Token(..),
2121 LToken,
22− tokenise
22+ tokenise,
23+ tokenPos
2324 ) where
2425
2526import Data.Char
src/Text/Pandoc/Readers/Haddock/Parse.y+3−3
@@ -46,7 +46,7 @@ import Data.Sequence (viewr, ViewR(..))
4646 PARA { (TokPara,_) }
4747 STRING { (TokString $$,_) }
4848
49−%monad { Maybe }
49+%monad { Either [LToken] }
5050
5151%name parseParas doc
5252%name parseString seq
@@ -126,8 +126,8 @@ strings :: { String }
126126 | STRING strings { $1 ++ $2 }
127127
128128{
129−happyError :: [LToken] -> Maybe a
130−happyError toks = Nothing
129+happyError :: [LToken] -> Either [LToken] a
130+happyError toks = Left toks
131131
132132para' :: Inlines -> Blocks
133133para' (Many ils) =