question: private boolean scanExpr ( SymbolTable symbolTable , Tokens tokens , String data , int currentOffset , int endOffset ) throws XNIException { int ch ; int nameOffset ; String nameHandle = null ; while ( true ) { if ( currentOffset == endOffset ) { break ; } ch = data . charAt ( currentOffset ) ; byte chartype = ( ch >= 0x80 ) ? CHARTYPE_NONASCII : fASCIICharMap [ ch ] ; switch ( chartype ) { case CHARTYPE_SLASH : if ( ++ currentOffset == endOffset ) { return false ; } addToken ( tokens , Tokens . XPTRTOKEN_ELEM_CHILD ) ; ch = data . charAt ( currentOffset ) ; int child = 0 ; while ( ch >= '0' && ch <= '9' ) { child = ( child * 10 ) + ( ch - '0' ) ; if ( ++ currentOffset == endOffset ) { break ; } ch = data . charAt ( currentOffset ) ; } if ( child == 0 ) { reportError ( "InvalidChildSequenceCharacter" , new Object [ ] { new Character ( ( char ) ch ) } ) ; return false ; } tokens . addToken ( child ) ; break ; case CHARTYPE_DIGIT : case CHARTYPE_LETTER : case CHARTYPE_MINUS : case CHARTYPE_NONASCII : case CHARTYPE_OTHER : case CHARTYPE_PERIOD : case CHARTYPE_UNDERSCORE : nameOffset = currentOffset ; currentOffset = scanNCName ( data , endOffset , currentOffset ) ; if ( currentOffset == nameOffset ) { reportError ( "InvalidNCNameInElementSchemeData" , new Object [ ] { data } ) ; return false ; } if ( currentOffset < endOffset ) { ch = data . charAt ( currentOffset ) ; } else { ch = - 1 ; } nameHandle = symbolTable . addSymbol ( data . substring ( nameOffset , currentOffset ) ) ; addToken ( tokens , Tokens . XPTRTOKEN_ELEM_NCNAME ) ; tokens . addToken ( nameHandle ) ; break ; } } return true ; }
target:  Scans the XPointer Expression