Add support for ledger3 style multi-line comments
This commit is contained in:
parent
e892fdc6d5
commit
6e4a7dff8c
@ -204,6 +204,11 @@ samplejournal = readJournal' $ unlines
|
|||||||
," assets:bank:checking $1"
|
," assets:bank:checking $1"
|
||||||
," income:salary"
|
," income:salary"
|
||||||
,""
|
,""
|
||||||
|
,"comment"
|
||||||
|
,"multi line comment here"
|
||||||
|
,"for testing purposes"
|
||||||
|
,"end comment"
|
||||||
|
,""
|
||||||
,"2008/06/01 gift"
|
,"2008/06/01 gift"
|
||||||
," assets:bank:checking $1"
|
," assets:bank:checking $1"
|
||||||
," income:gifts"
|
," income:gifts"
|
||||||
|
|||||||
@ -164,6 +164,7 @@ journal = do
|
|||||||
, liftM (return . addPeriodicTransaction) periodictransaction
|
, liftM (return . addPeriodicTransaction) periodictransaction
|
||||||
, liftM (return . addHistoricalPrice) historicalpricedirective
|
, liftM (return . addHistoricalPrice) historicalpricedirective
|
||||||
, emptyorcommentlinep >> return (return id)
|
, emptyorcommentlinep >> return (return id)
|
||||||
|
, multilinecommentp >> return (return id)
|
||||||
] <?> "journal transaction or directive"
|
] <?> "journal transaction or directive"
|
||||||
|
|
||||||
-- cf http://ledger-cli.org/3.0/doc/ledger3.html#Command-Directives
|
-- cf http://ledger-cli.org/3.0/doc/ledger3.html#Command-Directives
|
||||||
@ -847,6 +848,15 @@ test_numberp = do
|
|||||||
|
|
||||||
-- comment parsers
|
-- comment parsers
|
||||||
|
|
||||||
|
multilinecommentp :: GenParser Char JournalContext ()
|
||||||
|
multilinecommentp = do
|
||||||
|
string "comment" >> newline
|
||||||
|
go
|
||||||
|
where
|
||||||
|
go = try (string "end comment" >> newline >> return ())
|
||||||
|
<|> (anyLine >> go)
|
||||||
|
anyLine = anyChar `manyTill` newline
|
||||||
|
|
||||||
emptyorcommentlinep :: GenParser Char JournalContext ()
|
emptyorcommentlinep :: GenParser Char JournalContext ()
|
||||||
emptyorcommentlinep = do
|
emptyorcommentlinep = do
|
||||||
many spacenonewline >> (comment <|> (many spacenonewline >> newline >> return ""))
|
many spacenonewline >> (comment <|> (many spacenonewline >> newline >> return ""))
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user