@call@
TY E;
position p;
@@

FN(...,E@p,...)

@isnull@
position call.p;
@@

FN(...,NULL@p,...)

@x depends on !isnull exists@
TY call.E;
identifier f;
expression E1;
position p != call.p;
position p1;
@@

FN@p1(...,E,...);
...
(
  E = E1
|
  E@p
)

@inverse exists@
position x.p, x.p1;
expression E;
expression E1;
@@

E@p
... when != E = E1
FN@p1(...,E,...);

@ script:python depends on !inverse @
p << x.p; // position of ref
p1 << x.p1; // position of call
@@

file = p1[0].file
line1 = p1[0].line
colb1 = p1[0].column
cole1 = p1[0].column_end
line2 = p[0].line
colb2 = p[0].column
cole2 = p[0].column_end
print "* TODO [[view:%s::face=ovl-face1::linb=%s::colb=%s::cole=%s][FN: %s::%s]]" % (file,line1,colb1,cole1,file,line1)
print "[[view:%s::face=ovl-face2::linb=%s::colb=%s::cole=%s][ref %s]]" % (file,line2,colb2,cole2,line2)