|
|
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: 7168 (0x1c00)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Calcul, seg_0378cd, seg_03902c, seg_039082, seg_0391fb, separate Semantique
└─⟦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⟧
with Stack_Generic;
with Lexical;
use Lexical;
with Erreurs;
separate (Semantique)
package body Calcul is
subtype Facteur is Integer;
type Ptr_Facteur is access Facteur;
type Operateur is ('(', '+', '-', '*', 'p', 'm', ')', Finop);
package Es_Op is new Text_Io.Enumeration_Io (Operateur);
use Es_Op;
type Elt (Isfact : Boolean) is
record
case Isfact is
when False =>
Op : Operateur;
when True =>
Fact : Ptr_Facteur;
end case;
end record;
type Ptr_Elt is access Elt;
Var_Undef : exception;
package Pilfact is new Stack_Generic (Ptr_Facteur);
Pile : Pilfact.Stack;
package Piloper is new Stack_Generic (Operateur);
Pilop : Piloper.Stack;
Par_Ferm, Err_Op : exception;
Precoper : Boolean := True;
Op_Inconnu : Character;
procedure Getval (Nb : out Integer) is
F : Ptr_Facteur;
begin
F := Pilfact.Top (Pile);
Pilfact.Pop (Pile);
Nb := F.all;
end Getval;
function Lirelem (Un_Token : Lexical.Token; Une_Valeur : Integer)
return Ptr_Elt is separate;
procedure Demarre_Calcul is
begin
Pilfact.Make_Empty (Pile);
Piloper.Make_Empty (Pilop);
Piloper.Push (Finop, Pilop);
end Demarre_Calcul;
procedure Calculateur (Un_Elem : Ptr_Elt) is separate;
procedure Postfixer (Un_Elem : Ptr_Elt) is separate;
procedure Empiler (Un_Jeton : Lexical.Token; Une_Valeur : Integer := 0) is
begin
Postfixer (Lirelem (Un_Jeton, Une_Valeur));
end Empiler;
procedure Evaluer_Expression (La_Valeur : out Integer) is
begin
La_Valeur := Pilfact.Top (Pile).all;
Pilfact.Pop (Pile);
end Evaluer_Expression;
end Calcul;
nblk1=6
nid=6
hdr6=4
[0x00] rec0=2d rec1=00 rec2=01 rec3=02c
[0x01] rec0=2a rec1=00 rec2=02 rec3=000
[0x02] rec0=26 rec1=00 rec2=06 rec3=032
[0x03] rec0=05 rec1=00 rec2=05 rec3=000
[0x04] rec0=0d rec1=00 rec2=05 rec3=000
[0x05] rec0=05 rec1=00 rec2=02 rec3=000
tail 0x217345a9c84e24a62dbe9 0x42a00088462060003
Free Block Chain:
0x6: 0000 00 05 03 fc 80 02 69 73 02 00 18 20 20 20 20 20 ┆ is ┆
0x5: 0000 00 03 00 1f 80 02 6e 3b 02 00 00 00 00 00 00 00 ┆ n; ┆
0x3: 0000 00 04 03 fc 80 14 20 20 20 20 20 20 20 20 20 20 ┆ ┆
0x4: 0000 00 00 01 66 80 01 3b 01 00 0f 20 20 20 20 20 20 ┆ f ; ┆