Flex-未识别的新线路
Flex - new line unrecognized
我正在用Pascal子集进行一个项目。我的代码看起来像:
NLINE [n]
BRACKET ['('|')']
%%
{BRACKET} {
std::cout << "Found BRACKET symbol " << yytext[0] << std::endl;
return yytext[0];
}
{NLINE} {
std::cout << "Found NEWLINE symbol " << yytext[0] << std::endl;
yylineno++;
}
...
. { // anything is exactly before EOF
std::cout << "Found ANYTHING " << yytext[0] << std::endl;
yylval = NONE;
return yytext[0];
}
我尝试了多种方法来处理这一点,也只是 n而不是[ n]或[ n],但没有预期的结果。以下是输出:
...
Found BRACKET symbol )
Found ANYTHING ;
Found ANYTHING << where in code should be n
我知道这是 n问题,因为当我推动代码时,它像魅力一样起作用!
将感谢每个建设性的答案。
问题似乎是马车返回符号。如果您会遇到类似的问题,如果这无济于事,则应检查其他不可打印的字符。
在我的情况下有帮助:
DELIM [ tr]
在我的解决方案中被"吃掉",因此不应用任何规则。
相关文章:
- 使用新行和不使用新行读取文件
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 提升 ASIO 无法识别计时器对象
- 从udp接收帧对于人脸识别来说太慢
- 模板类无法识别友元运算符
- 遇到新行时,有没有办法停止istream_iterator
- Constexpr替代了新的放置方式,可以让内存中的对象保持未初始化状态
- std::visit无法识别类型
- 当一个新对象被分配到它的地址时,对象是否必须被销毁
- 模板元编程:如何将参数包组合成新的参数包
- 静态堆栈函数不会 1) 输入第一个元素 2)添加新元素时识别旧元素
- 仍然没有新线路
- 试图打印数组,但在打印之前正在输入一条新线路
- Flex-未识别的新线路
- 如何识别导致Qt警告消息的线路?
- 24HR到12HR转换程序,输出中未识别新值
- 线路运营商新出现分段故障
- QT Creator不识别新项目的STL类型
- 添加新运算符或类型时 #define 不是可识别的运算符或类型