To parse graphViz-Dot files you probably want to write a small parser (regular expression is enough or you can use PetitParser).
To render the thing, use Roassal. Execute the following in a Workspace to load Roassal:
Gofer new smalltalkhubUser: 'ObjectProfile' project: 'Roassal'; package: 'ConfigurationOfRoassal'; load. (Smalltalk at: #ConfigurationOfRoassal) project lastVersion load.
Open a workspace, and type:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=
| view rawView data nodes|
rawView := ROView new.
view := ROMondrianViewBuilder view: rawView.
"-------------"
"-------------"
data := {
'hello' -> 'world' .
'world' -> 'earth' .
'earth' -> 'mars' .
'world' -> 'underworld' .
'underworld' -> 'metallica' .
'hello' -> 'bonjour' .
'metallica' -> 'mars'
}.
nodes := data inject: Set new into: [ :set :assoc | set, (Set with: assoc key with: assoc value ) ].
view shape rectangle size: 15;
if: [ :el | #('metallica' 'underworld') includes: el ] borderColor: Color red.
view nodes: nodes.
view shape arrowedLineWithOffset: 0.1.
view edges: data from: #key to: #value.
view radialTreeLayout.
"-------------"
"-------------"
ROEaselMorphic new populateMenuOn: view.
view open
-=-=-=-=-=-=-=-=-=-=-=-=-=-=
<Screen Shot 2013-04-17 at 5.41.42 PM.png>--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel
http://www.bergel.eu^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________