On 2013-12-28 15:47, Mark Morgan Lloyd wrote:
I can fix that either by putting a semicolon before the else- which I
believe is strictly incorrect- or by putting begin/end around that
conditional, or by inserting a dummy statement before the else like

      quit_:       if High(lexemeListArray) = 1 then begin
                   end;
      nop:         begin end
    else

The problem is the compiler associates the else with the if..then and not with the case statement. All your fixes break the possible connection between the else and the if..then and that's why they work.

Your first fix (to just add a semicolon) would be my preferred one. I have lots of code that is written that way. I'm not sure why you think this is "strictly incorrect".

--

Cheers!
Rich Saunders
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to