我有我的語法簡單的規則,查找空格的序列:誤差野牛
ws: ws|' ';
當野牛看到這個規律,它抱怨:
警告:規則無用解析器由於衝突:ws:ws
爲什麼是這樣?不能我有一個簡單的語法規則,它尋找一個正則表達式?
我有我的語法簡單的規則,查找空格的序列:誤差野牛
ws: ws|' ';
當野牛看到這個規律,它抱怨:
警告:規則無用解析器由於衝突:ws:ws
爲什麼是這樣?不能我有一個簡單的語法規則,它尋找一個正則表達式?
你聲明的是'ws是ws或ws是空格',而不是'ws是一個或多個空格'。
如果你想是後者,你可以試試:
ws: ' '
| ' ' ws;
參見http://www.gnu.org/software/bison/manual/bison.html#Recursion
請注意, ws:''| ws''; 可能會佔用顯着更少的堆棧空間,具體取決於您的空白運行的長度。一般來說,使用更安全 set:element |設置元素; ...在Yacc/Bison解析器中,因爲它們只會增加堆棧最多2個級別,其中 set:element |元素集; ...如果輸入包含任意大的集合,則可以將堆棧增長到極限(並超越崩潰解析器)。 (Bison默認爲10,000個堆棧條目,但在文件中有10,000個空間並不是不可能的,並且調試真的很痛苦!) – BRFennPocock
也許你應該使用左遞歸呢? –
也嘗試過。沒有幫助! – Aarkan
與''不一樣嗎? –