实验一:词法分析一、实验目的通过设计一个具体的词法分析程序,加深对词法分析原理的理解。
并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。
编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。
并依次输出各个单词的内部编码及单词符号自身值。
二、实验预习提示1、 词法分析器的功能和输出格式词法分析器的功能是输入源程序,输出单词符号。
词法分析器的单词符号常常表示成以下的二元式(单词种别码,单词符号的属性值)。
本实验中,采用的是一类符号对应一个种别码的方式。
2、 单词的BNF表示---_----_----_-+---_--等等3、 模块结构(见课本P95-96)(可根据自己的理解适当修改)三、实验过程和指导:(一) 准备:1. 阅读课本有关章节,明确语言的语法,写出基本保留字、标识符、常数、运算符、分隔符和程序例。
2. 初步编制好程序。
3. 准备好多组测试数据。
(二) 上机:(三) 程序要求:1. 要求用C++Builder或者Dephi或者VC、VB等可视化编程工具编写;
要求有界面(即一般windows下应用程序界面)。
2. 输入为某语言源代码。
程序输入/输出示例:如源程序为C语言。
输入如下一段:main(){inta,b;a=10;b=a+20;}要求输出如下(并以文件形式输出)。
(2,”main”)(5,”(“)(5,”)“)(5,”{“}(1,”int”)(2,”a”)(5,”,”)(2,”b”)(5,”;”)(2,”a”)(4,”=”)(3,”10”)(5,”;”)(2,”b”)(4,”=”)(2,”a”)(4,”+”)(3,”20”)(5,”;”)(5,”}“)注:为右大括号要求(可根据实际情况加以扩充和修改):识别保留字:if、int、for、while、do、return、break、continue等等,单词种别码为1。
其他的标识符,单词种别码为2。
常数为无符号数,单词种别码为3。
运算符包括:+、-、*、/、=、>、=、<=、!=;
单词种别码为4。
分隔符包括:“,”“;
”“(”“)”“{”“}”等等,单词种别码为5。
(四) 程序思路(仅供参考):0. 定义部分:定义常量、变量、数据结构。
1. 初始化:从文件将源程序输入到字符缓冲区中。
2. 取单词前:去掉多余空白。
调用过程GETNB();3. 提取字符组成单词,利用课本P97图4.5转换图构造单词扫描过程SCAN(),需要根据实际情况加以修改。
4. 判断单词的种别码,调用过程LOOKUP();5. 显示(导出)结果。
2024/10/19 0:44:54 433KB 编译原理 词法分析实验
1
基于c++的词法分析器。
实现了识别保留字、标识符、常量、科学计数法、识别注释、负号的识别、标识符、分隔符、和大小括号的匹配(利用出入栈)
2024/10/18 7:03:06 2KB c++
1
大家好今天教大家如何给不同位数的数字排序接下来看我操作这里有不同位数的QQ号码有7位-10位的我们筛选出来7位到8位看我操作QQ账号和密码中间有分隔符---我们这里就把分隔符弄上先把账号密码分开然后再排序账号和密码是同步的我们验证一下账号和密码是对应的然后我们保存一下从6位数到10位数以此排序我们把9位QQ号到10位QQ号都删除剩下就是6-8位QQ号然后保存一下就可以了好了筛选完成教程结束感谢大家的观看
2024/9/29 6:29:20 17.2MB 如何给不同位数的数字排序
1
用C语言实现分隔符报文的解析,例如|1|2|3|1|2|3|1|2|31|2|3|这几种模式都可以成功解析出各个域
2024/7/22 13:07:39 3KB 分隔符 报文 解析
1
vivi万能网站小偷工具_万能小偷程序2.42版_破解版(已授权修正版)只需要输入目标站地址就能全自动采集,高智能的采集程序,支持98%的单级域名站点规则制作十分简单,菜鸟也能制作采集规则,采集不求人,可通杀所有论坛网站程序-data文件夹需要读写权限-首次使用程序请到后台进行相关设置,否则出现错位、空白等现象-默认后台:http://网站地址/admin/index.php默认账号:admin默认密码:admin2.42更新如下:1.修复上版本无法保存字符串规则2.4更新如下:1.加强对中文url的支持2.增加自定义css3.增加js缓存支持4.增加导入覆盖指定规则(可避免每次更新规则的麻烦)5.修改字符串替换规则的分隔符(更容易识别)6.修改蜘蛛显示为前300条7.强化后台防保存危险代码功能简介:0.2.0版本支持POST获取、支持搜索,增加简繁体互转1.后台配置采集节点,输入目标站地址即可全自动智能转换自动全站采集2.全自动分析,自动转换图片地址,自动分析CSS内的图片使得页面风格不丢失3.可过滤屏蔽不采集指定链接,全站伪原创,全站伪静态4.采集规则支持导入导出(可分享你的采集规则或导入其他人分享的采集规则)5.多条采集规则一键切换6.内置强大替换和过滤功能,标签过滤、站内外过滤、字符串替换、等等7.自动缓存自动更新,可设置缓存时间达到自动更新,css缓存8.IP屏蔽功能,屏蔽想要屏蔽IP地址让它无法访问9.蜘蛛访问记录如果程序还有其他问题,可以在CSDN软件评论下给在下留言
2024/7/3 8:27:10 306KB 万能小偷程序
1
该评论语料库采集自京东商城,包含电脑评论、手机评论、图书评论、服装评论等19个不同种类的消费者评论,共有58万条评论记录。
数据文件中每条评论记录占一行,每条评论句后面给出类别标注,分隔符为"\t"。
该语料库是研究评论文本较好的训练数据集。
2024/5/11 1:12:30 41.27MB 评论语料库
1
新闻管理系统(jsp+javabean+mysql)1.解压缩(如解压缩到D: omcat4webappsROOTews目录下);2.进入classes目录,打开news.txt。
修改mysql.url(数据库联接地址及数据库名),mysql.user(用户名),mysql.password(密码),ilog(数据库联接池日志文件,请注意路径分隔符为“\”,在linux中是“/”);
3.建数据库,并将database目录下news.sql导入;
news.sql中37行中用户可修改你想要的密码,但用户名admin不能更改,否则不能实现超级管理员的功能4.运行管理文件-_-admin/index.jsp对系统进行一些基本设置(首先添加栏目)(如:http://localhost:8080/news/admin/index.jsp);5.OK!欢迎使用(如:http://localhost:8080/news/index.jsp)
1
该算法基于DFA并结合许多算法并进行相应的简化,最终其算法基本原理为:将所有敏感词库按模块聚合构建成一个词树(所谓聚合,就是将相同字开头的部分进行聚合,以减少对词的查询范围,相当于建立敏感词索引,如:他奶奶的、他妈的、他娘的,这三个词,聚合构建成词树时,“他”字就是这三个词的索引,同时每个词的结尾都有一个结束标志和该词的一些描述,如敏感级别等),然后从头到尾扫描一遍目标文本,当遇到以敏感词树中的索引的字时,查看后面的文本是否构成敏感词(如果这里有以这个敏感词开头的更长的敏感词时,以更长的为匹配结果,并判断该词在文本中前后是否有分隔符来区别其匹配方式),如果是则记录,一遍扫描完之后所有敏感词即被扫描出来了!
2024/3/11 17:54:55 112KB 敏感词过滤
1
内容来自互联网,如有侵权通知后删除sqluldr2是一款Oracle数据快速导出工具,包含32、64位程序,sqluldr2在大数据量导出方面速度超快,能导出亿级数据为excel文件,另外它的导入速度也是非常快速,功能是将数据以TXT/CSV等格式导出,有需要的赶快下载吧!oracle数据导出工具sqluldr2基本简介  下载完sqluldr解压后,文件夹内容如下:  sqluldr2.exe用于32位windows平台;
  sqluldr2_linux32_10204.bin适用于linux32位操作系统;
  sqluldr2_linux64_10204.bin适用于linux64位操作系统;
  sqluldr264.exe用于64位windows平台。
使用方法  1、首先将sqluldr2.exe复制到执行目录下,即可开始使用  2、查看help帮助sqluldr2官方下载  3、执行数据导出命令  3.1、常规导出  sqluldr2test/test@127.0.1.1/orclquery="select*fromtemp_001"head=yesfile=d:\tmp001.csv  说明:head=yes表示输出表头oracle数据导出工具sqluldr2  3.2、使用sql参数  sqluldr2test/test@127.0.1.1/orclsql=test_sql.sqlhead=yesfile=d:\tmp001.csv  test_sql的内容为:  select*fromtemp_001sqluldr2官方下载  3.3、使用log参数  当集成sqluldr2在脚本中时,就希望屏蔽上不输出这些信息,但又希望这些信息能保留,这时可以用“LOG”选项来指定日志文件名。
  sqluldr2test/test@127.0.1.1/orclsql=test_sql.sqlhead=yesfile=d:\tmp001.csvlog=+d:\tmp001.logoracle数据导出工具sqluldr2  3.4、使用table参数  当使用table参数时,在目录下会生成对应的ctl控制文件,如下语句会生成temp_001_sqlldr.ctl文件。
  sqluldr2test/test@127.0.1.1/orclquery="select*fromtemp_001"table=temp_001head=yesfile=d:\tmp001.csvsqluldr2官方下载  生成的控制文件temp_001_sqlldr.ctl的内容如下:oracle数据导出工具sqluldr2  4、主要参数说明  Field分隔符指定字段分隔符,默认为逗号  record分隔符指定记录分隔符,默认为回车换行,Windows下的换行  quote引号符指定非数字字段前后的引号符  例如现在要改变默认的字段分隔符,用“#”来分隔记录,导出的命令如下所示:  sqluldr2test/testsql=tmp.sqlfield=#  在指定分隔符时,可以用字符的ASCII代码(0xXX,大写的XX为16进制的ASCII码值)来指定一个字符,常用的字符的ASCII代码如下:  回车=0x0d,换行=0x0a,TAB键=0x09,|=0x7c,&=0x26,双引号=0x22,单引号=0x27  在选择分隔符时,一定不能选择会在字段值中出现的字符
2024/2/23 22:52:54 326KB sqluldr2
1
豆瓣图书数据,csv文件,但以#做分隔符,因为书名含有逗号,共90000多条
2024/2/13 5:32:26 9.83MB 豆瓣图书数据
1
共 41 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡