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

⟦d30599f52⟧ Ada Source

    Length: 6144 (0x1800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Antecedent, seg_0481ee, seg_048c3d, seg_048cad, seg_048dde

Derivation

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

E3 Source Code



with Suite;
with Lex;
with Traduction_Scenario;
package body Antecedent is

    procedure Antecedent_Bis (Ok : out Boolean) is
        use Lex;
        Correct : Boolean;
    begin
        case Lex.Get_Token is

            when L_Etat | L_Possession | L_Contenu | L_Position =>
                Traduction_Scenario.Add_Condition_Parameter
                   (P => Lex.Get_Value, Is_Number => False);
                Lex.Next;  
                Suite.Champ (Correct);

            when L_Id =>
                Traduction_Scenario.Add_Condition_Parameter
                   (P => Lex.Get_Value, Is_Number => False);
                Lex.Next;
                Suite.Cas_Vcc (Correct);

            when L_Existe | L_Communication | L_Objet | L_Lieu | L_Direction =>
                Traduction_Scenario.Add_Condition_Parameter
                   (P => Lex.Get_Value, Is_Number => False);
                Correct := True;
                Lex.Next;
            when L_Great | L_Equal | L_Less =>
                Traduction_Scenario.Add_Condition_Parameter
                   (P => Lex.Get_Value, Is_Number => False);

                if (Lex.Next_Token = L_Number) then
                    Traduction_Scenario.Add_Condition_Parameter
                       (P => Lex.Get_Value, Is_Number => True);
                    Correct := True;
                    Lex.Next;
                else
                    Correct := False;
                end if;
            when others =>
                Correct := True;
        end case;
        Ok := Correct;
    end Antecedent_Bis;


    procedure Parse (Ok : out Boolean) is
        use Lex;
        Correct : Boolean;
    begin
        case Lex.Get_Token is

            when L_Id =>
                Traduction_Scenario.Add_Condition_Parameter
                   (P => Lex.Get_Value, Is_Number => False);
                Lex.Next;
                Antecedent_Bis (Correct);
                Traduction_Scenario.End_Condition_Parameter;
            when L_Communication =>
                Traduction_Scenario.Add_Condition_Parameter
                   (P => Lex.Get_Value, Is_Number => False);
                Lex.Next;
                Suite.Communication (Correct);
                Traduction_Scenario.End_Condition_Parameter;
            when L_Joueur | L_Personnage =>  
                Traduction_Scenario.Add_Condition_Parameter
                   (P => Lex.Get_Value, Is_Number => False);
                case Lex.Next_Token is
                    when L_Etat | L_Possession | L_Position =>
                        Traduction_Scenario.Add_Condition_Parameter
                           (P => Lex.Get_Value, Is_Number => False);
                        Lex.Next;
                        Suite.Champ (Correct);  
                    when others =>
                        Correct := False;
                end case;
                Traduction_Scenario.End_Condition_Parameter;
            when L_Lieu =>
                Traduction_Scenario.Add_Condition_Parameter
                   (P => Lex.Get_Value, Is_Number => False);
                Lex.Next;
                Suite.Lieu (Correct);
                Traduction_Scenario.End_Condition_Parameter;
            when L_Positioncourante =>
                Traduction_Scenario.Add_Condition_Parameter
                   (P => Lex.Get_Value, Is_Number => False);
                Lex.Next;
                Suite.Position_Courante (Correct);
                Traduction_Scenario.End_Condition_Parameter;
            when L_Objet =>
                Traduction_Scenario.Add_Condition_Parameter
                   (P => Lex.Get_Value, Is_Number => False);
                case Lex.Next_Token is
                    when L_Etat | L_Contenu | L_Position =>
                        Traduction_Scenario.Add_Condition_Parameter
                           (P => Lex.Get_Value, Is_Number => False);
                        Lex.Next;
                        Suite.Champ (Correct);
                    when others =>
                        Correct := False;
                end case;
                Traduction_Scenario.End_Condition_Parameter;
            when others =>
                Correct := False;  
        end case;

        Ok := Correct;
    end Parse;

end Antecedent;

E3 Meta Data

    nblk1=5
    nid=0
    hdr6=a
        [0x00] rec0=1e rec1=00 rec2=01 rec3=020
        [0x01] rec0=13 rec1=00 rec2=02 rec3=018
        [0x02] rec0=17 rec1=00 rec2=03 rec3=02a
        [0x03] rec0=15 rec1=00 rec2=05 rec3=01a
        [0x04] rec0=14 rec1=00 rec2=04 rec3=000
    tail 0x2174c33ba86586ffb0585 0x42a00088462060003