P
Size: a a a
P
NM
SN
Ɖ
EA
Ɖ
Ɖ
Ɖ
SB
/**
* Check whether an expr or opArg is level correct, and if so,
* calculates the level information for the expression. Returns
* true iff this is level correct.
*/
public boolean levelCheck(int iter) {
/***********************************************************************
* This is called for a node n to calculate the level information for *
* n and all its descendants. It should be overridden by each *
* subclass to perform the level checking appropriate for the class of *
* node. It is this method that computes the objects levelData field. *
* *
* The method returns true iff n and all of its descendants are level *
* correct. However, this value is apparently never used. Instead, *
* level errors should be reported using errors.addError. *
* *
* To handle recursive definitions, level checking must be performed *
* more than once. To handle this, successive calls are with larger *
* values of iter. *
* *
* Note: Except for those objects whose level values are initialized *
* when the object is constructed, levelCheck must be called on an *
* object before any of the methods getLevel(), getLevelParams(), *
* getLevelConstraints() getArgLevelConstraints(), or *
* getArgLevelParams() is called on it. This is not a concern for *
* tools that use the level information provided by SANY. However, it *
* is crucial that this requirement be obeyed during level checking. *
***********************************************************************/
throw new WrongInvocationException("Level checking of " + kinds[this.getKind()] +
" node not implemented.");
}
SB
VS
VS
Ɖ