summaryrefslogtreecommitdiff
path: root/expr.h
Commit message (Collapse)AuthorAgeFilesLines
* Re-enabled almost all of the old reporting code, which means it compiles nowJohn Wiegley2008-08-021-0/+1
| | | | within the new scheme.
* More infrastructure work toward getting journal objects to provide their ownJohn Wiegley2008-08-021-0/+4
| | | | information in an abstract manner.
* Formatting now relies exclusively on value expressions.John Wiegley2008-08-021-2/+0
| | | | | | | | | | | | | | | | | | | | What this means is that the utility code, basic math, value expressions, string formatting and option handling are now entirely decoupled from the rest of the code. This decoupling not only greatly simplifies the more basic parts of Ledger, but makes it much easier to test and verify its completeness. For example, when the formatting code %X is seen by the format parser, it turns into a call to the expression function fmt_X, which must be defined when the format string is first compiled against an object. If that object is a transaction, the transaction's scope will be the first to have a chance at providing a definition. If an account is being reported, it will. If neither does, the next scope in sequence -- soon to be the current report -- will, and then the session object that "owns" the current Ledger session. In 2.6, the formatting code new everything about transaction and accounts, and relied on flags to communicate special details between them. Now the transaction will offer the details for its own reporting, while the formatter worries only about strings and how to output them.
* Added a new 'format' debugging command, which dissects the formattingJohn Wiegley2008-08-011-0/+2
| | | | expression in its argument.
* Value expressions now auto-compile themselves on first use if the expr_tJohn Wiegley2008-08-011-0/+2
| | | | | object is not constant. This saves classes that use expr_t from having to track such a detail themselves.
* Revised the way that exceptions are thrown around. Instead of context being aJohn Wiegley2008-07-311-3/+3
| | | | | | | complicated string of pointers, it's now just a global block of text that gets appended to as the error is being thrown up, and can be displayed at the catch point if desired. There are almost no cases where a thrown exception will not result in an error message being displayed to the user.
* Moved around and renamed a very large amount of code in order to rationalizeJohn Wiegley2008-07-291-12/+16
| | | | the way that value expressions extract information from journal objects.
* Value expression architecture is now rewritten, but the functionality of theJohn Wiegley2008-07-291-0/+114
| | | | | | | old system (for example, the meaning of 'a') has yet to be restored. In the new scheme, this will be done by definition a function outside of the value expression logic, rather than the tight coupling between journal innards and value expressions that occurred in 2.x.
* rewrote the way registers are computed -- againJohn Wiegley2004-08-041-183/+0
|
* brought back the "print" and "equity" reports; this time much better!John Wiegley2004-07-311-0/+6
|
* removed constraints_t entirelyJohn Wiegley2004-07-311-0/+50
|
* predicate are now used instead of constraintsJohn Wiegley2004-07-301-9/+29
|
* two major changesJohn Wiegley2004-07-301-53/+53
| | | | | | | | | | | | | Complete changed the way format strings are handled. They are now compiled first, which is far more efficient than what was being done before. Also, there is now a global ledger::commodity_t::commodities map, which saves me from having to pass the current journal around to a zillion different functions, for the sole purpose of making sure that all commodity symbols that are parsed refer to the same commodity object.
* initialize node_t::mask to NULLJohn Wiegley2004-07-281-1/+1
|
* reorganized report.cc into item.cc, expr.cc and format.ccJohn Wiegley2004-07-271-8/+3
|
* initial rev of 2.0John Wiegley2004-07-261-0/+112