package testCustomAnalyzer.dataFlow; /*Generated by MPS */ import jetbrains.mps.analyzers.runtime.framework.CustomAnalyzerRunner; import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.lang.dataFlow.MPSProgramFactory; import java.util.Collections; import jetbrains.mps.lang.dataFlow.framework.IDataFlowModeId; import jetbrains.mps.lang.dataFlow.framework.ProgramFactory; import jetbrains.mps.lang.dataFlow.framework.NamedAnalyzerId; import jetbrains.mps.lang.dataFlow.framework.DataFlowAnalyzerBase; import jetbrains.mps.lang.dataFlow.framework.Program; import java.util.List; import jetbrains.mps.lang.dataFlow.framework.ProgramState; import org.jetbrains.annotations.Nullable; import java.util.Map; import jetbrains.mps.lang.dataFlow.framework.AnalysisDirection; public class CustomAnalyzerWithModeAnalyzerRunner extends CustomAnalyzerRunner<Integer> { private SNode myNode; public CustomAnalyzerWithModeAnalyzerRunner(SNode node) { this(node, new MPSProgramFactory(Collections.<IDataFlowModeId>emptyList())); } public CustomAnalyzerWithModeAnalyzerRunner(SNode node, ProgramFactory<NamedAnalyzerId> factory) { super(null, null); myNode = node; myAnalyzer = new CustomAnalyzerWithModeAnalyzerRunner.CustomAnalyzerWithModeAnalyzer(); myProgram = factory.createProgram(myNode); factory.prepareProgram(myProgram, myNode, new NamedAnalyzerId("testCustomAnalyzer.dataFlow.CustomAnalyzerWithMode")); } public static class CustomAnalyzerWithModeAnalyzer extends DataFlowAnalyzerBase<Integer> { public CustomAnalyzerWithModeAnalyzer() { } public Integer initial(Program program) { return 0; } public Integer merge(Program program, List<Integer> input) { int maxCounter = 0; for (Integer counter : input) { if (counter > maxCounter) { maxCounter = counter; } } return maxCounter; } public Integer fun(Integer input, ProgramState state, @Nullable Map<ProgramState, Integer> stateValues) { return input + 1; } public AnalysisDirection getDirection() { return AnalysisDirection.FORWARD; } /** * * @deprecated */ @Deprecated public static String getId() { return "testCustomAnalyzer.dataFlow.CustomAnalyzerWithMode"; } } }