1
마지막 세미콜론을 선택적으로 유지하면서 특정 규칙에 세미콜론을 선택적으로 사용하려고합니다. 현재 우리는 그러나 지금 우리는 'A'에 대한 옵션에 세미콜론을 원하는 후미 세미콜론을 선택적으로 유지하면서 세미콜론을 일부 규칙에 대해 선택적으로 설정합니까?
A;
C;
B
처럼 입력을 구문 분석
A: 'A';
B: 'B';
C: 'B';
SEMICOLON: ';';
exprs : expr (SEMICOLON expr)* SEMICOLON?;
expr : A | B | C
같은 것을 가지고있다. 어느
A
C;
B
나는 아직도 마지막 세미콜론은 선택 사항이 될 수 있도록 잠시 동안 세미콜론은 선택하고있다에 문제가 있어요 부분 같은 것을 분석하는 것을 의미한다. 이 작업을 수행 할 수있는 좋은 방법이 있습니까? 아니면 마지막 세미콜론이 필요합니까?
는 (의미는 어쨌든에 속한다)
그러면 C로 끝나는 경우 마지막 줄에 SEMICOLON이 필요하게됩니다. 따라서 마지막 줄이 아닌 경우 세미콜론이 필요합니다. – Will
미리보기를 사용하면 문제가 해결 될 수 있습니다. 내 업데이트 된 솔루션을 참조하십시오. –
SEMICOLON이 없을 때 expr + match를 끝내는 방법이 있습니까? exprs 후 더 많은 토큰이 있기 때문에 EOF를 확인하는 것이 내 경우에는 효과가 없을 것입니다. – Will