Я прекрасно провожу время, используя лексер с помощью flex. Проблема в том, что мой редактор кода не окрашивает синтаксис файла, и кажется, что в моем правиле есть ошибка. Поскольку я не слишком уверен в том, как использовать одинарные и двойные кавычки внутри интервалов, я решил поделиться этим фрагментом с вами:
[^\\\'\n]+
{
wchar_t* string;
utf8_decode(yytext, &string);
yyextra->append(string);
free(string);
}
Flex сообщает, что в строке utf8_decode
есть «нераспознанное правило». Если я уберу правило целиком, все снова будет хорошо.
Может кто-нибудь сказать, что я здесь делаю не так?