6
작은 토크에 대한 추상 구문 트리 메타 모델을 개발 중이며 지금은 블록 모델링에 문제가 있습니다. 그들은 일종의 리터럴이지만 다른 한편으로는 메소드와 같은 행위 적 실체입니다. 블록은 일종의 람다 (lambda) 함수이므로 어쩌면 누군가가 그들과 함께 작업하는 더 나은 실천을했을 것입니다.람다 함수의 Ast 표현
모든 조언에 감사드립니다.
작은 토크에 대한 추상 구문 트리 메타 모델을 개발 중이며 지금은 블록 모델링에 문제가 있습니다. 그들은 일종의 리터럴이지만 다른 한편으로는 메소드와 같은 행위 적 실체입니다. 블록은 일종의 람다 (lambda) 함수이므로 어쩌면 누군가가 그들과 함께 작업하는 더 나은 실천을했을 것입니다.람다 함수의 Ast 표현
모든 조언에 감사드립니다.
리팩토링 브라우저에는 매우 훌륭한 AST가 있으며 구현을 살펴보십시오.
질문 : Refactoring Browser는 블록과 메소드의 공유 부분을 SequenceNode
이라는 별도의 노드 유형으로 추출합니다. 순서 노드는 temps 및 명령문 시퀀스를 모델링합니다. 그런 다음 블록 노드는 시퀀스 노드를 래핑하고 인수를 추가하며 값 노드의 공유 동작을 상속합니다. 메서드 노드는 시퀀스 노드를 래핑하고 메서드 이름, 인수, pragma 등을 추가합니다.