summaryrefslogtreecommitdiff
path: root/predicate.h
Commit message (Collapse)AuthorAgeFilesLines
* Formatting now relies exclusively on value expressions.John Wiegley2008-08-021-1/+1
| | | | | | | | | | | | | | | | | | | | 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.
* Enabled a huge number of warning flags for g++ in acprep, and fixed them allJohn Wiegley2008-07-301-7/+2
| | | | | | except for several unused parameter warnings (because there is so much code still #if 0'd out), and one implicit conversion from long long to long which still has to be dealt with.
* Value expression architecture is now rewritten, but the functionality of theJohn Wiegley2008-07-291-0/+74
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.