parse error fixes

This commit is contained in:
Simon Michael 2009-04-10 04:38:46 +00:00
parent ac307957e5
commit cfaacd26b6

View File

@ -103,7 +103,7 @@ ledgerFile = do items <- many ledgerItem
]
ledgerDirective :: GenParser Char LedgerFileCtx (ErrorT String IO (RawLedger -> RawLedger))
ledgerDirective = do char '!'
ledgerDirective = do char '!' <?> "directive"
directive <- many nonspace
case directive of
"include" -> ledgerInclude
@ -252,7 +252,7 @@ See "Tests" for sample data.
emptyLine :: GenParser Char st ()
emptyLine = do many spacenonewline
optional $ char ';' >> many (noneOf "\n")
optional $ (char ';' <?> "comment") >> many (noneOf "\n")
newline
return ()
@ -275,7 +275,7 @@ ledgerModifierTransaction = do
ledgerPeriodicTransaction :: GenParser Char LedgerFileCtx PeriodicTransaction
ledgerPeriodicTransaction = do
char '~' <?> "entry"
char '~' <?> "periodic transaction"
many spacenonewline
periodexpr <- restofline
postings <- ledgerpostings
@ -283,7 +283,7 @@ ledgerPeriodicTransaction = do
ledgerHistoricalPrice :: GenParser Char LedgerFileCtx HistoricalPrice
ledgerHistoricalPrice = do
char 'P' <?> "hprice"
char 'P' <?> "historical price"
many spacenonewline
date <- ledgerdate
many spacenonewline
@ -308,7 +308,7 @@ ledgerDefaultYear = do
-- and if we cannot, raise an error.
ledgerTransaction :: GenParser Char LedgerFileCtx LedgerTransaction
ledgerTransaction = do
date <- ledgerdate <?> "entry"
date <- ledgerdate <?> "transaction"
status <- ledgerstatus
code <- ledgercode
description <- liftM rstrip (many1 (noneOf ";\n") <?> "description")
@ -353,10 +353,10 @@ ledgerdatetime = do
return $ LocalTime day tod
ledgerstatus :: GenParser Char st Bool
ledgerstatus = try (do { char '*'; many1 spacenonewline; return True } ) <|> return False
ledgerstatus = try (do { char '*' <?> "status"; many1 spacenonewline; return True } ) <|> return False
ledgercode :: GenParser Char st String
ledgercode = try (do { char '('; code <- anyChar `manyTill` char ')'; many1 spacenonewline; return code } ) <|> return ""
ledgercode = try (do { char '(' <?> "code"; code <- anyChar `manyTill` char ')'; many1 spacenonewline; return code } ) <|> return ""
ledgerpostings :: GenParser Char LedgerFileCtx [Posting]
ledgerpostings = many1 $ try ledgerposting