package de.gaalop.gapp.visitor; import de.gaalop.gapp.instructionSet.GAPPAssignInputsVector; import de.gaalop.gapp.instructionSet.GAPPAssignMv; import de.gaalop.gapp.instructionSet.GAPPCalculateMv; import de.gaalop.gapp.instructionSet.GAPPCalculateMvCoeff; import de.gaalop.gapp.instructionSet.GAPPDotVectors; import de.gaalop.gapp.instructionSet.GAPPResetMv; import de.gaalop.gapp.instructionSet.GAPPSetMv; import de.gaalop.gapp.instructionSet.GAPPSetVector; /** * Declares all commands of the GAPP IR * and implements a visitor for determining the * type of a given GAPPBaseInstruction instance * @author Christian Steinmetz */ public enum InstructionType implements GAPPVisitor { resetMv, assignMv, setMv, setVector, dotVectors, calculateMv, assignInputsVector, calculateMvCoeff; @Override public Object visitAssignMv(GAPPAssignMv gappAssignMv, Object arg) { return assignMv; } @Override public Object visitDotVectors(GAPPDotVectors gappDotVectors, Object arg) { return dotVectors; } @Override public Object visitResetMv(GAPPResetMv gappResetMv, Object arg) { return resetMv; } @Override public Object visitSetMv(GAPPSetMv gappSetMv, Object arg) { return setMv; } @Override public Object visitSetVector(GAPPSetVector gappSetVector, Object arg) { return setVector; } @Override public Object visitCalculateMv(GAPPCalculateMv gappCalculateMv, Object arg) { return calculateMv; } @Override public Object visitAssignInputsVector(GAPPAssignInputsVector gAPPAssignInputsVector, Object arg) { return assignInputsVector; } @Override public Object visitCalculateMvCoeff(GAPPCalculateMvCoeff gappCalculateMvCoeff, Object arg) { return calculateMvCoeff; } }