if (currentWord == null)
if (!hasNext())
  public Word next() {//{{{    if (currentWord == null)      throw new WordNotFoundException("No more words found.");    currentWord.copy(nextWord);    setSentenceIterator(currentWord);    int i = currentWord.getEnd();    boolean finished = false;    boolean started = false;    search:      while (i < text.length() && !finished) {//{{{ Find words.        if (!started && isWordChar(i)) {          nextWord.setStart(i++);          started = true;          continue search;        } else if (started) {          if (isWordChar(i)) {            i++;            continue search;          } else {            nextWord.setText(text.substring(nextWord.getStart(), i));            finished = true;            break search;          }        }  //}}}// Ignore Comments:        i = ignore(i, '%', '\n');// Ignore Maths:        i = ignore(i, "$$", "$$");        i = ignore(i, '$', '$');// Ignore environment names.        i = ignore(i, "\\begin{", "}");        i = ignore(i, "\\end{", "}");// Ignore commands.        i = ignore(i, '\\');        i++;      }    if (!started) {      nextWord = null;    } else if (!finished) {      nextWord.setText(text.substring(nextWord.getStart(), i));    }    return currentWord;  }