为解析器编写规则

时间:2011-04-10 04:21:27

标签: c parsing grammar yacc rule

斐伊川,

我有一个解析器,它有很多规则,没有任何问题它的全部工作..我正在使用lex和yacc ......

问题是我想要一个规则,如果输入字符串与解析器中定义的任何规则不匹配,那么我想编写一个接受这样的输入字符串的规则..

所以基本上我想做的是我不希望解析器停止在自身上给出错误消息如果输入与任何其他规则不匹配,我想显示该错误消息然后让解析器继续解析而不是退出..

我知道我必须在yyerror()函数中进行更改,但究竟是什么......或者还有其他任何我可以编写这样的规则......

谢谢.. :)

1 个答案:

答案 0 :(得分:3)

你可以放置“。” (点)在其他解析规则的末尾。它匹配任何未与其他规则匹配的字符串。有关详细信息,请参阅此link

希望,这就是你的意思。

编辑:这是我误解的接缝。要定义默认操作,您只需将{ }操作放在解析器文件中即可。请参阅here