flex解析器中的BEGIN(INITIAL)

Mar*_*rio 1 text-parsing flex-lexer

我有一个弹性问题.我无法理解什么是BEGIN(INITIAL)命令.我认为这是我已经进入当前状态的开始的方式,但我不确定我是否正确.你能用简单的语言向我解释BEGIN(INITIAL)的作用吗?

先感谢您!

Edv*_*olm 5

它带回了初始状态.说你有类似的东西:

%x FOO
%%

[A-Z]    { BEGIN(FOO); }
.        {}
<FOO>.   {}
<FOO>\n  { BEGIN(INITIAL); }
%%
Run Code Online (Sandbox Code Playgroud)

这里初始状态,即状态INITIAL是与前两个模式匹配的状态,即"默认"状态.如果您阅读任何大写字符,您将最终进入FOO状态.在状态FOO中,如果遇到换行符,您将最终处于初始状态,这也是与前两个规则匹配的状态.