On Thu, 21 Jul 2011 19:15:50 +0100 Hans-Peter Diettrich <[email protected]> wrote:
> The code tools seem to have problems in parsing "case" statements, and > with debugging "while" statements. See this code snippet: > > //determine XML lines to copy > while PFirst < XLast do begin > //copy until PFirst > while XFirst < PFirst do begin > dst.Add(Strings[XFirst]); inc(XFirst); > end; > //merge patch > dst.Add(DiffFile.Strings[DFirst]); inc(DFirst); //copy diff range > header > case DiffSec.c of > 'a', > 'c', > 'd': //delete P (insert Diff lines before P?) > begin // <---------------- this is line 134 -------------- > while DFirst <= DLast do begin > ... > > When navigating in this file (e.g. CTRL-SHIFT up/dn), the cursor is > positioned at the marked line, at the "in" of "begin". The error message is: > uxml.pas(134,10) Error: identifier expected, but in found > (complete file uploaded with Mantis #19783) > > Does the parser have problems with character literals (and other > expressions) as case labels? The codetools itself uses a lot of them. Can you reproduce it? For example edit something in front, so that the parser reparses the code in question. I think I saw something fishy with undo that sometimes the source editor does not commit the changes to the codetools. Maybe this is the case here. > BTW the unit compiles, i.e. contains no real syntax errors. >[...] Mattias -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
