我已经厌倦了使用flex条件变量的一个非常简单的示例。

根据我的理解,当我输入“ magic”作为输入时,根据不同的条件,它应该打印出不同的字符串,例如“ first”,“ second”。

但是,当我键入magic时,它仅输出“ magic”,这使我感到非常困惑。

%START AA BB CC
%%
^a                {ECHO; BEGIN AA;}
^b                {ECHO; BEGIN BB;}
^c                {ECHO; BEGIN CC;}
\n                {ECHO; BEGIN 0;}
<AA>magic         printf("first");
<BB>magic         printf("second");
<CC>magic         printf("third");

最佳答案

输入字符串应为“ amagic \ n”

而不是“ a \ n”->“魔术\ n”

因为每次输入“ \ n”,标志都会再次设置为0。

关于c - Flex启动条件意外结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51470717/

10-12 04:31