1

だから私はバイソンでタイプの衝突を起こしている

warning: type clash on default action: <stmt> != <expr>

私は次のような作品を持っているので

%type <stmt> Stmt
%type <expr> Expr
...
Stmt : Expr    /* empty */
     | Otherstuff {do other stuff.....}
     ;

ExprはStmtのサブクラス(私はc ++を使用しています)であるため、これらのエラーを取り除く方法があるかどうか疑問に思っていましたが、追加の関数があるので、

%type <stmt> Stmt Expr

動作しません。何か案は?

4

1 に答える 1

3

簡単な方法は次のとおりです。

Stmt : Expr         {$$ =  $1;} // This is the same as default action
于 2012-07-25T03:16:10.400 に答える