@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;
p1 << x.p1;
@@
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)