Estoy trabajando en la compilación de un compilador y dentro de eso genero un árbol que representa el programa de origen que se transfiere. Quiero mostrar esta es una forma de árbol para que pueda mostrar la estructura del programa para cualquier persona interesada.Pretty Imprimiendo una estructura de datos de árbol en Ruby
Ahora sólo tienen la impresión de árbol en una sola línea como la siguiente:
ProgramNode -> 'Math' BlockNode -> DeclarationNode -> ConstantDeclarationNode -> const ConstantListNode -> [m := 7, ConstantANode -> [n := StringLiteralNode -> ""TEST"" ]] ;
Lo que me gustaría es algo como esto:
ProgramNode
/ \
'Math' BlockNode
|
DeclarationNode
|
ConstantDeclarationNode ------------------------------
/ \ |
const ConstantListNode |
/| \ \ |
m := 7 ConstantANode |
/| \ |
n := StringLiteralNode |
/ | \ |
" TEST " ;
realmente no he trabajado con árboles en Ruby, ¿cómo suelen representarse?
Cualquier ayuda sería apreciada.
1 para el árbol ascii bastante :) –
No sólo quiere los árboles generados en el ASCII? – Sean
Imprime el árbol * de lado *, nodo raíz primero, con sangría sangrado. Vea las expresiones S de LISP para las formas canónicas de representar/imprimir árboles. Hecho bien esto te llevará de 1 a 2 horas. –