Я пытаюсь распечатать лексемы и токены с помощью лексического анализатора «flex», и проблема в том, что я могу найти лексемы и могу просто печатать токены, а не лексемы. это простой код, который я использую, как вы можете видеть ниже
%{
#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 () возвращает «ноль» и выдает
example5.l:8:1: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘int’ [-Wformat].
Я буду рад, если вы сможете мне помочь. и все равно спасибо