




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验 五 LL(1) 分析法一、实验目的: 一、实验目的:根据某一文法编制调试 LL (1)分 析程序,以便对任意输入的符号串进行)分 析程序,以便对任意输入的符号串进行析 。本次实验的目主要是加深对预测分析 。本次实验的目主要是加深对预测分LL (1)分析法的理解。 )分析法的理解。 (所需 学时: 4学时 )二、实验 二、实验 原理1、LL (1)分析法的功能 )分析法的功能LL (1)分析法的功能是利用 )分析法的功能是利用 )分析法的功能是利用 LL (1)控制程序根据显示栈顶内容、向前 )控制程序根据显示栈顶内容、向前 )控制程序根据显示栈顶内容、向前 )控制程序根据显示栈顶内容、向前 看符号以及 LL (1)分析表,对输入符号串自上而下的过程。 )分析表,对输入符号串自上而下的过程。2、LL (1)分析法的前提 )分析法的前提改造文法:消除二义性、左递归提取因子,判断是否为 改造文法:消除二义性、左递归提取因子,判断是否为 改造文法:消除二义性、左递归提取因子,判断是否为 改造文法:消除二义性、左递归提取因子,判断是否为 改造文法:消除二义性、左递归提取因子,判断是否为 LL (1)文 法,3、LL (1)分析法 实验设计思想及算)分析法实验设计思想及算XVN# S 进栈,当前输入符送 进栈,当前输入符送 进栈,当前输入符送 进栈,当前输入符送 a栈顶符号放入 栈顶符号放入 X若产生式为 若产生式为X X1X2X n按逆序即 XnX 2X1入栈出错X= X= X= #XVTX=aX=aMX,a MX,aMX,a MX,a是产生式吗 是产生式吗出错X=a读入下一个符号 读入下一个符号结束是是是是否否否否否是三、实验要求对文法G(E) 如下,用LL(1)分析法对任意输入的符号串进行分析:EE+TTTT*FFF(E)i消除文法左递归,改写为:E TEE +TE | eT FTT *FT | eF ( E ) | i(1)计算每个语法单位的first 和follow 集合;(2)构造预测分析表;(3)写出分析程序。四、程序思路(仅供参考):模块结构:(1)定义部分:定义常量、变量、数据结构。(2)初始化:设立LL(1)分析表、初始化变量空间(包括堆栈、结构体、数组、临时变量等);(3)控制部分:从键盘输入一个表达式符号串;(4)利用LL(1)分析算法进行表达式处理:根据LL(1)分析表对表达式符号串进行堆栈(或其他)操作,输出分析结果,如果遇到错误则显示错误信息。五、程序说明(仅供参考):1、数据结构以一维字符串数组存放各文法符号,对应下标为该文法符号ID。char _symbol16MAX_SYMBOL_NAME = , +, *, (, ), i, #,E, E, T, T, F, null;以二维整形数组存放每一条产生式右部,产生式以文法符号ID 表示。/ 产生式列表int _profomMAX_PROFOR_NAME = int _profomMAX_PROFOR_NAME = int _profomMAX_PROFOR_NAME = int _profomMAX_PROFOR_NAME = int _profomMAX_PROFOR_NAME = int _profomMAX_PROFOR_NAME = int _profomMAX_PROFOR_NAME = int _profomMAX_PROFOR_NAME = int _profomMAX_PROFOR_NAME = int _profomMAX_PROFOR_NAME = int _profomMAX_PROFOR_NAME = int _profomMAX_PROFOR_NAME = /00 /00/E /E +TE +TE +TE +TE1, 9, 8, 0,/01 /01/T /T null12, 0, 0, 0,0 ,/02 /02/T /T *FT *FT*FT2, 11, 10, 0, 2, 11, 10, 0,/03 /03/E /E TE9, 8, 0,/04 /04/T /T /T FTFTFT11, 10, 0, 0,11, 10, 0,/05 /05/F /F /F ( E ) ( E )3, 7, 4, 0,/06 /06/E /E null12, 0,/07 /07/T /T null12, 0,/08 /08/E /E TE9, 8, 0,/09 /09/T /T /T FTFTFT11, 10, 0, 0,11, 10, 0,/10 /10/F /F /F i5, 0,/11 /11/11/E /E null12, 0,/12 /12/T /T null12, 0, 0;以二维整形数组存放预测分析表,元素为产生式 以二维整形数组存放预测分析表,元素为产生式 以二维整形数组存放预测分析表,元素为产生式 以二维整形数组存放预测分析表,元素为产生式 以二维整形数组存放预测分析表,元素为产生式 ID 。( -1 即表示无相应产 即表示无相应产 即表示无相应产 生式 )/ 预测分析表int _pre_table56 = int _pre_table56 = int _pre_table56 = int _pre_table56 = int _pre_table56 = int _pre_table56 = int _pre_table56 = int _pre_table56 = int _pre_table56 = int _pre_table56 = -1, -1, 3, -1, 8, -1,0, -1, -1, 6, -1, 11, 11,-1, -1, 4, -1, 9, -1,1, 2, -1, 7, -1, 12,-1, -1, 5, -1, 10, -1;以及其它一维数组栈 及 存放当前输入符的单元。2、程序输入出 程序输入出 程序输入出程序输入将从控制台以空格为间隔读取符号 TOKENTOKEN TOKEN 。输出程序预处理分析 。输出程序预处理分析 。输出程序预处理分析 结果并显示。3、出错处理 出错处理程序通过抛出异常来处理分析错误,中断并将显示到控制台。4、主要实现代码 主要实现代码 主要实现代码(忽略函数声明 忽略函数声明 忽略函数声明 )int _tmain(argc, TCHAR* argv)int _tmain(argc, TCHAR* argv) int _tmain(argc, TCHAR* argv) int _tmain(argc, TCHAR* argv)int _tmain(argc, TCHAR* argv)int _tmain(argc, TCHAR* argv)int _tmain(argc, TCHAR* argv) int _tmain(argc, TCHAR* argv)int _tmain(argc, TCHAR* argv) int _tmain(argc, TCHAR* argv) int _tmain(argc, TCHAR* argv) int _tmain(argc, TCHAR* argv)int _tmain(argc, TCHAR* argv)int _tmain(argc, TCHAR* argv)int _tmain(argc, TCHAR* argv)int _tmain(argc, TCHAR* argv) int _tmain(argc, TCHAR* argv)int _tmain(argc, TCHAR* argv)int _tmain(argc, TCHAR* argv)int _tmain(argc, TCHAR* argv)int _tmain(argc, TCHAR* argv)int i;int i; int i; int i;/ 初始化堆栈,压入 初始化堆栈,压入 初始化堆栈,压入 #和文法开始符 和文法开始符 和文法开始符 和文法开始符StackPush(SymbolEnd();StackPush(SymbolEnd();StackPush(SymbolEnd(); StackPush(SymbolEnd();StackPush(SymbolEnd(); StackPush(SymbolEnd(); StackPush(SymbolEnd();StackPush(SymbolEnd(); StackPush(SymbolEnd(); StackPush(SymbolEnd();StackPush(SymbolEnd();StackPush(SymbolRoot();StackPush(SymbolRoot();StackPush(SymbolRoot(); StackPush(SymbolRoot();StackPush(SymbolRoot(); StackPush(SymbolRoot(); StackPush(SymbolRoot();StackPush(SymbolRoot(); StackPush(SymbolRoot();StackPush(SymbolRoot(); StackPush(SymbolRoot();StackPush(SymbolRoot();StackPush(SymbolRoot();StackPush(SymbolRoot();/PromptInput();PromptInput();PromptInput(); PromptInput(); PromptInput();PromptInput(); PromptInput();PromptInput();PromptInput();/ 读入第一个输符 读入第一个输符 读入第一个输符NextToken();NextToken(); NextToken();NextToken(); NextToken();NextToken();DisplayTitle();DisplayTitle();DisplayTitle(); DisplayTitle(); DisplayTitle();DisplayTitle();DisplayTitle();DisplayTitle();DisplayTitle(); DisplayTitle();DisplayTitle();trytrytryfor (i = 0; !StackEmpty(); i+)for (i = 0; !StackEmpty(); i+) for (i = 0; !StackEmpty(); i+) for (i = 0; !StackEmpty(); i+)for (i = 0; !StackEmpty(); i+) for (i = 0; !StackEmpty(); i+) for (i = 0; !StackEmpty(); i+) for (i = 0; !StackEmpty(); i+)for (i = 0; !StackEmpty(); i+)for (i = 0; !StackEmpty(); i+) for (i = 0; !StackEmpty(); i+) for (i = 0; !StackEmpty(); i+)for (i = 0; !StackEmpty(); i+)for (i = 0; !StackEmpty(); i+)for (i = 0; !StackEmpty(); i+)for (i = 0; !StackEmpty(); i+)for (i = 0; !StackEmpty(); i+)for (i = 0; !StackEmpty(); i+)for (i = 0; !StackEmpty(); i+)for (i = 0; !StackEmpty(); i+)/display enviro/display enviro/display enviro /display enviro /display enviro/display enviro/display enviro /display enviro/display enviro/display enviro/display environment infonment infonment info nment info nment info nment infoDisplayEnvInfo(i + 1);DisplayEnvInfo(i + 1);DisplayEnvInfo(i + 1); DisplayEnvInfo(i + 1); DisplayEnvInfo(i + 1); DisplayEnvInfo(i + 1); DisplayEnvInfo(i + 1); DisplayEnvInfo(i + 1);DisplayEnvInfo(i + 1); DisplayEnvInfo(i + 1); DisplayEnvInfo(i + 1);/process/process/process /process /processProcess();Process();Process();Process(); Process(); Process();Process();/parse succeed/parse succeed/parse succeed /parse succeed /parse succeed /parse succeedDisplaySuccess();DisplaySuccess();DisplaySuccess(); DisplaySuccess(); DisplaySuccess(); DisplaySuccess(); DisplaySuccess();DisplaySuccess();catch (int a) catch (int a) catch (int a)catch (int a) catch (int a)Error(a); Error(a); Error(a);Error(a); Error(a);DisplayFinish();DisplayFinish();DisplayFinish(); DisplayFinish(); DisplayFinish();DisplayFinish();DisplayFinish(); DisplayFinish(); DisplayFinish();DisplayFinish();system(pause);system(pause);system(pause); system(pause);system(pause);system(pause);system(pause);system(pause); system(pause); system(pause);system(pause);return 0;return 0; return 0; return 0;void Process()void Process() void Process() void Process()void Process() void Process() void Process()if ( IsSymbolT(StackGet() )if ( IsSymbolT(StackGet() )if ( IsSymbolT(StackGet() ) if ( IsSymbolT(StackGet() ) if ( IsSymbolT(StackGet() ) if ( IsSymbolT(StackGet() )if ( IsSymbolT(StackGet() )if ( IsSymbolT(StackGet() ) if ( IsSymbolT(StackGet() ) if ( IsSymbolT(StackGet() )if ( IsSymbolT(StackGet() ) if ( IsSymbolT(StackGet() ) if ( IsSymbolT(StackGet() )if ( IsSymbolT(StackGet() )if ( IsSymbolT(StackGet() )if ( IsSymbolT(StackGet() )/ 栈顶为终结符 栈顶为终结符ProcessT();ProcessT();ProcessT();ProcessT(); ProcessT(); ProcessT();ProcessT();else if ( IsSymbolEnd(StackGet() ) else if ( IsSymbolEnd(StackGet() ) else if ( IsSymbolEnd(StackGet() ) else if ( IsSymbolEnd(StackGet() )else if ( IsSymbolEnd(StackGet() ) else if ( IsSymbolEnd(StackGet() ) else if ( IsSymbolEnd(StackGet() ) else if ( IsSymbolEnd(StackGet() )else if ( IsSymbolEnd(StackGet() )else if ( IsSymbolEnd(StackGet() ) else if ( IsSymbolEnd(StackGet() ) else if ( IsSymbolEnd(StackGet() )else if ( IsSymbolEnd(StackGet() ) else if ( IsSymbolEnd(StackGet() ) else if ( IsSymbolEnd(StackGet() )else if ( IsSymbolEnd(StackGet() )else if ( IsSymbolEnd(StackGet() )else if ( IsSymbolEnd(StackGet() )/ 栈顶为开始符 栈顶为开始符ProcessEnd();ProcessEnd();ProcessEnd();ProcessEnd(); ProcessEnd(); ProcessEnd(); ProcessEnd();ProcessEnd();else else/ 栈顶为非终结符 栈顶为非终结符 栈顶为非终结符ProcessN();ProcessN();ProcessN();ProcessN(); ProcessN(); ProcessN();void ProcessEnd()void ProcessEnd() void ProcessEnd() void ProcessEnd()void ProcessEnd() void ProcessEnd()void ProcessEnd()if (StackGet() != ComingToken()if (StackGet() != ComingToken()if (StackGet() != ComingToken() if (StackGet() != ComingToken()if (StackGet() != ComingToken()if (StackGet() != ComingToken() if (StackGet() != ComingToken() if (StackGet() != ComingToken()if (StackGet() != ComingToken()if (StackGet() != ComingToken() if (StackGet() != ComingToken()if (StackGet() != ComingToken() if (StackGet() != ComingToken() if (StackGet() != ComingToken()if (StackGet() != ComingToken() if (StackGet() != ComingToken() if (StackGet() != ComingToken() if (StackGet() != ComingToken()if (StackGet() != ComingToken()/ 非正常结尾 非正常结尾Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END); Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END); Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END); Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END); Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END);Leave(ANA_ERROR_REACHED_END);else else/ 完全匹配StackPop();StackPop();StackPop(); StackPop();StackPop(); StackPop();StackPop();void ProcessN()void ProcessN() void ProcessN() void ProcessN()void ProcessN() void ProcessN()void ProcessN()void ProcessN()void ProcessN()int probufMAX_PROFOR_NAME;int probufMAX_PROFOR_NAME; int probufMAX_PROFOR_NAME; int probufMAX_PROFOR_NAME; int probufMAX_PROFOR_NAME;int probufMAX_PROFOR_NAME; int probufMAX_PROFOR_NAME;int probufMAX_PROFOR_NAME;int probufMAX_PROFOR_NAME; int probufMAX_PROFOR_NAME;int probufMAX_PROFOR_NAME;int probufMAX_PROFOR_NAME;int probufMAX_PROFOR_NAME;int probufMAX_PROFOR_NAME;int probufMAX_PROFOR_NAME;int probufMAX_PROFOR_NAME;int probufMAX_PROFOR_NAME; int probufMAX_PROFOR_NAME;int length = 0;int length = 0; int length = 0; int length = 0; int length = 0; int length = 0;/ 取得产生式规则 取得产生式规则 取得产生式规则GetProFom(probuf, length, StackGet(), ComingToken();GetProFom(probuf, length, StackGet(), ComingToken(); GetProFom(probuf, length, StackGet(), ComingToken();GetProFom(probuf, length, StackGet(), ComingToken();GetProFom(probuf, length, StackGet(), ComingToken(); GetProFom(probuf, length, StackGet(), ComingToken(); GetProFom(probuf, length, StackGet(), ComingToken();GetProFom(probuf, length, StackGet(), ComingToken(); GetProFom(probuf, length, StackGet(), ComingToken(); GetProFom(probuf, length, StackGet(), ComingToken(); GetProFom(probuf, length, StackGet(), ComingToken(); GetProFom(probuf, length, StackGet(), ComingToken(); GetProFom(probuf, length, StackGet(), ComingToken();GetProFom(probuf, length, StackGet(), ComingToken();GetProFom(probuf, length, StackGet(), ComingToken(); GetProFom(probuf, length, StackGet(), ComingToken(); GetProFom(probuf, length, StackGet(), ComingToken();GetProFom(probuf, length, StackGet(), ComingToken();GetProFom(probuf, length, StackGet(), ComingToken(); GetProFom(probuf, length, StackGet(), ComingToken(); GetProFom(probuf, length, StackGet(), ComingToken();GetProFom(probuf, length, StackGet(), ComingToken(); GetProFom(probuf, length, StackGet(), ComingToken(); GetProFom(probuf, length, StackGet(), ComingToken();GetProFom(probuf, length, StackGet(), ComingToken();GetProFom(probuf, length, StackGet(), ComingToken();if (length 0)if (length 0)if (length 0) if (length 0)if (length 0) if (length 0) if (length 0)/ 弹出非终结符 弹出非终结符StackPop();StackPop();StackPop(); StackPop();StackPop(); StackPop();StackPop();/ 产生式入栈 产生式入栈StackPushProfom(probuf, length);StackPushProfom(probuf, length);StackPushProfom(probuf, length); StackPushProfom(probuf, length);StackPushProfom(probuf, length); StackPushProfom(probuf, length);StackPushProfom(probuf, length);StackPushProfom(probuf, length); StackPushProfom(probuf, length); StackPushProfom(probuf, length);StackPushProfom(probuf, length); StackPushProfom(probuf, length); StackPushProfom(probuf, length); StackPushProfom(probuf, length);StackPushProfom(probuf, length); StackPushProfom(probuf, length); StackPushProfom(probuf, length);if (IsSymbif (IsSymbif (IsSymb if (IsSymbif (IsSymb if (IsSymbif (IsSymbif (IsSymbolNull( StackGet() ) olNull( StackGet() )olNull( StackGet() ) olNull( StackGet() )olNull( StackGet() )olNull( StackGet() ) olNull( StackGet() )olNull( StackGet() ) olNull( StackGet() ) olNull( StackGet() )olNull( StackGet() )olNull( StackGet() ) olNull( StackGet() )/ 产生右部为空,从栈顶移除 产生右部为空,从栈顶移除 产生右部为空,从栈顶移除 产生右部为空,从栈顶移除 产生右部为空,从栈顶移除 产生右部为空,从栈顶移除StackPop();StackPop();StackPop(); StackPop();StackPop(); StackPop();StackPop();else else/ 无可用产生式 无可用产生式Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE); Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE); Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE); Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE); Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE); Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);void ProcessT()void ProcessT() void ProcessT() void ProcessT()void ProcessT() void ProcessT()void ProcessT()if (StackGet() = ComingToken()if (StackGet() = ComingToken()if (StackGet() = ComingToken() if (StackGet() = ComingToken()if (StackGet() = ComingToken()if (StackGet() = ComingToken() if (StackGet() = ComingToken() if (StackGet() = ComingToken()if (StackGet() = ComingToken()if (StackGet() = ComingToken() if (StackGet() = ComingToken()if (StackGet() = ComingToken() if (StackGet() = ComingToken() if (StackGet() = ComingToken()if (StackGet() = ComingToken() if (StackGet() = ComingToken()if (StackGet() = ComingToken() if (StackGet() = ComingToken()if (StackGet() = ComingToken()/match success, pop stack/match success, pop stack/match success, pop stack/match success, pop stack /match success, pop stack /match success, pop stack /match success, pop stack /match success, pop stack/match success, pop stack /match success, pop stackStackPop();StackPop();StackPop(); StackPop();StackPop(); StackPop();StackPop();/get next token/get next token/get next token /get next token /get next token /get next tokenNextToNextTo NextToNextToken(); ken();ken();else elseLeave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE); Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE); Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE); Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE); Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE); Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);Leave(ANA_ERROR_UNEXPECTED_VALUE);/* 将产生式反向入栈 将产生式反向入栈 将产生式反向入栈*/ */void StackPushProfom(int buf, length)void StackPushProfom(int buf, length) void StackPushProfom(int buf, length) void StackPushProfom(int buf, length)void StackPushProfom(int buf, length) void StackPushProfom(int buf, length) void StackPushProfom(int buf, length) void StackPushProfom(int buf, length) void StackPushProfom(int buf, length)void StackPushProfom(int buf, length)void StackPushProfom(int buf, length) void StackPushProfom(int buf, length) void StackPushProfom(int buf, length)void StackPushProfom(int buf, length)void StackPushProfom(int buf, length) void StackPushProfom(int buf, length) void StackPushProfom(int buf, length) void StackPushProfom(int buf, length) void StackPushProfom(int buf, length)int i;int i; int i; int i;_ASSERT(length 0); _ASSERT(length 0);_ASSERT(length 0); _ASSERT(length 0);_ASSERT(length 0); _ASSERT(length 0); _ASSERT(length 0); _ASSERT(length 0);_ASSERT(length 0); _ASSERT(length 0);for (i = length for (i = length for (i = length for (i = length for (i = length for (i = length for (i = length for (i = length - 1; i = 0; 1; i = 0; 1; i = 0; 1; i = 0; i1; i = 0; 1; i = 0; - )
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论