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

⟦334c97b03⟧ Ada Source

    Length: 12288 (0x3000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Feuille, seg_047ceb

Derivation

└─⟦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 String_Table, Struct_Component, Lists;

package Feuille is

------------------------------------------------------------------------
-- <UNIT>        Feuille
------------------------------------------------------------------------
--
-- <DESCRIPTION>    This package defines operations for creating the
--                  semantic tree.
--
-- <AUTHOR>         Barthe Raphael, Beck Didier, Kempe Laurent
-- <VERSION>        1.0
-- <DATE>           21-Fev-95
-- <MODIFY>         21-Fev-95
--
-- <PKG USED>       String_Table, Struct_Component
--
------------------------------------------------------------------------

    type Tcell is (Objet, Piece_Courante, Hero, Pnj, Direction,
                   Verbe, Complement, Iter, Iter_S, Vaut, Egal,
                   Instruction, Et, Dire, Termine, Booleen, Enum, Alors,
                   Entier, Chaine, Plus, Moins, Fois, Div, Unk);

    type Cell (Kind : Tcell := Unk);
    type Pcell is access Cell;

    subtype Instr is Pcell;

    package Liste_Instr is new Lists (Instr);

    type Cell (Kind : Tcell := Unk) is
        record
            Left, Right : Pcell;
            case Kind is
                when Verbe | Complement | Objet | Piece_Courante |
                     Pnj | Hero | Direction | Enum =>
                    Idattrib : String_Table.I_String;
                when Chaine =>
                    Phrase : String_Table.I_String;
                when Entier =>
                    Nbr : Natural;
                when Iter =>
                    Aiter : Struct_Component.Liste_Attribut.Listiter;
                when Iter_S =>
                    Aiter_S : Struct_Component.Liste_Structure.Listiter;
                when Booleen =>
                    Bool : Boolean;
                when Instruction =>
                    Listeinst : Liste_Instr.List;
                when others =>
                    null;
            end case;
        end record;

    type Instr_Locale is
        record
            Piece : String_Table.I_String;
            Liste : Liste_Instr.List;
        end record;

    package Liste_Instr_Locale is new Lists (Instr_Locale);


    function Which (Acell : in Cell) return Tcell;
------------------------------------------------------------------------
-- <SUBPROGRAM>
-- <UNIT>        Is
--
-- <DESCRIPTION> return the type of the Acell.
--
-- <EXCEPTIONS>  Nothing
--
------------------------------------------------------------------------
    function Permute (List : in Liste_Instr.List) return Liste_Instr.List;
    function Permute (List : in Liste_Instr_Locale.List)
                     return Liste_Instr_Locale.List;
    procedure Image (Alist : Liste_Instr.List);
    procedure Image (Alist : Liste_Instr_Locale.List);
    procedure Image (Acell : in Cell);
------------------------------------------------------------------------
-- <SUBPROGRAM>
-- <UNIT>        Image
--
-- <DESCRIPTION> Print on the screen the entire tree (starting from the
--               node Acell).
--
-- <EXCEPTIONS>  Nothing
--
------------------------------------------------------------------------

    procedure Addleft (Pere : in out Cell; Fils : in Pcell);
------------------------------------------------------------------------
-- <SUBPROGRAM>
-- <UNIT>        Addleft
--
-- <DESCRIPTION> Add a left leaf to the node : Pere.
--
-- <EXCEPTIONS>  Nothing
--
------------------------------------------------------------------------

    procedure Addright (Pere : in out Cell; Fils : in Pcell);
------------------------------------------------------------------------
-- <SUBPROGRAM>
-- <UNIT>        Addright
--
-- <DESCRIPTION> Add a right leaf to the node : Pere.
--
-- <EXCEPTIONS>  Nothing
--
------------------------------------------------------------------------

    function Create (What : Tcell) return Pcell;
------------------------------------------------------------------------
-- <SUBPROGRAM>
-- <UNIT>        Create
--
-- <DESCRIPTION> Create a new node.
--
-- <EXCEPTIONS>  Nothing
--
------------------------------------------------------------------------

    function Create
                (What : Tcell; Astring : String_Table.I_String) return Pcell;
------------------------------------------------------------------------
-- <SUBPROGRAM>
-- <UNIT>        Create
--
-- <DESCRIPTION> Create a new node and initialize it with a string.
--               The node have to have the correct type.
--
-- <EXCEPTIONS>  Nothing
--
------------------------------------------------------------------------

    function Create (What : Tcell;
                     Theiter : Struct_Component.Liste_Attribut.Listiter)
                    return Pcell;
------------------------------------------------------------------------
-- <SUBPROGRAM>
-- <UNIT>        Create
--
-- <DESCRIPTION> Create a new node and initialize it with an
--               Liste_Attribut iter.
--               The node have to have the correct type.
--
-- <EXCEPTIONS>  Nothing
--
------------------------------------------------------------------------

    function Create (What : Tcell; Abool : Boolean) return Pcell;
------------------------------------------------------------------------
-- <SUBPROGRAM>
-- <UNIT>        Create
--
-- <DESCRIPTION> Create a new node and initialize it with an
--               boolean.
--               The node have to have the correct type.
--
-- <EXCEPTIONS>  Nothing
--
------------------------------------------------------------------------

    function Create (What : Tcell; Anat : Natural) return Pcell;
------------------------------------------------------------------------
-- <SUBPROGRAM>
-- <UNIT>        Create
--
-- <DESCRIPTION> Create a new node and initialize it with a
--               natural.
--               The node have to have the correct type.
--
-- <EXCEPTIONS>  Nothing
--
------------------------------------------------------------------------

    function Create (What : Tcell;
                     Theiter : Struct_Component.Liste_Structure.Listiter)
                    return Pcell;
------------------------------------------------------------------------
-- <SUBPROGRAM>
-- <UNIT>        Create
--
-- <DESCRIPTION> Create a new node and initialize it with an
--               Liste_Structure iter.
--               The node have to have the correct type.
--
-- <EXCEPTIONS>  Nothing
--
------------------------------------------------------------------------

    function Create (What : Tcell; Thelist : Liste_Instr.List) return Pcell;
------------------------------------------------------------------------
-- <SUBPROGRAM>
-- <UNIT>        Create
--
-- <DESCRIPTION> Create a new node and initialize it with an
--               Liste_Instr.List.
--               The node have to have the correct type.
--
-- <EXCEPTIONS>  Nothing
--
------------------------------------------------------------------------

end Feuille;

E3 Meta Data

    nblk1=b
    nid=4
    hdr6=12
        [0x00] rec0=1d rec1=00 rec2=01 rec3=000
        [0x01] rec0=1b rec1=00 rec2=0b rec3=022
        [0x02] rec0=1d rec1=00 rec2=09 rec3=02a
        [0x03] rec0=01 rec1=00 rec2=07 rec3=002
        [0x04] rec0=1f rec1=00 rec2=05 rec3=02c
        [0x05] rec0=1e rec1=00 rec2=03 rec3=028
        [0x06] rec0=1c rec1=00 rec2=02 rec3=02c
        [0x07] rec0=1c rec1=00 rec2=06 rec3=016
        [0x08] rec0=07 rec1=00 rec2=08 rec3=000
        [0x09] rec0=e1 rec1=0c rec2=97 rec3=041
        [0x0a] rec0=68 rec1=28 rec2=90 rec3=000
    tail 0x2174b87108657516111ea 0x42a00088462060003
Free Block Chain:
  0x4: 0000  00 0a 00 08 80 05 20 20 20 20 65 05 20 72 65 63  ┆          e  rec┆
  0xa: 0000  00 00 00 04 80 01 20 01 80 80 80 80 80 80 80 80  ┆                ┆