词法分析
码文不易,希望支持,谢谢->支持原创
词法分析(扫描)器的功能
输入源程序,输出(单词)符号(token)。
即:把构成源程序的字符串转换成(单词)符号序列
1. 单词符号的表示
(单词符号种别,属性值)
- 常用单词符号种别——分类
1.各关键字(保留字、基本字),各种运算符,各种分界符——各用一个种别码标识
2.其它标识符——用一个种别码标识
3.常数——用一个种别码标识
- 单词符号的值——属性
常数的值,标识符的名字等
保留字、运算符、分界符的属性值可以省略
代码块举例
{
(LP, _ )
S (IDN,符号表项指针)
= (EQ, _)
S (IDN,符号表项指针)
++ (INC, _ )
; (SEMI, _ )
pointer (IDN, 符号表项指针)
++ (INC, _ )
; (SEMI, _ )
} (RP, _ )
码文不易,希望支持,谢谢->支持原创
符号的正规(表达)式描述
正规文法是左线性文法和右线性文法的统称。它们都是Chomsky分类下的3型文法。由正规文法产生的语言称为正规集。下面我们将会看到,这里之所以用“正规”二字为一种语言命名,是因为这种语言的结构可以用所谓正规式来描述。正规表达式——百度百科
下面两种文法中l代表字母(终极符),d代表数字(非终极符)。
左线性文法
S→l | Sd | Sl
右线性文法
S→ l| lT
T→ l| d| lT| dT
1. 正规式
正规语言的另一种描述方法
例:l (l|d)*
| 表示"或"
* 表示Kleene闭包
符号的并列表示符号连接关系
正规式 r 表示正规集,相应的正规集记为 L(r),意思明确时也可以直接记为r。
正规(表达)式(Regular Expression——RE)
设 ∑ ∑ 是一个字母表,
⑴ ϕ ϕ