我可以选择自己的令牌值吗?

时间:2011-01-24 01:18:24

标签: yacc lex

当我创建一个语法文件并在其上执行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 #defined为1001而LAST_NAME #defined为1002.这意味着我会选择#defines和在我对语法文件执行yacc之前将它们放入包含文件中。

这可能吗?

由于

1 个答案:

答案 0 :(得分:1)

我开始阅读GNU野牛手册,它说你可以做

%token FIRST_NAME    1001
%token LAST_NAME     1002

在野牛中,它会使用这些值。然后我只是尝试了yacc,它也可以。

感谢您的时间。