編譯原理詞法分析和語(yǔ)法分析報(bào)告+代碼[C語(yǔ)言版]
《編譯原理詞法分析和語(yǔ)法分析報(bào)告+代碼[C語(yǔ)言版]》由會(huì)員分享,可在線閱讀,更多相關(guān)《編譯原理詞法分析和語(yǔ)法分析報(bào)告+代碼[C語(yǔ)言版](42頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、word 格式文檔 詞法分析 一、實(shí)驗(yàn)?zāi)康? 設(shè)計(jì) 、編制并調(diào)試一個(gè)詞法分析程序 ,加深對(duì)詞法分析原理的理解 。 二、實(shí)驗(yàn)要求 2.1 待分析的簡(jiǎn)單的詞法 ( 1)關(guān)鍵字 : begin if then while do end 所有的關(guān)鍵字都是小寫 。 ( 2)運(yùn)算符和界符 := + - * / < <= <> > >= = ;( ) # ( 3)其他單詞是標(biāo)識(shí)符 ( ID )和整型常數(shù) ( SUM ), 通過(guò)以下正規(guī)式定義 : ID
2、= letter (letter | digit)* NUM = digit digit* ( 4)空格有空白 、制表符和換行符組成 ??崭褚话阌脕?lái)分隔 ID 、 SUM 、運(yùn)算符 、界 符和關(guān)鍵字 ,詞法分析階段通常被忽略 。 2.2 各種單詞符號(hào)對(duì)應(yīng)的種別碼 : 表 2.1 各種單詞符號(hào)對(duì)應(yīng)的種別碼 單詞符號(hào) 種別碼 單詞符號(hào) 種別碼 bgin 1 : 17 If 2 : = 18 Then 3 < 20 wile 4 <> 21
3、 專業(yè)整理 word 格式文檔 do 5 <= 22 end 6 > 23 lettet 10 >= 24 ( letter|digit ) * dight dight* 11 = 25 + 13 ; 26 — 14 ( 27 * 15 ) 28 / 16 # 0 2.3 詞法分析程序的功能 : 輸入 :所給文法的源程序字符串 。 輸出 :二元組 (syn,token 或 sum )構(gòu)成的序列 。 其中 :syn 為單詞種別碼 ; toke
4、n 為存放的單詞自身字符串 ; sum 為整型常數(shù) 。 例如 :對(duì)源程序 begin x:=9: if x>9 then x:=2*x+1/3; end # 的源文件 ,經(jīng)過(guò)詞法分析后輸 出如下序列 : (1,begin)(10,x)(18,:=)(11,9)(26,;)(2,if) 三、詞法分析程序的算法思想 : 算法的基本任務(wù)是從字符串表示的源程序中識(shí)別出具有獨(dú)立意義的單詞符號(hào) ,其基本思 想是根據(jù)掃描到單詞符號(hào)的第一個(gè)字符的種類 ,拼出相應(yīng)的單詞符號(hào) 。 3.1 主程序示意圖 :
5、 專業(yè)整理 word 格式文檔 主程序示意圖如圖 3-1 所示 。 其中初始包括以下兩個(gè)方面 : ⑴ 關(guān)鍵字表的初值 。 關(guān)鍵字作為特殊標(biāo)識(shí)符處理 ,把它們預(yù)先安排在一張表格中 (稱為關(guān)鍵字表 ), 當(dāng)掃描 程序識(shí)別出標(biāo)識(shí)符時(shí) ,查關(guān)鍵字表 。 如能查到匹配的單詞 ,則該單詞為關(guān)鍵字 ,否則為一 般標(biāo)識(shí)符 。關(guān)鍵字表為一個(gè)字符串?dāng)?shù)組 ,其描述如下 : Char *rwtab[6] = { “begin ”,“if”,“then ”,“while ”,“do ”,“end ”,}
6、; 置初值 調(diào)用掃描子程序 輸出單詞二元組 否 輸入串結(jié)束 是 專業(yè)整理 word 格式文檔 結(jié)束 圖 3-1 (2 )程序中需要用到的主要變量為 syn,token 和 sum 3
7、.2 掃描子程序的算法思想 : 首先設(shè)置 3 個(gè)變量 :① token 用來(lái)存放構(gòu)成單詞符號(hào)的字符串 ;② sum 用來(lái)整型單詞 ;③ syn 用來(lái)存放單詞符號(hào)的種別碼 。掃描子程序主要部分流程如圖 3-2 所示 。 變量初始化 忽略空格 是否文件結(jié)束? 是 是 返回 專業(yè)整理 w
8、ord 格式文檔 否 字母 拼字符串 數(shù)字 其他 運(yùn)算符 、 符號(hào) 界符等符號(hào) 拼數(shù) 是否關(guān)鍵字? 否 對(duì)不同符號(hào)給 報(bào)錯(cuò) 出相應(yīng)的 syn 值 是 syn=10 syn 為對(duì)應(yīng)關(guān)鍵字的 單詞種別碼 syn=11 返回
9、
圖 3-2
四 、詞法分析程序的 C 語(yǔ)言程序源代碼 :
專業(yè)整理
word 格式文檔
#include
10、 scaner(); main() {p=0; printf("\n please input a string(end with '#'):\n"); do{ scanf("%c",&ch); prog[p++]=ch; }while(ch!='#'); p=0; do{ scaner(); switch(syn) {case 11:printf("( %-10d%5d )\n",sum,syn);
11、break; case -1:printf("you have input a wrong string\n"); 專業(yè)整理 word 格式文檔 getch(); exit(0); default: printf("( %-10s%5d )\n",token,syn); break; } }while(syn!=0); getch(); } scaner() { sum=0;
12、 for(m=0;m<8;m++)token[m++]=NULL; ch=prog[p++]; m=0; while((ch==' ')||(ch=='\n'))ch=prog[p++]; if(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A'))) { while(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A'))||((ch>='0')&&(ch<='9'))) {token[m++]=ch; ch=prog[p++];
13、 } p--; syn=10; 專業(yè)整理 word 格式文檔 for(n=0;n<6;n++) if(strcmp(token,rwtab[n])==0) { syn=n+1; break; } } else if((ch>='0')&&(ch<='9')) { while((ch>='0')&&(ch<='9')) { sum=sum*10+ch-'0'; ch=prog[p++]; }
14、 p--; syn=11; } else switch(ch) { case '<':token[m++]=ch; ch=prog[p++]; if(ch=='=') { syn=22; token[m++]=ch; } else 專業(yè)整理 word 格式文檔 { syn=20; p--; } break; case '>':token[m++]=ch; ch=prog[
15、p++]; if(ch=='=') { syn=24; token[m++]=ch; } else { syn=23; p--; } break; case '+': token[m++]=ch; ch=prog[p++]; if(ch=='+') { syn=17; token[m++]=ch; } else 專業(yè)整理 word 格式文檔 { syn=13;
16、 p--; } break; case '-':token[m++]=ch; ch=prog[p++]; if(ch=='-') { syn=29; token[m++]=ch; } else { syn=14; p--; } break; case '!':ch=prog[p++]; if(ch=='=') { syn=21; token[m++]
17、=ch; } 專業(yè)整理 word 格式文檔 else { syn=31; p--; } break; case '=':token[m++]=ch; ch=prog[p++]; if(ch=='=') { syn=25; token[m++]=ch; } else { syn=18; p--; } break; case '*': syn=15; t
18、oken[m++]=ch; break; case '/': syn=16; token[m++]=ch; 專業(yè)整理 word 格式文檔 break; case '(': syn=27; token[m++]=ch; break; case ')': syn=28; token[m++]=ch; break; case '{': syn=5; token[m++]=ch; bre
19、ak; case '}': syn=6; token[m++]=ch; break; case ';': syn=26; token[m++]=ch; break; case '\"': syn=30; token[m++]=ch; break; case '#': syn=0; token[m++]=ch; break; 專業(yè)整理 word 格式文檔 case ':':syn=
20、17; token[m++]=ch; break; default: syn=-1; break; } token[m++]='\0'; } 五、結(jié)果分析 : 輸入 begin x:=9: if x>9 then x:=2*x+1/3; end # 后經(jīng)詞法分析輸出如下序列 : (begin 1)(x 10)( : 17)(= 18)(9 11)( ; 26)(if 2) 如圖 5-1 所示:
21、 圖 5-1 六、總結(jié): 詞法分析的基本任務(wù)是從字符串表示的源程序中識(shí)別出具有獨(dú)立意義的單詞符號(hào) ,其基 專業(yè)整理 word 格式文檔 本思想是根據(jù)掃描到單詞符號(hào)的第一個(gè)字符的種類 ,拼出相應(yīng)的單詞符號(hào) 。通過(guò)本試驗(yàn)的 完成 ,更加加深了對(duì)詞法分析原理的理解 。
22、 語(yǔ)法分析 一、實(shí)驗(yàn)?zāi)康? 編制一個(gè)遞歸下降分析程序 ,實(shí)現(xiàn)對(duì)詞法分析程序所提供的單詞序列的語(yǔ)法檢查和結(jié)構(gòu) 分析 。 二、實(shí)驗(yàn)要求 利用 C 語(yǔ)言編制遞歸下降分析程序 ,并對(duì)簡(jiǎn)單語(yǔ)言進(jìn)行語(yǔ)法分析 。 專業(yè)整理 word 格式文檔 2.1 待分析的簡(jiǎn)單語(yǔ)言的語(yǔ)法 用擴(kuò)充的 BNF 表示如下 : ⑴ < 程序
23、> :: =begin< 語(yǔ)句串 >end ⑵< 語(yǔ)句串 > :: =< 語(yǔ)句 >{ ;< 語(yǔ)句 >} ⑶< 語(yǔ)句 > :: =< 賦值語(yǔ)句 > ⑷< 賦值語(yǔ)句 > :: =ID :=< 表達(dá)式 > ⑸ < 表達(dá)式 > :: =< 項(xiàng) >{+< 項(xiàng)> | -< 項(xiàng)>} ⑹<項(xiàng)>::=< 因子 >{*< 因子 >|/< 因子> ⑺<因子> ::=ID|NUM| (<表達(dá)式 >) 2.2 實(shí)驗(yàn)要求說(shuō)明 輸入單詞串 ,以 “# ”結(jié)束 ,如果是文法正確的句子 ,則輸出成功信息 ,打印
24、“success ”,否 則輸出 “error ”。 例如 : 輸入 begin a:=9; x:=2*3; b:=a+x end # 輸出 success ! 輸入 x:=a+b*c end # 輸出 error 2.3 語(yǔ)法分析程序的酸法思想 (1 )主程序示意圖如圖 2-1 所示 。 專業(yè)整理 word 格式文檔 置初值
25、 調(diào)用 scaner 讀下一個(gè)單詞符號(hào) 調(diào)用 lrparser 結(jié)束 圖 2-1 語(yǔ)法分析主程序示意圖 (2 )遞歸下降分析程序示意圖如圖 2-2 所示 。 (3 )語(yǔ)句串分析過(guò)程示意圖如圖 2-3 所示 。 是 否 begin? 否 調(diào)用 statement 函數(shù) 是
26、專業(yè)整理 調(diào)用 scaner 調(diào)用語(yǔ)句串分析程序 是否 end? 是 調(diào)用 scaner syn=0&&kk=0? 是 打印分析成功 word 格式文檔 是否 ;? 否 是
27、 調(diào)用 scaner 否 調(diào)用 statement 函數(shù) 出錯(cuò)處理 否 圖 2-3 語(yǔ)句串分析示意圖 出錯(cuò)處理 圖 2-2 遞歸下降分析程序示意圖 (4 ) statement 語(yǔ)句分析程序流程如圖 2-4 、 2-5 、2-6 、 2-7 所示 。 專業(yè)整理 word 格式文檔
28、 是否標(biāo)識(shí)符 ? 否 調(diào)用 term 函數(shù) 調(diào)用 scaner 是否: =? 調(diào)用 scaner 是否+,-? 否 否 調(diào)用 expression 函數(shù) 出錯(cuò)處理 圖 2-4 statement 語(yǔ)句分析函數(shù)示意圖
29、 意圖 調(diào)用 factor 函數(shù) 是否*,/? 調(diào)用 scaner 專業(yè)整理 是 調(diào)用 scaner 調(diào)用 term 函數(shù) 出錯(cuò)處理 圖 2-5 expression 表達(dá)式分析函數(shù)示 是否標(biāo)識(shí)符 ? 是 調(diào)用 factor 函數(shù) 出
30、錯(cuò)處理 word 格式文檔 否 是 否 圖 2-6 term 分析函數(shù)示意圖 否 出錯(cuò)處理 否 是 是否整常數(shù) ? 否 是否( ? 是
31、 調(diào)用 scaner 調(diào)用 expression 函數(shù) 是否) ? 是 調(diào)用 scaner 調(diào)用 scaner 圖 2-7 factor 分析過(guò)程示意圖 三、 語(yǔ)法分析程序的 C 語(yǔ)言程序源代碼 : #include "stdio.h" 專業(yè)整理 word 格式文檔 #include "string.h"
32、char prog[100],token[8],ch; char *rwtab[6]={"begin","if","then","while","do","end"}; int syn,p,m,n,sum; int kk; factor(); expression(); yucu(); term(); statement(); lrparser(); scaner(); main() { p=kk=0;
33、 printf("\nplease input a string (end with '#'): \n"); do { scanf("%c",&ch); prog[p++]=ch; }while(ch!='#'); p=0; scaner(); 專業(yè)整理 word 格式文檔 lrparser(); getch(); } lrparser() { if(syn==1) {
34、 scaner(); /* 讀下一個(gè)單詞符號(hào) */ yucu(); /* 調(diào)用 yucu() 函數(shù) ; */ if (syn==6) { scaner(); if ((syn==0)&&(kk==0)) printf("success!\n"); } else { if(kk!=1) printf("the string haven't got a 'end'!\n"); kk=1; } } else { printf("haven't
35、 got a 'begin'!\n"); kk=1; } return; 專業(yè)整理 word 格式文檔 } yucu() { statement(); /* 調(diào)用函數(shù) statement();*/ while(syn==26) { scaner(); /* 讀下一個(gè)單詞符號(hào) */ if(syn!=6) statement(); /* 調(diào)用函數(shù) statement();*/ }
36、 return; } statement() { if(syn==10) { scaner(); /* 讀下一個(gè)單詞符號(hào) */ if(syn==18) { scaner(); /* 讀下一個(gè)單詞符號(hào) */ expression(); /* 調(diào)用函數(shù) statement();*/ } else { printf("the sing ':=' is wrong!\n"); kk=1; 專業(yè)整理 wor
37、d 格式文檔 } } else { printf("wrong sentence!\n"); kk=1; } return; } expression() { term(); while((syn==13)||(syn==14)) { scaner(); /* 讀下一個(gè)單詞符號(hào) */ term(); /* 調(diào)用函數(shù) term();*/ } return; } term() {
38、 factor(); while((syn==15)||(syn==16)) { scaner(); /* 讀下一個(gè)單詞符號(hào) */ factor(); /* 調(diào)用函數(shù) factor(); */ } return; 專業(yè)整理 word 格式文檔 } factor() { if((syn==10)||(syn==11)) scaner(); else if(syn==27) { scaner(); /* 讀下一個(gè)單詞符號(hào) */ ex
39、pression(); /* 調(diào)用函數(shù) statement();*/ if(syn==28) scaner(); /* 讀下一個(gè)單詞符號(hào) */ else { printf("the error on '('\n"); kk=1; } } else { printf("the expression error!\n"); kk=1; } return; } scaner() { sum=0; for(m=0;m<8;
40、m++)token[m++]=NULL; m=0; ch=prog[p++]; 專業(yè)整理 word 格式文檔 while(ch==' ')ch=prog[p++]; if(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A'))) { while(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A'))||((ch>='0')&&(ch<='9'))) {token[m++]=ch; ch=prog[p++];
41、 } p--; syn=10; token[m++]='\0'; for(n=0;n<6;n++) if(strcmp(token,rwtab[n])==0) { syn=n+1; break; } } else if((ch>='0')&&(ch<='9')) { while((ch>='0')&&(ch<='9')) { sum=sum*10+ch-'0'; ch=prog[p++]; } p--;
42、syn=11; 專業(yè)整理 word 格式文檔 } else switch(ch) { case '<':m=0; ch=prog[p++]; if(ch=='>') { syn=21; } else if(ch=='=') { syn=22; } else { syn=20; p--; } break; case '>':m=0; ch=pr
43、og[p++]; if(ch=='=') { syn=24; } else { syn=23; 專業(yè)整理 word 格式文檔 p--; } break; case ':':m=0; ch=prog[p++]; if(ch=='=') { syn=18; } else { syn=17; p--; } break; ca
44、se '+': syn=13; break; case '-': syn=14; break; case '*': syn=15;break; case '/': syn=16;break; case '(': syn=27;break; case ')': syn=28;break; case '=': syn=25;break; case ';': syn=26;break; case '#': syn=0;break; 專業(yè)整理 word 格式文
45、檔 default: syn=-1;break; } } 四、結(jié)果分析 : 輸入 begin a:=9; x:=2*3; b:=a+x end # 后輸出 success ! 如圖 4-1 所示: 圖 4-1 輸入 x:=a+b*c end # 后輸出 error 如圖 4-2 所示 :
46、 圖 4-2 五、總結(jié): 通過(guò)本次試驗(yàn) ,了解了語(yǔ)法分析的運(yùn)行過(guò)程 ,主程序大致流程為 :“置初值 ” 調(diào)用 專業(yè)整理 word 格式文檔 scaner 函數(shù)讀下一個(gè)單詞符號(hào) 調(diào)用 IrParse 結(jié)束 。 遞歸下降分析的大致流程為 :“先判斷 是否為 begin ” 不是則 “出錯(cuò)處理 ”,若是則 “調(diào)用 scaner 函數(shù) ” 調(diào)用語(yǔ)句串分析函數(shù) “判 斷是否為 end ” 不是則 “出錯(cuò)處理 ”,若是則調(diào)用 scaner 函數(shù) “判斷
47、syn=0&&kk=0 是否成 立”成立則說(shuō)明分析成功打印出來(lái) 。不成立則 “出錯(cuò)處理 ”。 專業(yè)整理 word 格式文檔
48、 語(yǔ)義分析程序 #include "stdio.h" #include "string.h" char prog[100],token[8],ch; char *rwtab[6]={"begin","if","then","while","do","end"}; int syn,p,m,n,sum,q; int kk; struct { char result1[8]; char ag11[8]; char op1[8]; char
49、ag21[8]; } quad[20]; char *factor(); char *expression(); int yucu(); char *term(); int statement(); 專業(yè)整理 word 格式文檔 int lrparser(); char *newtemp(); scaner(); emit(char *result,char *ag1,char *op,char *ag2); main() { int j; q=p=kk=0; pr
50、intf("\nplease input a string (end with '#'): "); do
{ scanf("%c",&ch);
prog[p++]=ch;
}while(ch!='#');
p=0;
scaner();
lrparser();
if(q>19)printf(" to long sentense!\n");
else for (j=0;j 51、uad[j].op1,quad[j].ag21);
getch();
}
int lrparser()
專業(yè)整理
word 格式文檔
{ int schain=0;
kk=0;
if (syn==1)
{ scaner(); schain=yucu(); if(syn==6)
{ scaner();
if((syn==0)&&(kk==0)) printf("Success!\n");
}
else { if( 52、kk!=1)printf("short of 'end' !\n");
kk=1;
getch();
exit(0);
}
}
else { printf("short of 'begin' !\n");
kk=1;
getch();
exit(0);
}
return (schain);
專業(yè)整理
word 格式文檔
}
int yucu()
{ int schain=0 53、; schain=statement(); while(syn==26)
{ scaner();
schain=statement();
}
return (schain);
}
int statement()
{ char tt[8],eplace[8]; int schain=0;
if (syn==10)
{ strcpy(tt,token); scaner(); if(syn==18)
{ scaner(); strcpy(eplace,expression()); emit(tt,epla 54、ce,"",""); schain=0;
專業(yè)整理
word 格式文檔
}
else { printf("short of sign ':=' !\n");
kk=1;
getch();
exit(0);
}
return (schain);
}
}
char *expression()
{ char *tp,*ep2,*eplace,*tt; tp=(char *)malloc(12); ep2=(char *)mall 55、oc(12); eplace=(char *)malloc(12); tt=(char *)malloc(12); strcpy(eplace,term()); while((syn==13)||(syn==14)) { if (syn==13)strcpy(tt,"+");
else strcpy(tt,"-"); scaner(); strcpy(ep2,term());
專業(yè)整理
word 格式文檔
strcpy(tp,newtemp());
emit(tp,eplace,tt,ep2);
strcpy( 56、eplace,tp);
}
return (eplace);
}
char *term()
{ char *tp,*ep2,*eplace,*tt; tp=(char *)malloc(12); ep2=(char *)malloc(12); eplace=(char *)malloc(12); tt=(char *)malloc(12); strcpy(eplace,factor()); while((syn==15)||(syn==16)) { if (syn==15)strcpy(tt,"*");
else strcpy(t 57、t,"/"); scaner(); strcpy(ep2,factor()); strcpy(tp,newtemp()); emit(tp,eplace,tt,ep2); strcpy(eplace,tp);
專業(yè)整理
word 格式文檔
}
return (eplace);
}
char *factor()
{ char *fplace;
fplace=(char *)malloc(12);
strcpy(fplace,"");
if(syn==10)
58、
{ strcpy(fplace,token); scaner();
}
else if(syn==11)
{ itoa(sum,fplace,10);
scaner();
}
else if(syn==27)
{ scaner(); fplace=expression(); if(syn==28) scaner();
else { printf("error on ')' !\n"); kk=1;
專業(yè)整理
word 格式文檔
getch();
59、
exit(0);
}
}
else { printf("error on '(' !\n");
kk=1;
getch();
exit(0);
}
return (fplace);
}
char *newtemp()
{ char *p; char m[8]; p=(char *)malloc(8); kk++; itoa(kk,m,10); strcpy(p+1,m); p[0]='t'; return(p);
60、
}
專業(yè)整理
word 格式文檔
scaner()
{ sum=0; for(m=0;m<8;m++)token[m++]=NULL; m=0;
ch=prog[p++];
while(ch==' ')ch=prog[p++]; if(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A')))
{ while(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A'))||((ch>='0')&&(ch<='9' 61、))) {token[m++]=ch;
ch=prog[p++];
}
p--; syn=10;
token[m++]='\0';
for(n=0;n<6;n++)
if(strcmp(token,rwtab[n])==0)
{ syn=n+1; break;
}
}
else if((ch>='0')&&(ch<='9'))
專業(yè)整理
word 格式文檔
{ while((ch>='0')&&(ch<='9')) { sum=s 62、um*10+ch-'0';
ch=prog[p++];
}
p--;
syn=11;
}
else switch(ch)
{ case '<':m=0; ch=prog[p++]; if(ch=='>')
{ syn=21;
}
else if(ch=='=')
{ syn=22;
}
else
{ syn=20;
p--;
}
break;
專業(yè)整理
wor 63、d 格式文檔
case '>':m=0;
ch=prog[p++];
if(ch=='=')
{ syn=24;
}
else
{ syn=23; p--;
}
break;
case ':':m=0;
ch=prog[p++];
if(ch=='=')
{ syn=18;
}
else
{ syn=17; p--;
}
break;
case '+': syn=13; 64、break;
專業(yè)整理
word 格式文檔
case '-': syn=14; break;
case '*': syn=15;break;
case '/': syn=16;break;
case '(': syn=27;break;
case ')': syn=28;break;
case '=': syn=25;break;
case ';': syn=26;break;
case '#': syn=0;break;
def 65、ault: syn=-1;break;
}
}
emit(char *result,char *ag1,char *op,char *ag2)
{
strcpy(quad[q].result1,result);
strcpy(quad[q].ag11,ag1);
strcpy(quad[q].op1,op);
strcpy(quad[q].ag21,ag2);
q++;
}
專業(yè)整理
word 格式文檔
專業(yè)整理
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案