弹性(Lex)输出不正确
Flex(Lex) output not right
所以我必须制作一个匹配数字、浮点数、符号和注释的 flex 程序。正则表达式位于文件中。
flex.l 文件 http://pastebin.com/iuJ8WW6m
奇怪的部分是输出。
假设我给它:
0 0.0 323 323.4 1.3.4
variable another_variable
"string"
;comment
69
这是输出:
Number: -->0<--
Float: -->0.0<--
Number: -->323<--
Float: -->323.4<--
Float: -->1.3<--
Number: -->4<--
Symbol: -->variable<--
<--bol: -->another_variable
String: -->"string"<--
<--ment: -->;comment
Number: -->69<--
为什么"another_variable"处的输出是这样的<--bol: -->another_variable ?我知道一些c/c ++,对我来说这是0有意义的。
<也是如此:>;评论
显然,它采用最后 3 个字符 (<--) 并将它们放在前 3(Com) 的顶部,但为什么呢?
如果我只给它
;comment
输出是"注释:-->;注释<--",一旦我在它后面插入一个新行,它就会再次搞砸。我也尝试了相同的printf和使用ECHO,但结果是一样的。
救命,谢谢!
我怀疑识别的注释或符号后面的换行符序列的一部分正在被捕获到 yytext 中,因此在您的调试跟踪中回显。
尝试将 \r 添加到字符类中,如下所示:
SYMBOLS [a-zA-Z][^,."() ntr]*
COMMENTS ";"[^nr]*
在任何情况下,您可能希望将调试输出通过管道传输到文件中,以便可以使用 od 等工具按字符检查它。
相关文章:
- Windows 10命令提示符的输出不正确
- C++ - 为什么 unicode 输出不正确?
- 我的叉子输出不正确
- C++使用 CEIL 和长度输出不正确的值
- 使用 iconv 进行 UTF8 转换的输出不正确
- C strftime()输出不正确
- 当行数和列不匹配时,输出不正确
- C++ 嵌套循环输出不正确
- 矩阵和矢量乘法,输出不正确的产品
- 我对这个问题有问题,我的输出不正确
- 上一个较大的数字代码中的输出不正确
- 二进制搜索树的输出不正确
- 拆解输出不正确(BeaEngine)
- 最大输出不正确
- 基本合并排序中的输出不正确
- 更改声明顺序时输出不正确
- Base64 转换器的输出不正确
- 使用 find_first_of() 和 substr() 分隔字符串,但我得到的输出不正确
- 对字符串进行索引时输出不正确
- .wav C++数据输出不正确