91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡(jiǎn)介

遞歸下降分析法 一、實(shí)驗(yàn)?zāi)康模? 根據(jù)某一文法編制調(diào)試遞歸下降分析程序,以便對(duì)任意輸入的符號(hào)串進(jìn)行分析。本次實(shí)驗(yàn)的目的主要是加深對(duì)遞歸下降分析法的理解。 二、實(shí)驗(yàn)說(shuō)明 1、遞歸下降分析法的功能 詞法分析器的功能是利用函數(shù)之間的遞歸調(diào)用模擬語(yǔ)法樹(shù)自上而下的構(gòu)造過(guò)程。 2、遞歸下降分析法的前提 改造文法:消除二義性、消除左遞歸、提取左因子,判斷是否為L(zhǎng)L(1)文法, 3、遞歸下降分析法實(shí)驗(yàn)設(shè)計(jì)思想及算法 為G的每個(gè)非終結(jié)符號(hào)U構(gòu)造一個(gè)遞歸過(guò)程,不妨命名為U。 U的產(chǎn)生式的右邊指出這個(gè)過(guò)程的代碼結(jié)構(gòu): (1)若是終結(jié)符號(hào),則和向前看符號(hào)對(duì)照, 若匹配則向前進(jìn)一個(gè)符號(hào);否則出錯(cuò)。 (2)若是非終結(jié)符號(hào),則調(diào)用與此非終結(jié)符對(duì)應(yīng)的過(guò)程。當(dāng)A的右部有多個(gè)產(chǎn)生式時(shí),可用選擇結(jié)構(gòu)實(shí)現(xiàn)。 三、實(shí)驗(yàn)要求 (一)準(zhǔn)備: 1.閱讀課本有關(guān)章節(jié), 2.考慮好設(shè)計(jì)方案; 3.設(shè)計(jì)出模塊結(jié)構(gòu)、測(cè)試數(shù)據(jù),初步編制好程序。 (二)上課上機(jī): 將源代碼拷貝到機(jī)上調(diào)試,發(fā)現(xiàn)錯(cuò)誤,再修改完善。第二次上機(jī)調(diào)試通過(guò)。 (三)程序要求: 程序輸入/輸出示例: 對(duì)下列文法,用遞歸下降分析法對(duì)任意輸入的符號(hào)串進(jìn)行分析: (1)E->eBaA (2)A->a|bAcB (3)B->dEd|aC (4)C->e|dc 輸出的格式如下: (1)遞歸下降分析程序,編制人:姓名,學(xué)號(hào),班級(jí) (2)輸入一以#結(jié)束的符號(hào)串:在此位置輸入符號(hào)串例如:eadeaa# (3)輸出結(jié)果:eadeaa#為合法符號(hào)串 注意: 1.如果遇到錯(cuò)誤的表達(dá)式,應(yīng)輸出錯(cuò)誤提示信息(該信息越詳細(xì)越好); 2.對(duì)學(xué)有余力的同學(xué),可以詳細(xì)的輸出推導(dǎo)的過(guò)程,即詳細(xì)列出每一步使用的產(chǎn)生式。 (四)程序思路 0.定義部分:定義常量、變量、數(shù)據(jù)結(jié)構(gòu)。 1.初始化:從文件將輸入符號(hào)串輸入到字符緩沖區(qū)中。 2.利用遞歸下降分析法分析,對(duì)每個(gè)非終結(jié)符編寫(xiě)函數(shù),在主函數(shù)中調(diào)用文法開(kāi)始符號(hào)的函數(shù)。

資源截圖

代碼片段和文件信息

using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Linq;
using?System.Text;
using?System.Windows.Forms;

namespace?Grammer_Analyse
{
????public?partial?class?Form1?:?Form
????{
????????public?Form1()
????????{
????????????InitializeComponent();
????????}

????????private?void?button1_Click(object?sender?EventArgs?e)
????????{
????????????string?str?=?textBox1.Text?+?“#“;

????????????string?str_1?=?GrammerAnalyse(ref?str);

????????????textBox2.Text?=?str_1;
????????}

????????//構(gòu)造語(yǔ)法分析函數(shù)
????????public?string?GrammerAnalyse(ref?string?str)
????????{
????????????bool?judge?=?E(ref?str);
????????????if?(judge?==?true?&&?str.Length?==1)
????????????????return?“合法串“;
????????????else
????????????????return?“不是合法串“;
????????}
????????public?bool?E(ref?string?str)
????????{
????????????string?head?=?str.Substring?(0?1);

????????????str?=?str.Remove(0?1);


????????????//a?=?head?+?“??“?+?str;
????????????if?(head?==?“e“)
????????????{
????????????????if?(B(ref?str))
????????????????{
????????????????????string?head_1?=?str.Substring(0?1);
????????????????????str?=?str.Remove(0?1);
????????????????????if?(head_1?==?“a“)
????????????????????{
????????????????????????if?(A(ref?str))
????????????????????????{
????????????????????????????return?true;
????????????????????????}
????????????????????????else?return?false;
????????????????????}
????????????????????else?return?false;
????????????????}
????????????????else?return?false;
????????????}
????????????else?return?false;
????????}

????????public?bool?A(ref?string?str)
????????{
????????????string?head?=?str.Substring(0?1);
????????????str?=?str.Remove(0?1);
????????????if?(head?==?“a“)
????????????{
????????????????return?true;???????????????
????????????}
????????????else?if?(head?==?“b“)
????????????{
????????????????if?(A(ref?str))
????????????????{
????????????????????string?head_1?=?str.Substring(0?1);
????????????????????str?=?str.Remove(0?1);
????????????????????if?(head_1?==?“c“)
????????????????????{
????????????????????????if?(C(ref?str))
????????????????????????{
????????????????????????????return?true;
????????????????????????}
????????????????????????else?return?false;
????????????????????}
????????????????????else?return?false;
????????????????}
????????????????else?return?false;
????????????}
????????????else?return?false;
????????}

????????public?bool?B(ref?string?str)
????????{
????????????string?head?=?str.Substring(0?1);
????????????str?=?str.Remove(0?1);
????????????if?(head?==?“d“)
????????????{
????????????????if?(E(ref?str))
????????????????{
????????????????????string?head_1?=?str.Substring(0?1);
????????????????????str?=?str.Remove(0?1);
????????????????????if?(head_1?==?“d“)
????????????????????{
????????????????????????return?true;
????????????????????}
????????????????????else

?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----

?????文件??????10752??2010-04-29?18:37??Grammer_Analyse\Grammer_Analyse\bin\Debug\Grammer_Analyse.exe

?????文件??????28160??2010-04-29?18:37??Grammer_Analyse\Grammer_Analyse\bin\Debug\Grammer_Analyse.pdb

?????文件??????14328??2010-04-29?18:37??Grammer_Analyse\Grammer_Analyse\bin\Debug\Grammer_Analyse.vshost.exe

?????文件????????490??2009-06-11?05:14??Grammer_Analyse\Grammer_Analyse\bin\Debug\Grammer_Analyse.vshost.exe.manifest

?????文件???????4256??2010-04-29?18:37??Grammer_Analyse\Grammer_Analyse\Form1.cs

?????文件???????6111??2010-04-29?18:37??Grammer_Analyse\Grammer_Analyse\Form1.Designer.cs

?????文件???????5814??2010-04-29?18:37??Grammer_Analyse\Grammer_Analyse\Form1.resx

?????文件???????3823??2010-04-22?23:57??Grammer_Analyse\Grammer_Analyse\Grammer_Analyse.csproj

?????文件????????756??2010-04-29?18:37??Grammer_Analyse\Grammer_Analyse\obj\Debug\Grammer_Analyse.csproj.FileListAbsolute.txt

?????文件????????847??2010-04-29?18:37??Grammer_Analyse\Grammer_Analyse\obj\Debug\Grammer_Analyse.csproj.GenerateResource.Cache

?????文件??????10752??2010-04-29?18:37??Grammer_Analyse\Grammer_Analyse\obj\Debug\Grammer_Analyse.exe

?????文件????????180??2010-04-29?18:37??Grammer_Analyse\Grammer_Analyse\obj\Debug\Grammer_Analyse.Form1.resources

?????文件??????28160??2010-04-29?18:37??Grammer_Analyse\Grammer_Analyse\obj\Debug\Grammer_Analyse.pdb

?????文件????????180??2010-04-22?23:57??Grammer_Analyse\Grammer_Analyse\obj\Debug\Grammer_Analyse.Properties.Resources.resources

?????文件????????508??2010-04-20?16:43??Grammer_Analyse\Grammer_Analyse\Program.cs

?????文件???????1386??2010-04-20?16:00??Grammer_Analyse\Grammer_Analyse\Properties\AssemblyInfo.cs

?????文件???????2880??2010-04-20?16:00??Grammer_Analyse\Grammer_Analyse\Properties\Resources.Designer.cs

?????文件???????5612??2010-04-20?16:00??Grammer_Analyse\Grammer_Analyse\Properties\Resources.resx

?????文件???????1100??2010-04-20?16:00??Grammer_Analyse\Grammer_Analyse\Properties\Settings.Designer.cs

?????文件????????249??2010-04-20?16:00??Grammer_Analyse\Grammer_Analyse\Properties\Settings.settings

?????文件????????935??2010-04-20?16:00??Grammer_Analyse\Grammer_Analyse.sln

????..A..H.?????17408??2010-04-29?18:38??Grammer_Analyse\Grammer_Analyse.suo

?????目錄??????????0??2010-04-22?23:53??Grammer_Analyse\Grammer_Analyse\obj\Debug\TempPE

?????目錄??????????0??2010-04-22?23:55??Grammer_Analyse\Grammer_Analyse\bin\Debug

?????目錄??????????0??2010-04-29?18:37??Grammer_Analyse\Grammer_Analyse\obj\Debug

?????目錄??????????0??2010-04-22?23:57??Grammer_Analyse\Grammer_Analyse\bin

?????目錄??????????0??2010-04-22?23:53??Grammer_Analyse\Grammer_Analyse\obj

?????目錄??????????0??2010-04-22?23:54??Grammer_Analyse\Grammer_Analyse\Properties

?????目錄??????????0??2010-04-29?18:37??Grammer_Analyse\Grammer_Analyse

?????目錄??????????0??2010-04-21?16:43??Grammer_Analyse

............此處省略3個(gè)文件信息

評(píng)論

共有 條評(píng)論

相關(guān)資源