anOpChar=theString[0];
anOpChar=theString.First();
  CToken* findPtrDecl(CCPPTokenizer& aTokenizer,int anIndex,PRUnichar& anOpChar,bool allocRequired) {    enum eState {eFindNew,eFindType,eFindPunct,eFindStar};    CToken* theToken=0;    CToken* theID=0;    eState  theState=eFindStar;        while(theToken=aTokenizer.getTokenAt(++anIndex)){      if(theToken) {        nsCString& theString=theToken->getStringValue();        int     theType=theToken->getTokenType();                anOpChar=theString[0];        switch(theType){          case eToken_semicolon:          case eToken_operator:            switch(theState) {              case eFindStar:                if('*'==anOpChar)                  theState=eFindType;                else return 0;                break;              case eFindPunct:                switch(anOpChar) {                  case '=':                    if(!allocRequired)                      return theID;                    else theState=eFindNew;                    break;                  case ';':                    return (allocRequired) ? 0 : theID;                    break;                  default:                    break;                }                break;              default:                return 0;            }            break;          case eToken_identifier:            switch(theState){              case eFindType:                theID=theToken;                theState=eFindPunct;                break;              case eFindNew:                if(theString.Equals("new") || theString.Equals("PR_Malloc"))                  return theID;                else return 0;                break;              default:                return 0;          }          break;          default:            break;        }      }//if    }//while    return 0;  }