这几部分主要对正则表达式、formal language及其相关的概念进行了介绍,后面对正则表达式如何表示一个字符集做出了一些示例,最后讲解了如何用正则表达式构造词法规范。
1.正则表达式种类
(1).基本表达式
single character
epsilon
(2).由前两者组合而成的复合正则表达式
union 并集
concatenation 拼接
iteration 和自己级联
一些复杂实例
2.formal language介绍
即基于字符所构建的任意字符集
3.meaning function 介绍
L代表表达式到字符集的映射、
为什么要使用Meaning function
1.语法和语义分离
2.表达式的符号作为一个可以分离讨论的问题
3.表达式和语义不是一对一的关系
后面给出了一些用正则表达式表示复杂字符集的例子,然后提供了一个formal system的在线学习平台,看视频做练习好一点。
4.使用正则表达式构造词汇规范
1.为每个token class写正则表达式,得到正则表达式集合
2.做并集,匹配所有语法规则
3.check 符合表达式的规则
最长匹配原则
遇见输入值有多个不同的前缀且都是有效词法单元,那应该选择最长的那个
选择优先级高的匹配 (keywords > identifier)