• LF몰 이벤트
  • 파일시티 이벤트
  • 서울좀비 이벤트
  • 탑툰 이벤트
  • 닥터피엘 이벤트
  • 아이템베이 이벤트
  • 아이템매니아 이벤트

[프로그램언어]재귀함수를 이용한 연산자 우선순위 parser+interpreter

*원*
최초 등록일
2006.04.22
최종 저작일
2006.04
파일확장자 C언어
가격 1,000원 할인쿠폰받기
다운로드
장바구니

소개글

재귀함수를 이용하여 + - * / () 이런 연산식들을 분석하여 문법에 맞는 지를 판단 해주고 문법에 맞다면 연산 결과를 출력해 주는 소스 입니다.
보통 PL에 나오는 소스이고, 자료구조에 나오는 연산자 우선순위에 써도 무방합니다.
오류의 형태를 세가지 형태로 잡아 주며, 최적화 시켰고, 충분한 주석이 달려 있습니다.

컴파일 실행환경

비쥬얼 C++

본문내용

enum {PLUS,STAR,MINUS,DIV,NUMBER,LP,RP,END}token; /* 토큰의 형태를 선언 */
/* PLUS=0,STAR=1,MINUS=2,DIV=3,NUMBER=4,LP=5,RP=6,END=7 로 치환됨 */
/* 필요한 전역변수 선언 */
int Buf1; /*숫자를 계산할 때 필요한 변수*/
int flag1=0; /*플래그를 두어 토큰의 유효를 표시*/
char immch; /*임시저장 장소 */
/*//////////////////////////////////////////////////////////////////////////////*/
int start(); /*시작할때 필요한 함수들을 불러주는 함수*/
void get_next_token(); /*토큰을 입력 받고 각 토큰의 의미를 파악*/
int expr(); /*기본적인 계산 함수 (참조 : 교재) */
int term(); /*기본적인 계산 함수 (참조 : 교재) */
int factor(); /*기본적인 계산 함수 (참조 : 교재) */
void num_count(int i, char ch);/*숫자를 카운트 해주는 함수 */
void error(int i); /*에러처리부문 호출시 숫자로 에러의 종류를 파악*/
/*/////////////////////////////////////////////////////////////////////////////*/

int main(){
printf("|-수식을 입력하십시오 -|n");
printf("|-문법에 맞는 수식을 입력하셨다면 답을 출력하고-|n");
printf("|-문법에 맞지 않는다면 에러메세지를 출력합니다.-|n");

while(1){ /*계속 적으로 값을 입력받기 위해 사용*/
int r=0;
r = start(); /*start()를 호출함, r은 계산 결과를 받음*/
printf(">%dn",r); /*답을 프린트 해주는 부분*/
}
return 0;
}

int start(){
int r=0;
printf("n$"); /*입력 받을 준비가 되었다는 표시 */
get_next_token(); /*토큰을 입력받는 함수를 호출 */
r=expr(); /*계산결과를 받으며 하위함수를 호출 */
return r;
}

void get_next_token(){

char ch;
if(flag1 == 1)
{
ch = immch;
flag1 = 0;
}
else
{
ch = getchar();
}
while(ch==` `)
{
ch = getchar();
}
if(ch==13)
{
token=END;
}

참고 자료

없음

자료후기(1)

*원*
판매자 유형Bronze개인

주의사항

저작권 자료의 정보 및 내용의 진실성에 대하여 해피캠퍼스는 보증하지 않으며, 해당 정보 및 게시물 저작권과 기타 법적 책임은 자료 등록자에게 있습니다.
자료 및 게시물 내용의 불법적 이용, 무단 전재∙배포는 금지되어 있습니다.
저작권침해, 명예훼손 등 분쟁 요소 발견 시 고객센터의 저작권침해 신고센터를 이용해 주시기 바랍니다.
환불정책

해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.

파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우
최근 본 자료더보기
탑툰 이벤트
[프로그램언어]재귀함수를 이용한 연산자 우선순위 parser+interpreter
  • 레이어 팝업
  • 레이어 팝업
  • 레이어 팝업
  • 레이어 팝업
  • 레이어 팝업