词法单元示例 词法单元 非正式描述 词素示例 if 字符i,f if Ise 字符e,1,s,e else comparison<或>或<=或>=或==或!= 字母开头的字母/数字串 Pi, score, D2 number 任何数字常量 3.14159,0,6.02e23 literal 在两个"之间,除"以外的任何字符“ core dumped 图3-2词法单元的例子 printf("Total=8 dn",sclore)
词法单元示例
词法单元的属性 个模式匹配多个词素时,必须通过属性来传递附加 的信息。属性值将被用于语义分析、代码生成等阶段。 ●不同的目的需要不同的属性。因此,属性值通常是 个结构化数据 ●词法单元id的属性 ●词素、类型、第一次出现的位置
词法单元的属性 一个模式匹配多个词素时,必须通过属性来传递附加 的信息。属性值将被用于语义分析、代码生成等阶段。 不同的目的需要不同的属性。因此,属性值通常是一 个结构化数据。 词法单元id的属性 词素、类型、第一次出现的位置、…
词法单元示例(名和属性值) E=M*C**2 <id,指向符号表中E的条目的指针> <assign_op> <id,指向符号表中M的条目的指针> <mult_op> <id,指向符号表中C的条目的指针> <exp_op> < number,整数值2>
词法单元示例(名和属性值)
词法分析器的构造实现 两种方法: ●基于词法单元的词法结构图或其它描述,手工编写代码 扫描输入中的每个词素,并返回识别到的词法单元信息。 使用词法分析器生成工具(如 llex flex)。给出描述词素 的模式,利用工具编译为具有词法分析器功能的代码。 高效且简单 正则表达式 种描述词素模式的重要表示方法
词法分析器的构造实现 两种方法: 基于词法单元的词法结构图或其它描述,手工编写代码 扫描输入中的每个词素,并返回识别到的词法单元信息。 使用词法分析器生成工具(如lex flex)。给出描述词素 的模式,利用工具编译为具有词法分析器功能的代码。 高效且简单。 正则表达式 一种描述词素模式的重要表示方法
Outline 词法分析的作用 词法单元的规约(正则表达式) 词法单元的识别(状态转换图) ●有穷自动机 词法分析器生成工具及设计
Outline 词法分析的作用 词法单元的规约(正则表达式) 词法单元的识别(状态转换图) 有穷自动机 词法分析器生成工具及设计