DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ B T

⟦d644a6242⟧ TextFile

    Length: 2664 (0xa68)
    Types: TextFile
    Names: »B«

Derivation

└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 

TextFile

separate (Parse)
procedure Parse_Les_Experiences (Ok : out Boolean) is
    Ok1 : Boolean := True;
    Success : Boolean;
    The_List : Abstract_Tree.P_Instruction_List;
begin
    Abstract_Tree.Create_List (The_List);
    Ok := True;
    Text_Io.Put_Line ("parse_lex_experiences");
    while Lex.Get_Token /= L_Fin loop
        if Lex.Get_Token = L_Effet then
            Lex.Next;
            if Lex.Get_Token = L_Id then
                declare
                    Id : constant String := Lex.Get_Value;
                begin
                    Symbol_Table.Insert (Id, Success);
                    Symbol_Table.Set_Table (Id, Success);
                    Symbol_Table.Set_Type (Id, Element.Effet, Success);
                    Symbol_Table.Change_Current_Table (Id, Success);
                    Lex.Next;
                    Parse_Parametres (Ok1);
                    if not Ok1 then
                        Parse_Error (Parametre_Follow);
                    end if;
                    if Lex.Get_Token = L_Est then
                        Lex.Next;
                        if Lex.Get_Token = L_Constitue then
                            Lex.Next;
                            Abstract_Tree.Create_List (The_List);
                            Parse_Les_Ordres (Ok1, The_List);
                            if not Ok1 then
                                Parse_Error (Les_Ordres_Follow);
                            else
                                Symbol_Table.Set_Instr_List
                                   (Id, The_List, Success);
                            end if;
                            if Lex.Get_Token = L_Fin then
                                Lex.Next;
                                if Lex.Get_Token = L_Effet then
                                    Symbol_Table.Leave_Table (Success);
                                    Lex.Next;
                                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;
        else
            Ok := False;
            exit;
        end if;
    end loop;
end Parse_Les_Experiences;