• 大小: 6.87KB
    文件类型: .py
    金币: 1
    下载: 0 次
    发布日期: 2021-03-27
  • 语言: 其他
  • 标签: 其他  

资源简介


Python 语言写的 C 语言的词法分析器。是实验报告的一个实验。实验内容详见:https://blog.csdn.net/yuxin1100/article/details/80360837

资源截图

代码片段和文件信息

import re

# 关键字列表
key_ws = [‘char‘ ‘short‘ ‘int‘ ‘unsigned‘ ‘long‘ ‘float‘ ‘double‘ ‘struct‘ ‘union‘ ‘void‘ ‘enum‘ ‘signed‘
          ‘const‘ ‘volatile‘ ‘typedef‘ ‘auto‘ ‘register‘ ‘static‘ ‘extem‘ ‘break‘ ‘case‘ ‘continue‘
          ‘default‘ ‘do‘ ‘else‘ ‘for‘ ‘goto‘ ‘if‘ ‘return‘ ‘switch‘ ‘while‘ ‘sizeof‘ ‘txt‘ ‘FILE‘
          ‘fopen‘ ‘NULL‘ ‘fclose‘ ‘exit‘ ‘r‘ ‘read‘ ‘close‘ ‘w‘ ‘fprintf‘]

# 变量名
ID = r‘[a-zA-Z\_][0-9a-zA-Z\_]*‘

# 分隔符
SEPARATOR = r‘[:{};)(<>]#‘

# 操作码
OP = [‘+‘ ‘-‘ ‘*‘ ‘/‘ ‘%‘ ‘>‘ ‘<‘ ‘=‘ ‘!‘ ‘|‘ ‘&‘ ‘~‘ ‘^‘]

# 常数
NUM = r‘[0-9\.][0-9]*‘

KEY_List = []
ID_List = []
OP_List = []
SEPARATOR_list = []
STRING_List = []
NUM_List = []
print_List = []
content_List = []


def main():
    global ws
    cflag = 0  # 控制多行注释
    oflag = 0
    op_first = ‘‘
    line = read_file(‘/Users/Desktop/test.c‘)
    # 行号
    line_num = 0
    # 多行注释起始行号
    line_comment_start = 0
    comment_start1 = ‘//‘
    comment_start2 = ‘/*‘
  

评论

共有 条评论