私はコンパイラの構築に取り組んでおり、その中で渡されるソースプログラムを表すツリーを生成します。これをファッションのようなツリーとして表示したいので、興味のある人にプログラムの構造を表示できます。
現在、次のようにツリーを1行に印刷しています。
ProgramNode -> 'Math' BlockNode -> DeclarationNode -> ConstantDeclarationNode -> const ConstantListNode -> [m := 7, ConstantANode -> [n := StringLiteralNode -> ""TEST"" ]] ;
私が欲しいのは次のようなものです:
ProgramNode
/ \
'Math' BlockNode
|
DeclarationNode
|
ConstantDeclarationNode ------------------------------
/ \ |
const ConstantListNode |
/ | \ \ |
m := 7 ConstantANode |
/ | \ |
n := StringLiteralNode |
/ | \ |
" TEST " ;
Ruby でツリーを実際に扱ったことはありませんが、ツリーは通常どのように表現されますか?
どんな助けでも大歓迎です。