package udg.useDefAnalysis.environments;
import java.util.Collection;
import java.util.LinkedList;
import udg.ASTProvider;
import udg.useDefGraph.UseOrDef;
public class EmitDefAndUseEnvironment extends UseDefEnvironment
{
Collection<String> defSymbols = new LinkedList<String>();
Collection<String> useSymbols = new LinkedList<String>();
public void addChildSymbols(LinkedList<String> childSymbols,
ASTProvider child)
{
if (isDef(child))
defSymbols.addAll(childSymbols);
if (isUse(child))
useSymbols.addAll(childSymbols);
}
public Collection<UseOrDef> useOrDefsFromSymbols(ASTProvider child)
{
LinkedList<UseOrDef> retval = new LinkedList<UseOrDef>();
if (isDef(child))
retval.addAll(createDefsForAllSymbols(defSymbols));
if (isUse(child))
retval.addAll(createUsesForAllSymbols(useSymbols));
return retval;
}
public LinkedList<String> upstreamSymbols()
{
return emptySymbolList;
}
}