字句解析ツール "flex"を使って字句を出力しようとしています。問題は字句があり、字句ではなくトークンを印刷できます。これはあなたが私は字句解析を行う際に、このにyylex()関数は、「ヌル」を返し、それは私があれば喜んでいるでしょうフレックスを使用してCコードの字句とトークンを印刷する
example5.l:8:1: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘int’ [-Wformat].
言う
%{
#include<stdio.h>
char RW[] = "RESERVE_WORD";
%}
int [i][n][t]
%%
int printf("%s --> %s\n", yylex(), RW);
.|\n { /* Ignore all other */}
%%
int main(int argc, char *argv[]) {
yyin = fopen(argv[1], "r");
yylex();
fclose(yyin);
return 0;
}
の下に見ることができるように、私が使用して簡単なコードですあなたは私を助けることができます。とにかくありがとう
実際、いいえ、警告はスキャナのコンパイルから来ます。良いマニュアルを見て解決できるyylex()の使い方については、間違っているようです。あなたの入力と予想される出力は正確に何ですか? –
あなたは本当です。私はそれを処理した。私はyylex()が整数を返すので、最後のトークンを文字列として含むyytext変数があることを認識しました。応答に感謝 – quartaela
他の人があなたの解決方法を見ることができるように、作業コードで回答を投稿してください。 –