DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ B T ┃
Length: 5586 (0x15d2) Types: TextFile Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧ └─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04 └─ ⟦d65440be7⟧ »DATA« └─⟦this⟧
with Text_Io, Token, Lex; use Token; package body Traite_Erreur is Tab_Dec_Mat : constant array (1 .. 3) of Token.Object := (L_Id, L_Experience, L_Eof); Tab_Liste_Mat : constant array (1 .. 2) of Token.Object := (L_Fin, L_Eof); Tab_Liste_Act : constant array (1 .. 2) of Token.Object := (L_Fin, L_Eof); Tab_Dec_Glob : constant array (1 .. 4) of Token.Object := (L_Experience, L_Scene, L_Spectacle, L_Eof); Tab_Dec_Exp : constant array (1 .. 3) of Token.Object := (L_Scene, L_Spectacle, L_Eof); Tab_Nom_Exp : constant array (1 .. 2) of Token.Object := (L_Est, L_Eof); Tab_Dec_Scene : constant array (1 .. 2) of Token.Object := (L_Spectacle, L_Eof); Tab_Liste_Scene : constant array (1 .. 2) of Token.Object := (L_Fin, L_Eof); Tab_Liste_Inst : constant array (1 .. 2) of Token.Object := (L_Fin, L_Eof); procedure Print_Erreur (Nom_Erreur : Liste_Erreurs) is begin case Nom_Erreur is when Err_Dec_Mat => Text_Io.Put_Line ("Erreur dans la declaration materiel"); when Err_Liste_Mat => Text_Io.Put_Line ("Erreur dans la liste materiel"); when Err_Liste_Act => Text_Io.Put_Line ("Erreur dans la liste des acteurs"); when Err_Dec_Glob => Text_Io.Put_Line ("Erreur dans les declarations globales"); when Err_Dec_Exp => Text_Io.Put_Line ("Erreur dans la declaration experience"); when Err_Nom_Exp => Text_Io.Put_Line ("Erreur dans le nom de l'experience"); when Err_Dec_Scene => Text_Io.Put_Line ("Erreur dans la declaration scene"); when Err_Liste_Scene => Text_Io.Put_Line ("Erreur dans la liste scene"); when Err_Liste_Inst => Text_Io.Put_Line ("Erreur dans la liste des instructions"); end case; end Print_Erreur; function Token_In_Table (L_Token : Token.Object; Table_Follow : Liste_Follows) return Boolean is Ok : Boolean := False; begin case Table_Follow is when Follow_Dec_Mat => for I in Tab_Dec_Mat'Range loop if Token.Object'Pos (L_Token) = Token.Object'Pos (Tab_Dec_Mat (I)) then Ok := True; end if; exit when Ok; end loop; when Follow_Liste_Mat => for I in Tab_Liste_Mat'Range loop if Token.Object'Pos (L_Token) = Token.Object'Pos (Tab_Liste_Mat (I)) then Ok := True; end if; exit when Ok; end loop; when Follow_Liste_Act => for I in Tab_Liste_Act'Range loop if Token.Object'Pos (L_Token) = Token.Object'Pos (Tab_Liste_Act (I)) then Ok := True; end if; exit when Ok; end loop; when Follow_Dec_Glob => for I in Tab_Dec_Glob'Range loop if Token.Object'Pos (L_Token) = Token.Object'Pos (Tab_Dec_Glob (I)) then Ok := True; end if; exit when Ok; end loop; when Follow_Dec_Exp => for I in Tab_Dec_Exp'Range loop if Token.Object'Pos (L_Token) = Token.Object'Pos (Tab_Dec_Exp (I)) then Ok := True; end if; exit when Ok; end loop; when Follow_Nom_Exp => for I in Tab_Nom_Exp'Range loop if Token.Object'Pos (L_Token) = Token.Object'Pos (Tab_Nom_Exp (I)) then Ok := True; end if; exit when Ok; end loop; when Follow_Dec_Scene => for I in Tab_Dec_Scene'Range loop if Token.Object'Pos (L_Token) = Token.Object'Pos (Tab_Dec_Scene (I)) then Ok := True; end if; exit when Ok; end loop; when Follow_Liste_Scene => for I in Tab_Liste_Scene'Range loop if Token.Object'Pos (L_Token) = Token.Object'Pos (Tab_Liste_Scene (I)) then Ok := True; end if; exit when Ok; end loop; when Follow_Liste_Inst => for I in Tab_Liste_Inst'Range loop if Token.Object'Pos (L_Token) = Token.Object'Pos (Tab_Liste_Inst (I)) then Ok := True; end if; exit when Ok; end loop; end case; return Ok; end Token_In_Table; procedure Parse_Erreur (Nom_Erreur : Liste_Erreurs; Table_Follow : Liste_Follows) is L_Token : Token.Object; begin Print_Erreur (Nom_Erreur); L_Token := Lex.Lex_Get_Token; while (not Token_In_Table (L_Token, Table_Follow)) loop Lex.Lex_Next; L_Token := Lex.Lex_Get_Token; end loop; end Parse_Erreur; end Traite_Erreur;