编译原理实验报告 (4)

}

}

{

case DIGIT: p=p*10+d;CurrentState=6;break; default: report_error(1);Class=0; }

CurrentState=EndState;

break;

{

case DIGIT:p=p*10+d;break;

default: FCON=(float)w*pow(10,e*p-n);Class=ClassF;CurrentState=EndState; }

case 6:switch (symbol)

break;

return CurrentState;

int LEX (FILE *fp) { }

//*****************浮点数部分代码*********

int out(int n,char *p) {

int t=0; switch(n) {

case 1:printf(\,rw[n-1].Word);t=1;break; case 2:printf(\,rw[n-1].Word);t=2;break; case 3:printf(\,rw[n-1].Word);t=3;break; case 4:printf(\,rw[n-1].Word);t=4;break; case 5:printf(\,rw[n-1].Word);t=5;break; case 6:printf(\,p);t=6;break; case 7:printf(\,ICON);t=7;break; case 8:printf(\);t=8;break; case 9:printf(\);t=9;break; case 10:printf(\);t=10;break; case 11:printf(\);t=11;break; int ch;

CurrentState=0;

while (CurrentState!=EndState){ }

return Class;

ch=GetChar(fp);

EXCUTE (CurrentState,ch);

}

case 12:printf(\);t=12;break; case 13:printf(\);t=13;break; case 14:printf(\);t=14;break; case 15:printf(\);t=15;break; case 16:printf(\);t=16;break; case 17:printf(\);t=17;break; case 18:printf(\);t=18;break;

case 27:printf(\,FCON);return 27;break; case 28:printf(\);t=28;break; case 29:printf(\);t=29;break; case 30:printf(\);t=30;break; default : t=report_error(3); } return t;

break;

int scanner_example (FILE *fp) {

char ch; int i, c,t; lf=l;

ch=fgetc(fp); l+=1;

if (isalpha(ch)) /*it must be a identifer!*/ {

TOKEN[0]=ch; ch=fgetc(fp); l+=1; i=1;

while(isalnum(ch)) { }

TOKEN[i]='\\0'; c=lookup (TOKEN); if (c==0)

t=out (ID,TOKEN); t=out (c,\); else

fseek(fp,-1,1);

TOKEN[i]=ch; i++; ch=fgetc(fp); l+=1;

}

l-=1;

else if(isdigit(ch)||ch=='.'){ }

else switch(ch){ l+=1;

if(ch=='=')t=out(LE,\); else if(ch=='>') t=out (NE,\); else{ } break; break; l+=1; if(ch=='=') } break; l+=1; if(ch=='=')

t=out(GE,\); fseek(fp,-1,1); l-=1;

t=out(GT,\); else{

fseek(fp,-1,1); l-=1;

t=out (LT,\); TOKEN[0]=ch; fseek(fp,-1,1); l-=1;

int k=LEX(fp); if(k==ClassF) { }

else if(UINT==k) { }

fseek(fp,-1,1); l-=1;

t=out(UINT,\); t=out(UFCON,\);

case '<': ch=fgetc(fp);

case '=': t=out(EQ, \); case '>': ch=fgetc(fp);

case ':': t=ch=fgetc(fp);

}

t=out(IS,\); fseek(fp,-1,1); t=report_error(2); l-=1; break;

else {

case '+':t=out(ADD,\);break; case '-':t=out(SUB,\);break; case '*':t=out(MUL,\);break; case '/':t=out(DIV,\);break; case '(':t=out(LP,\);break; case ')':t=out(RP,\);break; case '#':t=out(EOI,\);break;

default: t=report_error(3); }

int IsVt(int a) { }

/*存储算符优先关系表,大于为,小于或等于为-1,其它为表示出*/ int changchartoint(FILE *fp) /*将字符转为数字,以得到算符优先值*/ {

int t; char ch; lf=l;

ch=fgetc(fp); coor(ch);

if(ch==EOF) t=20; while(ch!=EOF) {

if(ch==' '||ch==9||ch==10){

ch=fgetc(fp); coor(ch);

if(ch==EOF) return 20;

if(a==0||a==1||a==2||a==3||a==4||a==5||a==6||a==7||a==8||a==9)

return RIGHT; return ERROR; else break; }

return t;

}

}

} else{ }

fseek(fp,-1,1); l-=1;

switch(scanner_example(fp)){ case ADD:t=0;break; case SUB:t=1;break; case MUL:t=2;break; case DIV:t=3;break; case LP:t=4;break; case RP:t=5;break; case ID:t=6;break; case UINT:t=7;break; case UFCON:t=7;break; case IS:t=8;break; case EOI:t=9;break; case 10:t=10;break; }

break;

return t;

void changinttochar(int t){ }

switch(t){

case 0:printf(\);break; case 1:printf(\);break; case 2:printf(\);break; case 3:printf(\);break; case 4:printf(\);break; case 5:printf(\);break; case 6:printf(\);break; case 7:printf(\);break; case 8:printf(\);break; case 9:printf(\);break; case 10:printf(\);break; }


编译原理实验报告 (4).doc 将本文的Word文档下载到电脑

下一篇:自然地理

相关推荐
相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7 元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xxxxxx QQ:xxxxxx