Commit graph

137 commits

Author SHA1 Message Date
John Wiegley
00fdadedcc Removed extraneous parentheses. 2009-01-23 01:09:31 -04:00
John Wiegley
5ba81765ea Added some debug code. 2009-01-23 01:09:23 -04:00
John Wiegley
8156e34136 ptr_op_t::copy(), in the TERMINALS case, wasn't copying enough. 2009-01-23 01:09:14 -04:00
John Wiegley
cf861b35c0 Added a pair of missing calls to in.peek(). 2009-01-23 01:08:52 -04:00
John Wiegley
52524ff2fb Removed some extraneous code. 2009-01-22 21:17:32 -04:00
John Wiegley
c2761f4e90 Moved the occurance of "Error:" when reporting context. 2009-01-22 21:17:16 -04:00
John Wiegley
6fbf5c551e Made the output from parse/compile commands more consistent. 2009-01-22 21:16:57 -04:00
John Wiegley
812d38c176 Correctly report the line context when there is a valexpr parsing error. 2009-01-22 21:16:43 -04:00
John Wiegley
d9e97cfede When parsing commodities, if there is no symbol or annotations, reset the
stream pointer in order to give more accurate error reporting.
2009-01-22 21:15:05 -04:00
John Wiegley
7b76ea5cbc Errors while calculating value expressions now display meaningful error
context.
2009-01-22 18:54:24 -04:00
John Wiegley
9c164bd3dc Allow function calls without arguments in the parser. 2009-01-22 18:53:59 -04:00
John Wiegley
e95e8c3f79 Corrected a parse-time optimization of "! CONSTANT". 2009-01-22 18:53:44 -04:00
John Wiegley
965df4a404 Whitespace changes. 2009-01-22 18:53:08 -04:00
John Wiegley
0859b626a1 Added output insertion operator for mask_t objects. 2009-01-22 18:51:49 -04:00
John Wiegley
2332896810 Changed some debug strings when parsing/compiling valexprs. 2009-01-22 18:51:33 -04:00
John Wiegley
ba18354947 Whitespace changes. 2009-01-22 17:03:26 -04:00
John Wiegley
fac5a95a48 Accept &&/and for &, ||/or for |, and not for !. Also improved error
reporting in the tokenizer.
2009-01-22 17:01:46 -04:00
John Wiegley
0b9f22b4d2 Redid the way command-line arguments are processed. Before, Ledger used - and
-- to mean special things after the command verb was seen.  But now, what used
to be specified as this:

  ledger -n reg cash -payable -- shell

Is now specified as this:

  ledger reg -n cash not payable @shell

It could also be specified as:

  ledger -n reg \(cash and not payable\) and @shell
2009-01-22 16:27:24 -04:00
John Wiegley
ccedf7d57f Parse != as !(==) and !~ as !(=~), for simplicity's sake. 2009-01-22 16:25:51 -04:00
John Wiegley
4e64364d3a Removed an extra call to session.read_init(). 2009-01-22 16:15:12 -04:00
John Wiegley
eb04b8be85 Changed the order in which options are processed, to provide for the correct
overrides.

  1. Global defaults
  2. Environment variable settings
  3. Initialization file
  4. Command-line arguments

Whatever is later in the list overrides what is earlier.
2009-01-21 18:54:06 -04:00
John Wiegley
e4c7b1753b Resolve outstanding stdin parsing issues by buffering the data. 2009-01-21 18:30:37 -04:00
John Wiegley
2858a9999a Added missing zeroes in the sha1 to text generation. 2009-01-20 20:13:05 -04:00
John Wiegley
3bf354946f xact_t pointer list when copy constructing an entry, which leads to crashes
during deconstruction (due to double-free'ing transactions).
2009-01-20 20:06:21 -04:00
John Wiegley
3682ea6f8c Added support for "anonymizing" any report with --anon. 2009-01-20 20:05:41 -04:00
John Wiegley
887828a40c Increased copyright range to include 2009. 2009-01-20 01:53:31 -04:00
John Wiegley
906d8004ae Added a function for account_t to get the account's total cost. 2009-01-19 22:31:04 -04:00
John Wiegley
c6303ab9ef Fixed the market valuation function for balances. 2009-01-19 22:30:46 -04:00
John Wiegley
7cc64c04a5 Don't calculate a reflexive price if a commodity has been marked as NOMARKET. 2009-01-19 22:30:34 -04:00
John Wiegley
ad9a469a2a Got changed_value_xacts working again. 2009-01-19 22:30:11 -04:00
John Wiegley
ce49245667 Make report_t a friend of format_t, so it can set the ANSI options. 2009-01-19 22:29:55 -04:00
John Wiegley
72c09cc0bf Generate a better error if a function operand is invalid. 2009-01-19 22:29:36 -04:00
John Wiegley
efc923acb4 Allow var_t<datetime_t>. 2009-01-19 22:29:17 -04:00
John Wiegley
bcfd6d1db9 When setting a scope's argument, convert the list to a sequence if it's not
already.
2009-01-19 22:29:09 -04:00
John Wiegley
7ffe0e1539 Added back several cost reporting options. 2009-01-19 22:28:34 -04:00
John Wiegley
5e25a6d838 Pass in the total_expr directly to changed_value_xacts. 2009-01-19 22:28:17 -04:00
John Wiegley
e9a5a9bd77 Added back the -V (market value) option. 2009-01-19 22:28:00 -04:00
John Wiegley
83648af19f Added the concept of a "display_total", used for showing the values in the
totals column of both the register and balance reports.  This is different
from the internal calculated total, which is still "total_expr".
2009-01-19 22:27:10 -04:00
John Wiegley
5c17da6572 Instead of doing price annotations in the textual parser, use
commodity_t::exchange.
2009-01-19 22:25:12 -04:00
John Wiegley
d9197fc2e5 Changed COMMODITY_STYLE_NOMARKET TO COMMODITY_NOMARKET. 2009-01-19 22:24:56 -04:00
John Wiegley
14b3eb89f5 Added methods for getting the cost of an xact. 2009-01-19 22:23:45 -04:00
John Wiegley
091144e5e8 Don't look for an xact's state in its entry if there isn't one. 2009-01-19 22:23:27 -04:00
John Wiegley
adf8cfbbc0 Can now determine the market value of balance pairs, even if stored within
value_t objects.
2009-01-19 22:23:02 -04:00
John Wiegley
52e140d14e Lookup commodity prices recursively, searching for the newest data. 2009-01-19 19:59:49 -04:00
John Wiegley
5cc99a6972 Changed COMMODITY_STYLE_BUILTIN to COMMODITY_BUILTIN, and added new flag
COMMODITY_WALKED, for avoiding infinite recursions during price lookups.
2009-01-19 19:58:47 -04:00
John Wiegley
009dd3969a Added a recursive, date-based commodity price searching capability. This
makes it possible to find all possible prices for a commodity by walking the
map of pricing relationships to all other commodities, even if the relation is
distant.
2009-01-19 17:48:27 -04:00
John Wiegley
dc91fdeff2 Added argument to amount_t::value() for request a market value in terms of a
specific commodity.
2009-01-19 17:47:46 -04:00
John Wiegley
60f9748da1 Create an unrounded global amount variable 'one' for creating inverse price
mappings.
2009-01-19 16:24:06 -04:00
John Wiegley
0ec53e4a6c Allow the environment variable LEDGER_DEBUG to enable debugging. 2009-01-19 16:23:17 -04:00
John Wiegley
3bea2b1181 Output newlines between entries using format strings, not hard-coded. 2009-01-14 00:32:37 -04:00