edu.mit.ai.psg.jeva
Class JNName
java.lang.Object
|
+--edu.mit.ai.psg.jeva.SimpleNode
|
+--edu.mit.ai.psg.jeva.JevaNode
|
+--edu.mit.ai.psg.jeva.ExpressionNode
|
+--edu.mit.ai.psg.jeva.JNName
- public class JNName
- extends ExpressionNode
- implements IExpressionStoreNode, JevaParserConstants
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
| Methods inherited from class edu.mit.ai.psg.jeva.JevaNode |
checkInsertionPoint,
find2ndTokenBeforeEndBody,
findChildIndex,
findPrecedingToken,
findTokenBeforeChild,
findTokenBeforeChild,
findTokenBeforeEnd,
getBeginToken,
getEndToken,
insertChildTokens,
insertNewChildAfter,
insertNewChildAt,
insertNewChildBefore,
jnGetChild,
jnGetParent,
print,
print,
printToken,
printToString,
printToString,
removeChild,
removeChildTokens,
replaceChild,
replaceChild,
setBeginToken,
setEndToken,
updateEndTokens,
updateEndTokensPriorChild,
updateEndTokensPriorNode,
updateEndTokensPriorNode |
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
jjtAccept
public Object jjtAccept(IJevaVisitor visitor,
Object data)
- Overrides:
- jjtAccept in class JevaNode
setNameCategoryToAmbiguousExpression
public void setNameCategoryToAmbiguousExpression()
- context requires an expression; can only narrow category, not widen.
setNameCategoryToVariable
public void setNameCategoryToVariable()
setNameCategoryToField
public void setNameCategoryToField(IField f)
setNameCategoryToArrayField
public void setNameCategoryToArrayField()
setNameCategoryToType
public void setNameCategoryToType(IClass c)
setNameCategoryToPackage
public void setNameCategoryToPackage(IPackage p)
setNameCategoryToThis
public void setNameCategoryToThis()
setNameCategoryToSuper
public void setNameCategoryToSuper()
setNameCategoryToClassLiteral
public void setNameCategoryToClassLiteral(IClass c)
getNameCategory
public int getNameCategory(IEnv env)
throws VerifyingException
getNameCategory
public int getNameCategory()
categorySetError
protected Error categorySetError(String newCategory)
getFullPackageOrClassName
public String getFullPackageOrClassName(IEnv env)
throws VerifyingException
getLastName
public String getLastName(IEnv env)
throws VerifyingException
getNamedClass
public IClass getNamedClass(IEnv env)
throws VerifyingException
getNamedClass
protected IClass getNamedClass()
getNamedField
protected IField getNamedField()
getNamedPackage
protected IPackage getNamedPackage()
computeType
public IClass 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 of a non-constant variable.
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
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()