2016-12-09 2 views
0

Я пытаюсь создать карту, которая может использоваться в flex и bison вместе.Как сделать глобальный параметр в bison C++

Это то, что я пытался ставить в бизона:

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

и мой прогибается включает в себя следующее:

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

Я получаю ошибку «„вары“не был объявлен в этой области», когда я попробуйте получить доступ из flex в vars.

Я знаю, что это простой вопрос с синтаксисом, но я не мог найти для него пример.

ответ

1

Вы получаете ошибку, потому что объявление переменной для vars не находится в подготовленном Bison файле заголовка. Вам нужно добавить декларацию extern в файл Flex.

Смежные вопросы