提升::精神::莱克斯;如何指定令牌"||"?
Boost::Spirit::Lex; How do I specify the token "||"?
所以我的问题很简单,在我的lexer类(扩展lex::lexer<T>
)中,我有以下内容;
this->self.add
...
("&&", AND_AND)
("||", OR_OR)
...
在我的构造函数内部,它编译得很好,但在运行时会触发SegFault。问题很明显,|
是正则表达式系统中的"or"运算符,我如何克服这个问题?
来源http://www.boost.org/doc/libs/1_54_0/libs/spirit/doc/html/spirit/lex/quick_reference/lexer.html
X
如果X是a,b,e,n,r,f,t,v,则对\X的ANSI-C解释。否则,文字X(用于转义运算符,如*)
所以你会使用
("\|\|", OR_OR)
C++字符串解析器将每对中的第一个反斜杠视为转义符,从而将第二个反斜杠放入字符串内容中。Spirit::Lex会看到字符串内容中的反斜杠,并执行转义regex运算符的操作。
相关文章:
- 如何在C++中使用X509证书模在令牌中查找私钥
- holeMenuProgram.cpp:38:1 错误:'}'令牌之前的预期主表达式
- C++:"("令牌"之前有预期的非限定 id 指向类中成员函数的指针
- Arduino 用于语句错误。令牌之前的预期')' ';'。如何解决这个问题?
- 错误:令牌 { '{' 之前应存在非限定 ID
- 允许哪些令牌作为 #include 的参数?
- "错误 C0000:语法错误,令牌"<EOF>"处出现意外$end,并且不确定
- 它在 { 令牌之前给了我预期的标识符
- (错误:令牌之前'<<'预期的主表达式)
- 为什么 ## aka 令牌粘贴运算符不适用于 C 和 C++ 中的注释?
- 错误:"->"令牌之前的预期初始值设定项
- LINUX 操作系统上的错误:令牌之前预期的构造函数、析构函数或类型转换'('?
- 丢失读入的每一行输入中的最后一个令牌
- 如何使用 libCurl 将访问令牌发送到服务器 API
- C++令牌定义成员
- 宏定义中的预处理器令牌两边有两个双引号
- 错误:C++中']'令牌之前的预期主表达式
- 使用 cin 指定令牌的结尾
- 无法在硬件模式下创建 SGX 安全区 - "invalid launch token"即使文档将无效的启动令牌指定为第一个
- 提升::精神::莱克斯;如何指定令牌"||"?