Я пытаюсь собрать парсер с 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/Yacc file */
%token TokenType1 0x10000000
%token TokenType2 0x11000000
%token TokenType3 0x11100000
//...
Если мне придется делать это таким образом, поддерживать файл будет довольно сложно, если спецификация другого модуля изменится (что случается довольно часто).
Не могли бы вы сказать мне, как это сделать, или указать мне правильное направление (любая идея / комментарий приветствуется). Это очень помогло бы мне! Заранее спасибо.