private boolean mapPatternElemPos(int nesting,boolean isStart,boolean isAttrName){
  if (0 == nesting) {
    if (m_patternMapSize >= m_patternMap.length) {
      int patternMap[]=m_patternMap;
      int len=m_patternMap.length;
      m_patternMap=new int[m_patternMapSize + 100];
      System.arraycopy(patternMap,0,m_patternMap,0,len);
    }
    if (!isStart) {
      m_patternMap[m_patternMapSize - 1]-=TARGETEXTRA;
    }
    m_patternMap[m_patternMapSize]=(m_compiler.getTokenQueueSize() - (isAttrName ? 1 : 0)) + TARGETEXTRA;
    m_patternMapSize++;
    isStart=false;
  }
  return isStart;
}

private boolean mapPatternElemPos ( int nesting , boolean isStart , boolean isAttrName ) { if ( 0 == nesting ) { if ( m_patternMapSize >= m_patternMap . length ) { int patternMap [ ] = m_patternMap ; int len = m_patternMap . length ; m_patternMap = new int [ m_patternMapSize + 100 ] ; System . arraycopy ( patternMap , 0 , m_patternMap , 0 , len ) ; } if ( ! isStart ) { m_patternMap [ m_patternMapSize - 1 ] -= TARGETEXTRA ; } m_patternMap [ m_patternMapSize ] = ( m_compiler . getTokenQueueSize ( ) - ( isAttrName ? 1 : 0 ) ) + TARGETEXTRA ; m_patternMapSize ++ ; isStart = false ; } return isStart ; }
record the current position on the token queue as long as this is a top - level element . must be called before the next token is added to the m_tokenqueue .
