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

⟦b7609314e⟧ Ada Source

    Length: 6144 (0x1800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Declaration_Des_Variables, seg_048221, seg_048467, seg_0484a7, seg_0486b5

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 Interface_Structure;
with Declaration_Communication;
with Declaration_Compteur;
with Declaration_Lieu;
with Declaration_Personnage;
with Declaration_Objet;
with Lex;
with Synchro;
with Error;
with Follow;

package body Declaration_Des_Variables is
    type First is (L_Communication, L_Compteur, L_Lieu,
                   L_Personnage, L_Objet, Not_In);


    function Is_In_First (This_Token : Lex.Token) return First is
    begin
        return First'Value (Lex.Token'Image (This_Token));
    exception
        when Constraint_Error =>
            return Not_In;
    end Is_In_First;


    procedure Parse (Ok : in out Boolean; Ok_Semantique : in out Boolean) is
        use Lex;
    begin
        case Is_In_First (Lex.Get_Token) is
            when L_Communication =>
                Interface_Structure.Create_Communication;
                Declaration_Communication.Parse (Ok);
                if not Ok then
                    Synchro.Is_On (Error.Definition_Variable,
                                   Follow.Une_Variable);
                else
                    Interface_Structure.Make_Variable (Ok_Semantique);
                end if;
                Parse (Ok, Ok_Semantique);
            when L_Compteur =>
                Interface_Structure.Create_Compteur;
                Declaration_Compteur.Parse (Ok);  
                if not Ok then
                    Synchro.Is_On (Error.Definition_Variable,
                                   Follow.Une_Variable);
                else
                    Interface_Structure.Make_Variable (Ok_Semantique);
                end if;
                Parse (Ok, Ok_Semantique);

            when L_Lieu =>
                Interface_Structure.Create_Lieu;
                Declaration_Lieu.Parse (Ok);
                if not Ok then
                    Synchro.Is_On (Error.Definition_Variable,
                                   Follow.Une_Variable);
                else
                    Interface_Structure.Make_Variable (Ok_Semantique);
                end if;
                Parse (Ok, Ok_Semantique);

            when L_Personnage =>
                Interface_Structure.Create_Personnage;
                Declaration_Personnage.Parse (Ok);
                if not Ok then
                    Synchro.Is_On (Error.Definition_Variable,
                                   Follow.Une_Variable);
                else
                    Interface_Structure.Make_Variable (Ok_Semantique);
                end if;
                Parse (Ok, Ok_Semantique);

            when L_Objet =>
                Interface_Structure.Create_Objet;
                Declaration_Objet.Parse (Ok);
                if not Ok then
                    Synchro.Is_On (Error.Definition_Variable,
                                   Follow.Une_Variable);
                else
                    Interface_Structure.Make_Variable (Ok_Semantique);
                end if;
                Parse (Ok, Ok_Semantique);

            when Not_In =>
                Ok := True;

        end case;
    end Parse;

end Declaration_Des_Variables;

E3 Meta Data

    nblk1=5
    nid=4
    hdr6=8
        [0x00] rec0=22 rec1=00 rec2=01 rec3=03c
        [0x01] rec0=17 rec1=00 rec2=02 rec3=048
        [0x02] rec0=18 rec1=00 rec2=03 rec3=058
        [0x03] rec0=0b rec1=00 rec2=05 rec3=000
        [0x04] rec0=0b rec1=00 rec2=04 rec3=000
    tail 0x215454640865874eb9a12 0x42a00088462060003
Free Block Chain:
  0x4: 0000  00 00 00 e4 80 0d 5f 53 65 6d 61 6e 74 69 71 75  ┆      _Semantiqu┆