• 大小: 71KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-28
  • 语言: C#
  • 标签: C#  

资源简介

代码简单明了并有详细的注释,最适合编译原理实验--词法分析器检查,C#实现

资源截图

代码片段和文件信息

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

namespace Lexical_Analaysis
{
    public partial class Form1 : Form
    {

        string[] 保留字 ={“begin“ “end“ “if“ “then“ “while“ “do“ “const““ var““call““procedure“};
        string[] 运算符 ={“*““+““-““=““odd“};
        string[] 界符 = { ““ “;“  “(“ “)“ “{““}“};
        int[] 常数 = new int[30];
        string[] 标识符 = new string[30];
        string[] 未知符号;
        private ArrayList temp = new ArrayList();
        int a1;//标识符
        int a2;//常数
        string a3;//运算符
        string a4;//界符
        int b1=0;
        int b2=0;
        
        public Form1()
        {
            InitializeComponent();
        }

   
        //预处理
        private string Pretreatment() 
        {
            string s1 = textBox1.Text;
            string strAll = null;//所有字符串数组
            //去除换行
            string[] str = textBox1.Lines;
            for (int i = 0; i < str.Length; i++)
            {
                strAll += str[i] + “ “;
            }

            //去除跳格,回车
            if (strAll.Contains(“/r“))
            {
                strAll = strAll.Replace(“/r“ “ “);
            }
            if (strAll.Contains(“/n“))
                strAll = strAll.Replace(“/n“ “ “);
            

            //去除多余空格
            string[] strOut = strAll.Split(‘ ‘);
            string strTmp = ““;
            for (int i = 0; i < strOut.Length; i++)
            {
                if (strOut[i] != ““)
                { 
                    strTmp += strOut[i]+“ “;
                }
            }
            return strTmp.Trim();
        }

     
        //进行分析输出
        private void analyze(string string1)
        {

            string[] str = string1.Split(new char[] { ‘ ‘ });
            for (int i = 0; i < str.Length - 1; i++)
            {
                switch (fenxi(str[i]))
                {
                    case 0:
                        listBox1.Items.Add(“$“ + str[i]+“ -“);
                        break;
                    case 1:
                        listBox1.Items.Add(“$ID“ +“ “+ a1);
                        break;
                    case 2:
                        listBox1.Items.Add(“$INT“ +“ “+a2); 
                        break;
                    case 3:
                        listBox1.Items.Add(“$“+a3+“ -“);
                        break;
                    case 4:
                        listBox1.Items.Add(“$“ + a4 + “ -“);
                        break;
                    //case 5:
                    //    listBox1.Items.Add(“ “);
                    //    break;
                }
             
            }
        }

        //单个字符串分析
        private int fenxi(string str)
        {
            if (str == null)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      13312  2015-04-11 11:40  词法分析\Lexical Analaysis\bin\Debug\Lexical Analaysis.exe

     文件      44544  2015-04-11 11:40  词法分析\Lexical Analaysis\bin\Debug\Lexical Analaysis.pdb

     文件      22984  2015-04-11 11:41  词法分析\Lexical Analaysis\bin\Debug\Lexical Analaysis.vshost.exe

     文件        490  2012-06-06 02:06  词法分析\Lexical Analaysis\bin\Debug\Lexical Analaysis.vshost.exe.manifest

     文件       7873  2015-04-10 11:26  词法分析\Lexical Analaysis\Form1.cs

     文件       5203  2015-04-09 20:44  词法分析\Lexical Analaysis\Form1.Designer.cs

     文件       6224  2015-04-09 20:44  词法分析\Lexical Analaysis\Form1.resx

     文件       3693  2013-04-29 15:33  词法分析\Lexical Analaysis\Lexical Analaysis.csproj

     文件       2867  2015-04-11 11:41  词法分析\Lexical Analaysis\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache

     文件       7083  2015-04-11 11:38  词法分析\Lexical Analaysis\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache

     文件       1514  2015-04-10 10:07  词法分析\Lexical Analaysis\obj\x86\Debug\GenerateResource.read.1.tlog

     文件       3760  2015-04-10 10:07  词法分析\Lexical Analaysis\obj\x86\Debug\GenerateResource.write.1.tlog

     文件      10640  2015-04-11 11:41  词法分析\Lexical Analaysis\obj\x86\Debug\Lexical Analaysis.csproj.FileListAbsolute.txt

     文件        975  2015-04-11 11:40  词法分析\Lexical Analaysis\obj\x86\Debug\Lexical Analaysis.csproj.GenerateResource.Cache

     文件       9174  2015-03-22 15:05  词法分析\Lexical Analaysis\obj\x86\Debug\Lexical Analaysis.csprojResolveAssemblyReference.cache

     文件      13312  2015-04-11 11:40  词法分析\Lexical Analaysis\obj\x86\Debug\Lexical Analaysis.exe

     文件      44544  2015-04-11 11:40  词法分析\Lexical Analaysis\obj\x86\Debug\Lexical Analaysis.pdb

     文件        180  2015-04-10 10:07  词法分析\Lexical Analaysis\obj\x86\Debug\Lexical_Analaysis.Form1.resources

     文件        180  2015-04-10 10:07  词法分析\Lexical Analaysis\obj\x86\Debug\Lexical_Analaysis.Properties.Resources.resources

     文件       7897  2013-05-04 22:12  词法分析\Lexical Analaysis\obj\x86\Debug\ResolveAssemblyReference.cache

     文件        498  2013-04-29 15:23  词法分析\Lexical Analaysis\Program.cs

     文件       1366  2013-04-29 15:23  词法分析\Lexical Analaysis\Properties\AssemblyInfo.cs

     文件       2884  2013-04-29 15:23  词法分析\Lexical Analaysis\Properties\Resources.Designer.cs

     文件       5612  2013-04-29 15:23  词法分析\Lexical Analaysis\Properties\Resources.resx

     文件       1102  2013-04-29 15:23  词法分析\Lexical Analaysis\Properties\Settings.Designer.cs

     文件        249  2013-04-29 15:23  词法分析\Lexical Analaysis\Properties\Settings.settings

     文件        893  2013-04-29 15:23  词法分析\Lexical Analaysis.sln

    ..A..H.     22528  2015-04-10 11:44  词法分析\Lexical Analaysis.suo

    ..A..H.     49664  2015-04-11 11:41  词法分析\Lexical Analaysis.v11.suo

     目录          0  2015-04-10 11:44  词法分析\Lexical Analaysis\obj\x86\Debug\TempPE

............此处省略12个文件信息

评论

共有 条评论