Dusa helpers
In addition to the Dusa class and solution iterator and the the DusaSolution class, the Dusa API includes a couple of other utility functions.
compareTerm() and compareTerms()
Provides a consistent comparison function for sorting Dusa terms or list of Dusa terms.
function compareTerm(t1: Term | BigTerm, t2: Term | BigTerm): number;function compareTerms(t: (Term | BigTerm)[], s: (Term | BigTerm)[]): number;termToString()
Provides a consistent way of making terms into strings. If true is passed
as the parens argument, then structured terms with arguments will be
surrounded by parentheses.
function termToString(tm: Term | BigTerm, parens = false): string;check() and compile()
The check() function runs just static checks on a Dusa program, and returns
a list of any issues that exist.
interface Issue { type: 'Issue'; msg: string; severity: 'warning' | 'error'; loc?: SourceLocation;}function check(source: string): Issue[] | null;The compile() function transforms a Dusa source program into an
intermediate “bytecode” representation which can be passed to the Dusa
constructor instead of a source program. If there are any issues, the
DusaCompileError exception will be thrown.
interface DusaCompileError extends Error { issues: Issue[];}function compile(source: string): BytecodeProgram;