Appel의 "Modern Compiler Implementation in ML"책에서 Tiger Parser를 생성하는 Ch3 프로그래밍 연습을 진행합니다. 내 tiger.grm 파일은 here입니다. 진단하려고하는 오류는 단항 및 2 진 빼기 연산자에 대한 규칙에서 발생하는 줄이기 충돌 감소입니다. 내가 MINUS보다 우선 순위를 가진 단항 정의 및 %
다음과 같은 yacc/bison 파일의 규칙 섹션 중괄호에 사용 된 언어와 이에 대한 좋은 참조가 무엇인지 궁금합니다. 이 $<stmt>$2를 작성하는 이유를 예를 들어 stmts : stmt { $$ = new NBlock(); $$->statements.push_back($<stmt>1); }
| stmts stmt { $1->statement