The language level of this program.
The language level of this program. The levels are: base: basic module structure; empty statements L0: const, var, type decls; basic types; expressions; assignment stmts L1: if and while statements L2: for and case statements L3: procedures, only local access to variables L4: arrays and records L5: L4 with unrestricted access to variables (FIXME: not implemented)
The highest task level of this program.
The highest task level of this program. The levels are: 1 - parsing and pretty printing (LDTA 1) 2 - name analysis (LDTA 2) 3 - type analysis (LDTA 3) 4 - desugar (LDTA 4a) 5 - optimisation (LDTA 4b) (FIXME: not implemented) 6 - C code gen (LDTA 5a)
Flag to decide whether to sanitise the output before comparison of test results with expected results (see sanitise method).
Flag to decide whether to sanitise the output before comparison of test results with expected results (see sanitise method). Default is true; override with false if you want actual results compared.
Make tests that process the files in path.
Make tests that process the files in path. name is an identifying name for this set of tests. All files whose names end in srcext are processed. Processing is done by the function compile which must return either Some (s) where s is the output or None if processing failed. If srcext is .x and resext is .y, then the expected result for foo.x is found in file foo.y. If optinext is Some (z), then foo.z is used for standard input, if it exists, otherwise the string indefault is used. A test fails if either the processing fails or it succeeds with the wrong result. argslist is used to specify the sets of command-line arguments that you want to use. Each test is run with each set of arguments. The default is an empty argument list.
The maximum language level we support.
The maximum language level we support.
Make the tests for a given language subset.
Make the tests for a given language subset. proglang denotes the language subset whose tests are used.
Sanitise the output from a test.
Sanitise the output from a test. Remove any output that doesn't make sense to this program. I.e., if we are running a program that performs tasks 1-m, then any lines marked with [p], where p > m should be removed before comparison. Also, there can be three numbers, a'la [p,q,r] where p is as before and q (r) are lower (upper) inclusive bounds on the language level to which this output should apply. If p is omitted, the output applies to all task levels. If p is given, but q and r are omitted, the output also applies to all language levels.
This expect method has been deprecated. Please replace all invocations of expect with an identical invocation of expectResult instead.
This expect method has been deprecated. Please replace all invocations of expect with an identical invocation of expectResult instead.
Driver for testing a translator.