|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 10240 (0x2800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package Abstract_Tree, seg_0489bc
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Lexical, Bounded_String, Set_Of_Connections, Set_Of_Links;
with Models, Symbols, Comps_Dictionary;
use Lexical, Bounded_String;
package Abstract_Tree is
Bad_Type : exception;
type Node_Type is (Struct_Type, Enumeration_Type, Integer_Type,
Boolean_Type, State_Type, Entry_Type, Other_Type);
type Object is private;
-- Noeud d'operateur binaire (comparaison,mathematique et logique) ---------------------
function Make_Node (Operation : Token; Left, Right : Object) return Object;
-- Noeud d'operateur unaire ------------------------------------------------------------
function Make_Node (Operation : Token; Down : Object) return Object;
-- Noeud d'entier ----------------------------------------------------------------------
function Make_Node (Value : Integer) return Object;
-- Noeud de Booleen ou d'etat de lien/connexion ----------------------------------------
function Make_Node (Value : Token) return Object;
-- Noeud de variable ou enumere --------------------------------------------------------
function Make_Node (Name, Extension : String;
Models_Table : Models.Object;
Symbols_Table : Symbols.Object) return Object;
-- Noeud de fonction interne -----------------------------------------------------------
function Make_Node (Name : Token; Param1, Param2 : String) return Object;
-- Noeud d'entree utilisateur ----------------------------------------------------------
function Make_Node (Entry1, Entry2, Entry3 : String) return Object;
-- Destruction de l'arbre --------------------------------------------------------------
procedure Destroy (Node : in out Object);
-- Evaluation d'un arbre retournant un entier ou un enumere ----------------------------
--
-- Bad_Type (Exception) est levee si on appelle cette fonction avec un
-- noeud qui ne retourne pas un entier ou un enumere.
function Evaluate_Node (Node : Object;
Models_Table : Models.Object;
Symbols_Table : Symbols.Object;
Connect : Set_Of_Connections.Object;
Links : Set_Of_Links.Object;
Comp_Dict : Comps_Dictionary.Object) return Integer;
-- Evaluation d'un arbre retournant un booleen -----------------------------------------
--
-- Bad_Type (Exception) est levee si on appelle cette fonction avec un
-- noeud qui ne retourne pas un booleen.
function Evaluate_Node (Node : Object;
Models_Table : Models.Object;
Symbols_Table : Symbols.Object;
Connect : Set_Of_Connections.Object;
Links : Set_Of_Links.Object;
Comp_Dict : Comps_Dictionary.Object) return Boolean;
-- Evaluation d'un arbre retournant l'etat lien/connexion ou un nom de structure -------
--
-- Bad_Type (Exception) est levee si on appelle cette fonction avec un
-- noeud qui ne retourne pas un etat ou un nom de structure.
function Evaluate_Node (Node : Object;
Models_Table : Models.Object;
Symbols_Table : Symbols.Object;
Connect : Set_Of_Connections.Object;
Links : Set_Of_Links.Object;
Comp_Dict : Comps_Dictionary.Object) return String;
-- Renvoie le type d'un noeud ----------------------------------------------------------
function What_Type (Node : Object) return Node_Type;
-- Affichage d'un arbre abstrait ------------------------------------------------------
procedure Dump (Node : Object);
procedure Dump_Struct (Nb : Integer; Node : Object);
private
type Cell_Type is (Binary_Operator, Unary_Operator,
Integer_Data, Boolean_Data, State_Data,
Var_Data, Instruction, Player_Entry);
type Cell (Kind : Cell_Type := Binary_Operator) is
record
Return_Type : Node_Type;
case Kind is
when Binary_Operator =>
Binary_Kind : Token;
Left_Node, Right_Node : Object;
when Unary_Operator =>
Unary_Kind : Token;
Down_Node : Object;
when Integer_Data =>
Integer_Value : Integer;
when Boolean_Data =>
Boolean_Value : Boolean;
when State_Data =>
State_Value : Token;
when Var_Data =>
Var_Name, Var_Extension : Variable_String (32);
when Instruction =>
Instruction_Name : Token;
Param1, Param2 : Variable_String (32);
when Player_Entry =>
Nb_Param : Integer;
Entry1, Entry2, Entry3 : Variable_String (32);
end case;
end record;
type Object is access Cell;
end Abstract_Tree;
nblk1=9
nid=6
hdr6=e
[0x00] rec0=21 rec1=00 rec2=01 rec3=002
[0x01] rec0=1b rec1=00 rec2=04 rec3=06a
[0x02] rec0=14 rec1=00 rec2=02 rec3=052
[0x03] rec0=16 rec1=00 rec2=07 rec3=0b8
[0x04] rec0=06 rec1=00 rec2=09 rec3=036
[0x05] rec0=18 rec1=00 rec2=05 rec3=010
[0x06] rec0=09 rec1=00 rec2=03 rec3=000
[0x07] rec0=04 rec1=04 rec2=04 rec3=020
[0x08] rec0=20 rec1=20 rec2=20 rec3=101
tail 0x2174cdfa6865a4c1af90a 0x42a00088462060003
Free Block Chain:
0x6: 0000 00 08 03 fc 80 47 6e 20 61 72 62 72 65 20 72 65 ┆ Gn arbre re┆
0x8: 0000 00 00 00 3a 80 34 20 20 20 66 75 6e 63 74 69 6f ┆ : 4 functio┆