UNPKG

@specs-feup/lara

Version:

A js port of the popular framework for building source-to-source compilers

39 lines 1.26 kB
import { LaraJoinPoint } from "../../LaraJoinPoint.js"; import MutationResult from "./MutationResult.js"; /** * Base class that represents a code mutation. * * This should not be instantiated directly, instead it should be extended. * * @param name - the name of the mutation * */ export default abstract class Mutation { name: string; constructor(name?: string); /** * @returns The name of this mutation */ getName(): string; /** * Generator function for the mutations. * * @param $jp - The point in the code to mutate. * * @returns An iterator that results the results of each mutation on each iteration. */ mutate($jp: LaraJoinPoint): IterableIterator<MutationResult>; /** * @param $jp - A point in the code to test * * @returns True if the given join point is a valid mutation point, false otherwise */ abstract isMutationPoint($jp: LaraJoinPoint): boolean; /** * @param $jp - The point in the code to mutate * * @returns An array with the results of each mutation, which must be out-of-tree copies of the given join point */ abstract getMutants($jp: LaraJoinPoint): MutationResult[]; } //# sourceMappingURL=Mutation.d.ts.map