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