<div>%{<br> #include <stdio.h><br>%}<br>%token NUMBER STRING<br>%%<br>print: print word<br> | word<br> ;<br>word: NUMBER {printf("number : %d\n", yylval);}<br> | STRING {printf("string : %s\n", yylval);}<br> ;<br>%%<br>yylex()<br>{<br> char ch;</div> <div> while ((ch=getchar())==' ' || ch=='\t')<br> ; //skip<br> if (ch == '\n')<br> return 0;<br> else if (isdigit(ch)) {<br> ungetc(ch, stdin);<br> fscanf(stdin, "%d", &yylval);<br> return NUMBER;<br> } else if (isalpha(ch)) {<br> ungetc(ch, stdin);<br> fscanf(stdin, "%s", yylval);<br> return STRING;<br> }<br>}<br></div> <div>yacc 작성 코드인데요. 실행시 문자배열을 입력하면 Segmentation Fault 오류가 뜹니다.</div> <div>이유가 yylval이 정수형이기 때문에 문자배열의 저장이 안되기 때문이라고 하는데,</div> <div> </div> <div>밑에 코드나, 위에 STRING.. 만 봐도 문자열로도 저장하도록 되어있는데 어째서 오류가 나는 것인가요?</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.