문제
Tiny Language 는 할당을 표현으로 처리합니다.따라서 작성하는 것이 유효합니다 라코 디스
할당은 두 가지 측면에서 다른 운영자와 다릅니다.오른쪽 연관성 (큰 문제는 아님)이고 왼쪽은 변수 여야합니다.그래서 문법을 이렇게 바꿨어요 라코 디스
LL (*)이 아닌 결정이 포함되어 있기 때문에 작동하지 않습니다.이 변형도 시도했습니다. 라코 디스
하지만 같은 오류가 발생했습니다.관심이 있습니다
- 특정 질문
- LL (*)이 아닌 결정으로 문법이 주어지면 문제를 일으키는 두 가지 경로를 찾는 방법
- 해결 방법
해결책
여기서 핵심은 구문 분석기가 표현식 내부에 표현식을 충족하는 무언가가 앞에 있음을 "확신"해야한다는 것입니다.이는 구문 술어 (( ... )=>
및 add
규칙의 mult
부분)를 사용하여 수행 할 수 있습니다.
빠른 데모 : 라코 디스
입력을 파싱합니다 : 라코 디스
다음 AST로 :
다른 팁
구문 술어를 사용하지 않고도 동일한 결과를 얻기 위해 이와 같이 문법을 변경할 수 있다고 생각합니다. 라코 디스
이 아이디어를 염두에두고 Bart의 예를 변경했습니다. 라코 디스
입력 : 라코 디스
다음과 같은 구문 분석 트리를 얻습니다.
제휴하지 않습니다 StackOverflow