package de.gaalop.dfg; /** * This interface needs to be implemented by classes that want to iterate over data flow graphs. * <p/> * It provides a method for each concrete class that a node in a dataflow graph can be of. */ public interface ExpressionVisitor { /** * This method is called by {@link de.gaalop.dfg.Subtraction#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(Subtraction node); /** * This method is called by {@link de.gaalop.dfg.Addition#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(Addition node); /** * This method is called by {@link de.gaalop.dfg.Division#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(Division node); /** * This method is called by {@link de.gaalop.dfg.InnerProduct#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(InnerProduct node); /** * This method is called by {@link de.gaalop.dfg.Multiplication#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(Multiplication node); /** * This method is called by {@link de.gaalop.dfg.MathFunctionCall#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(MathFunctionCall node); /** * This method is called by {@link de.gaalop.dfg.Variable#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(Variable node); /** * This method is called by {@link de.gaalop.dfg.MultivectorComponent#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(MultivectorComponent node); /** * This method is called by {@link de.gaalop.dfg.Exponentiation#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(Exponentiation node); /** * This method is called by {@link de.gaalop.dfg.FloatConstant#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(FloatConstant node); /** * This method is called by {@link de.gaalop.dfg.OuterProduct#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(OuterProduct node); /** * This method is called by {@link de.gaalop.dfg.BaseVector#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(BaseVector node); /** * This method is called by {@link de.gaalop.dfg.Negation#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(Negation node); /** * This method is called by {@link de.gaalop.dfg.Reverse#accept(ExpressionVisitor)}. * @param node The reverse node that called this method. */ void visit(Reverse node); /** * This method is called by {@link de.gaalop.dfg.LogicalOr#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(LogicalOr node); /** * This method is called by {@link de.gaalop.dfg.LogicalAnd#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(LogicalAnd node); /** * This method is called by {@link LogicalNegation#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(LogicalNegation node); /** * This method is called by {@link de.gaalop.dfg.Equality#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(Equality node); /** * This method is called by {@link de.gaalop.dfg.Inequality#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(Inequality node); /** * This method is called by {@link de.gaalop.dfg.Relation#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(Relation relation); /** * This method is called by {@link de.gaalop.dfg.FunctionArgument#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(FunctionArgument node); /** * This method is called by {@link de.gaalop.dfg.MacroCall#accept(ExpressionVisitor)}. * * @param node The object that called this method. */ void visit(MacroCall node); }