CSL-CROOK - Wykaz błędów translacji

Z MERA 400 wiki
Przejdź do nawigacji Przejdź do wyszukiwania

Błędy fazy translacji są sygnalizowane przez translator CSL są sygnalizowane w postaci następującego komunikatu:

#ERROR NR  <numer błędu>
linia
^

gdzie:

  • nr - numer błędu
  • linia - błędna linia w języku CSL
  • ^ - identyfikator wskazujący miejsce wystąpienia błędu w linii
Nr błędu Opis
00 nieprawidłowy znak w kolumnie 6 lub 4, rekord w instrukcji lub zdanie nie jest dekodowane (po wystąpieniu błędu w instrukcji poprzedniej);
01 niedopuszczalny znak w kolumnie 1;
02 znak nienumeryczny w kolumnach 2-5 lub etykieta nie kończy się w 5 kolumnie;
03 brak etykiety w instrukcji FORMAT;
04 etykieta większa od 3999 lub taka etykieta już wystąpiła w segmencie;
05 zdanie z "#" lub z "*" może występować tylko poza segmentem w CSL-U;
06 81 znak w rekordzie różny od znaku CR (powrotu karetki);
07 puste pole informacyjne (kolumny 7-72) w rekordzie;
08 za duży stopień wcięcia instrukcji w programie (większy od 19);
09 instrukcja zaczyna się od złej kolumny (nie od kolumny 7, 9, 11, ...);
10 błąd części adresowej w instrukcji;
11 w ramach testu nie może występować część adresowa;
12 znak lub znaki, których nie powinno już być do końca instrukcji;
13 nazwa zmiennej pokrywa się z nazwą słowa strukturalnego lub słowo strukturalne źle użyte w instrukcji;
14 niedopuszczalne znaki przed słowem strukturalnym w instrukcji;
15 nazwa zmiennej dłuższa niż 18 liter lub błąd w nazwie (po nazwie ni wystąpiła kropka);
16 zła nazwa zbioru lub histogramu;
17 zbiory nie należą do tej samej klasy lub zbiór nie należy do danej klasy;
18 błąd w budowie zdania;
19 zła nazwa klasy lub zerowy wymiar klasy;
20 błąd numeru klucza w instrukcji CHECK lub PRISET;
21 słowo strukturalne MASTER, FUNCTION, SUBROUTINE lub BLOCK DATA występują wewnątrz segmentu;
22 instrukcja BEGIN i RECYCLE mogą występować jedynie po instrukcji ACTIVITIES;
23 zły typ zdania na końcu pętli DO;
24 pętla FOR zakończona instrukcjami o zbyt dużym wcięciu wiersza;
25 kolejne stopnie wcięć instrukcji w programie mogą się różnić o 1;
26 w tym miejscu nie może występować instrukcja wcięta;
27 dana instrukcja powinna być wcięta;
28 przekroczenie ilości nazw zmiennych (w segmencie może występować co najwyżej 255 zmiennych);
29 brak zdania FORMAT, do którego odwołują się instrukcje READ lub WRITE;
30 przekroczenie pól roboczych translatora;
31 zły typ zmiennej CSL lub użycie zmiennej niezdefiniowanej;
32 słowo GAINS musi być pierwszym słowem strukturalnym w instrukcji lub występować po słowach HEAD lub TAIL;
33 słowo TO może jedynie występować po GO lub CONVERT;
34 zerowy lub zbyt duży indeks w wyrażeniu indeksowym;
35 błąd w budowie wyrażenia;
36 nieparzysta ilość nawiasów lewo- i prawostronnych w wyrażeniu;
37 błąd w nazwie (więcej niż 6 znaków) w nazwie w instrukcjach FUNCTION, SUBROUTINE lub COMMON;
38 za duży poziom pogrążenia funkcji w innej funkcji (większy od 10);
39 słowo OR może występować tylko w ramach tekstu;
40 po słowie SPLIT mogą występować jedynie słowa INTO, HEAD, ELSE lub TAIL;
41 po słowie FIND mogą występować jedynie słowa FIRST, LAST, MAX lub MIN;
42 ponowne użycie lub definiowanie nazwy;
43 po słowie CLASS mogą występować jedynie słowa TIME, SET lub BSET;
44 zła deklaracja nazwy komórki czasowej (t. Xxx);
45 PMEND może występować w programie jedynie za instrukcją POSMORTEM;
46 instrukcja ACTIVITIES może występować jedynie w segmencie MASTER i tylko jednokrotnie;
47 instrukcja RETURN może występować jedynie w segmentach FUNCTION lub SUBROUTINE;
48 po słowie BLOCK może być tylko słowo DATA;
49 błąd w zdaniu z "#";
50 brak takiej etykiety w programie;
51 w programie nie występuje instrukcja FORMAT o takiej etykiecie;

Źródło: Translator języka CSL-CROOK dla minikomputera MERA-400 w systemie operacyjnym CROOK-4, Instrukcja Programisty (wersja-17/2), Janusz Gocałek, Jacek Klauziński, Poznań, 1985