This will allow the variable abstractions to fully encapsulate values while
still permitting binary searches on sorted rows.
* csvm-expand: Renamed from `csvm2csv'. Add directive support.
* csvm2csv: New script to perform sorting. Invokes aforementioned.
* test/test-csvm2csv: Update for sorting.
* build-aux/csvm2csv: Fail on invalid var definition.
(expand_vars): Fail in invalid reference.
(parseline): Fail on non-numeric range.
* build-aux/test/test-csvm2csv
(test-fail-unknown-var-ref, test-fail-non-numeric-range)
(test-fail-invalid-var-dfn): New tests.
This allows variables to contain any type of expansion, treating them
as (recursively) string replacements.
* csvm2csv: Add Copyright year.
(expand_vars): New function.
(parseline): Use it. Expand before all other replacements so that
variable expansions may support all types of expressions. Expand
variables in range expressions.
* test/test-csvm2csv: New file.
* assert.xml (_assert_)[@neg-desc@]: New param to allow setting the
description of the negative classification. This is especially useful
when humans are going to be reading the assertion classifications; it can
otherwise be very confusing.
* assert.xml (_assert_)[@neg-as@, @neg-yields@]: Rename from `@neg_as@' and
`@neg_yields' respectively.
This renames these params to be consistent with modern standards.
We want to do this before they're actually in use.
Shame on me!
* test/graph-test.xsl (foo:graph-vtwo-vthree): Swap `a' and `c' nodes. This
ordering seems to have changed after a Saxon upgrade, and this ordering
makes much more sense.
* test/symtable/symbols.xspec: Add missing `@default' and
`@pollute'. Remove extra `@keep'. All keeps should be gone by now, but
it looks like I missed some; that will be handled in a separate commit.
Most LaTeX distributions prohibit loading files from parent
directories. This gets around that for PDF builds.
* doc/src: Add symlink.
* doc/tame.texi, src/symtrable.xsl: Use it.
tame-core used to be its own repository, but maintaining it separately does
not provide a whole lot of benefit, and further makes it difficult to see
version dependencies. I also want to centralize documentation within this
project.
This won't be a problem in practice if nothing imports the
package, so existing systems won't be affected.
* datetime.xml: New assertion for timestamp_current.
* test/core/suite.xml: Import new fold test package.
* test/core/vector/fold.xml: New test package.
* vector/fold.xml: New package. Adds `_unfold-vector-grouped_'.
This would be better handled by better template arithmetic features, but
that's for another time.
* tplgen.xml (_for-each-n_): Add `current_n_dec' for caller body, which
decrements `current_n` by 1 (for 0-indexed values).
This makes it more unlikely to actually occur in a table lookup;
the previous value worried me.
* vector/filter.xml (TABLE_WHEN_MASK_VALUE): Decrease value.