This patch improves the synactic error recovery in the case where a ";" is used instead of "," in a case expression. The following test should get these errors: case_exp_semi.ads:5:28: ";" should be "," package Case_Exp_Semi is X : Integer := 1; Y : Integer := (case X is when 1 => 1; when 2 => 2, when others => 3); end Case_Exp_Semi; Tested on x86_64-pc-linux-gnu, committed on trunk 2017-04-25 Bob Duff * par-ch4.adb (P_Case_Expression): If a semicolon is followed by "when", assume that ";" was meant to be ",".