Я пытаюсь понять компиляцию и интерпретацию, шаг за шагом выясняя общее изображение. Поэтому я поднялся на вопрос, читая http://www.cs.man.ac.uk/~pjj/farrell/comp3.html эту статью.
Это говорит:
Следующий этап компилятора называется Parser. Эта часть компилятора имеет понимание грамматики языка. Он отвечает за выявление синтаксических ошибок и за перевод безошибочной программы во внутренние структуры данных, которые могут быть интерпретированы или записаны на другом языке.
Но я не мог понять, как токенизатор может правильно токенизировать данный поток с синтаксической ошибкой.
Он должен застрять там или дать неверную информацию парсеру. Я имею в виду, что токенизация не своего рода переводчик?
Так как же просто преодолеть лексические искаженные строки кода при токенизации.
Пример токена внутри ссылки выше под заголовком The Tokenizer .
Как я понимаю, форма токена выглядит так: если в коде что-то не так, токен тоже будет поврежден.
Не могли бы вы прояснить мое недоразумение?