Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
嗨,
我有一个解析器,它有很多规则,而且一切正常。我正在使用 lex 和 yacc ......
问题是我想要一个规则,如果输入字符串与解析器中定义的任何规则都不匹配,那么我想编写一个接受此类输入字符串的规则。
所以基本上我想要做的是,如果输入与任何其他规则不匹配,我不希望解析器停止自行给出错误消息,我想显示该错误消息,然后让解析器继续解析而不是退出..
我知道我必须在 yyerror() 函数中进行更改,但是究竟如何......或者还有其他我可以写这样的规则......
谢谢.. :)
您可以放置“。” (点)在其他解析规则的末尾。它匹配任何未被其他规则匹配的字符串。有关详细信息,请参阅此链接。
希望,这就是你的意思。
编辑:它接缝我误解了。要定义默认操作,您可以简单地将{ }操作放入解析器文件中。见这里。
{ }