我自己的实现方法的核心过程:首先用一个非终结符代表所有要检查的程序代码,然后根据文法将这个整体的符号不断展开,以拼凑成按检查的程序的顺序排列的终结符序列,能成功说明语法正确,否则有错误. 关键词:分词:First集:Select集: 目前还存在的问题: 1.因为同一个非终结符->终结符的转化可能有多种解释,所以目前我的非终结符展开这里是用递归写的,因此不能定位具体错在哪里. 2.int a={1,2};int a[2]={1,'b'};这种该出错的地方不会出错.这个比较致命,但目前还没想好怎么解…
一个简单的AMD模块加载器 参考 https://github.com/JsAaron/NodeJs-Demo/tree/master/require PS Aaron大大的比我的完整 PS 这不是一个通用的模块加载器, 实际上只是require define 函数的实现 所以每个模块的js都要引入到html文件中 如何防止变量冲突呢? 实际上就是用函数把他们包起来 (function(exp){ var mod = { name:'modA' }; exp[mod.name] = mod; }…
上篇文章分析了一个封装DirectShow各种接口的封装类(CDXGraph):一个简单的基于 DirectShow 的播放器  1(封装类) 本文继续上篇文章,分析一下调用这个封装类(CDXGraph)的对话框类(CSimplePlayerDlg),看看在MFC中如何使用这个类(CDXGraph). 首先来看看CSimplePlayerDlg这个类的定义,瞧瞧SimplePlayerDlg.h这个头文件. /* 雷霄骅 * 中国传媒大学/数字电视技术 * leixiaohua1020@126.…
DirectShow最主要的功能就是播放视频,在这里介绍一个简单的基于DirectShow的播放器的例子,是用MFC做的,今后有机会可以基于该播放器开发更复杂的播放器软件. 注:该例子取自于<DirectShow开发指南> 首先看一眼最终结果,如图所示,播放器包含了:打开,播放,暂停,停止等功能.该图显示正在播放周杰伦的<听妈妈的话>. 迅速进入主题,看一看工程是由哪些文件组成的,如下图所示 从上图可以看出,该工程最重要的cpp文件有两个:SimplePlayerDlg.cpp和C…
最近在学习汇编(看的是王爽老师的<汇编语言(第三版)>),然后想尝试使用OD(Ollydbg)软件破解一个简单的C语言程序练练手. 环境: C语言编译环境:VC++6.0 系统:在Windows10下开的VM虚拟机中的Windows XP C语言程序代码: #include <STDIO.H> int main(){ int age; age=; ){ printf("Successful\n"); }else{ printf("No Access\n…
上一篇我们讲了如何建立一个简单的Roslyn分析项目如分析检查我们的代码. 今天我们主要介绍各个项目中具体的作用以及可视化分析工具. 还是这种截图,可以看到解决方案下一共有三个项目. Analyzer1 : 这是比较核心的模块,主要包括两块内容,代码问题的诊断(diagnostics )和代码问题的修复(fix),该项目编译后会生成一个analyzer DLL文件.当然,同时也会生成一个NuGet package. Analyzer1.Vsix: 这是一个扩展插件,会把第一个项目生成的analy…
C Primer Plus之一个简单的C语言程序(详解) #include <stdio.h> int main(void) //一个简单的 C程序 { int num; //定义一个名为 num 的变量 num = ; //为num赋一个值 printf("我是一个简单的"); //使用 printf() 函数 printf("计算机.\n"); printf("我最喜欢的号码是 %d 因为它是第一个.\n",num); ; } #…
OK, 废话不多说,这些天在写C#代码时突然对于IDE提示有了一些想法,之前也有了解过,不过并没有深入. 先看个截图: 一段再简单不过的代码了,大家注意看到 count 字段下面的绿色波浪线了吗,我们通常为理解一个 warning ,鼠标移上去: 提示“声明了该字段但没有使用过” 当然,这对项目代码编译没有什么影响.不过,我想了一下,如果我们可以重写IDE的编译器,把我们的一些规则写进去,对于团队 的代码review其实是很高效的一件事情.我们通常的代码review会有滞后,都是通过提交PR或代…
转自:http://blog.csdn.net/chenzhongjing/article/details/9188347 下载地址: http://sourceforge.net/projects/cjson/files/?source=navbar 实例1: 创建一个简单的学生信息数组 cJSON* pRoot = cJSON_CreateObject(); cJSON* pArray = cJSON_CreateArray(); cJSON_AddItemToObject(pRoot, "…
今天写一个简单的倒计时函数 代码如下: #include<stdio.h> #include<windows.h> int main() { int i; printf("倒计时\n"); ;i >= ;i--) { printf("%5d\b\b\b\b\b", i); Sleep(); } printf("\n"); }…