2017-10-07 110 views
0

如何在flex中映射引號?如:如何在flex中映射引號?

""" {return ' " ';} 

我試過上面的方法,它似乎並沒有接受,作爲一項規則。

我也曾嘗試

"\"" {return ' " ';} 

這也沒有奏效。

+0

使用原始字符串前綴(可選)R「分隔符(raw_characters)分隔符」。 http://en.cppreference.com/w/cpp/language/string_literal –

+1

'「\」「'應該可以正常工作。你有[mcve]嗎? – rici

回答

1
"\"" {return ' " ';} 

是不合法Ç。你需要返回'"',沒有空格。這只是你匹配的單個字符。您也coud嘗試:

["] return '"'; 

,其實我更喜歡省略所有單個特殊字符的規則,只是有

. return yytext[0]; 

在語法的底部。這樣,你就沒有成千上萬的規則+,-等等,偶然的非法字符變成了解析錯誤,並且可以從錯誤中恢復。