超简单易懂的编译原理词法分析——python

编译原理词法分析——python

1.词法分析

词法分析是计算机科学中将字符序列转换为单词序列的过程,进行词法分析的程序或者函数叫作词法分析器,也叫扫描器。在本程序中,我通过python实现了一个简单的词法分析器,该程序并不包含完整的词法分析,因为给的例子并不是很难,所以就没有添加很多,但是道理就是这样的道理。

2.需要分析的代码段

/*example*/
      b=1\
00
101:a=2*(1+3)
       IF(b>10) THEN
             a=1
       ELSE  IF(b>=5) THEN
             a=2
       ELSE
             GOTO 101

3.函数

#coding=utf-8
import sys
import string
key_word = ['IF','THEN','ELSE','GOTO'] #定义关键词
operator  = ['=','+','>=','*','>']             #定义运算符
delimiters = [':','(',')']                            #定义界符
#预处理函数,对例程进行预处理,去掉多余的空格、注释
def preprocess(file_name):
          try: #try except 使程序不会因为异常而中断
                fp_read = open(file_name,'r')              #打开需要分析的文件
                fp_write = open('preprocess.txt','w')
                sign = 0  #每当上一个字符为空格时,将sign变为1,通过这样来保证每个需要空格的地方不会有多余的空格
                while True:
                      read = fp_read.readline()   #循环读取每一行字符 
                if not read:
                      break         #如果没有读取到任何东西直接结束循环
                length = len(read)      #获得当前字符串的长度
                i = -1
                while i < length - 1:       #循环读取每个字符
                         i+=1
                if read[i] == ' ':    
                    if sign == 1:         #读取到空格ÿ
  • 9
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值