资源简介

基于LR(0)分析算法 将算数表达式转换成四元式

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

struct Cifa //词法结构体
{
    public int type;
    public char word;
}

struct Yuyi //四元式语义结构体
{
    public char op;
    public  char op1 ;
    public  char op2 ;
    public char result ;
}

namespace 课程设计
{
    class classfor
    {
        char result_number = ‘A‘;//记录四元式结果编号
        int  yuyi_number = 0;//记录语义数组编号
        public int input_error=0;//记录输入是否有误
        public int fx_error = 0;//记录该表达式是否为句子

        Stack FXZ = new Stack();//语法分析栈
        Stack YYZ = new Stack();//语义分析栈
        Cifa[] CFFX_result = new Cifa[20];//记录词法分析结果
        Yuyi[] yuyi = new Yuyi[30];//记录四元式数组
        public string str;//记录算数表达式
        public char[] st;//算数表达式数组
        int st_length;//记录数组长度
        public string danci_type;//记录单词种类
        public string cifa_result;//记录词法输出
        public string yufa_result=“语法分析结果如下:\n“;//记录语法输出
        public string Four=“转换四元式如下:\n“;//记录四元式输出
        public string Wenfa = “文法如下:\nE->E+T|E-T\nE->T\nT->T*F|T/F\nT->F\nF->(E)\nF->i“;//文法输出

        public int[]  ACTION = new int[126]{       //ACTION表 +/- *// (/) i #
                                    { 004050 }
                                    { 60000100 }
                                    { -270-20-2}
                                    { -4-40-40-4}
                                    { 004050}
                                    {-6-60-60-6}
                                    {004050}
                                    {004050}
                                    {6001100}
                                    {-170-10-1}
                                    {-3-30-30-3}
                                    {-5-50-50-5}
                                };

        public int[] GOTO = new int[12 3]  //GOTO表E T F
        {
            {123}
            {000}
            {000}
            {000}
            {823}
            {000}
            {093}
            {0010}
            {000}
            {000}
            {000}
            {000}

        };
        




        public void change() //string 转 char[]
        {
            st_length = str.Length;
            st=new char[str.Length];
            for (int i = 0; i < str.Length; i++)  
            {
                st[i] = str[i];
            }
        }
    
        
        public void CFFX()   //词法分析函数
        {
            change();
            for(int i=0;i            {
                int type;
                if(st[i]>=48&&st[i]<=57)//数字判断
                {
                    type = 2;
                }
                else
                    if ((st[i] >= 65 && st[i] <= 90) || (st[i] >= 97 && st[i] <= 122))//大小写判断
                    {
                        type = 1;
                    }
            

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-12-03 13:57  课程设计\
     文件       18686  2011-11-30 15:46  课程设计\流程图.png
     目录           0  2011-11-29 15:26  课程设计\课程设计\
     文件         878  2011-11-29 08:16  课程设计\课程设计.sln
     文件       25088  2011-12-02 19:15  课程设计\课程设计.suo
     目录           0  2011-11-29 08:42  课程设计\课程设计\bin\
     目录           0  2011-11-29 21:03  课程设计\课程设计\bin\Debug\
     文件       17920  2011-11-29 23:21  课程设计\课程设计\bin\Debug\课程设计.exe
     文件       44544  2011-11-29 23:21  课程设计\课程设计\bin\Debug\课程设计.pdb
     文件       11608  2011-12-02 15:14  课程设计\课程设计\bin\Debug\课程设计.vshost.exe
     文件         490  2010-03-17 22:39  课程设计\课程设计\bin\Debug\课程设计.vshost.exe.manifest
     目录           0  2011-11-29 08:42  课程设计\课程设计\bin\Release\
     文件       11935  2011-11-29 21:01  课程设计\课程设计\classfor.cs
     文件        1297  2011-11-29 21:07  课程设计\课程设计\Form1.cs
     文件        9569  2011-11-29 21:07  课程设计\课程设计\Form1.Designer.cs
     文件        5817  2011-11-29 21:07  课程设计\课程设计\Form1.resx
     目录           0  2011-11-29 08:16  课程设计\课程设计\obj\
     目录           0  2011-11-29 08:16  课程设计\课程设计\obj\x86\
     目录           0  2011-11-29 23:21  课程设计\课程设计\obj\x86\Debug\
     文件        6062  2011-12-02 15:14  课程设计\课程设计\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
     文件        1066  2011-11-29 23:21  课程设计\课程设计\obj\x86\Debug\GenerateResource-ResGen.read.1.tlog
     文件         742  2011-11-29 23:21  课程设计\课程设计\obj\x86\Debug\GenerateResource-ResGen.write.1.tlog
     目录           0  2011-11-29 08:16  课程设计\课程设计\obj\x86\Debug\TempPE\
     文件        1223  2011-12-02 15:14  课程设计\课程设计\obj\x86\Debug\课程设计.csproj.FileListAbsolute.txt
     文件       17920  2011-11-29 23:21  课程设计\课程设计\obj\x86\Debug\课程设计.exe
     文件         180  2011-11-29 23:21  课程设计\课程设计\obj\x86\Debug\课程设计.Form1.resources
     文件       44544  2011-11-29 23:21  课程设计\课程设计\obj\x86\Debug\课程设计.pdb
     文件         180  2011-11-29 17:22  课程设计\课程设计\obj\x86\Debug\课程设计.Properties.Resources.resources
     文件         493  2011-11-29 08:16  课程设计\课程设计\Program.cs
     目录           0  2011-11-29 08:16  课程设计\课程设计\Properties\
     文件        1356  2011-11-29 08:16  课程设计\课程设计\Properties\AssemblyInfo.cs
............此处省略7个文件信息

评论

共有 条评论