开始条件订单

时间:2017-10-27 17:39:49

标签: regex flex-lexer lex

我已经搜索了谷歌寻找答案并向我的讲师提出这个问题,但他还没有回复我,我想继续提供帮助,所以我来到你们这里是一个问题:

我在flex-lexer中有这段代码:

1| "/*"    BEGIN(multi_line_comment);                              
2|         <multi_line_comment>[^*]*
3|         <multi_line_comment>"*"+[^\*\/]*
4|         <multi_line_comment>"*"+"/"       BEGIN(INITIAL);

当我接受"/*abc**** * defg*/"之类的输入时 我的直觉告诉我,启动条件中的代码按1->2->3->4顺序执行,然后

1后我"abc**** * defg*/"离开

2后我"**** * defg*/"离开

3之后我有" * defg*/"

4之后我有" * defg"

""用于显示空格,它们不用于输入

然而,当我在flex中编译此代码时,它会切断整个输入。因此,我认为只有这样才能执行第二步(1->2->3->3->4

a)那么开始条件如何运作?按什么顺序?

b)每一步都重新进行,直到它不合适为止?如果是,那么如果在步骤3步骤2开始适合后,它会回到步骤2还是保持输入不变?

感谢您的回答

0 个答案:

没有答案