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
尚未,但感谢您的意见。我不知道。 –