I originally ran into this problem running 3.5 RC6 on W2K, but 3.1g
exhibits the same problem.  When I run the scene below, I get a parse
error, "no matching } in texture, # found instead."  Here's a sample
file that causes the parse error:
 
#include "colors.inc"
 
#macro fooTexture()
 texture {
  pigment { Red }
 }
 texture {
 #if (0)
  pigment { Blue }
 #else
  pigment { Green }
 #end //if(0)
 }
#end//macro fooTexture()
 
#declare foo_texture = fooTexture()
 
Any #-whatever within the 2nd layer texture causes this error.  Try
replacing the #if  .. #else .. #end  with  #declare causeParseError = 1;
 
The strange thing is that if I put #if's in the Red layer, it parses
fine.  OK, then you get "error: No objects in scene".  :-)
 
Any idea what causes this problem?  I know about the note in section
6.7.6, "Layered Textures", but that has to do with macros inside
layered textures.  This is the other way around, layered textures
inside a macro.  I don't see any syntax ambiguities.
 
Help?
 
-Scott