2
我想創建一個法:: token_def <>包含像「[」或「]」或「&>」麻煩與升壓::精神::法 - 標點符號
我試圖逃脫字符序列必要的字符:
namespace lex = boost::spirit::lex;
enum LexerIDs { ID_IDENTIFIER, ID_WHITESPACE, ID_INTEGER, ID_FLOAT, ID_PUNCTUATOR };
template <typename Lexer>
struct my_lexer : lex::lexer<Lexer>
{
my_lexer() : punctuator("\[|\]|\(|\)|\.|&>|\*\*|\*|\+|-|~|!|/|%|<<|>>|<|>|<=|>=|==|!=")
{
this->self.add(punctuator, ID_PUNCTUATOR);
}
lex::token_def<> punctuator;
};
,但是這給了我關於無法識別的轉義字符&詞法與失敗的字符串一定的警示作用。我怎樣才能正確地做到這一點?
謝謝 - 就是這樣。唯一不幸的是正則表達式得到了一個額外的'混淆'層 –
@TobiasLangner如果你可以使用C++ 11,[原始字符串](http://www.stroustrup.com/C++11FAQ。 html#raw-strings)可以提供很多幫助。 – 2012-11-14 15:21:15
尚未,但感謝您的意見。我不知道。 –