# WARNING: This file is auto-generated. Do NOT modify it manually, but rather
# modify the generating script file. Otherwise changes will be lost!

group keywords "Usage of keywords as identifiers."

	case attribute
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float attribute = 1.0;
				${OUTPUT}
			}
		""
	end
	case const
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float const = 1.0;
				${OUTPUT}
			}
		""
	end
	case uniform
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float uniform = 1.0;
				${OUTPUT}
			}
		""
	end
	case varying
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float varying = 1.0;
				${OUTPUT}
			}
		""
	end
	case break
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float break = 1.0;
				${OUTPUT}
			}
		""
	end
	case continue
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float continue = 1.0;
				${OUTPUT}
			}
		""
	end
	case do
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float do = 1.0;
				${OUTPUT}
			}
		""
	end
	case for
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float for = 1.0;
				${OUTPUT}
			}
		""
	end
	case while
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float while = 1.0;
				${OUTPUT}
			}
		""
	end
	case if
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float if = 1.0;
				${OUTPUT}
			}
		""
	end
	case else
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float else = 1.0;
				${OUTPUT}
			}
		""
	end
	case in
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float in = 1.0;
				${OUTPUT}
			}
		""
	end
	case out
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float out = 1.0;
				${OUTPUT}
			}
		""
	end
	case inout
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float inout = 1.0;
				${OUTPUT}
			}
		""
	end
	case float
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float float = 1.0;
				${OUTPUT}
			}
		""
	end
	case int
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float int = 1.0;
				${OUTPUT}
			}
		""
	end
	case void
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float void = 1.0;
				${OUTPUT}
			}
		""
	end
	case bool
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float bool = 1.0;
				${OUTPUT}
			}
		""
	end
	case true
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float true = 1.0;
				${OUTPUT}
			}
		""
	end
	case false
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float false = 1.0;
				${OUTPUT}
			}
		""
	end
	case lowp
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float lowp = 1.0;
				${OUTPUT}
			}
		""
	end
	case mediump
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float mediump = 1.0;
				${OUTPUT}
			}
		""
	end
	case highp
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float highp = 1.0;
				${OUTPUT}
			}
		""
	end
	case precision
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float precision = 1.0;
				${OUTPUT}
			}
		""
	end
	case invariant
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float invariant = 1.0;
				${OUTPUT}
			}
		""
	end
	case discard
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float discard = 1.0;
				${OUTPUT}
			}
		""
	end
	case return
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float return = 1.0;
				${OUTPUT}
			}
		""
	end
	case mat2
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float mat2 = 1.0;
				${OUTPUT}
			}
		""
	end
	case mat3
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float mat3 = 1.0;
				${OUTPUT}
			}
		""
	end
	case mat4
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float mat4 = 1.0;
				${OUTPUT}
			}
		""
	end
	case vec2
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float vec2 = 1.0;
				${OUTPUT}
			}
		""
	end
	case vec3
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float vec3 = 1.0;
				${OUTPUT}
			}
		""
	end
	case vec4
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float vec4 = 1.0;
				${OUTPUT}
			}
		""
	end
	case ivec2
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float ivec2 = 1.0;
				${OUTPUT}
			}
		""
	end
	case ivec3
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float ivec3 = 1.0;
				${OUTPUT}
			}
		""
	end
	case ivec4
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float ivec4 = 1.0;
				${OUTPUT}
			}
		""
	end
	case bvec2
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float bvec2 = 1.0;
				${OUTPUT}
			}
		""
	end
	case bvec3
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float bvec3 = 1.0;
				${OUTPUT}
			}
		""
	end
	case bvec4
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float bvec4 = 1.0;
				${OUTPUT}
			}
		""
	end
	case sampler2D
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float sampler2D = 1.0;
				${OUTPUT}
			}
		""
	end
	case samplerCube
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float samplerCube = 1.0;
				${OUTPUT}
			}
		""
	end
	case struct
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float struct = 1.0;
				${OUTPUT}
			}
		""
	end

end # keywords
group reserved_keywords "Usage of reserved keywords as identifiers."

	case asm
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float asm = 1.0;
				${OUTPUT}
			}
		""
	end
	case class
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float class = 1.0;
				${OUTPUT}
			}
		""
	end
	case union
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float union = 1.0;
				${OUTPUT}
			}
		""
	end
	case enum
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float enum = 1.0;
				${OUTPUT}
			}
		""
	end
	case typedef
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float typedef = 1.0;
				${OUTPUT}
			}
		""
	end
	case template
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float template = 1.0;
				${OUTPUT}
			}
		""
	end
	case this
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float this = 1.0;
				${OUTPUT}
			}
		""
	end
	case packed
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float packed = 1.0;
				${OUTPUT}
			}
		""
	end
	case goto
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float goto = 1.0;
				${OUTPUT}
			}
		""
	end
	case switch
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float switch = 1.0;
				${OUTPUT}
			}
		""
	end
	case default
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float default = 1.0;
				${OUTPUT}
			}
		""
	end
	case inline
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float inline = 1.0;
				${OUTPUT}
			}
		""
	end
	case noinline
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float noinline = 1.0;
				${OUTPUT}
			}
		""
	end
	case volatile
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float volatile = 1.0;
				${OUTPUT}
			}
		""
	end
	case public
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float public = 1.0;
				${OUTPUT}
			}
		""
	end
	case static
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float static = 1.0;
				${OUTPUT}
			}
		""
	end
	case extern
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float extern = 1.0;
				${OUTPUT}
			}
		""
	end
	case external
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float external = 1.0;
				${OUTPUT}
			}
		""
	end
	case interface
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float interface = 1.0;
				${OUTPUT}
			}
		""
	end
	case flat
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float flat = 1.0;
				${OUTPUT}
			}
		""
	end
	case long
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float long = 1.0;
				${OUTPUT}
			}
		""
	end
	case short
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float short = 1.0;
				${OUTPUT}
			}
		""
	end
	case double
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float double = 1.0;
				${OUTPUT}
			}
		""
	end
	case half
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float half = 1.0;
				${OUTPUT}
			}
		""
	end
	case fixed
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float fixed = 1.0;
				${OUTPUT}
			}
		""
	end
	case unsigned
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float unsigned = 1.0;
				${OUTPUT}
			}
		""
	end
	case superp
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float superp = 1.0;
				${OUTPUT}
			}
		""
	end
	case input
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float input = 1.0;
				${OUTPUT}
			}
		""
	end
	case output
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float output = 1.0;
				${OUTPUT}
			}
		""
	end
	case hvec2
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float hvec2 = 1.0;
				${OUTPUT}
			}
		""
	end
	case hvec3
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float hvec3 = 1.0;
				${OUTPUT}
			}
		""
	end
	case hvec4
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float hvec4 = 1.0;
				${OUTPUT}
			}
		""
	end
	case dvec2
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float dvec2 = 1.0;
				${OUTPUT}
			}
		""
	end
	case dvec3
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float dvec3 = 1.0;
				${OUTPUT}
			}
		""
	end
	case dvec4
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float dvec4 = 1.0;
				${OUTPUT}
			}
		""
	end
	case fvec2
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float fvec2 = 1.0;
				${OUTPUT}
			}
		""
	end
	case fvec3
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float fvec3 = 1.0;
				${OUTPUT}
			}
		""
	end
	case fvec4
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float fvec4 = 1.0;
				${OUTPUT}
			}
		""
	end
	case sampler1D
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float sampler1D = 1.0;
				${OUTPUT}
			}
		""
	end
	case sampler3D
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float sampler3D = 1.0;
				${OUTPUT}
			}
		""
	end
	case sampler1DShadow
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float sampler1DShadow = 1.0;
				${OUTPUT}
			}
		""
	end
	case sampler2DShadow
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float sampler2DShadow = 1.0;
				${OUTPUT}
			}
		""
	end
	case sampler2DRect
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float sampler2DRect = 1.0;
				${OUTPUT}
			}
		""
	end
	case sampler3DRect
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float sampler3DRect = 1.0;
				${OUTPUT}
			}
		""
	end
	case sampler2DRectShadow
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float sampler2DRectShadow = 1.0;
				${OUTPUT}
			}
		""
	end
	case sizeof
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float sizeof = 1.0;
				${OUTPUT}
			}
		""
	end
	case cast
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float cast = 1.0;
				${OUTPUT}
			}
		""
	end
	case namespace
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float namespace = 1.0;
				${OUTPUT}
			}
		""
	end
	case using
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float using = 1.0;
				${OUTPUT}
			}
		""
	end

end # reserved_keywords
group invalid_identifiers "Usage of invalid identifiers."

	case two_underscores_begin
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float __invalid = 1.0;
				${OUTPUT}
			}
		""
	end
	case two_underscores_middle
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float in__valid = 1.0;
				${OUTPUT}
			}
		""
	end
	case two_underscores_end
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float invalid__ = 1.0;
				${OUTPUT}
			}
		""
	end
	case gl_begin
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float gl_Invalid = 1.0;
				${OUTPUT}
			}
		""
	end
	case digit
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float 0123 = 1.0;
				${OUTPUT}
			}
		""
	end
	case digit_begin
		expect compile_fail
		values {}

		both ""
			precision mediump float;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float 0invalid = 1.0;
				${OUTPUT}
			}
		""
	end

end # invalid_identifiers