| //- @f1 defines/binding _ | |
| //- @x defines/binding X | |
| //- @y defines/binding Y | |
| //- @data defines/binding Data | |
| //- X childof Data | |
| //- Y childof Data | |
| function f1(struct { int x; int y; } data); | |
| //- @sum defines/binding _ | |
| //- @#0data ref Data | |
| //- @#1data ref Data | |
| //- @x ref X | |
| //- @y ref Y | |
| int sum = data.x + data.y; | |
| endfunction | |
| //- @f2 defines/binding _ | |
| //- @x defines/binding X1 | |
| //- @y defines/binding Y1 | |
| //- @h defines/binding H1 | |
| //- @data defines/binding Data1 | |
| //- X1 childof Data1 | |
| //- Y1 childof Data1 | |
| //- H1 childof X1 | |
| function f2(struct { union {int h;} x; int y; } data); | |
| //- @sum defines/binding _ | |
| //- @#0data ref Data1 | |
| //- @#1data ref Data1 | |
| //- @x ref X1 | |
| //- @y ref Y1 | |
| //- @h ref H1 | |
| int sum = data.x.h + data.y; | |
| endfunction | |