win7在cmd上执行时如何在lex中结束输入
How to end input in lex when executing on CMD win7
how to execute code after yylex(); command
我遇到了和上面问题一样的问题,在yylex()以下无法执行任何东西
%{
#include<stdio.h>
int vowel=0;
int cons=0;
%}
%%
"a"|"e"|"i"|"o"|"u"|"A"|"E"|"I"|"O"|"U" {printf("is a VOWEL");vowel++;}
[a-zA-z] {printf("Is a Consonant");cons++;}
%%
int yywrap()
{
return 1;
}
main()
{
printf("Enter String\n");
yylex();
printf("vowel=%d and Consonent=%d",vowel,cons);//how to execute this statement?
}
我在 win7 上,答案是使用 Ctrl+d 结束你的输入(试过在 CMD 中不起作用)。
那么如何结束你的输入使下一条语句能够执行呢?
So how to end your input which enables the next statement to execute?
yylex()
将继续等待并处理输入,直到它看到文件结尾 或 它执行一个执行显式 return
的操作.
Ctrl+D id Ctrl+Z 的 Windows 模拟,因此您可以尝试这样做,但是使用使其 return 的规则配置词法分析器会更好。例如,如果您只需要对一行输入进行词法分析(每次调用),那么当它读取换行符时,您可以将其设为 return。但是请注意,yylex()
可能会缓冲输入字符,如果您在 yylex()
return 秒后尝试读取相同的输入文件,这可能会导致一些未处理的输入丢失,除非通过调用yylex()
再次出现。
how to execute code after yylex(); command
我遇到了和上面问题一样的问题,在yylex()以下无法执行任何东西
%{
#include<stdio.h>
int vowel=0;
int cons=0;
%}
%%
"a"|"e"|"i"|"o"|"u"|"A"|"E"|"I"|"O"|"U" {printf("is a VOWEL");vowel++;}
[a-zA-z] {printf("Is a Consonant");cons++;}
%%
int yywrap()
{
return 1;
}
main()
{
printf("Enter String\n");
yylex();
printf("vowel=%d and Consonent=%d",vowel,cons);//how to execute this statement?
}
我在 win7 上,答案是使用 Ctrl+d 结束你的输入(试过在 CMD 中不起作用)。
那么如何结束你的输入使下一条语句能够执行呢?
So how to end your input which enables the next statement to execute?
yylex()
将继续等待并处理输入,直到它看到文件结尾 或 它执行一个执行显式 return
的操作.
Ctrl+D id Ctrl+Z 的 Windows 模拟,因此您可以尝试这样做,但是使用使其 return 的规则配置词法分析器会更好。例如,如果您只需要对一行输入进行词法分析(每次调用),那么当它读取换行符时,您可以将其设为 return。但是请注意,yylex()
可能会缓冲输入字符,如果您在 yylex()
return 秒后尝试读取相同的输入文件,这可能会导致一些未处理的输入丢失,除非通过调用yylex()
再次出现。