# 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 const
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float layout = 1.0;
				${OUTPUT}
			}
		""
	end
	case centroid
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float mat2x2 = 1.0;
				${OUTPUT}
			}
		""
	end
	case mat2x3
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float mat2x3 = 1.0;
				${OUTPUT}
			}
		""
	end
	case mat2x4
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float mat2x4 = 1.0;
				${OUTPUT}
			}
		""
	end
	case mat3x2
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float mat3x2 = 1.0;
				${OUTPUT}
			}
		""
	end
	case mat3x3
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float mat3x3 = 1.0;
				${OUTPUT}
			}
		""
	end
	case mat3x4
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float mat3x4 = 1.0;
				${OUTPUT}
			}
		""
	end
	case mat4x2
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float mat4x2 = 1.0;
				${OUTPUT}
			}
		""
	end
	case mat4x3
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float mat4x3 = 1.0;
				${OUTPUT}
			}
		""
	end
	case mat4x4
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float uint = 1.0;
				${OUTPUT}
			}
		""
	end
	case uvec2
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float uvec2 = 1.0;
				${OUTPUT}
			}
		""
	end
	case uvec3
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float uvec3 = 1.0;
				${OUTPUT}
			}
		""
	end
	case uvec4
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float samplerCubeShadow = 1.0;
				${OUTPUT}
			}
		""
	end
	case sampler2DArray
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float sampler2DArray = 1.0;
				${OUTPUT}
			}
		""
	end
	case sampler2DArrayShadow
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float sampler2DArrayShadow = 1.0;
				${OUTPUT}
			}
		""
	end
	case isampler2D
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float isampler2D = 1.0;
				${OUTPUT}
			}
		""
	end
	case isampler3D
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float isampler3D = 1.0;
				${OUTPUT}
			}
		""
	end
	case isamplerCube
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float isamplerCube = 1.0;
				${OUTPUT}
			}
		""
	end
	case isampler2DArray
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float isampler2DArray = 1.0;
				${OUTPUT}
			}
		""
	end
	case usampler2D
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float usampler2D = 1.0;
				${OUTPUT}
			}
		""
	end
	case usampler3D
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float usampler3D = 1.0;
				${OUTPUT}
			}
		""
	end
	case usamplerCube
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float usamplerCube = 1.0;
				${OUTPUT}
			}
		""
	end
	case usampler2DArray
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			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 attribute
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float coherent = 1.0;
				${OUTPUT}
			}
		""
	end
	case restrict
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float restrict = 1.0;
				${OUTPUT}
			}
		""
	end
	case readonly
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float readonly = 1.0;
				${OUTPUT}
			}
		""
	end
	case writeonly
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float writeonly = 1.0;
				${OUTPUT}
			}
		""
	end
	case resource
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float resource = 1.0;
				${OUTPUT}
			}
		""
	end
	case atomic_uint
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float atomic_uint = 1.0;
				${OUTPUT}
			}
		""
	end
	case noperspective
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float noperspective = 1.0;
				${OUTPUT}
			}
		""
	end
	case patch
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float patch = 1.0;
				${OUTPUT}
			}
		""
	end
	case sample
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float sample = 1.0;
				${OUTPUT}
			}
		""
	end
	case subroutine
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float subroutine = 1.0;
				${OUTPUT}
			}
		""
	end
	case common
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float common = 1.0;
				${OUTPUT}
			}
		""
	end
	case partition
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float partition = 1.0;
				${OUTPUT}
			}
		""
	end
	case active
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float filter = 1.0;
				${OUTPUT}
			}
		""
	end
	case image1D
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float image1D = 1.0;
				${OUTPUT}
			}
		""
	end
	case image2D
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float image2D = 1.0;
				${OUTPUT}
			}
		""
	end
	case image3D
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float image3D = 1.0;
				${OUTPUT}
			}
		""
	end
	case imageCube
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float imageCube = 1.0;
				${OUTPUT}
			}
		""
	end
	case iimage1D
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float iimage1D = 1.0;
				${OUTPUT}
			}
		""
	end
	case iimage2D
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float iimage2D = 1.0;
				${OUTPUT}
			}
		""
	end
	case iimage3D
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float iimage3D = 1.0;
				${OUTPUT}
			}
		""
	end
	case iimageCube
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float iimageCube = 1.0;
				${OUTPUT}
			}
		""
	end
	case uimage1D
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float uimage1D = 1.0;
				${OUTPUT}
			}
		""
	end
	case uimage2D
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float uimage2D = 1.0;
				${OUTPUT}
			}
		""
	end
	case uimage3D
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float uimage3D = 1.0;
				${OUTPUT}
			}
		""
	end
	case uimageCube
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float uimageCube = 1.0;
				${OUTPUT}
			}
		""
	end
	case image1DArray
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float image1DArray = 1.0;
				${OUTPUT}
			}
		""
	end
	case image2DArray
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float image2DArray = 1.0;
				${OUTPUT}
			}
		""
	end
	case iimage1DArray
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float iimage1DArray = 1.0;
				${OUTPUT}
			}
		""
	end
	case iimage2DArray
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float iimage2DArray = 1.0;
				${OUTPUT}
			}
		""
	end
	case uimage1DArray
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float uimage1DArray = 1.0;
				${OUTPUT}
			}
		""
	end
	case uimage2DArray
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float uimage2DArray = 1.0;
				${OUTPUT}
			}
		""
	end
	case image1DShadow
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float image1DShadow = 1.0;
				${OUTPUT}
			}
		""
	end
	case image2DShadow
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float image2DShadow = 1.0;
				${OUTPUT}
			}
		""
	end
	case image1DArrayShadow
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float image1DArrayShadow = 1.0;
				${OUTPUT}
			}
		""
	end
	case image2DArrayShadow
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float image2DArrayShadow = 1.0;
				${OUTPUT}
			}
		""
	end
	case imageBuffer
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float imageBuffer = 1.0;
				${OUTPUT}
			}
		""
	end
	case iimageBuffer
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float iimageBuffer = 1.0;
				${OUTPUT}
			}
		""
	end
	case uimageBuffer
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float sampler1DArray = 1.0;
				${OUTPUT}
			}
		""
	end
	case sampler1DArrayShadow
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float sampler1DArrayShadow = 1.0;
				${OUTPUT}
			}
		""
	end
	case isampler1D
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float isampler1D = 1.0;
				${OUTPUT}
			}
		""
	end
	case isampler1DArray
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float isampler1DArray = 1.0;
				${OUTPUT}
			}
		""
	end
	case usampler1D
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float usampler1D = 1.0;
				${OUTPUT}
			}
		""
	end
	case usampler1DArray
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float isampler2DRect = 1.0;
				${OUTPUT}
			}
		""
	end
	case usampler2DRect
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float usampler2DRect = 1.0;
				${OUTPUT}
			}
		""
	end
	case samplerBuffer
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float samplerBuffer = 1.0;
				${OUTPUT}
			}
		""
	end
	case isamplerBuffer
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float isamplerBuffer = 1.0;
				${OUTPUT}
			}
		""
	end
	case usamplerBuffer
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float usamplerBuffer = 1.0;
				${OUTPUT}
			}
		""
	end
	case sampler2DMS
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float sampler2DMS = 1.0;
				${OUTPUT}
			}
		""
	end
	case isampler2DMS
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float isampler2DMS = 1.0;
				${OUTPUT}
			}
		""
	end
	case usampler2DMS
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float usampler2DMS = 1.0;
				${OUTPUT}
			}
		""
	end
	case sampler2DMSArray
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float sampler2DMSArray = 1.0;
				${OUTPUT}
			}
		""
	end
	case isampler2DMSArray
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float isampler2DMSArray = 1.0;
				${OUTPUT}
			}
		""
	end
	case usampler2DMSArray
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

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

	case gl_begin
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

			void main()
			{
				${SETUP}
				float 0invalid = 1.0;
				${OUTPUT}
			}
		""
	end
	case max_length
		expect compile_fail
		values {}
		version 300 es

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}

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

end # invalid_identifiers