易截截图软件、单文件、免安装、纯绿色、仅160KB

使用Python语言设计基于HTML的C语言语法加亮显示程序

2005-2006学年第1学期
编 译 原 理 
课 程 设 计 报 告
班级   02计(二)   
学号     19     
姓名     刘晓明     
成绩           
指导教师   卢朝辉   
一、   设计目的
加深对编译原理的进一步认识,加强实践动手能力和程序的开发能力培养,提高分析问题和解决问题的能力。
二、   设计任务
1.单词识别
C语言常数
C语言标识符
2.程序的文本处理
将C语言的所有注释字母大写
将C语言的所有保留字大写
3.递归下降分析
三、   设计过程
1.总体设计
通过读入C语言源文件之后生成相关的词法分析,并输出成经过词法加亮的HTML文件用于显示。另外输出单词符号表。生成的HTML文件的文件名为out.html,单词符号表文件为token.txt。
运行方法为:进入dist文件夹运行main *.c。这里的*替换为C语言文件名,后缀名为C,但是也可以使用其他后缀名。使用默认设置的启动请直接双击dist目录下run.bat文件,默认分析sample.c文件。
程序分为三个模块:HTML模块负责提供HTML文件生成相关的细节;wordfix模块提供词法分析的步骤;main模块提供了文件I/O和程序总体控制。
2.HTML.py
实现了HTML文件的相关细节。包含以下函数:
writehead()
用于生成HTML文件头
writeline(line)
用于输出一些数据到HTML文件并加入两种换行,分别实现HTML源文件和HTML显示格式的换行
writeident(line)
输出标识符到HTML文件
writekeyword(line)
输出关键字到HTML文件
writecomment(line)
输出注释和预处理串到HTML文件
writeconst(line)
输出常数和字符串等常量到HTML文件
writeoper(line)
输出算符和界符到HTML文件
writetail(line)
输出HTML文件的结尾并关闭HTML文件
fixmark(instr)
由于浏览器无法显示一些特殊字符,只能事先在HTML文件中转换成其他字符串,fixmark函数提供这种转换。需要转换的字符包括几种空白和&、"、>、<等。
HTML模块最后提供了单元测试用的主方法。模块只有一个成员outfile用于全局的存储输出HTML的文件句柄。
3.main.py
提供了程序启动和文件I/O的操作。包括以下函数:
openfile(filename)
在具备错误处理的情况下打开文件的服务,打开成功则返回文件句柄,失败则返回False
showfile(filename)
提供文件打开测试和显示功能
主方法提供了文件打开,设置


相关文档:

Keil C中用unsigned long要注意的问题

 Keil C里用到了unsigned long长整型变量,编译时都能通过,但运行时老是溢出,同伙百度到了此贴,解决了问题,于是转帖于此:
今天调试一个乘法,出了点问题,先看代码示意:
void test(void)
{
       unsigned long mid1,mid2,mid3;
       mid1 ......

linux下C语言多线程编程实例


兰大论坛上的一个帖子~~
学东西,往往实例才是最让人感兴趣的,老是学基础理论,不动手,感觉没有成就感,呵呵。
下面先来一个实例。我们通过创建两个线程来实现对一个数的递加。
或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。
下面是我们的代码:
/*thread_example.c : c ......

Python扩展和嵌入

1.Python的扩展
Python扩展是指运用其他语言编写某些功能模块,供Python程序调用,常用的有Python的C扩展和C++扩展。Python扩展的目的主要有两个:一是为了功能需要,另外一个原因是为了性能需要。下面介绍一下在不运用工具的情况下,运用C和C++语言对Python进行扩展的步骤。
扩展的第一步是用C或C++创建一个源程序,然后 ......

MySQL与C/C++接口应用学习

 ---- 在数据库的应用开发中,常常会遇到性能和代价的之间矛盾。以作者在开发股市行
情查询和交易系统中遇到的问题为例,要在实时记录1000多只股票每分钟更新一次的行
情数据的同时,响应大量并发用户的数据查询请求。考虑到性价比和易维护性,系统又
要求在基于PC服务器,Windows NT平台的软硬件环境下实现。开 ......

几种出色的C/C++ GUI函数库的介绍

 
QT
http://www.trolltech.com
http://www.qiliang.net/qt.html
Qt是Trolltech公司的一个多平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且允许真正地组件编程。自从1996年早些时候,Qt进入商业领域,它已经成为全世界范 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号