教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教育文库 >

编译原理_实验报告(2)

来源:网络收集 时间:2026-09-08
导读: } case 12:{ flag = 13; status = 1; break; } } if (status == 0) { flag = 100; } } /*handle digits*/ else if ((ch = 0) (ch = 9)) { number = 0; while ((ch = 0 ) (ch = 9 )) { number = number*10+(ch-0); c

}

case 12:{

flag = 13;

status = 1;

break;

}

}

if (status == 0)

{

flag = 100;

}

}

/*handle digits*/

else if ((ch >= '0') && (ch <= '9')) {

number = 0;

while ((ch >= '0' ) && (ch <= '9' )) {

number = number*10+(ch-'0');

ch= program[i++];

}

flag = 200;

i--;

}

/*opereation and edge handle*/ else switch (ch)

{

case '=':{

if (ch == '=')

words[j++] = ch;

words[j]= '\0';

ch= program[i++];

if (ch == '=')

{

words[j++] = ch;

words[j]= '\0';

flag = 401;

}

else

{

i--;

flag = 402;

}

break;

}

case'>':{

if (ch == '>')

words[j++] = ch;

words[j] = '\0';

ch= program[i++];

if (ch == '=')

{

words[j++] = ch;

words[j] = '\0';

flag = 403;

}

else

{

i--;

flag = 404;

}

break;

}

case'<':{

if (ch == '<')

words[j++] = ch;

words[j] = '\0';

ch= program[i++];

if (ch == '=')

{

words[j++] = ch;

words[j]= '\0';

flag = 405;

}

else

{

i--;

flag = 406;

}

break;

}

case'!':{

if (ch == '!')

words[j++] = ch;

words[j]= '\0';

ch = program[i++];

if (ch == '=')

{

5

编译原理实验

words[j++] = ch; words[j]= '\0'; flag= 407;

}

else

{

i--;

flag = 408;

}

break;

}

case'+':{

if (ch == '+')

words[j++] = ch; words[j] = '\0'; ch= program[i++]; if (ch == '=')

{

words[j++] = ch;

words[j] = '\0'; flag= 409;

}

else if (ch == '+') {

words[j++] = ch;

words[j] = '\0'; flag= 410;

}

else

{

i--;

flag= 411;

}

break;

}

case'-':{

if (ch == '-')

words[j++] = ch;

words[j] = '\0';

ch= program[i++];

if (ch == '=')

{

words[j++] = ch;

words[j] = '\0';

flag = 412;

}

else if( ch == '-') {

words[j++] = ch;

words[j] = '\0';

flag = 413;

}

else

{

i--;

flag = 414;

}

break;

}

case'*':{

if (ch == '*')

words[j++] = ch;

words[j] = '\0';

ch= program[i++];

if (ch == '=')

{

words[j++] = ch;

words[j] = '\0';

flag = 415;

}

else

{

i--;

flag = 416;

}

break;

}

case'/':{

if (ch == '/')

words[j++] = ch;

words[j] = '\0';

ch= program[i++];

if (ch == '=')

{

words[j++] = ch;

words[j] = '\0';

flag= 417;

}

else

{

i--;

flag = 418;

}

break;

}

case';':{

words[j] = ch;

words[j+1] = '\0';

flag = 501;

break;

}

case'(':{

6

编译原理实验

words[j] = ch;

words[j+1] = '\0';

flag = 502;

break;

}

case')':{

words[j] = ch;

words[j+1] = '\0';

flag = 503;

break;

}

case'[':{

words[j] = ch;

words[j+1] = '\0';

flag = 504;

break;

}

case']':{

words[j] = ch;

words[j+1] = '\0';

flag = 505;

break;

}

case'{':{

words[j] = ch;

words[j+1] = '\0';

flag= 506;

break;

}

case'}':{

words[j] = ch;

words[j+1] = '\0';

flag = 507;

break;

}

case':':{

words[j] = ch;

words[j+1] = '\0';

flag = 508;

break;

}

case'"':{

words[j] = ch;

words[j+1] = '\0';

flag = 509;

break;

}

case'%':{

if (ch == '%')

words[j++] = ch; words[j] = '\0';

ch = program[i++];

if (ch == '=')

{

words[j++] = ch;

words[j] = '\0';

flag= 510;

}

else

{

i--;

flag = 511;

}

break;

}

case',':{

words[j] = ch;

words[j+1] = '\0';

flag = 512;

break;

}

case'#':{

words[j] = ch;

words[j+1] = '\0';

flag = 513;

break;

}

case'@':{

words[j] = '#';

flag = 0;

break;

}

default:{

flag = -1;

break;

}

}

return flag;

}

main()

{

i=0;

printf("please input a program end with @");

do

{

ch = getchar();

program[i++] = ch;

}while(ch != '@');

i = 0;

do{

flag = Scan(program);

7

编译原理实验

if (flag == 200)

{

printf("(%2d,%4d)",flag,number);

}

else if (flag == -1)

{

printf("(%d,error)",flag);

}

else

{

printf("(%2d,%4s)",flag,words);

}

}while (flag != 0);

system("pause");

}

8

编译原理实验

实验二:语法分析

一、实验目的

给出PL/0文法规范,要求编写PL/0语言的语法分析程序。

…… 此处隐藏:2099字,全部文档内容请下载后查看。喜欢就下载吧 ……

编译原理_实验报告(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/110442.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)