Как написать файл Bison для автоматического использования списка перечисления токенов, определенного в заголовочном файлC++

Программы на C++. Форум разработчиков
Anonymous
Как написать файл Bison для автоматического использования списка перечисления токенов, определенного в заголовочном файл

Сообщение Anonymous »

Я пытаюсь создать анализатор с помощью Bison/Yacc, чтобы иметь возможность анализировать поток токенов, выполняемый другим модулем. Токены уже перечислены в следующем типе перечисления:

Код: Выделить всё

// C++ header file
enum token_id {
TokenType1         = 0x10000000,
TokenType2         = 0x11000000,
TokenType3         = 0x11100000,
//... and the list go on with about 200/300 line
};
Я много раз просматривал документацию по bison, но не нашел лучшего решения, чем копирование каждого токена в файле Bison следующим образом:

Код: Выделить всё

/* Bison/Yacc file */
%token TokenType1 0x10000000
%token TokenType2 0x11000000
%token TokenType3 0x11100000
//...
Если мне придется сделать это таким образом, будет довольно сложно поддерживать файл, если спецификация другого модуля изменится (что случается довольно часто).

Не могли бы вы рассказать мне, как это сделать, или указать мне правильное направление (любая идея/комментарий приветствуются). Мне бы это очень помогло! Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/211 ... t-define-i

Вернуться в «C++»