2016-12-09 10 views
0

フレックスとバイソンで一緒に使うことのできるマップを作ろうとしています。bisonでグローバルパラメータを作る方法++ ++

これは私がバイソンに入れてみましたものです:

%{ 
    #include<string> 
    #include<string.h> 
    #include<map> 
    using namespace std; 
    map<string,int> vars; 
%} 

と私のフレックスは、これを含まれています:

%{ 
#include "ex3.tab.h" 
#include<stdio.h> 
#include<string> 
%} 

私はときに私のエラー「『VARS』がこのスコープで宣言されていません」を取得flexからvarsにアクセスしてみてください。

私はそれが単なる構文の質問であることは知っていますが、どこにでもその例が見つかりませんでした。

答えて

1

varsの変数宣言がBison生成のヘッダーファイルにないため、エラーが発生します。 Flexファイルにextern宣言を自分で追加する必要はありません。

関連する問題