when '"' => -- a string
- -- Skip over "
- J := J + 1;
- while J <= Str_Len and then
- (Element (Saved_Line, J) /= '"' or else
- Element (Saved_Line, J-1) = '\') loop
+ loop
+ if Str_Len <= J then
+ raise String_Error;
+ end if;
J := J + 1;
+ exit when Element (Saved_Line, J) = '"';
+ if Element (Saved_Line, J) = '\' then
+ J := J + 1;
+ end if;
end loop;
- -- So we either ran out of string..
- if J > Str_Len then
- raise String_Error;
- end if;
-
- -- or we reached an unescaped "
Res := (ID => Str_Tok, Start_Char => I, Stop_Char => J);
Char_To_Read := J + 1;