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: 2427 (0x97b) Types: TextFile Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧
with Block_Class; with Bounded_String; with Custom; with Errors; with Trace; package body Arguments is Valeur_Keyword : constant Scanner.Lexeme := Bounded_String.Value ("VALEUR:", Custom.String_Max_Length); procedure Build_Id_List is Id_Lexeme : Scanner.Lexeme; begin case Scanner.Get_Token is when Scanner.L_Id => Id_Lexeme := Scanner.Get_Value; Scanner.Next_Token; Build_Id_List; Block_Class.Set_Keyword (Valeur_Keyword); Block_Class.Set_Argument (Id_Lexeme); when Scanner.L_Dot => Scanner.Next_Token; when others => raise Errors.Expecting_Other_Id_Or_Dot; end case; end Build_Id_List; procedure Build_Keyw_Id_List is Id_Lexeme, Keyw_Lexeme : Scanner.Lexeme; begin case Scanner.Get_Token is when Scanner.L_Keyw => Keyw_Lexeme := Scanner.Get_Value; Scanner.Next_Token; case Scanner.Get_Token is when Scanner.L_Id => Id_Lexeme := Scanner.Get_Value; Scanner.Next_Token; Build_Keyw_Id_List; Block_Class.Set_Argument (Id_Lexeme); Block_Class.Set_Keyword (Keyw_Lexeme); when others => raise Errors.Expecting_Id_After_Keyword; end case; when Scanner.L_Dot => Scanner.Next_Token; when others => raise Errors.Expecting_Other_Keyword_Or_Dot; end case; end Build_Keyw_Id_List; procedure Parse is begin Trace.Display ("parsing Arguments"); case Scanner.Get_Token is when Scanner.L_Avec => Block_Class.New_Arg_List; Block_Class.New_Symbols_Table; Scanner.Next_Token; case Scanner.Get_Token is when Scanner.L_Id => Build_Id_List; when Scanner.L_Keyw => Build_Keyw_Id_List; when others => raise Errors.Expecting_Id_Or_Keyword; end case; when others => null; end case; end Parse; end Arguments;