当前位置: 首页 > news >正文

甘肃住房建设厅的网站如何做网站搬运工赚钱

甘肃住房建设厅的网站,如何做网站搬运工赚钱,南山专业做网站公司,小程序游戏怎么开发设计与实现一个简单词法分析。具体内容是产生一个二元式文本文件#xff0c;扩展名为dyd#xff0c;可将Java或C程序(测试程序)分解成为一个一个的单词及类型。 #xff08;选做#xff1a;并查“单词符号与种别对照表”得出其种别#xff0c;用一数字表示。#xff09;…设计与实现一个简单词法分析。具体内容是产生一个二元式文本文件扩展名为dyd可将Java或C程序(测试程序)分解成为一个一个的单词及类型。 选做并查“单词符号与种别对照表”得出其种别用一数字表示。 词法编译器基本功能包括 1 输入源程序输入C/java源程序 2 输出单词输出形式为序号类型单词 3 输出出错信息输出形式为出错行号出错列号出错信息 为了运行代码并进行实验需要满足以下条件 1.Python环境确保计算机上安装了Python并且可以在命令行中运行python命令。 2.输入源程序文件创建一个名为input.java或input.c的文件其中包含想要进行词法分析的Java/C源程序。确保源程序的语法是正确的否则可能会导致词法分析错误。 3.下载依赖下载需要的依赖库。 4.查看输出文件运行成功后将生成一个名为output.dyd的文件其中包含了词法分析的结果包括单词及其类型的二元式信息。 词法分析器源程序文件lexer.py import re import tkinter as tk from tkinter import filedialog# 定义单词种别码 KEYWORD 1 IDENTIFIER 10 CONSTANT 11 OPERATOR 4 DELIMITER 5# 定义关键字列表 keywords [if, int, for, while, do, return, break, continue]class LexicalAnalyzer:def __init__(self, window):# 窗口设置self.window windowself.window.title(词法分析器)self.window.geometry(500x500)# 顶部文件选择与运行控制区域self.top_frame tk.Frame(self.window)self.top_frame.pack(sidetk.TOP, pady10, padx10)# 文件选择按钮self.select_file_button tk.Button(self.top_frame, text选择文件, commandself.select_file)self.select_file_button.pack(sidetk.LEFT)# 运行按钮self.run_button tk.Button(self.top_frame, text运行, statetk.DISABLED, commandself.run_analysis)self.run_button.pack(sidetk.RIGHT)# 中间的文本显示框self.text_frame tk.Frame(self.window)self.text_frame.pack(pady10)self.scrollbar tk.Scrollbar(self.text_frame)self.scrollbar.pack(sidetk.RIGHT, filltk.Y)self.display_area tk.Text(self.text_frame, wraptk.WORD, yscrollcommandself.scrollbar.set)self.display_area.pack(sidetk.LEFT, filltk.BOTH)self.scrollbar.config(commandself.display_area.yview)# 底部状态栏区域self.status_bar tk.Frame(self.window)self.status_bar.pack(sidetk.BOTTOM, pady10)self.status_label tk.Label(self.status_bar, text请选择一个文件)self.status_label.pack()# 初始化属性self.input_file Noneself.tokens []def select_file(self):self.input_file filedialog.askopenfilename(filetypes[(C源程序, *.c), (文本, *.txt), (所有文件, *.*)])if self.input_file:self.status_label.config(textf已选择文件{self.input_file})self.run_button.config(statetk.NORMAL)def run_analysis(self):if not self.input_file:returnself.status_label.config(text运行中请稍候...)self.window.update()with open(self.input_file, r, encodingutf-8) as file:lines file.readlines()token_count 0error_count 0self.tokens.clear()for line_number, line in enumerate(lines, start1):words re.findall(r[a-zA-Z_][a-zA-Z0-9_]*|\d||\|\|||||!|[\-*/,;(){}], line)column_number 1for word in words:category classify_token(word)if category ! -1:self.tokens.append((line_number, column_number, category, word))token_count 1else:self.display_area.insert(tk.END, fInvalid token: {word} at Line {line_number}, Column {column_number}\n)error_count 1column_number len(word) 1if error_count 0:self.status_label.config(textf词法分析完成共生成 {token_count} 个二元式。)self.display_tokens()self.save_results() # 保存结果到文件中else:self.status_label.config(textf词法分析失败请查看输出窗口。)def display_tokens(self):self.display_area.delete(1.0, tk.END)for token in self.tokens:line_number, column_number, category, word tokenself.display_area.insert(tk.END, f({line_number},{column_number})\t{category}\t{word}\n)def save_results(self):output_file filedialog.asksaveasfilename(defaultextension.dyd, filetypes[(二元式文件, *.dyd)])if output_file:with open(output_file, w, encodingutf-8) as file:for token in self.tokens:line_number, column_number, category, word tokenfile.write(f{line_number}\t{column_number}\t{category}\t{word}\n)self.status_label.config(textf结果已保存至文件{output_file})def show(self):self.window.mainloop()# 判断单词种别函数 def classify_token(word):if word in keywords:return KEYWORDelif re.match(r^[a-zA-Z_][a-zA-Z0-9_]*$, word):return IDENTIFIERelif re.match(r^\d$, word):return CONSTANTelif word in [, -, *, /, , , , , , , !, , ||]:return OPERATORelif word in [,, ;, (, ), {, }]:return DELIMITERelse:return -1 # 无法分类的单词种别码if __name__ __main__:window tk.Tk()analyzer LexicalAnalyzer(window)analyzer.show() 运行结果
http://www.zqtcl.cn/news/495943/

相关文章:

  • 深圳做二类学分的网站开发一平方米多少钱
  • 如何做原创小说网站建一个o2o网站
  • 东莞市住房建设网站互动科技 网站建设
  • 淄博网站建设高端网络seo线上培训多少钱
  • s网站优化工地模板图片
  • 手机网站使用微信支付神级网页设计网站
  • 网站建站大约多少钱如何引流被动加好友
  • 哪些网站可以查企业信息大城县有做网站的吗
  • 上海网站建设电影联wordpress 分类title
  • 杭州网站建设招标免费seo排名优化
  • 网站建设服务费是否无形资产百度一下你就知道官网下载安装
  • 网站付款链接怎么做在线设计商标logo
  • 阿里巴巴做网站多少钱特大新闻凌晨刚刚发生
  • 网站如何做se设计师网站pintset
  • 上海网站制作机构wordpress 优酷免广告
  • 关于网站建设的名言网站开发的技术难点
  • 免费云建站廊坊seo外包
  • 个人网站建设方案书用备案的衡水市网站制作
  • 教育网站的建设品牌营销型网站作用
  • 金凤区建设交通局网站做洗衣液的企业网站
  • 南阳网站优化手机咋做网站
  • 做网站多少钱一年没有网站做cpa怎么赚钱
  • 二手房发布网站怎么做建站哪家好用兴田德润
  • 网站开发有几种深圳网站制作长沙
  • 为什么一个网站外链那么多公司团建活动
  • 公司门户网站建设策划书wordpress清空数据
  • 大兴专注高端网站建设交互设计留学
  • 想要黑掉一个网站 要怎么做网页设计师培训机构有吗
  • 做网站网站应该注意什么关于建设网站的会议纪要
  • 什么网站建设最简单做毕业设计实物的网站