0916编译原理第二次上机作业

#include<stdio.h>

void Fenxi(a,b);
int i;
main(){
    char a[50];
    printf("请输入源程序:");
    gets(a);
    printf("您要分析的源程序为:");
    printf("%s",a);
    printf("\n");
    for(i=0;i<50;i++)
    {
        Fenxi(a[i],a[i+1]);
    }
    printf("\n");
}

void Fenxi(a,b)
{
    switch(a){
        case‘+‘:
            printf("(13,+)");
            break;
        case‘-‘:
            printf("(14,-)");
            break;
        case‘*‘:
            printf("(15,*)");
            break;
        case‘/‘:
            printf("(16,/)");
            break;
        case‘:‘:
            if(b==‘=‘)
            {
                i++;
                printf("(18,:=)");
            }
            else
                printf("(17,:)");
            break;
        case‘<‘:
            if(b==‘>‘)
            {
                i++;
                printf("(21,<>)");
            }
            else if(b==‘=‘)
            {
                i++;
                printf("(22,<=)");
            }
            else
                printf("(20,<)");
            break;
        case‘>‘:
            if(b==‘=‘)
            {
                i++;
                printf("(24,>=)");
            }
            else
                printf("(23,>)");
            break;
        case‘=‘:
            printf("(25,=)");
            break;
        case‘;‘:
            printf("(26,;)");
            break;
        case‘(‘:
            printf("(27,()");
            break;
        case‘)‘:
            printf("(28,))");
            break;
        case‘#‘:
            printf("(20,#)");
            break;
        default:
            break;
    }
}
时间: 2024-10-22 05:42:26

0916编译原理第二次上机作业的相关文章

0916 编译原理第二次上机作业

#include<stdio.h>#include<string.h>#include<iostream.h>char prog[80],token[8];char ch;int syn,p,m=0,n,row,sum=0;char *rwtab[6]={"begin","if","then","while","do","end"}; void sca

0916 编译原理第二次上机实验

#include<stdio.h>#include<string.h>void Fenxi(char c,char b);void word(char a[]);void number(char a[]);int i;  //定义全局变量iint s=1; //用来记录是否存在非法字符main(){    char a[50];    printf("请输入源程序:");    gets(a);    printf("您要分析的源程序为:")

SDN第二次上机作业

SDN第二次上机作业 1.安装floodlight 参考链接:http://www.sdnlab.com/19189.html 2.生成拓扑并连接控制器floodlight,利用控制器floodlight查看图形拓扑 拓扑如图所示 提交要求:控制器floodlight所示可视化图形拓扑的截图,及主机拓扑连通性检测截图 3.利用字符界面下发流表,使得'h1'和'h2' ping 不通 参考链接:http://www.sdnlab.com/19394.html 提交要求:流表截图,及拓扑连通性截图

编译原理-第二章 一个简单的语法指导编译器-2.4 语法制导翻译

语法制导翻译: 定义:语法制导翻译是通过向一个文法的产生式附加一些规则或程序片段而得到的 功能:给定词法单元流,通过向一个文法产生式附加一些语义动 作,语法制导分析产生语法分析树,并实现翻译动作 相关概念: 属性:表示与某个程序构造相关的任意的量,因为用文法符号(终结符号或非终结符号)来表示程序构造,所以可将属性的概念从程序构造扩展到表示这些构造的文法符号上 综合属性:如果某个属性在语法分析树节点N上的值由N的子节点和N本身的属性值确定,则该属性为综合属性,其性质为只需对语法分析树进行一次自底向

编译原理第二次作业 编译器任务总结

在学习了编译原理后我开始明白编译的工作原理了,也更了解编译语言的结构.明白了编译器的编写中需要注意的各项问题,更了解了编译器的编译过程为我之后的编程提供了一些必不可少的经验,还是我的改错能力有所提高.因为写编译器使我在编程发生错误后能及时了解程序在编译过程中的原理是什么,这样我就能知道我的程序是何处的问题. 而且在学习编译原理的时候,学到了一些比较难理解的东西,通过实践不断地消化书本上的理论,最终就会有一个雏形出现.而且在编写的过程时候有一些不知道如何解决的问题时,我就会和组员讨论以得出一个可行

编译原理第二次作业——词法分析心得

今次大作业是词法分析,这次的词法分析的程序编写,有遇到很多的问题,比如说如何去定义单词与数字还有符号之间的判断关系,怎么去用数组存储输入进去的字符串,还有就是判断的一些程序不懂该如何去编写. 有一些问题我是通过百度去解决的还有一些则是通过同学的帮助而去完成的,希望下一次能自己完成不需要帮忙. 而通过这次实验,我也开始明白了编译的一些基本的原理,更加的明白编译器编写的过程需要注意的一些错误,充分认识到了自己的很多不足之处,而这也为我以后再次去编译提供很多宝贵的经验,课本有很多地方都能够在实验中去借

0916编译原理作业二词法分析

#include<stdio.h>#include<stdlib.h>#include<string.h>#define _KEY_WOED_END "waiting for your expanding" //关键字结束标志 typedef struct{ int typenum; char * word;}WORD; char input[255]; //输入换缓冲区 char token[255]=""; //单词缓冲区 i

0916编译原理作业二

#include<stdio.h>#include<stdlib.h>#include<string.h>#define _KEY_WOED_END "waiting for your expanding" //关键字结束标志 typedef struct{ int typenum; char * word;}WORD; char input[255]; //输入换缓冲区 char token[255]=""; //单词缓冲区 i

0916编译原理词法分析作业二

#include<stdio.h>#include<stdlib.h>#include<string.h>#define _KEY_WOED_END "waiting for your expanding" //关键字结束标志 typedef struct{ int typenum; char * word;}WORD; char input[255]; //输入换缓冲区 char token[255]=""; //单词缓冲区 i