glsl/glcpp: Don't use start-condition stack when switching to/from <DEFINE>
authorCarl Worth <cworth@cworth.org>
Wed, 25 Jun 2014 18:52:02 +0000 (11:52 -0700)
committerCarl Worth <cworth@cworth.org>
Tue, 29 Jul 2014 22:11:49 +0000 (15:11 -0700)
commit0d5f5d127b2ccac29b12bc7377ccd8cd5b29c70b
tree9311326d8e3235bb5403db1d6a9b9cf4dd524db9
parent2fdc1f50c46b7f0a6abd8b2ef4739ac96958cb0a
glsl/glcpp: Don't use start-condition stack when switching to/from <DEFINE>

This commit does not cause any behavioral change for any valid program. Prior
to entering the <DEFINE> start condition, the only valid start condition is
<INITIAL>, so whether pushing/popping <DEFINE> onto the stack or explicit
returning to <INITIAL> is equivalent.

The reason for this change is that we are planning to soon add a start
condition for <HASH> with the following semantics:

<HASH>: We just saw a directive-introducing '#'

<DEFINE>: We just saw "#define" starting a directive

With these two start conditions in place, the only correct behavior is to
leave <DEFINE> by returning to <INITIAL>. But the old push/pop code would have
returned to the <HASH> start condition which would then cause an error when
the next directive-introducing '#' would be encountered.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
src/glsl/glcpp/glcpp-lex.l