我正在寫一個簡單的HTML解析器,使用yacc(野牛)和flex。 我怎麼能做出這樣的規則:我應該如何在yacc/bison和lex中做出遞歸規則?
column -> <td>text</td>column | NULL
我試過很多這樣的形式:
COLUMN : L_TAG T_OPEN R_TAG ID L_TAG T_CLOSE R_TAG COLUMN
|
;
// Lex中指定的令牌。
不幸的是它不起作用。它給我的轉變/減少錯誤。無論我是將COLUMN放在規則的開頭還是結尾。是否使用這樣的NULL:
{$$ = NULL}
或讓它爲空。 我需要NULL的東西,使規則遞歸,並能夠有相同的標籤多次相鄰。像這樣:
<tr>name</tr><tr>age</tr>
我該如何做這項工作?
不幸的事情是這樣的: 細胞: |細胞細胞 ; cell:TD TEXT CLOSE_TD ; 不起作用! :(我不知道如何做一個空的規則工作,我甚至嘗試過{$$ = NULL;}沒有幫助。 – Milad