资源简介

合工大 编译原理 课程设计 LR(1) 含实验报告和完整源文件

资源截图

代码片段和文件信息

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;
using System.IO;
using System.Collections;

namespace LR1AnalysisTable
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }

        #region 导入文法文本
        /// 
        /// 导入文法
        /// 

        /// 
        /// 
        private void btn_InsertGramar_Click(object sender EventArgs e)
        {
            //初始化各个数据结构存储空间
            UserList.InitUserList();
            //打开文法文本
            openGrammar(openFileDialog1);
        }
        #endregion


        #region 分析文法文本
        /// 
        /// 打开文法文本插入文法
        /// 

        /// 
        public void openGrammar(OpenFileDialog dialog)
        {
                dialog.title = “请选择要插入的文法文本“;
                dialog.Filter = “文本文件(*.txt)|*.txt“;
                dialog.CheckFileExists = true;
                dialog.CheckPathExists = true;
                dialog.Multiselect = false;
                if (dialog.ShowDialog() == DialogResult.OK)
                {
                    tb_grammarPath.Text = dialog.FileName;
                    StreamReader sr = File.OpenText(dialog.FileName);
                    
                    //读入文法文本内产生式
                    readGrammar(sr);                    
                    sr.Close();
                    EnableButton();     //激活各个按钮
                }
                else
                {
                    tb_grammarPath.Text = ““;
                    DisableButton();    //失活各个按钮
                    MessageBox.Show(“你没有选择文法文本!“ “信息提示“);
                }            
        }
        /// 
        /// 将文法产生式读入内存
        /// 

        private void readGrammar(StreamReader sr)
        {
            //循环读取产生式
            while (!sr.EndOfStream)
            {
                //产生式:production
                string production = sr.ReadLine().Trim();   //按行读入文法文本
                
                if (!string.IsNullOrEmpty(production))      //如果该行不为空
                {
                    //将产生式 存入 产生式队列
                    UserList.List_Production.Add(production);
                    
                    //构造(非)终结符列表
                    Create_Non_Terminator(production);
                    
                    //生成项目链表
                    CreatePatternList(production);
                }
            }
            UserList.List_Terminator.Add(“#“);              //将“#”添加到终结符列表中
        }
        #endregion
        /// 
        /// 激活各个按钮
        /// 

        private void EnableButton()
        {
            btn_Closure.Enabled = true;
            btn_DoAnalysi

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-01-15 21:36  LR1AnalysisTable\
     目录           0  2013-01-15 21:36  LR1AnalysisTable\LR1AnalysisTable\
     文件        3872  2012-12-20 21:02  LR1AnalysisTable\LR1AnalysisTable\LR1AnalysisTable.csproj
     文件         499  2012-12-20 21:02  LR1AnalysisTable\LR1AnalysisTable\Program.cs
     目录           0  2013-01-15 21:36  LR1AnalysisTable\LR1AnalysisTable\Properties\
     文件        1388  2012-12-20 21:02  LR1AnalysisTable\LR1AnalysisTable\Properties\AssemblyInfo.cs
     文件        2882  2012-12-20 21:02  LR1AnalysisTable\LR1AnalysisTable\Properties\Resources.Designer.cs
     文件        5612  2012-12-20 21:02  LR1AnalysisTable\LR1AnalysisTable\Properties\Resources.resx
     文件        1101  2012-12-20 21:02  LR1AnalysisTable\LR1AnalysisTable\Properties\Settings.Designer.cs
     文件         249  2012-12-20 21:02  LR1AnalysisTable\LR1AnalysisTable\Properties\Settings.settings
     文件        1762  2012-12-20 21:02  LR1AnalysisTable\LR1AnalysisTable\StructFirstSet.cs
     文件        2029  2012-12-20 21:02  LR1AnalysisTable\LR1AnalysisTable\UserList.cs
     目录           0  2013-01-15 21:36  LR1AnalysisTable\LR1AnalysisTable\bin\
     目录           0  2013-01-15 21:36  LR1AnalysisTable\LR1AnalysisTable\bin\Debug\
     文件       22528  2012-12-21 09:26  LR1AnalysisTable\LR1AnalysisTable\bin\Debug\LR1AnalysisTable.exe
     文件       62976  2012-12-21 09:26  LR1AnalysisTable\LR1AnalysisTable\bin\Debug\LR1AnalysisTable.pdb
     文件       14328  2012-12-21 09:29  LR1AnalysisTable\LR1AnalysisTable\bin\Debug\LR1AnalysisTable.vshost.exe
     文件         490  2009-06-11 05:14  LR1AnalysisTable\LR1AnalysisTable\bin\Debug\LR1AnalysisTable.vshost.exe.manifest
     文件       11241  2012-12-21 09:21  LR1AnalysisTable\LR1AnalysisTable\frmMain.Designer.cs
     文件       31538  2012-12-21 09:25  LR1AnalysisTable\LR1AnalysisTable\frmMain.cs
     文件        6017  2012-12-21 09:21  LR1AnalysisTable\LR1AnalysisTable\frmMain.resx
     目录           0  2013-01-15 21:36  LR1AnalysisTable\LR1AnalysisTable\obj\
     目录           0  2013-01-15 21:36  LR1AnalysisTable\LR1AnalysisTable\obj\Debug\
     文件         180  2012-12-20 21:02  LR1AnalysisTable\LR1AnalysisTable\obj\Debug\LR1AnalysisTable.Properties.Resources.resources
     文件        1618  2012-12-21 09:29  LR1AnalysisTable\LR1AnalysisTable\obj\Debug\LR1AnalysisTable.csproj.FileListAbsolute.txt
     文件         849  2012-12-21 09:21  LR1AnalysisTable\LR1AnalysisTable\obj\Debug\LR1AnalysisTable.csproj.GenerateResource.Cache
     文件       22528  2012-12-21 09:26  LR1AnalysisTable\LR1AnalysisTable\obj\Debug\LR1AnalysisTable.exe
     文件         180  2012-12-21 09:21  LR1AnalysisTable\LR1AnalysisTable\obj\Debug\LR1AnalysisTable.frmMain.resources
     文件       62976  2012-12-21 09:26  LR1AnalysisTable\LR1AnalysisTable\obj\Debug\LR1AnalysisTable.pdb
     目录           0  2013-01-15 21:38  LR1AnalysisTable\LR1AnalysisTable\obj\Debug\Refactor\
     目录           0  2013-01-15 21:38  LR1AnalysisTable\LR1AnalysisTable\obj\Debug\TempPE\
............此处省略3个文件信息

评论

共有 条评论