语法分析器java实现,包含词法分析器。
程序代码作为词法分析器的输入,词法分析器的输出作为语法分析器的输入,由语法分析器输出语法分析的结果。
2024/4/24 22:07:17 43KB 语法分析器 编译原理 Java
1
屌爆的纯HTML5拓扑图编辑器源代码,找了很久终于申请到,运行就是这个效果http://www.hightopo.com/blog/wp-content/uploads/2014/08/Screen-Shot-2014-08-12-at-8.57.11-PM.png可参考这篇博客http://www.cnblogs.com/xhload3d/p/3909026.html,好强大的HTML5拓扑图编辑器,不敢私有,0资源分分享给大家,我是做电力SCADA要编辑电力配网图的,但申请看描述该图形组件也能应用到电信、工控等其他需要图形可视化的领域,以前一直用C++做客户端,今天玩了下JavaScript发现真的很灵活,虽然我这菜鸟还得再适应适应这么灵活的js语法
2024/4/19 9:39:14 295KB HTML5 拓扑图 编辑器
1
java编程含有界面以及完整代码〈程序〉→main()〈语句块〉〈语句块〉→{〈语句串〉}〈语句串〉→〈语句〉;
〈语句串〉|〈语句〉;
〈语句〉→〈赋值语句〉|〈条件语句〉|〈循环语句〉〈赋值语句〉→ID=〈表达式〉;〈条件语句〉→if〈条件〉〈语句块〉〈循环语句〉→while〈条件〉〈语句块〉〈条件〉→(〈表达式〉〈关系符〉〈表达式〉)〈表达式〉→〈表达式〉〈运算符〉〈表达式〉|(〈表达式〉)|ID|NUM〈运算符〉→+|-|*|/〈关系符〉→<|<=|>|>=|=|!>word.wordList包(存储了关键字):word:此类是定义了存储关键字的结构:包括String型的关键字,和int型的识别符。
wordList:此类存储了29个关键字,在构造函数中初始化。
2、word包(进行词法分析)中:basicFunction:此类定义了做词法分析的基本函数:GetChar()将下一输入字符读到ch中,搜索知识器前移一个字符位置GetBC();
检查ch中的字符是否为空白。
若是,则调用GetChar直至不是字符为止Concat();
将ch中的字符连接到strToken之后IsLetter();
判断ch中的字符是否为字母IsDigit();
判断ch中的字符是否为数字Reserve();
对strToken中的字符创查找保留字表,若是则返回它的编码,否则返回0Retract();
将搜索指示器回调一个字符位置RetractStr();
将strToken置空lexAnalysis:此类是用来进行词法分析,将分析后的单词存入word数组中,(注:在词法分析中,若是一串字母,则认为是ID,若是数字,则认为是NUM。
存储的时候识别符分别存ID与NUM的识别符,但是内容仍然是自己的内容)其中的wordAnalysis函数就是词法分析函数(具体实现请看后面的重要函数分析)3、stack包(定义栈)中:栈是通过链表来定义的,因此StringListElement:次类定义了链表的每一个节点StringStrack:此类定义了栈,其中有长度属性,有函数:Top();用来取得栈顶Push();
压栈Pop();
出栈4、sentence包(语法分析)中:juzi:定义了文法的句子的结构:key(左边部分)content[](右边推出的部分)lo(长度)grammar:存储了文法的27个关系式AnalysisFB:定义了分析表的存储结构AnalysisF:存储分析表SentenceAnalysis:语法分析JuProduction(wordw):此函数是用来判断在当前栈与输入串的情况下,用哪一个产生式,返回产生式在数组中的下标 若输入串的第一个字符与栈顶字符相同则表示可以规约,则返回-1;
若不能过用产生式,则返回-2;
AnalysisBasic(wordw):此函数是分布进行语法分析,对栈操作 *根据所需要的产生式对符号栈进行操作 *返回0表示规约;
返回1表示移进;
否则表示输入串不是文法的句子5.Main包(主界面)中Main:此类定义了图形界面
2024/4/19 1:25:48 3.25MB 词法分析器及语法分析器
1
1、通过文件检索可以将固定的目录下的三种类型的图片和音乐给检索出来,然后再利用libjpeg库和libpng库来对jpeg图片和png图片进行解码,再通过直接操作framebuffer来将图片显示在LCD屏上,还可以使用触摸屏来切换图片。
而播放音乐就要移植madplay库并使用当中的命令来播放音乐,也可以使用触摸屏来切换音乐。
2、拍照功能,利用V4L2来实现采集一帧的图像并把它显示在LCD屏上。
3、语言交互功能,首先在客户端实现录音功能,并将录制的音频数据通过socket传输到服务端中,服务端就先进行语法构建然后再进行语法识别,最后将识别的结果保存在xml文件中,再通过socket将xml文件传输到客户端中,客户端再对这个文件进行解析,并得到识别的id号,然后再根据id进行相应的操作,如操作上述两个功能。
2024/4/19 1:33:43 7.37MB Linux armA8 科大讯飞 语音识别
1
1、题目:构造一个小语言的语法分析程序2、要求:(1)输入属性字文件,输出源程序是否符合语法要求的结果:正确——该程序符合语法要求。
错误——指出错误位置。
1
wxPython学习手册。
学习必备!Part1wxPython入门191.欢迎来到wxPython191.1开始wxPython201.2创建最小的空的wxPython程序201.2.1导入wxPython211.2.2使用应用程序和框架工作22子类化wxPythonapplication类23定义一个应用程序的初始化方法23创建一个应用程序实例并进入它的主事件循环231.3扩展这个最小的空的wxPython程序241.4创建最终的hello.py程序262、给你的wxPython程序一个稳固的基础282.1关于所要求的对象我们需要知道些什么?282.2如何创建和使用一个应用程序对象?292.2.1创建一个wx.App的子类29何时省略wx.App的子类302.2.2理解应用程序对象的生命周期312.3如何定向wxPython程序的输出?312.3.1重定向输出322.3.2修改默认的重定向行为342.4如何关闭wxPython应用程序?342.4.1管理正常的关闭352.4.2管理紧急关闭352.5如何创建和使用顶级窗口对象?362.5.1使用wx.Frame362/5652.5.2使用wxPython的ID37明确地选择ID号38使用全局性的NewID()函数382.5.3使用wx.Size和wx.Point382.5.4使用wx.Frame的样式392.6如何为一个框架增加对象和子窗口?412.6.1给框架增加窗口部件422.6.2给框架增加菜单栏、工具栏和状态栏。
442.7如何使用一般的对话框?45消息对话框46文本输入对话框47从一个列表中选择472.8一些最常见的错误现象及解决方法?482.9总结493、在事件驱动环境中工作513.1要理解事件,我们需要知道哪些术语?513.2什么是事件驱动编程?523.2.1编写事件处理器543.2.2设计事件驱动程序553.2.3事件触发553.3如何将事件绑定到处理器?563.3.1使用wx.EvtHandler的方法工作573.4wxPython是如何处理事件的?613.4.1理解事件处理过程62第一步,创建事件64第二步,确定事件对象是否被允许处理事件。
64第三步定位绑定器对象653/565第四步决定是否继续处理66第五步决定是否展开673.4.2使用Skip()方法683.5在应用程序对象中还包含哪些其它的属性?703.6如何创建自己的事件?713.6.1为一个定制的窗口部件定义一个定制的事件。
71创建自定义事件的步骤:713.7总结754、用PyCrust使得wxPython更易处理764.1如何与wxPython程序交互?76PyCrust配置了标准的Pythonshell774.2PyCrust的有用特性是什么?794.2.1自动完成804.2.2调用提示和参数默认804.2.3语法高亮814.2.4Python帮助814.2.5命令重调用824.2.6剪切和粘贴834.2.7标准shell环境844.2.8动态更新854.3PyCrustnotebook的标签是干什么的?874.3.1Namespace标签874.3.2Display标签894.3.3Calltip(调用提示)标签894.3.4Session标签904.3.5Dispatcher标签904.4如何将PyCrust应用于wxPython应用程序。
924/5654.5在Py包中还有其它什么?964.5.1使用GUI程序工作974.5.2使用支持模块工作97buffer模块98crust模块100dispatcher模块100editor模块102filling模块102interpreter模块103introspect模块103shell模块1034.6如何在wxPython中使用Py包中的模块?1044.7本章小结1085、创建你的蓝图1095.1重构如何帮我改进我的代码?1095.1.1一个重构的例子1105.1.2开始重构1135.1.3进一步重构1145.2如何保持模型(Model)与视图(View)分离?1185.2.1MV
2024/4/18 16:35:52 3.54MB python
1
自学JavaScript基础语法笔记大全
2024/4/17 8:19:53 3.71MB javascript
1
谭浩强版c++教程,带目录,适合初学者,介绍了c++基本语法和类的使用
2024/4/12 22:09:20 157.47MB c语言 程序设计
1
欢迎来到GitHubPages您可以使用的来维护和预览Markdown文件中网站的内容。
每当您提交到该存储库时,GitHubPages都将运行从Markdown文件中的内容重建站点中的页面。
降价促销Markdown是一种轻巧且易于使用的语法,可用于样式化您的文字。
它包括以下约定Syntaxhighlightedcodeblock#Header1##Header2###Header3-Bulleted-List1.Numbered2.List**Bold**and_Italic_and`Code`text[Link](url)and![Image](src)有关更多详细信息,请参见。
吉柯主题您的Pages网站将使用您在选择的Jekyll主题的布局和样式。
该主题的名称保存在Jekyll_conf
2024/4/12 20:24:28 956KB HTML
1
Java核心技术卷I基础知识(原书第10版)JavaSE8全面更新,同时修正了第9版中的不足,系统全面讲解了Java语言的核心概念、语法、重要特性和开发方法,包含大量案例,实践性强。
2024/4/12 8:28:19 41B java核心技术 中文 第10版
1
共 947 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡