Bir derleyicide bir bina üzerinde çalışıyorum ve bunun içinde geçirilen kaynak programı temsil eden bir ağaç oluşturuyorum. Bunu göstermek istiyorum, moda gibi bir ağaç bu yüzden görüntüleyebiliyorum Programın yapısı ilgilenen herkese. Gerçekten ağaçları ile çalışmamışPretty Ruby'de bir ağaç veri yapısını yazdırma
ProgramNode
/ \
'Math' BlockNode
|
DeclarationNode
|
ConstantDeclarationNode ------------------------------
/ \ |
const ConstantListNode |
/| \ \ |
m := 7 ConstantANode |
/| \ |
n := StringLiteralNode |
/ | \ |
" TEST " ;
: Ben istiyorum ne
ProgramNode -> 'Math' BlockNode -> DeclarationNode -> ConstantDeclarationNode -> const ConstantListNode -> [m := 7, ConstantANode -> [n := StringLiteralNode -> ""TEST"" ]] ;
böyle bir şeydir:
Şu anda sadece bu gibi tek bir hat üzerinde ağaç baskı var Ruby'de, genellikle nasıl temsil edilir?
Herhangi bir yardım için teşekkür ederiz.
1 :) –
sadece ASCII oluşturulan ağaçları istiyor musunuz? – Sean
Ağacı * yanlamasına *, önce kök düğümünü, yazdırılan delikli olarak yazdırın. Ağaçları temsil/yazdırma için kanonik yollar için LISP S ifadelerine bakınız. Tamam, bu size 1-2 saat sürecek. –