UNPKG

@specs-feup/kadabra

Version:

A Java source-to-source compiler written in Typescript

33 lines (24 loc) 1.17 kB
import IterativeMutation from "@specs-feup/lara/api/lara/mutation/IterativeMutation.js"; import MutationResult from "@specs-feup/lara/api/lara/mutation/MutationResult.js"; import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.js"; import { Joinpoint, BinaryExpression } from "../../Joinpoints.js"; export default class ArithmeticOperatorDeletionMutation extends IterativeMutation { constructor() { super("ArithmeticOperatorDeletionMutation"); } isMutationPoint(jp: Joinpoint) { return jp instanceof BinaryExpression; } *mutate(jp: BinaryExpression) { const leftOperand = jp.lhs.copy(); debug("/*--------------------------------------*/"); debug("Mutating operator: " + jp + " to " + leftOperand); debug("/*--------------------------------------*/"); yield new MutationResult(leftOperand); const rightOperand = jp.rhs.copy(); debug("/*--------------------------------------*/"); debug("Mutating operator: " + jp + " to " + rightOperand); debug("/*--------------------------------------*/"); yield new MutationResult(rightOperand); } }