summaryrefslogtreecommitdiff
path: root/transpile-tests/README.md
blob: 82e17f71fd0e985727eda56b5ddb8c3348cd92c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Transpile Tests

This module may be helpful if you want to create an implementation of Simple in another language.
It can parse the JUnit tests to automatically translate most of the boilerplate.
Some manual tweaks will still be required though, because only common patterns are detected
(e.g. 01: testSimpleProgram, testZero; 04: testVarArg; 08: testRegress5; 09: testMeet, ...)

Chapter discovery includes suffixes such as `17a` and `17b`. Tests that use
computed Java inputs or unsupported assertions are skipped individually, so
the remaining tests in the same class can still be exported.

## Usage

Just call `JUnitParser.parseRepository` to get a list of parsed test classes for each chapter,
and implement a pretty printer for your favourite language.

For an example you can refer to `printers.RustPrinter`,
which produces tests similar to the ones used by
[Simple-Rust](https://github.com/SeaOfNodes/Simple-Rust).