add / fix some docs
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3803 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
This commit is contained in:
parent
cea1d68710
commit
9e95053a59
|
@ -28,8 +28,15 @@ import com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder;
|
||||||
import com.ibm.wala.types.TypeReference;
|
import com.ibm.wala.types.TypeReference;
|
||||||
import com.ibm.wala.util.collections.HashSetFactory;
|
import com.ibm.wala.util.collections.HashSetFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An {@link InstanceKeyFactory} that returns {@link ScopeMappingInstanceKey}s as necessary to handle interprocedural lexical
|
||||||
|
* scoping
|
||||||
|
*/
|
||||||
abstract public class ScopeMappingInstanceKeys implements InstanceKeyFactory {
|
abstract public class ScopeMappingInstanceKeys implements InstanceKeyFactory {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* return all {@link LexicalParent}s of methods that can be invoked on base. (Is this right? --MS)
|
||||||
|
*/
|
||||||
protected abstract LexicalParent[] getParents(InstanceKey base);
|
protected abstract LexicalParent[] getParents(InstanceKey base);
|
||||||
|
|
||||||
protected abstract boolean needsScopeMappingKey(InstanceKey base);
|
protected abstract boolean needsScopeMappingKey(InstanceKey base);
|
||||||
|
@ -41,11 +48,14 @@ abstract public class ScopeMappingInstanceKeys implements InstanceKeyFactory {
|
||||||
public class ScopeMappingInstanceKey implements InstanceKey {
|
public class ScopeMappingInstanceKey implements InstanceKey {
|
||||||
private final InstanceKey base;
|
private final InstanceKey base;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* the node in which this is allocated
|
||||||
|
*/
|
||||||
private final CGNode creator;
|
private final CGNode creator;
|
||||||
|
|
||||||
private final ScopeMap map;
|
private final ScopeMap map;
|
||||||
|
|
||||||
private class ScopeMap extends HashMap<String,CGNode> {
|
private class ScopeMap extends HashMap<String, CGNode> {
|
||||||
|
|
||||||
private static final long serialVersionUID = 3645910671551712906L;
|
private static final long serialVersionUID = 3645910671551712906L;
|
||||||
|
|
||||||
|
@ -72,7 +82,7 @@ abstract public class ScopeMappingInstanceKeys implements InstanceKeyFactory {
|
||||||
put(parents[i].getName(), node);
|
put(parents[i].getName(), node);
|
||||||
if (AstTranslator.DEBUG_LEXICAL)
|
if (AstTranslator.DEBUG_LEXICAL)
|
||||||
System.err.println((level + ": Adding lexical parent " + parents[i].getName() + " for " + base + " at " + creator
|
System.err.println((level + ": Adding lexical parent " + parents[i].getName() + " for " + base + " at " + creator
|
||||||
+ "(toDo is now " + toDo + ")"));
|
+ "(toDo is now " + toDo + ")"));
|
||||||
}
|
}
|
||||||
|
|
||||||
toDo--;
|
toDo--;
|
||||||
|
|
|
@ -17,7 +17,7 @@ import java.util.Map;
|
||||||
/**
|
/**
|
||||||
* The assumption is that abstract syntax trees pertain to particular
|
* The assumption is that abstract syntax trees pertain to particular
|
||||||
* programming language constructs, such as classes, methods, programs
|
* programming language constructs, such as classes, methods, programs
|
||||||
* and the like. Thus, the expectation is that users of CAPA AST will
|
* and the like. Thus, the expectation is that users of CAst will
|
||||||
* typically be communicating such entities, and this interface is
|
* typically be communicating such entities, and this interface is
|
||||||
* meant to give them a mechanism to do this.
|
* meant to give them a mechanism to do this.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue