package jetbrains.mps.lang.dataFlow.framework;

/*Generated by MPS */

import jetbrains.mps.annotations.GeneratedClass;
import java.util.List;

@GeneratedClass(node = "r:3dddb2c7-b2ba-4381-896a-2e702ca1fb6e(jetbrains.mps.lang.dataFlow.framework)/4074113095384029103", model = "r:3dddb2c7-b2ba-4381-896a-2e702ca1fb6e(jetbrains.mps.lang.dataFlow.framework)")
public enum AnalysisDirection {
  FORWARD() {
    @Override
    public List<ProgramState> dependencies(ProgramState s) {
      return s.pred();
    }
    @Override
    public List<ProgramState> dependents(ProgramState s) {
      return s.succ();
    }

  },
  BACKWARD() {
    @Override
    public List<ProgramState> dependencies(ProgramState s) {
      return s.succ();
    }
    @Override
    public List<ProgramState> dependents(ProgramState s) {
      return s.pred();
    }

  };

  public abstract List<ProgramState> dependencies(ProgramState s);
  public abstract List<ProgramState> dependents(ProgramState s);
}
