我已經試過這樣的事情在我的野牛文件的printf ...麻煩與野牛規則
ReturnS: RETURN expression {printf(";")}
...但分號被打印的下一個標記後,過去的這個規則,而不是右後表達方式。這條規則是因爲我們需要將輸入文件轉換爲類似於c的表單,並且原始語言在return語句中的表達式之後不需要分號,但是C的確如此,所以我想我會添加它用printf手動輸出到輸出。這似乎不起作用,因爲分號被添加了,但由於某種原因,當表達式規則返回到ReturnS時,它在下一個標記被解析(ReturnS規則之外)而不是正確之後被添加。
這條規則也導致同樣的結果:
loop_for: FOR var_name COLONEQUALS expression TO {printf("%s<=", $<chartype>2);} expression STEP {printf("%s+=", $<chartype>2);} expression {printf(")\n");} Code ENDFOR
除了前兩個的printf的不工作的權利(我會發布關於另一個問題),最後的printf實際上是調用後的第一個令牌/文字「準則」 的規則已經被解析,導致像這樣的:
for (i=0; i<=5; i+=1
a)
=a+1;
代替
for (i=0; i<=5; i+=1)
a=a+1;
任何想法我做錯了什麼?
我明白了。感謝您的迴應。不知道如何解決,但現在至少我有一個線索在哪裏看。 – 2010-08-22 06:35:54
我試過了,但似乎無法解決這個問題。有關如何解決此問題的任何想法? – 2010-08-22 08:10:10
@Leftos:通過電子郵件把我的代碼放下 - 查看我的個人資料。我會看看我能做些什麼。 – 2010-08-22 14:02:12