Pracuję nad budowaniem kompilatora iw tym celu generuję drzewo, które reprezentuje program źródłowy, który jest przekazywany. Chcę wyświetlić to drzewo jak moda, więc mogę wyświetlić strukturę programu wszystkim zainteresowanym.Całkiem Drukowanie struktury danych drzewa w Ruby
Teraz mam tylko druk drzewo na jednej linii jak to:
ProgramNode -> 'Math' BlockNode -> DeclarationNode -> ConstantDeclarationNode -> const ConstantListNode -> [m := 7, ConstantANode -> [n := StringLiteralNode -> ""TEST"" ]] ;
Co chciałbym jest coś takiego:
ProgramNode
/ \
'Math' BlockNode
|
DeclarationNode
|
ConstantDeclarationNode ------------------------------
/ \ |
const ConstantListNode |
/| \ \ |
m := 7 ConstantANode |
/| \ |
n := StringLiteralNode |
/ | \ |
" TEST " ;
ja naprawdę nie pracował z drzewami w Ruby, jak są zwykle reprezentowane?
Każda pomoc zostanie doceniona.
+1 dla ładnego drzewa ascii :) –
Czy po prostu chcesz drzew wygenerowanych w ASCII? – Sean
Wydrukuj drzewo * z boku *, najpierw węzeł główny, z wcięciem potomnym. Zobacz wyrażeń S LISP dla kanonicznych sposobów przedstawiania/drukowania drzew. Zrobione dokładnie to zajmie ci 1-2 godziny. –