@Override public void visit(ExpressionStatement node) { node.getExpression().accept(this); }
@Override public void visit(ExpressionStatement node) { node.getExpression().accept(dfgVisitor); super.visit(node); }
@Override public void visit(ExpressionStatement node) { node.getExpression().accept(dfgReplacer); if (dfgReplacer.result != null) { node.setExpression(dfgReplacer.result); dfgReplacer.result = null; } }
@Override public void visit(ExpressionStatement node) { node.getExpression().accept(expressionVisitor); super.visit(node); }
@Override public void visit(ExpressionStatement node) { node.setExpression(RoundingDFGVisitor.round(node.getExpression(), numberOfDigits)); }
@Override public void visit(ExpressionStatement node) { node.getExpression().accept(this); code.append("\\\\\n"); node.getSuccessor().accept(this); }
@Override public void visit(ExpressionStatement node) { appendIndentation(); node.getExpression().accept(this); code.append(";\n"); node.getSuccessor().accept(this); }
@Override public void visit(ExpressionStatement node) { findUndeclaredVariables(node.getExpression()); node.getSuccessor().accept(this); }
@Override public void visit(ExpressionStatement node) { node.setExpression(visitor.replace(node.getExpression())); super.visit(node); }
@Override public void visit(ExpressionStatement node) { node.setExpression(performConstantPropagationOnExpression(node.getExpression())); super.visit(node); }
@Override public void visit(ExpressionStatement node) { // expression usage dfgVisitorusedVariables.getVariables().clear(); node.getExpression().accept(dfgVisitorusedVariables); for (VariableComponent component : dfgVisitorusedVariables.getVariables()) { variableUsage.addUsage(component); } }
@Override public void visit(ExpressionStatement node) { addNode(node, "Expression:\\n" + node.getExpression()); node.getSuccessor().accept(this); }
@Override public void visit(ExpressionStatement node) { findUndeclaredVariables(node.getExpression()); node.getSuccessor().accept(this); }
@Override public void visit(ExpressionStatement node) { node.setExpression(performExpressionReplacements(node.getExpression())); super.visit(node); }
@Override public void visit(ExpressionStatement node) { appendIndent(); addCode(node.getExpression()); code.append(";\n"); node.getSuccessor().accept(this); }
@Override public void visit(ExpressionStatement node) { UpdateMacroCallVisitor updater = new UpdateMacroCallVisitor(node); node.getExpression().accept(updater); node.getSuccessor().accept(this); }
@Override public void visit(ExpressionStatement node) { curNode = node; replacer.result = null; delete = false; node.getExpression().accept(replacer); boolean del = delete; Expression result = replacer.result; if (result != null) node.setExpression(result); super.visit(node); if (del) graph.removeNode(node); }
@Override public void visit(ExpressionStatement node) { appendIndentation(); node.getExpression().accept(this); append(";\n"); node.getSuccessor().accept(this); }
@Override public void transform(ControlFlowGraph graph) throws OptimizationException { //insert visualizing commands, if needed LinkedList<ExpressionStatement> statements = ExpressionStatementCollector.collectAllStatements(graph); String prefix = "_V_"; //2d HashMap<String, Expression> renderingExpressions = graph.getRenderingExpressions(); int i = 0; for (ExpressionStatement s : statements) { String productName = prefix + "PRODUCT" + i; AssignmentNode renderNode = new AssignmentNode(graph, new Variable(productName), s.getExpression()); graph.addLocalVariable(new Variable(productName)); s.insertAfter(renderNode); StoreResultNode outputRenderNode = new StoreResultNode(graph, new Variable(productName)); graph.addLocalVariable(new Variable(productName)); renderNode.insertAfter(outputRenderNode); renderingExpressions.put(productName, s.getExpression()); i++; } } }
for (ExpressionStatement s : statements) { String productName = prefix + "PRODUCT" + i; AssignmentNode renderNode = new AssignmentNode(graph, new Variable(productName), new InnerProduct(s.getExpression(), visualizationPoint)); graph.addLocalVariable(new Variable(productName)); s.insertAfter(renderNode); graph.addLocalVariable(new Variable(productName)); renderNode.insertAfter(outputRenderNode); renderingExpressions.put(productName, s.getExpression()); i++;