我在Ubuntu上使用Bison创建了一个解析器。
解析器正在成功检查语法, 但我无法在不正确的位置或未声明的变量中打印令牌,因为我的lex文件只是根据我制作的正则表达式传递令牌。
例如:
我为标识符制作了正则表达式,包括关键字列表。 当扫描程序找到匹配的令牌时,扫描程序将令牌返回给解析器。在yacc文件中,可以给它一个令牌,该扫描器传递给解析器。
在扫描程序中,没有正确的符号表示错误符号(例如,在ints val=1;
中ints
的使用不正确;扫描程序刚刚传递了该字符串。)
因此无法将错误的符号传递给解析器。
我让Parser检查输入源代码是否正确, 但它不能打印不正确的符号(或未声明的变量)。
我可以使用任何功能或参数吗?