nästa upp förra innehåll
Nästa: Vanliga kompileringsfel Upp: Hur man kompilerar ett Förra: Hur man kompilerar ett

Felmeddelanden vid kompileringen

Pascalkompilatorn skriver felmeddelanden genom att först visa den rad i källkoden som felet upptäckts på. Sedan följer en bokstav (E, e, w eller s), ett nummer, en streckrad som pekar ut felet, och förklaringen. Det felaktiga programmet
  PROGRAM synerr_example;
    VAR i, j are Integer;
  BEGIN
    FOR j :* 1 TO 20 BEGIN
      Write(j);
      i = 2 ** j;
      Writeln(i))
    END
  END. { synerr_example }

finns i filen synerr.p och får vid kompilering skärmutskriften

  Wed Jun 18 14:28:38 1997  synerr.p:
             2      VAR i, j are Integer;
  e 18460--------------------^---  Replaced identifier with a ':'
             4      FOR j :* 1 TO 20 BEGIN
  E 18490-----------------^---  Expected keyword :=
  E 18460-----------------^---  Replaced ':' with a identifier
  e 18480----------------------------^---  Inserted keyword do
             6        i = 2 ** j;
  e 18480-------------^---  Inserted keyword if
  E 18480--------------------^---  Inserted identifier
  e 18480-----------------------^---  Inserted keyword then
             7        Writeln(i))
  e 18450-----------------------^---  Deleted ')'
Kompilatorn har en inbyggd felkorrigerare. E-felen är sådana som den inte kunde fixa, medan e-felen gick att åtgärda. Om kompilatorn bara hittar e-fel i ditt program kommer kompileringen att fullbordas och resultatfilen skapas. Även om kompilatorn rättar felen korrekt vid kompileringen ska du naturligtvis ändå själv rätta felen i ditt program.

Felmeddelanden som börjar med w är bara varningar. En sådan får man till exempel om man har deklarerat en lokal variabel som aldrig används. Exempel: Programmet

  PROGRAM Varning;
    PROCEDURE Warning;
      VAR i, j: integer;
    BEGIN
      Writeln(i);
    END;
  BEGIN
  END.

finns i filen varning.p. Kompilering ger följande utskrift:

  Wed Jun 18 15:37:36 1997  varning.p:
  In procedure warning:
  w 18280 variable i is used but never set
  w 18260 variable j is neither used nor set
Om man kompilerar ett program med väljaren -s och någon rad i programmet inte är i enlighet med standardpascal genereras en s-varning vid den raden, se avsnitt 7.


$\textstyle\parbox{.94\textwidth}{
Läs felmeddelandena {\em noga}\/ och titta i ...
 ...är alltså att du förstår och rättar de första felen
och därefter provar igen.
}$



Viggo Kann
Fri Aug 7 00:55:14 MET DST 1998