我想创建一个 lex::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;
};
但这给了我一些关于无法识别的转义字符和用它对字符串进行词法分析失败的警告。我怎样才能正确地做到这一点?