DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

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

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦8942aa70d⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Les_Clauses_Initiales, seg_049929, seg_049e3b

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 

E3 Source Code



with Joueur_Est;
with Instruction;
with Lex;
with Follow;
with Synchro;
with Error;
with Blocs_Du_Scenario;
with Traduction_Scenario;

package body Les_Clauses_Initiales is

    procedure Liste_De_Clauses_Initiales (Ok : out Boolean) is
        use Lex;
        Correct : Boolean;
    begin
        Instruction.Parse (Correct);
        if Correct then
            Liste_De_Clauses_Initiales (Correct);
        end if;

        case (Lex.Get_Token) is
            when L_Generales | L_Locales | L_Finjeu | L_Eof =>
                Correct := True;
            when others =>
                Synchro.Is_On (Error.Liste_De_Clauses_Initiales,
                               Follow.Liste_De_Clauses_Initiales);
                Liste_De_Clauses_Initiales (Correct);
        end case;
        Ok := Correct;
    end Liste_De_Clauses_Initiales;


    procedure Parse (Ok : out Boolean) is  
        use Lex;
        Correct : Boolean := True;
    begin
        if not (Lex.Get_Token = L_Initiales) then  
            Synchro.Is_On (Error.Les_Clauses_Initiales,
                           Follow.Les_Clauses_Initiales);
            Correct := True;
        else
            Blocs_Du_Scenario.Make_New_Bloc (Nom => Lex.Get_Value);

            if not (Lex.Next_Token = L_Joueur) then
                Synchro.Is_On (Error.Joueur_Est_Dans_Initiales_1,
                               Follow.Joueur_Est_Dans_Initiales_1);
                Correct := True;
            else
                Traduction_Scenario.Make_Instruction;
                Traduction_Scenario.Name_Of_Function (Nom => Lex.Get_Value);

                Lex.Next;
                Joueur_Est.Parse (Correct);
                Traduction_Scenario.End_Of_Function;
                if not Correct then
                    Synchro.Is_On (Error.Joueur_Est_Dans_Initiales_2,
                                   Follow.Joueur_Est_Dans_Initiales_2);
                    Correct := True;
                else
                    Liste_De_Clauses_Initiales (Correct);
                end if;
                Blocs_Du_Scenario.End_Of_Bloc;
            end if;
        end if;
        Ok := Correct;
    end Parse;

end Les_Clauses_Initiales;

E3 Meta Data

    nblk1=4
    nid=4
    hdr6=6
        [0x00] rec0=25 rec1=00 rec2=01 rec3=012
        [0x01] rec0=16 rec1=00 rec2=03 rec3=03a
        [0x02] rec0=0b rec1=00 rec2=02 rec3=000
        [0x03] rec0=0b rec1=00 rec2=04 rec3=000
    tail 0x21546f222865e6c32694b 0x42a00088462060003
Free Block Chain:
  0x4: 0000  00 00 01 26 80 10 43 6f 72 72 65 63 74 20 3a 3d  ┆   &  Correct :=┆