/* ERRORS */ () a {} () b(while) {} () c while {} while d() {} /* ERRORS */ () u(func()()); () w(()func()); () test() { a(); // ERROR a(1); // ERROR b(); // "while" in parameter list is ignored, error is recovered from here. b(1); // ERROR b(1,1); // ERROR c(); // ERROR "c" doesn't get defined d(); // ERROR /* ERRORS */ a(b); b(c); c(d); e(a); u(@a); u(@b); u(@c); u(@d); }