@Override
  public boolean incrementToken() throws IOException {
	if(isIncremental = input.incrementToken()) {
	  String sentence = new String(termAttr.buffer(), 0, termAttr.length());
	  int startOffset = offsetAttr.startOffset();
	  List<SegToken> list = wordSegmenter.segmentSentence(sentence, 1);
	  for(SegToken token : list) {
		  token.startOffset += startOffset;
		  token.endOffset += startOffset;
	  }
	  tokens.addAll(list);
	}
	if (!isIncremental && tokens.size() == 0) return false;
	if(tokens.size() > 0) {
		SegToken token = tokens.poll();
		termAttr.setEmpty().copyBuffer(token.charArray, 0, token.charArray.length);
		offsetAttr.setOffset(token.startOffset, token.endOffset);
	}
	return true;
  }