@specs-feup/lara
Version:
A js port of the popular framework for building source-to-source compilers
30 lines • 960 B
TypeScript
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