Могу ли я выбрать собственные значения токенов?

Когда я создаю файл грамматики и выполняю для него команду yacc -d, я получаю выходной файл y.tab.h. Есть ли способ передать значения токенов, которые я хочу, в yacc вместо того, чтобы выбирать значения?

Например,

%token    FIRST_NAME
%token    LAST_NAME
...

производит (в y.tab.h):

#define   FIRST_NAME  257
#define   LAST_NAME   258

Я знаю, что первые 256 значений зарезервированы для односимвольных совпадений, но мне бы очень хотелось, чтобы FIRST_NAME был # определен как 1001, а LAST_NAME был # определен как 1002. Это означает, что я бы выбрал #defines и поместил их в включаемый файл, прежде чем я сделаю yacc для файла грамматики.

Это возможно?

Спасибо


person No One in Particular    schedule 24.01.2011    source источник


Ответы (1)


Я начал читать руководство GNU bison, и в нем говорилось, что вы можете сделать

%token FIRST_NAME    1001
%token LAST_NAME     1002

в бизоне, и он будет использовать эти значения. Затем я просто попробовал его для yacc, и он тоже работает.

Спасибо за ваше время.

person No One in Particular    schedule 24.01.2011