• 大小: 1017KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-21
  • 语言: 其他
  • 标签: WHILE  LR方法  

资源简介

WHILE循环语句的翻译程序设计(LR方法、输出四元式)

资源截图

代码片段和文件信息

#include
#include 
#include
#include 
#include
#include
#include “conio.h“
using namespace std;
ofstream coutf(“cifa.txt“ios::out);//结果输出至文件cifa.txt
ofstream couty(“yufa.txt“ios::out);//结果输出至文件yufa.txt
ofstream couts(“obj.txt“ios::out);//结果输出至文件obj.txt
char shuru[100]tmp;
char sr[100];
char b[10]op[10]rop[10];
char a[10];
int q=0;

struct Table{
    char act_0[10];
    int act_1[10];
    int go[4];
}action[18];

struct  sys{
char f;
char op1;
char op2;
char result;
}equ[10];

void Init(){
    /*---------------       ACTION      -----------------------*/
    action[0].act_0[0]=‘s‘;       action[0].act_1[0]=2;
    action[1].act_0[9]=‘Z‘;      
    action[2].act_0[1]=‘s‘;       action[2].act_1[1]=3;
    action[3].act_0[5]=‘s‘;       action[3].act_1[5]=5;
    action[4].act_0[2]=‘s‘;       action[4].act_1[2]=6;
    action[5].act_0[2]=‘r‘;       action[5].act_1[2]=7;
    action[5].act_0[7]=‘s‘;       action[5].act_1[7]=7;
    action[6].act_0[3]=‘s‘;       action[6].act_1[3]=9;
    action[7].act_0[5]=‘s‘;       action[7].act_1[5]=8;
    action[8].act_0[2]=‘r‘;       action[8].act_1[2]=6; 
    action[9].act_0[5]=‘s‘;       action[9].act_1[5]=14;
    action[10].act_0[4]=‘r‘;      action[10].act_1[4]=3;
    action[10].act_0[5]=‘s‘;      action[10].act_1[5]=14;
    action[11].act_0[4]=‘s‘;      action[11].act_1[4]=12;
action[12].act_0[9]=‘r‘;      action[12].act_1[9]=1;
    action[13].act_0[4]=‘r‘;      action[13].act_1[4]=2;
    action[14].act_0[8]=‘s‘;      action[14].act_1[8]=17;
    action[14].act_0[6]=‘s‘;      action[14].act_1[6]=15;
    action[15].act_0[5]=‘s‘;      action[15].act_1[5]=14;
action[16].act_0[4]=‘r‘;     action[16].act_1[4]=4;
action[16].act_0[5]=‘r‘;     action[16].act_1[5]=4;
action[17].act_0[4]=‘r‘;     action[17].act_1[4]=5;
action[17].act_0[5]=‘r‘;     action[17].act_1[5]=5;

    /*--------------------     GOTO      -------------------------*/
    action[0].go[0]=1;
    action[3].go[2]=4;;
    action[9].go[1]=11;
    action[9].go[3]=10;
    action[10].go[1]=13;
    action[10].go[3]=10;
    action[15].go[3]=16;
    
}

void cifa()
{
int i=0j=0k=0m=0;
    for(q=1;q    {
     tmp=sr[q];
          if(tmp>=‘0‘&&tmp<=‘9‘||tmp>=‘a‘&&tmp<=‘z‘||tmp>=‘A‘&&tmp<=‘Z‘)
       a[i++]=tmp;
     else if(tmp==‘+‘||tmp==‘-‘||tmp==‘/‘||tmp==‘*‘)
         op[j++]=tmp;
      else if(tmp==‘>‘||tmp==‘<‘)
                 rop[k++]=tmp;
            else if(tmp==‘(‘||tmp==‘)‘||tmp==‘{‘||tmp==‘}‘||tmp==‘;‘)
                     b[m++]=tmp;                  
    }
    cout<<“词法分析完成结果输出到文件cifa.txt“<    coutf<<“词法分析结果:“<    coutf<<“关键字:“<<“w“<    coutf<<“变量名:“;
        for(i=0;i    { 
        coutf<    }
     coutf<     coutf<<“表达式运算符:“;
    for(i=0;i    { 
        coutf<    }
    

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

     文件          0  2010-01-10 16:12  0708袁立明13\cifa.txt

     文件          0  2010-01-07 15:24  0708袁立明13\Debug\cifa.txt

     文件          0  2010-01-07 15:24  0708袁立明13\Debug\obj.txt

     文件      82944  2010-01-10 16:12  0708袁立明13\Debug\vc60.idb

     文件     118784  2010-01-07 10:31  0708袁立明13\Debug\vc60.pdb

     文件     602256  2010-01-10 16:12  0708袁立明13\Debug\while(LR).exe

     文件     850072  2010-01-10 16:12  0708袁立明13\Debug\while(LR).ilk

     文件     354722  2010-01-10 16:11  0708袁立明13\Debug\while(LR).obj

     文件    2480928  2010-01-07 10:31  0708袁立明13\Debug\while(LR).pch

     文件    1180672  2010-01-10 16:12  0708袁立明13\Debug\while(LR).pdb

     文件          0  2010-01-07 15:24  0708袁立明13\Debug\yufa.txt

     文件         17  2010-01-10 16:12  0708袁立明13\input.txt

     文件          0  2010-01-10 16:12  0708袁立明13\obj.txt

     文件       9925  2009-06-21 22:33  0708袁立明13\while(LR).cpp

     文件       3439  2010-01-10 16:11  0708袁立明13\while(LR).dsp

     文件        526  2010-01-10 16:12  0708袁立明13\while(LR).dsw

     文件      41984  2010-01-10 16:12  0708袁立明13\while(LR).ncb

     文件      48640  2010-01-10 16:12  0708袁立明13\while(LR).opt

     文件        753  2010-01-10 16:12  0708袁立明13\while(LR).plg

     文件          0  2010-01-10 16:12  0708袁立明13\yufa.txt

     目录          0  2010-01-10 18:39  0708袁立明13\Debug

     目录          0  2010-01-10 18:39  0708袁立明13

----------- ---------  ---------- -----  ----

              5775662                    22


评论

共有 条评论