package sugarVisitors;
import tools.Assertions;
import ast.Ast;
import ast.Expression;
import ast.Expression.*;
public class XInE extends CloneVisitor{
public XInE(X x, Expression eAlt) {
this.x = x; this.eAlt = eAlt;
}
X x;
Expression eAlt;
public static Expression of(X x,Expression eAlt, Expression e){
return e.accept(new XInE(x, eAlt));
}
public Expression visit(X s) {
if(!s.equals(x)){return super.visit(s);}
return eAlt;
}
public Expression visit(Expression.BinOp s) {
if(s.getOp().kind!=Ast.OpKind.EqOp){return super.visit(s);}
return s.withRight(s.getRight().accept(this));
}
}