词法分析器CC.doc

词法分析器 C C ? 词法分析(1)---词法分析的有关概念以及转换图 词法分析是编译的第一个阶段,前面简介中也谈到过词法分析器的任务就是: 字符流--词法记号流 这里词法分析和语法分析会交错进行,也就是说,词法分析器不会读取所有的词法记号再使用语法分析器来处理,通常情况下,每取一个词法记号,就送入语法分析器进行分析,图解: 词法分析器是编译器中与源程序直接接触的部分,因此词法分析器可以做诸如 1).去掉注释,自动生成文档(c#中的///注释) 2).提供错误位置(可以通过记录行号来提供),当字符流变成词法记号流以后,就没有了行的概念 3).完成预处理,比如宏定义 1.词法记号,词法单元(lexeme),模式 模式是一种规则 每个词法单元都有一个特定记号 比如int a=3,这里int,a,=,3都是词法单元,每个词法单元都属于某个词法记号,比如3就是num这个词法记号的一个词法单元,而模式规定了什么样的字符串的词法记号是什么样的(模式是一种规则) 某一特定模式规定了某个词法记号下的一类词法单元,比如: 模式:用字母开头的包含字母和数字的串 上面模式的词法记号:id(所有符合上面模式的字符串的记号都是id) 词法单元:a123或者aabc等 词法记号举例(简称为记号): 1)每个的关键字都有属于自己的一个记号,比如关键字for,它可以使用记号for;关键字int,可以使用记号in

文档评论(0)

1亿VIP精品文档

相关文档