summaryrefslogtreecommitdiff
path: root/parser.cc
Commit message (Collapse)AuthorAgeFilesLines
* Moved xact_xdata_t into xact_t itself, as a set of "extended data" that mightJohn Wiegley2008-08-021-1/+0
| | | | | | | | be gathered during reporting. Removed the references to accounts and such from the mask logic, which means that the value expression "acount =~ /foo/" is needed in place of just "/foo/".
* Changed the way that bare masks are parsed. There is still some couplingJohn Wiegley2008-08-021-38/+4
| | | | here, albeit just through flag values. It needs to be changed, though.
* Formatting now relies exclusively on value expressions.John Wiegley2008-08-021-11/+10
| | | | | | | | | | | | | | | | | | | | 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-4/+3
| | | | expression in its argument.
* Re-implemented ?: parsing in value expressions. "a ? b : c" is implemented byJohn Wiegley2008-08-011-3/+39
| | | | | translating it into the equivalent syntax tree "(a & b) | c", since this expression evaluates to the value of b if a is true, otherwise c.
* Revised the way that exceptions are thrown around. Instead of context being aJohn Wiegley2008-07-311-8/+5
| | | | | | | 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.
* Value expression architecture is now rewritten, but the functionality of theJohn Wiegley2008-07-291-0/+445
| | | | | | | 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.
* A great deal of reorganization to restore the old parsing code (since theJohn Wiegley2008-07-221-185/+0
| | | | newer XML stuff was pulled).
* Brought in the final round of 3.0 code, although it does not compile yet:John Wiegley2008-07-201-7/+7
| | | | report, session, parts of xpath, main, journal, option.
* The code is compiling again, but it's far from being able to run yet.John Wiegley2008-05-081-43/+35
|
* Several fixes to lot price handling.John Wiegley2008-04-131-0/+1
|
* Added much better error location.John Wiegley2008-04-131-4/+4
|
* *** empty log message ***John Wiegley2008-04-131-7/+4
|
* Made several changes to the parsing infrastructure to allow passingJohn Wiegley2008-04-131-52/+54
| | | | | the "config_t" object around. This is needed for parsing option settings in the initialization file.
* Removed Python integration support.John Wiegley2008-04-131-48/+0
|
* Restructed the code that it can build and be used as a shared library.John Wiegley2008-04-131-9/+129
| | | | | The command-line version is still statically bound in the build process by default (for the sake of speed).
* updated to 2.02John Wiegley2008-04-131-0/+2
|
* updated to version 2.0John Wiegley2008-04-131-0/+119
|
* changesJohn Wiegley2008-04-131-117/+0
|
* changed ledger.h to journal.h; moved adding of autoxact hookJohn Wiegley2004-09-231-1/+1
|
* added (disabled) code for Boost.PythonJohn Wiegley2004-08-271-15/+97
|
* fixesJohn Wiegley2004-08-191-0/+35