jif.ast
Interface DeclassifyExpr

All Superinterfaces:
java.lang.Cloneable, polyglot.util.Copy, polyglot.ast.Expr, polyglot.ast.JL, polyglot.ast.Node, polyglot.ast.NodeOps, polyglot.ast.Prefix, polyglot.ast.Receiver, polyglot.ast.Term, polyglot.ast.Typed
All Known Implementing Classes:
DeclassifyExpr_c

public interface DeclassifyExpr
extends polyglot.ast.Expr

An immutable representation of the Jif declassify expression.

Grammer: declassify(expression, label_1, label_2)

If the label of the expression is less restrictive than label_2, then declassify its label to label_1.


Method Summary
 LabelNode bound()
           
 DeclassifyExpr bound(LabelNode label)
           
 polyglot.ast.Expr expr()
           
 DeclassifyExpr expr(polyglot.ast.Expr expr)
           
 LabelNode label()
           
 DeclassifyExpr label(LabelNode label)
           
 
Methods inherited from interface polyglot.ast.Expr
constantValue, constantValueSet, isConstant, precedence, printSubExpr, printSubExpr, type
 
Methods inherited from interface polyglot.ast.Node
childExpectedType, del, del, dump, error, error, ext, ext, ext, ext, isDisambiguated, isTypeChecked, position, position, visit, visitChild, visitEdge, visitList
 
Methods inherited from interface polyglot.ast.JL
init, node
 
Methods inherited from interface polyglot.ast.NodeOps
addDecls, buildTypes, buildTypesEnter, checkConstants, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, prettyPrint, prettyPrint, prettyPrint, throwTypes, translate, typeCheck, typeCheckEnter, typeCheckOverride, visitChildren
 
Methods inherited from interface polyglot.util.Copy
copy
 
Methods inherited from interface polyglot.ast.Typed
type
 
Methods inherited from interface polyglot.ast.Term
acceptCFG, entry, exceptions, exceptions, reachable, reachable
 

Method Detail

label

LabelNode label()

label

DeclassifyExpr label(LabelNode label)

expr

polyglot.ast.Expr expr()

expr

DeclassifyExpr expr(polyglot.ast.Expr expr)

bound

LabelNode bound()

bound

DeclassifyExpr bound(LabelNode label)