3
我将把这个问题的一些背景:与转义字符的Flex /莱克斯编码字符串
Regular expression for a string literal in flex/lex
我有被处理的输入,在我的词法分析器和我转义字符的问题认为这可能是一个与字符串编码有关的问题,但我不确定。
这里的是我如何在我的词法分析器处理字符串字面量:
\"(\\.|[^\\"])*\"
{
char* text1 = strndup(yytext + 1, strlen(yytext) - 2);
char* text2 = "text\n";
printf("value = <%s> <%x>\n", text1, text1);
printf("value = <%s> <%x>\n", text2, text2);
}
此输出以下:
value = <text\n"> <15a1bb0>
value = <text
> <7ac871>
这似乎是分开处理的换行符作为一个反斜杠后跟ñ。
这里发生了什么,我如何处理文本以与C输入相同?
也许还加上'<> {error(“unterminated string \ n”)}'以备将来参考? –
Downgoat
2017-01-22 23:13:41