《编译原理PL词法分析程序》是一段介绍如何使用编程技术来解析和处理计算机语言中的基本符号和结构的教学内容。它主要讲解了在编译器中实现词法分析的具体方法和技术,帮助学习者理解源代码是如何被分解成一个个有意义的词汇单元,并为后续语法分析提供基础。
在PL\0编译器设计的词法分析程序中可以内嵌以下函数:
- `void clearToken();` // 清空token字符数组
- `int isSpace();` // 空格判断
- `int isNewline();` // 换行符判断
- `int isTab();` // Tab键判断
- `int isLetter();` // 字母判断
- `int isDigit();` // 数字判断
- `int isColon();` // 冒号 : 判断
- `int isComma();` // 逗号 , 判断
- `int isSemi();` // 分号 ; 判断
- `int isEqu();` // 等号 = 判断
- `int isPlus();` // 加号 + 判断
- `int isMinus();` // 减号 - 判断
- `int isDivi();` // 除号 / 判断
- `int isStar();` // 乘号 * 判断
- `int isLpar();` // 左括号 (判断
- `int isRpar();` // 右括号 )判断
- `int isLbrack();` // 左中括号 [判断
- `int isRbrack();` // 右中括号 ]判断
- `int isLbrace();` // 左大括号 { 判断
- `int isRbrace();` // 右大括号 } 判断
- `int isLss();` // 小于符号 < 判断
- `int isGre();` // 大于符号 > 判断
- `int isPeriod();` // 点号 .判断
- `int isQmark();` // 单引号 判断
- `int isDqmark();` // 双引号 判断
- `int isStringElement();` // 字符串合法字符,ASCII码值为32,33,35-126的判断
此外还有:
- `void catToken();` // 每次调用前把当前ch中的字符与token字符数组中的字符串联结
- `void retract();` // 将读取到的字符指针后退一个位置
- `void reserve();` // 保留字处理函数
- `void lexical_error();` // 错误处理过程