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: 3535 (0xdcf) Types: TextFile Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧
separate (Parse) procedure Parse_Stations (Ok : out Boolean) is Success : Boolean; The_Class : Element.Class; begin Ok := True; Text_Io.Put_Line ("parse_stations"); while Lex.Get_Token /= L_Fin loop if Lex.Get_Token = L_Id then declare Id : constant String := Lex.Get_Value; begin Symbol_Table.Insert (Id, Success); if not (Success) then Error.Found; end if; Lex.Next; if Lex.Get_Token = L_2points then Lex.Next; if Lex.Get_Token = L_Station then Symbol_Table.Set_Type (Id, Element.Station, Success); Symbol_Table.Set_Num_Station (Id, Num_Station.Get_New, Success); Lex.Next; if Lex.Get_Token = L_Ouvrante then Lex.Next; if Lex.Get_Token = L_Id then declare Id2 : constant String := Lex.Get_Value; begin if Symbol_Table.Is_Visible (Id2) then The_Class := Element.Convert_To_Class (Id2); Symbol_Table.Set_Class (Id, The_Class, Success); else Error.Found; end if; Lex.Next; if Lex.Get_Token = L_Virgule then Lex.Next; if Lex.Get_Token = L_Adresse then Symbol_Table.Set_Adress (Id, Element.Adress (Lex.Get_Value), Success); Lex.Next; if Lex.Get_Token = L_Fermante then Lex.Next; else Ok := False; exit; end if; else Ok := False; exit; end if; else Ok := False; exit; end if; end; else Ok := False; exit; end if; else Ok := False; exit; end if; else Ok := False; exit; end if; else Ok := False; exit; end if; end; else Ok := False; exit; end if; end loop; end Parse_Stations;