Мне неясна структура абстрактных синтаксических деревьев. Чтобы перейти «вниз (вперед)» в исходный код программы, который представляет AST, вы идете прямо на самый верхний узел или спускаетесь? Например,
или это:
Если в первом переход «вправо» на основном узле
будет продвигать вас по программе, но во втором, просто следование указателю next
на каждом узле приведет к сделайте то же самое.
Похоже, что второй будет более правильным, поскольку вам не нужно что-то вроде специального типа узла с потенциально чрезвычайно длинным массивом указателей для самого первого узла. Хотя я вижу, что второй становится сложнее первого, когда вы попадаете в для
циклов и если,
ветвей и более сложных вещей.