private/tests/parser.ss
#lang scheme/base

;; TESTS:
;;   - typedef enum { T = 128 } E; typedef int T[T]; T x;
;;   - enum { A = 0, B = A + 1 } E;
;;   - typedef int foo; struct s { int foo; };
;;   - typedef int foo; struct foo { int x; };
;;   - int (*(apfi[3]))(int x, int y);             // array of pointers to functions
;;   - int *f(int x, int y);                       // function that returns int pointer
;;   - int *(f)(int x, int y);                     // function that returns int pointer
;;   - int (*f)(int x, int y);                     // pointer to function
;;   - typedef int t; sizeof(int(int t, t x));     // parse error
;;   - typedef int t; sizeof(int(int t)); { t x; } // formals scope restricted to formals
;;   - typedef int T; ... { enum E { T = 128, U = T + 1 } }
;;   - typedef int t; ... { enum E { t = t }; }    // parse error