block:
"{" { //push scope;}
multi_stmt
"}" {
//pop scope
$$=new ASTNode_Block($2,..........)
}
我想在野牛中實現塊結構。不過,我在這裏遇到$ 2(從multi_stmt返回的值)的問題野牛語法,訪問返回變量
ps:它的目的不是使用「|」把它們分開,因此我可以讓它們按順序執行。
block:
"{" { //push scope;}
multi_stmt
"}" {
//pop scope
$$=new ASTNode_Block($2,..........)
}
我想在野牛中實現塊結構。不過,我在這裏遇到$ 2(從multi_stmt返回的值)的問題野牛語法,訪問返回變量
ps:它的目的不是使用「|」把它們分開,因此我可以讓它們按順序執行。
請嘗試在第"{" {
行中刪除第二個{
。如果我理解正確,你打算定義一個語法規則{ multi_stmt }
,所以第二個{
這裏是一個錯誤。
中等規則操作也有數字(但默認情況下不包含返回類型)。所以multi_stmt
的值是$3
,而不是$2
。
$1
是開括號(我想應該是'{'
,不"{"
- 野牛,它們是不同的 - ),$2
是中期的規則操作,$3
是multi_stmt
和$4
是密切括號。