2011-04-10 90 views
1

斐伊川,写作解析器规则

我有有许多规则和与它没有任何问题解析器其所有工作..我使用lex和yacc ...

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

所以基本上我想要做的就是我不想要如果输入不符合任何其他规则,解析器停止给出自己的错误消息,我想显示该错误消息,然后使解析器继续解析它退出的广告..

我硝酸钾我必须作出的yyerror()函数的变化,但究竟如何..或是否有任何其他我可以写这样的规则...

谢谢.. :)

回答

3

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

希望,这就是你的意思。

编辑:它接缝我误解了。要定义默认操作,您可以简单地将{ }操作放入解析器文件中。见​​。

+0

我想你链接到的是标记,而不是解析。 – Swiss 2011-04-10 05:27:26

+0

感谢那些链接,它是有帮助的..问题解决.. :) :) – pratik 2011-04-14 04:27:19