게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
플렉스, 바이슨 코드 관련 간단한 질문 하나만 답변 부탁드립니다.
게시물ID : programmer_18400짧은주소 복사하기
작성자 : 메이가왔어요
추천 : 0
조회수 : 637회
댓글수 : 0개
등록시간 : 2016/09/10 07:50:17
옵션
  • 본인삭제금지
// in2po.l
 
%{
#include "in2po.tab.h"
%}
%%
[ \t]+ ;
[0-9] {yylval = yytext[0] - '0'; return DIGIT;}
[+\-\n] return yytext[0];
-------------------------------------------------------
 
//in2po.y
 
%{
#include <stdio.h>
#include <ctype.h>
%}
%token DIGIT
%%
line : expr '\n' {putchar('\n');}
 ;
expr : expr '+' term {putchar('+');}
 | expr '-' term {putchar('-');}
 | term
 ;
term : DIGIT {printf("%d", yylval);}
 ;
%%
int main()
{
 if(yyparse()==0) printf("The Parsing Complete \n\n");
 else printf("syntax error \n\n");
}
 
-------------------------------------------------------
 
제목 없음.png
 
이번학기 들어 이제 막 컴파일러 배우기 시작한 학생입니다.
원래대로라면 cmd에서 9-5+2를 입력했을때
95-2+ 가 출력되고
The Parsing Complete 가 출력되야하는데
95-2+ 가 출력된 후 더 입력을 요구합니다.
그 과정에서 그냥 엔터치면 다음과 같이 syntax error를 출력시킵니다.
왜 The Parsing Complete가 출력되지 않는지 혹시 알 수 있을까요?
꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호