質問

私はCで字句解析器をプログラミングしていますが、ヘッダーファイル tokens.h について読んでいます。そこにいますか?もしそうなら、その使用は何ですか?

役に立ちましたか?

解決

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)

他のヒント

おそらく、 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;}

%%
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top