tame/tamer/tests
Mike Gerwitz 9d50157f8e tamer: Very basic support for template application NIR -> xmli
This this a big change that's difficult to break up, and I don't have the
energy after it.

This introduces nullary template application, short- and long-form.  Note
that a body of the short form is a `@values@` argument, so that's not
supported yet.

This continues to formalize the idea of what "template application" and
"template expansion" mean in TAMER.  It makes a separate `TplApply`
unnecessary, because now application is simply a reference to a
template.  Expansion and application are one and the same: when a template
expands, it'll re-bind metavariables to the parent context.  So in a
template context, this amounts to application.

But applying a closed template will have nothing to bind, and so is
equivalent to expansion.  And since `Meta` objects are not valid outside of
a `Tpl` context, applying a non-closed template outside of another template
will be invalid.

So we get all of this with a single primitive (getting the "value" of a
template).

The expansion is conceptually like `,@` in Lisp, where we're splicing trees.

It's a mess in some spots, but I want to get this committed before I do a
little bit of cleanup.
2023-03-29 12:58:32 -04:00
..
xmli tamer: Very basic support for template application NIR -> xmli 2023-03-29 12:58:32 -04:00
README.md tamer: tests: System test support 2023-03-10 14:27:58 -05:00
run-tests tamer: tests: System test support 2023-03-10 14:27:58 -05:00

README.md

System and Integration Tests

Rust files in this directory will be recognized by Cargo and will be automatically compiled and run by make check.

Shell scripts prefixed with test- will be recognized by our test harness and run on make check. These scripts should be preferred when confidence in the system end-to-end is required, since they invoke the binaries just the same as the user or build process would.

Unit and integration tests written in Rust are located alongside the modules they test in ../src/. Benchmarks are in ../benches.