저는 학습 경험을 위해 처음부터 C# 인터프리터를 작성하고 있으며, 지금까지 모든 것이 원활하게 진행되었습니다. 모든 종류의 토큰을 파서에 출력하는 완전한 기능을 갖춘 C# 렉서가 있습니다. 토큰을 파싱 할 방법을 알고 있지만 AST (추상 구문 트리)를 어떻게 구성해야할지 모르겠습니다.추상 구문 트리의 일부를 설계하는 방법은 무엇입니까?
예를 들어, 나는 간단한 코드 조각이있는 경우 :
using System.Xml;
나무가 구문 분석 할 때처럼 무엇을 보일 것입니까?
좋아요?
UsingDirective
Identifier(System)
Identifier(Xml)
또는 이와 유사합니까?
UsingDirective
Identifier(System)
Identifier(Xml)
I은 / 다른/다른 문이, 하나 개의 문장으로 결합 변수 선언/할당 (I를 int로하면 만약 내가 그들에 점으로 식별자 등을 구조화 수있는 방법에 대한 몇 가지 제안 및/또는 예를 얻을 수 있다면 = 0;), 함수 정의 등이 도움이 될 것입니다. 나는 나무를 어떻게 구성하는지 더 잘 이해할 필요가 있고, 나머지는 직접 알아낼 수 있습니다. 감사.
C#을 모두 구현하려는 경우 오랜 학습 경험이 될 것입니다. – svick
클래스 라이브러리의 대부분을 제외하고 있습니다. 기본적으로 기본 클래스/함수 정의, 변수 생성/사용 및 함수 호출을 위해 구현해야 할 것을 구현하는 것입니다. –