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