TinyC编译器5—词法分析

1.词法分析的基本概念

词法分析也称为分词,此阶段编译器从左向右扫描源文件,将其字符流扫描分割成一个个的词(记号、token)。所谓token,就是源文件中不可再进一步分割的一串字符,类似英语中的单词,汉语中的词。

一般来说程序语言中的 token 有:

  • 常数(整数、小数、字符、字符串等)
  • 操作符(算术操作符、比较操作符、逻辑操作符)
  • 分隔符(逗号、分号、括号等)
  • 保留字
  • 标识符(变量名、函数名、类名等)

2.直接扫描法

每轮扫描,根据第一个字符判断属于哪种类型的token,采取不同的策略扫描出一个完整的token,再接着进行下一轮扫描。

2.1A型单字符运算符

包括:+, -, *, /, %, 这种 token 只有一个字符,若本轮扫描的第一个字符为上述字符,则立即返回此字符所代表的 token ,然后移到下一个字符开始下一轮扫描。

2.2B型单字符运算符和双字符运算符

B型单字符运算符包括: < > = ! ,双字符运算符包括: <=, >=, ==, != 。若本轮扫描的第一个字符为B型单字符运算符时,先查看下一个字符是否是 “=” ,如果是,则返回这两个字符代表的 t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值