I am currently working on a project to create a translator from Frank Drewes' graph style into TikZ.
As an example, I am trying to recreate the following diagram from the graph style manual into a TikZ diagram.
(See Example graph style diagram)

The code for the above in Graph style is:
\begin{graph}(4,4)(-2,0)
\squarenode{Sq}(-1.5,3.5)
\textnode{Te}(1.5,3.5){abc}
\roundnode{Ro}(0,.5)
\diredge{Sq}{Te}
\edge{Sq}{Ro} \diredge{Ro}{Te}
\dirbow{Ro}{Sq}{-.2}
\dirbow{Ro}{Te}{.2}
\dirloopedge{Ro}(-.8,-.2)(-1.2,.4)
\dirloopedge{Ro}(.8,-.2)(1.2,.4)
\loopedge{Ro}{15}(0,-.5)
\end{graph}
Most of these commands are easy to translate; however, I am having a lot of trouble with the "loopedge" and "dirloopedge" commands.
The description of the "loopedge" command from the manual is as follows:
\loopedge{name}(x1,y1)(x2,y2)
A loop at node name. The coordinates (x1,y1) and (x2,y2) are interpreted as relative coordinates of the endpoints of two edge halves starting in name. During drawing, these are connected by a curve to obtain a loop.
There does not seem to be a command anything like this in TikZ and, in fact, drawing loops seems to be really difficult. My problem is further compounded by a lack of documentation in the graph style manual as to how the connecting curve is actually produced.
Can anyone help me?
