That looks really cool. I'm going to have to play with this next time I work on TypeCheck! :)
-- Leah On Thu, Jun 26, 2014 at 3:52 AM, Tony Fong <[email protected]> wrote: > Well, one thing leads to another. With Lint.jl, I have been dumping Expr > and looking up its structure. > > Wouldn't it be great if I can browse Expr? So I wrote this: > > https://github.com/tonyhffong/TermWin.jl > > It's an interactive tree model navigator. It's not perfect. But I think > it's useful. Like so: > > Julia > using TermWin > Julia > ex = :( f(x) = x * x + 2x + 1 ) > Julia > tshow( ex ) > > ┌───────────────────────────────────────────── 7.41%──┐ > │ +Expr |Expr |f(x) = x * x + 2x + 1 │ > │ | +head |Symbol |= │ > │ | +args |Array{Any,1} |Size=2 │ > │ | | +[1] |Expr |f(x) │ > │ | | | +head |Symbol |call │ > │ | | | +args |Array{Any,1} |Size=2 │ > │ | | | | +[1] |Symbol |f │ > │ | | | | +[2] |Symbol |x │ > │ | | | +typ |DataType |Any │ > │ | | +[2] |Expr |x * x + 2x + 1 │ > │ | | | +head |Symbol |call │ > │ | | | +args |Array{Any,1} |Size=4 │ > │ | | | | +[1] |Symbol |+ │ > │ | | | | +[2] |Expr |x * x │ > │ | | | | | +head |Symbol |call │ > │ | | | | | =args |Array{Any,1} |Size=3 │ > │ | | | | | +typ |DataType |Any │ > │ | | | | +[3] |Expr |2x │ > │ | | | | | +head |Symbol |call │ > │ | | | | | +args |Array{Any,1} |Size=3 │ > │ | | | | | | +[1]|Symbol |* │ > │ | | | | | | +[2]|Int64 |2 │ > │ | | | | | | +[3]|Symbol |x │ > │ | | | | | +typ |DataType |Any │ > │ | | | | +[4] |Int64 |1 │ > └──────────────F1:Help Spc:Expand Esc:exit──────────────┘ > > I'm not a ncurses expert at all, so there're some random update issues > that I cannot pin down. > > It can browse a few things besides Expr, such as Module, Dict, Array, > large strings. > > As usual, any feedback/PR would be welcome. > > Tony >
