2016-02-04 124 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