fork download
  1. > пока не найду закрывающий таг, а если не найду надо вернуть этот токен ([tag) как простой текст, и парсить дальше с этого места, но ведь позиция уже будет в самом конце.
  2.  
  3. Восстановление при ошибках — сложный момент, из-за которого приходится отходить от стройной и красивой схемы. Можно сначала сделать без него.
  4.  
  5. В твоем случае, можно в функции парсинга сохранять начальную позицию:
  6.  
  7. парситьПарныйТег() {
  8. запомнить текущую позицию();
  9.  
  10. .....
  11.  
  12. если (что-то не так) {
  13. получитьТокеныОтНачальнойДоТекущейПозиции();
  14. создать и вернуть текствоый узел;
  15. }
  16.  
  17. ....
  18. }
  19.  
  20. Но ты можешь для начала без этого сделать.
  21.  
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
>  пока не найду закрывающий таг, а если не найду надо вернуть этот токен ([tag) как простой текст, и парсить дальше с этого места, но ведь позиция уже будет в самом конце.

Восстановление при ошибках — сложный момент, из-за которого приходится отходить от стройной и красивой схемы. Можно сначала сделать без него.

В твоем случае, можно в функции парсинга сохранять начальную позицию: 

парситьПарныйТег() {
запомнить текущую позицию();

.....

если (что-то не так) {
получитьТокеныОтНачальнойДоТекущейПозиции();
создать и вернуть текствоый узел;
}

....
}

Но ты можешь для начала без этого сделать.