




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、PL/0語(yǔ)言語(yǔ)法分析器實(shí)驗(yàn)報(bào)告信息資源管理學(xué)院10級(jí)檔案班馬雪靜一、實(shí)驗(yàn)內(nèi)容用bison工具生成一個(gè)PL/0語(yǔ)言的語(yǔ)法分析程序,對(duì)PL/0源程序進(jìn)行語(yǔ)法分析,并輸出歸約時(shí)所用的語(yǔ)法規(guī)則。二、實(shí)驗(yàn)環(huán)境語(yǔ)法分析器生成工具:bison編程語(yǔ)言:C三、程序設(shè)計(jì)原理與方法1.cifa.l%#include#include#include%Letter A-Za-zDigit 0-9D 1-9LetterDigit A-Za-z0-9SPACE ntf040%+return ADD;-return MINUS;*return MULTIPLY;/return DIVIDE;=return EQUAL;#r
2、eturn UNEQUAL;return LESS;return MORE;=return MOREEQUAL;:=return EVALUATE;(return LPARENTHESES; )return RPARENTHESES;,return COMMA;return SEMICOLON;.return DOT;if|IFreturn IF;then|THENreturn THEN;while|WHILEreturn WHILE;do|DOreturn DO;read|READreturn READ;write|WRITEreturn WRITE;call|CALLreturn CALL
3、;begin|BEGINreturnBEG;end|ENDreturn END;const|CONSTreturn CONST;var|VARreturn VAR;procedure|PROCEDUREreturn PROCEDURE;odd|ODDreturn ODD;DDigit*|0 return NOSIGNINTEGER;LetterLetterDigit* return IDENT;DigitLetterDigit* return ERROR;SPACE* . return ERRORCHAR;%int yywrap()return 1;2. Yufa.y%#include#inc
4、lude#includelex.yy.c%token IF THEN WHILE DO READ WRITE CALL BEG END CONST VAR PROCEDURE ODD%token ADD MINUS MULTIPLY DIVIDE EQUAL UNEQUAL LESS LESSEQUAL MORE MOREEQUAL EVALUATE%token LPARENTHESES RPARENTHESES COMMA SEMICOLON DOT ERROR ERRORCHAR%token NOSIGNINTEGER IDENT %/ := .Program:PartialProgram
5、 DOT printf( - .n);/ := PartialProgram:ConstantDeclaration VariableDeclaration ProcedureDeclaration Statementprintf( - n);|VariableDeclaration ProcedureDeclaration Statementprintf( - n);|ConstantDeclaration ProcedureDeclaration Statementprintf( - n);|ConstantDeclaration VariableDeclaration Statement
6、printf( - n);|ConstantDeclaration Statementprintf( - n);|VariableDeclaration Statementprintf( - n);|ProcedureDeclaration Statementprintf( - n);|Statementprintf( - n);/ := CONST,; ConstantDeclaration:CONST ConstList SEMICOLONprintf( - CONST ;n);/ := |,ConstList:ConstDefinationprintf( - n);|ConstList
7、COMMA ConstDefinationprintf( - ,n);/ := :=ConstDefination:IDENT EVALUATE NOSIGNINTEGERprintf( - :=n);/ := VAR,; VariableDeclaration:VAR IdentList SEMICOLONprintf( - VAR ;n);/ := |, IdentList:IDENTprintf( - n);|IdentList COMMA IDENTprintf( - ,n);/ := ; ProcedureDeclaration :ProcedureHead PartialProgr
8、am SEMICOLON ProcedureDeclaration SEMICOLONprintf(-;);|ProcedureHead PartialProgram SEMICOLON printf(-;n);/ := PROCEDURE; ProcedureHead:PROCEDURE IDENT SEMICOLONprintf( - PROCEDURE;n);/ := | Statement:EvaluateStatementprintf( - n);|ComplexStatementprintf( - n);|ConditionStatementprintf( - n);|WhileS
9、tatementprintf( - n);|ProcedureCallStatementprintf( - n);|ReadStatementprintf( - n);|WriteStatementprintf( - n);|printf( - n);/ := :=EvaluateStatement:IDENT EVALUATE Expressionprintf( - :=n);/ := BEGIN;ENDComplexStatement:BEG StatementList ENDprintf( - BEGINENDn);/ := |;StatementList:Statementprintf
10、( - n);|StatementList SEMICOLON Statementprintf( - ;n);/ := |ODDCondition:Expression RelationOperator Expressionprintf( - n);|ODD Expressionprintf( - ODDn);/ := IFTHENConditionStatement:IF Condition THEN Statementprintf( - IFTHENn);/ := +|-Expression:ADD TermListprintf( - +n);|MINUS TermListprintf(
11、- -n);|TermListprintf( - n);/ := |TermList:Termprintf( - n);|TermList ADD Termprintf( - +n);|TermList MINUS Termprintf( - -n);/ := Term:GeneListprintf( - n);/ := |GeneList:Geneprintf( - n);|GeneList MULTIPLY Geneprintf( - *n);|GeneList DIVIDE Geneprintf( - /n);/ := |() Gene:IDENTprintf( - n);|NOSIGN
12、INTEGERprintf( - n);|LPARENTHESES Expression RPARENTHESESprintf( - ()n);/ := =|#|= */RelationOperator:EQUALprintf( - =n);|UNEQUALprintf( - #n);|LESSprintf( - n);|LESSEQUALprintf( - =n);|MOREprintf( - n);|MOREEQUALprintf( - =n);/ := WHILEDO WhileStatement:WHILE Condition DO Statementprintf( - WHILEDO
13、n);/ := CALL */ProcedureCallStatement:CALL IDENTprintf( - CALLn);/ := READ(,) ReadStatement:READ LPARENTHESES IdentList RPARENTHESESprintf( - READ()n);/ := WRITE(,) WriteStatement:WRITE LPARENTHESES ExpressionList RPARENTHESESprintf( - WRITE()n);/ := |, ExpressionList:Expressionprintf( - n);|ExpressionList COMMA Expressionprintf( - ,n);%int main()char filename20;printf(file name:);scanf(%s,filename);yyin=fopen(filename,r);if(!yyin)printf(nno filesn);return 0;yyparse(); fclose(yyin); return 0;yyerror(char *s) printf
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)鉚螺母市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)輸電線路覆冰在線專業(yè)監(jiān)測(cè)站市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)花形風(fēng)車市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)線繞電位器市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)短柄水勺市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)水滸酒市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)木制棋牌市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)探傷儀市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)廣告級(jí)霓虹燈粉管市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)定時(shí)器收音機(jī)市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 金融行業(yè)信息安全培訓(xùn)
- 醫(yī)療廢物管理
- 山東詠坤新材料科技有限公司年產(chǎn)4000噸鋰鈉電池負(fù)極材料生產(chǎn)項(xiàng)目報(bào)告書
- 中老年人健康教育宣講
- IT云圖2025:中國(guó)算力區(qū)域競(jìng)爭(zhēng)力研究
- 四川省成都市成華區(qū)2023-2024學(xué)年高一下學(xué)期期末考試數(shù)學(xué)試題(解析版)
- 環(huán)衛(wèi)設(shè)備部技能提升與安全管理培訓(xùn)會(huì)
- 規(guī)范辦學(xué)專題宣講
- 某地500kW-2MWh用戶側(cè)儲(chǔ)能系統(tǒng)技術(shù)方案(削峰填谷儲(chǔ)能項(xiàng)目)
- 小學(xué)電路知識(shí)課件
- 小猴子下山第一課時(shí)教學(xué)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論