Я пишу парсер на чистом C с помощью flex & bison. Я пытаюсь понять, как разбирать строковые литералы, подобные C, заключенные в двойные кавычки. Может ли кто-нибудь предоставить мне простой фрагмент гибкого кода для этого?
Например, в грамматике ANTLR строковые литералы могут быть выражены только в этих двух строках
StringLiteral: UnterminatedStringLiteral '"';
UnterminatedStringLiteral: '"' (~["\\\r\n] | '\\' (. | EOF))*;
Кажется, что в гибкости добиться гораздо труднее.