public class TypeSubstitutor
extends java.lang.Object
LabelSubsitution
to all labels
that occur in the AST. The LabelSubsitution
is not allowed
to throw any SemanticException
s.Constructor and Description |
---|
TypeSubstitutor(LabelSubstitution substitution) |
Modifier and Type | Method and Description |
---|---|
protected boolean |
recurseIntoArrayType(polyglot.types.ArrayType type) |
protected boolean |
recurseIntoLabeledType(LabeledType type) |
protected boolean |
recurseIntoSubstType(JifSubstType type) |
<P extends ActsForParam> |
rewriteActsForParam(P param) |
<Actor extends ActsForParam,Granter extends ActsForParam> |
rewriteAssertion(Assertion a) |
Label |
rewriteLabel(Label L) |
protected Principal |
rewritePrincipal(Principal p) |
polyglot.types.Type |
rewriteType(polyglot.types.Type t) |
public TypeSubstitutor(LabelSubstitution substitution)
substitution
- the LabelSubstitution to use.public polyglot.types.Type rewriteType(polyglot.types.Type t) throws polyglot.types.SemanticException
polyglot.types.SemanticException
protected boolean recurseIntoSubstType(JifSubstType type)
protected boolean recurseIntoArrayType(polyglot.types.ArrayType type)
protected boolean recurseIntoLabeledType(LabeledType type)
public <P extends ActsForParam> P rewriteActsForParam(P param) throws polyglot.types.SemanticException
polyglot.types.SemanticException
public Label rewriteLabel(Label L) throws polyglot.types.SemanticException
polyglot.types.SemanticException
protected Principal rewritePrincipal(Principal p) throws polyglot.types.SemanticException
polyglot.types.SemanticException
public <Actor extends ActsForParam,Granter extends ActsForParam> Assertion rewriteAssertion(Assertion a) throws polyglot.types.SemanticException
polyglot.types.SemanticException