Я пишу код lex для преобразования вкладок в космос (одна вкладка равна 4 пробелам) и подсчитывает эти пробелы. Код следующим образом:Как вернуться из yylex()?
%{
#include<stdio.h>
int spacebarCount=0;
%}
%%
[\t] {
spacebarCount+=4;
}
[ ] {
spacebarCount++;
}
%%
int main()
{
yylex();
printf("The spacebar is: %d",spacebarCount);
spacebarCount=0;
}
выход должен напечатать заявление: Е ("пробел является:% d", spacebarCount); Однако это не так. Итак, что мне делать, чтобы распечатать вывод, который я хотел? Кроме того, я попытался подставить приведенные ниже операторы в основной функции, но это не сработало.
int main()
{
do
{
if(yylex()==0);
{
printf("The spacebar is: %d",spacebarCount);
spacebarCount=0;
}
}while(1);
}
Вы можете уточнить: когда вы хотите счетчик печататься? В конце файла, конца строки или в какой-то другой точке? –
Я хочу, чтобы граф был напечатан в конце строки. – Hajime
И кроме того, я использую Lex not Flex. – Hajime