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

⟦238194189⟧ TextFile

    Length: 2889 (0xb49)
    Types: TextFile
    Names: »B«

Derivation

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

TextFile

separate (Syntaxe_1)
function Parse_Liste_Scene return Boolean is
    Ok : Boolean := True;

    function Semantique_Temps return Boolean is
    begin
        if Token.Object'Pos (Lex.Lex_Get_Token) =
           Token.Object'Pos (Token.L_Time) then
            if Tds.Mknode_Au_Temps (Lex.Lex_Get_Value, Lex.Lex_Get_Token) then
                Lex.Lex_Next;
                return True;
            else
                return False;    -- Erreur dans la valeur de temps
            end if;
        else
            return False;       -- Erreur : parametre temps oublie
        end if;
    end Semantique_Temps;

    function Parse_Instruction_Temporelle return Boolean is
    begin
        case Lex.Lex_Get_Token is
            when Token.L_Au =>
                Lex.Lex_Next;
                if Token.Object'Pos (Lex.Lex_Get_Token) =
                   Token.Object'Pos (Token.L_Temps) then
                    Lex.Lex_Next;
                    return Semantique_Temps;
                else
                    return False;
                end if;

            when Token.L_Puis =>
                Lex.Lex_Next;
                if Token.Object'Pos (Lex.Lex_Get_Token) =
                   Token.Object'Pos (Token.L_Attendre) then
                    Lex.Lex_Next;
                    return Semantique_Temps;
                else
                    return True;
                end if;

            when Token.L_Attendre =>
                Lex.Lex_Next;
                return Semantique_Temps;

            when others =>
                return False;

        end case;
    end Parse_Instruction_Temporelle;

--DEBUT DU CORPS PRINCIPAL

begin
    while (Token.Object'Pos (Lex.Lex_Get_Token) /=
           Token.Object'Pos (Token.L_Fin)) and Ok = True loop
        case Lex.Lex_Get_Token is

            when Token.L_Id =>
                if Tds.Mknode_Scene (Lex.Lex_Get_Value) then
                    Lex.Lex_Next;
                else
                    Ok := False;        -- Erreur d'identificateur de scene
                end if;
            when others =>
                if Parse_Instruction_Temporelle then
                    if Token.Object'Pos (Lex.Lex_Get_Token) =
                       Token.Object'Pos (Token.L_Id) then
                        if Tds.Mknode_Scene (Lex.Lex_Get_Value) then
                            Lex.Lex_Next;
                        else
                            Ok := False;  -- Erreur d'identificateur de scene
                        end if;
                    else
                        Text_Io.Put_Line ("Oubli d'identificateur de scene");
                        Ok := False;
                    end if;
                else
                    Text_Io.Put_Line ("erreur dans instruction temporelle ");
                    Ok := False;
                end if;
        end case;
    end loop;
    return Ok;
end Parse_Liste_Scene;