私はコンパイラでの背景が全くなく、 "自分自身を教える"旅に着手しました。私はthisチュートリアルを使用してのlexについて学習し、今私はLEXはちょうどそれが上記first.l
ファイルを使用して取得するすべてのものをエコーしますトークナイザを生成することになっていることを理解しfirst.l
lexの出力はどうすればいいですか?
%%
/* match everything except newline */
. ECHO;
/* match newline */
\n ECHO;
%%
int yywrap(void) {
return 1;
}
int main(void) {
yylex();
return 0;
}
と呼ばれるファイルに次のようなものを入力しています。私は先に行って、それはlex.yy.c
というファイルを作成し
lex first.l
を走りました。このチュートリアルではさらにいくつかの例を示し、yacc
にジャンプします。誰かがlexによって生成されたlex.yy.c
ファイルで何ができるのか教えていただけますか?私はトークナイザを持っていると思っていましたが、このファイルをバイナリにコンパイルするにはどうしたらいいですか? gccを使用していますか?
感謝。私はgccを使ってコンパイルする方法を知っていますが、lexが生成したファイルをどうするかを知りたがっています。私はgccでコンパイルしなければならなかったことが分かり、期待どおりに動作します。御時間ありがとうございます。あなたの答えを編集して最終ステップを追加しました。あなたが気にしないことを願っています。 – Legend