synchronized void insureNodesParsed ( ) { if ( paramsNode != null ) // there is always a paramsNode return ; Object firstNode = jjtGetChild ( 0 ) ; firstThrowsClause = 1 ; if ( firstNode instanceof BSHReturnType ) { returnTypeNode = ( BSHReturnType ) firstNode ; paramsNode = ( BSHFormalParameters ) jjtGetChild ( 1 ) ; if ( jjtGetNumChildren ( ) > 2 + numThrows ) blockNode = ( BSHBlock ) jjtGetChild ( 2 + numThrows ) ; // skip throws ++ firstThrowsClause ; } else { paramsNode = ( BSHFormalParameters ) jjtGetChild ( 0 ) ; blockNode = ( BSHBlock ) jjtGetChild ( 1 + numThrows ) ; // skip throws } paramsNode . insureParsed ( ) ; isVarArgs = paramsNode . isVarArgs ; }
Set the returnTypeNode paramsNode and blockNode based on child node structure . No evaluation is done here .