jif.ast
Class JifUtil
java.lang.Object
jif.ast.JifUtil
public class JifUtil
- extends java.lang.Object
An implementation of the Jif
interface.
Method Summary |
static java.lang.String |
accessPathDescrip(AccessPath path,
java.lang.String kind)
|
static polyglot.ast.Expr |
effectiveExpr(polyglot.ast.Expr expr)
Returns the "effective expression" for expr. |
static AccessPath |
exprToAccessPath(polyglot.ast.Expr e,
JifContext context)
|
static AccessPath |
exprToAccessPath(polyglot.ast.Expr e,
polyglot.types.Type expectedType,
JifContext context)
|
static Label |
exprToLabel(JifTypeSystem ts,
polyglot.ast.Expr e,
JifContext context)
|
static Principal |
exprToPrincipal(JifTypeSystem ts,
polyglot.ast.Expr e,
JifContext context)
|
static PathMap |
getPathMap(polyglot.ast.Node n)
|
static boolean |
isFinalAccessExprOrConst(JifTypeSystem ts,
polyglot.ast.Expr e)
|
static boolean |
isFinalAccessExprOrConst(JifTypeSystem ts,
polyglot.ast.Expr e,
polyglot.types.Type expectedType)
|
static Jif |
jifExt(polyglot.ast.Node n)
|
static polyglot.ast.Node |
updatePathMap(polyglot.ast.Node n,
PathMap X)
|
static AccessPath |
varInstanceToAccessPath(polyglot.types.VarInstance vi,
polyglot.util.Position pos)
|
static AccessPath |
varInstanceToAccessPath(polyglot.types.VarInstance vi,
java.lang.String name,
polyglot.util.Position pos)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
JifUtil
public JifUtil()
getPathMap
public static PathMap getPathMap(polyglot.ast.Node n)
jifExt
public static Jif jifExt(polyglot.ast.Node n)
updatePathMap
public static polyglot.ast.Node updatePathMap(polyglot.ast.Node n,
PathMap X)
varInstanceToAccessPath
public static AccessPath varInstanceToAccessPath(polyglot.types.VarInstance vi,
polyglot.util.Position pos)
throws polyglot.types.SemanticException
- Throws:
polyglot.types.SemanticException
varInstanceToAccessPath
public static AccessPath varInstanceToAccessPath(polyglot.types.VarInstance vi,
java.lang.String name,
polyglot.util.Position pos)
throws polyglot.types.SemanticException
- Throws:
polyglot.types.SemanticException
exprToAccessPath
public static AccessPath exprToAccessPath(polyglot.ast.Expr e,
JifContext context)
throws polyglot.types.SemanticException
- Throws:
polyglot.types.SemanticException
exprToAccessPath
public static AccessPath exprToAccessPath(polyglot.ast.Expr e,
polyglot.types.Type expectedType,
JifContext context)
throws polyglot.types.SemanticException
- Throws:
polyglot.types.SemanticException
isFinalAccessExprOrConst
public static boolean isFinalAccessExprOrConst(JifTypeSystem ts,
polyglot.ast.Expr e)
isFinalAccessExprOrConst
public static boolean isFinalAccessExprOrConst(JifTypeSystem ts,
polyglot.ast.Expr e,
polyglot.types.Type expectedType)
exprToLabel
public static Label exprToLabel(JifTypeSystem ts,
polyglot.ast.Expr e,
JifContext context)
throws polyglot.types.SemanticException
- Throws:
polyglot.types.SemanticException
exprToPrincipal
public static Principal exprToPrincipal(JifTypeSystem ts,
polyglot.ast.Expr e,
JifContext context)
throws polyglot.types.SemanticException
- Throws:
polyglot.types.SemanticException
accessPathDescrip
public static java.lang.String accessPathDescrip(AccessPath path,
java.lang.String kind)
effectiveExpr
public static polyglot.ast.Expr effectiveExpr(polyglot.ast.Expr expr)
- Returns the "effective expression" for expr. That is, it strips
away casts and downgrade expressions.