
词法分析程序是编译原理中的一个组成部分。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
为了增强 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();用来 判断符号双引号 以及 void isStringElement(); 该函数验证字符串合法性,其 ASCII 码值为32,33,35-126的任意一个整数。同时提供了以下辅助函数:
* void catToken() ; 该函数负责将当前读取的 ch 字节与 token 数组中的字符串连接。
* void retract() ; 该函数将读取的指针回退一位。
* void reserve() ; 该函数用于保留关键字。
* void lexical_error() ; 该函数处理词法错误的情况。
全部评论 (0)


