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: 1861 (0x745) Types: TextFile Names: »B«
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04 └─ ⟦d65440be7⟧ »DATA« └─⟦this⟧
with Scanner, Object, Text_Io, Tiny_Error; package body List is procedure Parse (Keyword_List : in out Message.List; Id_List : in out Message.List; Symbol : in out Table.Symbol_Kind; Error : out Boolean) is Failed : Boolean := False; Keyword, Id : Message.Tiny_String; use Scanner; begin Text_Io.Put_Line ("I am in List.Parse"); if Scanner.Get_Token = Scanner.T_Keyword then Keyword := Scanner.Get_Value; Keyword_List := Message.Put (Keyword_List, Keyword); Scanner.Next; Scanner.Get_Value (Current_Table => Symbol, S => Id); Id_List := Message.Put (L => Id_List, Mess => Id); Scanner.Next; if Scanner.Get_Token = Scanner.T_Keyword then Parse (Keyword_List, Id_List, Symbol, Failed); elsif Scanner.Get_Token = Scanner.T_Identifier then Failed := True; Tiny_Error.Mismatch_Argument_List; end if; else Scanner.Get_Value (Symbol, Id); Id_List := Message.Put (L => Id_List, Mess => Id); Scanner.Next; if Scanner.Get_Token = Scanner.T_Identifier then Parse (Keyword_List, Id_List, Symbol, Failed); elsif Scanner.Get_Token = Scanner.T_Keyword then Failed := True; Tiny_Error.Mismatch_Argument_List; end if; end if; Error := Failed; end Parse; function Is_First (T : Scanner.Token) return Boolean is begin case T is when Scanner.T_Identifier | Scanner.T_Keyword => return (Standard.True); when others => return (Standard.False); end case; end Is_First; end List;