При работе со строками (у них есть собственное состояние, такое как комментарии), мне нужно выяснить, является ли следующая буква " или нет. Если это так, я не заканчиваю состояние строки. Так что происходит, я просто не заканчиваю строку в моем состояние строки (я использую <STRING_STATE>.
и обрабатываю его буква за буквой). Итак, что происходит, я отмечаю, была ли последняя строка ", и если текущая нет, я выхожу из состояния и удаляю последнюю букву.
Это имеет странный эффект. Когда я получаю ошибки в строках со строками, я вижу букву (обычно ',' или ')') дважды. и если он находится в конце строки, побочный эффект считается за две строки! (даже если ошибки нет).
Как я могу это решить? мой единственный вариант создать глобальную переменную и пометить ее, когда я выйду из строкового состояния, и взломать YY_USer, чтобы исправить себя? я как бы хочу избежать этого. Чтобы быть чище, я мог бы просто посмотреть на следующую букву или токен, это возможно?