2016-02-04 71 views
0

是否可以通過flex和野牛來解析塊?解析使用flex和野牛的塊

例子:

假設

BEGIN BLOCK BLK_ROWDEC 
      NAME       cell_rowdec 
      SIZE       UNI_rowdecSize 
      ITERATE      itr_rows 
      DIRECTION      lgDir_rowdec 
      STRAP       STRD1,STRD3,STRD2 
      WRAP       WRD1 
      VIA       VIAB,VIAC,VIAD 
ENDS BLK_ROWDEC 

現在我要確認BEGIN和END是屬於同一個塊或不/是否有可能使用Flex和野牛

回答

1

是的,它是可能的? ,只需用BEGIN保存塊名稱,並在收到END時檢查它。

但是這裏的塊名是多餘的,而Bison會匹配自動開始和結束。如果你可以從你的語法中刪除它,我會這樣做。

+0

我沒有得到你。你能舉個例子嗎? –

+0

flex和野牛如何匹配自動開始和結束? –

+0

END與最近的尚未匹配的BEGIN匹配。就像IF和ELSE,或{和}。 – EJP