1.词法分析的基本概念
词法分析也称为分词,此阶段编译器从左向右扫描源文件,将其字符流扫描分割成一个个的词(记号、token)。所谓token,就是源文件中不可再进一步分割的一串字符,类似英语中的单词,汉语中的词。
一般来说程序语言中的 token 有:
- 常数(整数、小数、字符、字符串等)
- 操作符(算术操作符、比较操作符、逻辑操作符)
- 分隔符(逗号、分号、括号等)
- 保留字
- 标识符(变量名、函数名、类名等)
2.直接扫描法
每轮扫描,根据第一个字符判断属于哪种类型的token,采取不同的策略扫描出一个完整的token,再接着进行下一轮扫描。
2.1A型单字符运算符
包括:+, -, *, /, %, 这种 token 只有一个字符,若本轮扫描的第一个字符为上述字符,则立即返回此字符所代表的 token ,然后移到下一个字符开始下一轮扫描。
2.2B型单字符运算符和双字符运算符
B型单字符运算符包括: < > = ! ,双字符运算符包括: <=, >=, ==, != 。若本轮扫描的第一个字符为B型单字符运算符时,先查看下一个字符是否是 “=” ,如果是,则返回这两个字符代表的 t