1216 귀속 하강 문법 분석 프로그램

6940 단어
#include<stdio.h>  
#include<string>
#define N 20  
char str[N];  
int i=0;  
int k=0;
void E();          
void X();            
void T();           
void Y();          
void F();             
main()  
{  
    int m;    
    strcpy(str,"");
    while(str[0]!='#')
    {
        printf(" :< # , # >
"); for(m=0;m<N;m++) { scanf("%c",&str[m]); if(str[m]=='#') break; } str[m+1]='\0'; E(); if(k==0) { printf("
"); } i=0; k=0; } } void E() { T(); X(); } void X() { if(str[i]=='+'||str[i]=='-') { i++; T(); X(); } } void T() { F(); Y(); } void Y() { if(str[i]=='*'||str[i]=='/') { i++; F(); Y(); } } void F() { if(str[i]=='i') { i++; } else if (str[i]=='(') { i++; E(); if(str[i]==')') { i++; }else{ if(k==0) { printf("
!
"); k=1; } } } else{ if(k==0) { printf(" !
"); k=1; } } }

좋은 웹페이지 즐겨찾기