编译原理(第5章)精选.ppt

Lex 的常规表达式(2) 字符 含义 { } 指出一个模式可能出现的次数。 例如:A{1,3} 表示 A 可能出现1次或3次。 \ 用来转义元字符。同样用来覆盖字符在此表中定义的特殊意义,只取字符的本意。 ^ 否定。 | 表达式间的逻辑或。 一些符号 字符的字面含义。元字符具有。 / 向前匹配。如果在匹配的模版中的“/”后跟有后续表达式,只匹配模版中“/”前面的部分。如:如果输入 A01,那么在模版 A0/1 中的 A0 是匹配的。 ( ) 将一系列常规表达式分组。 常规表达式举例 常规表达式 含义 joke[rs] 匹配 jokes 或 joker。 A{1,2}shis+ 匹配 AAshis, Ashis, Ashiss, Ashisss。 (A[b-e])+ 匹配在 A 出现位置后跟随的从 b 到 e 的所有字符中的 1 个或 多个。 标记声明举例 标记 相关表达式 含义 数字(digit) ([0-9])+ 1个或多个数字 字符(letter) [A-Za-z] 任意字符 空格(blank) 一个空格 字(word) (letter)+ 1个或多个 chars 标识符(id) (字符)+(数字)*(字符)*(数字)* 问:若看到字符串“if”,采用哪条规则转换成词法单元? Lex解决冲突的规则:1)总是选择最长前缀;2)当最长匹配前

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档