易截截图软件、单文件、免安装、纯绿色、仅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)
提供文件打开测试和显示功能
主方法提供了文件打开,设置


相关文档:

C/C++ 文件读写操作总结

 C/C++ 文件读写操作总结
在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是:
 
1、基于C的文件操作;
2、基于C++的文件操作;
3、基于WINAPI的文件操作;
4、基于BCB库的文件操作;
5、特殊文件的操作。
壹 ......

Python扩展和嵌入

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

C/C++笔试题(1)

试题1:
Code
Void test1()
{
    char string[10];
    char* str1="0123456789";
    strcpy(string, str1);
}
试题2:
Code
Void test2()
{
    char string[10], str1[10];
 & ......

Linux下 c 判断一个文件是否存在

#include <stdio.h>
#include <unistd.h>
#define FOO "foo"
int main(void)
{
if(!access(FOO, F_OK))
{
if(!unlink(FOO))
{

}
else
{
printf("remove %s failed\n", FOO);
}
}
else
{
printf("%s not existed\ ......

ODBC C编程访问数据库

 新建一个Win32 Application,并在相应文件夹下新建一个book.mdb, 里面有一个表BookInfo,表中有以下几例:
id:
BookName:
Author:
等;
//------------------------------------------------------------------------------
// Copyright (c) 2009 eryar All rights reserved.
//
// File : Main.cpp
// ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号