public void start() { for (int i = 0; i < defs.length; i++) { OpDefNode def = defs[i]; if (def.getSource() != def && !BBuiltInOPs.contains(def.getSource().getName())) { // instance String defName = def.getName().toString(); if (def.getBody() instanceof SubstInNode) { String prefix = defName.substring(0, defName.lastIndexOf('!') + 1); def.setParams(generateNewParams(def.getParams())); ExprNode body; try { body = generateNewExprNode(def.getBody(), prefix); } catch (AbortException e) { throw new RuntimeException(); } def.setBody(body); } } } }