C でレクサーをプログラミングしていて、ヘッダー ファイルについてどこかで読みましたtokens.h
。そこにいますか?もしそうなら、その用途は何ですか?
質問する
1001 次
2 に答える
1
tokens.h
によって生成されたファイル、yacc
またはbison
文法内のトークンのリストを含むファイルです。
/入力ファイルにはyacc
、bison
次のようなトークン宣言が含まれている場合があります。
%token INTEGER
%token ID
%token STRING
%token SPACE
このファイルをyacc
/で実行bison
するとtokens.h
、これらのトークンのプリプロセッサ定義を含むファイルが作成されます。
/* Something like this... */
#define INTEGER (1)
#define ID (2)
#define STRING (3)
于 2009-07-31T15:26:12.473 に答える
0
おそらく、tokens.h
トークン定義を含むパーサー ジェネレーター (Yacc/Bison) によって生成されたファイルであるため、レクサーからパーサーにトークンを返すことができます。
Lex/Flex と Yacc/Bison では、次のように動作します。
parser.y
:
%token FOO
%token BAR
%%
start: FOO BAR;
%%
lexer.l
:
%{
#include "tokens.h"
%}
%%
foo {return FOO;}
bar {return BAR;}
%%
于 2009-07-31T15:35:16.250 に答える