Ich arbeite an einem Gebäude einen Compiler und innerhalb dieser erzeuge ich einen Baum, der das Quellprogramm darstellt, das übergeben wird. Ich möchte dies anzeigen ist ein Baum wie Mode, damit ich anzeigen kann die Struktur des Programms für alle Interessierten.Ziemlich Drucken einer Baumdatenstruktur in Ruby
Im Moment habe ich nur den Baum Druck auf einer einzigen Zeile wie folgt aus:
ProgramNode -> 'Math' BlockNode -> DeclarationNode -> ConstantDeclarationNode -> const ConstantListNode -> [m := 7, ConstantANode -> [n := StringLiteralNode -> ""TEST"" ]] ;
Was Ich mag wäre so etwas wie dies:
ProgramNode
/ \
'Math' BlockNode
|
DeclarationNode
|
ConstantDeclarationNode ------------------------------
/ \ |
const ConstantListNode |
/| \ \ |
m := 7 ConstantANode |
/| \ |
n := StringLiteralNode |
/ | \ |
" TEST " ;
Ich habe nicht wirklich mit Bäumen gearbeitet in Ruby, wie werden sie normalerweise dargestellt?
Jede Hilfe wäre willkommen.
+1 für den hübschen ascii Baum :) –
Wollen Sie nur die in ascii erzeugten Bäume? – Sean
Drucken Sie den Baum * seitwärts *, zuerst den Wurzelknoten, mit Kinder eingerückt. Siehe LISP S-Ausdrücke für die kanonischen Möglichkeiten, Bäume darzustellen/zu drucken. Fertig rechts dauert das 1-2 Stunden. –