码迷,mamicode.com
首页 > 其他好文 > 详细

第二章 flex处理二义性

时间:2015-07-11 10:24:39      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

大多数flex程序有二义性,相同的输入可能被多种模式匹配

flex通过下面2个规则来解决

  • 匹配尽可能长的字符
  • 如果2个模式都可以匹配, 匹配更早出现的那个模式

例子

"+" { return ADD; }
"=" { return ASSIGN; }
"+=" { return ASSIGNADD; }
"if" { return KEYWORDIF; }
"else" { return KEYWORDELSE; }
[a-zA-Z_][a-zA-Z0-9_]* { return IDENTIFIER; }

以上模式中,因为 "+="更长,所以优先匹配

后三个关键字来说, 先匹配关键字

 

第二章 flex处理二义性

标签:

原文地址:http://www.cnblogs.com/xzpp/p/4638026.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!