public abstract class SLResolverManager
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
SLTranslationExceptionManager |
excManager |
private java.util.Map<ParsableVariable,KeYJavaType> |
kjts |
private ImmutableList<Namespace<?>> |
localVariablesNamespaces |
private ImmutableList<SLExpressionResolver> |
resolvers |
private ParsableVariable |
selfVar |
private KeYJavaType |
specInClass |
private TermBuilder |
tb |
private boolean |
useLocalVarsAsImplicitReceivers |
Modifier | Constructor and Description |
---|---|
protected |
SLResolverManager(SLTranslationExceptionManager excManager,
KeYJavaType specInClass,
ParsableVariable selfVar,
boolean useLocalVarsAsImplicitReceivers,
TermBuilder tb) |
Modifier and Type | Method and Description |
---|---|
protected void |
addResolver(SLExpressionResolver resolver) |
private java.lang.String |
getShortName(java.lang.String name) |
VisibilityModifier |
getSpecVisibility(MemberDeclaration md)
Returns a specification-language based visibility level for the
passed member that should take precedence over Java's ordinary
visibility, or null.
|
private boolean |
isFullyQualified(java.lang.String name) |
void |
popLocalVariablesNamespace()
Throws away the topmost namespace on the stack.
|
void |
pushLocalVariablesNamespace()
Pushes a new, empty namespace onto the stack.
|
void |
putIntoTopLocalVariablesNamespace(ImmutableList<LogicVariable> pvs,
KeYJavaType kjt)
Puts a list of local variables into the topmost namespace on the stack.
|
void |
putIntoTopLocalVariablesNamespace(ImmutableList<ProgramVariable> pvs)
Puts a list of local variables into the topmost namespace on the stack.
|
void |
putIntoTopLocalVariablesNamespace(ParsableVariable pv,
KeYJavaType kjt)
Puts a local variable into the topmost namespace on the stack
|
void |
putIntoTopLocalVariablesNamespace(ProgramVariable pv)
Puts a local variable into the topmost namespace on the stack
|
SLExpression |
resolve(SLExpression receiver,
java.lang.String name,
SLParameters parameters)
Resolves arbitrary property calls.
|
private SLExpression |
resolveExplicit(SLExpression receiver,
java.lang.String name,
SLParameters params)
Tries to resolve a name as a property call on an explicitly given
receiver, by calling the registered resolvers.
|
private SLExpression |
resolveImplicit(java.lang.String name,
SLParameters parameters)
Tries to resolve a name as a property call on any available implicit
receiver.
|
private SLExpression |
resolveIt(SLExpression receiver,
java.lang.String name,
SLParameters parameters)
Helper for resolve().
|
private SLExpression |
resolveLocal(java.lang.String name)
Tries to resolve a name as a local variable.
|
public final SLTranslationExceptionManager excManager
private ImmutableList<SLExpressionResolver> resolvers
private final KeYJavaType specInClass
private final ParsableVariable selfVar
private final boolean useLocalVarsAsImplicitReceivers
private final TermBuilder tb
private ImmutableList<Namespace<?>> localVariablesNamespaces
private java.util.Map<ParsableVariable,KeYJavaType> kjts
protected SLResolverManager(SLTranslationExceptionManager excManager, KeYJavaType specInClass, ParsableVariable selfVar, boolean useLocalVarsAsImplicitReceivers, TermBuilder tb)
protected void addResolver(SLExpressionResolver resolver)
private java.lang.String getShortName(java.lang.String name)
private boolean isFullyQualified(java.lang.String name)
private SLExpression resolveLocal(java.lang.String name)
private SLExpression resolveImplicit(java.lang.String name, SLParameters parameters) throws SLTranslationException
SLTranslationException
private SLExpression resolveExplicit(SLExpression receiver, java.lang.String name, SLParameters params) throws SLTranslationException
SLTranslationException
private SLExpression resolveIt(SLExpression receiver, java.lang.String name, SLParameters parameters) throws SLTranslationException
SLTranslationException
public SLExpression resolve(SLExpression receiver, java.lang.String name, SLParameters parameters) throws SLTranslationException
receiver
- the specified explicit receiver, or nullname
- name of the propertyparameters
- actual parameters of the property call, or nullSLTranslationException
public void pushLocalVariablesNamespace()
public void putIntoTopLocalVariablesNamespace(ParsableVariable pv, KeYJavaType kjt)
public void putIntoTopLocalVariablesNamespace(ProgramVariable pv)
public void putIntoTopLocalVariablesNamespace(ImmutableList<LogicVariable> pvs, KeYJavaType kjt)
public void putIntoTopLocalVariablesNamespace(ImmutableList<ProgramVariable> pvs)
public void popLocalVariablesNamespace()
public VisibilityModifier getSpecVisibility(MemberDeclaration md)