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
相关推荐: