Hi,
On Thursday 01 April 2004 10:50, Leopold Toetsch wrote:
> Jens Rieks <[EMAIL PROTECTED]> wrote:
> > has the attached code any errors?
>
> It's too short to have any errors ;)
>
> > jens
> >
> > --Boundary-00=_Cx2aABtKF1Y0Bud--
>
> <<eof>>
Oh, the attachment got stripped :-/
> leo
jens
.sub _main
.local pmc stream
.local pmc coro
#load_bytecode "coro.imc"
newclass P0, "Stream::Coroutine"
find_type I0, "Stream::Coroutine"
new stream, I0
newsub coro, .Coroutine, _coro
stream."source"( coro )
# dump the stream
stream."print"()
end
.end
.sub _coro
.param pmc source
.local int i
.local string str
i = 0
LOOP:
if i >= 10 goto END
str = i
concat str, "\n"
print "coro:"
print i
print "\n"
.pcc_begin_yield
.return str
.pcc_end_yield
inc i
branch LOOP
END:
print "coro end..\n"
source."close"()
.pcc_begin_return
.pcc_end_return
.end
## coro.imc ##
.namespace ["Stream::Coroutine"]
.sub print method
.local string str
.local int i
LOOP:
i = self."connected"()
unless i goto END
str = self."read"()
i = self."connected"()
unless i goto END
print "read:"
print str
branch LOOP
END:
print "[stream end]\n"
.pcc_begin_return
.pcc_end_return
.end
.sub connected method
.local pmc temp
prophash temp, self
exists I0, temp["source_coro"]
.pcc_begin_return
.return I0
.pcc_end_return
.end
.sub source method
.param pmc coro
setprop self, "source_coro", coro
.pcc_begin_return
.pcc_end_return
.end
.sub close method
delprop self, "source_coro"
.pcc_begin_return
.pcc_end_return
.end
.sub read method
.local pmc coro
.local string str
getprop coro, "source_coro", self
str = coro( self )
.pcc_begin_return
.return str
.pcc_end_return
.end