TINY-C编译器的设计与实现-词法分析器的设计与实现

发布时间 : 星期日 文章TINY-C编译器的设计与实现-词法分析器的设计与实现更新完毕开始阅读

case '/':

currentToken = OVER; break; case '(':

currentToken = LPAREN; break; case ')':

currentToken = RPAREN; break; case ';':

currentToken = SEMI; break; default:

currentToken = ERROR; break; } } break; case INCOMMENT: save = FALSE; if (c == EOF)

{ state = DONE;

currentToken = ENDFILE; }

else if (c == '}') state = START; break; case INASSIGN: state = DONE; if (c == '=')

currentToken = ASSIGN;

28

else

/*退回到缓存中 */

ungetNextChar(); save = FALSE; currentToken = ERROR; } break;

case INNUM: if (!isdigit(c)) { /* 退回到缓存中 */ ungetNextChar(); save = FALSE; state = DONE; currentToken = NUM; }

break; case INID: if (!isalpha(c)) { /* 退回到缓存中 */ ungetNextChar(); save = FALSE; state = DONE; currentToken = ID; }

break; case DONE:

29

default:

fprintf(listing,\ state = DONE;

currentToken = ERROR;

break; }

if ((save) && (tokenStringIndex <= MAXTOKENLEN)) tokenString[tokenStringIndex++] = (char) c; if (state == DONE)

{ tokenString[tokenStringIndex] = '\\0'; if (currentToken == ID)

currentToken = reservedLookup(tokenString); } }

if (TraceScan) {

fprintf(listing,\ printToken(currentToken,tokenString); }

return currentToken; }

30

五 测试分析

5.1 引言

5.1.1编写目的:

通过测试暴露软件中隐藏的错误和缺陷,以考虑是否可以接受该产品。 5.1.2项目背景: TINY编译器。 5.1.3定义:

白盒测试: 结构测试,对软件的过程性细节做细致的检查,通过在不

同点检查程序的状态,确定实际状态是否于预期的状态一致。

黑盒测试: 功能测试,必须在所有可能的输入条件盒输出条件中确定

测试数据,来检查程序是否能产生正确的输入。

5.2 任务概述

5.2.1目标:

尽可能的出的人为的制造出可能出现的系统错误,并给予更正。

5.2.2运行环境:

处理器:Inter Pentium 166 MX 或更高。 内存:32MB。硬盘空间:1GB 显卡:SVGA 显示适配器。

Windows2000个人版 TC 2、0 Delphi6.0中文版

31

联系合同范文客服:xxxxx#qq.com(#替换为@)