Commit graph

3366 commits

Author SHA1 Message Date
Priit Laes
d578395a65 Fix python demo: EUROPEAN was changed to DECIMAL_COMMA
Signed-off-by: Priit Laes <plaes@plaes.org>
2010-06-13 17:49:56 -04:00
Priit Laes
7ef478bc50 Added --prefix option to acprep
Signed-off-by: Priit Laes <plaes@plaes.org>
2010-06-13 17:49:56 -04:00
John Wiegley
0c699e4d57 Merge branch 'next' 2010-06-13 15:04:53 -04:00
John Wiegley
cf0147fcd0 Removed an invalid called to VERIFY() 2010-06-13 05:57:02 -04:00
John Wiegley
b423932c3b Fixed documentation bug in acprep 2010-06-13 05:31:40 -04:00
John Wiegley
09fdab0d95 The --cache option is now officially deprecated 2010-06-13 05:31:39 -04:00
John Wiegley
2dec00a882 Fixes to scope.h for the sake of Boost.Serialization 2010-06-13 05:31:39 -04:00
John Wiegley
7146926fd5 Removed unneeded debug code 2010-06-13 05:25:36 -04:00
John Wiegley
ea1642b3f9 Completely reworked argument passing in expressions 2010-06-13 05:02:14 -04:00
John Wiegley
ad3b30a964 In value_t::_dup, test if storage is uninitialized 2010-06-13 05:01:54 -04:00
John Wiegley
4a44218da1 For value_t, use boost::any to refer to objects 2010-06-13 03:55:08 -04:00
John Wiegley
44a5103e1c Moved value_t::label() to value.cc 2010-06-13 03:54:36 -04:00
John Wiegley
f3fa011d39 Improved support for value_t::in_place* functions 2010-06-13 03:54:10 -04:00
John Wiegley
0c02b720ef Moved join_args function to precmd.cc 2010-06-13 03:53:08 -04:00
John Wiegley
0bb9c11062 Changed display order of format exceptions 2010-06-13 03:52:20 -04:00
John Wiegley
0ed85124d9 Further tweaks to tools/push 2010-06-13 03:50:41 -04:00
John Wiegley
dcdd9c4a56 If a type context exists, confirm the result matches 2010-06-13 01:03:49 -04:00
John Wiegley
1bc5b894df Expression evaluations now have a "type context"
Thus, an expression can know if the context in which it's being
evaluated requires a string, and if so, determine it's output
accordingly.  For example:

  account       ; returns the full name of the posting's account
  account.total ; here the context is SCOPE, so account is an obj
2010-06-13 01:03:48 -04:00
John Wiegley
536e3e7322 Added a new scope_value() inline helper function 2010-06-13 01:03:48 -04:00
John Wiegley
6ef755c133 Added support for assert, check and expr directives
These can occur in many places:

  ; Within an automated transaction, the assert is evaluated every time
  ; a posting is matched, with the expression context set to the
  ; matching posting.
  = /Food/
    assert account("Expenses:Food").total >= $100

  2010-06-12 Sample
    Expenses:Food                $100
    Assets:Checking

  ; At file scope, the expression is evaluated with "global" scope.
  assert account("Expenses:Food").total == $100

  ; At the top of a transction, the assertion's scope is the
  ; transaction.  After a posting, the scope is that posting.  Note
  ; however that account totals are only adjusted after successful
  ; parsing of a transaction, which means that all the assertions below
  ; are true, even though it appears as though the middle posting should
  ; affect the total immediately (which is not the case).
  2010-06-12 Sample 2
    assert account("Expenses:Food").total == $100
    Expenses:Food                $50
    assert account("Expenses:Food").total == $100
    Assets:Checking
    assert account("Expenses:Food").total == $100
2010-06-13 01:03:48 -04:00
John Wiegley
6f56a7443f Removed an unused function 2010-06-13 01:03:48 -04:00
John Wiegley
8d2fce1ae8 Automated xacts may now contain "deferred tags"
For example, consider the following automated transaction:

  = /Food/
    ; Next Date:: date + 10
    (Expenses:Tax)                1.00
    ; Next Date:: date + 20

This will add a metadata field named 'Next Date' to the _matching
posting_, with a value that is 10 days later than that posting.  It will
also generate a new posting for that transaction, whose amount is the
same as the matching posting.  Further, it will add a 'Next Date'
metadata tag to the _generated posting_ whose value is 20 days later
than the date of the matching posting.
2010-06-13 01:03:48 -04:00
John Wiegley
5ec85538d9 account_t::add_post resets family_details.gathered 2010-06-13 01:03:48 -04:00
John Wiegley
15bf3ed39e account(NAME) function can lookup account objects
For example, just the word "account" returns the name of the current
posting's account, but account("Expenses:Food") returns the actual
account object, so that it's total may be accessed.
2010-06-13 01:03:47 -04:00
John Wiegley
9effdb3aa2 Option --input-date-format adds to candidate list 2010-06-13 01:03:47 -04:00
John Wiegley
9edeb4ba11 Moved value.cc into libexpr 2010-06-13 01:03:47 -04:00
John Wiegley
1ced1f3d83 Reformatted a comment 2010-06-13 01:03:47 -04:00
John Wiegley
c558613ae4 Fixed a spelling error 2010-06-13 01:03:47 -04:00
John Wiegley
baad7272c7 Minor whitespace fix 2010-06-13 01:03:47 -04:00
John Wiegley
40f553228f Merge branch 'next' 2010-06-13 00:42:25 -04:00
John Wiegley
b1b4e2aadf Add support for typed metadata
The metadata construct 'Key: Value' is now just a special case for
'Key:: "Value"'.  Another after a :: in metadata setting is parsed as a
full value expression and typed as such.  For example:

  ; Key:: $400 + $500

  ledger -l 'tag("Key") < $1000'
2010-06-12 15:43:00 -04:00
John Wiegley
0555e7f61e Improved value expression function 'commodity'
Without arguments -- and in a posting -- it is equivalent to
"commodity(amount)".  Otherwise, it returns the commodity symbol of its
argument.
2010-06-12 14:58:44 -04:00
John Wiegley
28c65cda51 Store metadata values as value_t instead of string 2010-06-12 14:55:18 -04:00
John Wiegley
a1fc3c5cfe The --anon option now randomizes its effect 2010-06-12 14:43:40 -04:00
John Wiegley
0fb6bf4189 Improved the way that acprep finds Python
If Boost.Python comes from /opt, then Python must too.
2010-06-12 14:37:19 -04:00
John Wiegley
4190240028 Minor whitespace fix 2010-06-12 00:51:45 -04:00
John Wiegley
1a60c9e82c Include serialize_ptr_deque, for Boost.Serialization 2010-06-12 00:51:36 -04:00
John Wiegley
7e118f4ad0 Added --enable-cache, --enable-doxygen to acprep 2010-06-12 00:50:53 -04:00
John Wiegley
5260d19548 Minor corrections to tools/pre-commit 2010-06-12 00:30:00 -04:00
John Wiegley
3e4b08478b Use UTF-8 as the proper encoding for Texinfo docs 2010-06-12 00:30:00 -04:00
John Wiegley
d530116477 Many improvements to how Boost is found by acprep 2010-06-12 00:29:57 -04:00
John Wiegley
729f3e8c04 Corrected Boost lookup if no suffix exists 2010-06-11 23:35:42 -04:00
John Wiegley
c77be795cb In acprep, improve determination of gcc to use 2010-06-11 17:02:25 -04:00
John Wiegley
4fcef86615 Updated Portfile as 'ledger-devel' for pre-3.0 2010-06-11 17:02:25 -04:00
John Wiegley
dea2aed0b5 Untabified all source files 2010-06-11 17:02:25 -04:00
John Wiegley
d580079df8 Scrub account totals before applying --percent 2010-06-11 17:02:25 -04:00
Johann Klähn
31d8d41d02 vim. add syntax highlighting for tag/pop 2010-06-11 17:02:24 -04:00
John Wiegley
f7d872dbd2 Fixed a minor typo in acprep 2010-06-10 16:54:31 -04:00
John Wiegley
ab749742d9 Several corrections to transaction finalization 2010-06-10 16:33:46 -04:00
John Wiegley
92d2eb9574 Use ptr_deque for value_t::sequence_t
This is to work around undefined behavior according to the Standard,
[lib.res.on.functions]/2:

"In particular, the effects are undefined in the following cases: [..]
- if an incomplete type (3.9) is used as a template argument when
instantiating a template component."
2010-06-10 16:32:24 -04:00