package org.overture.codegen.analysis.vdm; import java.util.HashSet; import java.util.Set; import org.overture.ast.analysis.AnalysisException; import org.overture.ast.analysis.DepthFirstAnalysisAdaptor; import org.overture.ast.expressions.AVariableExp; import org.overture.ast.intf.lex.ILexLocation; public class VarOccurencesCollector extends DepthFirstAnalysisAdaptor { private ILexLocation defLoc; private Set<AVariableExp> varOccurences; public VarOccurencesCollector(ILexLocation defLoc) { this.defLoc = defLoc; this.varOccurences = new HashSet<AVariableExp>(); } public Set<AVariableExp> getVars() { return varOccurences; } @Override public void caseAVariableExp(AVariableExp node) throws AnalysisException { if (node.getVardef() == null) { return; } if (node.getVardef().getLocation().equals(defLoc)) { varOccurences.add(node); } } }