compiler-construction - 如何在 C++ 中报告语法分析器的错误?
问题描述
嗨,我目前正在用 C++ 制作语法分析器
使用 DFA 表,我已经实现了语法分析。
当我们有错误时我必须打印错误报告(错误行,以及什么是错误)
现在,我的程序只知道我们有错误。(当 dfa 表在此状态下为空时)
我不知道如何知道我的输入代码(例如)第 11 行中的语法错误类型:缺少 rparen)
帮我
解决方案
所以要做到这一点,你必须为你的词法分析器配备行(可能还有位置)信息。例如,(
作为令牌通常是:
<TOKEN_RPAREN>
但你必须做到这一点:
<TOKEN_RPAREN, 11>
11
看到令牌的行号在哪里。现在您有了行号,每当您遇到错误时,您就有了发生错误的行号。至于识别错误类型,在表格中,您可以输入错误消息,而不是为错误输入空白条目。
推荐阅读
- javascript - 显示谷歌图表树形图中的值
- python - Tkinter 标签被切断
- c# - NullReferenceException:从 2d 数组调用 gameObject 时,对象引用未设置为对象的实例
- asp.net-mvc-5 - 从视图中,我可以获得 SelectList 的值而不是它在 DropDownList 中的位置吗?
- angular - 使用 Form Array 和 *ngFor - Angular 2/5 向表中添加输入字段
- android - 将 JSON 数组列表值保存到变量
- parsing - “Lexeme”与“Token”术语
- vba - 运行时错误“462”
- python - Python - 使用 pandas 数据框中的 sqlalchemy 写入 SQL Server 数据库
- c# - WPF图像控制中的鼠标处理