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