저는 통역사를 작업 중이며 의미 분석 후 트래버스 및 추상 구문 트리를 사용하는 방법에 대한 좋은 설명을 발견하지 못했습니다. 나는 그것을하는 올바른 방법이 무엇인지 궁금합니다. 나는 왼쪽에서 오른쪽으로 처리하는 부모에게 단말기를 병합하고 최대한 많이 반복하는 것을 이해합니다.인터프리터 백엔드, 추상 구문 트리를 어떻게 트래버스합니까?
나는이 추상 구문 트리를 가지고 있습니다.이 추상 구문 트리는 올 바르거나 맞지 않을 수 있습니다.
ast http://theadesilva.com/so_1.jpg
어떻게해야합니까?
*에 34와 3을 병합 한 다음 4와 *를 +에 병합 한 다음 ident를 call과 + call에 병합 하시겠습니까? 그게 맞습니까? 트리를 거꾸로 통과하는 좋은 알고리즘은 무엇입니까?
왜 직접 AST interp를하고 싶습니까? 먼저 평평한 스택 VM 바이트 코드와 같은 무언가로 변환하지 않고 재시도해야합니까? –