1
课程设计题目名称:课程设计题目名称:语法高亮转换软件
2课程设计任务目的与任务
目的:通过此次课程设计更深一步了解此法分析培养解决工程问题的能力,例如方案的制定了解设计和实现一个实际高级语言编译器所面临的各种问题及其复杂程度。主要任务:输入:cpp源代码文件,后缀为cpp的文件;输出:网页文件,后缀为html文件;实现功能:cpp源代码转换成网页文件,将在浏览器中打开网页文件时,网页中显示C源代码并以高亮语法表示显示。
3设计思想和实现方法
设计思想:设计思想:词法分析程序完成从输入文件中读取字符形式的高级语言源程序,并把输入
转化为一个由单词符号组成的流。构造词法分析器的一种简单办法是用状态转化图来描述源语言词法记号流,然后手工把这种状态转换图翻译成为识别记号的程序。用这种方法可以产生高效的词法分析器。
实现方法:实现方法:用C语言编写一个词法分析器使之能识别输入串并把分析结果单词符号
标识符关键字等等输出输入源程序输入单词符号本词法分析器可以辨别关键字标识符常数运算符号和某些界符运用了文件读入来获取源程序代码再对该源程序代码进行词法分析这就是词法分析器的基本功能当词法分析器调用预处理子程序处理出一串输入字符放进扫描缓冲区之后分析器就从此缓冲区中逐一识别单词符号当缓冲区里的字符串被处理完之后它又调用预处理子程序来处理新串
4程序说明:程序说明:
程序一开始要求读入一个代码文件接着把读入的源程序打印出来然后进行词法分析,程序定义两个数组keyword60和cha31,前者用来存放关键字,后者用来存放中断字符。从文件中读入字符,cha31与中的中断字符相比较。判断读入的是否为中断字符,如果不是继续读入字符;如果是中断字符,将前面读入的字符放入到一个字符串当中,
f将此字符串与keyword60中存放的关键字比较,如是关键字则做相应处理即着色;如果不是关键字不作处理。
程序流程图:
5程序运行结果
examplecpp文件中的内容:examplecppi
cludeiostreamdefi
epi31415usi
g
amespacestdi
tmai
i
t
0floata1234charchacout