[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: classes and concat operator
- From: Paul Matthews <paulmatthews@...>
- Date: Wed, 26 Nov 2003 22:38:52 +1100 (EST)
The following class overrides the concat operator,
however using it, as one can use a string, produces
`=' expected near `..'
How to achive this?
Note I don't need the result of the concat, as
eventually, the side effect of "chaining" will
produce the results required.
-- Chain Class
function Chain_concat( a, b )
a:link(b);
return b;
end;
Chain = {};
Chain_Meta = {
__index = Chain;
__concat = Chain_concat;
};
function Chain:new()
local chain = {};
chain.ichain = nil;
setmetatable( chain, Chain_Meta );
return chain;
end;
function Chain:link( a, b )
if ( nil ~= b.ichain ) then
error( "chain already linked" );
end
b.ichain = a;
end;
-- use chain
do
achain = Chain:new();
bchain = Chain:new();
achain .. bchain;
end;
=====
-- Paul Matthews
This email is intended for the use of the individual addressee(s) named above and may contain information that is confidential, privileged or unsuitable for overly sensitive persons with low self-esteem, no sense of humour or irrational religious beliefs. If you are not the intended recipient, any dissemination, distribution or copying of this email is not authorised (either explicitly or implicity) and constitutes an irritating social faux pas.
http://personals.yahoo.com.au - Yahoo! Personals
New people, new possibilities. FREE for a limited time.