bisonをC++で使う際に

2009/02/23 11:51 · Posted in 仕事 · Comment 

%union内に基底クラスを書いておき、非終端演算子でその派生クラスをコピーしようとすると警告が出る。

%{
class Base {};
class Derived : public Base {};
%}
%union {
  Base* base;
  Derived* derived;
}
%type <base> hoge
%type <derived> hage
%%
hoge  : hage
// アクションを省略してあるので、hoge = hage; なコードが自動生成される
  ;

放置しても問題はないんだけど、ウザイので、ちゃんと手で書いてやると、警告が消える。

hoge  : hage
        {
          $$ = $1;
        }
  ;

そんだけ。

Comments

Leave a Reply