문제

Tiny Language 는 할당을 표현으로 처리합니다.따라서 작성하는 것이 유효합니다 라코 디스

할당은 두 가지 측면에서 다른 운영자와 다릅니다.오른쪽 연관성 (큰 문제는 아님)이고 왼쪽은 변수 여야합니다.그래서 문법을 이렇게 바꿨어요 라코 디스

LL (*)이 아닌 결정이 포함되어 있기 때문에 작동하지 않습니다.이 변형도 시도했습니다. 라코 디스

하지만 같은 오류가 발생했습니다.관심이 있습니다

  • 특정 질문
  • LL (*)이 아닌 결정으로 문법이 주어지면 문제를 일으키는 두 가지 경로를 찾는 방법
  • 해결 방법
도움이 되었습니까?

해결책

여기서 핵심은 구문 분석기가 표현식 내부에 표현식을 충족하는 무언가가 앞에 있음을 "확신"해야한다는 것입니다.이는 구문 술어 (( ... )=>add 규칙의 mult 부분)를 사용하여 수행 할 수 있습니다.

빠른 데모 : 라코 디스

입력을 파싱합니다 : 라코 디스

다음 AST로 :

여기에 이미지 설명 입력

다른 팁

구문 술어를 사용하지 않고도 동일한 결과를 얻기 위해 이와 같이 문법을 변경할 수 있다고 생각합니다. 라코 디스

이 아이디어를 염두에두고 Bart의 예를 변경했습니다. 라코 디스

입력 : 라코 디스

다음과 같은 구문 분석 트리를 얻습니다. 여기에 이미지 설명 입력

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top