int f( int, int ); int g( int, int, int ); static [ int, int *, * int, int ] h( int a, int b, * int c, [] char d ); struct inner { int f2, f3; }; struct outer { int f1; struct inner i; double f4; } s, *sp; const volatile [ int, int ] t1; static const [ int, const int ] t2; const static [ int, const int ] t3; [ int rc ] printf( * char fmt, ... ); int printf( char *fmt, ... ); [ short x, unsigned y ] f1( int w ) { [ y, x ] = [ x, y ] = [ w, 23 ]; } [ [ int, char, long, int ] r ] g1() { short x, p; unsigned int y; [ int, int ] z; [ x, y, z ] = [ p, f( 17 ), 3 ]; [ x, y, z ] = ([short, unsigned int, [int, int]])([ p, f( 17 ), 3 ]); r = [ x, y, z ]; } [ int rc ] main( int argc, ** char argv ) { int a, b, c, d; struct outer t = { .[ f1,f4 ] : [ 1,7.0 ] }; f( [ 3,5 ] ); g( [ 3,5 ], 3 ); f( t1 ); g( t1, 3 ); [ , , , ]; /* empty tuple */ [ 3, 5 ]; [ a, b ] = 3; [ a, b ] = [ 4.6 ]; [ a, b ] = [ c, d ] = [ 3, 5 ]; [ a, b, [ c ] ] = [ 2,[ a, b ] ]; [ a, b ] = 3 > 4 ? [ b, 6 ] : [ 7, 8 ]; t1 = [ a, b ]; t1 = t2 = [ a, b ]; [ a, b ] = [ c, d ] = d += c += 1; [ a, b ] = [ c, d ] = t1; [ a, b ] = t1 = [ c, d ]; [ a, b ] = t1 = t2 = [ c, d ]; t1 = [ 3, 4 ] = [ 3, 4 ] = t1 = [ 3, 4 ]; s.[ f1, i.[ f2, f3 ], f4 ] = [ 11, 12, 13, 3.14159 ]; s.[ f1, i.[ f2, f3 ], f4 ] = h( 3, 3, 0, "abc" ); [ a, , b, ] = h( 3, 3, 0, "abc" ); /* ignore some results */ sp->[ f4,f1 ] = sp->[ f1, f4 ]; printf( "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n", s.[ f4, i.[ f3, f2 ], f1 ] ); rc = 0; } // Local Variables: // // tab-width: 4 // // End: //