0916---编译原理第二次作业

#include<stdio.h>

void Fenxi(a,b);

int i;

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;

}

main(){

    char a[50];

    printf("请输入源程序:");

    gets(a);

    printf("您要分析的源程序为:");

    printf("%s",a);

    printf(" ");

    for(i=0;i<50;i++)

    {

        Fenxi(a[i],a[i+1]);

    }

    printf(" ");

}

}

原文地址:https://www.cnblogs.com/joker317/p/4826983.html