Re: Pointer compatibility question

From: [at]} <Gérard>
Date: Fri, 20 Jun 2003 00:51:21 +0200

----boundary-LibPST-iamunique-1944024642_-_-
Content-type: text/plain

Hello Wojtek,

Extract from CP language reference:

Parameter compatible
An actual parameter a of type Ta is parameter compatible with a formal
parameter f of type Tf if
1. Tf and Ta are equal types, or
2. f is a value parameter and Ta is assignment compatible with Tf, or
3. f is an IN or VAR parameter and Tf and Ta are record types and Ta is an
extension of Tf.

The only rule that matches your case is the first one, because your formal
parameter is not a value parameter nor a record. What I understand here is
that you cannot consider you make an assignment, since, with a VAR
parameter, you can pass values in both directions.

My solution is this one (if somebody has a better one, tell me please):

MODULE WorkTest;
TYPE
Node = POINTER TO EXTENSIBLE RECORD
next: Node;
END;

HistNode = POINTER TO RECORD (Node)
hist: INTEGER
END;

VAR
anchor: HistNode;
last: HistNode;

PROCEDURE InsertLast (VAR first:Node; new:Node);
BEGIN
END InsertLast;

PROCEDURE AddNew;
VAR
n: Node;
BEGIN
NEW(anchor);
NEW(last);
n := anchor; (* Unless you make anchor a simple Node *)
InsertLast (n, last);
anchor := n(HistNode);
END AddNew;

END WorkTest.

Regards.

Gérard


--------------------------------------------

To unsubscribe from this mailing list, send a message containing the word "unsubscribe" to:
   blackbox-request{([at]})nowhere.xy

To get a list of valid e-mail commands and instructions on their usage, send a message containing the word "help" to the above address.

Send any problem reports or questions related to this email list to the list owner at
   owner-blackbox{([at]})nowhere.xy

Current posting policy:

a) To post you should use the same address by which you are subscribed to the mailing list. That way, the list server will recognize you as subscriber and forward your posting immediately, without creating any overhead.

b) If, for some reason, you cannot post from the address, by which you are subscribed, your message will be moderated to avoid spam. Please understand that moderation will often cause some delay, in particular over weekends or holydays.

----boundary-LibPST-iamunique-1944024642_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzc1xmY2hhcnNldDAgQXJpYWw7fQ0Ke1xmMVxmbW9kZXJuIENvdXJpZXIgTmV3O30NCntcZjJc
Zm5pbFxmY2hhcnNldDIgU3ltYm9sO30NCntcZjNcZm1vZGVyblxmY2hhcnNldDAgQ291cmllciBO
ZXc7fX0NCntcY29sb3J0YmxccmVkMFxncmVlbjBcYmx1ZTA7XHJlZDBcZ3JlZW4wXGJsdWUyNTU7
fQ0KXHVjMVxwYXJkXHBsYWluXGRlZnRhYjM2MCBcZjBcZnMyMCBIZWxsbyBXb2p0ZWssXHBhcg0K
XHBhcg0KRXh0cmFjdCBmcm9tIENQIGxhbmd1YWdlIHJlZmVyZW5jZTpccGFyDQpccGFyDQpQYXJh
bWV0ZXIgY29tcGF0aWJsZVxwYXINCkFuIGFjdHVhbCBwYXJhbWV0ZXIgYSBvZiB0eXBlIFRhIGlz
IHBhcmFtZXRlciBjb21wYXRpYmxlIHdpdGggYSBmb3JtYWxccGFyDQpwYXJhbWV0ZXIgZiBvZiB0
eXBlIFRmIGlmXHBhcg0KMS4gIFRmIGFuZCBUYSBhcmUgZXF1YWwgdHlwZXMsIG9yXHBhcg0KMi4g
IGYgaXMgYSB2YWx1ZSBwYXJhbWV0ZXIgYW5kIFRhIGlzIGFzc2lnbm1lbnQgY29tcGF0aWJsZSB3
aXRoIFRmLCBvclxwYXINCjMuICBmIGlzIGFuIElOIG9yIFZBUiBwYXJhbWV0ZXIgYW5kIFRmIGFu
ZCBUYSBhcmUgcmVjb3JkIHR5cGVzIGFuZCBUYSBpcyBhblxwYXINCmV4dGVuc2lvbiBvZiBUZi5c
cGFyDQpccGFyDQpUaGUgb25seSBydWxlIHRoYXQgbWF0Y2hlcyB5b3VyIGNhc2UgaXMgdGhlIGZp
cnN0IG9uZSwgYmVjYXVzZSB5b3VyIGZvcm1hbFxwYXINCnBhcmFtZXRlciBpcyBub3QgYSB2YWx1
ZSBwYXJhbWV0ZXIgbm9yIGEgcmVjb3JkLiBXaGF0IEkgdW5kZXJzdGFuZCBoZXJlIGlzXHBhcg0K
dGhhdCB5b3UgY2Fubm90IGNvbnNpZGVyIHlvdSBtYWtlIGFuIGFzc2lnbm1lbnQsIHNpbmNlLCB3
aXRoIGEgVkFSXHBhcg0KcGFyYW1ldGVyLCB5b3UgY2FuIHBhc3MgdmFsdWVzIGluIGJvdGggZGly
ZWN0aW9ucy5ccGFyDQpccGFyDQpNeSBzb2x1dGlvbiBpcyB0aGlzIG9uZSAoaWYgc29tZWJvZHkg
aGFzIGEgYmV0dGVyIG9uZSwgdGVsbCBtZSBwbGVhc2UpOlxwYXINClxwYXINCk1PRFVMRSBXb3Jr
VGVzdDtccGFyDQpUWVBFXHBhcg0KTm9kZSA9IFBPSU5URVIgVE8gRVhURU5TSUJMRSBSRUNPUkRc
cGFyDQpuZXh0OiBOb2RlO1xwYXINCkVORDtccGFyDQpccGFyDQpIaXN0Tm9kZSA9IFBPSU5URVIg
VE8gUkVDT1JEIChOb2RlKVxwYXINCmhpc3Q6IElOVEVHRVJccGFyDQpFTkQ7XHBhcg0KXHBhcg0K
VkFSXHBhcg0KYW5jaG9yOiBIaXN0Tm9kZTtccGFyDQpsYXN0OiBIaXN0Tm9kZTtccGFyDQpccGFy
DQpQUk9DRURVUkUgSW5zZXJ0TGFzdCAoVkFSIGZpcnN0Ok5vZGU7IG5ldzpOb2RlKTtccGFyDQpC
RUdJTlxwYXINCkVORCBJbnNlcnRMYXN0O1xwYXINClxwYXINClBST0NFRFVSRSBBZGROZXc7XHBh
cg0KVkFSXHBhcg0KbjogTm9kZTtccGFyDQpCRUdJTlxwYXINCk5FVyhhbmNob3IpO1xwYXINCk5F
VyhsYXN0KTtccGFyDQpuIDo9IGFuY2hvcjsgKCogVW5sZXNzIHlvdSBtYWtlIGFuY2hvciBhIHNp
bXBsZSBOb2RlICopXHBhcg0KSW5zZXJ0TGFzdCAobiwgbGFzdCk7XHBhcg0KYW5jaG9yIDo9IG4o
SGlzdE5vZGUpO1xwYXINCkVORCBBZGROZXc7XHBhcg0KXHBhcg0KRU5EIFdvcmtUZXN0LlxwYXIN
ClxwYXINClJlZ2FyZHMuXHBhcg0KXHBhcg0KR1wnZTlyYXJkXHBhcg0KXHBhcg0KXHBhcg0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1ccGFyDQpccGFyDQpUbyB1
bnN1YnNjcmliZSBmcm9tIHRoaXMgbWFpbGluZyBsaXN0LCBzZW5kIGEgbWVzc2FnZSBjb250YWlu
aW5nIHRoZSB3b3JkICJ1bnN1YnNjcmliZSIgdG86XHBhcg0KICAgYmxhY2tib3gtcmVxdWVzdEBv
YmVyb24uY2hccGFyDQpccGFyDQpUbyBnZXQgYSBsaXN0IG9mIHZhbGlkIGUtbWFpbCBjb21tYW5k
cyBhbmQgaW5zdHJ1Y3Rpb25zIG9uIHRoZWlyIHVzYWdlLCBzZW5kIGEgbWVzc2FnZSBjb250YWlu
aW5nIHRoZSB3b3JkICJoZWxwIiB0byB0aGUgYWJvdmUgYWRkcmVzcy5ccGFyDQpccGFyDQpTZW5k
IGFueSBwcm9ibGVtIHJlcG9ydHMgb3IgcXVlc3Rpb25zIHJlbGF0ZWQgdG8gdGhpcyBlbWFpbCBs
aXN0IHRvIHRoZSBsaXN0IG93bmVyIGF0XHBhcg0KICAgb3duZXItYmxhY2tib3hAb2Jlcm9uLmNo
XHBhcg0KXHBhcg0KQ3VycmVudCBwb3N0aW5nIHBvbGljeTpccGFyDQpccGFyDQphKSBUbyBwb3N0
IHlvdSBzaG91bGQgdXNlIHRoZSBzYW1lIGFkZHJlc3MgYnkgd2hpY2ggeW91IGFyZSBzdWJzY3Jp
YmVkIHRvIHRoZSBtYWlsaW5nIGxpc3QuIFRoYXQgd2F5LCB0aGUgbGlzdCBzZXJ2ZXIgd2lsbCBy
ZWNvZ25pemUgeW91IGFzIHN1YnNjcmliZXIgYW5kIGZvcndhcmQgeW91ciBwb3N0aW5nIGltbWVk
aWF0ZWx5LCB3aXRob3V0IGNyZWF0aW5nIGFueSBvdmVyaGVhZC5ccGFyDQpccGFyDQpiKSBJZiwg
Zm9yIHNvbWUgcmVhc29uLCB5b3UgY2Fubm90IHBvc3QgZnJvbSB0aGUgYWRkcmVzcywgYnkgd2hp
Y2ggeW91IGFyZSBzdWJzY3JpYmVkLCB5b3VyIG1lc3NhZ2Ugd2lsbCBiZSBtb2RlcmF0ZWQgdG8g
YXZvaWQgc3BhbS4gUGxlYXNlIHVuZGVyc3RhbmQgdGhhdCBtb2RlcmF0aW9uIHdpbGwgb2Z0ZW4g
Y2F1c2Ugc29tZSBkZWxheSwgaW4gcGFydGljdWxhciBvdmVyIHdlZWtlbmRzIG9yIGhvbHlkYXlz
LlxwYXINCn0

----boundary-LibPST-iamunique-1944024642_-_---
Received on Fri Jun 20 2003 - 00:51:21 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:29:11 UTC