下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、5 實(shí)驗(yàn)結(jié)果與分析測試文本 test.cint a10;int min (int a,int low,void aint k; int x; int i;k=low;while(i<lowa0=1;if(k>0x=1;return x;測試結(jié)果成功實(shí)現(xiàn)語法分析6 小結(jié)實(shí)現(xiàn)了對(duì)詞法分析程通過這次實(shí)驗(yàn),我加深了對(duì)語法分析的認(rèn)識(shí),掌握了遞歸向下分析方法, 序所提供的 Token 序列的語法檢查和結(jié)構(gòu)分析。BNF 化為 EBNF ,運(yùn)用遞歸向下的方法語法分析程序編寫相對(duì)于詞法分析要困難得多,首先要將 進(jìn)行編寫, 構(gòu)造出語法樹,判別語法分析過程中是否出錯(cuò)以及出錯(cuò)位置和錯(cuò)誤類型。雖然TreeN
2、ode 數(shù)據(jù)EBNF 轉(zhuǎn)換成代碼的過程原理比較簡單,但是操作起來比較繁瑣。一開始我對(duì)結(jié)構(gòu)也不是很理解,通過閱讀書后的tiny 語言語法分析源代碼,我弄懂了語法樹的輸出。附錄(源代碼)Main.c#include "global. = TRUE ;int Error = FALSE ;int main(voidTreeNode * syntaxTree ;char pgm120; * 用于存儲(chǔ)文件名 *printf (" 輸入文件名: "scanf("%s" ,pgm;if (strchr (pgm, '.' = NULLstrc
3、at(pgm,".c" ;source = fopen(pgm,"r" ;if ( source= NULLfprintf ( stderr ,"File %s not foundn" ,pgm;exit(1;listing = stdout; * listing 在屏幕上輸出 * fprintf(listing,"nC COMPILATION: %sn",pgm; while (getToken(!=ENDFILE;syntaxTree = parse(;printTree(syntaxTree;fclose(s
4、ource;return 0;Parse.; * *TreeNode * parse(void;TreeNode * declaration_list (void;TreeNode * declaration ( void;TreeNode * params (void ;TreeNode * param_list (TreeNode * k;TreeNode * param (TreeNode * k;TreeNode * compound_stmt (void;TreeNode * local_declaration (void;TreeNode * statement_list(void
5、;TreeNode * statement(void;TreeNode * expression_stmt(void;TreeNode * selection_stmt(void;TreeNode * iteration_stmt (void;TreeNode * return_stmt (void;TreeNode * expression(void;TreeNode * var (void;TreeNode * simple_expression(TreeNode * k;TreeNode * additive_expression(TreeNode * k;TreeNode * term
6、 ( TreeNode * k;TreeNode * factor (TreeNode * k;TreeNode * call(TreeNode * k;TreeNode * args(void;static void syntaxError (char * messagefprintf (listing,"n>>> " ;fprintf (listing,"Syntax error at line %d: %s" ,lineno,message;Error = TRUE ;static void match ( TokenType e
7、xpectedif ( token = expectedtoken = getToken (;elsesyntaxError ("unexpected token -> " ;printToken (token,tokenString ;fprintf (listing," " ;TreeNode * parse(voidTreeNode * t;token = getToken (;t = declaration_list (; if(token!=ENDFILEsyntaxError ("endfile_error" ;re
8、turn t;TreeNode * declaration_list (voidTreeNode * t = declaration (;TreeNode * p =t;程序以變量聲明開始while(token!=INT &&( token!=VOID &&( token!= ENDFILE syntaxError (" 開始不是類型聲明 "token = getToken (; if(token=ENDFILEbreak ;while(token=INT |token = VOIDTreeNode * q;q = declaration (
9、;if ( q!= NULLif (t=NULLt=p=q;elsep->sibling=q;p=q;match( ENDFILE ;return t;TreeNode * declaration ( voidTreeNode * t = NULL ;TreeNode * p = NULL ;TreeNode * q = NULL ;TreeNode * s = NULL ;TreeNode * a = NULL ;if ( token= INTp=newNode ( IntK ;match(INT ;else if ( token= VOIDp=newNode ( VoidK ;mat
10、ch(VOID ;elsesyntaxError ("類型錯(cuò)誤 "if(p!=NULL && token= IDq = newNode(IdK ;q->attr .name = copyString (tokenString ;match(ID ;if ( token= LPARENt = newNode(FunK ;t->child0 = p; p 是 t 子節(jié)點(diǎn)t->child1 = q;match( LPAREN ;t->child2 = params (;match(RPAREN ;t->child3 = compoun
11、d_stmt (;elseif ( token= LBRACKETt = newNode(Var_DeclK ;a = newNode(Arry_DeclK ;t->child0 = p; p 是 t 子節(jié)點(diǎn)t->child1 = a;match( LBRACKET ;s = newNode( ConstK ;s-> attr .val = atoi(tokenString ; match(NUM ;a->child0=q;a->child1=s; match(RBRACKET ;match(SEMI ;else if ( token= SEMIt = newNo
12、de(Var_DeclK ;t->child0 = p;t->child1 = q;match(SEMI ;elsesyntaxError ("" ;elsesyntaxError ("" ;return t;TreeNode * params (voidTreeNode * t = newNode(ParamsK ;TreeNode * p = NULL ;if ( token= VOIDp = newNode(VoidK ; match(VOID ;if ( token= RPARENif(t!=NULLt->child0 = p;
13、else參數(shù)列表為 (void id, t->child0 = param_list(p;申else if ( 有限公司其前身為 ,是一家以t->child0 貴公司的一些省級(jí)認(rèn)證榮譽(yù)名稱,如: XX 省 XX 骨 干企業(yè)等),被(貴公司所在縣名稱)政府定為重點(diǎn)扶持發(fā)展的(貴 公司所屬行業(yè))龍頭企業(yè)。企業(yè)注冊(cè)資金 X萬元,現(xiàn)有總資產(chǎn)為 X 萬 元,其中:固定資產(chǎn)凈值 X萬元。企業(yè)基地面積 X 畝,其中:廠區(qū)面 積達(dá) X平方米,廠房(車間)、倉庫、住房等建筑面積為 X 平方米。 年產(chǎn)量 X噸,公司現(xiàn)有員工 X 人,其中:管理人員 X人,工程技術(shù)人 員 X 人,一線生產(chǎn)工人 X人。 X
14、年度的主營業(yè)務(wù)收入 X萬元TreeNode * t目前, 公司通過多年的發(fā)展和市場運(yùn)作,不但已構(gòu)建了一個(gè)良好的產(chǎn) 品銷售架構(gòu),建立了一些互信基礎(chǔ)好、輻射作用大的銷售網(wǎng)絡(luò)和辦事 機(jī)構(gòu),培養(yǎng)和煅造了一支業(yè)務(wù)精干、經(jīng)驗(yàn)豐富、事業(yè)心責(zé)任感強(qiáng)的產(chǎn) 品宣傳推介和銷售隊(duì)伍。在 市各縣(市)、區(qū)設(shè)立了銷售門市,與深 圳、惠州、河源、增城、廣州、梅州、汕頭、揭陽、汕尾、東莞、江 西贛州、福建龍巖等省市和地區(qū)較具消費(fèi)能力的市場與各中小型酒 店、賓館建立了長期友好的合作伙伴關(guān)系,他們?cè)阡N售量方面都有極 大的潛力。由此可見,產(chǎn)品的銷售渠道是暢通的。X年我公司新建一處制酒廠區(qū),計(jì)劃建設(shè)項(xiàng)目所要達(dá)到產(chǎn)品品質(zhì)功能、 質(zhì)量指
15、標(biāo)、年生產(chǎn)能力為 5000T 產(chǎn)業(yè)化規(guī)模時(shí),新增投資規(guī)模為 萬 元,其中:生產(chǎn)車間和倉庫等設(shè)施建筑面積為沒有要傳給 param的 VoidK ,所以將 k設(shè)為 NULL 萬元;試驗(yàn)費(fèi) 萬元;其它費(fèi)用(含不可 預(yù)見費(fèi)) 萬元。 年計(jì)劃投入 萬元,以購進(jìn)技術(shù)、建設(shè)廠房(車 間)、倉庫等基礎(chǔ)設(shè)施、購置設(shè)備;年上半年投入 * q 萬元(不含啟用的原有固定資產(chǎn)和鋪底流動(dòng)資 金),完善項(xiàng)目實(shí)施全部所必須達(dá)到的要求,進(jìn)行產(chǎn)品試制及產(chǎn)品鑒match(COMMA;X公司 項(xiàng)目(貴公司所做項(xiàng)目名稱),是在該廠多年開發(fā)、研制 和生產(chǎn)(貴公司產(chǎn)品注冊(cè)商標(biāo)名稱)系列產(chǎn)品,并獲得企業(yè)特殊配方 和專有技術(shù)的基礎(chǔ)上,又一次投入技術(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 安徽省2024高中會(huì)考數(shù)學(xué)試卷
- 小學(xué)數(shù)學(xué)教學(xué)中的團(tuán)隊(duì)協(xié)作與德育培養(yǎng)
- 二零二五年度汽車制造企業(yè)股份轉(zhuǎn)讓合同3篇
- 開學(xué)后學(xué)生健康監(jiān)測與防疫措施
- 八上北師版月考數(shù)學(xué)試卷
- 邵陽2024年湖南邵東市農(nóng)業(yè)農(nóng)村局所屬事業(yè)單位選調(diào)5人筆試歷年典型考點(diǎn)(頻考版試卷)附帶答案詳解版
- 安全生產(chǎn)技術(shù)創(chuàng)新國際趨勢與本土應(yīng)用
- 《違約方合同解除權(quán)問題研究》
- 項(xiàng)目管理備考復(fù)習(xí)試題含答案
- 潛水員潛水作業(yè)安全2024
- 以案促改心得體會(huì)
- 2024年公文寫作基礎(chǔ)知識(shí)競賽試題庫及答案(共130題)
- 2023-2024學(xué)年浙江省麗水市蓮都區(qū)教科版三年級(jí)上冊(cè)期末考試科學(xué)試卷
- 失禁性皮炎病例護(hù)理查房課件
- 期末復(fù)習(xí)試題 (試卷)-2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué)人教版
- 2024年中國工業(yè)級(jí)硝酸銨市場調(diào)查研究報(bào)告
- 鄉(xiāng)村振興課件教學(xué)課件
- 2024年度危廢物品轉(zhuǎn)運(yùn)服務(wù)協(xié)議版
- 2023年輔警招聘公安基礎(chǔ)知識(shí)必刷題庫及答案
- 全過程造價(jià)咨詢項(xiàng)目保密及廉政執(zhí)業(yè)措施
評(píng)論
0/150
提交評(píng)論