Index: src/Tests/Parser/Array.c
===================================================================
--- src/Tests/Parser/Array.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,33 +1,0 @@
-int a1[];
-int a2[*];
-int a4[3];
-
-int m1[][3];
-int m2[*][*];
-int m4[3][3];
-
-typedef int T;
-
-int fred() {
-    int a1[];
-    int a2[*];
-    int a4[3];
-    int T[3];
-}
-
-int mary( int T[3],
-	  int p1[const 3],
-	  int p2[static 3],
-	  int p3[static const 3]
-    ) {
-}
-
-int (*tom())[3] {
-}
-
-int (*(jane)())( int T[3],
-		 int p1[const 3],
-		 int p2[static 3],
-		 int p3[static const 3]
-    ) {
-}
Index: src/Tests/Parser/Constant0-1.c
===================================================================
--- src/Tests/Parser/Constant0-1.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,40 +1,0 @@
-// Cforall extension
-
-// value
-
-int 0;
-const int 0;
-//static const int 0;
-int 1;
-const int 1;
-//static const int 1;
-int 0, 1;
-const int 0, 1;
-//static const int 0, 1;
-struct { int i; } 0;
-const struct { int i; } 1;
-static const struct { int i; } 1;
-
-// pointer
-
-int 1, * 0;
-int (1), ((1)), * (0), (* 0), ((* 0));
-int * const (0), (* const 0), ((* const 0));
-struct { int i; } * 0;
-
-// Cforall style
-
-* int x, 0;
-const * int x, 0;
-//static const * int x, 0;
-* struct { int i; } 0;
-const * struct { int i; } 0;
-static const * struct { int i; } 0;
-//static * int x, 0;
-//static const * int x, 0;
-const * * int x, 0;
-
-int main() {
-//int 1, * 0;
-//* int x, 0;
-}
Index: src/Tests/Parser/DeclarationSpecifier.c
===================================================================
--- src/Tests/Parser/DeclarationSpecifier.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,90 +1,0 @@
-typedef short int Int;
-
-
-const short int volatile x1;
-static const short int volatile x2;
-const static short int volatile x3;
-const short static int volatile x4;
-const static volatile short int x4;
-const short int static volatile x5;
-const short int volatile static x6;
-const short volatile int static x7;
-short int volatile static const x8;
-static short int volatile static const x9;		// duplicate static
-
-const volatile struct { int i; } x10;
-const struct { int i; } volatile x11;
-struct { int i; } const volatile x12;
-static const volatile struct { int i; } x13;
-const static struct { int i; } volatile x14;
-struct { int i; } static const volatile x15;
-struct { int i; } const static volatile x16;
-struct { int i; } const volatile static x17;
-struct { int i; } const static volatile static x18;	// duplicate static
-struct { int i; } const static volatile static volatile x19; // duplicate static & volatile
-
-const Int volatile x20;
-static const Int volatile x21;
-const static Int volatile x22;
-const static Int volatile x23;
-const Int static volatile x24;
-const Int volatile static x25;
-const volatile Int static x26;
-Int volatile static const x27;
-static Int volatile static const x28;			// duplicate static
-
-const volatile struct { Int i; } x29;
-const struct { Int i; } volatile x30;
-struct { Int i; } const volatile x31;
-static const volatile struct { Int i; } x32;
-const static struct { Int i; } volatile x33;
-struct { Int i; } static const volatile x34;
-struct { Int i; } const static volatile x35;
-struct { Int i; } const volatile static x36;
-
-
-const static inline const volatile int f01();		// duplicate const
-volatile inline const volatile static int f02();	// duplicate volatile
-const inline const volatile int static f03();		// duplicate const
-volatile inline static const volatile int f04();	// duplicate volatile
-const static const inline volatile int f05();		// duplicate const
-volatile static const volatile inline int f06();	// duplicate volatile
-const static const volatile int inline f07();		// duplicate const
-volatile static const int inline volatile f08();	// duplicate volatile
-
-static inline const volatile int f11();
-inline const volatile static int f12();
-inline const volatile int static f13();
-inline static const volatile int f14();
-static const inline volatile int f15();
-static const volatile inline int f16();
-static const volatile int inline f17();
-static const int inline volatile f18();
-
-short static inline const volatile int f21();
-inline short const volatile static int f22();
-inline const short volatile int static f23();
-inline static const short volatile int f24();
-static const inline volatile short int f25();
-static const volatile inline int short f26();
-static const volatile int inline short f27();
-static const int inline volatile short f28();
-
-static inline const volatile struct { int i; } f31();
-inline const volatile static struct { int i; } f32();
-inline const volatile struct { int i; } static f33();
-inline static const volatile struct { int i; } f34();
-static const inline volatile struct { int i; } f35();
-static const volatile inline struct { int i; } f36();
-static const volatile struct { int i; } inline f37();
-static const struct { int i; } inline volatile f38();
-
-static inline const volatile Int f41();
-inline const volatile static Int f42();
-inline const volatile Int static f43();
-inline static const volatile Int f44();
-static const inline volatile Int f45();
-static const volatile inline Int f46();
-static const volatile Int inline f47();
-static const Int inline volatile f48();
-
Index: src/Tests/Parser/Forall.c
===================================================================
--- src/Tests/Parser/Forall.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,51 +1,0 @@
-typedef forall ( type T ) int (*f)( int );
-
-forall( type T )
-    void swap( T left, T right ) {
-	T temp = left;
-	left = right;
-	right = temp;
-    }
-
-context sumable( type T ) {
-    const T 0;
-    T ?+?(T, T);
-    T ?++(T);
-    [T] ?+=?(T,T);
-};
-
-type T1 | { const T1 0; T1 ?+?(T1, T1); T1 ?++(T1); [T1] ?+=?(T1,T1); },
-     T2(type P1, type P2 ),
-     T3 | sumable(T3);
-
-type T2(type P1, type P2) | sumable(T2(P1,P2)) = struct { P1 i; P2 j; };
-
-T2(int, int) w1;
-typedef T2(int, int) w2;
-w2 g2;
-type w3 = T2(int, int);
-w3 g3;
-
-forall( type T | sumable( T ) )
-    T sum( int n, T a[] ) {
-	T total = 0;
-	int i;
-	for ( i = 0; i < n; i += 1 )
-	    total = total + a[i];
-	return total;
-    }
-
-forall( type T | { const T 0; T ?+?(T, T); T ?++(T); [T] ?+=?(T,T); } )
-    T twice( T t ) {
-	return t + t;
-    }
-
-int main() {
-    int x = 1, y = 2, a[10];
-    float f;
-
-    swap( x, y );
-    twice( x, y );
-    f = min( 4.0, 3.0 );
-    sum( 10, a );
-}
Index: src/Tests/Parser/Functions.c
===================================================================
--- src/Tests/Parser/Functions.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,162 +1,0 @@
-// ANSI function definitions
-
-void h(void) {}
-
-int f (
-    int (void),
-    int (int),
-    int ((void)),
-    int ((int)),
-    void g(void)
-  ) {
-    (*g)();
-    g();
-    g = h;
-}
-
-int f1() {}
-int (f2()) {}
-int (*f3())() {}
-int *((f4())) {}
-int ((*f5()))() {}
-int *f6() {}
-int *(f7)() {}
-int **f8() {}
-int * const *(f9)() {}
-int (*f10())[] {}
-int (*f11())[][3] {}
-int ((*f12())[])[3] {}
-
-// "implicit int" type specifier (not ANSI)
-
-fII1( int i ) {}
-const fII2( int i ) {}
-extern fII3( int i ) {}
-extern const fII4( int i ) {}
-
-*fII5() {}
-const *fII6() {}
-const long *fII7() {}
-static const long *fII8() {}
-const static long *fII9() {}
-
-// K&R function definitions
-
-fO1( i ) int i; {}
-int fO2( i ) int i; {}
-const fO3( i ) int i; {}
-extern fO4( i ) int i; {}
-extern const fO5( i ) int i; {}
-
-// Cforall extensions
-
-[] f( );
-[int] f( );
-[] f(int);
-[int] f(int);
-[] f( ) {}
-[int] f( ) {}
-[] f(int) {}
-[int] f(int) {}
-
-[int x] f( );
-[] f(int x);
-[int x] f(int x);
-[int x] f( ) {}
-[] f(int x) {}
-[int x] f(int x) {}
-
-[int, int x] f( );
-[] f(int, int x);
-[int, int x] f(int, int x);
-[int, int x] f( ) {}
-[] f(int, int x) {}
-[int, int x] f(int, int x) {}
-
-[int, int x, int] f( );
-[] f(int, int x, int);
-[int, int x, int] f(int, int x, int);
-[int, int x, int] f( ) {}
-[] f(int, int x, int) {}
-[int, int x, int] f(int, int x, int) {}
-
-[int, int x, * int y] f( );
-[] f(int, int x, * int y);
-[int, int x, * int y] f(int, int x, * int y);
-[int, int x, * int y] f( ) {}
-[] f(int, int x, * int y) {}
-[int, int x, * int y] f(int, int x, * int y) {}
-
-[ int ] f11( int ), f12;  // => int f11( int ), f12( int );
-
-[int] f(
-	int ( int, int p ),
-	[int](int)
-    ) {
-    int (*(*p)[][10])[][3];
-    * [][10] * [][3] int p;
-    * [] * [int](int) p;
-}
-
-static const int *f1() {}
-static [ const int ] f2() {}
-static inline [ const * int ] f3() {}
-static inline [ const [ * int, int ] ] f4() {}
-static [ const [ * int, const int ] ] f5() {}
-
-// unnamed parameter
-
-int f(
-    int (),
-
-    int *(),
-    int **(),
-    int * const *(),
-    int * const * const (),
-
-    int ([]),
-    int ([10]),
-
-    int *([]),
-    int *([10]),
-    int **([]),
-    int **([10]),
-    int * const *([]),
-    int * const *([10]),
-    int * const * const ([]),
-    int * const * const ([10])
-    );
-
-int f(
-    int (),
-
-    int *(),
-    int **(),
-    int * const *(),
-    int * const * const (),
-
-    int ([]),
-    int ([10]),
-
-    int *([]),
-    int *([10]),
-    int **([]),
-    int **([10]),
-    int * const *([]),
-    int * const *([10]),
-    int * const * const ([]),
-    int * const * const ([10])
-    ) {
-}
-
-typedef int T;
-int f( T (*f), T t ) {
-    T (T);
-}
-
-// errors
-
-//int f()[] {}
-//int (f[])() {}
-//int f[]() {}
-//int ((*f15())())[] {}
Index: src/Tests/Parser/IdentFuncDeclarator.c
===================================================================
--- src/Tests/Parser/IdentFuncDeclarator.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,105 +1,0 @@
-int main() {
-    //int f0[]();
-    //int (f0[])();
-    //int f0()[];
-    //int f0()();
-    //int (*f0)()();
-    //int ((*f0())())[];
-    
-    int f1;
-    int (f2);
-
-    int *f3;
-    int **f4;
-    int * const *f5;
-    int * const * const f6;
-
-    int *(f7);
-    int **(f8);
-    int * const *(f9);
-    int * const * const (f10);
-
-    int (*f11);
-    int (**f12);
-    int (* const *f13);
-    int (* const * const f14);
-
-    int f15[];
-    int f16[10];
-    int (f17[]);
-    int (f18[10]);
-
-    int *f19[];
-    int *f20[10];
-    int **f21[];
-    int **f22[10];
-    int * const *f23[];
-    int * const *f24[10];
-    int * const * const f25[];
-    int * const * const f26[10];
-
-    int *(f27[]);
-    int *(f28[10]);
-    int **(f29[]);
-    int **(f30[10]);
-    int * const *(f31[]);
-    int * const *(f32[10]);
-    int * const * const (f33[]);
-    int * const * const (f34[10]);
-
-    int (*f35[]);
-    int (*f36[10]);
-    int (**f37[]);
-    int (**f38[10]);
-    int (* const *f39[]);
-    int (* const *f40[10]);
-    int (* const * const f41[]);
-    int (* const * const f42[10]);
-
-    int f43[][3];
-    int f44[3][3];
-    int (f45[])[3];
-    int (f46[3])[3];
-    int ((f47[]))[3];
-    int ((f48[3]))[3];
-
-    int *f49[][3];
-    int *f50[3][3];
-    int **f51[][3];
-    int **f52[3][3];
-    int * const *f53[][3];
-    int * const *f54[3][3];
-    int * const * const f55[][3];
-    int * const * const f56[3][3];
-
-    int (*f57[][3]);
-    int (*f58[3][3]);
-    int (**f59[][3]);
-    int (**f60[3][3]);
-    int (* const *f61[][3]);
-    int (* const *f62[3][3]);
-    int (* const * const f63[][3]);
-    int (* const * const f64[3][3]);
-
-    int f65(int);
-    int (f66)(int);
-
-    int *f67(int);
-    int **f68(int);
-    int * const *f69(int);
-    int * const * const f70(int);
-
-    int *(f71)(int);
-    int **(f72)(int);
-    int * const *(f73)(int);
-    int * const * const (f74)(int);
-
-    int (*f75)(int);
-    int (**f76)(int);
-    int (* const *f77)(int);
-    int (* const * const f78)(int);
-
-    int (*(*f79)(int))();
-    int (*(* const f80)(int))();
-    int (* const(* const f81)(int))();
-}
Index: src/Tests/Parser/IdentFuncParamDeclarator.c
===================================================================
--- src/Tests/Parser/IdentFuncParamDeclarator.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,150 +1,0 @@
-int fred(
-    //int f0[](),
-    //int (f0[])(),
-    //int f0()[],
-    //int f0()(),
-    //int (*f0)()(),
-    //int ((*f0())())[],
-    
-    int f1,
-    int (f2),
-
-    int *f3,
-    int **f4,
-    int * const *f5,
-    int * const * const f6,
-
-    int *(f7),
-    int **(f8),
-    int * const *(f9),
-    int * const * const (f10),
-
-    int (*f11),
-    int (**f12),
-    int (* const *f13),
-    int (* const * const f14),
-
-    int f15[],
-    int f16[10],
-    int (f17[]),
-    int (f18[10]),
-
-    int *f19[],
-    int *f20[10],
-    int **f21[],
-    int **f22[10],
-    int * const *f23[],
-    int * const *f24[10],
-    int * const * const f25[],
-    int * const * const f26[10],
-
-    int *(f27[]),
-    int *(f28[10]),
-    int **(f29[]),
-    int **(f30[10]),
-    int * const *(f31[]),
-    int * const *(f32[10]),
-    int * const * const (f33[]),
-    int * const * const (f34[10]),
-
-    int (*f35[]),
-    int (*f36[10]),
-    int (**f37[]),
-    int (**f38[10]),
-    int (* const *f39[]),
-    int (* const *f40[10]),
-    int (* const * const f41[]),
-    int (* const * const f42[10]),
-
-    int f43[][3],
-    int f44[3][3],
-    int (f45[])[3],
-    int (f46[3])[3],
-    int ((f47[]))[3],
-    int ((f48[3]))[3],
-
-    int *f49[][3],
-    int *f50[3][3],
-    int **f51[][3],
-    int **f52[3][3],
-    int * const *f53[][3],
-    int * const *f54[3][3],
-    int * const * const f55[][3],
-    int * const * const f56[3][3],
-
-    int (*f57[][3]),
-    int (*f58[3][3]),
-    int (**f59[][3]),
-    int (**f60[3][3]),
-    int (* const *f61[][3]),
-    int (* const *f62[3][3]),
-    int (* const * const f63[][3]),
-    int (* const * const f64[3][3]),
-
-    int f65(int),
-    int (f66)(int),
-
-    int *f67(int),
-    int **f68(int),
-    int * const *f69(int),
-    int * const * const f70(int),
-
-    int *(f71)(int),
-    int **(f72)(int),
-    int * const *(f73)(int),
-    int * const * const (f74)(int),
-
-    int (*f75)(int),
-    int (**f76)(int),
-    int (* const *f77)(int),
-    int (* const * const f78)(int),
-
-    int (*(*f79)(int))(),
-    int (*(* const f80)(int))(),
-    int (* const(* const f81)(int))(),
-
-    int f82[const *],
-    int f83[const 3],
-    int f84[static 3],
-    int f85[static const 3],
-
-    int (f86[const *]),
-    int (f87[const 3]),
-    int (f88[static 3]),
-    int (f89[static const 3]),
-
-    int *f90[const *],
-    int *f91[const 3],
-    int **f92[static 3],
-    int * const *f93[static const 3],
-    int * const * const f94[static const 3],
-
-    int *(f95[const *]),
-    int *(f96[const 3]),
-    int **(f97[static 3]),
-    int * const *(f98[static const 3]),
-    int * const * const (f99[static const 3]),
-
-    int f100[const *][3],
-    int f101[const 3][3],
-    int f102[static 3][3],
-    int f103[static const 3][3],
-
-    int (f104[const *][3]),
-    int (f105[const 3][3]),
-    int (f106[static 3][3]),
-    int (f107[static const 3][3]),
-
-    int *f108[const *][3],
-    int *f109[const 3][3],
-    int **f110[static 3][3],
-    int * const *f111[static const 3][3],
-    int * const * const f112[static const 3][3],
-
-    int *(f113[const *][3]),
-    int *(f114[const 3][3]),
-    int **(f115[static 3][3]),
-    int * const *(f116[static const 3][3]),
-    int * const * const (f117[static const 3][3])
-    ) {
-}
Index: src/Tests/Parser/Initialization.c
===================================================================
--- src/Tests/Parser/Initialization.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,27 +1,0 @@
-// Cforall extensions
-
-int * x21 = 0, x22 = 0;
-int * x21 = 0, x22 = 0;
-
-[20] int y1, y2 = { 1, 2, 3 };
-
-// designators
-
-struct {
-    [int] w;
-} a = { .w : [2] };
-
-struct { int a[3], b; } w [] = { [0].a : {1}, [0].b : 1, [1].a[0] : 2 };
-
-struct {
-    int f1, f2, f3;
-    struct { int g1, g2, g3; } f4[4];
-} v7 = {
-    .f1 : 4,
-    f2 : 3,
-    .f4[2] : {
-	.g1 : 3,
-	g3 : 0,
-    },
-    .f4[3].g3 : 7,
-};
Index: src/Tests/Parser/Scope.c
===================================================================
--- src/Tests/Parser/Scope.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,69 +1,0 @@
-int x;
-typedef double y;
-typedef float t;
-y z;
-type u = struct { int a; double b; };
-int f( int y );
-y q;
-
-y w(y y, u v) {
-  type x | { x t(u); };
-  u u = y;
-  x z = t(u);
-}
-
-y p;
-
-context has_u( type z )
-{
-  z u(z);
-};
-
-forall( type t | has_u( t ) )
-y q( t the_t )
-{
-  t y = u( the_t );
-}
-
-t f( y p ) {
-  int y;
-  typedef char x;
-
-  {
-    x y;
-    typedef x z;
-
-    {
-      z x;
-      typedef z y;
-      y z = x;
-    }
-
-    z x = y;
-  }
-
-  x q = y;
-}
-
-t g( void ) {
-  typedef char x;
-  try {
-    some_func();
-  } catch ( x x ) {
-    t y = x;
-  }
-  x z;
-}
-
-y q(i)
-    int i;
-{
-  switch (i) {
-    y q = i;
-  case 0:
-    return q;
-  default:
-    return i;
-  }
-}
-
Index: src/Tests/Parser/StructMember.c
===================================================================
--- src/Tests/Parser/StructMember.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,40 +1,0 @@
-typedef int T;
-
-struct S {
-    int m1:3, m2:4;
-    int :2;
-    int :3, :4;
-    int m3;
-    int m4, m5, m6;
-    int *m7, *m8, *m9;
-    int (*m10)();
-    int *(*m11)(int);
-    T T;
-    T (T);
-
-// Cforall extensions
-
-    * int m12, m13;
-    * [ * int ] (int) m14;
-    int ;
-    int , , ;
-    int * , , ;
-    int *, *, *;
-    * int , , ;
-    int (*)();
-    int (**)( int );
-    T ;
-
-// errors
-
-//    void f(void);
-};
-
-struct S s;
-
-union U {
-    [5] int m1;
-    int m2[5];
-    * int m3;
-    int *m4;
-} u;
Index: src/Tests/Parser/Tuple.c
===================================================================
--- src/Tests/Parser/Tuple.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,62 +1,0 @@
-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 ] = ([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 );
-    [ 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" );
-    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;
-}
Index: src/Tests/Parser/TypeGenerator.c
===================================================================
--- src/Tests/Parser/TypeGenerator.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,19 +1,0 @@
-context addable(type T) {
-   T ?+?(T,T);
-};
-
-type List(type T | addable(T) ) | addable(T) = struct { T data; List(T) *next; } *;
-typedef List(int) ListOfIntegers;
-ListOfIntegers li;
-int f( List(int) ((*g))(int) );
-[int] h( * List(int) p ); // new declaration syntax
-
-struct(type T | addable(T) ) node { T data; struct(T) node *next; };
-type List(type T) = struct(T) node *;
-List(int) my_list;
-
-type Complex | addable(Complex);
-
-int main() {
-    (struct(int) node)my_list;
-}
Index: src/Tests/Parser/Typedef.c
===================================================================
--- src/Tests/Parser/Typedef.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,41 +1,0 @@
-typedef int T;
-
-void f( void ) {
-    int T( T );
-    T( 3 );
-}
-
-struct {
-    T (T);
-} fred = { 3 };
-
-typedef int (*a)(int, char);
-a b;
-
-int g(void) {
-    double a;
-}
-a c;
-
-// typedef x = 3, y = 3;  /* GCC */
-
-// x p;
-// y q;
-
-int main() {
-//    typedef z = p = 3;
-}
-
-/* new-style function definitions */
-
-typedef [10] * int arrayOf10Pointers;
-arrayOf10Pointers x;
-typedef const * int constantPointer;
-typedef * [ int ]( [] int ) funcPtr;
-typedef [ int ] funcProto( []  int );
-typedef [ int, int ] tupleType;
-typedef * [ int, int ] tupleTypePtr;
-typedef * int a, b;
-typedef [ int ] f( * int ), g;
-typedef [ * [static 10] int ] t;
-typedef [ * [static 10] int x ] f();
Index: src/Tests/Parser/TypedefDeclarator.c
===================================================================
--- src/Tests/Parser/TypedefDeclarator.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,116 +1,0 @@
-typedef int
-     f0,  f1,  f2,  f3,  f4,  f5,  f6,  f7,  f8,  f9,
-    f10, f11, f12, f13, f14, f15, f16, f17, f18, f19,
-    f20, f21, f22, f23, f24, f25, f26, f27, f28, f29,
-    f30, f31, f32, f33, f34, f35, f36, f37, f38, f39,
-    f40, f41, f42, f43, f44, f45, f46, f47, f48, f49,
-    f50, f51, f52, f53, f54, f55, f56, f57, f58, f59,
-    f60, f61, f62, f63, f64, f65, f66, f67, f68, f69,
-    f70, f71, f72, f73, f74, f75, f76, f77, f78, f79,
-    f80, f81, f82, f83, f84, f85, f86, f87, f88, f89;
-
-int main() {
-    //int f0[]();
-    //int (f0[])();
-    //int f0()[];
-    //int f0()();
-    //int (*f0)()();
-    //int ((*f0())())[];
-    
-    int f1;
-    int (f2);
-
-    int *f3;
-    int **f4;
-    int * const *f5;
-    int * const * const f6;
-
-    int *(f7);
-    int **(f8);
-    int * const *(f9);
-    int * const * const (f10);
-
-    int (*f11);
-    int (**f12);
-    int (* const *f13);
-    int (* const * const f14);
-
-    int f15[];
-    int f16[10];
-    int (f17[]);
-    int (f18[10]);
-
-    int *f19[];
-    int *f20[10];
-    int **f21[];
-    int **f22[10];
-    int * const *f23[];
-    int * const *f24[10];
-    int * const * const f25[];
-    int * const * const f26[10];
-
-    int *(f27[]);
-    int *(f28[10]);
-    int **(f29[]);
-    int **(f30[10]);
-    int * const *(f31[]);
-    int * const *(f32[10]);
-    int * const * const (f33[]);
-    int * const * const (f34[10]);
-
-    int (*f35[]);
-    int (*f36[10]);
-    int (**f37[]);
-    int (**f38[10]);
-    int (* const *f39[]);
-    int (* const *f40[10]);
-    int (* const * const f41[]);
-    int (* const * const f42[10]);
-
-    int f43[][3];
-    int f44[3][3];
-    int (f45[])[3];
-    int (f46[3])[3];
-    int ((f47[]))[3];
-    int ((f48[3]))[3];
-
-    int *f49[][3];
-    int *f50[3][3];
-    int **f51[][3];
-    int **f52[3][3];
-    int * const *f53[][3];
-    int * const *f54[3][3];
-    int * const * const f55[][3];
-    int * const * const f56[3][3];
-
-    int (*f57[][3]);
-    int (*f58[3][3]);
-    int (**f59[][3]);
-    int (**f60[3][3]);
-    int (* const *f61[][3]);
-    int (* const *f62[3][3]);
-    int (* const * const f63[][3]);
-    int (* const * const f64[3][3]);
-
-    int f65(int);
-    int (f66)(int);
-
-    int *f67(int);
-    int **f68(int);
-    int * const *f69(int);
-    int * const * const f70(int);
-
-    int *(f71)(int);
-    int **(f72)(int);
-    int * const *(f73)(int);
-    int * const * const (f74)(int);
-
-    int (*f75)(int);
-    int (**f76)(int);
-    int (* const *f77)(int);
-    int (* const * const f78)(int);
-
-    int (*(*f79)(int))();
-    int (*(* const f80)(int))();
-    int (* const(* const f81)(int))();
-}
Index: src/Tests/Parser/TypedefParamDeclarator.c
===================================================================
--- src/Tests/Parser/TypedefParamDeclarator.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,150 +1,0 @@
-typedef int
-     f0,   f1,   f2,   f3,   f4,   f5,   f6,   f7,   f8,   f9,
-    f10,  f11,  f12,  f13,  f14,  f15,  f16,  f17,  f18,  f19,
-    f20,  f21,  f22,  f23,  f24,  f25,  f26,  f27,  f28,  f29,
-    f30,  f31,  f32,  f33,  f34,  f35,  f36,  f37,  f38,  f39,
-    f40,  f41,  f42,  f43,  f44,  f45,  f46,  f47,  f48,  f49,
-    f50,  f51,  f52,  f53,  f54,  f55,  f56,  f57,  f58,  f59,
-    f60,  f61,  f62,  f63,  f64,  f65,  f66,  f67,  f68,  f69,
-    f70,  f71,  f72,  f73,  f74,  f75,  f76,  f77,  f78,  f79,
-    f80,  f81,  f82,  f83,  f84,  f85,  f86,  f87,  f88,  f89,
-    f90,  f91,  f92,  f93,  f94,  f95,  f96,  f97,  f98,  f99,
-    f100, f101, f102, f103, f104, f105, f106, f107, f108, f109,
-    f110, f111, f112, f113, f114, f115, f116, f117, f118, f119;
-
-int fred(
-/*
-    //int f0[](),
-    //int (f0[])(),
-    //int f0()[],
-    //int f0()(),
-    //int (*f0)()(),
-    //int ((*f0())())[],
-*/
-    int f1,
-
-    int *f3,
-    int **f4,
-    int * const *f5,
-    int * const * const f6,
-
-    int (*f11),
-    int (**f12),
-    int (* const *f13),
-    int (* const * const f14),
-
-    int f15[],
-    int f16[10],
-
-    int *f19[],
-    int *f20[10],
-    int **f21[],
-    int **f22[10],
-    int * const *f23[],
-    int * const *f24[10],
-    int * const * const f25[],
-    int * const * const f26[10],
-
-    int (*f35[]),
-    int (*f36[10]),
-    int (**f37[]),
-    int (**f38[10]),
-    int (* const *f39[]),
-    int (* const *f40[10]),
-    int (* const * const f41[]),
-    int (* const * const f42[10]),
-
-    int f43[][3],
-    int f44[3][3],
-/*
-    int (f45[])[3],
-    int (f46[3])[3],
-    int ((f47[]))[3],
-    int ((f48[3]))[3],
-*/
-    int *f49[][3],
-    int *f50[3][3],
-    int **f51[][3],
-    int **f52[3][3],
-    int * const *f53[][3],
-    int * const *f54[3][3],
-    int * const * const f55[][3],
-    int * const * const f56[3][3],
-
-    int (*f57[][3]),
-    int (*f58[3][3]),
-    int (**f59[][3]),
-    int (**f60[3][3]),
-    int (* const *f61[][3]),
-    int (* const *f62[3][3]),
-    int (* const * const f63[][3]),
-    int (* const * const f64[3][3]),
-
-    int f65(int),
-/*
-    int (f66)(int),
-*/
-    int *f67(int),
-    int **f68(int),
-    int * const *f69(int),
-    int * const * const f70(int),
-/*
-    int *(f71)(int),
-    int **(f72)(int),
-    int * const *(f73)(int),
-    int * const * const (f74)(int),
-*/
-    int (*f75)(int),
-    int (**f76)(int),
-    int (* const *f77)(int),
-    int (* const * const f78)(int),
-
-    int (*(*f79)(int))(),
-    int (*(* const f80)(int))(),
-    int (* const(* const f81)(int))(),
-
-    int f82[const *],
-    int f83[const 3],
-    int f84[static 3],
-    int f85[static const 3],
-
-    int (f86[const *]),
-    int (f87[const 3]),
-    int (f88[static 3]),
-    int (f89[static const 3]),
-
-    int *f90[const *],
-    int *f91[const 3],
-    int **f92[static 3],
-    int * const *f93[static const 3],
-    int * const * const f94[static const 3],
-
-    int *(f95[const *]),
-    int *(f96[const 3]),
-    int **(f97[static 3]),
-    int * const *(f98[static const 3]),
-    int * const * const (f99[static const 3]),
-
-    int f100[const *][3],
-    int f101[const 3][3],
-    int f102[static 3][3],
-    int f103[static const 3][3],
-
-    int (f104[const *][3]),
-    int (f105[const 3][3]),
-    int (f106[static 3][3]),
-    int (f107[static const 3][3]),
-
-    int *f108[const *][3],
-    int *f109[const 3][3],
-    int **f110[static 3][3],
-    int * const *f111[static const 3][3],
-    int * const * const f112[static const 3][3],
-
-    int *(f113[const *][3]),
-    int *(f114[const 3][3]),
-    int **(f115[static 3][3]),
-    int * const *(f116[static const 3][3]),
-    int * const * const (f117[static const 3][3])
-    ) {
-}
Index: src/Tests/Parser/VariableDeclarator.c
===================================================================
--- src/Tests/Parser/VariableDeclarator.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,115 +1,0 @@
-int f1;
-int (f2);
-
-int *f3;
-int **f4;
-int * const *f5;
-int * const * const f6;
-
-int *(f7);
-int **(f8);
-int * const *(f9);
-int * const * const (f10);
-
-int (*f11);
-int (**f12);
-int (* const *f13);
-int (* const * const f14);
-
-int f15[];
-int f16[10];
-int (f17[]);
-int (f18[10]);
-
-int *f19[];
-int *f20[10];
-int **f21[];
-int **f22[10];
-int * const *f23[];
-int * const *f24[10];
-int * const * const f25[];
-int * const * const f26[10];
-
-int *(f27[]);
-int *(f28[10]);
-int **(f29[]);
-int **(f30[10]);
-int * const *(f31[]);
-int * const *(f32[10]);
-int * const * const (f33[]);
-int * const * const (f34[10]);
-
-int (*f35[]);
-int (*f36[10]);
-int (**f37[]);
-int (**f38[10]);
-int (* const *f39[]);
-int (* const *f40[10]);
-int (* const * const f41[]);
-int (* const * const f42[10]);
-
-int f43[][3];
-int f44[3][3];
-int (f45[])[3];
-int (f46[3])[3];
-int ((f47[]))[3];
-int ((f48[3]))[3];
-
-int *f49[][3];
-int *f50[3][3];
-int **f51[][3];
-int **f52[3][3];
-int * const *f53[][3];
-int * const *f54[3][3];
-int * const * const f55[][3];
-int * const * const f56[3][3];
-
-int (*f57[][3]);
-int (*f58[3][3]);
-int (**f59[][3]);
-int (**f60[3][3]);
-int (* const *f61[][3]);
-int (* const *f62[3][3]);
-int (* const * const f63[][3]);
-int (* const * const f64[3][3]);
-
-int f65(int);
-int (f66)(int);
-
-int *f67(int);
-int **f68(int);
-int * const *f69(int);
-int * const * const f70(int);
-
-int *(f71)(int);
-int **(f72)(int);
-int * const *(f73)(int);
-
-int * const * const (f74)(int);
-
-int (*f75)(int);
-int (**f76)(int);
-int (* const *f77)(int);
-int (* const * const f78)(int);
-
-int (*(*f79)(int))();
-int (*(* const f80)(int))();
-int (* const(* const f81)(int))();
-
-// errors
-
-//int fe0[]();				// array of functions
-//int (fe1[])();				// array of functions
-//int fe2()[];				// returning an array
-//int fe3()();				// returning a function
-//int (*fe4)()();				// returning a function
-//int ((*fe5())())[];			// returning an array
-
-// Cforall extensions
-
-* [20] double z;
-[20] * char w;
-
-// function pointer
-
-*[]*[]* [ *[]*[] int ]( *[]*[] int, *[]*[] int ) v3;
Index: src/Tests/SynTree/Constant0-1.c
===================================================================
--- src/Tests/SynTree/Constant0-1.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ src/Tests/SynTree/Constant0-1.c	(revision 0b2961f2b406f56226db579dae86d2be974d1711)
@@ -11,4 +11,6 @@
 int 0, 1;
 const int 0, 1;
+int (0), (1);
+int ((0)), ((1));
 static const int 0, 1;
 struct { int i; } 0;
@@ -18,8 +20,12 @@
 // pointer
 
-int 1, * 0;
-int (1), ((1)), * (0), (* 0), ((* 0));
-int * const (0), (* const 0), ((* const 0));
-struct { int i; } * 0;
+int *0, *1;
+int *(0), *(1);
+int (*0), (*1);
+int ((*0)), ((*1));
+int * const (0), * const 1;
+int (* const 0), (* const 1);
+int ((* const 0)), ((* const 1));
+struct { int i; } *0;
 
 // Cforall style
@@ -34,2 +40,7 @@
 static const * int x, 0;
 const * * int x, 0;
+
+int main() {
+    int 1, * 0;
+    * int x, 0;
+}
Index: src/Tests/SynTree/DeclarationSpecifier.c
===================================================================
--- src/Tests/SynTree/DeclarationSpecifier.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ src/Tests/SynTree/DeclarationSpecifier.c	(revision 0b2961f2b406f56226db579dae86d2be974d1711)
@@ -11,4 +11,5 @@
 const short volatile int static x7;
 short int volatile static const x8;
+static short int volatile static const x9;		// duplicate static
 
 const volatile struct { int i; } x10;
@@ -20,4 +21,6 @@
 struct { int i; } const static volatile x16;
 struct { int i; } const volatile static x17;
+struct { int i; } const static volatile static x18;	// duplicate static
+struct { int i; } const static volatile static volatile x19; // duplicate static & volatile
 
 const Int volatile x20;
@@ -29,4 +32,5 @@
 const volatile Int static x26;
 Int volatile static const x27;
+static Int volatile static const x28;			// duplicate static
 
 const volatile struct { Int i; } x29;
Index: src/Tests/SynTree/Forall.c
===================================================================
--- src/Tests/SynTree/Forall.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ src/Tests/SynTree/Forall.c	(revision 0b2961f2b406f56226db579dae86d2be974d1711)
@@ -9,8 +9,8 @@
 
 context sumable( type T ) {
-    const T 0;
-    T ?+?(T, T);
-    T ?++(T);
-    [T] ?+=?(T,T);
+	const T 0;
+	T ?+?(T, T);
+	T ?++(T);
+	[T] ?+=?(T,T);
 };
 
@@ -32,5 +32,5 @@
 	int i;
 	for ( i = 0; i < n; i += 1 )
-	    total = total + a[i];
+		total = total + a[i];
 	return total;
 }
@@ -41,12 +41,17 @@
 }
 
+forall( type T | { const T 0; int ?!=?(T, T); int ?<?(T, T); } )
+T min( T t1, T t2 ) {
+	return t1 < t2 ? t1 : t2;
+}
+
 int main() {
-    int x = 1, y = 2, a[10];
-    float f;
+	int x = 1, y = 2, a[10];
+	float f;
 
-    swap( x, y );
-    twice( x, y );
-    f = min( 4.0, 3.0 );
-    sum( 10, a );
+	swap( x, y );
+	twice( x );
+	f = min( 4.0, 3.0 );
+	sum( 10, a );
 }
 
Index: src/Tests/SynTree/Functions.c
===================================================================
--- src/Tests/SynTree/Functions.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ src/Tests/SynTree/Functions.c	(revision 0b2961f2b406f56226db579dae86d2be974d1711)
@@ -152,5 +152,5 @@
 typedef int T;
 
-int f( T (T), T T ) {
+int f( T (*f), T t ) {
 	T (T);
 }
Index: src/Tests/SynTree/Initialization.c
===================================================================
--- src/Tests/SynTree/Initialization.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ src/Tests/SynTree/Initialization.c	(revision 0b2961f2b406f56226db579dae86d2be974d1711)
@@ -1,5 +1,5 @@
 // Cforall extensions
 
-int * x21 = 0, x22 = 0;
+int * x11 = 0, x12 = 0;
 int * x21 = 0, x22 = 0;
 
@@ -27,4 +27,14 @@
 };
 
+struct point { int x; int z; struct {int y1, y2, y3;} y; int w;};
+struct quintet { int v, w, x, y, z;};
+
+int main() {
+	struct point p1 = { x : 3 };
+	struct point p2 = { 3, 4 };
+	struct point p3 = { .[x,z] : 5, y : { .[y3,y1] : 6, 17 } };
+	struct point p4 = { w : 5, 4 };
+}
+
 // Local Variables: //
 // tab-width: 4 //
Index: src/Tests/SynTree/Scope.c
===================================================================
--- src/Tests/SynTree/Scope.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ src/Tests/SynTree/Scope.c	(revision 0b2961f2b406f56226db579dae86d2be974d1711)
@@ -7,5 +7,5 @@
 y q;
 
-y w(y y, u v) {
+y w( y y, u v ) {
 	type x | { x t(u); };
 	u u = y;
@@ -15,12 +15,10 @@
 y p;
 
-context has_u( type z )
-{
+context has_u( type z ) {
 	z u(z);
 };
 
 forall( type t | has_u( t ) )
-y q( t the_t )
-{
+y q( t the_t ) {
 	t y = u( the_t );
 }
@@ -29,9 +27,7 @@
 	int y;
 	typedef char x;
-
 	{
 		x y;
 		typedef x z;
-
 		{
 			z x;
@@ -39,8 +35,6 @@
 			y z = x;
 		}
-
 		z x = y;
 	}
-
 	x q = y;
 }
@@ -56,6 +50,6 @@
 }
 
-y q( i )
-    int i;
+y q( i )												/* K&R style */
+	int i;
 {
 	switch ( i ) {
Index: src/Tests/SynTree/Tuple.c
===================================================================
--- src/Tests/SynTree/Tuple.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ src/Tests/SynTree/Tuple.c	(revision 0b2961f2b406f56226db579dae86d2be974d1711)
@@ -1,5 +1,5 @@
 int f( int, int );
 int g( int, int, int );
-static [ int, int, int, int ] h( int a, int b, * int c, [] char d );
+static [ int, int *, * int, int ] h( int a, int b, * int c, [] char d );
 
 struct inner {
@@ -30,4 +30,5 @@
 
 	[ x, y, z ] = [ p, f( 17 ), 3 ];
+	[ x, y, z ] = ([short, unsigned int, [int, int]])([ p, f( 17 ), 3 ]);
 	r = [ x, y, z ];
 }
@@ -40,23 +41,26 @@
 	f( t1 );
 	g( t1, 3 );
-	[ 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 ];
+	[ , , , ];						/* 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" );
-	sp->[ f4,f1 ] = sp->[ f1,f4 ];
-	printf( "expecting 3, 17, 23, 4; got %d, %d, %d, %d\n", s.[ f4, i.[ f3,f2 ], f1 ] );
+	[ 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;
 }
Index: src/Tests/SynTree/TypeGenerator.c
===================================================================
--- src/Tests/SynTree/TypeGenerator.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ src/Tests/SynTree/TypeGenerator.c	(revision 0b2961f2b406f56226db579dae86d2be974d1711)
@@ -9,5 +9,11 @@
 [int] h( * List(int) p ); // new declaration syntax
 
-struct(type T | addable(T) ) node { T data; struct(T) node *next; };
+struct(type T) S1;			// forward definition
+struct(type T) S1 { T i; };		// actual definition
+struct(int) S1 v1, *p;			// expansion and instantiation
+struct(type T)(int) S2 { T i; } v2;	// actual definition, expansion and instantiation
+struct(type T)(int) { T i; } v2;	// anonymous actual definition, expansion and instantiation
+
+struct( type T | addable(T) ) node { T data; struct(T) node *next; };
 type List(type T) = struct(T) node *;
 List(int) my_list;
Index: src/Tests/SynTree/Typedef.c
===================================================================
--- src/Tests/SynTree/Typedef.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ src/Tests/SynTree/Typedef.c	(revision 0b2961f2b406f56226db579dae86d2be974d1711)
@@ -2,10 +2,10 @@
 
 void f( void ) {
-	int T( T );
-	T( 3 );
+    int T( T );
+    T( 3 );
 }
 
 struct {
-	T (T);
+    T (T);
 } fred = { 3 };
 
@@ -14,15 +14,17 @@
 
 int g(void) {
-	double a;
+    double a;
 }
 a c;
 
-// typedef x = 3, y = 3;  /* GCC */
+typedef typeof(3) x, y;  // GCC
 
-// x p;
-// y q;
+x p;
+y q;
 
 int main() {
-//    typedef z = p = 3;
+    typedef typeof(3) z, p;
+    z w;
+    p x;
 }
 
@@ -30,5 +32,5 @@
 
 typedef [10] * int arrayOf10Pointers;
-arrayOf10Pointers x;
+arrayOf10Pointers array;
 typedef const * int constantPointer;
 typedef * [ int ]( [] int ) funcPtr;
Index: src/Tests/SynTree/VariableDeclarator.c
===================================================================
--- src/Tests/SynTree/VariableDeclarator.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ src/Tests/SynTree/VariableDeclarator.c	(revision 0b2961f2b406f56226db579dae86d2be974d1711)
@@ -40,12 +40,12 @@
 int * const * const (f34[10]);
 
-int (*f35[]);
-int (*f36[10]);
-int (**f37[]);
-int (**f38[10]);
-int (* const *f39[]);
-int (* const *f40[10]);
-int (* const * const f41[]);
-int (* const * const f42[10]);
+int (*f35)[];
+int (*f36)[10];
+int (**f37)[];
+int (**f38)[10];
+int (* const *f39)[];
+int (* const *f40)[10];
+int (* const * const f41)[];
+int (* const * const f42)[10];
 
 int f43[][3];
@@ -108,6 +108,49 @@
 // Cforall extensions
 
-* [20] double z;
-[20] * char w;
+* int cf3;
+* * int cf4;
+* const * int cf5;
+const * const * int cf6;
+
+[] int cf15;
+[10] int cf16;
+
+[] * int cf19;
+[10] * int cf20;
+int **cf21[];
+[10] * * int cf22;
+[] * const * int cf23;
+[10] * const * int cf24;
+[] const * const * int cf25;
+[10] const * const * int cf26;
+
+* [] int cf35;
+* [10] int cf36;
+* * [] int cf37;
+* * [10] int cf38;
+* const * [] int cf39;
+* const * [10] int cf40;
+const * const * [] int cf41;
+const * const * [10] int cf42;
+
+[][3] int cf43;
+[3][3] int cf44;
+
+[][3] * int cf49;
+[3][3] * int cf50;
+[][3] * * int cf51;
+[3][3] * * int cf52;
+[][3] const * int cf53;
+[3][3] * const * int cf54;
+[][3] const * const * int cf55;
+[3][3] const * const * int cf56;
+
+[int] cf65(int);
+[int] cf66(int);
+
+[* int] cf67(int);
+[* * int] cf68(int);
+[const * * int] cf69(int);
+[const * const * int] cf70(int);
 
 // function pointer
Index: src/Tests/Syntax/Array.c
===================================================================
--- src/Tests/Syntax/Array.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,33 +1,0 @@
-int a1[];
-int a2[*];
-int a4[3];
-
-int m1[][3];
-int m2[*][*];
-int m4[3][3];
-
-typedef int T;
-
-int fred() {
-    int a1[];
-    int a2[*];
-    int a4[3];
-    int T[3];
-}
-
-int mary( int T[3],
-	  int p1[const 3],
-	  int p2[static 3],
-	  int p3[static const 3]
-    ) {
-}
-
-int (*tom())[3] {
-}
-
-int (*(jane)())( int T[3],
-		 int p1[const 3],
-		 int p2[static 3],
-		 int p3[static const 3]
-    ) {
-}
Index: src/Tests/Syntax/Constant0-1.c
===================================================================
--- src/Tests/Syntax/Constant0-1.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,73 +1,0 @@
-// Cforall extension
-
-int fred() {
-
-// value
-    {
-	int 0;
-	const int 0;
-	int 1;
-	const int 1;
-    }
-    static const int 0;
-    static const int 1;
-    {
-	int 0, 1;
-	const int 0, 1;
-    }
-    {
-	int (0), (1);
-    }
-    {
-	int ((0)), ((1));
-    }
-    {
-	static const int 0, 1;
-    }
-    {
-	struct { int i; } 0;
-	const struct { int i; } 1;
-    }
-    static const struct { int i; } 1;
-
-// pointer
-
-    {
-	int *0, *1;
-    }
-    {
-	int *(0), *(1);
-    }
-    {
-	int (*0), (*1);
-    }
-    {
-	int ((*0)), ((*1));
-    }
-    {
-	int * const (0), * const 1;
-    }
-    {
-	int (* const 0), (* const 1);
-    }
-    {
-	int ((* const 0)), ((* const 1));
-    }
-    struct { int i; } *0;
-
-// Cforall style
-
-    {
-	* int x, 0;
-	const * int x, 0;
-    }
-    static const * int x, 0;
-    * struct { int i; } 0;
-    const * struct { int i; } 0;
-    static const * struct { int i; } 0;
-    {
-	static * int x, 0;
-	static const * int x, 0;
-    }
-    const * * int x, 0;
-}
Index: src/Tests/Syntax/DeclarationSpecifier.c
===================================================================
--- src/Tests/Syntax/DeclarationSpecifier.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,97 +1,0 @@
-typedef short int Int;
-
-
-const short int volatile x1;
-static const short int volatile x2;
-const static short int volatile x3;
-const short static int volatile x4;
-const static volatile short int x4;
-const short int static volatile x5;
-const short int volatile static x6;
-const short volatile int static x7;
-short int volatile static const x8;
-
-const volatile struct { int i; } x10;
-const struct { int i; } volatile x11;
-struct { int i; } const volatile x12;
-static const volatile struct { int i; } x13;
-const static struct { int i; } volatile x14;
-struct { int i; } static const volatile x15;
-struct { int i; } const static volatile x16;
-struct { int i; } const volatile static x17;
-
-const Int volatile x20;
-static const Int volatile x21;
-const static Int volatile x22;
-const static Int volatile x23;
-const Int static volatile x24;
-const Int volatile static x25;
-const volatile Int static x26;
-Int volatile static const x27;
-
-const volatile struct { Int i; } x29;
-const struct { Int i; } volatile x30;
-struct { Int i; } const volatile x31;
-static const volatile struct { Int i; } x32;
-const static struct { Int i; } volatile x33;
-struct { Int i; } static const volatile x34;
-struct { Int i; } const static volatile x35;
-struct { Int i; } const volatile static x36;
-
-
-const static inline const volatile int f01();		// duplicate const
-volatile inline const volatile static int f02();	// duplicate volatile
-const inline const volatile int static f03();		// duplicate const
-volatile inline static const volatile int f04();	// duplicate volatile
-const static const inline volatile int f05();		// duplicate const
-volatile static const volatile inline int f06();	// duplicate volatile
-const static const volatile int inline f07();		// duplicate const
-volatile static const int inline volatile f08();	// duplicate volatile
-
-static inline const volatile int f11();
-inline const volatile static int f12();
-inline const volatile int static f13();
-inline static const volatile int f14();
-static const inline volatile int f15();
-static const volatile inline int f16();
-static const volatile int inline f17();
-static const int inline volatile f18();
-
-short static inline const volatile int f21();
-inline short const volatile static int f22();
-inline const short volatile int static f23();
-inline static const short volatile int f24();
-static const inline volatile short int f25();
-static const volatile inline int short f26();
-static const volatile int inline short f27();
-static const int inline volatile short f28();
-
-static inline const volatile struct { int i; } f31();
-inline const volatile static struct { int i; } f32();
-inline const volatile struct { int i; } static f33();
-inline static const volatile struct { int i; } f34();
-static const inline volatile struct { int i; } f35();
-static const volatile inline struct { int i; } f36();
-static const volatile struct { int i; } inline f37();
-static const struct { int i; } inline volatile f38();
-
-static inline const volatile Int f41();
-inline const volatile static Int f42();
-inline const volatile Int static f43();
-inline static const volatile Int f44();
-static const inline volatile Int f45();
-static const volatile inline Int f46();
-static const volatile Int inline f47();
-static const Int inline volatile f48();
-
-long long ll;
-long long int lli;
-double _Complex dc;
-long double _Complex lfc;
-
-// errors
-
-//static short int volatile static const e1;		// duplicate static
-//struct { int i; } const static volatile static e2;	// duplicate static
-//struct { int i; } const static volatile static volatile e3; // duplicate static & volatile
-//static Int volatile static const e4;			// duplicate static
Index: src/Tests/Syntax/Forall.c
===================================================================
--- src/Tests/Syntax/Forall.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,56 +1,0 @@
-typedef forall ( type T ) int (*f)( int );
-
-forall( type T )
-    void swap( T left, T right ) {
-	T temp = left;
-	left = right;
-	right = temp;
-    }
-
-context sumable( type T ) {
-    const T 0;
-    T ?+?(T, T);
-    T ?++(T*);
-    [T] ?+=?(T*,T);
-};
-
-type T1 | { const T1 0; T1 ?+?(T1, T1); T1 ?++(T1); [T1] ?+=?(T1,T1); },
-     T2(type P1, type P2 ) | (type Q, type W) { const Q 0; W ?+?(W, W); Q ?++(W); [Q] ?+=?(W,W); }(T1,T2(T1,f)),
-     T3 | sumable(T3);
-
-type T2(type P1, type P2) | sumable(T2(P1,P2)) = struct { P1 i; P2 j; };
-
-T2(int, int) w1;
-typedef T2(int, int) w2;
-w2 g2;
-type w3 = T2(int, int);
-w3 g3;
-
-forall( type T | sumable( T ) )
-    T sum( int n, T a[] ) {
-	T total = 0;
-	int i;
-	for ( i = 0; i < n; i += 1 )
-	    total = total + a[i];
-	return total;
-    }
-
-forall( type T | { T ?+?(T, T); T ?++(T*); [T] ?+=?(T*,T); } )
-    T twice( T t ) {
-	return t + t;
-    }
-
-forall( type T | { const T 0; int ?!=?(T, T); int ?<?(T, T); } )
-    T min( T t1, T t2 ) {
-	return t1 < t2 ? t1 : t2;
-    }
-
-int main() {
-    int x = 1, y = 2, a[10];
-    float f;
-
-    swap( x, y );
-    twice( x );
-    f = min( 4.0, 3.0 );
-    sum( 10, a );
-}
Index: src/Tests/Syntax/Functions.c
===================================================================
--- src/Tests/Syntax/Functions.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,165 +1,0 @@
-// ANSI function definitions
-
-void h(void) {}
-
-int f (
-    int p1(void),
-    int p2(int),
-    int (p3(void)),
-    int (p4(int)),
-    void g(void)
-  ) {
-    (*g)();
-    g();
-    g = h;
-}
-
-int f1() {}
-int (f2()) {}
-int (*f3())() {}
-int *((f4())) {}
-int ((*f5()))() {}
-int *f6() {}
-int *(f7)() {}
-int **f8() {}
-int * const *(f9)() {}
-int (*f10())[] {}
-int (*f11())[][3] {}
-int ((*f12())[])[3] {}
-
-// "implicit int" type specifier (not ANSI)
-
-fII1( int i ) {}
-const fII2( int i ) {}
-extern fII3( int i ) {}
-extern const fII4( int i ) {}
-
-*fII5() {}
-const *fII6() {}
-const long *fII7() {}
-static const long *fII8() {}
-const static long *fII9() {}
-
-// K&R function definitions
-
-fO1( i ) int i; {}
-int fO2( i ) int i; {}
-const fO3( i ) int i; {}
-extern fO4( i ) int i; {}
-extern const fO5( i ) int i; {}
-
-// Cforall extensions
-#if 1
-[] f( );
-[int] f( );
-[] f(int);
-[int] f(int);
-[] f( ) {}
-[int] f( ) {}
-[] f(int) {}
-[int] f(int) {}
-
-[int x] f( );
-[] f(int x);
-[int x] f(int x);
-[int x] f( ) {}
-[] f(int x) {}
-[int x] f(int x) {}
-
-[int, int x] f( );
-[] f(int, int x);
-[int, int x] f(int, int x);
-[int, int x] f( ) {}
-[] f(int, int x) {}
-[int, int x] f(int, int x) {}
-
-[int, int x, int] f( );
-[] f(int, int x, int);
-[int, int x, int] f(int, int x, int);
-[int, int x, int] f( ) {}
-[] f(int, int x, int) {}
-[int, int x, int] f(int, int x, int) {}
-
-[int, int x, * int y] f( );
-[] f(int, int x, * int y);
-[int, int x, * int y] f(int, int x, * int y);
-[int, int x, * int y] f( ) {}
-[] f(int, int x, * int y) {}
-[int, int x, * int y] f(int, int x, * int y) {}
-
-[ int ] f11( int ), f12;  // => int f11( int ), f12( int );
-
-[int] f(
-	int ( int, int p ),
-	[int](int)
-    ) {
-    int (*(*p)[][10])[][3];
-    * [][10] * [][3] int p;
-    * [] * [int](int) p;
-}
-
-static const int *g1() {}
-static [ const int ] g2() {}
-static inline [ const * int ] g3() {}
-static inline [ const [ * int, int ] ] g4() {}
-static [ const [ * int, const int ] ] g5() {}
-#endif
-
-// unnamed parameter
-
-int g(
-    int (),
-
-    int *(),
-    int **(),
-    int * const *(),
-    int * const * const (),
-
-    int ([]),
-    int ([10]),
-
-    int *([]),
-    int *([10]),
-    int **([]),
-    int **([10]),
-    int * const *([]),
-    int * const *([10]),
-    int * const * const ([]),
-    int * const * const ([10])
-    );
-
-int g(
-    int (),
-
-    int *(),
-    int **(),
-    int * const *(),
-    int * const * const (),
-
-    int ([]),
-    int ([10]),
-
-    int *([]),
-    int *([10]),
-    int **([]),
-    int **([10]),
-    int * const *([]),
-    int * const *([10]),
-    int * const * const ([]),
-    int * const * const ([10])
-    ) {
-}
-
-typedef int T;
-
-int g( T g(T), T T ) {
-    g(T);
-    T = 3;
-}
-
-// errors
-
-//int f()[] {}
-//int (f[])() {}
-//int f[]() {}
-//int ((*f15())())[] {}
Index: src/Tests/Syntax/IdentFuncDeclarator.c
===================================================================
--- src/Tests/Syntax/IdentFuncDeclarator.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,105 +1,0 @@
-int main() {
-    //int f0[]();
-    //int (f0[])();
-    //int f0()[];
-    //int f0()();
-    //int (*f0)()();
-    //int ((*f0())())[];
-    
-    int f1;
-    int (f2);
-
-    int *f3;
-    int **f4;
-    int * const *f5;
-    int * const * const f6;
-
-    int *(f7);
-    int **(f8);
-    int * const *(f9);
-    int * const * const (f10);
-
-    int (*f11);
-    int (**f12);
-    int (* const *f13);
-    int (* const * const f14);
-
-    int f15[];
-    int f16[10];
-    int (f17[]);
-    int (f18[10]);
-
-    int *f19[];
-    int *f20[10];
-    int **f21[];
-    int **f22[10];
-    int * const *f23[];
-    int * const *f24[10];
-    int * const * const f25[];
-    int * const * const f26[10];
-
-    int *(f27[]);
-    int *(f28[10]);
-    int **(f29[]);
-    int **(f30[10]);
-    int * const *(f31[]);
-    int * const *(f32[10]);
-    int * const * const (f33[]);
-    int * const * const (f34[10]);
-
-    int (*f35[]);
-    int (*f36[10]);
-    int (**f37[]);
-    int (**f38[10]);
-    int (* const *f39[]);
-    int (* const *f40[10]);
-    int (* const * const f41[]);
-    int (* const * const f42[10]);
-
-    int f43[][3];
-    int f44[3][3];
-    int (f45[])[3];
-    int (f46[3])[3];
-    int ((f47[]))[3];
-    int ((f48[3]))[3];
-
-    int *f49[][3];
-    int *f50[3][3];
-    int **f51[][3];
-    int **f52[3][3];
-    int * const *f53[][3];
-    int * const *f54[3][3];
-    int * const * const f55[][3];
-    int * const * const f56[3][3];
-
-    int (*f57[][3]);
-    int (*f58[3][3]);
-    int (**f59[][3]);
-    int (**f60[3][3]);
-    int (* const *f61[][3]);
-    int (* const *f62[3][3]);
-    int (* const * const f63[][3]);
-    int (* const * const f64[3][3]);
-
-    int f65(int);
-    int (f66)(int);
-
-    int *f67(int);
-    int **f68(int);
-    int * const *f69(int);
-    int * const * const f70(int);
-
-    int *(f71)(int);
-    int **(f72)(int);
-    int * const *(f73)(int);
-    int * const * const (f74)(int);
-
-    int (*f75)(int);
-    int (**f76)(int);
-    int (* const *f77)(int);
-    int (* const * const f78)(int);
-
-    int (*(*f79)(int))();
-    int (*(* const f80)(int))();
-    int (* const(* const f81)(int))();
-}
Index: src/Tests/Syntax/IdentFuncParamDeclarator.c
===================================================================
--- src/Tests/Syntax/IdentFuncParamDeclarator.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,150 +1,0 @@
-int fred(
-    //int f0[](),
-    //int (f0[])(),
-    //int f0()[],
-    //int f0()(),
-    //int (*f0)()(),
-    //int ((*f0())())[],
-    
-    int f1,
-    int (f2),
-
-    int *f3,
-    int **f4,
-    int * const *f5,
-    int * const * const f6,
-
-    int *(f7),
-    int **(f8),
-    int * const *(f9),
-    int * const * const (f10),
-
-    int (*f11),
-    int (**f12),
-    int (* const *f13),
-    int (* const * const f14),
-
-    int f15[],
-    int f16[10],
-    int (f17[]),
-    int (f18[10]),
-
-    int *f19[],
-    int *f20[10],
-    int **f21[],
-    int **f22[10],
-    int * const *f23[],
-    int * const *f24[10],
-    int * const * const f25[],
-    int * const * const f26[10],
-
-    int *(f27[]),
-    int *(f28[10]),
-    int **(f29[]),
-    int **(f30[10]),
-    int * const *(f31[]),
-    int * const *(f32[10]),
-    int * const * const (f33[]),
-    int * const * const (f34[10]),
-
-    int (*f35[]),
-    int (*f36[10]),
-    int (**f37[]),
-    int (**f38[10]),
-    int (* const *f39[]),
-    int (* const *f40[10]),
-    int (* const * const f41[]),
-    int (* const * const f42[10]),
-
-    int f43[][3],
-    int f44[3][3],
-    int (f45[])[3],
-    int (f46[3])[3],
-    int ((f47[]))[3],
-    int ((f48[3]))[3],
-
-    int *f49[][3],
-    int *f50[3][3],
-    int **f51[][3],
-    int **f52[3][3],
-    int * const *f53[][3],
-    int * const *f54[3][3],
-    int * const * const f55[][3],
-    int * const * const f56[3][3],
-
-    int (*f57[][3]),
-    int (*f58[3][3]),
-    int (**f59[][3]),
-    int (**f60[3][3]),
-    int (* const *f61[][3]),
-    int (* const *f62[3][3]),
-    int (* const * const f63[][3]),
-    int (* const * const f64[3][3]),
-
-    int f65(int),
-    int (f66)(int),
-
-    int *f67(int),
-    int **f68(int),
-    int * const *f69(int),
-    int * const * const f70(int),
-
-    int *(f71)(int),
-    int **(f72)(int),
-    int * const *(f73)(int),
-    int * const * const (f74)(int),
-
-    int (*f75)(int),
-    int (**f76)(int),
-    int (* const *f77)(int),
-    int (* const * const f78)(int),
-
-    int (*(*f79)(int))(),
-    int (*(* const f80)(int))(),
-    int (* const(* const f81)(int))(),
-
-    int f82[const *],
-    int f83[const 3],
-    int f84[static 3],
-    int f85[static const 3],
-
-    int (f86[const *]),
-    int (f87[const 3]),
-    int (f88[static 3]),
-    int (f89[static const 3]),
-
-    int *f90[const *],
-    int *f91[const 3],
-    int **f92[static 3],
-    int * const *f93[static const 3],
-    int * const * const f94[static const 3],
-
-    int *(f95[const *]),
-    int *(f96[const 3]),
-    int **(f97[static 3]),
-    int * const *(f98[static const 3]),
-    int * const * const (f99[static const 3]),
-
-    int f100[const *][3],
-    int f101[const 3][3],
-    int f102[static 3][3],
-    int f103[static const 3][3],
-
-    int (f104[const *][3]),
-    int (f105[const 3][3]),
-    int (f106[static 3][3]),
-    int (f107[static const 3][3]),
-
-    int *f108[const *][3],
-    int *f109[const 3][3],
-    int **f110[static 3][3],
-    int * const *f111[static const 3][3],
-    int * const * const f112[static const 3][3],
-
-    int *(f113[const *][3]),
-    int *(f114[const 3][3]),
-    int **(f115[static 3][3]),
-    int * const *(f116[static const 3][3]),
-    int * const * const (f117[static const 3][3])
-    ) {
-}
Index: src/Tests/Syntax/Initialization.c
===================================================================
--- src/Tests/Syntax/Initialization.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,45 +1,0 @@
-// Cforall extensions
-
-int * v1 = 0, v2 = 0;
-int * v3 = 0, v4 = 0;
-
-void fred() {
-    int y1, y2[20]  = { 1, 2, 3 };
-
-    // designators
-
-    struct {
-	[int] w;
-    } a = { .w : [2] };
-
-    struct { int a[3], b; } w [] = { [0].a : {1}, [0].b : 1, [1].a[0] : 2 };
-
-    struct {
-	int f1, f2, f3;
-	struct { int g1, g2, g3; } f4[4];
-    } v7 = {
-	.f1 : 4,
-	.f2 : 3,
-	.f4[2] : {
-	    .g1 : 3,
-	    .g3 : 0,
-	},
-	.f4[3].g3 : 7,
-    };
-}
-
-struct point { int x; int z; struct {int y1, y2, y3;} y; int w;};
-struct quintet { int v, w, x, y, z;};
-
-int foo() {
-  return 4;
-}
-
-int main() {
-  foo();
-  int i;
-  struct point p1 = { x: 3 };
-  struct point p2 = { 3, 4 };
-  struct point p3 = { .[x,z]: 5, y : { .[y3,y1] : 6, 17 } };
-  struct point p4 = { w : 5, 4 };
-}
Index: src/Tests/Syntax/Scope.c
===================================================================
--- src/Tests/Syntax/Scope.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,68 +1,0 @@
-int x;
-typedef double y;
-typedef float t;
-y z;
-type u = struct { int a; double b; };
-int f( int y );
-y q;
-
-y w(y y, u v) {
-    type x | { x t(u); };
-    u u = y;
-    x z = t(u);
-}
-
-y p;
-
-context has_u( type z )
-{
-  forall( type t ) z u(t);
-};
-
-forall( type t | has_u( t ) )
-y q( t the_t )
-{
-    t y = u( the_t );
-}
-
-t f( y p ) {
-    int y;
-    typedef char x;
-
-    {
-	x y;
-	typedef x z;
-
-	{
-	    z x;
-	    typedef z y;
-	    y z = x;
-	}
-
-	z x = y;
-    }
-
-    x q = y;
-}
-
-t g( void ) {
-    typedef char x;
-    try {
-	some_func();
-    } catch ( x x ) {
-	t y = x;
-    }
-    x z;
-}
-
-y q(i)							/* K&R style */
-    int i;
-{
-    switch (i) {
-	y q = i;
-      case 0:
-	return q;
-      default:
-	return i;
-    }
-}
Index: src/Tests/Syntax/StructMember.c
===================================================================
--- src/Tests/Syntax/StructMember.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,40 +1,0 @@
-typedef int T;
-
-struct S {
-    int m1:3, m2:4;
-    int :2;
-    int :3, :4;
-    int m3;
-    int m4, m5, m6;
-    int *m7, *m8, *m9;
-    int (*m10)();
-    int *(*m11)(int);
-    T T;
-    T (T);
-
-// Cforall extensions
-
-    * int m12, m13;
-    * [ * int ] (int) m14;
-    int ;
-    int , , ;
-    int * , , ;
-    int *, *, *;
-    * int , , ;
-    int (*)();
-    int (**)( int );
-    T ;
-
-// errors
-
-//    void f(void);
-};
-
-struct S s;
-
-union U {
-    [5] int m1;
-    int m2[5];
-    * int m3;
-    int *m4;
-} u;
Index: src/Tests/Syntax/Tuple.c
===================================================================
--- src/Tests/Syntax/Tuple.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,66 +1,0 @@
-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 ];
-    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 = [ a, ];					/* semantic error */
-    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;
-}
Index: src/Tests/Syntax/TypeGenerator.c
===================================================================
--- src/Tests/Syntax/TypeGenerator.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,25 +1,0 @@
-context addable(type T) {
-   T ?+?(T,T);
-};
-
-type List(type T | addable(T) ) | addable(T) = struct { T data; List(T) *next; } *;
-typedef List(int) ListOfIntegers;
-ListOfIntegers li;
-int f( List(int) ((*g))(int) );
-[int] h( * List(int) p ); // new declaration syntax
-
-struct(type T) S1;			// forward definition
-struct(type T) S1 { T i; };		// actual definition
-struct(int) S1 v1, *p;			// expansion and instantiation
-struct(type T)(int) S2 { T i; } v2;	// actual definition, expansion and instantiation
-struct(type T)(int) { T i; } v2;	// anonymous actual definition, expansion and instantiation
-
-struct(type T | addable(T) ) node { T data; struct(T) node *next; };
-type List(type T) = struct(T) node *;
-List(int) my_list;
-
-type Complex | addable(Complex);
-
-int main() {
-    (struct(int) node)my_list;
-}
Index: src/Tests/Syntax/Typedef.c
===================================================================
--- src/Tests/Syntax/Typedef.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,43 +1,0 @@
-typedef int T;
-
-void f( void ) {
-    int T( T );
-    T( 3 );
-}
-
-struct {
-    T (T);
-} fred = { 3 };
-
-typedef int (*a)(int, char);
-a b;
-
-int g(void) {
-    double a;
-}
-a c;
-
-typedef typeof(3) x, y;  /* GCC */
-
-x p;
-y q;
-
-int main() {
-    typedef typeof(3) z, p;
-    z w;
-    p x;
-}
-
-/* new-style function definitions */
-
-typedef [10] * int arrayOf10Pointers;
-arrayOf10Pointers array;
-typedef const * int constantPointer;
-typedef * [ int ]( [] int ) funcPtr;
-typedef [ int ] funcProto( []  int );
-typedef [ int, int ] tupleType;
-typedef * [ int, int ] tupleTypePtr;
-typedef * int a, b;
-typedef [ int ] f( * int ), g;
-typedef [ * [static 10] int ] t;
-typedef [ * [static 10] int x ] f();
Index: src/Tests/Syntax/TypedefDeclarator.c
===================================================================
--- src/Tests/Syntax/TypedefDeclarator.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,116 +1,0 @@
-typedef int
-     f0,  f1,  f2,  f3,  f4,  f5,  f6,  f7,  f8,  f9,
-    f10, f11, f12, f13, f14, f15, f16, f17, f18, f19,
-    f20, f21, f22, f23, f24, f25, f26, f27, f28, f29,
-    f30, f31, f32, f33, f34, f35, f36, f37, f38, f39,
-    f40, f41, f42, f43, f44, f45, f46, f47, f48, f49,
-    f50, f51, f52, f53, f54, f55, f56, f57, f58, f59,
-    f60, f61, f62, f63, f64, f65, f66, f67, f68, f69,
-    f70, f71, f72, f73, f74, f75, f76, f77, f78, f79,
-    f80, f81, f82, f83, f84, f85, f86, f87, f88, f89;
-
-int main() {
-    //int f0[]();
-    //int (f0[])();
-    //int f0()[];
-    //int f0()();
-    //int (*f0)()();
-    //int ((*f0())())[];
-    
-    int f1;
-    int (f2);
-
-    int *f3;
-    int **f4;
-    int * const *f5;
-    int * const * const f6;
-
-    int *(f7);
-    int **(f8);
-    int * const *(f9);
-    int * const * const (f10);
-
-    int (*f11);
-    int (**f12);
-    int (* const *f13);
-    int (* const * const f14);
-
-    int f15[];
-    int f16[10];
-    int (f17[]);
-    int (f18[10]);
-
-    int *f19[];
-    int *f20[10];
-    int **f21[];
-    int **f22[10];
-    int * const *f23[];
-    int * const *f24[10];
-    int * const * const f25[];
-    int * const * const f26[10];
-
-    int *(f27[]);
-    int *(f28[10]);
-    int **(f29[]);
-    int **(f30[10]);
-    int * const *(f31[]);
-    int * const *(f32[10]);
-    int * const * const (f33[]);
-    int * const * const (f34[10]);
-
-    int (*f35[]);
-    int (*f36[10]);
-    int (**f37[]);
-    int (**f38[10]);
-    int (* const *f39[]);
-    int (* const *f40[10]);
-    int (* const * const f41[]);
-    int (* const * const f42[10]);
-
-    int f43[][3];
-    int f44[3][3];
-    int (f45[])[3];
-    int (f46[3])[3];
-    int ((f47[]))[3];
-    int ((f48[3]))[3];
-
-    int *f49[][3];
-    int *f50[3][3];
-    int **f51[][3];
-    int **f52[3][3];
-    int * const *f53[][3];
-    int * const *f54[3][3];
-    int * const * const f55[][3];
-    int * const * const f56[3][3];
-
-    int (*f57[][3]);
-    int (*f58[3][3]);
-    int (**f59[][3]);
-    int (**f60[3][3]);
-    int (* const *f61[][3]);
-    int (* const *f62[3][3]);
-    int (* const * const f63[][3]);
-    int (* const * const f64[3][3]);
-
-    int f65(int);
-    int (f66)(int);
-
-    int *f67(int);
-    int **f68(int);
-    int * const *f69(int);
-    int * const * const f70(int);
-
-    int *(f71)(int);
-    int **(f72)(int);
-    int * const *(f73)(int);
-    int * const * const (f74)(int);
-
-    int (*f75)(int);
-    int (**f76)(int);
-    int (* const *f77)(int);
-    int (* const * const f78)(int);
-
-    int (*(*f79)(int))();
-    int (*(* const f80)(int))();
-    int (* const(* const f81)(int))();
-}
Index: src/Tests/Syntax/TypedefParamDeclarator.c
===================================================================
--- src/Tests/Syntax/TypedefParamDeclarator.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,150 +1,0 @@
-typedef int
-     f0,   f1,   f2,   f3,   f4,   f5,   f6,   f7,   f8,   f9,
-    f10,  f11,  f12,  f13,  f14,  f15,  f16,  f17,  f18,  f19,
-    f20,  f21,  f22,  f23,  f24,  f25,  f26,  f27,  f28,  f29,
-    f30,  f31,  f32,  f33,  f34,  f35,  f36,  f37,  f38,  f39,
-    f40,  f41,  f42,  f43,  f44,  f45,  f46,  f47,  f48,  f49,
-    f50,  f51,  f52,  f53,  f54,  f55,  f56,  f57,  f58,  f59,
-    f60,  f61,  f62,  f63,  f64,  f65,  f66,  f67,  f68,  f69,
-    f70,  f71,  f72,  f73,  f74,  f75,  f76,  f77,  f78,  f79,
-    f80,  f81,  f82,  f83,  f84,  f85,  f86,  f87,  f88,  f89,
-    f90,  f91,  f92,  f93,  f94,  f95,  f96,  f97,  f98,  f99,
-    f100, f101, f102, f103, f104, f105, f106, f107, f108, f109,
-    f110, f111, f112, f113, f114, f115, f116, f117, f118, f119;
-
-int fred(
-/*
-    //int f0[](),
-    //int (f0[])(),
-    //int f0()[],
-    //int f0()(),
-    //int (*f0)()(),
-    //int ((*f0())())[],
-*/
-    int f1,
-
-    int *f3,
-    int **f4,
-    int * const *f5,
-    int * const * const f6,
-
-    int (*f11),
-    int (**f12),
-    int (* const *f13),
-    int (* const * const f14),
-
-    int f15[],
-    int f16[10],
-
-    int *f19[],
-    int *f20[10],
-    int **f21[],
-    int **f22[10],
-    int * const *f23[],
-    int * const *f24[10],
-    int * const * const f25[],
-    int * const * const f26[10],
-
-    int (*f35[]),
-    int (*f36[10]),
-    int (**f37[]),
-    int (**f38[10]),
-    int (* const *f39[]),
-    int (* const *f40[10]),
-    int (* const * const f41[]),
-    int (* const * const f42[10]),
-
-    int f43[][3],
-    int f44[3][3],
-/*
-    int (f45[])[3],
-    int (f46[3])[3],
-    int ((f47[]))[3],
-    int ((f48[3]))[3],
-*/
-    int *f49[][3],
-    int *f50[3][3],
-    int **f51[][3],
-    int **f52[3][3],
-    int * const *f53[][3],
-    int * const *f54[3][3],
-    int * const * const f55[][3],
-    int * const * const f56[3][3],
-
-    int (*f57[][3]),
-    int (*f58[3][3]),
-    int (**f59[][3]),
-    int (**f60[3][3]),
-    int (* const *f61[][3]),
-    int (* const *f62[3][3]),
-    int (* const * const f63[][3]),
-    int (* const * const f64[3][3]),
-
-    int f65(int),
-/*
-    int (f66)(int),
-*/
-    int *f67(int),
-    int **f68(int),
-    int * const *f69(int),
-    int * const * const f70(int),
-/*
-    int *(f71)(int),
-    int **(f72)(int),
-    int * const *(f73)(int),
-    int * const * const (f74)(int),
-*/
-    int (*f75)(int),
-    int (**f76)(int),
-    int (* const *f77)(int),
-    int (* const * const f78)(int),
-
-    int (*(*f79)(int))(),
-    int (*(* const f80)(int))(),
-    int (* const(* const f81)(int))(),
-
-    int f82[const *],
-    int f83[const 3],
-    int f84[static 3],
-    int f85[static const 3],
-
-    int (f86[const *]),
-    int (f87[const 3]),
-    int (f88[static 3]),
-    int (f89[static const 3]),
-
-    int *f90[const *],
-    int *f91[const 3],
-    int **f92[static 3],
-    int * const *f93[static const 3],
-    int * const * const f94[static const 3],
-
-    int *(f95[const *]),
-    int *(f96[const 3]),
-    int **(f97[static 3]),
-    int * const *(f98[static const 3]),
-    int * const * const (f99[static const 3]),
-
-    int f100[const *][3],
-    int f101[const 3][3],
-    int f102[static 3][3],
-    int f103[static const 3][3],
-
-    int (f104[const *][3]),
-    int (f105[const 3][3]),
-    int (f106[static 3][3]),
-    int (f107[static const 3][3]),
-
-    int *f108[const *][3],
-    int *f109[const 3][3],
-    int **f110[static 3][3],
-    int * const *f111[static const 3][3],
-    int * const * const f112[static const 3][3],
-
-    int *(f113[const *][3]),
-    int *(f114[const 3][3]),
-    int **(f115[static 3][3]),
-    int * const *(f116[static const 3][3]),
-    int * const * const (f117[static const 3][3])
-    ) {
-}
Index: src/Tests/Syntax/VariableDeclarator.c
===================================================================
--- src/Tests/Syntax/VariableDeclarator.c	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ 	(revision )
@@ -1,162 +1,0 @@
-int f1;
-int (f2);
-
-int *f3;
-int **f4;
-int * const *f5;
-int * const * const f6;
-
-int *(f7);
-int **(f8);
-int * const *(f9);
-int * const * const (f10);
-
-int (*f11);
-int (**f12);
-int (* const *f13);
-int (* const * const f14);
-
-int f15[];
-int f16[10];
-int (f17[]);
-int (f18[10]);
-
-int *f19[];
-int *f20[10];
-int **f21[];
-int **f22[10];
-int * const *f23[];
-int * const *f24[10];
-int * const * const f25[];
-int * const * const f26[10];
-
-int *(f27[]);
-int *(f28[10]);
-int **(f29[]);
-int **(f30[10]);
-int * const *(f31[]);
-int * const *(f32[10]);
-int * const * const (f33[]);
-int * const * const (f34[10]);
-
-int (*f35)[];
-int (*f36)[10];
-int (**f37)[];
-int (**f38)[10];
-int (* const *f39)[];
-int (* const *f40)[10];
-int (* const * const f41)[];
-int (* const * const f42)[10];
-
-int f43[][3];
-int f44[3][3];
-int (f45[])[3];
-int (f46[3])[3];
-int ((f47[]))[3];
-int ((f48[3]))[3];
-
-int *f49[][3];
-int *f50[3][3];
-int **f51[][3];
-int **f52[3][3];
-int * const *f53[][3];
-int * const *f54[3][3];
-int * const * const f55[][3];
-int * const * const f56[3][3];
-
-int (*f57[][3]);
-int (*f58[3][3]);
-int (**f59[][3]);
-int (**f60[3][3]);
-int (* const *f61[][3]);
-int (* const *f62[3][3]);
-int (* const * const f63[][3]);
-int (* const * const f64[3][3]);
-
-int f65(int);
-int (f66)(int);
-
-int *f67(int);
-int **f68(int);
-int * const *f69(int);
-int * const * const f70(int);
-
-int *(f71)(int);
-int **(f72)(int);
-int * const *(f73)(int);
-
-int * const * const (f74)(int);
-
-int (*f75)(int);
-int (**f76)(int);
-int (* const *f77)(int);
-int (* const * const f78)(int);
-
-int (*(*f79)(int))();
-int (*(* const f80)(int))();
-int (* const(* const f81)(int))();
-
-// errors
-
-//int fe0[]();				// array of functions
-//int (fe1[])();				// array of functions
-//int fe2()[];				// returning an array
-//int fe3()();				// returning a function
-//int (*fe4)()();				// returning a function
-//int ((*fe5())())[];			// returning an array
-
-// Cforall extensions
-
-* int cf3;
-* * int cf4;
-* const * int cf5;
-const * const * int cf6;
-
-[] int cf15;
-[10] int cf16;
-
-[] * int cf19;
-[10] * int cf20;
-int **cf21[];
-[10] * * int cf22;
-[] * const * int cf23;
-[10] * const * int cf24;
-[] const * const * int cf25;
-[10] const * const * int cf26;
-
-* [] int cf35;
-* [10] int cf36;
-* * [] int cf37;
-* * [10] int cf38;
-* const * [] int cf39;
-* const * [10] int cf40;
-const * const * [] int cf41;
-const * const * [10] int cf42;
-
-[][3] int cf43;
-[3][3] int cf44;
-
-[][3] * int cf49;
-[3][3] * int cf50;
-[][3] * * int cf51;
-[3][3] * * int cf52;
-[][3] const * int cf53;
-[3][3] * const * int cf54;
-[][3] const * const * int cf55;
-[3][3] const * const * int cf56;
-
-[int] cf65(int);
-[int] cf66(int);
-
-[* int] cf67(int);
-[* * int] cf68(int);
-[const * * int] cf69(int);
-[const * const * int] cf70(int);
-
-
-* [20] double z;
-[20] * char w;
-
-// function pointer
-
-*[]*[]* [ *[]*[] int ]( *[]*[] int, *[]*[] int ) v3;
Index: src/libcfa/prelude.cf
===================================================================
--- src/libcfa/prelude.cf	(revision 81419b56599b36f14d08bf2cbd8c25893ee2f52b)
+++ src/libcfa/prelude.cf	(revision 0b2961f2b406f56226db579dae86d2be974d1711)
@@ -8,6 +8,6 @@
 // Created On       : Sat Nov 29 07:23:41 2014
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Jun  4 22:53:04 2015
-// Update Count     : 74
+// Last Modified On : Tue Jun  9 14:43:47 2015
+// Update Count     : 75
 //
 
@@ -407,10 +407,10 @@
 const volatile void *	?=?( const volatile void * volatile *, const volatile void * );
 
-forall( dtype DT ) DT *			?=?(		    DT *	  *, forall( dtype DT2 ) const DT2 * );
-forall( dtype DT ) DT *			?=?(		    DT * volatile *, forall( dtype DT2 ) const DT2 * );
+//forall( dtype DT ) DT *			?=?(		    DT *	  *, forall( dtype DT2 ) const DT2 * );
+//forall( dtype DT ) DT *			?=?(		    DT * volatile *, forall( dtype DT2 ) const DT2 * );
 forall( dtype DT ) const DT *		?=?( const	    DT *	  *, forall( dtype DT2 ) const DT2 * );
 forall( dtype DT ) const DT *		?=?( const	    DT * volatile *, forall( dtype DT2 ) const DT2 * );
-forall( dtype DT ) volatile DT *	?=?( volatile	    DT *	  *, forall( dtype DT2 ) const DT2 * );
-forall( dtype DT ) volatile DT *	?=?( volatile	    DT * volatile *, forall( dtype DT2 ) const DT2 * );
+//forall( dtype DT ) volatile DT *	?=?( volatile	    DT *	  *, forall( dtype DT2 ) const DT2 * );
+//forall( dtype DT ) volatile DT *	?=?( volatile	    DT * volatile *, forall( dtype DT2 ) const DT2 * );
 forall( dtype DT ) const volatile DT *	?=?( const volatile DT *	  *, forall( dtype DT2 ) const DT2 * );
 forall( dtype DT ) const volatile DT *	?=?( const volatile DT * volatile *, forall( dtype DT2 ) const DT2 * );
