簡體   English   中英

在野牛中分割語法規則

[英]Splitting a grammar rule in Bison

我有野牛規則

block: LBRACE  { some code } decls stmts RBRACE {more code } 
     ;

問題在“更多代碼”部分,我有

$$ = $3 ;

基本上,我希望塊的返回值為stmts。 當我這樣做時,Bison說“ $ 3的塊沒有類型。” 如果刪除包含某些代碼的代碼塊並將其粘貼到后一個塊中,bison不會抱怨。 我有stmts及其所有派生聲明為類型。 那么,野牛不允許這樣做嗎? 我可以對語法進行更改以適應這種情況,但是僅使用上述內容將很繁瑣且容易得多。

使用$4引用stmts 由於您具有規則中的操作 ,因此所有后續符號編號都會發生偏移,因為操作本身可以具有值。

相應的組件編號為:
$ 1 LBRACE
$ 2 { some code }
$ 3 decls
$ 4 stmts
$ 5 RBRACE
$ 6 { more code }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM