2017-05-24 71 views
0

野牛語法我要讀一個野牛語法文件和不理解如下聲明:令牌聲明

的語法有一個聯合聲明

%union { 
    int i; 
    char *s; 
} 

令牌聲明如下所示:

%token 
     TOK0 TOK1 TOK2 
     TOK3 TOK4 TOK5 
     TOK6 

     TOK7 

%token <s> TOK8 
%token <i> TOK9 

我的期望是,由於union聲明必須爲每個標記聲明提供一個類型。但是,TOK0到TOK7沒有提供類型。我還想知道關於TOK0到TOK7聲明的表格佈局。這個佈局有什麼特別的含義?我只找到有關令牌聲明的信息來源(https://www.gnu.org/software/bison/manual/html_node/Token-Decl.html#Token-Decl),它似乎不包含我的用例。

回答

1

表格式佈局沒有意義AFAIK。如果你不需要他們的類型,你不需要爲令牌分配類型。幾乎總是像open_bracket,close_bracket或其他你永遠不需要的值的東西都是左類型的。您可以指定open_bracket爲<s>,但它不是必需的,爲了便於閱讀,我不會那樣做。

相關問題