用python来实现一个简单的词法分析器

上编译原理课时,老师说可以用同学们可以使用不同的语言写一个词法分析器,于是首先我想到的是python。本来的思路是写一个自动机,用一个指针来表示当前读取的字符,另一个指针往后读,通过不同读取字符的状态用自动机来确定是哪种类别。后面由于python指针好像只要那个seek(),tell()函数好像不是很好操作,于是就想到另一种方法就是使用正则来匹配我们的文件内容,找出我们需要识别的词,同时输出单词的类别!(仅仅提供参考,个人也是个菜鸡!)

题目就是如下:

需要识别的词

  1. 关键字:if、int、for、while、do、return、break、continue;单词种别码为1。
  2. 标识符;单词种别码为2。
  3. 常数为无符号整形数;单词种别码为3。
  4. 运算符包括:+、-、*、/、**、=、:=、<=、<>、<、>=、>单词种别码为4。
  5. 分隔符包括:,、; 单词种别码为5

代码如下:

import re
def cal_character(longtext):
    string_list=re.findall(r'[_a-zA-Z][_
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值