用正则式描述C语言的各种词型,借助LEX工具实现C语...

1.输入是代码文件,输出是一个个的token。这些输出之后是供语法分析器(yacc,bison什么的)用的。2.做准备的话你可以看看《c专家编程》第3章:分析c语言的声明。这个例子是一个最简单的词法+语法分析器,足够给你一些提示了。当然这还不够,你可能要找一份C语言的标准来看。3.归类无非是修饰符、类型、关键字、标识符、运算符等等了。4.在2的基础上。不难解决。5.这个很简单。就算直接文件处理也解决掉了。依稀记得lex可能更容易做这件事儿。总体来说,这事儿如果自己做可能比较费劲,用lex应该省事不少。=========================================================================上面只是凭印象说的,希望对你有帮助。等等看有没有大牛帮你完成吧。或者等我有空咱们一起研究下。
实验目的:用正则式描述C语言的各种词型,借助LEX工具实现C语言的词法分析器。思考及要求:(1) 思考生成的C语言词法分析器的输入是什么,输出是什么?其输出供谁使用,如何使用?输入:一段C语言的程序。输出:单词符号(主要是识别关键字、标识符、常数、运算符、界符,过滤注释和空白);输出在一个中间文件上,作为语法分析程序的输入继续编译过程,以便供语法分析使用。(2) 需要做哪些准备,搜集C语言的哪些材料?安装Parser Generator 2和VC++编译环境,并配置相关环境。了解C语言的关键字、标识符、各种类型的常数、运算符以及所有的界符,同时还要知道2种注释的形式。(3) 对C语言的单词进行归类;关键字:也称基本字,包括begin,end,if,else,while,write,read,do,call,const,char,double,int,float,bool,until,return,goto,switch,case,long,short,static,continue,break,daflut,void,union(后续了解到的还会继续添加);标识符:用来表示的各种名字,如常量名、变量名和过程名。(例:int a;a就属于变量名);常数:各种类型的常数,整形(123),浮点型(3.14),bool型(TRUE),字符串(”ABC”),字符(’a’)等;运算符:如+,-,*,/,<,>,==,=,%;注释和空格:注释符号(//***********//或/* */);(4) 能识别词法错误;当开头为数字的后面为字母的字符串时,是错误的标识符。 (5) 能过滤掉C语言中的两种注释; 识别// //或/* */两种注释形式(6)设计一个测试,既能体现出每一类单词的处理结果,又能体现出对词法错误的处理,同时在测试中,打印出每一个单词的处理结果; 望仁兄采纳,万分感谢!
文章标签:

本文链接:https://www.u1e.cn/baike/a/4fa3cfd37f0c7fff6f0afd56 [复制]

猜你喜欢

歇后语大全

还没有人回应过