Yurttas/PL/IL/Ada-95/F/03/01/04/00/ref deref 00.adb

From ZCubes Wiki
Revision as of 05:13, 5 November 2013 by MassBot1 (talk | contribs) (Created page with "<syntaxhighlight lang="ada" line start="1" enclose="div">-- -- Copyright(C) 1998 -- All Rights Reserved. Salih Yurttas, ZCubes, BitsOfCode Software Systems, Inc.. -- -- Permis...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
 1--
 2-- Copyright(C) 1998
 3-- All Rights Reserved. Salih Yurttas, ZCubes, BitsOfCode Software Systems, Inc..
 4--
 5-- Permission to use, copy, modify, and distribute this
 6-- software and its documentation for EDUCATIONAL purposes
 7-- and without fee is hereby granted provided that this
 8-- copyright notice appears in all copies.
 9--
10 
11-- date   : January 1, 1998.
12-- author : Salih Yurttas.
13
14-- purpose : access datatype declarations and references.
15
16-- ref_deref_00.adb
17
18
19with Ada.Text_IO;
20use Ada.Text_IO;
21
22procedure Ref_Deref_00 is
23
24  package Int_IO is new Integer_IO(Integer);
25  use Int_IO;
26
27  type Ptr_Integer is access Integer;
28  type Ptr_Ptr_Integer is access Ptr_Integer;
29
30  I1, I2 : Integer;
31
32  P1, P2 : Ptr_Integer;
33
34  PP1, PP2 : Ptr_Ptr_Integer;
35
36begin
37
38  I1 := 10;
39  I2 := I1;
40  Put(I1); New_Line;
41  Put(I2); New_Line;
42
43  P1 := new Integer'(I1);
44
45  P2 := new Integer;
46  P2 := P1;
47
48  Put(P1.all); New_Line;
49  Put(P2.all); New_Line;
50
51  PP1 := new Ptr_Integer'(P1);
52
53  PP2 := new Ptr_Integer;
54  PP2 := PP1;
55
56  Put(PP1.all.all); New_Line;
57  Put(PP2.all.all); New_Line;
58
59  PP1 := new Ptr_Integer'(P2);
60
61  PP2 := new Ptr_Integer;
62  PP2.all := PP1.all;
63
64  Put(PP1.all.all); New_Line;
65  Put(PP2.all.all); New_Line;
66
67  I1 := 20;   -- This is interesting starting here !
68
69  PP1 := new Ptr_Integer'(new Integer'(I1));
70
71  PP2 := new Ptr_Integer;
72  PP2.all := PP1.all;
73
74  Put(PP1.all.all); New_Line;
75  Put(PP2.all.all); New_Line;
76
77end Ref_Deref_00;