-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 12/03/2010 08:01 AM, José Fonseca wrote: > Hi Ian, > > The current GLSL preprocessor fails to parse expressions such as > > #if 1 == 0 || defined UNDEFINED > > which is used by CINEBENCH r11. > > The problem is the > > parser->space_tokens = 1; > > statement conditional_tokens stanza -- it causes space tokens to be > emitted halfway before reaching the DEFINED token. > > The attached patch is a quick bandaid to this problem, but I suspect > that other space-related issues may subsist.
I believe that Ken was going to work on this, and he has more experience in the preprocessor. I'll defer to him on this. > I don't quite understand space_tokens' role here, or how it is supposed > to work. I confess I'm not very familiar with bison/flex inner-workings: > I though that the tokenizer was producing tokens quite ahead of the > parser, so the parser couldn't change the behavior of the tokenizer in > flight -- but perhaps I'm mixing up with other lexel/grammar generation > tools. I believe this is so that FOO() can be identified differently than FOO. For example: #define FOO(x) x FOO FOO(1) Should produce FOO 1 > Also attached is an extended version of the defined-01.vert piglit > glslparsertest test which covers more variations. We should add this as defined-02.vert. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkz5QzwACgkQX1gOwKyEAw8KGgCdHonAZl6yBBlmuQ5VFXOzqnl6 yPgAoJRuRLnWuIQQJpIkY2Gn/AUbuTWR =qy51 -----END PGP SIGNATURE----- _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev