`
java-mans
  • 浏览: 11416485 次
文章分类
社区版块
存档分类
最新评论

VSS是个不错的东西~

 
阅读更多

$/LexAly/LexAly.cpp

***************** Version 4 *****************
User: Raywill Date: 07-06-20 Time: 1:21
Checked in $/LexAly
Comment:
1.0版本完成。实现既定功能。可很好地识别C语法子集
Changes:
129 Change: int main_grammar( )
To: int main_grammar(char *filename)
134 Change: if(!(f=fopen("source2.txt","r"))){
To: if(!(f=fopen(filename,"r"))){
135 Change: printf("Fail to open source file!/n");
To: printf("Fail to open source file %s!/n",filename);
158 Change: int main_spell()
To: int main_spell(char *filename)
163 Change: if(!(f=fopen("source2.txt","r"))){
To: if(!(f=fopen(filename,"r"))){
164 Change: printf("Fail to open source file!/n");
To: printf("Fail to open source file %s!/n",filename);
207 Ins:
415 Change: // main_spell();
To: if(argc <= 1 || argc >=4) {
416 Change: main_grammar();
To: printf("Usage:>LexAly [g|s] [filename]/n");
418 Ins: exit(0);
419 Ins: }
420 Ins:
421 Ins: if(argc == 3 ){
422 Ins: argv[1][0] == 'g'? main_grammar(argv[2]): main_spell(argv[2]);
423 Ins: }else if(argc == 2){
424 Ins: argv[1][0] == 'g'? main_grammar("source2.txt") : main_spell("source2.txt");
425 Ins: ;
426 Ins: }


***************** Version 3 *****************
User: Raywill Date: 07-06-19 Time: 23:00
Checked in $/LexAly
Comment:

Changes:
44 Ins: extern void grammar_check();
45 Ins:
46 Ins:
67 Change: /*
To: char input[10000] = {0};
68 Del: int wordtable[][2]=
69 Del: {
70 Del: };
71 Del: */
72 Del: char input[10000] = "for(i=0;i<10;i++){ /n /
73 Del: j=i+10; /n /
74 Del: printf(/"%d/",j); /n /
75 Del: };/n /
76 Del: ";
77 Del:
79 Del: //"if&&(int mynumber=1467;;)";
80 Del: char input2[1000] ="if(i=0){j=1;}";
92 Change: char *strstart;
To: char *strstart; //用于辅助识别num,id
89 Ins: char* getlinestring(int line,char *in_buf);
90 Ins: int nextline();
91 Ins: int getline();
92 Ins: int getcurrentpos();
93 Ins:
94 Ins:
95 Ins: int nextline() { return ++current_line; }
96 Ins: int getline() { return current_line; }
97 Ins: int getcurrentpos() { return (int)instr; }
99 Change: extern void grammar_check();
To: char* getlinestring(int line,char *in_buf)
100 Ins: {
101 Ins: char * t = input;
102 Ins: int i = 1;
103 Ins:
104 Ins: while(*t != 0 && i < line ){
105 Ins: if( *t=='/n' ) i++;
106 Ins: t++;
107 Ins: }
108 Ins:
109 Ins: int len = 0;
110 Ins: while ( *t != '/n' ){
111 Ins: in_buf[len] = *t;
112 Ins: len++;
113 Ins: t++;
114 Ins: }
115 Ins: in_buf[len] = 0;
116 Ins: return in_buf;
117 Ins:
118 Ins: }
119 Ins:
120 Ins: void error(char *cur)
121 Ins: {
122 Ins: printf("Spell Error found at line %d /n",getline());
123 Ins: exit(0);
124 Ins:
125 Ins: }
126 Ins:
127 Ins:
128 Ins: //语法分析
129 Ins: int main_grammar( )
130 Ins: {
131 Ins: int i;
132 Ins:
133 Ins: FILE *f;
134 Ins: if(!(f=fopen("source2.txt","r"))){
135 Ins: printf("Fail to open source file!/n");
136 Ins: exit(0);
137 Ins: }
138 Ins: int k=0;
139 Ins: char c;
140 Ins: while((c=fgetc(f))!=EOF)
141 Ins: {
142 Ins: input[k]=c;
143 Ins: k++;
144 Ins: }
145 Ins: input[k] = 0;
146 Ins:
147 Ins: //打印出程序
148 Ins: printf("%s/n",start_of_instr);
149 Ins:
150 Ins: //开始语法检查
151 Ins: grammar_check();
153 Ins: printf("Success!/n");
154 Ins: return 0;
155 Ins: }
102 Change: int main(int argc, char* argv[])
To: // 词法分析
158 Ins: int main_spell()
126 Del: grammar_check();
128 Del: /*
146 Change: */
To:
149 Del: int nextline()
150 Del: {
151 Del: return ++current_line;
152 Del: }
153 Del:
154 Del: int getline()
155 Del: {
156 Del: return current_line;
157 Del: }
159 Del: int getcurrentpos()
160 Del: {
161 Del: return (int)instr;
162 Del: }
163 Del:
167 Change:
To: #if 0
180 Change:
To: #endif
185 Del:
186 Del:
300 Change: instr++;
To: if( instr[1] == '/' ){ // ‘//’形式的注释
301 Change: return '/';
To: instr += 2;
340 Ins: while( *(instr) != 10 && *(instr) != 0 )
341 Ins: instr ++;
342 Ins: // instr ++;
343 Ins: }else{ // 除号'/'
344 Ins: instr++;
345 Ins: return '/';
346 Ins: }
347 Ins: break;
367 Change: void error(char *cur)
To: int main(int argc, char* argv[])
369 Change: printf("Error found at %d /n",cur-start_of_instr);
To: // main_spell();
370 Change: exit(0);
To: main_grammar();
371 Change:
To: return 0;
372 Change: } To: }


***************** Version 2 *****************
User: Raywill Date: 07-06-19 Time: 21:43
Checked in $/LexAly
Comment:
加入了while语句,空语句的判断
Changes:
3 Change:
To:
36 Del: for(i=0;i<10;i++){
37 Del: $$j=i+10;
38 Del: $$$$$$$$printf("%d",j);
39 Del: $$$$$};
40 Del: $$$$$$$$$
41 Del: '$'就是那些诡异字符
95 Change: int current_line = 0;
To: int current_line = 1;


***************** Version 1 *****************
User: Raywill Date: 07-06-19 Time: 21:16
Created LexAly.cpp
Comment:
词法语法基本完成。后期完善工作中

分享到:
评论

相关推荐

    Visual SourceSafe-vss6.0

    vss是一个源代码控制系统,可以保存文件的不同版本,可以比较文件的差别,可以控制不同的人对同一文件的修改。 Windows平台下使用VSS开发的典型环境是基于C/S架构的 。 并非仅仅使用VSS管理源代码,用VSS管理所有...

    这是一有关VSS的东东

    这是一个有关VSS的东西,里面说了一些注意事项

    VSS使用手册.doc

    VSS使用手册 word文档,里面详细介绍了关于VSS的使用方法,都是一些非常常用的操作方法。 值得收藏。很好的东西。

    vss配色方案08版

    vs08 配色方案 其中包括7款适合长时间开发使用的配色方案,对于保护眼睛延缓视疲劳很有帮助。好东西大家分享!!

    Windows 下配置 CVS 服务器

    前两天因为一个项目用PHP的,又想到了Eclipse有个PDT的,就去下了个已经配置好的开发PHP的Eclipse IDE,然后想要弄个代码版本控制工具,就想到了CVS这个开源界鼎鼎有名的东西,立马上网去搜,找到了for Windows的...

    我写的一个电子表格控件

    本人作了16年软件 ,想退出了,这个东西贡献出来,但愿对后来的朋友有所帮助。 可能有不尽人意的地方,但对于软件公司或个人来讲,放在软件中做打印输出,绰绰有余了。 我还会陆续公布一些自己写的控件 。 这是2010...

    我写的TreeGrid源代码 TreeGrid 网格树录入显示打印 C# 折线图

    本人作了16年软件 ,想退出了,这个东西贡献出来,但愿对后来的朋友有所帮助。 可能有不尽人意的地方,但对于软件公司或个人来讲,放在软件中做打印输出,绰绰有余了。 我还会陆续公布一些自己写的控件 。 这是2010...

    基于单片机的交通灯控制系统设计(1).doc

    2.1.1 单片机模块 AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口 ,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常 规方法进行编程,也可以在线编程...

    TortoiseSVN

    在Subversion中,每个文件可以拥有一种叫做附加属性的东西。 附加属性描述了该文件所拥有的一些特性。 Subversion已经预定义了一些附加属性 (这里只是指Subversion已经定义了一些附加属性的“名称”, 并不是...

    2011最新SliverLight实现DeepZoom Cool效果(运行+源码)SliverLight+Vs2008 Sp1

    要求的装的东西比较多。一定要按步骤来下载和安装 SETP1 1.安装VSS2008 2.升级为SP1补丁 3.安装ASP.NET FRAMEWORK3.5 SETP2 1.安装 Silverlight 2 浏览器插件 网上找找有 如果有安装其它版本的,要先卸载,一定要先...

    java编程.数据库.j2ee架构与模式等电子书整合(2)

    东西有点乱.但希望对大家有帮助 (压缩包共2个) 2包 1.编程学习 2.病毒日志 3.apache-ant 4.apache-tomcat 5.数据库 6.web技术 7.java编程 8.基础知识 9.网络技术 10.apache-struts 11.j2ee架构与模式 12.Log4j 13....

    完整批处理 配置自动优化电脑 优化系统服务

    ::com+Event system -一些 COM+ 软件需要,检查你的 c:\program files\ComPlus Applications 目录,没东西可以把这个服务关闭. sc stop eventsystem sc config eventsystem start= disabled ::...

    程序员实习报告.doc

    比起VSS,MVC ,QA,CMMI,我对JAVA,JSP,XML的一窍不通根本不值一提.大家都不想输在"起点",所以都默 契地在加班,这样一直持续了实习的两个月. 刚来的时候"始业教育"显得慢吞吞,我们还经常盘算去哪哪玩之类的.我和FLYSK Y...

    FinalBuilder Server 7.0.0.317 crack,完美破解

    finalbuilder对比teamcity,CruiseControl.NET等东西,他们简直是菜鸟。。。 1)支持自动获取源代码,根据work item获取源代码,TFS集成 2)支持多种语言,C,C++,JAVA,C#等语言,TFS,VSS,SVN等源代码管理环境 3)...

    SourceSafe资源

    另一个讲解版本控制的,这个是微软的东西,大家了解一下

    cliwrangler:用于通过 CLI 与 Cisco 交换机和其他网络设备交互的 Python 库

    CLIWrangler 是一个 python 库,它渴望完成从 SSH 会话向网络设备发送命令和接收输出所需的所有脏工作。 对于初学者,我希望它至少可以与以下类型的设备一起使用: 思科IOS 思科 ASA 和 FWSM 思科 IOS XE Cisco...

    VISIO WEB页面设计布局

    有手工效果形状。 是老外设计的一个形状库。非常实用,好用。 希望你喜欢。 其中writeframe非常可爱。 画出东西来逗死了。 很娱很乐。

    c语言编写单片机技巧

    而汇编语言,一条指令就对应一个机器码,每一步执行什幺动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在单片机开发中,我们还是建议采用汇编语言比较好。 如果对单片机C语言有...

    在LCD上显示传感器值-电路方案

    我一直在与Arduino进行修补一段时间,主要是使用LED和东西,最后买了我的第一块LCD并决定用一个工作正常的传感器对其进行测试,但是我发现很少有项目显示使用多个传感器,所以我决定建立这个。 该项目使用2个电位计...

    Arduino超声波避障、测速智能车制作(源代码、库文件)-电路方案

    学习Arduino有段时间了,也看了很多东西,所以打算最近做了一辆3轮的智能车。 Arduino智能车制作配件 3轮小车底盘(能安装UNO、带其他配件) 1块 UNO控制板 1块 Arduino电机驱动 1块 UNO扩展板 1块 7.4V充电锂电池...

Global site tag (gtag.js) - Google Analytics