@Override public Expression replace(Expression expression) { if (expression == toReplace) return replacement; else return super.replace(expression); }
@Override public void visit(ExpressionStatement node) { node.setExpression(visitor.replace(node.getExpression())); super.visit(node); }
public void visit(AssignmentNode node) { ReplaceVisitor replaceVisitor = new ReplaceVisitor() { @Override public void visit(Variable node) { if (mapExpressions.containsKey(node)) result = mapExpressions.get(node); } @Override public void visit(MultivectorComponent node) { if (mapExpressions.containsKey(node)) result = mapExpressions.get(node); } }; node.setValue(replaceVisitor.replace(node.getValue())); mapExpressions.put(node.getVariable(), node.getValue()); }