Revision control
++ #include "glsllexer.h"
++ #include "glslparser.h"
++
++ %no-enums
++ %token-prefix=T_
++ %toupper
++ %namespace=Parser
++ %lexer-class=Lexer
++ %variant-prefix=Lexer::Variant_
++
++ using namespace GLSL;
++
++ %%
++
++ attribute %variant VertexShader
++ bool
++ break
++ bvec2
++ bvec3
++ bvec4
++ case %variant GLSL_150
++ centroid %variant GLSL_120
++ const
++ continue
++ default %variant GLSL_150
++ discard %variant FragmentShader
++ dmat2 %variant GLSL_400
++ dmat2x2 %variant GLSL_400
++ dmat2x3 %variant GLSL_400
++ dmat2x4 %variant GLSL_400
++ dmat3 %variant GLSL_400
++ dmat3x2 %variant GLSL_400
++ dmat3x3 %variant GLSL_400
++ dmat3x4 %variant GLSL_400
++ dmat4 %variant GLSL_400
++ dmat4x2 %variant GLSL_400
++ dmat4x3 %variant GLSL_400
++ dmat4x4 %variant GLSL_400
++ do
++ double %variant GLSL_400
++ dvec2 %variant GLSL_400
++ dvec3 %variant GLSL_400
++ dvec4 %variant GLSL_400
++ else
++ flat %variant GLSL_150
++ float
++ for
++ highp %variant GLSL_ES_100 | GLSL_400
++ if
++ in
++ inout
++ int
++ invariant
++ isampler1D %variant GLSL_150
++ isampler1DArray %variant GLSL_150
++ isampler2D %variant GLSL_150
++ isampler2DArray %variant GLSL_150
++ isampler2DMS %variant GLSL_150
++ isampler2DMSArray %variant GLSL_150
++ isampler2DRect %variant GLSL_150
++ isampler3D %variant GLSL_150
++ isamplerBuffer %variant GLSL_150
++ isamplerCube %variant GLSL_150
++ isamplerCubeArray %variant GLSL_400
++ ivec2
++ ivec3
++ ivec4
++ layout %variant GLSL_150
++ lowp %variant GLSL_ES_100 | GLSL_400
++ mat2
++ mat2x2 %variant GLSL_120
++ mat2x3 %variant GLSL_120
++ mat2x4 %variant GLSL_120
++ mat3
++ mat3x2 %variant GLSL_120
++ mat3x3 %variant GLSL_120
++ mat3x4 %variant GLSL_120
++ mat4
++ mat4x2 %variant GLSL_120
++ mat4x3 %variant GLSL_120
++ mat4x4 %variant GLSL_120
++ mediump %variant GLSL_ES_100 | GLSL_400
++ noperspective %variant GLSL_150
++ out
++ patch %variant GLSL_400
++ precision %variant GLSL_ES_100
++ return
++ sample %variant Reserved
++ sampler1D %variant GLSL_120
++ sampler1DArray %variant GLSL_150
++ sampler1DArrayShadow %variant GLSL_150
++ sampler1DShadow %variant GLSL_120
++ sampler2D
++ sampler2DArray %variant GLSL_150
++ sampler2DArrayShadow %variant GLSL_150
++ sampler2DMS %variant GLSL_150
++ sampler2DMSArray %variant GLSL_150
++ sampler2DRect %variang GLSL_150
++ sampler2DRectShadow %variang GLSL_150
++ sampler2DShadow %variant GLSL_120
++ sampler3D %variant GLSL_120
++ samplerBuffer %variant GLSL_150
++ samplerCube
++ samplerCubeArray %variant GLSL_400
++ samplerCubeArrayShadow %variant GLSL_400
++ samplerCubeShadow %variant GLSL_400
++ smooth %variant GLSL_150
++ struct
++ subroutine %variant GLSL_400
++ switch %variant GLSL_150
++ uint %variant GLSL_150
++ uniform
++ usampler1D %variant GLSL_150
++ usampler1DArray %variant GLSL_150
++ usampler2D %variant GLSL_150
++ usampler2DArray %variant GLSL_150
++ usampler2DMS %variant GLSL_150
++ usampler2DMSarray %variant GLSL_150
++ usampler2DRect %variant GLSL_150
++ usampler3D %variant GLSL_150
++ usamplerBuffer %variant GLSL_150
++ usamplerCube %variant GLSL_150
++ usamplerCubeArray %variant GLSL_400
++ uvec2 %variant GLSL_150
++ uvec3 %variant GLSL_150
++ uvec4 %variant GLSL_150
++ varying
++ vec2
++ vec3
++ vec4
++ void
++ while
++ true
++ false