Sto lavorando a un compilatore di compilazione e al suo interno genera un albero che rappresenta il programma sorgente che viene passato. Voglio mostrare questo è un albero come la moda così posso visualizzare la struttura del programma a chiunque sia interessatoPretty Stampa una struttura dati ad albero in Ruby
In questo momento non mi resta che la stampa albero su una singola linea come questa:
ProgramNode -> 'Math' BlockNode -> DeclarationNode -> ConstantDeclarationNode -> const ConstantListNode -> [m := 7, ConstantANode -> [n := StringLiteralNode -> ""TEST"" ]] ;
Quello che vorrei è qualcosa di simile:
ProgramNode
/ \
'Math' BlockNode
|
DeclarationNode
|
ConstantDeclarationNode ------------------------------
/ \ |
const ConstantListNode |
/| \ \ |
m := 7 ConstantANode |
/| \ |
n := StringLiteralNode |
/ | \ |
" TEST " ;
non ho davvero lavorato con alberi in Ruby, come vengono solitamente rappresentati?
Qualsiasi aiuto sarebbe apprezzato.
+1 per l'albero ascii pretty :) –
Vuoi solo gli alberi generati in ASCII? – Sean
Stampa l'albero * lateralmente *, il nodo principale per primo, con rientri childen. Vedi LISP S-expressions per i modi canonici di rappresentare/stampare alberi. Fatto bene, ti ci vorranno 1-2 ore. –