public class JifInstantiator
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected java.util.List<polyglot.ast.Expr> |
actualArgExprs |
protected java.util.List<? extends Label> |
actualArgLabels |
protected java.util.List<? extends Label> |
actualParamLabels |
protected JifContext |
callerContext |
protected java.util.List<ArgLabel> |
formalArgLabels |
protected java.util.List<? extends polyglot.types.Type> |
formalArgTypes |
protected java.util.List<AccessPathRoot> |
formalTempAccessPathRoots |
protected java.util.List<Label> |
formalTempLabels |
protected Label |
receiverLbl |
protected AccessPath |
receiverPath |
protected polyglot.types.ReferenceType |
receiverType |
protected Label |
tempThisLbl |
protected AccessPathRoot |
tempThisRoot |
protected JifTypeSystem |
ts |
Modifier | Constructor and Description |
---|---|
protected |
JifInstantiator(polyglot.types.ReferenceType receiverType,
Label receiverLbl,
AccessPath receiverPath,
java.util.List<ArgLabel> formalArgLabels,
java.util.List<? extends polyglot.types.Type> formalArgTypes,
java.util.List<? extends Label> actualArgLabels,
java.util.List<polyglot.ast.Expr> actualArgExprs,
java.util.List<? extends Label> actualParamLabels,
JifContext callerContext) |
Modifier and Type | Method and Description |
---|---|
Label |
instantiate(Label L) |
static Label |
instantiate(Label L,
JifContext callerContext,
AccessPath receiverPath,
polyglot.types.ReferenceType receiverType,
Label receiverLbl) |
static Label |
instantiate(Label L,
JifContext callerContext,
polyglot.ast.Expr receiverExpr,
polyglot.types.ReferenceType receiverType,
Label receiverLbl)
Instantiate a label into a new context where some of the names it
mentions may have a different meaning.
|
static Label |
instantiate(Label L,
JifContext callerContext,
polyglot.ast.Expr receiverExpr,
polyglot.types.ReferenceType receiverType,
Label receiverLabel,
java.util.List<ArgLabel> formalArgLabels,
java.util.List<? extends polyglot.types.Type> formalArgTypes,
java.util.List<Label> actualArgLabels,
java.util.List<polyglot.ast.Expr> actualArgExprs,
java.util.List<Label> actualParamLabels) |
Principal |
instantiate(Principal p) |
static Principal |
instantiate(Principal p,
JifContext callerContext,
polyglot.ast.Expr receiverExpr,
polyglot.types.ReferenceType receiverType,
Label receiverLabel,
java.util.List<ArgLabel> formalArgLabels,
java.util.List<? extends polyglot.types.Type> formalArgTypes,
java.util.List<polyglot.ast.Expr> actualArgExprs,
java.util.List<Label> actualParamLabels) |
polyglot.types.Type |
instantiate(polyglot.types.Type t) |
static polyglot.types.Type |
instantiate(polyglot.types.Type t,
JifContext callerContext,
AccessPath receiverPath,
polyglot.types.ReferenceType receiverType,
Label receiverLbl) |
static polyglot.types.Type |
instantiate(polyglot.types.Type t,
JifContext callerContext,
polyglot.ast.Expr receiverExpr,
polyglot.types.ReferenceType receiverType,
Label receiverLbl) |
static polyglot.types.Type |
instantiate(polyglot.types.Type t,
JifContext callerContext,
polyglot.ast.Expr receiverExpr,
polyglot.types.ReferenceType receiverType,
Label receiverLabel,
java.util.List<ArgLabel> formalArgLabels,
java.util.List<? extends polyglot.types.Type> formalArgTypes,
java.util.List<? extends Label> actualArgLabels,
java.util.List<polyglot.ast.Expr> actualArgExprs,
java.util.List<? extends Label> actualParamLabels) |
protected java.lang.Object |
instantiateImpl(java.lang.Object L,
polyglot.util.Position pos) |
protected java.lang.Object |
substImpl(java.lang.Object o,
LabelSubstitution lblsubst) |
protected final JifTypeSystem ts
protected final polyglot.types.ReferenceType receiverType
protected final Label receiverLbl
protected final AccessPath receiverPath
protected final java.util.List<ArgLabel> formalArgLabels
protected final java.util.List<? extends polyglot.types.Type> formalArgTypes
protected final java.util.List<? extends Label> actualArgLabels
protected final java.util.List<polyglot.ast.Expr> actualArgExprs
protected final java.util.List<? extends Label> actualParamLabels
protected final JifContext callerContext
protected final java.util.List<Label> formalTempLabels
protected final java.util.List<AccessPathRoot> formalTempAccessPathRoots
protected final AccessPathRoot tempThisRoot
protected final Label tempThisLbl
protected JifInstantiator(polyglot.types.ReferenceType receiverType, Label receiverLbl, AccessPath receiverPath, java.util.List<ArgLabel> formalArgLabels, java.util.List<? extends polyglot.types.Type> formalArgTypes, java.util.List<? extends Label> actualArgLabels, java.util.List<polyglot.ast.Expr> actualArgExprs, java.util.List<? extends Label> actualParamLabels, JifContext callerContext)
protected java.lang.Object instantiateImpl(java.lang.Object L, polyglot.util.Position pos)
protected java.lang.Object substImpl(java.lang.Object o, LabelSubstitution lblsubst) throws polyglot.types.SemanticException
polyglot.types.SemanticException
public polyglot.types.Type instantiate(polyglot.types.Type t)
public static Label instantiate(Label L, JifContext callerContext, polyglot.ast.Expr receiverExpr, polyglot.types.ReferenceType receiverType, Label receiverLabel, java.util.List<ArgLabel> formalArgLabels, java.util.List<? extends polyglot.types.Type> formalArgTypes, java.util.List<Label> actualArgLabels, java.util.List<polyglot.ast.Expr> actualArgExprs, java.util.List<Label> actualParamLabels) throws polyglot.types.SemanticException
polyglot.types.SemanticException
public static Label instantiate(Label L, JifContext callerContext, polyglot.ast.Expr receiverExpr, polyglot.types.ReferenceType receiverType, Label receiverLbl) throws polyglot.types.SemanticException
class C [label A] { final label x; f {this; x} () { } } class D[principal A] { void g() { o.f(); } }The begin label of f is defined in a context containing:
L
- the label to be instantiated ({this;x} in the example)callerContext
- the context in which result label will be used (g in the example)receiverExpr
- the expression to be used for interpreting dynamic labels (o in the example)receiverType
- the type in which L is defined (C in this example)receiverLbl
- the label to be substituted for {this} ({o} in the example)polyglot.types.SemanticException
- TODOpublic static Label instantiate(Label L, JifContext callerContext, AccessPath receiverPath, polyglot.types.ReferenceType receiverType, Label receiverLbl)
public static polyglot.types.Type instantiate(polyglot.types.Type t, JifContext callerContext, AccessPath receiverPath, polyglot.types.ReferenceType receiverType, Label receiverLbl)
public static Principal instantiate(Principal p, JifContext callerContext, polyglot.ast.Expr receiverExpr, polyglot.types.ReferenceType receiverType, Label receiverLabel, java.util.List<ArgLabel> formalArgLabels, java.util.List<? extends polyglot.types.Type> formalArgTypes, java.util.List<polyglot.ast.Expr> actualArgExprs, java.util.List<Label> actualParamLabels) throws polyglot.types.SemanticException
polyglot.types.SemanticException
public static polyglot.types.Type instantiate(polyglot.types.Type t, JifContext callerContext, polyglot.ast.Expr receiverExpr, polyglot.types.ReferenceType receiverType, Label receiverLabel, java.util.List<ArgLabel> formalArgLabels, java.util.List<? extends polyglot.types.Type> formalArgTypes, java.util.List<? extends Label> actualArgLabels, java.util.List<polyglot.ast.Expr> actualArgExprs, java.util.List<? extends Label> actualParamLabels) throws polyglot.types.SemanticException
polyglot.types.SemanticException
public static polyglot.types.Type instantiate(polyglot.types.Type t, JifContext callerContext, polyglot.ast.Expr receiverExpr, polyglot.types.ReferenceType receiverType, Label receiverLbl) throws polyglot.types.SemanticException
polyglot.types.SemanticException