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, 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, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, 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

public LabelNode label()

label

public DeclassifyExpr label(LabelNode label)

expr

public polyglot.ast.Expr expr()

expr

public DeclassifyExpr expr(polyglot.ast.Expr expr)

bound

public LabelNode bound()

bound

public DeclassifyExpr bound(LabelNode label)