2011-04-10 89 views
1

斐伊川,寫作解析器規則

我有有許多規則和與它沒有任何問題解析器其所有工作..我使用lex和yacc ...

問題是我想一個規則,如果輸入的字符串不符合解析器中定義的任何規則,那麼我想寫一個規則,它將接受這樣的輸入字符串..

所以基本上我想要做的就是我不想要如果輸入不符合任何其他規則,解析器停止給出自己的錯誤消息,我想顯示該錯誤消息,然後使解析器繼續解析它退出的廣告..

我硝酸鉀我必須作出的yyerror()函數的變化,但究竟如何..或是否有任何其他我可以寫這樣的規則...

謝謝.. :)

回答

3

您可以將「。」 (點)在其他解析規則的末尾。它匹配任何未被其他規則匹配的字符串。有關詳細信息,請參閱此link

希望,這就是你的意思。

編輯:它接縫我誤解了。要定義默認操作,您可以簡單地將{ }操作放入解析器文件中。見​​。

+0

我想你鏈接到的是標記,而不是解析。 – Swiss 2011-04-10 05:27:26

+0

感謝那些鏈接,它是有幫助的..問題解決.. :) :) – pratik 2011-04-14 04:27:19