POV-Ray : Newsgroups : povray.general : Different error messages for same POV-file Server Time
10 Aug 2024 07:21:32 EDT (-0400)
  Different error messages for same POV-file (Message 11 to 20 of 24)  
<<< Previous 10 Messages Goto Latest 10 Messages Next 4 Messages >>>
From: John VanSickle
Subject: Re: Different error messages for same POV-file
Date: 15 Mar 2000 21:18:55
Message: <38D04719.6BCA95E9@erols.com>
Tor Olav Kristensen wrote:
> 
> Hello John
> 
> I too have got error messages pointing to the
> wrong point in my code when my error(s) were
> hidden somewhere earlier.
> 
> In these cases I just had to start commenting
> out code, changing variable names and moving
> things around until the error messages points
> at my real error.
> 
> I suspect that this may also be the case here,
> and I have therefore tried to play around with
> my code before posting to this newsgroup... But
> I haven't had any luck smoking out my(?) errors
> yet.
> 
> But I have found out that if I replace the last
> line of these four:
> 
> #declare QQi = array[3]
> #declare QQi = Minv(MMi)
> 
> #declare RRi = array[3]
> #declare RRi = Mmult(MMi, Minv(MMi))
> 
> with
> 
> #declare RRi = Mmult(MMi, QQi)
> 
> then the error messages disappear.

There appears to be a bug in macro argument parsing.  Sometimes when
I #declare a value using a macro, the semicolon at the end of the
declare statement is flagged as an error, and when it's absent a
warning message is displayed.

Regards,
John
-- 
ICQ: 46085459


Post a reply to this message

From: Tor Olav Kristensen
Subject: Re: Different error messages for same POV-file
Date: 15 Mar 2000 21:18:56
Message: <38D04348.E90DFF94@hotmail.com>
Margus Ramst wrote:
> 
> Tor Olav Kristensen wrote:
> >
> > I have been a little bit worried about my use of semicolons.
> >
> > Earlier I have seen that too many missing semicolons can
> > cause crashes of POV-Ray (on my Windows 98 machine at home,
> > and if I remember right, also on my Windows NT4 machine at
> > work).
> 
> This is new to me. You mean the machine crached? Or just POV quit parsing?
> Usually, missing semi-colons should only produce warnings (at least in the
> current version). Only in some macros have I seen actual errors caused by them.
> 

I mean that as far as I remember, POV-Ray stopped executing and Windows 
gave me an error message like: 

This application has performed an illegal operation...

(When I restarted POV-Ray, reloaded the offending POV-file and tried 
to run it again, I got the same crash. And when I thereafter added all
the 
necessary semi-colons POV-Ray executed correctly again.)

Earlier I had not got used to typing semi-colons at the end of float 
and vector declarations, so I saw these error messages once or twice a 
month or so, but now I usually forget very few of the semi-colons, so I 
seldom see these crashes.

If it happens again I will provide you with the offending POV-file.


Btw. Do you have any idea of how POV-Ray manage to give me several 
different error messages after successive runs (without me altering 
my code or any settings in POV-Ray) ?

For me this seems like POV-Ray is in error ...

(Or could my error trigger several error messages, where only a 
random selected one is printed each time?)

The funny thing is that none of the keywords ('clock_delta', 'tan', 
'on') that POV-Ray claims it found in a wrong place, appears in my 
POV-file. 

error: undeclared identifier expected but float function 'clock_delta' 
found instead.

> > ... So now I am totally confused about semi-colons!
> >
> 
> Semi-colons should only go after declarations of floats and vectors (colours can
> also be thought of as vectors).
> If you are declaring an array, it should not have a semi-colon:
> 
> #declare MyArray=array[10]
> 
> If the docs said otherwse, this is a typo. However, if you are declaring an
> element of an array, and that element is a float or a vector, it should have a
> semi-colon:
> 

Thanks for clarifying!

> #declare MyArray[0]=11.5;
> 
> See docs section "Declaring identifiers" for further reference.
> 
> Margus


Regards

Tor Olav

-- 
mailto:tor### [at] hotmailcom
http://www.crosswinds.net/~tok/tokrays.html


Post a reply to this message

From: Chris Huff
Subject: Re: Different error messages for same POV-file
Date: 16 Mar 2000 17:18:02
Message: <chrishuff_99-E1521E.17195916032000@news.povray.org>
In article <38D04348.E90DFF94@hotmail.com>, Tor Olav Kristensen 
<tor### [at] hotmailcom> wrote:

> Earlier I had not got used to typing semi-colons at the end of float 
> and vector declarations, so I saw these error messages once or twice a 
> month or so, but now I usually forget very few of the semi-colons, so I 
> seldom see these crashes.

I really wish POV-Ray would accept, if not require, semicolons at the 
end of declarations. It should be a simple modification to make, at 
least for someone who understands the declaration code(I don't).


> Btw. Do you have any idea of how POV-Ray manage to give me several 
> different error messages after successive runs (without me altering 
> my code or any settings in POV-Ray) ?
> 
> For me this seems like POV-Ray is in error ...
> 
> (Or could my error trigger several error messages, where only a 
> random selected one is printed each time?)
> 
> The funny thing is that none of the keywords ('clock_delta', 'tan', 
> 'on') that POV-Ray claims it found in a wrong place, appears in my 
> POV-file. 
> 
> error: undeclared identifier expected but float function 'clock_delta' 
> found instead.

It sounds like POV is using(internally, not in your scene) a variable 
that doesn't get initialized...this would qualify as a bug even if that 
isn't the cause.

-- 
Chris Huff
e-mail: chr### [at] yahoocom
Web page: http://chrishuff.dhs.org/


Post a reply to this message

From: Ken
Subject: Re: Different error messages for same POV-file
Date: 16 Mar 2000 17:23:40
Message: <38D15EDC.6F76A0B0@pacbell.net>
Chris Huff wrote:

> I really wish POV-Ray would accept, if not require, semicolons at the
> end of declarations. It should be a simple modification to make, at
> least for someone who understands the declaration code(I don't).

Why ?

-- 
Ken Tyler -  1300+ Povray, Graphics, 3D Rendering, and Raytracing Links:
http://home.pacbell.net/tylereng/index.html http://www.povray.org/links/


Post a reply to this message

From: Chris Huff
Subject: Re: Different error messages for same POV-file
Date: 16 Mar 2000 17:44:44
Message: <chrishuff_99-D4B263.17464216032000@news.povray.org>
In article <38D15EDC.6F76A0B0@pacbell.net>, lin### [at] povrayorg 
wrote:

> Chris Huff wrote:
> 
> > I really wish POV-Ray would accept, if not require, semicolons at the
> > end of declarations. It should be a simple modification to make, at
> > least for someone who understands the declaration code(I don't).
> 
> Why ?

So we don't have to remember which times a semicolon is required?
Currently, it is not consistant. You have to memorize the special 
cases:float, vector, color... It would be easier to just allow a 
semicolon at the end of every #declare and #local. If they were 
required, it might even simplify the parser and make things a little 
faster.

-- 
Chris Huff
e-mail: chr### [at] yahoocom
Web page: http://chrishuff.dhs.org/


Post a reply to this message

From: Ken
Subject: Re: Different error messages for same POV-file
Date: 16 Mar 2000 18:10:24
Message: <38D169C7.81AB9F18@pacbell.net>
Chris Huff wrote:
> 
> In article <38D15EDC.6F76A0B0@pacbell.net>, lin### [at] povrayorg
> wrote:
> 
> > Chris Huff wrote:
> >
> > > I really wish POV-Ray would accept, if not require, semicolons at the
> > > end of declarations. It should be a simple modification to make, at
> > > least for someone who understands the declaration code(I don't).
> >
> > Why ?
> 
> So we don't have to remember which times a semicolon is required?
> Currently, it is not consistant. You have to memorize the special
> cases:float, vector, color... It would be easier to just allow a
> semicolon at the end of every #declare and #local. If they were
> required, it might even simplify the parser and make things a little
> faster.


#declare Bob =
object {
  #declare Axel = box{-.5,.5}
  #declare Col1 = rgb<1,1,1>;
  #declare Col2 = rgb<0,0,0>;
  #declare XXX = pigment{checker color Col1 color Col2}

  #declare a = 0;
    #while (a<1)
      object{Axel translate a pigment{XXX}}
    #declare a=a+1;
  #end
}
;

object{Bob}

Which semi-colon closes the Bob declaration in the example above ?

I know it is obvious to us but this is a simple example which might
confuse the hell out of the parser.

Or do you make yet another special rule so that semi-colons don't
apply to declared objects and CSG operations because they already
use curly braces to define their ending ?

Does this make sense #declare foo = object {bar};  ?

-- 
Ken Tyler -  1300+ Povray, Graphics, 3D Rendering, and Raytracing Links:
http://home.pacbell.net/tylereng/index.html http://www.povray.org/links/


Post a reply to this message

From: Chris Huff
Subject: Re: Different error messages for same POV-file
Date: 16 Mar 2000 18:48:26
Message: <chrishuff_99-7F0265.18502216032000@news.povray.org>
In article <38D169C7.81AB9F18@pacbell.net>, lin### [at] povrayorg 
wrote:

> Chris Huff wrote:
> > 
> > In article <38D15EDC.6F76A0B0@pacbell.net>, lin### [at] povrayorg
> > wrote:
> > 
> > > Chris Huff wrote:
> > >
> > > > I really wish POV-Ray would accept, if not require, semicolons at 
> > > > the
> > > > end of declarations. It should be a simple modification to make, at
> > > > least for someone who understands the declaration code(I don't).
> > >
> > > Why ?
> > 
> > So we don't have to remember which times a semicolon is required?
> > Currently, it is not consistant. You have to memorize the special
> > cases:float, vector, color... It would be easier to just allow a
> > semicolon at the end of every #declare and #local. If they were
> > required, it might even simplify the parser and make things a little
> > faster.
> 
> 
> #declare Bob =
> object {
>   #declare Axel = box{-.5,.5}
>   #declare Col1 = rgb<1,1,1>;
>   #declare Col2 = rgb<0,0,0>;
>   #declare XXX = pigment{checker color Col1 color Col2}
> 
>   #declare a = 0;
>     #while (a<1)
>       object{Axel translate a pigment{XXX}}
>     #declare a=a+1;
>   #end
> }
> ;
> 
> object{Bob}
> 
> Which semi-colon closes the Bob declaration in the example above ?

The last one.


> I know it is obvious to us but this is a simple example which might
> confuse the hell out of the parser.

I doubt it, it shouldn't be hard to do. Actually, it most likely 
wouldn't require much extra work at all. And you missed two, one in the 
declaration of Axel and the other in XXX.

And just to nit-pick, your while loop is indented wrong, the #while 
should be on the same level as "#declare a = 0;", and "object{Axel..." 
should be on the same level as "#declare a=a+1;". And it would probably 
be a good idea to use capitals instead of lowercase, "A" insead of "a", 
to avoid conflicts with future reserved words/characters. And those 
#declares(other than the loop counter) really should be outside the 
object, no purpose is served in putting them there. And your #while() 
loop will only loop once, kind of useless that way. :-)


> Or do you make yet another special rule so that semi-colons don't
> apply to declared objects and CSG operations because they already
> use curly braces to define their ending ?
> 
> Does this make sense #declare foo = object {bar};  ?

The } defines the end of the object, not the declaration, so the 
semicolon should remain. Maybe also allow an "implied union" without a 
"union {}" wrapper(just specify multiple objects between the "=" and the 
";"), but I don't think that would be very useful and it would make 
things harder to read.
And yes, that code makes sense.

-- 
Chris Huff
e-mail: chr### [at] yahoocom
Web page: http://chrishuff.dhs.org/


Post a reply to this message

From: Ken
Subject: Re: Different error messages for same POV-file
Date: 16 Mar 2000 22:02:19
Message: <38D1A00E.197487CE@pacbell.net>
I will indent my code anyway I see fit and I think you are over complicating
things.

-- 
Ken Tyler -  1300+ Povray, Graphics, 3D Rendering, and Raytracing Links:
http://home.pacbell.net/tylereng/index.html http://www.povray.org/links/


Post a reply to this message

From: Nieminen Juha
Subject: Re: Different error messages for same POV-file
Date: 17 Mar 2000 10:04:22
Message: <38d24976@news.povray.org>
Ken <tyl### [at] pacbellnet> wrote:
: I know it is obvious to us but this is a simple example which might
: confuse the hell out of the parser.

  Language parsers (C++, Java...) do it all the time (ie. several nested
blocks which end with ';') so it's not so difficult after all. For example:

class Test
{ int x;
};

-- 
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/


Post a reply to this message

From: Nieminen Juha
Subject: Re: Different error messages for same POV-file
Date: 17 Mar 2000 10:05:19
Message: <38d249ae@news.povray.org>
Chris Huff <chr### [at] yahoocom> wrote:
: And just to nit-pick, your while loop is indented wrong

  Don't tell him how to indent. He will not listen anyways :)

-- 
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/


Post a reply to this message

<<< Previous 10 Messages Goto Latest 10 Messages Next 4 Messages >>>

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.