# 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
