设计思想(1)程序主体结构部分:说明部分%%规则部分%%辅助程序部分(2)主体结构的说明在这里说明部分告诉我们使用的LETTER,DIGIT,IDENT(标识符,通常定义为字母开头的字母数字串)和STR(字符串常量,通常定义为双引号括起来的一串字符)是什么意思.这部分也可以包含一些初始化代码.例如用#include来使用标准的头文件和前向说明(forward,references).这些代码应该再标记"%{"和"%}"之间;规则部分>可以包括任何你想用来分析的代码;我们这里包括了忽略所有注释中字符的功能,传送ID名称和字符串常量内容到主调函数和main函数的功能.(3)实现原理程序中先判断这个句语句中每个单元为关键字、常数、运算符、界符,对与不同的单词符号给出不同编码方式的编码,用以区分之。
PL/0语言的EBNF表示::==;::=={|};::=+|-::=*|/::==|#|=::=a|b|…|X|Y|Z::=0|1|2|…|8|9三:设计过程1.关键字:void,main,if,then,break,int,Char,float,include,for,while,printfscanf并为小写。
2."+”;”-”;”*”;”/”;”:=“;”:”;”=“;”“;”=“;”(“;”)”;”;”;”#”为运算符。
3.其他标记如字符串,表示以字母开头的标识符。
4.空格符跳过。
5.各符号对应种别码关键字分别对应1-13运算符分别对应401-418,501-513。
字符串对应100常量对应200结束符#四:举例说明目标:实现对常量的判别代码:digit[0-9]letter[A-Za-z]other_char[!-@\[-~]id({letter}|[_])({letter}|{digit}|[_])*string{({letter}|{digit}|{other_char})+}int_num{digit}+%%[|\t|\n]+"auto"|"double"|"int"|"struct"|"break"|"else"|"long"|"switch"|"case"|"enum"|"register"|"typedef"|"char"|"extern"|"return"|"union"|"const"|"float"|"short"|"unsigned"|"continue"|"for"|"signed"|"void"|"default"|"goto"|"sizeof"|"do"|"if"|"static"|"while"|"main"{Upper(yytext,yyleng);printf("%s,NULL\n",yytext);}\"([!-~])*\"{printf("CONST_string,%s\n",yytext);}-?{int_num}[.]{int_num}?([E][+|-]?{int_num})?{printf("CONST_real,%s\n",yytext);}"0x"?{int_num}{printf("CONST_int,%s\n",yytext);}","|";"|"("|")"|"{"|"}"|"["|"]"|"->"|"."|"!"|"~"|"++"|"--"|"*"|"&"|"sizeof"|"/"|"%"|"+"|"-"|">"|"="|">="|"<<="|"&="|"^="|"|="|"="{printf("%s,NULL\n",yytext);}{id}{printf("ID,%s\n",yytext);}{digit}({letter})+{printf("error1:%s\n",yytext);}%%#includeUpper(char*s,intl){inti;for(i=0;i<l;i++){s[i]=toupper(s[i])
2021/11/7 5:50:07 105KB 词法分析器制作
1
案例中数据来自MySQL数据库,对查询出来的数据缓存到redis,redis缓存工具可以将缓存string,bean,list,map等类型,代码中有详细的注释,而且还将要缓存的数据进行了序列化,大家可以自创,进而更改成自己想要的格式。
数据库配置使用了xml和propertis两种配置方式,redis缓存采用非切片和切片两种配置,大家可以自选择
2019/4/6 23:36:46 2.37MB Java MySQL redis缓存
1
基于OpenUDID的ANE,使用它可以在AIR项目中通过ActionScript接口来获得设备UDID。
凡是接触过iOS的开发者都清楚每一台iOS设备都有一个唯一的识别号:UDID,这个40位的字符串是你的设备区别于其他任何一台设备的唯一标识。
这个字符串用处非常大,我们可以把它作为用户的唯一ID,跳过用户登陆这一步,直接有效并且安全地与数据库中的用户记录进行绑定。
虽然UDID本身并不含有任何用户信息,但是由于应用开发者可以将UDID与服务器上用户信息进行绑定,从而带来了诸多隐私泄漏等问题,所以苹果最终还是拒绝开发者访问UDID的官方接口,建议开发者使用CFUUID来代替UDID。
CFUUID有很多问题,如果从一台设备将系统备份到另一个设备,两个设备就会拥有相同的CFUUID,如果从临时文件中备份系统,就会出现一个设备中出现不同的CFUUID,但是虽然如此,CFUUID还是所有UDID替代品中最靠谱的一个。
AS类OpenUDID是一个静态类,它只有一个静态属性UDID,使用方法用一行代码:varid:String=OpenUDID.UDID;
2017/4/23 23:14:45 19KB Air ios UDID
1
补充mingwc++11下部分完成(to_tring)包括wchar.hstdio.h
2020/7/7 10:25:23 12KB mingw to_string
1
json、String、map、工具之间的转换
2021/6/4 11:11:16 677B json string 面向对象编程
1
纯C#实现的从内存加载动态链接库,支持加壳的DLL,运用方便classProgram{publicdelegateInt32CompressHandle(refBytedest,refInt32len,Byte[]source,Int32sourcelen);staticvoidMain(string[]args){Byte[]source=newbyte[10000];Byte[]dest=newbyte[10000];Int32len=source.Length;Byte[]dllBin=File.ReadAllBytes("zlib1.dll");using(vardll=newDllLoader()){if(dll.LoadLibrary(dllBin)){varCompress=dll.GetProcDelegate("compress");if(Compress!=null){varresult=Compress.Invoke(refdest[0],reflen,source,len);Console.WriteLine(result);}}}}}
2021/3/4 22:31:41 1.97MB C# 内存加载DLL 动态链接库
1
封装的MyString类,实现了大部分字符串类的操作。
包括:构建,操作符重载,追加,赋值,比较,拷贝,查找,替换,交换,格式化,转换成其他常用类型,大小写切换等。
其他未实现的功能,希望各位修正后分享...
2019/11/26 6:19:22 3KB 字符串 string 开源
1
ARDUINOgm65扫码模块+string强转int举行大小比较
2021/4/25 23:15:27 523B gm65 arduino
1
一个java代码工具类的汇合,提供了常用的string,data等操作
2021/5/24 17:38:51 91KB java util
1
路线[GET]“/api/[型号称号]”Output{ status:Number, data:Array[Object]}[POST]“/api/[型号称号]”Input{ name:String}Output{ status:Number, data:Object}[PUT]“/api/[型号称号]/[id]”Input{ name:String}Output{ status:Number, data:Object}[删除]“/api/[型号称号]/[id]”Output{ status:Number, d
2016/7/2 21:48:03 31KB JavaScript
1
共 144 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡