Я пишу интерпретатор C # с нуля для обучения, и до сих пор все прошло гладко.У меня есть полностью функциональный лексер C #, который выводит все виды токенов в анализатор.Я знаю, как собираюсь анализировать токены, но я не уверен, как мне структурировать AST (абстрактное синтаксическое дерево).
Например, если у меня есть простой фрагмент кода:
using System.Xml;
как будет выглядеть дерево при разборе?
Как это?
UsingDirective
Identifier(System)
Identifier(Xml)
или как это?
UsingDirective
Identifier(System)
Identifier(Xml)
Если бы я мог получить немногопредложения и / или примеры того, как я мог бы структурировать такие вещи, как идентификаторы с точками в них, операторы if / else if / else, объявление / присваивание переменной, объединенные в одном выражении (int i = 0;), определения функций и т. д., которые быбыть полезным.Мне просто нужно получить лучшее представление о том, как структурировать дерево, и я могу сам разобраться с остальными.Спасибо.