新建网站网络空间室内设计装修是什么专业

web/2025/9/28 23:39:01/文章来源:
新建网站网络空间,室内设计装修是什么专业,网站基础建设ppt,模拟创建一个公司设计与实现一个简单词法分析。具体内容是产生一个二元式文本文件#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.mzph.cn/web/83584.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

提供网站建设收益分录全网营销推广有哪些平台

Seata AT 模式 上一节中我们提到AT模式是基于XA事务模型演变过来的,所以他的整体机制也是一个改进版本的两阶段提交协议。 第一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和链接资源第二阶段:提交异步化&…

散热器 东莞网站建设模板免费下载网站

此实验的前提是防火墙需关闭。 1.关闭iptables /etc/init.d/iptables stop /etc/init.d/iptables status 2.关闭selinux setenforce 0 getenforce Permissive ---出现这个单词即代表selinux临时关闭,如需永久关闭则需修改/etc/sysconfig/selinux配置文件 …

杭州企业建设网站企业哔哩哔哩网页版怎么回到旧版

前言 友链: 原文地址 ❓-背景- 现有物理机A,B。A中安装了虚拟机VM上面部署了服务(这里以mysql为例)。B需要访问A虚拟机中部署的服务。 -环境- 物理机A(192.168.135.161)物理机B(192.168.135.162&#xf…

劳保手套网站建设做旅行社网站多少钱

关系数据库与非关系型数据库概述 关系型数据库 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。SQL语句(标准数据查询语言)就是一种基于关系型数据库的语言,用于执行对关系型…

好学校平台网站模板下载不了中国英文政务网站建设

文心一言 Ian Goodfellow是机器学习领域的知名学者,对深度学习领域有着重要贡献。他生于1985年,本科和硕士阶段就读于斯坦福大学,师从吴恩达。博士阶段,他跟随蒙特利尔大学的著名学者Yoshua Bengio研究机器学习,并在2…

增城网站公司电话网站开发公司的义务

随着互联网化,随着信息化的不断发展,企业IT系统的规模和复杂性也在日益增加。在这个背景下,IT统一运维平台就应用而生了。它以一种全面、集成的方式管理企业IT资源,从而提高效率、降低成本、改善服务,为企业提供更快更…

汽车租赁网站开发厦门seo关键词优化培训

来源:http://www.cnblogs.com/AllenDang/archive/2012/03/03/2378534.html 从2000年至今,也写了11年代码了,期间用过VB、Delphi、C#、C、Ruby、Python,一直在寻找一门符合自己心意和理念的语言。我很在意写代码时的手感和执行的效…

北京网站名称注册证书php作品源代码免费下载

转载自 Sentinel如何使用 简介 Sentinel 可以简单的分为 Sentinel 核心库和 Dashboard。核心库不依赖 Dashboard,但是结合 Dashboard 可以取得最好的效果。 这篇文章主要介绍 Sentinel 核心库的使用。如果希望有一个最快最直接的了解,可以参考 新手指…

php企业网站开发框架开发公司可以顾保安

导入第三方库时出现了sdk版本不兼容问题 为我们app的module所支持的sdk最低版本与依赖module的sdk最低版本不一致 把15--》16即可

网站的营销功能百姓网个人征婚

在Java中实现记录1000万用户连续7天登录的功能,可以使用Redis的Bitmap来跟踪每个用户的登录状态。以下是一个简化的Java示例,使用了Jedis库作为Redis的Java客户端。 首先,确保你已经在项目中添加了Jedis的依赖。如果你使用Maven,…

找天津网站建设公司做个网站多少钱上海门户网

C99增加了一个新特性:指定初始化器(designated initializer)。利用该特性可以初始化指定的数组元素,也可以初始化指定的结构体变量。本文主要分享:使用指定初始化器初始化数组。例如,只初始化数组中的最后一个元素。对于传统的C初…

设计网站思路如何写周村区住房和城乡建设厅网站

跟读者建立联系【研究的艺术一】这一次李沐博士给大家精读的是一本关于论文写作的书籍。这本书总共包含四个大的章节,本期视频李沐博士介绍的是第一个章节:Research,Researchers,and Readers。 0. 前言 视频开头,李沐…

哔哩哔哩官方网站首页除了dw还有什么可以做网页

🌈个人主页:聆风吟 🔥系列专栏:网络奇遇记、Cpolar杂谈 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言系统环境1. Windows 安装Elasticsearch2. 本地访问Elasticsearch3. Windows 安装…

做网站后台怎么搭建网页设计与制作模块1课后答案

TextLoader用于从文本文件加载数据。您需要指定什么是数据列、它们的类型以及在文本文件中的位置。当输入文件包含许多相同类型的列(通常打算一起使用)时,我们建议从一开始就将它们作为向量列进行加载:这样,数据的架构…

高端网站改版顾问wordpress 开启rss

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 在 QML 中,Path 是一种用于定义和描述路径的元素,通常需要和 Canvas、PathView、Shape 等元素结合一起使用,用于生成复杂的图形或动画效果。 所谓路径,是由一系列路径元素组成的集合,从起点开始,各段…

html5网站动态效果优质的外国网站

博主作为一名大模型开发算法工程师,很希望能够将所学到的以及实践中感悟到的内容梳理成为书籍。作为先导,以专栏的形式先整理内容,后续进行不断更新完善。希望能够构建起从理论到实践的全流程体系。 助力更多的人了解大模型,接触大模型,一起感受AI的魅力! 1.语言模型的历…

移动端快速建站中国商务商会官方网站

荒野大镖客2三星毛皮怎么获得?想必很多朋友都还不是很清楚吧,所以呢小编今天给大家带来的就是荒野大镖客2三星毛皮狩猎技巧分享,需要的朋友还不快进来看看?三星毛皮狩猎技巧分享猎物体型分水岭建议以狐狸类为例。(1)中型猎物[比狐…

营销型网站建设的特点阿里轻云wordpress

介绍 在Vue.js应用程序中,随着项目复杂度的增加,组件之间的数据共享和管理变得困难。为了解决这个问题,Vue.js提供了一个名为Vuex的状态管理模式。Vuex可以帮助我们更有效地组织、管理和共享应用程序的状态。 什么是Vuex? Vuex…

网站制作的基本流程做解析会员电影的网站

基于C语言的几种排序方法比较.doc基于C语言的几种排序方法比较 【摘要】文章对c语言中的冒泡排序法、选择排序法、插入排序法进行比较讨论,以试图找出最佳排序方法。 【关键词】c语言;排序方法;比较 引言 排序是计算机程序设计中的一种重要操作,其作用是…