본문내용
en.kind = 0 ; //터미널
return token;
case 2:
token.no = 1 ; //- = 1
token.kind = 0 ; //터미널
return token;
case 3:
token.no = 2 ; //* = 2
token.kind = 0 ; //터미널
return token;
case 4:
token.no = 3 ; // / = 3
token.kind = 0 ; //터미널
return token;
case 5:
token.no = 4 ; // ( = 4
token.kind = 0 ; //터미널
return token;
case 6:
token.no = 5 ; // ) = 5
token.kind = 0 ; //터미널
return token;
/*숫자*/case 7: c = myfgetc(fp) ; //숫자일경우 ASCII를 숫자 값으로 변경한다.
if (isdigit(c)) { upper_n = 10*upper_n + c - '0' ; state = 7; }
else { state = 8 ; }
break ;
case 8: ungetc (c, fp) ; //숫자로 작성된 변수값을 문자열로 바꾸어 준다.
token.no = 6 ; token.data = upper_n;
token.kind = 0;
return token;
case 10: //$처리
token.no = 7 ;
token.kind = 0 ;
return token;
default: printf ("something wrong! error 10. \n" ); return token; //이외의 처리
} // switch
} //while
}
//--------------------------------------------------------
char myfgetc (FILE *fp) {
char c;
c = fgetc(fp) ;
if (c == EOF) { } //가져온값이 EOF를 만났을경우 DONE을 1로 바꾸어 메인의 while을 종료한다.
return c ;
}
2. 실행결과
3. discussion
예전에 만든 형태소분석기와 파싱테이블과 문법규칙을 이용하여 계산기를 작성하였는데, 초반에 소스코드
를 정정하는데 많은 시간이 걸렸습니다. 예전에 개발했던 형태소 분석기를 이번 프로그램에 적용시키기 위해
수정하는 과정에서 다소 힘들었지만 힘들었던 만큼 많은 성취감을 느낀것 같습니다.
return token;
case 2:
token.no = 1 ; //- = 1
token.kind = 0 ; //터미널
return token;
case 3:
token.no = 2 ; //* = 2
token.kind = 0 ; //터미널
return token;
case 4:
token.no = 3 ; // / = 3
token.kind = 0 ; //터미널
return token;
case 5:
token.no = 4 ; // ( = 4
token.kind = 0 ; //터미널
return token;
case 6:
token.no = 5 ; // ) = 5
token.kind = 0 ; //터미널
return token;
/*숫자*/case 7: c = myfgetc(fp) ; //숫자일경우 ASCII를 숫자 값으로 변경한다.
if (isdigit(c)) { upper_n = 10*upper_n + c - '0' ; state = 7; }
else { state = 8 ; }
break ;
case 8: ungetc (c, fp) ; //숫자로 작성된 변수값을 문자열로 바꾸어 준다.
token.no = 6 ; token.data = upper_n;
token.kind = 0;
return token;
case 10: //$처리
token.no = 7 ;
token.kind = 0 ;
return token;
default: printf ("something wrong! error 10. \n" ); return token; //이외의 처리
} // switch
} //while
}
//--------------------------------------------------------
char myfgetc (FILE *fp) {
char c;
c = fgetc(fp) ;
if (c == EOF) { } //가져온값이 EOF를 만났을경우 DONE을 1로 바꾸어 메인의 while을 종료한다.
return c ;
}
2. 실행결과
3. discussion
예전에 만든 형태소분석기와 파싱테이블과 문법규칙을 이용하여 계산기를 작성하였는데, 초반에 소스코드
를 정정하는데 많은 시간이 걸렸습니다. 예전에 개발했던 형태소 분석기를 이번 프로그램에 적용시키기 위해
수정하는 과정에서 다소 힘들었지만 힘들었던 만큼 많은 성취감을 느낀것 같습니다.
소개글