Я работаю над созданием компилятора, и внутри него я генерирую дерево который представляет исходную программу, которая передается. Я хочу отобразить это в виде дерева, похожего на моду, чтобы я мог показать структуру программы всем, кто заинтересован.
Прямо сейчас я печатаю дерево одной строкой, например так:
ProgramNode -> 'Math' BlockNode -> DeclarationNode -> ConstantDeclarationNode -> const ConstantListNode -> [m := 7, ConstantANode -> [n := StringLiteralNode -> ""TEST"" ]] ;
Мне бы хотелось что-то вроде этого:
ProgramNode
/ \
'Math' BlockNode
|
DeclarationNode
|
ConstantDeclarationNode ------------------------------
/ \ |
const ConstantListNode |
/ | \ \ |
m := 7 ConstantANode |
/ | \ |
n := StringLiteralNode |
/ | \ |
" TEST " ;
Я на самом деле не работал с деревьями в Ruby, как они обычно представляются?
Будем признательны за любую помощь.