![]() |
1
1
这与您链接的问题中提出的bison/flex解决方案没有太大不同。至少,原则是一样的。只是细节不同。 关键的事实是,需要计数行的是扫描仪,而不是解析器,因为扫描仪将输入文本转换为标记。解析器对原始文本一无所知;它只接收一系列处理良好的令牌。 因此,我们必须在文档中搜索JFlex,找出如何让它跟踪行号,然后在选项和声明部分找到以下内容:
JFlex手册没有提到这一点
然后,您可以向添加呼叫
这有时会产生令人困惑的错误消息,因为到那时
|
![]() |
lluisrojass · 为什么Yacc/野牛规则没有用? 7 年前 |
![]() |
neomang · 解决yacc冲突-由于冲突,解析器中的规则无效 8 年前 |
![]() |
Zhang Kai Yu · yacc:%{}在yacc中是什么意思? 10 年前 |
![]() |
gornvix · 分析多个文件时出现错误的lex状态 10 年前 |
![]() |
Shehzaad · 为什么它显示我的函数在返回char*时返回int? 11 年前 |
![]() |
Nikon the Third · 如何解析连续的文本流 11 年前 |
![]() |
TreeTree · lex和yacc的运行时“语法错误” 11 年前 |