| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
|
| | |
|
| |
| |
| |
| | |
within the new scheme.
|
| |
| |
| |
| |
| |
| |
| |
| | |
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/".
|
| |
| |
| |
| | |
here, albeit just through flag values. It needs to be changed, though.
|
| |
| |
| |
| | |
information in an abstract manner.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
You can use 'ledger period "daily in june"' to find out how Ledger will parse
that date string, plus up to the first 20 dates it encounters in the range.
Note that the 'end' displayed is currently exclusive.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This means transactions can only have day-level granularity -- which has
always been the case from an data file point of view. The advantage to this
restriction is that reports will now be immune from daylight savings related
bugs, where a transaction falls to the wrong side of a --monthly report, for
example.
|
| |
| |
| |
| | |
expression in its argument.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There are now three commands one can use to interact with value expressions
directly:
ledger parse EXPR # shows the parse tree resulting from EXPR
ledger compile EXPR # shows what the compiled tree looks like
ledger eval EXPR # print the resulting value, useful in scripts
|
| |
| |
| |
| |
| | |
object is not constant. This saves classes that use expr_t from having to
track such a detail themselves.
|
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
about journal objects. This is all done through value expressions now.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| |
| |
| |
| |
| | |
Ledger session from a cache file. It doesn't work at all yet, though at least
the major structures are in place now.
|
| |
| |
| |
| | |
generated.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
Ledger's internal architecture.
|
| |
| |
| |
| | |
rounding.
|
| |
| |
| |
| | |
are in place yet and the formatting is still off.
|
| |
| |
| |
| | |
functions for each of the journal objects has yet to be ported.
|
| |
| |
| |
| | |
the way that value expressions extract information from journal objects.
|
| | |
|
| |
| |
| |
| | |
value_t, rather than the rest of Ledger proper.
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| |
| |
| |
| | |
getting everything back up to what it was (plus the new code written for 3.0).
|
|\| |
|
| | |
|
| | |
|
|\|
| |
| |
| | |
The only change to come forward was updating the binary version number.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
double has been disabled, because I am no longer packaging the gdtoa library
with Ledger (because double conversion really has nothing to do with what
Ledger does). If you wish to use it, you can find gdtoa in cpp-rewrite-2006,
under a sub-directory of the same name.
|
| |
| |
| |
| | |
fails due to the fact that 2.x value expression syntax is not restored.
|
| |
| |
| |
| | |
if you wish to see memory usage statistics along with a top-level trace.
|
| | |
|
| | |
|
| |
| |
| |
| | |
many balancing errors.
|
| |
| |
| |
| | |
that value expressions must work, there are a lot of details involved.
|
| | |
|
|\| |
|
| |
| |
| |
| |
| | |
automake requires it, so when preparing the sources for building the ChangeLog
is touch'd just as we were doing for AUTHORS and COPYING.
|