edu.mit.ai.psg.jevaES
Class JNName
java.lang.Object
|
+--edu.mit.ai.psg.jevaES.SimpleNode
|
+--edu.mit.ai.psg.jevaES.JevaNode
|
+--edu.mit.ai.psg.jevaES.ExpressionNode
|
+--edu.mit.ai.psg.jevaES.JNName
- public class JNName
- extends ExpressionNode
- implements IExpressionStoreNode, JevaESParserConstants
Jeva parse node for names (including parameters, fields, and class names);
A name x.y.z is parsed with nested names as (((x).y).z).
Note: does not always denote an expression (may be type or package).
- Author:
- CarlManning, caroma@ai.mit.edu
Copyright (c) 1997, 1998, 1999 Massachusetts Institute of Technology
AMBIGUOUS_NAME
public static final int AMBIGUOUS_NAME
AMBIGUOUS_EXPRESSION_NAME
public static final int AMBIGUOUS_EXPRESSION_NAME
VARIABLE_NAME
public static final int VARIABLE_NAME
FIELD_NAME
public static final int FIELD_NAME
ARRAY_FIELD_NAME
public static final int ARRAY_FIELD_NAME
TYPE_NAME
public static final int TYPE_NAME
PACKAGE_NAME
public static final int PACKAGE_NAME
SPECIAL_NAME_THIS
public static final int SPECIAL_NAME_THIS
SPECIAL_NAME_SUPER
public static final int SPECIAL_NAME_SUPER
SPECIAL_NAME_CLASS
public static final int SPECIAL_NAME_CLASS
setNameCategoryToAmbiguousExpression
public void setNameCategoryToAmbiguousExpression()
- context requires an expression; can only narrow category, not widen.
setNameCategoryToVariable
public void setNameCategoryToVariable()
setNameCategoryToField
public void setNameCategoryToField(Field f)
setNameCategoryToArrayField
public void setNameCategoryToArrayField()
setNameCategoryToType
public void setNameCategoryToType(Class c)
setNameCategoryToPackage
public void setNameCategoryToPackage(IPackage p)
setNameCategoryToThis
public void setNameCategoryToThis()
setNameCategoryToSuper
public void setNameCategoryToSuper()
setNameCategoryToClassLiteral
public void setNameCategoryToClassLiteral(Class c)
getNameCategory
public int getNameCategory(IEnv env)
throws VerifyingException
categorySetError
protected Error categorySetError(String newCategory)
getFullPackageOrClassName
public String getFullPackageOrClassName(IEnv env)
throws VerifyingException
getLastName
public String getLastName(IEnv env)
throws VerifyingException
getNamedClass
public Class getNamedClass(IEnv env)
throws VerifyingException
getNamedClass
protected Class getNamedClass()
getNamedField
protected Field getNamedField()
getNamedPackage
protected IPackage getNamedPackage()
computeType
public Class computeType(IEnv env)
throws VerifyingException
- Overrides:
- computeType in class ExpressionNode
computeIsConstant
public boolean computeIsConstant(IEnv env)
throws VerifyingException
- Overrides:
- computeIsConstant in class ExpressionNode
ErrorNotVariableOrField
protected Error ErrorNotVariableOrField()
isFinal
public boolean isFinal(IEnv env)
throws VerifyingException
- used to test whether assignable. A name can be final but not constant
if it is a final field f of a non-constant expression (expr).f
eval
public Object eval(IEnv env)
throws ThrowException
- Overrides:
- eval in class ExpressionNode
evalToStore
public IStore evalToStore(IEnv env)
throws ThrowException
- Specified by:
- evalToStore in interface IExpressionStoreNode
reclassifyName
protected void reclassifyName(IEnv env)
throws VerifyingException
computeField
protected Field computeField(IEnv env)
throws VerifyingException
computePackage
public IPackage computePackage(IEnv env)
throws VerifyingException
computeParentPackage
public IPackage computeParentPackage(IEnv env)
throws VerifyingException
getFullNameAndCurrentCategory
public String getFullNameAndCurrentCategory()
- for error reports
getNameCategoryName
public String getNameCategoryName()