code: public void setPositionInformation(int startLineno, int startCharno,
                                       int endLineno, int endCharno) {
      if (startLineno > endLineno) {
        throw new IllegalStateException(
            "Recorded bad position information\n"
            + "start-line: " + startLineno + "\n"
            + "end-line: " + endLineno);
      } else if (startLineno == endLineno && startCharno >= endCharno) {
        throw new IllegalStateException(
            "Recorded bad position information\n"
            + "line: " + startLineno + "\n"
            + "start-char: " + startCharno + "\n"
            + "end-char: " + endCharno);
      }
  
      this.startLineno = startLineno;
      this.startCharno = startCharno;
      this.endLineno = endLineno;
      this.endCharno = endCharno;
    }
docs: Sets the position information contained in this source position.