2011-09-08 85 views
5

正在開發使用flex/bison的編譯器。 我在編譯輸出中有這個警告。警告野牛彙編

warning: type clash ('s' '') on default action

任何幫助嗎?

+1

這不是一個'compilator',它是一個'編譯器'。 –

回答

7

這似乎是關係到你的源您%令牌和%類型聲明。 沒有源代碼行和相關的標記和類型聲明它很難幫助你。

如果指定類型VAL的EXPR和定義器類型的ID令牌TPTR

%{ 
#include "parser.h" 
%} 
%type <val> expr 
%token <tptr> ID 

如果你寫了沒有任何行動野牛會發出警告

expr : ID; 

warning: type clash ('tptr' 'val') on default action 

注意,野牛級在這種情況下,我正在使用打印略有不同的信息。

foo.by:10.12:warning: type clash on default action : <tptr> != <val> 

要解決這個警告,您需要一個明確的行動:

expr : ID { $$ = some_conversion_code($1); } 

http://www.gnu.org/s/bison/manual/bison.html#Token-Decl

+0

@VGCE那麼該怎麼辦才能糾正警告?該採取什麼措施? – Har

0

使用聯合定義,從輸入法的給令牌。