|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 14336 (0x3800) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Error, seg_048a66
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦5a81ac88f⟧ »Space Info Vol 1« └─⟦this⟧
with Text_Io, Liste_Actions, Unbounded_String, Error_File_Maker, Queue_Generic; package body Error is type Error_Object is record Error_Code : Code; Error_Line : Natural; Error_Column : Natural; end record; package Unlimited_String is new Unbounded_String (10); package Error_Queue is new Queue_Generic (Error_Object); My_Error_Queue : Error_Queue.Queue; Number_Of_Errors : Natural := 0; Error_Type : Code; Tab_Error : constant array (Code) of Unlimited_String.Variable_String := (Unlimited_String.Value ("Un nom de variable est attendu"), Unlimited_String.Value ("Un identificateur est attendu"), Unlimited_String.Value ("Une parenthese fermante est attendue"), Unlimited_String.Value ("Une parenthese ouvrante est attendue"), Unlimited_String.Value ("Un facteur est attendu"), Unlimited_String.Value ("Un argument de type entier, de type chaine, ou de type ensemble est attendu"), Unlimited_String.Value ("Un crochet ouvrant est attendu"), Unlimited_String.Value ("Un crochet fermant est attendu"), Unlimited_String.Value ("La declaration d'une famille est attendue"), Unlimited_String.Value ("La declaration d'un champs est attendue"), Unlimited_String.Value ("La declaration d'un type simple est attendue"), Unlimited_String.Value ("La declaration d'un facteur est attendue"), Unlimited_String.Value ("La declaration d'une action est attendue"), Unlimited_String.Value ("La declaration d'une variable est attendue"), Unlimited_String.Value ("La declaration d'un mot du Vocabulaire est attendue"), Unlimited_String.Value ("La declaration d'une valeur est attendue"), Unlimited_String.Value ("La declaration de la Vie est attendue"), Unlimited_String.Value ("Le mot cle 'AVEC' est attendu"), Unlimited_String.Value ("Le mot cle 'DE' est attendu"), Unlimited_String.Value ("Le mot cle 'DEVIENT' est attendu"), Unlimited_String.Value ("Le mot cle 'COMME' est attendu"), Unlimited_String.Value ("Le mot cle 'SONT' est attendu"), Unlimited_String.Value ("Le mot cle 'FSI' est attendu"), Unlimited_String.Value ("Le mot cle 'ALORS' est attendu"), Unlimited_String.Value ("Le mot cle 'EST' est attendu"), Unlimited_String.Value ("Le mot cle 'A' est attendu"), Unlimited_String.Value ("Mauvaise initialisation"), Unlimited_String.Value ("Un point est attendu"), Unlimited_String.Value ("Type inconnu"), Unlimited_String.Value ("Mot du vocabulaire non declare"), Unlimited_String.Value ("Un complement est attendu"), Unlimited_String.Value ("Un verbe est attendu"), Unlimited_String.Value ("Un complement etait attendu precedemment"), Unlimited_String.Value ("Un verbe etait attendu precedemment"), Unlimited_String.Value ("Un verbe etait attendu au debut de l'expression"), Unlimited_String.Value ("'COMPLEMENT1' devrait etre en premiere position apres un verbe"), Unlimited_String.Value ("'COMPLEMENT2' devrait etre en seconde position apres un verbe"), Unlimited_String.Value ("Incompatibilite de type dans l'expression precedente"), Unlimited_String.Value ("Incompatibilite de type entre l'argument precedent(a gauche de l'operateur) et l'operateur :penser peut etre aux parentheses"), Unlimited_String.Value ("Incompatibilite de type entre l'argument precedent(a droite de l'operateur) et ce meme operateur"), Unlimited_String.Value ("Incompatibilite de type dans l'expression precedente"), Unlimited_String.Value ("Incompatibilite de type dans l'expression precedente"), Unlimited_String.Value ("L'expression precedente est incomplete"), Unlimited_String.Value ("Type de l'argument precedent n'est pas compatible avec l'operation DEVIENT"), Unlimited_String.Value ("Type de la variable precedente n'est pas compatible avec le type de l'argument affecte"), Unlimited_String.Value ("Type de l'argument precedent n'est pas compatible avec le type de la variable a affectee"), Unlimited_String.Value ("Type de l'argument precedent est n'est pas autorise avec l'operation 'ECRIRE'"), Unlimited_String.Value ("Ce mot est deja un verbe"), Unlimited_String.Value ("Ce mot est deja un complement"), Unlimited_String.Value ("Une expression booleenne etait attendue precedemment"), Unlimited_String.Value ("Un entier etait attendu precedemment"), Unlimited_String.Value ("Une chaine de caracteres etait attendue precedemment"), Unlimited_String.Value ("Un mot du vocabulaire etait attendu precedemment"), Unlimited_String.Value ("Un ensemble etait attendu precedemment"), Unlimited_String.Value ("Un mot du vocabulaire ou une chaine de caracteres etait attendu"), Unlimited_String.Value ("Ce champs existe deja"), Unlimited_String.Value ("Declaration recursive"), Unlimited_String.Value ("Type inconnu pour l'heritage"), Unlimited_String.Value ("Ce type est deja declare "), Unlimited_String.Value ("Cette variable est deja declaree"), Unlimited_String.Value ("Ce type n'existe pas"), Unlimited_String.Value ("Ce champ est inconnu"), Unlimited_String.Value ("Nom de variable precedent inconnu"), Unlimited_String.Value ("Trop de parametres pour cette initialisation"), Unlimited_String.Value ("Un nom de variable est attendu a la place de ce champs"), Unlimited_String.Value ("Un champs est attendu a la place de ce nom de variable"), Unlimited_String.Value ("Fin de fichier non attendue (verifier que chaque action est bien terminee (FSI. notamment)")); procedure Set_Type_Error (What_Type : Error.Code) is begin Error_Type := What_Type; if (Number_Of_Errors = 0) then Error_Queue.Initialize (My_Error_Queue); end if; Number_Of_Errors := Number_Of_Errors + 1; end Set_Type_Error; function Syntaxe_End_Correctly return Boolean is begin return (Number_Of_Errors = 0); end Syntaxe_End_Correctly; procedure Treat is My_Error : Error_Object; begin Text_Io.Put_Line ("erreur ligne " & Natural'Image (Lexical_Analyzer.Get_Line_In_File) & " colonne " & Natural'Image (Lexical_Analyzer. Get_Position_In_Line) & " " & Code'Image (Error_Type)); My_Error.Error_Code := Error_Type; My_Error.Error_Line := Lexical_Analyzer.Get_Line_In_File; My_Error.Error_Column := Lexical_Analyzer.Get_Position_In_Line; Error_Queue.Add (My_Error_Queue, My_Error); end Treat; procedure Resynchro is use Lexical_Analyzer; begin while (Lexical_Analyzer.Get_Token /= Terminator) loop Lexical_Analyzer.Next; end loop; Lexical_Analyzer.Next; while not (Is_Follow (Lexical_Analyzer.Get_Token)) loop Lexical_Analyzer.Next; end loop; end Resynchro; procedure Make_Error_File (Source_Name : in String) is It : Error_Queue.Iterator; My_Error : Error_Object; Error_File : Error_File_Maker.Object; begin Error_File_Maker.Open (Error_File, Source_Name, Source_Name & "_error"); Error_Queue.Init (It, My_Error_Queue); while not (Error_Queue.Done (It)) loop My_Error := Error_Queue.Value (It); Error_File_Maker.Copy_To_Line (Error_File, My_Error.Error_Line); Error_File_Maker.Highlight (Error_File, My_Error.Error_Column); Error_File_Maker.Write (Error_File, Unlimited_String.Image (Tab_Error (My_Error.Error_Code))); Error_Queue.Next (It); end loop; Error_File_Maker.Copy_To_End (Error_File); Error_File_Maker.Close (Error_File); end Make_Error_File; end Error;
nblk1=d nid=3 hdr6=16 [0x00] rec0=1d rec1=00 rec2=01 rec3=030 [0x01] rec0=0e rec1=00 rec2=09 rec3=006 [0x02] rec0=0f rec1=00 rec2=0d rec3=046 [0x03] rec0=11 rec1=00 rec2=0b rec3=020 [0x04] rec0=14 rec1=00 rec2=05 rec3=07e [0x05] rec0=13 rec1=00 rec2=02 rec3=010 [0x06] rec0=0d rec1=00 rec2=04 rec3=014 [0x07] rec0=1d rec1=00 rec2=0a rec3=022 [0x08] rec0=03 rec1=00 rec2=07 rec3=028 [0x09] rec0=17 rec1=00 rec2=08 rec3=064 [0x0a] rec0=06 rec1=00 rec2=06 rec3=000 [0x0b] rec0=98 rec1=00 rec2=00 rec3=000 [0x0c] rec0=24 rec1=00 rec2=10 rec3=217 tail 0x21545f802865a5b22b7bb 0x42a00088462060003 Free Block Chain: 0x3: 0000 00 0c 00 37 80 34 65 72 2c 20 64 65 20 74 79 70 ┆ 7 4er, de typ┆ 0xc: 0000 00 00 00 6d 80 09 65 6e 64 75 22 29 2c 20 20 09 ┆ m endu"), ┆