|
![](/i/fill.gif) |
"Gleb" <gk1### [at] soton ac uk> wrote in message news:3cce5ace$1@news.povray.org...
>
> "David Wallace" <dar### [at] earthlink net> wrote in message
> news:3cce4737@news.povray.org...
> > POV-RC3, Duron 800. 512 MB DDR, Win98SE
> >
> > Enter this code:
> >.....
> > #macro MakeSegs(Level, spl, fName)
> > #local i = 0;
> > #while ( i<nseg )
> > #local pst = spl(i/nseg);
> > #local pen = spl((i+1)/nseg);
> > #write (pFile, concat(" cylinder {
> >
>
<",vstr(3,pst,",",0,6),">,<",vstr(3,pen,",",0,6),">,",str(rb[Level],0,5),",
> > 1 }\n")
> ^
> > #write (pFile, concat(" sphere {
> > <",vstr(3,pen,",",0,6),">,",str(rb[Level],0,5),", -1 }\n")
> ^
> > #local i = i + 1;
> > #end
> > #end
> >......
> > POV screams: Stack overflow
>
> Parentheses in both #write statements inside the #macro are not closed.
>
>
>
>
Then why don't I get a"'')' expected, ??? found instead " error?
Actually I was looking for exactly this kind of problem--in all the wrong
places. POV-Ray's parser isn't as strict as it could be about what may or
may not be a particular code block, or more lost braces and parentheses
would be found more readily.
I actually learned something about POV-Ray's stack from this. Shortly
after making this test file, I inserted a debug statement in the outer
#while loop (not shown here) to output the i variable. It stopped at 93,
indicating a stack size of about 3680-3720.
Post a reply to this message
|
![](/i/fill.gif) |