UNPKG

@specs-feup/lara

Version:

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

30 lines 960 B
import { LaraJoinPoint } from "../../LaraJoinPoint.js"; import PassResult from "./results/PassResult.js"; /** * Represents a Lara transformation pass. * * Need to implement: * - _apply_impl($jp) */ export default abstract class Pass { protected abstract _name: string; /** * @returns Name of the pass */ get name(): string; /** * Applies this pass starting at the given join point. If no join point is given, uses the root join point * * @param $jp - Joint point on which the pass will be applied * @returns Results of applying this pass to the given joint point */ apply($jp: LaraJoinPoint): PassResult; /** * Apply tranformation to * * @param $jp - Joint point on which the pass will be applied * @returns Results of applying this pass to the given joint point */ protected abstract _apply_impl($jp: LaraJoinPoint): PassResult; } //# sourceMappingURL=Pass.d.ts.map