void advance() {
    if (myEndOffset == myBuffer.length()) {
      // EOF
      myElementType = null;
      return;
    }
    myStartOffset = myEndOffset;
    if (myBuffer.charAt(myEndOffset) != ESCAPE) {
      // just a text
      advanceToEscape();
      return;
    }
    if (myEndOffset + 1 == myBuffer.length()) {
      incompleteSequence();
      return;
    }

    myEndOffset++;

    if (decodeEscapeSequence()) {
      return;
    }

    advanceToEscape();
  }
void advance()