parsing: N, tag, end tag are now ignored; ledger sample.dat parses

This commit is contained in:
Simon Michael 2010-03-12 22:52:57 +00:00
parent 6977a0eecb
commit 57c537de41
2 changed files with 93 additions and 0 deletions

View File

@ -92,6 +92,9 @@ ledgerFile = do items <- many ledgerItem
, liftM (return . addPeriodicTransaction) ledgerPeriodicTransaction
, liftM (return . addHistoricalPrice) ledgerHistoricalPrice
, ledgerDefaultYear
, ledgerIgnoredPrice
, ledgerTagDirective
, ledgerEndTagDirective
, emptyLine >> return (return id)
, liftM (return . addTimeLogEntry) timelogentry
]
@ -295,6 +298,28 @@ ledgerHistoricalPrice = do
restofline
return $ HistoricalPrice date symbol price
ledgerIgnoredPrice :: GenParser Char LedgerFileCtx (ErrorT String IO (Journal -> Journal))
ledgerIgnoredPrice = do
char 'N' <?> "ignored-price commodity"
many1 spacenonewline
commoditysymbol
restofline
return $ return id
ledgerTagDirective :: GenParser Char LedgerFileCtx (ErrorT String IO (Journal -> Journal))
ledgerTagDirective = do
string "tag" <?> "tag directive"
many1 spacenonewline
_ <- many1 nonspace
restofline
return $ return id
ledgerEndTagDirective :: GenParser Char LedgerFileCtx (ErrorT String IO (Journal -> Journal))
ledgerEndTagDirective = do
string "end tag" <?> "end tag directive"
restofline
return $ return id
-- like ledgerAccountBegin, updates the LedgerFileCtx
ledgerDefaultYear :: GenParser Char LedgerFileCtx (ErrorT String IO (Journal -> Journal))
ledgerDefaultYear = do
@ -635,6 +660,17 @@ tests_Parse = TestList [
assertParseEqual (parseWithCtx emptyCtx postingamount " $1.")
(Mixed [Amount Commodity {symbol="$",side=L,spaced=False,comma=False,precision=0} 1 Nothing])
,"ledgerIgnoredPrice" ~: do
assertParse (parseWithCtx emptyCtx ledgerIgnoredPrice "N $\n")
,"ledgerTagDirective" ~: do
assertParse (parseWithCtx emptyCtx ledgerTagDirective "tag foo\n")
assertParse (parseWithCtx emptyCtx ledgerTagDirective "tag foo \n")
,"ledgerEndTagDirective" ~: do
assertParse (parseWithCtx emptyCtx ledgerEndTagDirective "end tag\n")
assertParse (parseWithCtx emptyCtx ledgerEndTagDirective "end tag \n")
]
price1_str = "P 2004/05/01 XYZ $55.00\n"

View File

@ -0,0 +1,57 @@
-f-
<<<
; -*- ledger -*-
N $
= /^Expenses:Books/
(Liabilities:Taxes) -0.10
~ Monthly
Assets:Bank:Checking $500.00
Income:Salary
~ Yearly
Expenses:Donations $100.00
Assets:Bank:Checking
2004/05/01 * Checking balance
Assets:Bank:Checking $1,000.00
Equity:Opening Balances
2004/05/03=2004/05/01 * Investment balance
Assets:Brokerage 50 AAPL @ $30.00
Equity:Opening Balances
2004/05/14 * Páy dày
Assets:Bank:Checking 500.00€
Income:Salary
2004/05/14 * Another dày in which there is Páying
Asséts:Bánk:Chécking:Asséts:Bánk:Chécking $500.00
Income:Salary
2004/05/14 * Another dày in which there is Páying
Русский язык:Активы:Русский язык:Русский язык $1000.00
Income:Salary
tag foo
2004/05/27 Book Store
Expenses:Books $20.00
Expenses:Cards $40.00
Expenses:Docs $30.00
Liabilities:MasterCard
end tag
2004/05/27 (100) Credit card company
; This is an xact note!
; Sample: Value
Liabilities:MasterCard $20.00
; This is a posting note!
; Sample: Another Value
; :MyTag:
Assets:Bank:Checking
; :AnotherTag:
>>>= 0