Implement phase one of the migration to group attributes (#343)

* Migrate to group attributes

* Update RNC schema

* Revert "Migrate to group attributes"

This reverts commit 1c87a17c53e7aa7ad7ef22abf9dbd968d863a65a.

* Migrate to group attributes 2: electric boogaloo

* nits

* Update registry.rnc
diff --git a/xml/gl.xml b/xml/gl.xml
index 3228ec1..14bd873 100644
--- a/xml/gl.xml
+++ b/xml/gl.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <registry>
     <comment>
 Copyright (c) 2013-2019 The Khronos Group Inc.
@@ -86,18 +86,17 @@
          ES specifications, and the many extensions to those specifications.
          As such, they may not be a reliable source for enumeration info.
 
-         We welcome assistance from the community in achieving and
-         maintaining the completeness of the enum groups. Khronos does not
-         use the enum group information, and the OpenGL Working Group does
-         not have internal resources to bring it up to date.
+         As of Wednesday 8th January 2020, these group blocks have been
+         deprecated in favour of group attributes declared inline with
+         the enumerant itself.
     -->
 
     <groups>
-        <group name="EvalMapsModeNV">
+        <group name="EvalMapsModeNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FILL_NV"/>
         </group>
 
-        <group name="ProgramTarget">
+        <group name="ProgramTarget" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FRAGMENT_PROGRAM_ARB"/>
             <enum name="GL_VERTEX_PROGRAM_ARB"/>
             <enum name="GL_TEXT_FRAGMENT_SHADER_ATI"/>
@@ -107,7 +106,7 @@
             <enum name="GL_TESS_EVALUATION_PROGRAM_NV"/>
         </group>
 
-        <group name="CombinerStageNV">
+        <group name="CombinerStageNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_COMBINER0_NV"/>
             <enum name="GL_COMBINER1_NV"/>
             <enum name="GL_COMBINER2_NV"/>
@@ -118,36 +117,36 @@
             <enum name="GL_COMBINER7_NV"/>
         </group>
 
-        <group name="CombinerPortionNV">
+        <group name="CombinerPortionNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_RGB"/>
             <enum name="GL_ALPHA"/>
         </group>
 
-        <group name="MapTypeNV">
+        <group name="MapTypeNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FLOAT"/>
             <enum name="GL_DOUBLE"/>
         </group>
 
-        <group name="ScalarType">
+        <group name="ScalarType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_UNSIGNED_BYTE"/>
             <enum name="GL_UNSIGNED_SHORT"/>
             <enum name="GL_UNSIGNED_INT"/>
         </group>
 
-        <group name="VertexShaderTextureUnitParameter">
+        <group name="VertexShaderTextureUnitParameter" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_CURRENT_TEXTURE_COORDS"/>
             <enum name="GL_TEXTURE_MATRIX"/>
         </group>
 
-        <group name="ProgramStringProperty">
+        <group name="ProgramStringProperty" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_PROGRAM_STRING_ARB"/>
         </group>
 
-        <group name="ProgramFormat">
+        <group name="ProgramFormat" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_PROGRAM_FORMAT_ASCII_ARB"/>
         </group>
 
-        <group name="PathColorFormat">
+        <group name="PathColorFormat" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_NONE"/>
             <enum name="GL_LUMINANCE"/>
             <enum name="GL_ALPHA"/>
@@ -157,20 +156,20 @@
             <enum name="GL_RGBA"/>
         </group>
 
-        <group name="ReplacementCodeTypeSUN">
+        <group name="ReplacementCodeTypeSUN" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_UNSIGNED_BYTE"/>
             <enum name="GL_UNSIGNED_SHORT"/>
             <enum name="GL_UNSIGNED_INT"/>
         </group>
 
-        <group name="SecondaryColorPointerTypeIBM">
+        <group name="SecondaryColorPointerTypeIBM" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_SHORT"/>
             <enum name="GL_INT"/>
             <enum name="GL_FLOAT"/>
             <enum name="GL_DOUBLE"/>
         </group>
 
-        <group name="FragmentLightNameSGIX">
+        <group name="FragmentLightNameSGIX" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FRAGMENT_LIGHT0_SGIX"/>
             <enum name="GL_FRAGMENT_LIGHT1_SGIX"/>
             <enum name="GL_FRAGMENT_LIGHT2_SGIX"/>
@@ -181,7 +180,7 @@
             <enum name="GL_FRAGMENT_LIGHT7_SGIX"/>
         </group>
 
-        <group name="FragmentLightParameterSGIX">
+        <group name="FragmentLightParameterSGIX" comment="Deprecated, use the group attributes instead.">
             <!--<enum name="GL_SPOT_EXPONENT_SGIX"/>
             <enum name="GL_SPOT_CUTOFF_SGIX"/>
             <enum name="GL_CONSTANT_ATTENUATION_SGIX"/>
@@ -209,19 +208,19 @@
             <enum name="GL_SPOT_DIRECTION"/>
         </group>
 
-        <group name="ElementPointerTypeATI">
+        <group name="ElementPointerTypeATI" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_UNSIGNED_BYTE"/>
             <enum name="GL_UNSIGNED_SHORT"/>
             <enum name="GL_UNSIGNED_INT"/>
         </group>
 
-        <group name="MatrixIndexPointerTypeARB">
+        <group name="MatrixIndexPointerTypeARB" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_UNSIGNED_BYTE"/>
             <enum name="GL_UNSIGNED_SHORT"/>
             <enum name="GL_UNSIGNED_INT"/>
         </group>
 
-        <group name="WeightPointerTypeARB">
+        <group name="WeightPointerTypeARB" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_BYTE"/>
             <enum name="GL_UNSIGNED_BYTE"/>
             <enum name="GL_SHORT"/>
@@ -232,30 +231,30 @@
             <enum name="GL_DOUBLE"/>
         </group>
 
-        <group name="CullParameterEXT">
+        <group name="CullParameterEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_CULL_VERTEX_EYE_POSITION_EXT"/>
             <enum name="GL_CULL_VERTEX_OBJECT_POSITION_EXT"/>
         </group>
 
-        <group name="DataTypeEXT">
+        <group name="DataTypeEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_SCALAR_EXT"/>
             <enum name="GL_VECTOR_EXT"/>
             <enum name="GL_MATRIX_EXT"/>
         </group>
 
-        <group name="ParameterRangeEXT">
+        <group name="ParameterRangeEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_NORMALIZED_RANGE_EXT"/>
             <enum name="GL_FULL_RANGE_EXT"/>
         </group>
 
-        <group name="GetVariantValueEXT">
+        <group name="GetVariantValueEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_VARIANT_VALUE_EXT"/>
             <enum name="GL_VARIANT_DATATYPE_EXT"/>
             <enum name="GL_VARIANT_ARRAY_STRIDE_EXT"/>
             <enum name="GL_VARIANT_ARRAY_TYPE_EXT"/>
         </group>
 
-        <group name="IndexFunctionEXT">
+        <group name="IndexFunctionEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_NEVER"/>
             <enum name="GL_ALWAYS"/>
             <enum name="GL_LESS"/>
@@ -266,40 +265,40 @@
             <enum name="GL_NOTEQUAL"/>
         </group>
 
-        <group name="IndexMaterialParameterEXT">
+        <group name="IndexMaterialParameterEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_INDEX_OFFSET"/>
         </group>
 
-        <group name="VariantCapEXT">
+        <group name="VariantCapEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_VARIANT_ARRAY_EXT"/>
         </group>
 
-        <group name="PixelTransformTargetEXT">
+        <group name="PixelTransformTargetEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_PIXEL_TRANSFORM_2D_EXT"/>
         </group>
 
-        <group name="PixelTransformPNameEXT">
+        <group name="PixelTransformPNameEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_PIXEL_MAG_FILTER_EXT"/>
             <enum name="GL_PIXEL_MIN_FILTER_EXT"/>
             <enum name="GL_PIXEL_CUBIC_WEIGHT_EXT"/>
         </group>
 
-        <group name="VertexWeightPointerTypeEXT">
+        <group name="VertexWeightPointerTypeEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FLOAT"/>
         </group>
 
-        <group name="VertexShaderWriteMaskEXT">
+        <group name="VertexShaderWriteMaskEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_TRUE"/>
             <enum name="GL_FALSE"/>
         </group>
 
-        <group name="CombinerComponentUsageNV">
+        <group name="CombinerComponentUsageNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_RGB"/>
             <enum name="GL_ALPHA"/>
             <enum name="GL_BLUE"/>
         </group>
 
-        <group name="TangentPointerTypeEXT">
+        <group name="TangentPointerTypeEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_BYTE"/>
             <enum name="GL_SHORT"/>
             <enum name="GL_INT"/>
@@ -308,7 +307,7 @@
             <enum name="GL_DOUBLE_EXT"/>
         </group>
 
-        <group name="BinormalPointerTypeEXT">
+        <group name="BinormalPointerTypeEXT" comment="Deprecated, use the group attributes instead.">
             <!--<enum name="GL_BYTE_EXT"/>
             <enum name="GL_SHORT_EXT"/>
             <enum name="GL_FLOAT_EXT"/>-->
@@ -320,16 +319,16 @@
             <enum name="GL_DOUBLE_EXT"/>
         </group>
 
-        <group name="TextureNormalModeEXT">
+        <group name="TextureNormalModeEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_PERTURB_EXT"/>
         </group>
 
-        <group name="LightTexturePNameEXT">
+        <group name="LightTexturePNameEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ATTENUATION_EXT"/>
             <enum name="GL_SHADOW_ATTENUATION_EXT"/>
         </group>
 
-        <group name="VertexShaderCoordOutEXT">
+        <group name="VertexShaderCoordOutEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_X_EXT"/>
             <enum name="GL_Y_EXT"/>
             <enum name="GL_Z_EXT"/>
@@ -343,7 +342,7 @@
             <enum name="GL_NEGATIVE_ONE_EXT"/>
         </group>
 
-        <group name="SamplePatternEXT">
+        <group name="SamplePatternEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_1PASS_EXT"/>
             <enum name="GL_2PASS_0_EXT"/>
             <enum name="GL_2PASS_1_EXT"/>
@@ -353,26 +352,26 @@
             <enum name="GL_4PASS_3_EXT"/>
         </group>
 
-        <group name="VertexShaderStorageTypeEXT">
+        <group name="VertexShaderStorageTypeEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_VARIANT_EXT"/>
             <enum name="GL_INVARIANT_EXT"/>
             <enum name="GL_LOCAL_CONSTANT_EXT"/>
             <enum name="GL_LOCAL_EXT"/>
         </group>
 
-        <group name="VertexShaderParameterEXT">
+        <group name="VertexShaderParameterEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_CURRENT_VERTEX_EXT"/>
             <enum name="GL_MVP_MATRIX_EXT"/>
         </group>
 
-        <group name="LightTextureModeEXT">
+        <group name="LightTextureModeEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FRAGMENT_MATERIAL_EXT"/>
             <enum name="GL_FRAGMENT_NORMAL_EXT"/>
             <enum name="GL_FRAGMENT_DEPTH_EXT"/>
             <enum name="GL_FRAGMENT_COLOR_EXT"/>
         </group>
 
-        <group name="VertexShaderOpEXT">
+        <group name="VertexShaderOpEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_OP_INDEX_EXT"/>
             <enum name="GL_OP_NEGATE_EXT"/>
             <enum name="GL_OP_DOT3_EXT"/>
@@ -399,14 +398,14 @@
             <enum name="GL_OP_MOV_EXT"/>
         </group>
 
-        <group name="PointParameterNameARB">
+        <group name="PointParameterNameARB" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_POINT_SIZE_MIN_EXT"/>
             <enum name="GL_POINT_SIZE_MAX_EXT"/>
             <enum name="GL_POINT_FADE_THRESHOLD_SIZE_EXT"/>
             <enum name="GL_POINT_FADE_THRESHOLD_SIZE"/>
         </group>
 
-        <group name="VertexAttribPropertyARB">
+        <group name="VertexAttribPropertyARB" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/>
             <enum name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
             <enum name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
@@ -422,17 +421,17 @@
             <enum name="GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT"/>
         </group>
 
-        <group name="VertexAttribPointerPropertyARB">
+        <group name="VertexAttribPointerPropertyARB" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB"/>
             <enum name="GL_VERTEX_ATTRIB_ARRAY_POINTER"/>
         </group>
 
-        <group name="BufferPointerNameARB">
+        <group name="BufferPointerNameARB" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_BUFFER_MAP_POINTER_ARB"/>
             <enum name="GL_BUFFER_MAP_POINTER"/>
         </group>
 
-        <group name="BufferPNameARB">
+        <group name="BufferPNameARB" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_BUFFER_SIZE_ARB"/>
             <enum name="GL_BUFFER_USAGE_ARB"/>
             <enum name="GL_BUFFER_ACCESS_ARB"/>
@@ -448,7 +447,7 @@
             <enum name="GL_BUFFER_STORAGE_FLAGS"/>
         </group>
 
-        <group name="ClampColorModeARB">
+        <group name="ClampColorModeARB" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FIXED_ONLY_ARB"/>
             <enum name="GL_FALSE"/>
             <enum name="GL_TRUE"/>
@@ -457,64 +456,64 @@
             <enum name="GL_FIXED_ONLY"/>
         </group>
 
-        <group name="ClampColorTargetARB">
+        <group name="ClampColorTargetARB" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_CLAMP_VERTEX_COLOR_ARB"/>
             <enum name="GL_CLAMP_FRAGMENT_COLOR_ARB"/>
             <enum name="GL_CLAMP_READ_COLOR_ARB"/>
             <enum name="GL_CLAMP_READ_COLOR"/>
         </group>
 
-        <group name="VertexArrayPNameAPPLE">
+        <group name="VertexArrayPNameAPPLE" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_STORAGE_CLIENT_APPLE"/>
             <enum name="GL_STORAGE_CACHED_APPLE"/>
             <enum name="GL_STORAGE_SHARED_APPLE"/>
         </group>
 
-        <group name="ObjectTypeAPPLE">
+        <group name="ObjectTypeAPPLE" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_DRAW_PIXELS_APPLE"/>
             <enum name="GL_FENCE_APPLE"/>
         </group>
 
-        <group name="PreserveModeATI">
+        <group name="PreserveModeATI" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_PRESERVE_ATI"/>
             <enum name="GL_DISCARD_ATI"/>
         </group>
 
-        <group name="TexBumpParameterATI">
+        <group name="TexBumpParameterATI" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_BUMP_ROT_MATRIX_ATI"/>
         </group>
 
-        <group name="SwizzleOpATI">
+        <group name="SwizzleOpATI" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_SWIZZLE_STR_ATI"/>
             <enum name="GL_SWIZZLE_STQ_ATI"/>
             <enum name="GL_SWIZZLE_STR_DR_ATI"/>
             <enum name="GL_SWIZZLE_STQ_DQ_ATI"/>
         </group>
 
-        <group name="PNTrianglesPNameATI">
+        <group name="PNTrianglesPNameATI" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_PN_TRIANGLES_POINT_MODE_ATI"/>
             <enum name="GL_PN_TRIANGLES_NORMAL_MODE_ATI"/>
             <enum name="GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI"/>
         </group>
 
-        <group name="ArrayObjectUsageATI">
+        <group name="ArrayObjectUsageATI" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_STATIC_ATI"/>
             <enum name="GL_DYNAMIC_ATI"/>
         </group>
 
-        <group name="GetTexBumpParameterATI">
+        <group name="GetTexBumpParameterATI" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_BUMP_ROT_MATRIX_ATI"/>
             <enum name="GL_BUMP_ROT_MATRIX_SIZE_ATI"/>
             <enum name="GL_BUMP_NUM_TEX_UNITS_ATI"/>
             <enum name="GL_BUMP_TEX_UNITS_ATI"/>
         </group>
 
-        <group name="ArrayObjectPNameATI">
+        <group name="ArrayObjectPNameATI" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_OBJECT_BUFFER_SIZE_ATI"/>
             <enum name="GL_OBJECT_BUFFER_USAGE_ATI"/>
         </group>
 
-        <group name="DrawBufferModeATI">
+        <group name="DrawBufferModeATI" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_COLOR_ATTACHMENT0_NV"/>
             <enum name="GL_COLOR_ATTACHMENT1_NV"/>
             <enum name="GL_COLOR_ATTACHMENT2_NV"/>
@@ -533,7 +532,7 @@
             <enum name="GL_COLOR_ATTACHMENT15_NV"/>
         </group>
 
-        <group name="VertexStreamATI">
+        <group name="VertexStreamATI" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_VERTEX_STREAM0_ATI"/>
             <enum name="GL_VERTEX_STREAM1_ATI"/>
             <enum name="GL_VERTEX_STREAM2_ATI"/>
@@ -544,11 +543,11 @@
             <enum name="GL_VERTEX_STREAM7_ATI"/>
         </group>
 
-        <group name="SpriteParameterNameSGIX">
+        <group name="SpriteParameterNameSGIX" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_SPRITE_MODE_SGIX"/>
         </group>
 
-        <group name="PixelTexGenModeSGIX">
+        <group name="PixelTexGenModeSGIX" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_PIXEL_TEX_GEN_Q_CEILING_SGIX"/>
             <enum name="GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX"/>
             <enum name="GL_PIXEL_TEX_GEN_Q_ROUND_SGIX"/>
@@ -566,14 +565,14 @@
             <!--<enum name="GL_IGLOO_TMESHMODE_SGIX"/>-->
         </group>
 
-        <group name="HintTargetPGI">
+        <group name="HintTargetPGI" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_VERTEX_DATA_HINT_PGI"/>
             <enum name="GL_VERTEX_CONSISTENT_HINT_PGI"/>
             <enum name="GL_MATERIAL_SIDE_HINT_PGI"/>
             <enum name="GL_MAX_VERTEX_HINT_PGI"/>
         </group>
 
-        <group name="ImageTransformPNameHP">
+        <group name="ImageTransformPNameHP" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_IMAGE_SCALE_X_HP"/>
             <enum name="GL_IMAGE_SCALE_Y_HP"/>
             <enum name="GL_IMAGE_TRANSLATE_X_HP"/>
@@ -586,58 +585,58 @@
             <enum name="GL_IMAGE_CUBIC_WEIGHT_HP"/>
         </group>
 
-        <group name="ImageTransformTargetHP">
+        <group name="ImageTransformTargetHP" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_IMAGE_TRANSFORM_2D_HP"/>
         </group>
 
-        <group name="TextureFilterSGIS">
+        <group name="TextureFilterSGIS" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FILTER4_SGIS"/>
         </group>
 
-        <group name="OcclusionQueryParameterNameNV">
+        <group name="OcclusionQueryParameterNameNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_PIXEL_COUNT_NV"/>
             <enum name="GL_PIXEL_COUNT_AVAILABLE_NV"/>
         </group>
 
-        <group name="GetMultisamplePNameNV">
+        <group name="GetMultisamplePNameNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_SAMPLE_POSITION"/>
             <enum name="GL_SAMPLE_LOCATION_ARB"/>
             <enum name="GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB"/>
         </group>
 
-        <group name="MapParameterNV">
+        <group name="MapParameterNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_MAP_TESSELLATION_NV"/>
         </group>
 
-        <group name="MapAttribParameterNV">
+        <group name="MapAttribParameterNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_MAP_ATTRIB_U_ORDER_NV"/>
             <enum name="GL_MAP_ATTRIB_V_ORDER_NV"/>
         </group>
 
-        <group name="FenceParameterNameNV">
+        <group name="FenceParameterNameNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FENCE_STATUS_NV"/>
             <enum name="GL_FENCE_CONDITION_NV"/>
         </group>
 
-        <group name="CombinerParameterNV">
+        <group name="CombinerParameterNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_COMBINER_INPUT_NV"/>
             <enum name="GL_COMBINER_MAPPING_NV"/>
             <enum name="GL_COMBINER_COMPONENT_USAGE_NV"/>
         </group>
 
-        <group name="CombinerBiasNV">
+        <group name="CombinerBiasNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_NONE"/>
             <enum name="GL_BIAS_BY_NEGATIVE_ONE_HALF_NV"/>
         </group>
 
-        <group name="CombinerScaleNV">
+        <group name="CombinerScaleNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_NONE"/>
             <enum name="GL_SCALE_BY_TWO_NV"/>
             <enum name="GL_SCALE_BY_FOUR_NV"/>
             <enum name="GL_SCALE_BY_ONE_HALF_NV"/>
         </group>
 
-        <group name="CombinerMappingNV">
+        <group name="CombinerMappingNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_UNSIGNED_IDENTITY_NV"/>
             <enum name="GL_UNSIGNED_INVERT_NV"/>
             <enum name="GL_EXPAND_NORMAL_NV"/>
@@ -648,7 +647,7 @@
             <enum name="GL_SIGNED_NEGATE_NV"/>
         </group>
 
-        <group name="CombinerRegisterNV">
+        <group name="CombinerRegisterNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_DISCARD_NV"/>
             <enum name="GL_PRIMARY_COLOR_NV"/>
             <enum name="GL_SECONDARY_COLOR_NV"/>
@@ -658,7 +657,7 @@
             <enum name="GL_TEXTURE1_ARB"/>
         </group>
 
-        <group name="CombinerVariableNV">
+        <group name="CombinerVariableNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_VARIABLE_A_NV"/>
             <enum name="GL_VARIABLE_B_NV"/>
             <enum name="GL_VARIABLE_C_NV"/>
@@ -668,25 +667,25 @@
             <enum name="GL_VARIABLE_G_NV"/>
         </group>
 
-        <group name="PixelDataRangeTargetNV">
+        <group name="PixelDataRangeTargetNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_WRITE_PIXEL_DATA_RANGE_NV"/>
             <enum name="GL_READ_PIXEL_DATA_RANGE_NV"/>
         </group>
 
-        <group name="EvalTargetNV">
+        <group name="EvalTargetNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_EVAL_2D_NV"/>
             <enum name="GL_EVAL_TRIANGULAR_2D_NV"/>
         </group>
 
-        <group name="VertexAttribEnumNV">
+        <group name="VertexAttribEnumNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_PROGRAM_PARAMETER_NV"/>
         </group>
 
-        <group name="FenceConditionNV">
+        <group name="FenceConditionNV" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ALL_COMPLETED_NV"/>
         </group>
 
-        <group name="PathCoordType">
+        <group name="PathCoordType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_CLOSE_PATH_NV"/>
             <enum name="GL_MOVE_TO_NV"/>
             <enum name="GL_RELATIVE_MOVE_TO_NV"/>
@@ -734,7 +733,7 @@
             <enum name="GL_RELATIVE_ARC_TO_NV"/>
         </group>
 
-        <group name="AccumOp">
+        <group name="AccumOp" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ACCUM"/>
             <enum name="GL_LOAD"/>
             <enum name="GL_RETURN"/>
@@ -742,7 +741,7 @@
             <enum name="GL_ADD"/>
         </group>
 
-        <group name="AttribMask">
+        <group name="AttribMask" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ACCUM_BUFFER_BIT"/>
             <enum name="GL_ALL_ATTRIB_BITS"/>
             <enum name="GL_COLOR_BUFFER_BIT"/>
@@ -770,7 +769,7 @@
             <enum name="GL_VIEWPORT_BIT"/>
         </group>
 
-        <group name="AlphaFunction">
+        <group name="AlphaFunction" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ALWAYS"/>
             <enum name="GL_EQUAL"/>
             <enum name="GL_GEQUAL"/>
@@ -781,7 +780,7 @@
             <enum name="GL_NOTEQUAL"/>
         </group>
 
-        <group name="BlendEquationModeEXT">
+        <group name="BlendEquationModeEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ALPHA_MAX_SGIX"/>
             <enum name="GL_ALPHA_MIN_SGIX"/>
             <enum name="GL_FUNC_ADD"/>
@@ -796,12 +795,12 @@
             <enum name="GL_MIN_EXT"/>
         </group>
 
-        <group name="Boolean">
+        <group name="Boolean" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FALSE"/>
             <enum name="GL_TRUE"/>
         </group>
 
-        <group name="BufferBitQCOM">
+        <group name="BufferBitQCOM" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_MULTISAMPLE_BUFFER_BIT7_QCOM"/>
             <enum name="GL_MULTISAMPLE_BUFFER_BIT6_QCOM"/>
             <enum name="GL_MULTISAMPLE_BUFFER_BIT5_QCOM"/>
@@ -836,25 +835,25 @@
             <enum name="GL_COLOR_BUFFER_BIT0_QCOM"/>
         </group>
 
-        <group name="BufferTargetARB">
+        <group name="BufferTargetARB" comment="Deprecated, use the group attributes instead.">
           <enum name="GL_ARRAY_BUFFER"/>
-          <enum name="GL_ATOMIC_COUNTER_BUFFER" />
-          <enum name="GL_COPY_READ_BUFFER" />
-          <enum name="GL_COPY_WRITE_BUFFER" />
-          <enum name="GL_DISPATCH_INDIRECT_BUFFER" />
-          <enum name="GL_DRAW_INDIRECT_BUFFER" />
-          <enum name="GL_ELEMENT_ARRAY_BUFFER" />
-          <enum name="GL_PIXEL_PACK_BUFFER" />
-          <enum name="GL_PIXEL_UNPACK_BUFFER" />
-          <enum name="GL_QUERY_BUFFER" />
-          <enum name="GL_SHADER_STORAGE_BUFFER" />
-          <enum name="GL_TEXTURE_BUFFER" />
-          <enum name="GL_TRANSFORM_FEEDBACK_BUFFER" />
-          <enum name="GL_UNIFORM_BUFFER" />
-          <enum name="GL_PARAMETER_BUFFER" />
+          <enum name="GL_ATOMIC_COUNTER_BUFFER"/>
+          <enum name="GL_COPY_READ_BUFFER"/>
+          <enum name="GL_COPY_WRITE_BUFFER"/>
+          <enum name="GL_DISPATCH_INDIRECT_BUFFER"/>
+          <enum name="GL_DRAW_INDIRECT_BUFFER"/>
+          <enum name="GL_ELEMENT_ARRAY_BUFFER"/>
+          <enum name="GL_PIXEL_PACK_BUFFER"/>
+          <enum name="GL_PIXEL_UNPACK_BUFFER"/>
+          <enum name="GL_QUERY_BUFFER"/>
+          <enum name="GL_SHADER_STORAGE_BUFFER"/>
+          <enum name="GL_TEXTURE_BUFFER"/>
+          <enum name="GL_TRANSFORM_FEEDBACK_BUFFER"/>
+          <enum name="GL_UNIFORM_BUFFER"/>
+          <enum name="GL_PARAMETER_BUFFER"/>
         </group>
 
-        <group name="BufferUsageARB">
+        <group name="BufferUsageARB" comment="Deprecated, use the group attributes instead.">
           <enum name="GL_STREAM_DRAW"/>
           <enum name="GL_STREAM_READ"/>
           <enum name="GL_STREAM_COPY"/>
@@ -866,13 +865,13 @@
           <enum name="GL_DYNAMIC_COPY"/>
         </group>
 
-        <group name="BufferAccessARB">
+        <group name="BufferAccessARB" comment="Deprecated, use the group attributes instead.">
           <enum name="GL_READ_ONLY"/>
           <enum name="GL_WRITE_ONLY"/>
           <enum name="GL_READ_WRITE"/>
         </group>
 
-        <group name="BufferStorageMask">
+        <group name="BufferStorageMask" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_CLIENT_STORAGE_BIT"/>
             <enum name="GL_CLIENT_STORAGE_BIT_EXT"/>
             <enum name="GL_DYNAMIC_STORAGE_BIT"/>
@@ -891,7 +890,7 @@
             <enum name="GL_EXTERNAL_STORAGE_BIT_NVX"/>
         </group>
 
-        <group name="ClearBufferMask">
+        <group name="ClearBufferMask" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ACCUM_BUFFER_BIT"/>
             <enum name="GL_COLOR_BUFFER_BIT"/>
             <enum name="GL_COVERAGE_BUFFER_BIT_NV"/>
@@ -899,13 +898,13 @@
             <enum name="GL_STENCIL_BUFFER_BIT"/>
         </group>
 
-        <group name="ClientAttribMask">
+        <group name="ClientAttribMask" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_CLIENT_ALL_ATTRIB_BITS"/>
             <enum name="GL_CLIENT_PIXEL_STORE_BIT"/>
             <enum name="GL_CLIENT_VERTEX_ARRAY_BIT"/>
         </group>
 
-        <group name="ClipPlaneName">
+        <group name="ClipPlaneName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_CLIP_DISTANCE0"/>
             <enum name="GL_CLIP_DISTANCE1"/>
             <enum name="GL_CLIP_DISTANCE2"/>
@@ -922,13 +921,13 @@
             <enum name="GL_CLIP_PLANE5"/>
         </group>
 
-        <group name="ColorMaterialFace">
+        <group name="ColorMaterialFace" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_BACK"/>
             <enum name="GL_FRONT"/>
             <enum name="GL_FRONT_AND_BACK"/>
         </group>
 
-        <group name="ColorMaterialParameter">
+        <group name="ColorMaterialParameter" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_AMBIENT"/>
             <enum name="GL_AMBIENT_AND_DIFFUSE"/>
             <enum name="GL_DIFFUSE"/>
@@ -936,7 +935,7 @@
             <enum name="GL_SPECULAR"/>
         </group>
 
-        <group name="ColorPointerType">
+        <group name="ColorPointerType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_BYTE"/>
             <enum name="GL_DOUBLE"/>
             <enum name="GL_FLOAT"/>
@@ -947,14 +946,14 @@
             <enum name="GL_UNSIGNED_SHORT"/>
         </group>
 
-        <group name="ColorTableParameterPNameSGI">
+        <group name="ColorTableParameterPNameSGI" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_COLOR_TABLE_BIAS"/>
             <enum name="GL_COLOR_TABLE_BIAS_SGI"/>
             <enum name="GL_COLOR_TABLE_SCALE"/>
             <enum name="GL_COLOR_TABLE_SCALE_SGI"/>
         </group>
 
-        <group name="ColorTableTargetSGI">
+        <group name="ColorTableTargetSGI" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_COLOR_TABLE"/>
             <enum name="GL_COLOR_TABLE_SGI"/>
             <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE"/>
@@ -971,7 +970,7 @@
             <enum name="GL_TEXTURE_COLOR_TABLE_SGI"/>
         </group>
 
-        <group name="ContextFlagMask">
+        <group name="ContextFlagMask" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_CONTEXT_FLAG_DEBUG_BIT"/>
             <enum name="GL_CONTEXT_FLAG_DEBUG_BIT_KHR"/>
             <enum name="GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT"/>
@@ -982,17 +981,17 @@
             <enum name="GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR"/>
         </group>
 
-        <group name="ContextProfileMask">
+        <group name="ContextProfileMask" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_CONTEXT_COMPATIBILITY_PROFILE_BIT"/>
             <enum name="GL_CONTEXT_CORE_PROFILE_BIT"/>
         </group>
 
-        <group name="ConvolutionBorderModeEXT">
+        <group name="ConvolutionBorderModeEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_REDUCE"/>
             <enum name="GL_REDUCE_EXT"/>
         </group>
 
-        <group name="ConvolutionParameterEXT">
+        <group name="ConvolutionParameterEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_CONVOLUTION_BORDER_MODE"/>
             <enum name="GL_CONVOLUTION_BORDER_MODE_EXT"/>
             <enum name="GL_CONVOLUTION_FILTER_BIAS"/>
@@ -1001,14 +1000,14 @@
             <enum name="GL_CONVOLUTION_FILTER_SCALE_EXT"/>
         </group>
 
-        <group name="ConvolutionTargetEXT">
+        <group name="ConvolutionTargetEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_CONVOLUTION_1D"/>
             <enum name="GL_CONVOLUTION_1D_EXT"/>
             <enum name="GL_CONVOLUTION_2D"/>
             <enum name="GL_CONVOLUTION_2D_EXT"/>
         </group>
 
-        <group name="CullFaceMode">
+        <group name="CullFaceMode" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_BACK"/>
             <enum name="GL_FRONT"/>
             <enum name="GL_FRONT_AND_BACK"/>
@@ -1016,7 +1015,7 @@
 
         <group name="DataType" comment="See enums block below"/>
 
-        <group name="DepthFunction">
+        <group name="DepthFunction" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ALWAYS"/>
             <enum name="GL_EQUAL"/>
             <enum name="GL_GEQUAL"/>
@@ -1027,7 +1026,7 @@
             <enum name="GL_NOTEQUAL"/>
         </group>
 
-        <group name="DrawBufferMode">
+        <group name="DrawBufferMode" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_AUX0"/>
             <enum name="GL_AUX1"/>
             <enum name="GL_AUX2"/>
@@ -1077,13 +1076,13 @@
             <enum name="GL_COLOR_ATTACHMENT31"/>
         </group>
 
-        <group name="DrawElementsType">
+        <group name="DrawElementsType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_UNSIGNED_BYTE"/>
             <enum name="GL_UNSIGNED_SHORT"/>
             <enum name="GL_UNSIGNED_INT"/>
         </group>
 
-        <group name="EnableCap">
+        <group name="EnableCap" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ALPHA_TEST"/>
             <enum name="GL_ASYNC_DRAW_PIXELS_SGIX"/>
             <enum name="GL_ASYNC_HISTOGRAM_SGIX"/>
@@ -1215,7 +1214,7 @@
             <enum name="GL_VERTEX_ARRAY"/>
         </group>
 
-        <group name="ErrorCode">
+        <group name="ErrorCode" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_INVALID_ENUM"/>
             <enum name="GL_INVALID_FRAMEBUFFER_OPERATION"/>
             <enum name="GL_INVALID_FRAMEBUFFER_OPERATION_EXT"/>
@@ -1231,7 +1230,7 @@
             <enum name="GL_TEXTURE_TOO_LARGE_EXT"/>
         </group>
 
-        <group name="ExternalHandleType">
+        <group name="ExternalHandleType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_HANDLE_TYPE_OPAQUE_FD_EXT"/>
             <enum name="GL_HANDLE_TYPE_OPAQUE_WIN32_EXT"/>
             <enum name="GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT"/>
@@ -1242,7 +1241,7 @@
             <enum name="GL_HANDLE_TYPE_D3D12_FENCE_EXT"/>
         </group>
 
-        <group name="FeedbackType">
+        <group name="FeedbackType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_2D"/>
             <enum name="GL_3D"/>
             <enum name="GL_3D_COLOR"/>
@@ -1250,7 +1249,7 @@
             <enum name="GL_4D_COLOR_TEXTURE"/>
         </group>
 
-        <group name="FeedBackToken">
+        <group name="FeedBackToken" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_BITMAP_TOKEN"/>
             <enum name="GL_COPY_PIXEL_TOKEN"/>
             <enum name="GL_DRAW_PIXEL_TOKEN"/>
@@ -1263,24 +1262,24 @@
 
         <group name="FfdMaskSGIX" comment="See enums section below. Was SGIXFfdMask"/>
 
-        <group name="FfdTargetSGIX">
+        <group name="FfdTargetSGIX" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_GEOMETRY_DEFORMATION_SGIX"/>
             <enum name="GL_TEXTURE_DEFORMATION_SGIX"/>
         </group>
 
-        <group name="FogCoordinatePointerType">
+        <group name="FogCoordinatePointerType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FLOAT"/>
             <enum name="GL_DOUBLE"/>
         </group>
 
-        <group name="FogMode">
+        <group name="FogMode" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_EXP"/>
             <enum name="GL_EXP2"/>
             <enum name="GL_FOG_FUNC_SGIS"/>
             <enum name="GL_LINEAR"/>
         </group>
 
-        <group name="FogParameter">
+        <group name="FogParameter" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FOG_COLOR"/>
             <enum name="GL_FOG_DENSITY"/>
             <enum name="GL_FOG_END"/>
@@ -1290,33 +1289,33 @@
             <enum name="GL_FOG_START"/>
         </group>
 
-        <group name="FogPointerTypeEXT">
+        <group name="FogPointerTypeEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FLOAT"/>
             <enum name="GL_DOUBLE"/>
         </group>
 
-        <group name="FogPointerTypeIBM">
+        <group name="FogPointerTypeIBM" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FLOAT"/>
             <enum name="GL_DOUBLE"/>
         </group>
 
-        <group name="FragmentLightModelParameterSGIX">
+        <group name="FragmentLightModelParameterSGIX" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX"/>
             <enum name="GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX"/>
             <enum name="GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX"/>
             <enum name="GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX"/>
         </group>
 
-        <group name="FramebufferFetchNoncoherent">
+        <group name="FramebufferFetchNoncoherent" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM"/>
         </group>
 
-        <group name="FrontFaceDirection">
+        <group name="FrontFaceDirection" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_CCW"/>
             <enum name="GL_CW"/>
         </group>
 
-        <group name="GetColorTableParameterPNameSGI">
+        <group name="GetColorTableParameterPNameSGI" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_COLOR_TABLE_ALPHA_SIZE_SGI"/>
             <enum name="GL_COLOR_TABLE_BIAS_SGI"/>
             <enum name="GL_COLOR_TABLE_BLUE_SIZE_SGI"/>
@@ -1339,7 +1338,7 @@
             <enum name="GL_COLOR_TABLE_INTENSITY_SIZE"/>
         </group>
 
-        <group name="GetConvolutionParameter">
+        <group name="GetConvolutionParameter" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_CONVOLUTION_BORDER_MODE_EXT"/>
             <enum name="GL_CONVOLUTION_FILTER_BIAS_EXT"/>
             <enum name="GL_CONVOLUTION_FILTER_SCALE_EXT"/>
@@ -1359,7 +1358,7 @@
             <enum name="GL_MAX_CONVOLUTION_HEIGHT"/>
         </group>
 
-        <group name="GetHistogramParameterPNameEXT">
+        <group name="GetHistogramParameterPNameEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_HISTOGRAM_ALPHA_SIZE_EXT"/>
             <enum name="GL_HISTOGRAM_BLUE_SIZE_EXT"/>
             <enum name="GL_HISTOGRAM_FORMAT_EXT"/>
@@ -1386,13 +1385,13 @@
             <enum name="GL_HISTOGRAM_WIDTH_EXT"/>
         </group>
 
-        <group name="GetMapQuery">
+        <group name="GetMapQuery" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_COEFF"/>
             <enum name="GL_DOMAIN"/>
             <enum name="GL_ORDER"/>
         </group>
 
-        <group name="GetMinmaxParameterPNameEXT">
+        <group name="GetMinmaxParameterPNameEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_MINMAX_FORMAT"/>
             <enum name="GL_MINMAX_FORMAT_EXT"/>
             <enum name="GL_MINMAX_SINK"/>
@@ -1401,7 +1400,7 @@
             <enum name="GL_MINMAX_SINK"/>
         </group>
 
-        <group name="GetPixelMap">
+        <group name="GetPixelMap" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_PIXEL_MAP_A_TO_A"/>
             <enum name="GL_PIXEL_MAP_B_TO_B"/>
             <enum name="GL_PIXEL_MAP_G_TO_G"/>
@@ -1414,7 +1413,7 @@
             <enum name="GL_PIXEL_MAP_S_TO_S"/>
         </group>
 
-        <group name="GetPName">
+        <group name="GetPName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ACCUM_ALPHA_BITS"/>
             <enum name="GL_ACCUM_BLUE_BITS"/>
             <enum name="GL_ACCUM_CLEAR_VALUE"/>
@@ -1969,7 +1968,7 @@
             <enum name="GL_ZOOM_Y"/>
         </group>
 
-        <group name="GetPointervPName">
+        <group name="GetPointervPName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_COLOR_ARRAY_POINTER"/>
             <enum name="GL_COLOR_ARRAY_POINTER_EXT"/>
             <enum name="GL_EDGE_FLAG_ARRAY_POINTER"/>
@@ -1989,7 +1988,7 @@
             <enum name="GL_DEBUG_CALLBACK_USER_PARAM"/>
         </group>
 
-        <group name="GetTextureParameter">
+        <group name="GetTextureParameter" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS"/>
             <enum name="GL_DETAIL_TEXTURE_LEVEL_SGIS"/>
             <enum name="GL_DETAIL_TEXTURE_MODE_SGIS"/>
@@ -2046,13 +2045,13 @@
             <enum name="GL_TEXTURE_WRAP_T"/>
         </group>
 
-        <group name="HintMode">
+        <group name="HintMode" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_DONT_CARE"/>
             <enum name="GL_FASTEST"/>
             <enum name="GL_NICEST"/>
         </group>
 
-        <group name="HintTarget">
+        <group name="HintTarget" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ALLOW_DRAW_FRG_HINT_PGI"/>
             <enum name="GL_ALLOW_DRAW_MEM_HINT_PGI"/>
             <enum name="GL_ALLOW_DRAW_OBJ_HINT_PGI"/>
@@ -2106,21 +2105,21 @@
             <enum name="GL_WIDE_LINE_HINT_PGI"/>
         </group>
 
-        <group name="HistogramTargetEXT">
+        <group name="HistogramTargetEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_HISTOGRAM"/>
             <enum name="GL_HISTOGRAM_EXT"/>
             <enum name="GL_PROXY_HISTOGRAM"/>
             <enum name="GL_PROXY_HISTOGRAM_EXT"/>
         </group>
 
-        <group name="IndexPointerType">
+        <group name="IndexPointerType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_DOUBLE"/>
             <enum name="GL_FLOAT"/>
             <enum name="GL_INT"/>
             <enum name="GL_SHORT"/>
         </group>
 
-        <group name="InterleavedArrayFormat">
+        <group name="InterleavedArrayFormat" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_C3F_V3F"/>
             <enum name="GL_C4F_N3F_V3F"/>
             <enum name="GL_C4UB_V2F"/>
@@ -2137,24 +2136,24 @@
             <enum name="GL_V3F"/>
         </group>
 
-        <group name="LightEnvModeSGIX">
+        <group name="LightEnvModeSGIX" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ADD"/>
             <enum name="GL_MODULATE"/>
             <enum name="GL_REPLACE"/>
         </group>
 
-        <group name="LightEnvParameterSGIX">
+        <group name="LightEnvParameterSGIX" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_LIGHT_ENV_MODE_SGIX"/>
         </group>
 
-        <group name="LightModelColorControl">
+        <group name="LightModelColorControl" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_SEPARATE_SPECULAR_COLOR"/>
             <enum name="GL_SEPARATE_SPECULAR_COLOR_EXT"/>
             <enum name="GL_SINGLE_COLOR"/>
             <enum name="GL_SINGLE_COLOR_EXT"/>
         </group>
 
-        <group name="LightModelParameter">
+        <group name="LightModelParameter" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_LIGHT_MODEL_AMBIENT"/>
             <enum name="GL_LIGHT_MODEL_COLOR_CONTROL"/>
             <enum name="GL_LIGHT_MODEL_COLOR_CONTROL_EXT"/>
@@ -2162,7 +2161,7 @@
             <enum name="GL_LIGHT_MODEL_TWO_SIDE"/>
         </group>
 
-        <group name="LightName">
+        <group name="LightName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FRAGMENT_LIGHT0_SGIX"/>
             <enum name="GL_FRAGMENT_LIGHT1_SGIX"/>
             <enum name="GL_FRAGMENT_LIGHT2_SGIX"/>
@@ -2181,7 +2180,7 @@
             <enum name="GL_LIGHT7"/>
         </group>
 
-        <group name="LightParameter">
+        <group name="LightParameter" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_AMBIENT"/>
             <enum name="GL_CONSTANT_ATTENUATION"/>
             <enum name="GL_DIFFUSE"/>
@@ -2194,12 +2193,12 @@
             <enum name="GL_SPOT_EXPONENT"/>
         </group>
 
-        <group name="ListMode">
+        <group name="ListMode" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_COMPILE"/>
             <enum name="GL_COMPILE_AND_EXECUTE"/>
         </group>
 
-        <group name="ListNameType">
+        <group name="ListNameType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_2_BYTES"/>
             <enum name="GL_3_BYTES"/>
             <enum name="GL_4_BYTES"/>
@@ -2212,11 +2211,11 @@
             <enum name="GL_UNSIGNED_SHORT"/>
         </group>
 
-        <group name="ListParameterName">
+        <group name="ListParameterName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_LIST_PRIORITY_SGIX"/>
         </group>
 
-        <group name="LogicOp">
+        <group name="LogicOp" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_AND"/>
             <enum name="GL_AND_INVERTED"/>
             <enum name="GL_AND_REVERSE"/>
@@ -2235,7 +2234,7 @@
             <enum name="GL_XOR"/>
         </group>
 
-        <group name="MapBufferAccessMask">
+        <group name="MapBufferAccessMask" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_MAP_COHERENT_BIT"/>
             <enum name="GL_MAP_COHERENT_BIT_EXT"/>
             <enum name="GL_MAP_FLUSH_EXPLICIT_BIT"/>
@@ -2254,7 +2253,7 @@
             <enum name="GL_MAP_WRITE_BIT_EXT"/>
         </group>
 
-        <group name="MapTarget">
+        <group name="MapTarget" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_GEOMETRY_DEFORMATION_SGIX"/>
             <enum name="GL_MAP1_COLOR_4"/>
             <enum name="GL_MAP1_INDEX"/>
@@ -2277,19 +2276,19 @@
             <enum name="GL_TEXTURE_DEFORMATION_SGIX"/>
         </group>
 
-        <group name="MapTextureFormatINTEL">
+        <group name="MapTextureFormatINTEL" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_LAYOUT_DEFAULT_INTEL"/>
             <enum name="GL_LAYOUT_LINEAR_CPU_CACHED_INTEL"/>
             <enum name="GL_LAYOUT_LINEAR_INTEL"/>
         </group>
 
-        <group name="MaterialFace">
+        <group name="MaterialFace" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_BACK"/>
             <enum name="GL_FRONT"/>
             <enum name="GL_FRONT_AND_BACK"/>
         </group>
 
-        <group name="MaterialParameter">
+        <group name="MaterialParameter" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_AMBIENT"/>
             <enum name="GL_AMBIENT_AND_DIFFUSE"/>
             <enum name="GL_COLOR_INDEXES"/>
@@ -2299,14 +2298,14 @@
             <enum name="GL_SPECULAR"/>
         </group>
 
-        <group name="MatrixMode">
+        <group name="MatrixMode" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_MODELVIEW"/>
             <enum name="GL_MODELVIEW0_EXT"/>
             <enum name="GL_PROJECTION"/>
             <enum name="GL_TEXTURE"/>
         </group>
 
-        <group name="MemoryBarrierMask">
+        <group name="MemoryBarrierMask" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ALL_BARRIER_BITS"/>
             <enum name="GL_ALL_BARRIER_BITS_EXT"/>
             <enum name="GL_ATOMIC_COUNTER_BARRIER_BIT"/>
@@ -2340,28 +2339,28 @@
             <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT"/>
         </group>
 
-        <group name="MemoryObjectParameterName">
+        <group name="MemoryObjectParameterName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_DEDICATED_MEMORY_OBJECT_EXT"/>
             <enum name="GL_PROTECTED_MEMORY_OBJECT_EXT"/>
         </group>
 
-        <group name="MeshMode1">
+        <group name="MeshMode1" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_LINE"/>
             <enum name="GL_POINT"/>
         </group>
 
-        <group name="MeshMode2">
+        <group name="MeshMode2" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FILL"/>
             <enum name="GL_LINE"/>
             <enum name="GL_POINT"/>
         </group>
 
-        <group name="MinmaxTargetEXT">
+        <group name="MinmaxTargetEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_MINMAX"/>
             <enum name="GL_MINMAX_EXT"/>
         </group>
 
-        <group name="NormalPointerType">
+        <group name="NormalPointerType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_BYTE"/>
             <enum name="GL_DOUBLE"/>
             <enum name="GL_FLOAT"/>
@@ -2369,7 +2368,7 @@
             <enum name="GL_SHORT"/>
         </group>
 
-        <group name="PixelCopyType">
+        <group name="PixelCopyType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_COLOR"/>
             <enum name="GL_COLOR_EXT"/>
             <enum name="GL_DEPTH"/>
@@ -2378,7 +2377,7 @@
             <enum name="GL_STENCIL_EXT"/>
         </group>
 
-        <group name="PixelFormat">
+        <group name="PixelFormat" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ABGR_EXT"/>
             <enum name="GL_ALPHA"/>
             <enum name="GL_BGR"/>
@@ -2736,7 +2735,7 @@
             <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"/>
         </group>
 
-        <group name="PixelMap">
+        <group name="PixelMap" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_PIXEL_MAP_A_TO_A"/>
             <enum name="GL_PIXEL_MAP_B_TO_B"/>
             <enum name="GL_PIXEL_MAP_G_TO_G"/>
@@ -2749,7 +2748,7 @@
             <enum name="GL_PIXEL_MAP_S_TO_S"/>
         </group>
 
-        <group name="PixelStoreParameter">
+        <group name="PixelStoreParameter" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_PACK_ALIGNMENT"/>
             <enum name="GL_PACK_IMAGE_DEPTH_SGIS"/>
             <enum name="GL_PACK_IMAGE_HEIGHT"/>
@@ -2791,19 +2790,19 @@
             <enum name="GL_UNPACK_SWAP_BYTES"/>
         </group>
 
-        <group name="PixelStoreResampleMode">
+        <group name="PixelStoreResampleMode" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_RESAMPLE_DECIMATE_SGIX"/>
             <enum name="GL_RESAMPLE_REPLICATE_SGIX"/>
             <enum name="GL_RESAMPLE_ZERO_FILL_SGIX"/>
         </group>
 
-        <group name="PixelStoreSubsampleRate">
+        <group name="PixelStoreSubsampleRate" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_PIXEL_SUBSAMPLE_2424_SGIX"/>
             <enum name="GL_PIXEL_SUBSAMPLE_4242_SGIX"/>
             <enum name="GL_PIXEL_SUBSAMPLE_4444_SGIX"/>
         </group>
 
-        <group name="PixelTexGenMode">
+        <group name="PixelTexGenMode" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_LUMINANCE"/>
             <enum name="GL_LUMINANCE_ALPHA"/>
             <enum name="GL_NONE"/>
@@ -2815,12 +2814,12 @@
             <enum name="GL_RGBA"/>
         </group>
 
-        <group name="PixelTexGenParameterNameSGIS">
+        <group name="PixelTexGenParameterNameSGIS" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS"/>
             <enum name="GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS"/>
         </group>
 
-        <group name="PixelTransferParameter">
+        <group name="PixelTransferParameter" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ALPHA_BIAS"/>
             <enum name="GL_ALPHA_SCALE"/>
             <enum name="GL_BLUE_BIAS"/>
@@ -2869,7 +2868,7 @@
             <enum name="GL_RED_SCALE"/>
         </group>
 
-        <group name="PixelType">
+        <group name="PixelType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_BITMAP"/>
             <enum name="GL_BYTE"/>
             <enum name="GL_FLOAT"/>
@@ -2890,7 +2889,7 @@
             <enum name="GL_UNSIGNED_SHORT_5_5_5_1_EXT"/>
         </group>
 
-        <group name="PointParameterNameSGIS">
+        <group name="PointParameterNameSGIS" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_DISTANCE_ATTENUATION_EXT"/>
             <enum name="GL_DISTANCE_ATTENUATION_SGIS"/>
             <enum name="GL_POINT_DISTANCE_ATTENUATION"/>
@@ -2909,13 +2908,13 @@
             <enum name="GL_POINT_SIZE_MIN_SGIS"/>
         </group>
 
-        <group name="PolygonMode">
+        <group name="PolygonMode" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FILL"/>
             <enum name="GL_LINE"/>
             <enum name="GL_POINT"/>
         </group>
 
-        <group name="PrimitiveType">
+        <group name="PrimitiveType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_LINES"/>
             <enum name="GL_LINES_ADJACENCY"/>
             <enum name="GL_LINES_ADJACENCY_ARB"/>
@@ -2943,7 +2942,7 @@
             <enum name="GL_TRIANGLE_STRIP_ADJACENCY_EXT"/>
         </group>
 
-        <group name="OcclusionQueryEventMaskAMD">
+        <group name="OcclusionQueryEventMaskAMD" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD"/>
             <enum name="GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD"/>
             <enum name="GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD"/>
@@ -2951,7 +2950,7 @@
             <enum name="GL_QUERY_ALL_EVENT_BITS_AMD"/>
         </group>
 
-        <group name="ReadBufferMode">
+        <group name="ReadBufferMode" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_NONE"/>
             <enum name="GL_NONE_OES"/>
             <enum name="GL_AUX0"/>
@@ -2984,13 +2983,13 @@
             <enum name="GL_COLOR_ATTACHMENT15"/>
         </group>
 
-        <group name="RenderingMode">
+        <group name="RenderingMode" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FEEDBACK"/>
             <enum name="GL_RENDER"/>
             <enum name="GL_SELECT"/>
         </group>
 
-        <group name="SamplePatternSGIS">
+        <group name="SamplePatternSGIS" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_1PASS_EXT"/>
             <enum name="GL_1PASS_SGIS"/>
             <enum name="GL_2PASS_0_EXT"/>
@@ -3007,27 +3006,27 @@
             <enum name="GL_4PASS_3_SGIS"/>
         </group>
 
-        <group name="SemaphoreParameterName">
+        <group name="SemaphoreParameterName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_D3D12_FENCE_VALUE_EXT"/>
         </group>
 
-        <group name="SeparableTargetEXT">
+        <group name="SeparableTargetEXT" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_SEPARABLE_2D"/>
             <enum name="GL_SEPARABLE_2D_EXT"/>
         </group>
 
-        <group name="ShadingModel">
+        <group name="ShadingModel" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FLAT"/>
             <enum name="GL_SMOOTH"/>
         </group>
 
-        <group name="StencilFaceDirection">
+        <group name="StencilFaceDirection" comment="Deprecated, use the group attributes instead.">
              <enum name="GL_FRONT"/>
              <enum name="GL_BACK"/>
              <enum name="GL_FRONT_AND_BACK"/>
         </group>
 
-        <group name="StencilFunction">
+        <group name="StencilFunction" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ALWAYS"/>
             <enum name="GL_EQUAL"/>
             <enum name="GL_GEQUAL"/>
@@ -3038,7 +3037,7 @@
             <enum name="GL_NOTEQUAL"/>
         </group>
 
-        <group name="StencilOp">
+        <group name="StencilOp" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_DECR"/>
             <enum name="GL_DECR_WRAP"/>
             <enum name="GL_INCR"/>
@@ -3049,7 +3048,7 @@
             <enum name="GL_ZERO"/>
         </group>
 
-        <group name="StringName">
+        <group name="StringName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_EXTENSIONS"/>
             <enum name="GL_RENDERER"/>
             <enum name="GL_VENDOR"/>
@@ -3057,26 +3056,26 @@
             <enum name="GL_SHADING_LANGUAGE_VERSION"/>
         </group>
 
-        <group name="SyncObjectMask">
+        <group name="SyncObjectMask" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_SYNC_FLUSH_COMMANDS_BIT"/>
             <enum name="GL_SYNC_FLUSH_COMMANDS_BIT_APPLE"/>
         </group>
 
-        <group name="TexCoordPointerType">
+        <group name="TexCoordPointerType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_DOUBLE"/>
             <enum name="GL_FLOAT"/>
             <enum name="GL_INT"/>
             <enum name="GL_SHORT"/>
         </group>
 
-        <group name="TextureCoordName">
+        <group name="TextureCoordName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_S"/>
             <enum name="GL_T"/>
             <enum name="GL_R"/>
             <enum name="GL_Q"/>
         </group>
 
-        <group name="TextureEnvMode">
+        <group name="TextureEnvMode" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ADD"/>
             <enum name="GL_BLEND"/>
             <enum name="GL_DECAL"/>
@@ -3085,20 +3084,20 @@
             <enum name="GL_TEXTURE_ENV_BIAS_SGIX"/>
         </group>
 
-        <group name="TextureEnvParameter">
+        <group name="TextureEnvParameter" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_TEXTURE_ENV_COLOR"/>
             <enum name="GL_TEXTURE_ENV_MODE"/>
         </group>
 
-        <group name="TextureEnvTarget">
+        <group name="TextureEnvTarget" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_TEXTURE_ENV"/>
         </group>
 
-        <group name="TextureFilterFuncSGIS">
+        <group name="TextureFilterFuncSGIS" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FILTER4_SGIS"/>
         </group>
 
-        <group name="TextureGenMode">
+        <group name="TextureGenMode" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_EYE_DISTANCE_TO_LINE_SGIS"/>
             <enum name="GL_EYE_DISTANCE_TO_POINT_SGIS"/>
             <enum name="GL_EYE_LINEAR"/>
@@ -3108,7 +3107,7 @@
             <enum name="GL_SPHERE_MAP"/>
         </group>
 
-        <group name="TextureGenParameter">
+        <group name="TextureGenParameter" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_EYE_LINE_SGIS"/>
             <enum name="GL_EYE_PLANE"/>
             <enum name="GL_EYE_POINT_SGIS"/>
@@ -3118,7 +3117,7 @@
             <enum name="GL_TEXTURE_GEN_MODE"/>
         </group>
 
-        <group name="TextureMagFilter">
+        <group name="TextureMagFilter" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FILTER4_SGIS"/>
             <enum name="GL_LINEAR"/>
             <enum name="GL_LINEAR_DETAIL_ALPHA_SGIS"/>
@@ -3133,7 +3132,7 @@
             <enum name="GL_PIXEL_TEX_GEN_Q_ROUND_SGIX"/>
         </group>
 
-        <group name="TextureMinFilter">
+        <group name="TextureMinFilter" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FILTER4_SGIS"/>
             <enum name="GL_LINEAR"/>
             <enum name="GL_LINEAR_CLIPMAP_LINEAR_SGIX"/>
@@ -3150,7 +3149,7 @@
             <enum name="GL_PIXEL_TEX_GEN_Q_ROUND_SGIX"/>
         </group>
 
-        <group name="TextureParameterName">
+        <group name="TextureParameterName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_DETAIL_TEXTURE_LEVEL_SGIS"/>
             <enum name="GL_DETAIL_TEXTURE_MODE_SGIS"/>
             <enum name="GL_DUAL_TEXTURE_SELECT_SGIS"/>
@@ -3225,11 +3224,11 @@
             <enum name="GL_TEXTURE_WIDTH"/>
         </group>
 
-        <group name="TextureStorageMaskAMD">
+        <group name="TextureStorageMaskAMD" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_TEXTURE_STORAGE_SPARSE_BIT_AMD"/>
         </group>
 
-        <group name="TextureTarget">
+        <group name="TextureTarget" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_DETAIL_TEXTURE_2D_SGIS"/>
             <enum name="GL_PROXY_TEXTURE_1D"/>
             <enum name="GL_PROXY_TEXTURE_1D_ARRAY"/>
@@ -3276,7 +3275,7 @@
             <enum name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
         </group>
 
-        <group name="TextureWrapMode">
+        <group name="TextureWrapMode" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_CLAMP"/>
             <enum name="GL_CLAMP_TO_BORDER"/>
             <enum name="GL_CLAMP_TO_BORDER_ARB"/>
@@ -3289,7 +3288,7 @@
             <enum name="GL_MIRRORED_REPEAT"/>
         </group>
 
-        <group name="UseProgramStageMask">
+        <group name="UseProgramStageMask" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_VERTEX_SHADER_BIT"/>
             <enum name="GL_VERTEX_SHADER_BIT_EXT"/>
             <enum name="GL_FRAGMENT_SHADER_BIT"/>
@@ -3310,7 +3309,7 @@
             <enum name="GL_ALL_SHADER_BITS_EXT"/>
         </group>
 
-        <group name="SubgroupSupportedFeatures">
+        <group name="SubgroupSupportedFeatures" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_SUBGROUP_FEATURE_BASIC_BIT_KHR"/>
             <enum name="GL_SUBGROUP_FEATURE_VOTE_BIT_KHR"/>
             <enum name="GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR"/>
@@ -3322,14 +3321,14 @@
             <enum name="GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV"/>
         </group>
 
-        <group name="VertexPointerType">
+        <group name="VertexPointerType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_DOUBLE"/>
             <enum name="GL_FLOAT"/>
             <enum name="GL_INT"/>
             <enum name="GL_SHORT"/>
         </group>
 
-        <group name="FramebufferAttachment">
+        <group name="FramebufferAttachment" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_COLOR_ATTACHMENT0"/>
             <enum name="GL_COLOR_ATTACHMENT0_EXT"/>
             <enum name="GL_COLOR_ATTACHMENT0_NV"/>
@@ -3404,7 +3403,7 @@
             <enum name="GL_STENCIL_ATTACHMENT_OES"/>
         </group>
 
-        <group name="InvalidateFramebufferAttachment">
+        <group name="InvalidateFramebufferAttachment" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_COLOR_ATTACHMENT0"/>
             <enum name="GL_COLOR_ATTACHMENT0_EXT"/>
             <enum name="GL_COLOR_ATTACHMENT0_NV"/>
@@ -3482,19 +3481,19 @@
             <enum name="GL_STENCIL"/>
         </group>
 
-        <group name="RenderbufferTarget">
-            <enum name="GL_RENDERBUFFER" />
-            <enum name="GL_RENDERBUFFER_OES" />
+        <group name="RenderbufferTarget" comment="Deprecated, use the group attributes instead.">
+            <enum name="GL_RENDERBUFFER"/>
+            <enum name="GL_RENDERBUFFER_OES"/>
         </group>
 
-        <group name="FramebufferTarget">
-            <enum name="GL_FRAMEBUFFER" />
-            <enum name="GL_FRAMEBUFFER_OES" />
-            <enum name="GL_DRAW_FRAMEBUFFER" />
-            <enum name="GL_READ_FRAMEBUFFER" />
+        <group name="FramebufferTarget" comment="Deprecated, use the group attributes instead.">
+            <enum name="GL_FRAMEBUFFER"/>
+            <enum name="GL_FRAMEBUFFER_OES"/>
+            <enum name="GL_DRAW_FRAMEBUFFER"/>
+            <enum name="GL_READ_FRAMEBUFFER"/>
         </group>
 
-        <group name="TextureUnit">
+        <group name="TextureUnit" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_TEXTURE0"/>
             <enum name="GL_TEXTURE1"/>
             <enum name="GL_TEXTURE2"/>
@@ -3529,7 +3528,7 @@
             <enum name="GL_TEXTURE31"/>
         </group>
 
-        <group name="ConditionalRenderMode">
+        <group name="ConditionalRenderMode" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_QUERY_WAIT"/>
             <enum name="GL_QUERY_NO_WAIT"/>
             <enum name="GL_QUERY_BY_REGION_WAIT"/>
@@ -3540,7 +3539,7 @@
             <enum name="GL_QUERY_BY_REGION_NO_WAIT_INVERTED"/>
         </group>
 
-        <group name="FragmentOpATI">
+        <group name="FragmentOpATI" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_MOV_ATI"/>
             <enum name="GL_ADD_ATI"/>
             <enum name="GL_MUL_ATI"/>
@@ -3554,7 +3553,7 @@
             <enum name="GL_DOT2_ADD_ATI"/>
         </group>
 
-        <group name="FramebufferStatus">
+        <group name="FramebufferStatus" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FRAMEBUFFER_COMPLETE"/>
             <enum name="GL_FRAMEBUFFER_UNDEFINED"/>
             <enum name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"/>
@@ -3567,21 +3566,21 @@
             <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS"/>
         </group>
 
-        <group name="GraphicsResetStatus">
+        <group name="GraphicsResetStatus" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_NO_ERROR"/>
             <enum name="GL_GUILTY_CONTEXT_RESET"/>
             <enum name="GL_INNOCENT_CONTEXT_RESET"/>
             <enum name="GL_UNKNOWN_CONTEXT_RESET"/>
         </group>
 
-        <group name="SyncStatus">
+        <group name="SyncStatus" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ALREADY_SIGNALED"/>
             <enum name="GL_TIMEOUT_EXPIRED"/>
             <enum name="GL_CONDITION_SATISFIED"/>
             <enum name="GL_WAIT_FAILED"/>
         </group>
 
-        <group name="QueryTarget">
+        <group name="QueryTarget" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_SAMPLES_PASSED"/>
             <enum name="GL_ANY_SAMPLES_PASSED"/>
             <enum name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE"/>
@@ -3594,29 +3593,29 @@
             <enum name="GL_VERTEX_SHADER_INVOCATIONS"/>
         </group>
 
-        <group name="QueryCounterTarget">
+        <group name="QueryCounterTarget" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_TIMESTAMP"/>
         </group>
 
-        <group name="ConvolutionTarget">
+        <group name="ConvolutionTarget" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_CONVOLUTION_1D"/>
             <enum name="GL_CONVOLUTION_2D"/>
         </group>
 
-        <group name="PathFillMode">
+        <group name="PathFillMode" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_INVERT"/>
             <enum name="GL_COUNT_UP_NV"/>
             <enum name="GL_COUNT_DOWN_NV"/>
             <enum name="GL_PATH_FILL_MODE_NV"/>
         </group>
 
-        <group name="ColorTableTarget">
+        <group name="ColorTableTarget" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_COLOR_TABLE"/>
             <enum name="GL_POST_CONVOLUTION_COLOR_TABLE"/>
             <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE"/>
         </group>
 
-        <group name="VertexBufferObjectParameter">
+        <group name="VertexBufferObjectParameter" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_BUFFER_ACCESS"/>
             <enum name="GL_BUFFER_ACCESS_FLAGS"/>
             <enum name="GL_BUFFER_IMMUTABLE_STORAGE"/>
@@ -3628,7 +3627,7 @@
             <enum name="GL_BUFFER_USAGE"/>
         </group>
 
-        <group name="RenderbufferParameterName">
+        <group name="RenderbufferParameterName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_RENDERBUFFER_WIDTH"/>
             <enum name="GL_RENDERBUFFER_WIDTH_EXT"/>
             <enum name="GL_RENDERBUFFER_WIDTH_OES"/>
@@ -3667,7 +3666,7 @@
             <enum name="GL_RENDERBUFFER_COLOR_SAMPLES_NV"/>
         </group>
 
-        <group name="VertexBufferObjectUsage">
+        <group name="VertexBufferObjectUsage" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_STREAM_DRAW"/>
             <enum name="GL_STREAM_READ"/>
             <enum name="GL_STREAM_COPY"/>
@@ -3679,7 +3678,7 @@
             <enum name="GL_DYNAMIC_COPY"/>
         </group>
 
-        <group name="FramebufferParameterName">
+        <group name="FramebufferParameterName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FRAMEBUFFER_DEFAULT_WIDTH"/>
             <enum name="GL_FRAMEBUFFER_DEFAULT_HEIGHT"/>
             <enum name="GL_FRAMEBUFFER_DEFAULT_LAYERS"/>
@@ -3687,12 +3686,12 @@
             <enum name="GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS"/>
         </group>
 
-        <group name="ProgramParameterPName">
+        <group name="ProgramParameterPName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_PROGRAM_BINARY_RETRIEVABLE_HINT"/>
             <enum name="GL_PROGRAM_SEPARABLE"/>
         </group>
 
-        <group name="BlendingFactor">
+        <group name="BlendingFactor" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ZERO"/>
             <enum name="GL_ONE"/>
             <enum name="GL_SRC_COLOR"/>
@@ -3714,16 +3713,16 @@
             <enum name="GL_ONE_MINUS_SRC1_ALPHA"/>
         </group>
 
-        <group name="BindTransformFeedbackTarget">
+        <group name="BindTransformFeedbackTarget" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_TRANSFORM_FEEDBACK"/>
         </group>
 
-        <group name="BlitFramebufferFilter">
+        <group name="BlitFramebufferFilter" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_NEAREST"/>
             <enum name="GL_LINEAR"/>
         </group>
 
-        <group name="BufferStorageTarget">
+        <group name="BufferStorageTarget" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ARRAY_BUFFER"/>
             <enum name="GL_ATOMIC_COUNTER_BUFFER"/>
             <enum name="GL_COPY_READ_BUFFER"/>
@@ -3740,29 +3739,29 @@
             <enum name="GL_UNIFORM_BUFFER"/>
         </group>
 
-        <group name="CheckFramebufferStatusTarget">
+        <group name="CheckFramebufferStatusTarget" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_DRAW_FRAMEBUFFER"/>
             <enum name="GL_READ_FRAMEBUFFER"/>
             <enum name="GL_FRAMEBUFFER"/>
         </group>
 
-        <group name="Buffer">
+        <group name="Buffer" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_COLOR"/>
             <enum name="GL_DEPTH"/>
             <enum name="GL_STENCIL"/>
         </group>
 
-        <group name="ClipControlOrigin">
+        <group name="ClipControlOrigin" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_LOWER_LEFT"/>
             <enum name="GL_UPPER_LEFT"/>
         </group>
 
-        <group name="ClipControlDepth">
+        <group name="ClipControlDepth" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_NEGATIVE_ONE_TO_ONE"/>
             <enum name="GL_ZERO_TO_ONE"/>
         </group>
 
-        <group name="CopyBufferSubDataTarget">
+        <group name="CopyBufferSubDataTarget" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ARRAY_BUFFER"/>
             <enum name="GL_ATOMIC_COUNTER_BUFFER"/>
             <enum name="GL_COPY_READ_BUFFER"/>
@@ -3779,7 +3778,7 @@
             <enum name="GL_UNIFORM_BUFFER"/>
         </group>
 
-        <group name="CopyImageSubDataTarget">
+        <group name="CopyImageSubDataTarget" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_RENDERBUFFER"/>
             <enum name="GL_TEXTURE_1D"/>
             <enum name="GL_TEXTURE_2D"/>
@@ -3793,7 +3792,7 @@
             <enum name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
         </group>
 
-        <group name="ShaderType">
+        <group name="ShaderType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_COMPUTE_SHADER"/>
             <enum name="GL_VERTEX_SHADER"/>
             <enum name="GL_TESS_CONTROL_SHADER"/>
@@ -3804,7 +3803,7 @@
             <enum name="GL_VERTEX_SHADER_ARB"/>
         </group>
 
-        <group name="DebugSource">
+        <group name="DebugSource" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_DEBUG_SOURCE_API"/>
             <enum name="GL_DEBUG_SOURCE_WINDOW_SYSTEM"/>
             <enum name="GL_DEBUG_SOURCE_SHADER_COMPILER"/>
@@ -3814,7 +3813,7 @@
             <enum name="GL_DONT_CARE"/>
         </group>
 
-        <group name="DebugType">
+        <group name="DebugType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_DEBUG_TYPE_ERROR"/>
             <enum name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR"/>
             <enum name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR"/>
@@ -3827,7 +3826,7 @@
             <enum name="GL_DONT_CARE"/>
         </group>
 
-        <group name="DebugSeverity">
+        <group name="DebugSeverity" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_DEBUG_SEVERITY_LOW"/>
             <enum name="GL_DEBUG_SEVERITY_MEDIUM"/>
             <enum name="GL_DEBUG_SEVERITY_HIGH"/>
@@ -3835,11 +3834,11 @@
             <enum name="GL_DONT_CARE"/>
         </group>
 
-        <group name="SyncCondition">
+        <group name="SyncCondition" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_SYNC_GPU_COMMANDS_COMPLETE"/>
         </group>
 
-        <group name="FogPName">
+        <group name="FogPName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FOG_MODE"/>
             <enum name="GL_FOG_DENSITY"/>
             <enum name="GL_FOG_START"/>
@@ -3848,7 +3847,7 @@
             <enum name="GL_FOG_COORD_SRC"/>
         </group>
 
-        <group name="AtomicCounterBufferPName">
+        <group name="AtomicCounterBufferPName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ATOMIC_COUNTER_BUFFER_BINDING"/>
             <enum name="GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE"/>
             <enum name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS"/>
@@ -3861,7 +3860,7 @@
             <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER"/>
         </group>
 
-        <group name="UniformBlockPName">
+        <group name="UniformBlockPName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_UNIFORM_BLOCK_BINDING"/>
             <enum name="GL_UNIFORM_BLOCK_DATA_SIZE"/>
             <enum name="GL_UNIFORM_BLOCK_NAME_LENGTH"/>
@@ -3875,7 +3874,7 @@
             <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER"/>
         </group>
 
-        <group name="UniformPName">
+        <group name="UniformPName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_UNIFORM_TYPE"/>
             <enum name="GL_UNIFORM_SIZE"/>
             <enum name="GL_UNIFORM_NAME_LENGTH"/>
@@ -3887,7 +3886,7 @@
             <enum name="GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX"/>
         </group>
 
-        <group name="SamplerParameterI">
+        <group name="SamplerParameterI" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_TEXTURE_WRAP_S"/>
             <enum name="GL_TEXTURE_WRAP_T"/>
             <enum name="GL_TEXTURE_WRAP_R"/>
@@ -3897,25 +3896,25 @@
             <enum name="GL_TEXTURE_COMPARE_FUNC"/>
         </group>
 
-        <group name="SamplerParameterF">
+        <group name="SamplerParameterF" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_TEXTURE_BORDER_COLOR"/>
             <enum name="GL_TEXTURE_MIN_LOD"/>
             <enum name="GL_TEXTURE_MAX_LOD"/>
             <enum name="GL_TEXTURE_MAX_ANISOTROPY"/>
         </group>
 
-        <group name="VertexProvokingMode">
+        <group name="VertexProvokingMode" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FIRST_VERTEX_CONVENTION"/>
             <enum name="GL_LAST_VERTEX_CONVENTION"/>
         </group>
 
-        <group name="PatchParameterName">
+        <group name="PatchParameterName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_PATCH_VERTICES"/>
             <enum name="GL_PATCH_DEFAULT_OUTER_LEVEL"/>
             <enum name="GL_PATCH_DEFAULT_INNER_LEVEL"/>
         </group>
 
-        <group name="ObjectIdentifier">
+        <group name="ObjectIdentifier" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_BUFFER"/>
             <enum name="GL_SHADER"/>
             <enum name="GL_PROGRAM"/>
@@ -3929,7 +3928,7 @@
             <enum name="GL_FRAMEBUFFER"/>
         </group>
 
-        <group name="ColorBuffer">
+        <group name="ColorBuffer" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_NONE"/>
             <enum name="GL_FRONT_LEFT"/>
             <enum name="GL_FRONT_RIGHT"/>
@@ -3974,13 +3973,13 @@
             <enum name="GL_COLOR_ATTACHMENT31"/>
         </group>
 
-        <group name="MapQuery">
+        <group name="MapQuery" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_COEFF"/>
             <enum name="GL_ORDER"/>
             <enum name="GL_DOMAIN"/>
         </group>
 
-        <group name="VertexArrayPName">
+        <group name="VertexArrayPName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
             <enum name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
             <enum name="GL_VERTEX_ATTRIB_ARRAY_STRIDE"/>
@@ -3992,7 +3991,7 @@
             <enum name="GL_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
         </group>
 
-        <group name="TransformFeedbackPName">
+        <group name="TransformFeedbackPName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING"/>
             <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_START"/>
             <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE"/>
@@ -4000,14 +3999,14 @@
             <enum name="GL_TRANSFORM_FEEDBACK_ACTIVE"/>
         </group>
 
-        <group name="SyncParameterName">
+        <group name="SyncParameterName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_OBJECT_TYPE"/>
             <enum name="GL_SYNC_STATUS"/>
             <enum name="GL_SYNC_CONDITION"/>
             <enum name="GL_SYNC_FLAGS"/>
         </group>
 
-        <group name="ShaderParameterName">
+        <group name="ShaderParameterName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_SHADER_TYPE"/>
             <enum name="GL_DELETE_STATUS"/>
             <enum name="GL_COMPILE_STATUS"/>
@@ -4015,19 +4014,19 @@
             <enum name="GL_SHADER_SOURCE_LENGTH"/>
         </group>
 
-        <group name="QueryObjectParameterName">
+        <group name="QueryObjectParameterName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_QUERY_RESULT_AVAILABLE"/>
             <enum name="GL_QUERY_RESULT"/>
             <enum name="GL_QUERY_RESULT_NO_WAIT"/>
             <enum name="GL_QUERY_TARGET"/>
         </group>
 
-        <group name="QueryParameterName">
+        <group name="QueryParameterName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_CURRENT_QUERY"/>
             <enum name="GL_QUERY_COUNTER_BITS"/>
         </group>
 
-        <group name="ProgramStagePName">
+        <group name="ProgramStagePName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ACTIVE_SUBROUTINE_UNIFORMS"/>
             <enum name="GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS"/>
             <enum name="GL_ACTIVE_SUBROUTINES"/>
@@ -4035,7 +4034,7 @@
             <enum name="GL_ACTIVE_SUBROUTINE_MAX_LENGTH"/>
         </group>
 
-        <group name="PipelineParameterName">
+        <group name="PipelineParameterName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ACTIVE_PROGRAM"/>
             <enum name="GL_VERTEX_SHADER"/>
             <enum name="GL_TESS_CONTROL_SHADER"/>
@@ -4045,7 +4044,7 @@
             <enum name="GL_INFO_LOG_LENGTH"/>
         </group>
 
-        <group name="ProgramInterface">
+        <group name="ProgramInterface" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_UNIFORM"/>
             <enum name="GL_UNIFORM_BLOCK"/>
             <enum name="GL_PROGRAM_INPUT"/>
@@ -4068,7 +4067,7 @@
             <enum name="GL_SHADER_STORAGE_BLOCK"/>
         </group>
 
-        <group name="VertexAttribEnum">
+        <group name="VertexAttribEnum" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/>
             <enum name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
             <enum name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
@@ -4080,7 +4079,7 @@
             <enum name="GL_CURRENT_VERTEX_ATTRIB"/>
         </group>
 
-        <group name="VertexAttribType">
+        <group name="VertexAttribType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_BYTE"/>
             <enum name="GL_SHORT"/>
             <enum name="GL_INT"/>
@@ -4096,7 +4095,7 @@
             <enum name="GL_UNSIGNED_INT_10F_11F_11F_REV"/>
         </group>
 
-        <group name="AttributeType">
+        <group name="AttributeType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FLOAT"/>
             <enum name="GL_FLOAT_VEC2"/>
             <enum name="GL_FLOAT_VEC2_ARB"/>
@@ -4247,7 +4246,7 @@
             <enum name="GL_UNSIGNED_INT64_VEC4_ARB"/>
         </group>
 
-        <group name="UniformType">
+        <group name="UniformType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_INT"/>
             <enum name="GL_UNSIGNED_INT"/>
             <enum name="GL_FLOAT"/>
@@ -4328,7 +4327,7 @@
             <enum name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
         </group>
 
-        <group name="InternalFormatPName">
+        <group name="InternalFormatPName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_NUM_SAMPLE_COUNTS"/>
             <enum name="GL_SAMPLES"/>
             <enum name="GL_INTERNALFORMAT_SUPPORTED"/>
@@ -4402,7 +4401,7 @@
             <enum name="GL_CLEAR_TEXTURE"/>
         </group>
 
-        <group name="FramebufferAttachmentParameterName">
+        <group name="FramebufferAttachmentParameterName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE"/>
             <enum name="GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE"/>
             <enum name="GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE"/>
@@ -4439,14 +4438,14 @@
             <enum name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES"/>
         </group>
 
-        <group name="ProgramInterfacePName">
+        <group name="ProgramInterfacePName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ACTIVE_RESOURCES"/>
             <enum name="GL_MAX_NAME_LENGTH"/>
             <enum name="GL_MAX_NUM_ACTIVE_VARIABLES"/>
             <enum name="GL_MAX_NUM_COMPATIBLE_SUBROUTINES"/>
         </group>
 
-        <group name="PrecisionType">
+        <group name="PrecisionType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_LOW_FLOAT"/>
             <enum name="GL_MEDIUM_FLOAT"/>
             <enum name="GL_HIGH_FLOAT"/>
@@ -4455,7 +4454,7 @@
             <enum name="GL_HIGH_INT"/>
         </group>
 
-        <group name="VertexAttribPointerType">
+        <group name="VertexAttribPointerType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_BYTE"/>
             <enum name="GL_UNSIGNED_BYTE"/>
             <enum name="GL_SHORT"/>
@@ -4475,14 +4474,14 @@
             <enum name="GL_UNSIGNED_INT64_NV"/>
         </group>
 
-        <group name="SubroutineParameterName">
+        <group name="SubroutineParameterName" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_NUM_COMPATIBLE_SUBROUTINES"/>
             <enum name="GL_COMPATIBLE_SUBROUTINES"/>
             <enum name="GL_UNIFORM_SIZE"/>
             <enum name="GL_UNIFORM_NAME_LENGTH"/>
         </group>
 
-        <group name="GetFramebufferParameter">
+        <group name="GetFramebufferParameter" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_FRAMEBUFFER_DEFAULT_WIDTH"/>
             <enum name="GL_FRAMEBUFFER_DEFAULT_HEIGHT"/>
             <enum name="GL_FRAMEBUFFER_DEFAULT_LAYERS"/>
@@ -4496,65 +4495,65 @@
             <enum name="GL_STEREO"/>
         </group>
 
-        <group name="PathStringFormat">
-            <enum name="GL_PATH_FORMAT_SVG_NV" />
-            <enum name="GL_PATH_FORMAT_PS_NV" />
+        <group name="PathStringFormat" comment="Deprecated, use the group attributes instead.">
+            <enum name="GL_PATH_FORMAT_SVG_NV"/>
+            <enum name="GL_PATH_FORMAT_PS_NV"/>
         </group>
 
-        <group name="PathFontTarget">
-            <enum name="GL_STANDARD_FONT_NAME_NV" />
-            <enum name="GL_SYSTEM_FONT_NAME_NV" />
-            <enum name="GL_FILE_NAME_NV" />
+        <group name="PathFontTarget" comment="Deprecated, use the group attributes instead.">
+            <enum name="GL_STANDARD_FONT_NAME_NV"/>
+            <enum name="GL_SYSTEM_FONT_NAME_NV"/>
+            <enum name="GL_FILE_NAME_NV"/>
         </group>
 
-        <group name="PathHandleMissingGlyphs">
-            <enum name="GL_SKIP_MISSING_GLYPH_NV" />
-            <enum name="GL_USE_MISSING_GLYPH_NV" />
+        <group name="PathHandleMissingGlyphs" comment="Deprecated, use the group attributes instead.">
+            <enum name="GL_SKIP_MISSING_GLYPH_NV"/>
+            <enum name="GL_USE_MISSING_GLYPH_NV"/>
         </group>
 
-        <group name="PathParameter">
-            <enum name="GL_PATH_STROKE_WIDTH_NV" />
-            <enum name="GL_PATH_INITIAL_END_CAP_NV" />
-            <enum name="GL_PATH_TERMINAL_END_CAP_NV" />
-            <enum name="GL_PATH_JOIN_STYLE_NV" />
-            <enum name="GL_PATH_MITER_LIMIT_NV" />
-            <enum name="GL_PATH_INITIAL_DASH_CAP_NV" />
-            <enum name="GL_PATH_TERMINAL_DASH_CAP_NV" />
-            <enum name="GL_PATH_DASH_OFFSET_NV" />
-            <enum name="GL_PATH_CLIENT_LENGTH_NV" />
-            <enum name="GL_PATH_DASH_OFFSET_RESET_NV" />
-            <enum name="GL_PATH_FILL_MODE_NV" />
-            <enum name="GL_PATH_FILL_MASK_NV" />
-            <enum name="GL_PATH_FILL_COVER_MODE_NV" />
-            <enum name="GL_PATH_STROKE_COVER_MODE_NV" />
-            <enum name="GL_PATH_STROKE_MASK_NV" />
+        <group name="PathParameter" comment="Deprecated, use the group attributes instead.">
+            <enum name="GL_PATH_STROKE_WIDTH_NV"/>
+            <enum name="GL_PATH_INITIAL_END_CAP_NV"/>
+            <enum name="GL_PATH_TERMINAL_END_CAP_NV"/>
+            <enum name="GL_PATH_JOIN_STYLE_NV"/>
+            <enum name="GL_PATH_MITER_LIMIT_NV"/>
+            <enum name="GL_PATH_INITIAL_DASH_CAP_NV"/>
+            <enum name="GL_PATH_TERMINAL_DASH_CAP_NV"/>
+            <enum name="GL_PATH_DASH_OFFSET_NV"/>
+            <enum name="GL_PATH_CLIENT_LENGTH_NV"/>
+            <enum name="GL_PATH_DASH_OFFSET_RESET_NV"/>
+            <enum name="GL_PATH_FILL_MODE_NV"/>
+            <enum name="GL_PATH_FILL_MASK_NV"/>
+            <enum name="GL_PATH_FILL_COVER_MODE_NV"/>
+            <enum name="GL_PATH_STROKE_COVER_MODE_NV"/>
+            <enum name="GL_PATH_STROKE_MASK_NV"/>
             <!-- <enum name="GL_PATH_STROKE_BOUND_NV" comment="Removed from extension"/> -->
-            <enum name="GL_PATH_END_CAPS_NV" />
-            <enum name="GL_PATH_DASH_CAPS_NV" />
-            <enum name="GL_PATH_COMMAND_COUNT_NV" />
-            <enum name="GL_PATH_COORD_COUNT_NV" />
-            <enum name="GL_PATH_DASH_ARRAY_COUNT_NV" />
-            <enum name="GL_PATH_COMPUTED_LENGTH_NV" />
-            <enum name="GL_PATH_OBJECT_BOUNDING_BOX_NV" />
-            <enum name="GL_PATH_FILL_BOUNDING_BOX_NV" />
-            <enum name="GL_PATH_STROKE_BOUNDING_BOX_NV" />
+            <enum name="GL_PATH_END_CAPS_NV"/>
+            <enum name="GL_PATH_DASH_CAPS_NV"/>
+            <enum name="GL_PATH_COMMAND_COUNT_NV"/>
+            <enum name="GL_PATH_COORD_COUNT_NV"/>
+            <enum name="GL_PATH_DASH_ARRAY_COUNT_NV"/>
+            <enum name="GL_PATH_COMPUTED_LENGTH_NV"/>
+            <enum name="GL_PATH_OBJECT_BOUNDING_BOX_NV"/>
+            <enum name="GL_PATH_FILL_BOUNDING_BOX_NV"/>
+            <enum name="GL_PATH_STROKE_BOUNDING_BOX_NV"/>
         </group>
 
-        <group name="PathColor">
-            <enum name="GL_PRIMARY_COLOR" />
-            <enum name="GL_PRIMARY_COLOR_NV" />
-            <enum name="GL_SECONDARY_COLOR_NV" />
+        <group name="PathColor" comment="Deprecated, use the group attributes instead.">
+            <enum name="GL_PRIMARY_COLOR"/>
+            <enum name="GL_PRIMARY_COLOR_NV"/>
+            <enum name="GL_SECONDARY_COLOR_NV"/>
         </group>
 
-        <group name="PathGenMode">
-            <enum name="GL_NONE" />
-            <enum name="GL_EYE_LINEAR" />
-            <enum name="GL_OBJECT_LINEAR" />
-            <enum name="GL_PATH_OBJECT_BOUNDING_BOX_NV" />
-            <enum name="GL_CONSTANT" />
+        <group name="PathGenMode" comment="Deprecated, use the group attributes instead.">
+            <enum name="GL_NONE"/>
+            <enum name="GL_EYE_LINEAR"/>
+            <enum name="GL_OBJECT_LINEAR"/>
+            <enum name="GL_PATH_OBJECT_BOUNDING_BOX_NV"/>
+            <enum name="GL_CONSTANT"/>
         </group>
 
-        <group name="TextureLayout">
+        <group name="TextureLayout" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_LAYOUT_GENERAL_EXT"/>
             <enum name="GL_LAYOUT_COLOR_ATTACHMENT_EXT"/>
             <enum name="GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT"/>
@@ -4566,89 +4565,89 @@
             <enum name="GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT"/>
         </group>
 
-        <group name="PathTransformType">
-            <enum name="GL_NONE" />
-            <enum name="GL_TRANSLATE_X_NV" />
-            <enum name="GL_TRANSLATE_Y_NV" />
-            <enum name="GL_TRANSLATE_2D_NV" />
-            <enum name="GL_TRANSLATE_3D_NV" />
-            <enum name="GL_AFFINE_2D_NV" />
-            <enum name="GL_AFFINE_3D_NV" />
-            <enum name="GL_TRANSPOSE_AFFINE_2D_NV" />
-            <enum name="GL_TRANSPOSE_AFFINE_3D_NV" />
+        <group name="PathTransformType" comment="Deprecated, use the group attributes instead.">
+            <enum name="GL_NONE"/>
+            <enum name="GL_TRANSLATE_X_NV"/>
+            <enum name="GL_TRANSLATE_Y_NV"/>
+            <enum name="GL_TRANSLATE_2D_NV"/>
+            <enum name="GL_TRANSLATE_3D_NV"/>
+            <enum name="GL_AFFINE_2D_NV"/>
+            <enum name="GL_AFFINE_3D_NV"/>
+            <enum name="GL_TRANSPOSE_AFFINE_2D_NV"/>
+            <enum name="GL_TRANSPOSE_AFFINE_3D_NV"/>
         </group>
 
-        <group name="PathElementType">
-            <enum name="GL_UTF8_NV" />
-            <enum name="GL_UTF16_NV" />
+        <group name="PathElementType" comment="Deprecated, use the group attributes instead.">
+            <enum name="GL_UTF8_NV"/>
+            <enum name="GL_UTF16_NV"/>
         </group>
 
-        <group name="PathCoverMode">
-            <enum name="GL_CONVEX_HULL_NV" />
-            <enum name="GL_BOUNDING_BOX_NV" />
-            <enum name="GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV" />
-            <enum name="GL_PATH_FILL_COVER_MODE_NV" />
+        <group name="PathCoverMode" comment="Deprecated, use the group attributes instead.">
+            <enum name="GL_CONVEX_HULL_NV"/>
+            <enum name="GL_BOUNDING_BOX_NV"/>
+            <enum name="GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV"/>
+            <enum name="GL_PATH_FILL_COVER_MODE_NV"/>
         </group>
 
-        <group name="PathFontStyle">
-            <enum name="GL_NONE" />
-            <enum name="GL_BOLD_BIT_NV" />
-            <enum name="GL_ITALIC_BIT_NV" />
+        <group name="PathFontStyle" comment="Deprecated, use the group attributes instead.">
+            <enum name="GL_NONE"/>
+            <enum name="GL_BOLD_BIT_NV"/>
+            <enum name="GL_ITALIC_BIT_NV"/>
         </group>
 
-        <group name="PathMetricMask">
-            <enum name="GL_GLYPH_WIDTH_BIT_NV" />
-            <enum name="GL_GLYPH_HEIGHT_BIT_NV" />
-            <enum name="GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV" />
-            <enum name="GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV" />
-            <enum name="GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV" />
-            <enum name="GL_GLYPH_VERTICAL_BEARING_X_BIT_NV" />
-            <enum name="GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV" />
-            <enum name="GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV" />
-            <enum name="GL_GLYPH_HAS_KERNING_BIT_NV" />
-            <enum name="GL_FONT_X_MIN_BOUNDS_BIT_NV" />
-            <enum name="GL_FONT_Y_MIN_BOUNDS_BIT_NV" />
-            <enum name="GL_FONT_X_MAX_BOUNDS_BIT_NV" />
-            <enum name="GL_FONT_Y_MAX_BOUNDS_BIT_NV" />
-            <enum name="GL_FONT_UNITS_PER_EM_BIT_NV" />
-            <enum name="GL_FONT_ASCENDER_BIT_NV" />
-            <enum name="GL_FONT_DESCENDER_BIT_NV" />
-            <enum name="GL_FONT_HEIGHT_BIT_NV" />
-            <enum name="GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV" />
-            <enum name="GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV" />
-            <enum name="GL_FONT_UNDERLINE_POSITION_BIT_NV" />
-            <enum name="GL_FONT_UNDERLINE_THICKNESS_BIT_NV" />
-            <enum name="GL_FONT_HAS_KERNING_BIT_NV" />
-            <enum name="GL_FONT_NUM_GLYPH_INDICES_BIT_NV" />
+        <group name="PathMetricMask" comment="Deprecated, use the group attributes instead.">
+            <enum name="GL_GLYPH_WIDTH_BIT_NV"/>
+            <enum name="GL_GLYPH_HEIGHT_BIT_NV"/>
+            <enum name="GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV"/>
+            <enum name="GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV"/>
+            <enum name="GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV"/>
+            <enum name="GL_GLYPH_VERTICAL_BEARING_X_BIT_NV"/>
+            <enum name="GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV"/>
+            <enum name="GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV"/>
+            <enum name="GL_GLYPH_HAS_KERNING_BIT_NV"/>
+            <enum name="GL_FONT_X_MIN_BOUNDS_BIT_NV"/>
+            <enum name="GL_FONT_Y_MIN_BOUNDS_BIT_NV"/>
+            <enum name="GL_FONT_X_MAX_BOUNDS_BIT_NV"/>
+            <enum name="GL_FONT_Y_MAX_BOUNDS_BIT_NV"/>
+            <enum name="GL_FONT_UNITS_PER_EM_BIT_NV"/>
+            <enum name="GL_FONT_ASCENDER_BIT_NV"/>
+            <enum name="GL_FONT_DESCENDER_BIT_NV"/>
+            <enum name="GL_FONT_HEIGHT_BIT_NV"/>
+            <enum name="GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV"/>
+            <enum name="GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV"/>
+            <enum name="GL_FONT_UNDERLINE_POSITION_BIT_NV"/>
+            <enum name="GL_FONT_UNDERLINE_THICKNESS_BIT_NV"/>
+            <enum name="GL_FONT_HAS_KERNING_BIT_NV"/>
+            <enum name="GL_FONT_NUM_GLYPH_INDICES_BIT_NV"/>
         </group>
 
-        <group name="PathListMode">
-            <enum name="GL_ACCUM_ADJACENT_PAIRS_NV" />
-            <enum name="GL_ADJACENT_PAIRS_NV" />
-            <enum name="GL_FIRST_TO_REST_NV" />
+        <group name="PathListMode" comment="Deprecated, use the group attributes instead.">
+            <enum name="GL_ACCUM_ADJACENT_PAIRS_NV"/>
+            <enum name="GL_ADJACENT_PAIRS_NV"/>
+            <enum name="GL_FIRST_TO_REST_NV"/>
         </group>
 
-        <group name="ProgramPropertyARB">
-            <enum name="GL_DELETE_STATUS" />
-            <enum name="GL_LINK_STATUS" />
-            <enum name="GL_VALIDATE_STATUS" />
-            <enum name="GL_INFO_LOG_LENGTH" />
-            <enum name="GL_ATTACHED_SHADERS" />
-            <enum name="GL_ACTIVE_ATOMIC_COUNTER_BUFFERS" />
-            <enum name="GL_ACTIVE_ATTRIBUTES" />
-            <enum name="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH" />
-            <enum name="GL_ACTIVE_UNIFORMS" />
-            <enum name="GL_ACTIVE_UNIFORM_BLOCKS" />
-            <enum name="GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH" />
-            <enum name="GL_ACTIVE_UNIFORM_MAX_LENGTH" />
-            <enum name="GL_COMPUTE_WORK_GROUP_SIZE" />
-            <enum name="GL_PROGRAM_BINARY_LENGTH" />
-            <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE" />
-            <enum name="GL_TRANSFORM_FEEDBACK_VARYINGS" />
-            <enum name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH" />
-            <enum name="GL_GEOMETRY_VERTICES_OUT" />
-            <enum name="GL_GEOMETRY_INPUT_TYPE" />
-            <enum name="GL_GEOMETRY_OUTPUT_TYPE" />
+        <group name="ProgramPropertyARB" comment="Deprecated, use the group attributes instead.">
+            <enum name="GL_DELETE_STATUS"/>
+            <enum name="GL_LINK_STATUS"/>
+            <enum name="GL_VALIDATE_STATUS"/>
+            <enum name="GL_INFO_LOG_LENGTH"/>
+            <enum name="GL_ATTACHED_SHADERS"/>
+            <enum name="GL_ACTIVE_ATOMIC_COUNTER_BUFFERS"/>
+            <enum name="GL_ACTIVE_ATTRIBUTES"/>
+            <enum name="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH"/>
+            <enum name="GL_ACTIVE_UNIFORMS"/>
+            <enum name="GL_ACTIVE_UNIFORM_BLOCKS"/>
+            <enum name="GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH"/>
+            <enum name="GL_ACTIVE_UNIFORM_MAX_LENGTH"/>
+            <enum name="GL_COMPUTE_WORK_GROUP_SIZE"/>
+            <enum name="GL_PROGRAM_BINARY_LENGTH"/>
+            <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE"/>
+            <enum name="GL_TRANSFORM_FEEDBACK_VARYINGS"/>
+            <enum name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH"/>
+            <enum name="GL_GEOMETRY_VERTICES_OUT"/>
+            <enum name="GL_GEOMETRY_INPUT_TYPE"/>
+            <enum name="GL_GEOMETRY_OUTPUT_TYPE"/>
         </group>
 
         <group name="GlslTypeToken" comment="OpenGL 4.6 Table 7.3: OpenGL Shading Language type tokens">
@@ -4765,7 +4764,7 @@
             <enum name="GL_SEPARATE_ATTRIBS"/>
         </group>
 
-        <group name="VertexAttribIType">
+        <group name="VertexAttribIType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_BYTE"/>
             <enum name="GL_UNSIGNED_BYTE"/>
             <enum name="GL_SHORT"/>
@@ -4774,11 +4773,11 @@
             <enum name="GL_UNSIGNED_INT"/>
         </group>
 
-        <group name="VertexAttribLType">
+        <group name="VertexAttribLType" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_DOUBLE"/>
         </group>
 
-        <group name="ProgramResourceProperty">
+        <group name="ProgramResourceProperty" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_ACTIVE_VARIABLES"/>
             <enum name="GL_BUFFER_BINDING"/>
             <enum name="GL_NUM_ACTIVE_VARIABLES"/>
@@ -4811,13 +4810,13 @@
             <enum name="GL_TYPE"/>
         </group>
 
-        <group name="TextureCompareMode">
+        <group name="TextureCompareMode" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_NONE"/>
             <enum name="GL_COMPARE_REF_TO_TEXTURE"/>
             <enum name="GL_COMPARE_R_TO_TEXTURE"/>
         </group>
 
-        <group name="TextureSwizzle">
+        <group name="TextureSwizzle" comment="Deprecated, use the group attributes instead.">
             <enum name="GL_RED"/>
             <enum name="GL_GREEN"/>
             <enum name="GL_BLUE"/>
@@ -4834,176 +4833,176 @@
          sometimes reused for other purposes -->
 
     <enums namespace="GL" group="AttribMask" type="bitmask">
-        <enum value="0x00000001" name="GL_CURRENT_BIT"/>
-        <enum value="0x00000002" name="GL_POINT_BIT"/>
-        <enum value="0x00000004" name="GL_LINE_BIT"/>
-        <enum value="0x00000008" name="GL_POLYGON_BIT"/>
-        <enum value="0x00000010" name="GL_POLYGON_STIPPLE_BIT"/>
-        <enum value="0x00000020" name="GL_PIXEL_MODE_BIT"/>
-        <enum value="0x00000040" name="GL_LIGHTING_BIT"/>
-        <enum value="0x00000080" name="GL_FOG_BIT"/>
-        <enum value="0x00000100" name="GL_DEPTH_BUFFER_BIT"/>
-        <enum value="0x00000200" name="GL_ACCUM_BUFFER_BIT"/>
-        <enum value="0x00000400" name="GL_STENCIL_BUFFER_BIT"/>
-        <enum value="0x00000800" name="GL_VIEWPORT_BIT"/>
-        <enum value="0x00001000" name="GL_TRANSFORM_BIT"/>
-        <enum value="0x00002000" name="GL_ENABLE_BIT"/>
-        <enum value="0x00004000" name="GL_COLOR_BUFFER_BIT"/>
-        <enum value="0x00008000" name="GL_HINT_BIT"/>
-        <enum value="0x00010000" name="GL_EVAL_BIT"/>
-        <enum value="0x00020000" name="GL_LIST_BIT"/>
-        <enum value="0x00040000" name="GL_TEXTURE_BIT"/>
-        <enum value="0x00080000" name="GL_SCISSOR_BIT"/>
-        <enum value="0x20000000" name="GL_MULTISAMPLE_BIT"/>
-        <enum value="0x20000000" name="GL_MULTISAMPLE_BIT_ARB"/>
-        <enum value="0x20000000" name="GL_MULTISAMPLE_BIT_EXT"/>
-        <enum value="0x20000000" name="GL_MULTISAMPLE_BIT_3DFX"/>
-        <enum value="0xFFFFFFFF" name="GL_ALL_ATTRIB_BITS" comment="Guaranteed to mark all attribute groups at once"/>
+        <enum value="0x00000001" name="GL_CURRENT_BIT" group="AttribMask"/>
+        <enum value="0x00000002" name="GL_POINT_BIT" group="AttribMask"/>
+        <enum value="0x00000004" name="GL_LINE_BIT" group="AttribMask"/>
+        <enum value="0x00000008" name="GL_POLYGON_BIT" group="AttribMask"/>
+        <enum value="0x00000010" name="GL_POLYGON_STIPPLE_BIT" group="AttribMask"/>
+        <enum value="0x00000020" name="GL_PIXEL_MODE_BIT" group="AttribMask"/>
+        <enum value="0x00000040" name="GL_LIGHTING_BIT" group="AttribMask"/>
+        <enum value="0x00000080" name="GL_FOG_BIT" group="AttribMask"/>
+        <enum value="0x00000100" name="GL_DEPTH_BUFFER_BIT" group="ClearBufferMask,AttribMask"/>
+        <enum value="0x00000200" name="GL_ACCUM_BUFFER_BIT" group="ClearBufferMask,AttribMask"/>
+        <enum value="0x00000400" name="GL_STENCIL_BUFFER_BIT" group="ClearBufferMask,AttribMask"/>
+        <enum value="0x00000800" name="GL_VIEWPORT_BIT" group="AttribMask"/>
+        <enum value="0x00001000" name="GL_TRANSFORM_BIT" group="AttribMask"/>
+        <enum value="0x00002000" name="GL_ENABLE_BIT" group="AttribMask"/>
+        <enum value="0x00004000" name="GL_COLOR_BUFFER_BIT" group="ClearBufferMask,AttribMask"/>
+        <enum value="0x00008000" name="GL_HINT_BIT" group="AttribMask"/>
+        <enum value="0x00010000" name="GL_EVAL_BIT" group="AttribMask"/>
+        <enum value="0x00020000" name="GL_LIST_BIT" group="AttribMask"/>
+        <enum value="0x00040000" name="GL_TEXTURE_BIT" group="AttribMask"/>
+        <enum value="0x00080000" name="GL_SCISSOR_BIT" group="AttribMask"/>
+        <enum value="0x20000000" name="GL_MULTISAMPLE_BIT" group="AttribMask"/>
+        <enum value="0x20000000" name="GL_MULTISAMPLE_BIT_ARB" group="AttribMask"/>
+        <enum value="0x20000000" name="GL_MULTISAMPLE_BIT_EXT" group="AttribMask"/>
+        <enum value="0x20000000" name="GL_MULTISAMPLE_BIT_3DFX" group="AttribMask"/>
+        <enum value="0xFFFFFFFF" name="GL_ALL_ATTRIB_BITS" comment="Guaranteed to mark all attribute groups at once" group="AttribMask"/>
     </enums>
 
     <enums namespace="GL" group="BufferStorageMask" type="bitmask" comment="GL_MAP_{COHERENT,PERSISTENT,READ,WRITE}_{BIT,BIT_EXT} also lie in this namespace">
-        <enum value="0x0100" name="GL_DYNAMIC_STORAGE_BIT"/>
-        <enum value="0x0100" name="GL_DYNAMIC_STORAGE_BIT_EXT"/>
-        <enum value="0x0200" name="GL_CLIENT_STORAGE_BIT"/>
-        <enum value="0x0200" name="GL_CLIENT_STORAGE_BIT_EXT"/>
-        <enum value="0x0400" name="GL_SPARSE_STORAGE_BIT_ARB"/>
-        <enum value="0x0800" name="GL_LGPU_SEPARATE_STORAGE_BIT_NVX"/>
-        <enum value="0x0800" name="GL_PER_GPU_STORAGE_BIT_NV"/>
+        <enum value="0x0100" name="GL_DYNAMIC_STORAGE_BIT" group="BufferStorageMask"/>
+        <enum value="0x0100" name="GL_DYNAMIC_STORAGE_BIT_EXT" group="BufferStorageMask"/>
+        <enum value="0x0200" name="GL_CLIENT_STORAGE_BIT" group="BufferStorageMask"/>
+        <enum value="0x0200" name="GL_CLIENT_STORAGE_BIT_EXT" group="BufferStorageMask"/>
+        <enum value="0x0400" name="GL_SPARSE_STORAGE_BIT_ARB" group="BufferStorageMask"/>
+        <enum value="0x0800" name="GL_LGPU_SEPARATE_STORAGE_BIT_NVX" group="BufferStorageMask"/>
+        <enum value="0x0800" name="GL_PER_GPU_STORAGE_BIT_NV" group="BufferStorageMask"/>
             <unused start="0x1000" end="0x1000" comment="Reserved for NVIDIA"/>
-        <enum value="0x2000" name="GL_EXTERNAL_STORAGE_BIT_NVX"/>
+        <enum value="0x2000" name="GL_EXTERNAL_STORAGE_BIT_NVX" group="BufferStorageMask"/>
             <!-- Also used: 0x000000ff for bits reused from MapBufferAccessMask below -->
     </enums>
 
     <enums namespace="GL" group="ClearBufferMask" type="bitmask" comment="GL_{DEPTH,ACCUM,STENCIL,COLOR}_BUFFER_BIT also lie in this namespace">
-        <enum value="0x00008000" name="GL_COVERAGE_BUFFER_BIT_NV" comment="Collides with AttribMask bit GL_HINT_BIT. OK since this token is for OpenGL ES 2, which doesn't have attribute groups."/>
+        <enum value="0x00008000" name="GL_COVERAGE_BUFFER_BIT_NV" comment="Collides with AttribMask bit GL_HINT_BIT. OK since this token is for OpenGL ES 2, which doesn't have attribute groups." group="ClearBufferMask"/>
             <!-- Also used: 0x00004700 for bits reused from AttribMask above -->
     </enums>
 
     <enums namespace="GL" group="ClientAttribMask" type="bitmask">
-        <enum value="0x00000001" name="GL_CLIENT_PIXEL_STORE_BIT"/>
-        <enum value="0x00000002" name="GL_CLIENT_VERTEX_ARRAY_BIT"/>
-        <enum value="0xFFFFFFFF" name="GL_CLIENT_ALL_ATTRIB_BITS"/>
+        <enum value="0x00000001" name="GL_CLIENT_PIXEL_STORE_BIT" group="ClientAttribMask"/>
+        <enum value="0x00000002" name="GL_CLIENT_VERTEX_ARRAY_BIT" group="ClientAttribMask"/>
+        <enum value="0xFFFFFFFF" name="GL_CLIENT_ALL_ATTRIB_BITS" group="ClientAttribMask"/>
     </enums>
 
     <enums namespace="GL" group="ContextFlagMask" type="bitmask" comment="Should be shared with WGL/GLX, but aren't since the FORWARD_COMPATIBLE and DEBUG values are swapped vs. WGL/GLX.">
-        <enum value="0x00000001" name="GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT"/>
-        <enum value="0x00000002" name="GL_CONTEXT_FLAG_DEBUG_BIT"/>
-        <enum value="0x00000002" name="GL_CONTEXT_FLAG_DEBUG_BIT_KHR"/>
-        <enum value="0x00000004" name="GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT"/>
-        <enum value="0x00000004" name="GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB"/>
-        <enum value="0x00000008" name="GL_CONTEXT_FLAG_NO_ERROR_BIT"/>
-        <enum value="0x00000008" name="GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR" alias="GL_CONTEXT_FLAG_NO_ERROR_BIT"/>
-        <enum value="0x00000010" name="GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT"/>
+        <enum value="0x00000001" name="GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT" group="ContextFlagMask"/>
+        <enum value="0x00000002" name="GL_CONTEXT_FLAG_DEBUG_BIT" group="ContextFlagMask"/>
+        <enum value="0x00000002" name="GL_CONTEXT_FLAG_DEBUG_BIT_KHR" group="ContextFlagMask"/>
+        <enum value="0x00000004" name="GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT" group="ContextFlagMask"/>
+        <enum value="0x00000004" name="GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB" group="ContextFlagMask"/>
+        <enum value="0x00000008" name="GL_CONTEXT_FLAG_NO_ERROR_BIT" group="ContextFlagMask"/>
+        <enum value="0x00000008" name="GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR" alias="GL_CONTEXT_FLAG_NO_ERROR_BIT" group="ContextFlagMask"/>
+        <enum value="0x00000010" name="GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT" group="ContextFlagMask"/>
     </enums>
 
     <enums namespace="GL" group="ContextProfileMask" type="bitmask">
-        <enum value="0x00000001" name="GL_CONTEXT_CORE_PROFILE_BIT"/>
-        <enum value="0x00000002" name="GL_CONTEXT_COMPATIBILITY_PROFILE_BIT"/>
+        <enum value="0x00000001" name="GL_CONTEXT_CORE_PROFILE_BIT" group="ContextProfileMask"/>
+        <enum value="0x00000002" name="GL_CONTEXT_COMPATIBILITY_PROFILE_BIT" group="ContextProfileMask"/>
     </enums>
 
     <enums namespace="GL" group="MapBufferAccessMask" type="bitmask">
-        <enum value="0x0001" name="GL_MAP_READ_BIT"/>
-        <enum value="0x0001" name="GL_MAP_READ_BIT_EXT"/>
-        <enum value="0x0002" name="GL_MAP_WRITE_BIT"/>
-        <enum value="0x0002" name="GL_MAP_WRITE_BIT_EXT"/>
-        <enum value="0x0004" name="GL_MAP_INVALIDATE_RANGE_BIT"/>
-        <enum value="0x0004" name="GL_MAP_INVALIDATE_RANGE_BIT_EXT"/>
-        <enum value="0x0008" name="GL_MAP_INVALIDATE_BUFFER_BIT"/>
-        <enum value="0x0008" name="GL_MAP_INVALIDATE_BUFFER_BIT_EXT"/>
-        <enum value="0x0010" name="GL_MAP_FLUSH_EXPLICIT_BIT"/>
-        <enum value="0x0010" name="GL_MAP_FLUSH_EXPLICIT_BIT_EXT"/>
-        <enum value="0x0020" name="GL_MAP_UNSYNCHRONIZED_BIT"/>
-        <enum value="0x0020" name="GL_MAP_UNSYNCHRONIZED_BIT_EXT"/>
-        <enum value="0x0040" name="GL_MAP_PERSISTENT_BIT"/>
-        <enum value="0x0040" name="GL_MAP_PERSISTENT_BIT_EXT"/>
-        <enum value="0x0080" name="GL_MAP_COHERENT_BIT"/>
-        <enum value="0x0080" name="GL_MAP_COHERENT_BIT_EXT"/>
+        <enum value="0x0001" name="GL_MAP_READ_BIT" group="MapBufferAccessMask,BufferStorageMask"/>
+        <enum value="0x0001" name="GL_MAP_READ_BIT_EXT" group="MapBufferAccessMask,BufferStorageMask"/>
+        <enum value="0x0002" name="GL_MAP_WRITE_BIT" group="MapBufferAccessMask,BufferStorageMask"/>
+        <enum value="0x0002" name="GL_MAP_WRITE_BIT_EXT" group="MapBufferAccessMask,BufferStorageMask"/>
+        <enum value="0x0004" name="GL_MAP_INVALIDATE_RANGE_BIT" group="MapBufferAccessMask"/>
+        <enum value="0x0004" name="GL_MAP_INVALIDATE_RANGE_BIT_EXT" group="MapBufferAccessMask"/>
+        <enum value="0x0008" name="GL_MAP_INVALIDATE_BUFFER_BIT" group="MapBufferAccessMask"/>
+        <enum value="0x0008" name="GL_MAP_INVALIDATE_BUFFER_BIT_EXT" group="MapBufferAccessMask"/>
+        <enum value="0x0010" name="GL_MAP_FLUSH_EXPLICIT_BIT" group="MapBufferAccessMask"/>
+        <enum value="0x0010" name="GL_MAP_FLUSH_EXPLICIT_BIT_EXT" group="MapBufferAccessMask"/>
+        <enum value="0x0020" name="GL_MAP_UNSYNCHRONIZED_BIT" group="MapBufferAccessMask"/>
+        <enum value="0x0020" name="GL_MAP_UNSYNCHRONIZED_BIT_EXT" group="MapBufferAccessMask"/>
+        <enum value="0x0040" name="GL_MAP_PERSISTENT_BIT" group="MapBufferAccessMask,BufferStorageMask"/>
+        <enum value="0x0040" name="GL_MAP_PERSISTENT_BIT_EXT" group="MapBufferAccessMask,BufferStorageMask"/>
+        <enum value="0x0080" name="GL_MAP_COHERENT_BIT" group="MapBufferAccessMask,BufferStorageMask"/>
+        <enum value="0x0080" name="GL_MAP_COHERENT_BIT_EXT" group="MapBufferAccessMask,BufferStorageMask"/>
     </enums>
 
     <enums namespace="GL" group="MemoryBarrierMask" type="bitmask">
-        <enum value="0x00000001" name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"/>
-        <enum value="0x00000001" name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT"/>
-        <enum value="0x00000002" name="GL_ELEMENT_ARRAY_BARRIER_BIT"/>
-        <enum value="0x00000002" name="GL_ELEMENT_ARRAY_BARRIER_BIT_EXT"/>
-        <enum value="0x00000004" name="GL_UNIFORM_BARRIER_BIT"/>
-        <enum value="0x00000004" name="GL_UNIFORM_BARRIER_BIT_EXT"/>
-        <enum value="0x00000008" name="GL_TEXTURE_FETCH_BARRIER_BIT"/>
-        <enum value="0x00000008" name="GL_TEXTURE_FETCH_BARRIER_BIT_EXT"/>
-        <enum value="0x00000010" name="GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV"/>
-        <enum value="0x00000020" name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"/>
-        <enum value="0x00000020" name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT"/>
-        <enum value="0x00000040" name="GL_COMMAND_BARRIER_BIT"/>
-        <enum value="0x00000040" name="GL_COMMAND_BARRIER_BIT_EXT"/>
-        <enum value="0x00000080" name="GL_PIXEL_BUFFER_BARRIER_BIT"/>
-        <enum value="0x00000080" name="GL_PIXEL_BUFFER_BARRIER_BIT_EXT"/>
-        <enum value="0x00000100" name="GL_TEXTURE_UPDATE_BARRIER_BIT"/>
-        <enum value="0x00000100" name="GL_TEXTURE_UPDATE_BARRIER_BIT_EXT"/>
-        <enum value="0x00000200" name="GL_BUFFER_UPDATE_BARRIER_BIT"/>
-        <enum value="0x00000200" name="GL_BUFFER_UPDATE_BARRIER_BIT_EXT"/>
-        <enum value="0x00000400" name="GL_FRAMEBUFFER_BARRIER_BIT"/>
-        <enum value="0x00000400" name="GL_FRAMEBUFFER_BARRIER_BIT_EXT"/>
-        <enum value="0x00000800" name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT"/>
-        <enum value="0x00000800" name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT"/>
-        <enum value="0x00001000" name="GL_ATOMIC_COUNTER_BARRIER_BIT"/>
-        <enum value="0x00001000" name="GL_ATOMIC_COUNTER_BARRIER_BIT_EXT"/>
-        <enum value="0x00002000" name="GL_SHADER_STORAGE_BARRIER_BIT"/>
-        <enum value="0x00004000" name="GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT"/>
-        <enum value="0x00004000" name="GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT"/>
-        <enum value="0x00008000" name="GL_QUERY_BUFFER_BARRIER_BIT"/>
-        <enum value="0xFFFFFFFF" name="GL_ALL_BARRIER_BITS"/>
-        <enum value="0xFFFFFFFF" name="GL_ALL_BARRIER_BITS_EXT"/>
+        <enum value="0x00000001" name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT" group="MemoryBarrierMask"/>
+        <enum value="0x00000001" name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT" group="MemoryBarrierMask"/>
+        <enum value="0x00000002" name="GL_ELEMENT_ARRAY_BARRIER_BIT" group="MemoryBarrierMask"/>
+        <enum value="0x00000002" name="GL_ELEMENT_ARRAY_BARRIER_BIT_EXT" group="MemoryBarrierMask"/>
+        <enum value="0x00000004" name="GL_UNIFORM_BARRIER_BIT" group="MemoryBarrierMask"/>
+        <enum value="0x00000004" name="GL_UNIFORM_BARRIER_BIT_EXT" group="MemoryBarrierMask"/>
+        <enum value="0x00000008" name="GL_TEXTURE_FETCH_BARRIER_BIT" group="MemoryBarrierMask"/>
+        <enum value="0x00000008" name="GL_TEXTURE_FETCH_BARRIER_BIT_EXT" group="MemoryBarrierMask"/>
+        <enum value="0x00000010" name="GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV" group="MemoryBarrierMask"/>
+        <enum value="0x00000020" name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT" group="MemoryBarrierMask"/>
+        <enum value="0x00000020" name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT" group="MemoryBarrierMask"/>
+        <enum value="0x00000040" name="GL_COMMAND_BARRIER_BIT" group="MemoryBarrierMask"/>
+        <enum value="0x00000040" name="GL_COMMAND_BARRIER_BIT_EXT" group="MemoryBarrierMask"/>
+        <enum value="0x00000080" name="GL_PIXEL_BUFFER_BARRIER_BIT" group="MemoryBarrierMask"/>
+        <enum value="0x00000080" name="GL_PIXEL_BUFFER_BARRIER_BIT_EXT" group="MemoryBarrierMask"/>
+        <enum value="0x00000100" name="GL_TEXTURE_UPDATE_BARRIER_BIT" group="MemoryBarrierMask"/>
+        <enum value="0x00000100" name="GL_TEXTURE_UPDATE_BARRIER_BIT_EXT" group="MemoryBarrierMask"/>
+        <enum value="0x00000200" name="GL_BUFFER_UPDATE_BARRIER_BIT" group="MemoryBarrierMask"/>
+        <enum value="0x00000200" name="GL_BUFFER_UPDATE_BARRIER_BIT_EXT" group="MemoryBarrierMask"/>
+        <enum value="0x00000400" name="GL_FRAMEBUFFER_BARRIER_BIT" group="MemoryBarrierMask"/>
+        <enum value="0x00000400" name="GL_FRAMEBUFFER_BARRIER_BIT_EXT" group="MemoryBarrierMask"/>
+        <enum value="0x00000800" name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT" group="MemoryBarrierMask"/>
+        <enum value="0x00000800" name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT" group="MemoryBarrierMask"/>
+        <enum value="0x00001000" name="GL_ATOMIC_COUNTER_BARRIER_BIT" group="MemoryBarrierMask"/>
+        <enum value="0x00001000" name="GL_ATOMIC_COUNTER_BARRIER_BIT_EXT" group="MemoryBarrierMask"/>
+        <enum value="0x00002000" name="GL_SHADER_STORAGE_BARRIER_BIT" group="MemoryBarrierMask"/>
+        <enum value="0x00004000" name="GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT" group="MemoryBarrierMask"/>
+        <enum value="0x00004000" name="GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT" group="MemoryBarrierMask"/>
+        <enum value="0x00008000" name="GL_QUERY_BUFFER_BARRIER_BIT" group="MemoryBarrierMask"/>
+        <enum value="0xFFFFFFFF" name="GL_ALL_BARRIER_BITS" group="MemoryBarrierMask"/>
+        <enum value="0xFFFFFFFF" name="GL_ALL_BARRIER_BITS_EXT" group="MemoryBarrierMask"/>
     </enums>
 
     <enums namespace="GL" group="OcclusionQueryEventMaskAMD" type="bitmask">
-        <enum value="0x00000001" name="GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD"/>
-        <enum value="0x00000002" name="GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD"/>
-        <enum value="0x00000004" name="GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD"/>
-        <enum value="0x00000008" name="GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD"/>
-        <enum value="0xFFFFFFFF" name="GL_QUERY_ALL_EVENT_BITS_AMD"/>
+        <enum value="0x00000001" name="GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD" group="OcclusionQueryEventMaskAMD"/>
+        <enum value="0x00000002" name="GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD" group="OcclusionQueryEventMaskAMD"/>
+        <enum value="0x00000004" name="GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD" group="OcclusionQueryEventMaskAMD"/>
+        <enum value="0x00000008" name="GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD" group="OcclusionQueryEventMaskAMD"/>
+        <enum value="0xFFFFFFFF" name="GL_QUERY_ALL_EVENT_BITS_AMD" group="OcclusionQueryEventMaskAMD"/>
     </enums>
 
     <enums namespace="GL" group="SyncObjectMask" type="bitmask">
-        <enum value="0x00000001" name="GL_SYNC_FLUSH_COMMANDS_BIT"/>
-        <enum value="0x00000001" name="GL_SYNC_FLUSH_COMMANDS_BIT_APPLE"/>
+        <enum value="0x00000001" name="GL_SYNC_FLUSH_COMMANDS_BIT" group="SyncObjectMask"/>
+        <enum value="0x00000001" name="GL_SYNC_FLUSH_COMMANDS_BIT_APPLE" group="SyncObjectMask"/>
     </enums>
 
     <enums namespace="GL" group="UseProgramStageMask" type="bitmask">
-        <enum value="0x00000001" name="GL_VERTEX_SHADER_BIT"/>
-        <enum value="0x00000001" name="GL_VERTEX_SHADER_BIT_EXT"/>
-        <enum value="0x00000002" name="GL_FRAGMENT_SHADER_BIT"/>
-        <enum value="0x00000002" name="GL_FRAGMENT_SHADER_BIT_EXT"/>
-        <enum value="0x00000004" name="GL_GEOMETRY_SHADER_BIT"/>
-        <enum value="0x00000004" name="GL_GEOMETRY_SHADER_BIT_EXT"/>
-        <enum value="0x00000004" name="GL_GEOMETRY_SHADER_BIT_OES"/>
-        <enum value="0x00000008" name="GL_TESS_CONTROL_SHADER_BIT"/>
-        <enum value="0x00000008" name="GL_TESS_CONTROL_SHADER_BIT_EXT"/>
-        <enum value="0x00000008" name="GL_TESS_CONTROL_SHADER_BIT_OES"/>
-        <enum value="0x00000010" name="GL_TESS_EVALUATION_SHADER_BIT"/>
-        <enum value="0x00000010" name="GL_TESS_EVALUATION_SHADER_BIT_EXT"/>
-        <enum value="0x00000010" name="GL_TESS_EVALUATION_SHADER_BIT_OES"/>
-        <enum value="0x00000020" name="GL_COMPUTE_SHADER_BIT"/>
-        <enum value="0x00000040" name="GL_MESH_SHADER_BIT_NV"/>
-        <enum value="0x00000080" name="GL_TASK_SHADER_BIT_NV"/>
-        <enum value="0xFFFFFFFF" name="GL_ALL_SHADER_BITS"/>
-        <enum value="0xFFFFFFFF" name="GL_ALL_SHADER_BITS_EXT"/>
+        <enum value="0x00000001" name="GL_VERTEX_SHADER_BIT" group="UseProgramStageMask"/>
+        <enum value="0x00000001" name="GL_VERTEX_SHADER_BIT_EXT" group="UseProgramStageMask"/>
+        <enum value="0x00000002" name="GL_FRAGMENT_SHADER_BIT" group="UseProgramStageMask"/>
+        <enum value="0x00000002" name="GL_FRAGMENT_SHADER_BIT_EXT" group="UseProgramStageMask"/>
+        <enum value="0x00000004" name="GL_GEOMETRY_SHADER_BIT" group="UseProgramStageMask"/>
+        <enum value="0x00000004" name="GL_GEOMETRY_SHADER_BIT_EXT" group="UseProgramStageMask"/>
+        <enum value="0x00000004" name="GL_GEOMETRY_SHADER_BIT_OES" group="UseProgramStageMask"/>
+        <enum value="0x00000008" name="GL_TESS_CONTROL_SHADER_BIT" group="UseProgramStageMask"/>
+        <enum value="0x00000008" name="GL_TESS_CONTROL_SHADER_BIT_EXT" group="UseProgramStageMask"/>
+        <enum value="0x00000008" name="GL_TESS_CONTROL_SHADER_BIT_OES" group="UseProgramStageMask"/>
+        <enum value="0x00000010" name="GL_TESS_EVALUATION_SHADER_BIT" group="UseProgramStageMask"/>
+        <enum value="0x00000010" name="GL_TESS_EVALUATION_SHADER_BIT_EXT" group="UseProgramStageMask"/>
+        <enum value="0x00000010" name="GL_TESS_EVALUATION_SHADER_BIT_OES" group="UseProgramStageMask"/>
+        <enum value="0x00000020" name="GL_COMPUTE_SHADER_BIT" group="UseProgramStageMask"/>
+        <enum value="0x00000040" name="GL_MESH_SHADER_BIT_NV" group="UseProgramStageMask"/>
+        <enum value="0x00000080" name="GL_TASK_SHADER_BIT_NV" group="UseProgramStageMask"/>
+        <enum value="0xFFFFFFFF" name="GL_ALL_SHADER_BITS" group="UseProgramStageMask"/>
+        <enum value="0xFFFFFFFF" name="GL_ALL_SHADER_BITS_EXT" group="UseProgramStageMask"/>
     </enums>
 
     <enums namespace="GL" group="SubgroupSupportedFeatures" type="bitmask">
-        <enum value="0x00000001" name="GL_SUBGROUP_FEATURE_BASIC_BIT_KHR"/>
-        <enum value="0x00000002" name="GL_SUBGROUP_FEATURE_VOTE_BIT_KHR"/>
-        <enum value="0x00000004" name="GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR"/>
-        <enum value="0x00000008" name="GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR"/>
-        <enum value="0x00000010" name="GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR"/>
-        <enum value="0x00000020" name="GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR"/>
-        <enum value="0x00000040" name="GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR"/>
-        <enum value="0x00000080" name="GL_SUBGROUP_FEATURE_QUAD_BIT_KHR"/>
-        <enum value="0x00000100" name="GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV"/>
+        <enum value="0x00000001" name="GL_SUBGROUP_FEATURE_BASIC_BIT_KHR" group="SubgroupSupportedFeatures"/>
+        <enum value="0x00000002" name="GL_SUBGROUP_FEATURE_VOTE_BIT_KHR" group="SubgroupSupportedFeatures"/>
+        <enum value="0x00000004" name="GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR" group="SubgroupSupportedFeatures"/>
+        <enum value="0x00000008" name="GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR" group="SubgroupSupportedFeatures"/>
+        <enum value="0x00000010" name="GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR" group="SubgroupSupportedFeatures"/>
+        <enum value="0x00000020" name="GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR" group="SubgroupSupportedFeatures"/>
+        <enum value="0x00000040" name="GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR" group="SubgroupSupportedFeatures"/>
+        <enum value="0x00000080" name="GL_SUBGROUP_FEATURE_QUAD_BIT_KHR" group="SubgroupSupportedFeatures"/>
+        <enum value="0x00000100" name="GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV" group="SubgroupSupportedFeatures"/>
     </enums>
 
     <!-- Bitmasks defined by vendor extensions -->
 
     <enums namespace="GL" group="TextureStorageMaskAMD" type="bitmask">
-        <enum value="0x00000001" name="GL_TEXTURE_STORAGE_SPARSE_BIT_AMD"/>
+        <enum value="0x00000001" name="GL_TEXTURE_STORAGE_SPARSE_BIT_AMD" group="TextureStorageMaskAMD"/>
     </enums>
 
     <enums namespace="GL" group="FragmentShaderDestMaskATI" type="bitmask">
@@ -5040,31 +5039,31 @@
     </enums>
 
     <enums namespace="GL" group="PathRenderingMaskNV" type="bitmask">
-        <enum value="0x01" name="GL_BOLD_BIT_NV"/>
-        <enum value="0x02" name="GL_ITALIC_BIT_NV"/>
-        <enum value="0x01" name="GL_GLYPH_WIDTH_BIT_NV"/>
-        <enum value="0x02" name="GL_GLYPH_HEIGHT_BIT_NV"/>
-        <enum value="0x04" name="GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV"/>
-        <enum value="0x08" name="GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV"/>
-        <enum value="0x10" name="GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV"/>
-        <enum value="0x20" name="GL_GLYPH_VERTICAL_BEARING_X_BIT_NV"/>
-        <enum value="0x40" name="GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV"/>
-        <enum value="0x80" name="GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV"/>
-        <enum value="0x100" name="GL_GLYPH_HAS_KERNING_BIT_NV"/>
-        <enum value="0x00010000" name="GL_FONT_X_MIN_BOUNDS_BIT_NV"/>
-        <enum value="0x00020000" name="GL_FONT_Y_MIN_BOUNDS_BIT_NV"/>
-        <enum value="0x00040000" name="GL_FONT_X_MAX_BOUNDS_BIT_NV"/>
-        <enum value="0x00080000" name="GL_FONT_Y_MAX_BOUNDS_BIT_NV"/>
-        <enum value="0x00100000" name="GL_FONT_UNITS_PER_EM_BIT_NV"/>
-        <enum value="0x00200000" name="GL_FONT_ASCENDER_BIT_NV"/>
-        <enum value="0x00400000" name="GL_FONT_DESCENDER_BIT_NV"/>
-        <enum value="0x00800000" name="GL_FONT_HEIGHT_BIT_NV"/>
-        <enum value="0x01000000" name="GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV"/>
-        <enum value="0x02000000" name="GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV"/>
-        <enum value="0x04000000" name="GL_FONT_UNDERLINE_POSITION_BIT_NV"/>
-        <enum value="0x08000000" name="GL_FONT_UNDERLINE_THICKNESS_BIT_NV"/>
-        <enum value="0x10000000" name="GL_FONT_HAS_KERNING_BIT_NV"/>
-        <enum value="0x20000000" name="GL_FONT_NUM_GLYPH_INDICES_BIT_NV"/>
+        <enum value="0x01" name="GL_BOLD_BIT_NV" group="PathFontStyle"/>
+        <enum value="0x02" name="GL_ITALIC_BIT_NV" group="PathFontStyle"/>
+        <enum value="0x01" name="GL_GLYPH_WIDTH_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x02" name="GL_GLYPH_HEIGHT_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x04" name="GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x08" name="GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x10" name="GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x20" name="GL_GLYPH_VERTICAL_BEARING_X_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x40" name="GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x80" name="GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x100" name="GL_GLYPH_HAS_KERNING_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x00010000" name="GL_FONT_X_MIN_BOUNDS_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x00020000" name="GL_FONT_Y_MIN_BOUNDS_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x00040000" name="GL_FONT_X_MAX_BOUNDS_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x00080000" name="GL_FONT_Y_MAX_BOUNDS_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x00100000" name="GL_FONT_UNITS_PER_EM_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x00200000" name="GL_FONT_ASCENDER_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x00400000" name="GL_FONT_DESCENDER_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x00800000" name="GL_FONT_HEIGHT_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x01000000" name="GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x02000000" name="GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x04000000" name="GL_FONT_UNDERLINE_POSITION_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x08000000" name="GL_FONT_UNDERLINE_THICKNESS_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x10000000" name="GL_FONT_HAS_KERNING_BIT_NV" group="PathMetricMask"/>
+        <enum value="0x20000000" name="GL_FONT_NUM_GLYPH_INDICES_BIT_NV" group="PathMetricMask"/>
     </enums>
 
     <enums namespace="GL" group="PerformanceQueryCapsMaskINTEL" type="bitmask">
@@ -5094,38 +5093,38 @@
     </enums>
 
     <enums namespace="GL" group="BufferBitQCOM" type="bitmask">
-        <enum value="0x00000001" name="GL_COLOR_BUFFER_BIT0_QCOM"/>
-        <enum value="0x00000002" name="GL_COLOR_BUFFER_BIT1_QCOM"/>
-        <enum value="0x00000004" name="GL_COLOR_BUFFER_BIT2_QCOM"/>
-        <enum value="0x00000008" name="GL_COLOR_BUFFER_BIT3_QCOM"/>
-        <enum value="0x00000010" name="GL_COLOR_BUFFER_BIT4_QCOM"/>
-        <enum value="0x00000020" name="GL_COLOR_BUFFER_BIT5_QCOM"/>
-        <enum value="0x00000040" name="GL_COLOR_BUFFER_BIT6_QCOM"/>
-        <enum value="0x00000080" name="GL_COLOR_BUFFER_BIT7_QCOM"/>
-        <enum value="0x00000100" name="GL_DEPTH_BUFFER_BIT0_QCOM"/>
-        <enum value="0x00000200" name="GL_DEPTH_BUFFER_BIT1_QCOM"/>
-        <enum value="0x00000400" name="GL_DEPTH_BUFFER_BIT2_QCOM"/>
-        <enum value="0x00000800" name="GL_DEPTH_BUFFER_BIT3_QCOM"/>
-        <enum value="0x00001000" name="GL_DEPTH_BUFFER_BIT4_QCOM"/>
-        <enum value="0x00002000" name="GL_DEPTH_BUFFER_BIT5_QCOM"/>
-        <enum value="0x00004000" name="GL_DEPTH_BUFFER_BIT6_QCOM"/>
-        <enum value="0x00008000" name="GL_DEPTH_BUFFER_BIT7_QCOM"/>
-        <enum value="0x00010000" name="GL_STENCIL_BUFFER_BIT0_QCOM"/>
-        <enum value="0x00020000" name="GL_STENCIL_BUFFER_BIT1_QCOM"/>
-        <enum value="0x00040000" name="GL_STENCIL_BUFFER_BIT2_QCOM"/>
-        <enum value="0x00080000" name="GL_STENCIL_BUFFER_BIT3_QCOM"/>
-        <enum value="0x00100000" name="GL_STENCIL_BUFFER_BIT4_QCOM"/>
-        <enum value="0x00200000" name="GL_STENCIL_BUFFER_BIT5_QCOM"/>
-        <enum value="0x00400000" name="GL_STENCIL_BUFFER_BIT6_QCOM"/>
-        <enum value="0x00800000" name="GL_STENCIL_BUFFER_BIT7_QCOM"/>
-        <enum value="0x01000000" name="GL_MULTISAMPLE_BUFFER_BIT0_QCOM"/>
-        <enum value="0x02000000" name="GL_MULTISAMPLE_BUFFER_BIT1_QCOM"/>
-        <enum value="0x04000000" name="GL_MULTISAMPLE_BUFFER_BIT2_QCOM"/>
-        <enum value="0x08000000" name="GL_MULTISAMPLE_BUFFER_BIT3_QCOM"/>
-        <enum value="0x10000000" name="GL_MULTISAMPLE_BUFFER_BIT4_QCOM"/>
-        <enum value="0x20000000" name="GL_MULTISAMPLE_BUFFER_BIT5_QCOM"/>
-        <enum value="0x40000000" name="GL_MULTISAMPLE_BUFFER_BIT6_QCOM"/>
-        <enum value="0x80000000" name="GL_MULTISAMPLE_BUFFER_BIT7_QCOM"/>
+        <enum value="0x00000001" name="GL_COLOR_BUFFER_BIT0_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00000002" name="GL_COLOR_BUFFER_BIT1_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00000004" name="GL_COLOR_BUFFER_BIT2_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00000008" name="GL_COLOR_BUFFER_BIT3_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00000010" name="GL_COLOR_BUFFER_BIT4_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00000020" name="GL_COLOR_BUFFER_BIT5_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00000040" name="GL_COLOR_BUFFER_BIT6_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00000080" name="GL_COLOR_BUFFER_BIT7_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00000100" name="GL_DEPTH_BUFFER_BIT0_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00000200" name="GL_DEPTH_BUFFER_BIT1_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00000400" name="GL_DEPTH_BUFFER_BIT2_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00000800" name="GL_DEPTH_BUFFER_BIT3_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00001000" name="GL_DEPTH_BUFFER_BIT4_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00002000" name="GL_DEPTH_BUFFER_BIT5_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00004000" name="GL_DEPTH_BUFFER_BIT6_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00008000" name="GL_DEPTH_BUFFER_BIT7_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00010000" name="GL_STENCIL_BUFFER_BIT0_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00020000" name="GL_STENCIL_BUFFER_BIT1_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00040000" name="GL_STENCIL_BUFFER_BIT2_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00080000" name="GL_STENCIL_BUFFER_BIT3_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00100000" name="GL_STENCIL_BUFFER_BIT4_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00200000" name="GL_STENCIL_BUFFER_BIT5_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00400000" name="GL_STENCIL_BUFFER_BIT6_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x00800000" name="GL_STENCIL_BUFFER_BIT7_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x01000000" name="GL_MULTISAMPLE_BUFFER_BIT0_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x02000000" name="GL_MULTISAMPLE_BUFFER_BIT1_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x04000000" name="GL_MULTISAMPLE_BUFFER_BIT2_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x08000000" name="GL_MULTISAMPLE_BUFFER_BIT3_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x10000000" name="GL_MULTISAMPLE_BUFFER_BIT4_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x20000000" name="GL_MULTISAMPLE_BUFFER_BIT5_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x40000000" name="GL_MULTISAMPLE_BUFFER_BIT6_QCOM" group="BufferBitQCOM"/>
+        <enum value="0x80000000" name="GL_MULTISAMPLE_BUFFER_BIT7_QCOM" group="BufferBitQCOM"/>
     </enums>
 
     <enums namespace="GL" group="FoveationConfigBitQCOM" type="bitmask">
@@ -5166,60 +5165,60 @@
     </enums>
 
     <enums namespace="GL" group="MapTextureFormatINTEL" vendor="INTEL" comment="Texture memory layouts for INTEL_map_texture">
-        <enum value="0" name="GL_LAYOUT_DEFAULT_INTEL"/>
-        <enum value="1" name="GL_LAYOUT_LINEAR_INTEL"/>
-        <enum value="2" name="GL_LAYOUT_LINEAR_CPU_CACHED_INTEL"/>
+        <enum value="0" name="GL_LAYOUT_DEFAULT_INTEL" group="MapTextureFormatINTEL"/>
+        <enum value="1" name="GL_LAYOUT_LINEAR_INTEL" group="MapTextureFormatINTEL"/>
+        <enum value="2" name="GL_LAYOUT_LINEAR_CPU_CACHED_INTEL" group="MapTextureFormatINTEL"/>
     </enums>
 
     <enums namespace="GL" group="PathRenderingTokenNV" vendor="NV">
-        <enum value="0x00" name="GL_CLOSE_PATH_NV"/>
-        <enum value="0x02" name="GL_MOVE_TO_NV"/>
-        <enum value="0x03" name="GL_RELATIVE_MOVE_TO_NV"/>
-        <enum value="0x04" name="GL_LINE_TO_NV"/>
-        <enum value="0x05" name="GL_RELATIVE_LINE_TO_NV"/>
-        <enum value="0x06" name="GL_HORIZONTAL_LINE_TO_NV"/>
-        <enum value="0x07" name="GL_RELATIVE_HORIZONTAL_LINE_TO_NV"/>
-        <enum value="0x08" name="GL_VERTICAL_LINE_TO_NV"/>
-        <enum value="0x09" name="GL_RELATIVE_VERTICAL_LINE_TO_NV"/>
-        <enum value="0x0A" name="GL_QUADRATIC_CURVE_TO_NV"/>
-        <enum value="0x0B" name="GL_RELATIVE_QUADRATIC_CURVE_TO_NV"/>
-        <enum value="0x0C" name="GL_CUBIC_CURVE_TO_NV"/>
-        <enum value="0x0D" name="GL_RELATIVE_CUBIC_CURVE_TO_NV"/>
-        <enum value="0x0E" name="GL_SMOOTH_QUADRATIC_CURVE_TO_NV"/>
-        <enum value="0x0F" name="GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV"/>
-        <enum value="0x10" name="GL_SMOOTH_CUBIC_CURVE_TO_NV"/>
-        <enum value="0x11" name="GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV"/>
-        <enum value="0x12" name="GL_SMALL_CCW_ARC_TO_NV"/>
-        <enum value="0x13" name="GL_RELATIVE_SMALL_CCW_ARC_TO_NV"/>
-        <enum value="0x14" name="GL_SMALL_CW_ARC_TO_NV"/>
-        <enum value="0x15" name="GL_RELATIVE_SMALL_CW_ARC_TO_NV"/>
-        <enum value="0x16" name="GL_LARGE_CCW_ARC_TO_NV"/>
-        <enum value="0x17" name="GL_RELATIVE_LARGE_CCW_ARC_TO_NV"/>
-        <enum value="0x18" name="GL_LARGE_CW_ARC_TO_NV"/>
-        <enum value="0x19" name="GL_RELATIVE_LARGE_CW_ARC_TO_NV"/>
-        <enum value="0x1A" name="GL_CONIC_CURVE_TO_NV"/>
-        <enum value="0x1B" name="GL_RELATIVE_CONIC_CURVE_TO_NV"/>
+        <enum value="0x00" name="GL_CLOSE_PATH_NV" group="PathCoordType"/>
+        <enum value="0x02" name="GL_MOVE_TO_NV" group="PathCoordType"/>
+        <enum value="0x03" name="GL_RELATIVE_MOVE_TO_NV" group="PathCoordType"/>
+        <enum value="0x04" name="GL_LINE_TO_NV" group="PathCoordType"/>
+        <enum value="0x05" name="GL_RELATIVE_LINE_TO_NV" group="PathCoordType"/>
+        <enum value="0x06" name="GL_HORIZONTAL_LINE_TO_NV" group="PathCoordType"/>
+        <enum value="0x07" name="GL_RELATIVE_HORIZONTAL_LINE_TO_NV" group="PathCoordType"/>
+        <enum value="0x08" name="GL_VERTICAL_LINE_TO_NV" group="PathCoordType"/>
+        <enum value="0x09" name="GL_RELATIVE_VERTICAL_LINE_TO_NV" group="PathCoordType"/>
+        <enum value="0x0A" name="GL_QUADRATIC_CURVE_TO_NV" group="PathCoordType"/>
+        <enum value="0x0B" name="GL_RELATIVE_QUADRATIC_CURVE_TO_NV" group="PathCoordType"/>
+        <enum value="0x0C" name="GL_CUBIC_CURVE_TO_NV" group="PathCoordType"/>
+        <enum value="0x0D" name="GL_RELATIVE_CUBIC_CURVE_TO_NV" group="PathCoordType"/>
+        <enum value="0x0E" name="GL_SMOOTH_QUADRATIC_CURVE_TO_NV" group="PathCoordType"/>
+        <enum value="0x0F" name="GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV" group="PathCoordType"/>
+        <enum value="0x10" name="GL_SMOOTH_CUBIC_CURVE_TO_NV" group="PathCoordType"/>
+        <enum value="0x11" name="GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV" group="PathCoordType"/>
+        <enum value="0x12" name="GL_SMALL_CCW_ARC_TO_NV" group="PathCoordType"/>
+        <enum value="0x13" name="GL_RELATIVE_SMALL_CCW_ARC_TO_NV" group="PathCoordType"/>
+        <enum value="0x14" name="GL_SMALL_CW_ARC_TO_NV" group="PathCoordType"/>
+        <enum value="0x15" name="GL_RELATIVE_SMALL_CW_ARC_TO_NV" group="PathCoordType"/>
+        <enum value="0x16" name="GL_LARGE_CCW_ARC_TO_NV" group="PathCoordType"/>
+        <enum value="0x17" name="GL_RELATIVE_LARGE_CCW_ARC_TO_NV" group="PathCoordType"/>
+        <enum value="0x18" name="GL_LARGE_CW_ARC_TO_NV" group="PathCoordType"/>
+        <enum value="0x19" name="GL_RELATIVE_LARGE_CW_ARC_TO_NV" group="PathCoordType"/>
+        <enum value="0x1A" name="GL_CONIC_CURVE_TO_NV" group="PathCoordType"/>
+        <enum value="0x1B" name="GL_RELATIVE_CONIC_CURVE_TO_NV" group="PathCoordType"/>
             <unused start="0x1C" end="0xBF" comment="Unused for PathRenderingTokenNV"/>
         <enum value="0xC0" name="GL_SHARED_EDGE_NV"/>
             <unused start="0xC1" end="0xE7" comment="Unused for PathRenderingTokenNV"/>
-        <enum value="0xE8" name="GL_ROUNDED_RECT_NV"/>
-        <enum value="0xE9" name="GL_RELATIVE_ROUNDED_RECT_NV"/>
-        <enum value="0xEA" name="GL_ROUNDED_RECT2_NV"/>
-        <enum value="0xEB" name="GL_RELATIVE_ROUNDED_RECT2_NV"/>
-        <enum value="0xEC" name="GL_ROUNDED_RECT4_NV"/>
-        <enum value="0xED" name="GL_RELATIVE_ROUNDED_RECT4_NV"/>
-        <enum value="0xEE" name="GL_ROUNDED_RECT8_NV"/>
-        <enum value="0xEF" name="GL_RELATIVE_ROUNDED_RECT8_NV"/>
-        <enum value="0xF0" name="GL_RESTART_PATH_NV"/>
-        <enum value="0xF2" name="GL_DUP_FIRST_CUBIC_CURVE_TO_NV"/>
-        <enum value="0xF4" name="GL_DUP_LAST_CUBIC_CURVE_TO_NV"/>
-        <enum value="0xF6" name="GL_RECT_NV"/>
-        <enum value="0xF7" name="GL_RELATIVE_RECT_NV"/>
-        <enum value="0xF8" name="GL_CIRCULAR_CCW_ARC_TO_NV"/>
-        <enum value="0xFA" name="GL_CIRCULAR_CW_ARC_TO_NV"/>
-        <enum value="0xFC" name="GL_CIRCULAR_TANGENT_ARC_TO_NV"/>
-        <enum value="0xFE" name="GL_ARC_TO_NV"/>
-        <enum value="0xFF" name="GL_RELATIVE_ARC_TO_NV"/>
+        <enum value="0xE8" name="GL_ROUNDED_RECT_NV" group="PathCoordType"/>
+        <enum value="0xE9" name="GL_RELATIVE_ROUNDED_RECT_NV" group="PathCoordType"/>
+        <enum value="0xEA" name="GL_ROUNDED_RECT2_NV" group="PathCoordType"/>
+        <enum value="0xEB" name="GL_RELATIVE_ROUNDED_RECT2_NV" group="PathCoordType"/>
+        <enum value="0xEC" name="GL_ROUNDED_RECT4_NV" group="PathCoordType"/>
+        <enum value="0xED" name="GL_RELATIVE_ROUNDED_RECT4_NV" group="PathCoordType"/>
+        <enum value="0xEE" name="GL_ROUNDED_RECT8_NV" group="PathCoordType"/>
+        <enum value="0xEF" name="GL_RELATIVE_ROUNDED_RECT8_NV" group="PathCoordType"/>
+        <enum value="0xF0" name="GL_RESTART_PATH_NV" group="PathCoordType"/>
+        <enum value="0xF2" name="GL_DUP_FIRST_CUBIC_CURVE_TO_NV" group="PathCoordType"/>
+        <enum value="0xF4" name="GL_DUP_LAST_CUBIC_CURVE_TO_NV" group="PathCoordType"/>
+        <enum value="0xF6" name="GL_RECT_NV" group="PathCoordType"/>
+        <enum value="0xF7" name="GL_RELATIVE_RECT_NV" group="PathCoordType"/>
+        <enum value="0xF8" name="GL_CIRCULAR_CCW_ARC_TO_NV" group="PathCoordType"/>
+        <enum value="0xFA" name="GL_CIRCULAR_CW_ARC_TO_NV" group="PathCoordType"/>
+        <enum value="0xFC" name="GL_CIRCULAR_TANGENT_ARC_TO_NV" group="PathCoordType"/>
+        <enum value="0xFE" name="GL_ARC_TO_NV" group="PathCoordType"/>
+        <enum value="0xFF" name="GL_RELATIVE_ARC_TO_NV" group="PathCoordType"/>
     </enums>
 
     <enums namespace="GL" group="TransformFeedbackTokenNV" vendor="NV" comment="For NV_transform_feedback. No clue why small negative values are used">
@@ -5245,13 +5244,13 @@
          extensions and API versions). -->
 
     <enums namespace="GL" group="SpecialNumbers" vendor="ARB" comment="Tokens whose numeric value is intrinsically meaningful">
-        <enum value="0" name="GL_FALSE"/>
-        <enum value="0" name="GL_NO_ERROR"/>
-        <enum value="0" name="GL_ZERO"/>
-        <enum value="0" name="GL_NONE"/>
-        <enum value="0" name="GL_NONE_OES"/>
-        <enum value="1" name="GL_TRUE"/>
-        <enum value="1" name="GL_ONE"/>
+        <enum value="0" name="GL_FALSE" group="Boolean,VertexShaderWriteMaskEXT,ClampColorModeARB"/>
+        <enum value="0" name="GL_NO_ERROR" group="GraphicsResetStatus,ErrorCode"/>
+        <enum value="0" name="GL_ZERO" group="TextureSwizzle,StencilOp,BlendingFactor"/>
+        <enum value="0" name="GL_NONE" group="TextureCompareMode,PathColorFormat,CombinerBiasNV,CombinerScaleNV,DrawBufferMode,PixelTexGenMode,ReadBufferMode,ColorBuffer,PathGenMode,PathTransformType,PathFontStyle"/>
+        <enum value="0" name="GL_NONE_OES" group="ReadBufferMode,DrawBufferMode"/>
+        <enum value="1" name="GL_TRUE" group="Boolean,VertexShaderWriteMaskEXT,ClampColorModeARB"/>
+        <enum value="1" name="GL_ONE" group="TextureSwizzle,BlendingFactor"/>
         <enum value="0xFFFFFFFF" name="GL_INVALID_INDEX" type="u" comment="Tagged as uint"/>
         <enum value="0xFFFFFFFF" name="GL_ALL_PIXELS_AMD"/>
         <enum value="0xFFFFFFFFFFFFFFFF" name="GL_TIMEOUT_IGNORED" type="ull" comment="Tagged as uint64"/>
@@ -5264,635 +5263,635 @@
     </enums>
 
     <enums namespace="GL" start="0x0000" end="0x7FFF" vendor="ARB" comment="Mostly OpenGL 1.0/1.1 enum assignments. Unused ranges should generally remain unused.">
-        <enum value="0x0000" name="GL_POINTS"/>
-        <enum value="0x0001" name="GL_LINES"/>
-        <enum value="0x0002" name="GL_LINE_LOOP"/>
-        <enum value="0x0003" name="GL_LINE_STRIP"/>
-        <enum value="0x0004" name="GL_TRIANGLES"/>
-        <enum value="0x0005" name="GL_TRIANGLE_STRIP"/>
-        <enum value="0x0006" name="GL_TRIANGLE_FAN"/>
-        <enum value="0x0007" name="GL_QUADS"/>
-        <enum value="0x0007" name="GL_QUADS_EXT"/>
+        <enum value="0x0000" name="GL_POINTS" group="PrimitiveType"/>
+        <enum value="0x0001" name="GL_LINES" group="PrimitiveType"/>
+        <enum value="0x0002" name="GL_LINE_LOOP" group="PrimitiveType"/>
+        <enum value="0x0003" name="GL_LINE_STRIP" group="PrimitiveType"/>
+        <enum value="0x0004" name="GL_TRIANGLES" group="PrimitiveType"/>
+        <enum value="0x0005" name="GL_TRIANGLE_STRIP" group="PrimitiveType"/>
+        <enum value="0x0006" name="GL_TRIANGLE_FAN" group="PrimitiveType"/>
+        <enum value="0x0007" name="GL_QUADS" group="PrimitiveType"/>
+        <enum value="0x0007" name="GL_QUADS_EXT" group="PrimitiveType"/>
         <enum value="0x0007" name="GL_QUADS_OES"/>
-        <enum value="0x0008" name="GL_QUAD_STRIP"/>
-        <enum value="0x0009" name="GL_POLYGON"/>
-        <enum value="0x000A" name="GL_LINES_ADJACENCY"/>
-        <enum value="0x000A" name="GL_LINES_ADJACENCY_ARB"/>
-        <enum value="0x000A" name="GL_LINES_ADJACENCY_EXT"/>
+        <enum value="0x0008" name="GL_QUAD_STRIP" group="PrimitiveType"/>
+        <enum value="0x0009" name="GL_POLYGON" group="PrimitiveType"/>
+        <enum value="0x000A" name="GL_LINES_ADJACENCY" group="PrimitiveType"/>
+        <enum value="0x000A" name="GL_LINES_ADJACENCY_ARB" group="PrimitiveType"/>
+        <enum value="0x000A" name="GL_LINES_ADJACENCY_EXT" group="PrimitiveType"/>
         <enum value="0x000A" name="GL_LINES_ADJACENCY_OES"/>
-        <enum value="0x000B" name="GL_LINE_STRIP_ADJACENCY"/>
-        <enum value="0x000B" name="GL_LINE_STRIP_ADJACENCY_ARB"/>
-        <enum value="0x000B" name="GL_LINE_STRIP_ADJACENCY_EXT"/>
+        <enum value="0x000B" name="GL_LINE_STRIP_ADJACENCY" group="PrimitiveType"/>
+        <enum value="0x000B" name="GL_LINE_STRIP_ADJACENCY_ARB" group="PrimitiveType"/>
+        <enum value="0x000B" name="GL_LINE_STRIP_ADJACENCY_EXT" group="PrimitiveType"/>
         <enum value="0x000B" name="GL_LINE_STRIP_ADJACENCY_OES"/>
-        <enum value="0x000C" name="GL_TRIANGLES_ADJACENCY"/>
-        <enum value="0x000C" name="GL_TRIANGLES_ADJACENCY_ARB"/>
-        <enum value="0x000C" name="GL_TRIANGLES_ADJACENCY_EXT"/>
+        <enum value="0x000C" name="GL_TRIANGLES_ADJACENCY" group="PrimitiveType"/>
+        <enum value="0x000C" name="GL_TRIANGLES_ADJACENCY_ARB" group="PrimitiveType"/>
+        <enum value="0x000C" name="GL_TRIANGLES_ADJACENCY_EXT" group="PrimitiveType"/>
         <enum value="0x000C" name="GL_TRIANGLES_ADJACENCY_OES"/>
-        <enum value="0x000D" name="GL_TRIANGLE_STRIP_ADJACENCY"/>
-        <enum value="0x000D" name="GL_TRIANGLE_STRIP_ADJACENCY_ARB"/>
-        <enum value="0x000D" name="GL_TRIANGLE_STRIP_ADJACENCY_EXT"/>
+        <enum value="0x000D" name="GL_TRIANGLE_STRIP_ADJACENCY" group="PrimitiveType"/>
+        <enum value="0x000D" name="GL_TRIANGLE_STRIP_ADJACENCY_ARB" group="PrimitiveType"/>
+        <enum value="0x000D" name="GL_TRIANGLE_STRIP_ADJACENCY_EXT" group="PrimitiveType"/>
         <enum value="0x000D" name="GL_TRIANGLE_STRIP_ADJACENCY_OES"/>
-        <enum value="0x000E" name="GL_PATCHES"/>
-        <enum value="0x000E" name="GL_PATCHES_EXT"/>
+        <enum value="0x000E" name="GL_PATCHES" group="PrimitiveType"/>
+        <enum value="0x000E" name="GL_PATCHES_EXT" group="PrimitiveType"/>
         <enum value="0x000E" name="GL_PATCHES_OES"/>
             <unused start="0x000F" end="0x00FF" comment="Unused for PrimitiveType"/>
-        <enum value="0x0100" name="GL_ACCUM"/>
-        <enum value="0x0101" name="GL_LOAD"/>
-        <enum value="0x0102" name="GL_RETURN"/>
-        <enum value="0x0103" name="GL_MULT"/>
-        <enum value="0x0104" name="GL_ADD"/>
+        <enum value="0x0100" name="GL_ACCUM" group="AccumOp"/>
+        <enum value="0x0101" name="GL_LOAD" group="AccumOp"/>
+        <enum value="0x0102" name="GL_RETURN" group="AccumOp"/>
+        <enum value="0x0103" name="GL_MULT" group="AccumOp"/>
+        <enum value="0x0104" name="GL_ADD" group="TextureEnvMode,AccumOp,LightEnvModeSGIX"/>
             <unused start="0x0105" end="0x01FF" comment="Unused for AccumOp"/>
-        <enum value="0x0200" name="GL_NEVER"/>
-        <enum value="0x0201" name="GL_LESS"/>
-        <enum value="0x0202" name="GL_EQUAL"/>
-        <enum value="0x0203" name="GL_LEQUAL"/>
-        <enum value="0x0204" name="GL_GREATER"/>
-        <enum value="0x0205" name="GL_NOTEQUAL"/>
-        <enum value="0x0206" name="GL_GEQUAL"/>
-        <enum value="0x0207" name="GL_ALWAYS"/>
+        <enum value="0x0200" name="GL_NEVER" group="StencilFunction,IndexFunctionEXT,AlphaFunction,DepthFunction"/>
+        <enum value="0x0201" name="GL_LESS" group="StencilFunction,IndexFunctionEXT,AlphaFunction,DepthFunction"/>
+        <enum value="0x0202" name="GL_EQUAL" group="StencilFunction,IndexFunctionEXT,AlphaFunction,DepthFunction"/>
+        <enum value="0x0203" name="GL_LEQUAL" group="StencilFunction,IndexFunctionEXT,AlphaFunction,DepthFunction"/>
+        <enum value="0x0204" name="GL_GREATER" group="StencilFunction,IndexFunctionEXT,AlphaFunction,DepthFunction"/>
+        <enum value="0x0205" name="GL_NOTEQUAL" group="StencilFunction,IndexFunctionEXT,AlphaFunction,DepthFunction"/>
+        <enum value="0x0206" name="GL_GEQUAL" group="StencilFunction,IndexFunctionEXT,AlphaFunction,DepthFunction"/>
+        <enum value="0x0207" name="GL_ALWAYS" group="StencilFunction,IndexFunctionEXT,AlphaFunction,DepthFunction"/>
             <unused start="0x0208" end="0x02FF" comment="Unused for AlphaFunction"/>
-        <enum value="0x0300" name="GL_SRC_COLOR"/>
-        <enum value="0x0301" name="GL_ONE_MINUS_SRC_COLOR"/>
-        <enum value="0x0302" name="GL_SRC_ALPHA"/>
-        <enum value="0x0303" name="GL_ONE_MINUS_SRC_ALPHA"/>
-        <enum value="0x0304" name="GL_DST_ALPHA"/>
-        <enum value="0x0305" name="GL_ONE_MINUS_DST_ALPHA"/>
-        <enum value="0x0306" name="GL_DST_COLOR"/>
-        <enum value="0x0307" name="GL_ONE_MINUS_DST_COLOR"/>
-        <enum value="0x0308" name="GL_SRC_ALPHA_SATURATE"/>
+        <enum value="0x0300" name="GL_SRC_COLOR" group="BlendingFactor"/>
+        <enum value="0x0301" name="GL_ONE_MINUS_SRC_COLOR" group="BlendingFactor"/>
+        <enum value="0x0302" name="GL_SRC_ALPHA" group="BlendingFactor"/>
+        <enum value="0x0303" name="GL_ONE_MINUS_SRC_ALPHA" group="BlendingFactor"/>
+        <enum value="0x0304" name="GL_DST_ALPHA" group="BlendingFactor"/>
+        <enum value="0x0305" name="GL_ONE_MINUS_DST_ALPHA" group="BlendingFactor"/>
+        <enum value="0x0306" name="GL_DST_COLOR" group="BlendingFactor"/>
+        <enum value="0x0307" name="GL_ONE_MINUS_DST_COLOR" group="BlendingFactor"/>
+        <enum value="0x0308" name="GL_SRC_ALPHA_SATURATE" group="BlendingFactor"/>
         <enum value="0x0308" name="GL_SRC_ALPHA_SATURATE_EXT"/>
             <unused start="0x0309" end="0x03FF" comment="Unused for BlendingFactor"/>
-        <enum value="0x0400" name="GL_FRONT_LEFT"/>
-        <enum value="0x0401" name="GL_FRONT_RIGHT"/>
-        <enum value="0x0402" name="GL_BACK_LEFT"/>
-        <enum value="0x0403" name="GL_BACK_RIGHT"/>
-        <enum value="0x0404" name="GL_FRONT"/>
-        <enum value="0x0405" name="GL_BACK"/>
-        <enum value="0x0406" name="GL_LEFT"/>
-        <enum value="0x0407" name="GL_RIGHT"/>
-        <enum value="0x0408" name="GL_FRONT_AND_BACK"/>
-        <enum value="0x0409" name="GL_AUX0"/>
-        <enum value="0x040A" name="GL_AUX1"/>
-        <enum value="0x040B" name="GL_AUX2"/>
-        <enum value="0x040C" name="GL_AUX3"/>
+        <enum value="0x0400" name="GL_FRONT_LEFT" group="ColorBuffer,DrawBufferMode,ReadBufferMode"/>
+        <enum value="0x0401" name="GL_FRONT_RIGHT" group="ColorBuffer,DrawBufferMode,ReadBufferMode"/>
+        <enum value="0x0402" name="GL_BACK_LEFT" group="ColorBuffer,DrawBufferMode,ReadBufferMode"/>
+        <enum value="0x0403" name="GL_BACK_RIGHT" group="ColorBuffer,DrawBufferMode,ReadBufferMode"/>
+        <enum value="0x0404" name="GL_FRONT" group="ColorBuffer,ColorMaterialFace,CullFaceMode,DrawBufferMode,ReadBufferMode,StencilFaceDirection"/>
+        <enum value="0x0405" name="GL_BACK" group="ColorBuffer,ColorMaterialFace,CullFaceMode,DrawBufferMode,ReadBufferMode,StencilFaceDirection"/>
+        <enum value="0x0406" name="GL_LEFT" group="ColorBuffer,DrawBufferMode,ReadBufferMode"/>
+        <enum value="0x0407" name="GL_RIGHT" group="ColorBuffer,DrawBufferMode,ReadBufferMode"/>
+        <enum value="0x0408" name="GL_FRONT_AND_BACK" group="ColorBuffer,ColorMaterialFace,CullFaceMode,DrawBufferMode,StencilFaceDirection"/>
+        <enum value="0x0409" name="GL_AUX0" group="ReadBufferMode,DrawBufferMode"/>
+        <enum value="0x040A" name="GL_AUX1" group="ReadBufferMode,DrawBufferMode"/>
+        <enum value="0x040B" name="GL_AUX2" group="ReadBufferMode,DrawBufferMode"/>
+        <enum value="0x040C" name="GL_AUX3" group="ReadBufferMode,DrawBufferMode"/>
             <unused start="0x040D" end="0x04FF" comment="Unused for DrawBufferMode"/>
-        <enum value="0x0500" name="GL_INVALID_ENUM"/>
-        <enum value="0x0501" name="GL_INVALID_VALUE"/>
-        <enum value="0x0502" name="GL_INVALID_OPERATION"/>
-        <enum value="0x0503" name="GL_STACK_OVERFLOW"/>
+        <enum value="0x0500" name="GL_INVALID_ENUM" group="ErrorCode"/>
+        <enum value="0x0501" name="GL_INVALID_VALUE" group="ErrorCode"/>
+        <enum value="0x0502" name="GL_INVALID_OPERATION" group="ErrorCode"/>
+        <enum value="0x0503" name="GL_STACK_OVERFLOW" group="ErrorCode"/>
         <enum value="0x0503" name="GL_STACK_OVERFLOW_KHR"/>
-        <enum value="0x0504" name="GL_STACK_UNDERFLOW"/>
+        <enum value="0x0504" name="GL_STACK_UNDERFLOW" group="ErrorCode"/>
         <enum value="0x0504" name="GL_STACK_UNDERFLOW_KHR"/>
-        <enum value="0x0505" name="GL_OUT_OF_MEMORY"/>
-        <enum value="0x0506" name="GL_INVALID_FRAMEBUFFER_OPERATION"/>
-        <enum value="0x0506" name="GL_INVALID_FRAMEBUFFER_OPERATION_EXT"/>
-        <enum value="0x0506" name="GL_INVALID_FRAMEBUFFER_OPERATION_OES"/>
+        <enum value="0x0505" name="GL_OUT_OF_MEMORY" group="ErrorCode"/>
+        <enum value="0x0506" name="GL_INVALID_FRAMEBUFFER_OPERATION" group="ErrorCode"/>
+        <enum value="0x0506" name="GL_INVALID_FRAMEBUFFER_OPERATION_EXT" group="ErrorCode"/>
+        <enum value="0x0506" name="GL_INVALID_FRAMEBUFFER_OPERATION_OES" group="ErrorCode"/>
         <enum value="0x0507" name="GL_CONTEXT_LOST"/>
         <enum value="0x0507" name="GL_CONTEXT_LOST_KHR"/>
             <unused start="0x0508" end="0x05FF" comment="Unused for ErrorCode"/>
-        <enum value="0x0600" name="GL_2D"/>
-        <enum value="0x0601" name="GL_3D"/>
-        <enum value="0x0602" name="GL_3D_COLOR"/>
-        <enum value="0x0603" name="GL_3D_COLOR_TEXTURE"/>
-        <enum value="0x0604" name="GL_4D_COLOR_TEXTURE"/>
+        <enum value="0x0600" name="GL_2D" group="FeedbackType"/>
+        <enum value="0x0601" name="GL_3D" group="FeedbackType"/>
+        <enum value="0x0602" name="GL_3D_COLOR" group="FeedbackType"/>
+        <enum value="0x0603" name="GL_3D_COLOR_TEXTURE" group="FeedbackType"/>
+        <enum value="0x0604" name="GL_4D_COLOR_TEXTURE" group="FeedbackType"/>
             <unused start="0x0605" end="0x06FF" comment="Unused for FeedbackType"/>
-        <enum value="0x0700" name="GL_PASS_THROUGH_TOKEN"/>
-        <enum value="0x0701" name="GL_POINT_TOKEN"/>
-        <enum value="0x0702" name="GL_LINE_TOKEN"/>
-        <enum value="0x0703" name="GL_POLYGON_TOKEN"/>
-        <enum value="0x0704" name="GL_BITMAP_TOKEN"/>
-        <enum value="0x0705" name="GL_DRAW_PIXEL_TOKEN"/>
-        <enum value="0x0706" name="GL_COPY_PIXEL_TOKEN"/>
-        <enum value="0x0707" name="GL_LINE_RESET_TOKEN"/>
+        <enum value="0x0700" name="GL_PASS_THROUGH_TOKEN" group="FeedBackToken"/>
+        <enum value="0x0701" name="GL_POINT_TOKEN" group="FeedBackToken"/>
+        <enum value="0x0702" name="GL_LINE_TOKEN" group="FeedBackToken"/>
+        <enum value="0x0703" name="GL_POLYGON_TOKEN" group="FeedBackToken"/>
+        <enum value="0x0704" name="GL_BITMAP_TOKEN" group="FeedBackToken"/>
+        <enum value="0x0705" name="GL_DRAW_PIXEL_TOKEN" group="FeedBackToken"/>
+        <enum value="0x0706" name="GL_COPY_PIXEL_TOKEN" group="FeedBackToken"/>
+        <enum value="0x0707" name="GL_LINE_RESET_TOKEN" group="FeedBackToken"/>
             <unused start="0x0708" end="0x07FF" comment="Unused for FeedbackToken"/>
-        <enum value="0x0800" name="GL_EXP"/>
-        <enum value="0x0801" name="GL_EXP2"/>
+        <enum value="0x0800" name="GL_EXP" group="FogMode"/>
+        <enum value="0x0801" name="GL_EXP2" group="FogMode"/>
             <unused start="0x0802" end="0x08FF" comment="Unused for FogMode"/>
-        <enum value="0x0900" name="GL_CW"/>
-        <enum value="0x0901" name="GL_CCW"/>
+        <enum value="0x0900" name="GL_CW" group="FrontFaceDirection"/>
+        <enum value="0x0901" name="GL_CCW" group="FrontFaceDirection"/>
             <unused start="0x0902" end="0x09FF" comment="Unused for FrontFaceDirection"/>
-        <enum value="0x0A00" name="GL_COEFF"/>
-        <enum value="0x0A01" name="GL_ORDER"/>
-        <enum value="0x0A02" name="GL_DOMAIN"/>
+        <enum value="0x0A00" name="GL_COEFF" group="MapQuery,GetMapQuery"/>
+        <enum value="0x0A01" name="GL_ORDER" group="MapQuery,GetMapQuery"/>
+        <enum value="0x0A02" name="GL_DOMAIN" group="MapQuery,GetMapQuery"/>
             <unused start="0x0A03" end="0x0AFF" comment="Unused for GetMapQuery"/>
-        <enum value="0x0B00" name="GL_CURRENT_COLOR"/>
-        <enum value="0x0B01" name="GL_CURRENT_INDEX"/>
-        <enum value="0x0B02" name="GL_CURRENT_NORMAL"/>
-        <enum value="0x0B03" name="GL_CURRENT_TEXTURE_COORDS"/>
-        <enum value="0x0B04" name="GL_CURRENT_RASTER_COLOR"/>
-        <enum value="0x0B05" name="GL_CURRENT_RASTER_INDEX"/>
-        <enum value="0x0B06" name="GL_CURRENT_RASTER_TEXTURE_COORDS"/>
-        <enum value="0x0B07" name="GL_CURRENT_RASTER_POSITION"/>
-        <enum value="0x0B08" name="GL_CURRENT_RASTER_POSITION_VALID"/>
-        <enum value="0x0B09" name="GL_CURRENT_RASTER_DISTANCE"/>
+        <enum value="0x0B00" name="GL_CURRENT_COLOR" group="GetPName"/>
+        <enum value="0x0B01" name="GL_CURRENT_INDEX" group="GetPName"/>
+        <enum value="0x0B02" name="GL_CURRENT_NORMAL" group="GetPName"/>
+        <enum value="0x0B03" name="GL_CURRENT_TEXTURE_COORDS" group="GetPName,VertexShaderTextureUnitParameter"/>
+        <enum value="0x0B04" name="GL_CURRENT_RASTER_COLOR" group="GetPName"/>
+        <enum value="0x0B05" name="GL_CURRENT_RASTER_INDEX" group="GetPName"/>
+        <enum value="0x0B06" name="GL_CURRENT_RASTER_TEXTURE_COORDS" group="GetPName"/>
+        <enum value="0x0B07" name="GL_CURRENT_RASTER_POSITION" group="GetPName"/>
+        <enum value="0x0B08" name="GL_CURRENT_RASTER_POSITION_VALID" group="GetPName"/>
+        <enum value="0x0B09" name="GL_CURRENT_RASTER_DISTANCE" group="GetPName"/>
 
-        <enum value="0x0B10" name="GL_POINT_SMOOTH"/>
-        <enum value="0x0B11" name="GL_POINT_SIZE"/>
-        <enum value="0x0B12" name="GL_POINT_SIZE_RANGE"/>
-        <enum value="0x0B12" name="GL_SMOOTH_POINT_SIZE_RANGE" alias="GL_POINT_SIZE_RANGE"/>
-        <enum value="0x0B13" name="GL_POINT_SIZE_GRANULARITY"/>
-        <enum value="0x0B13" name="GL_SMOOTH_POINT_SIZE_GRANULARITY" alias="GL_POINT_SIZE_GRANULARITY"/>
+        <enum value="0x0B10" name="GL_POINT_SMOOTH" group="GetPName,EnableCap"/>
+        <enum value="0x0B11" name="GL_POINT_SIZE" group="GetPName"/>
+        <enum value="0x0B12" name="GL_POINT_SIZE_RANGE" group="GetPName"/>
+        <enum value="0x0B12" name="GL_SMOOTH_POINT_SIZE_RANGE" alias="GL_POINT_SIZE_RANGE" group="GetPName"/>
+        <enum value="0x0B13" name="GL_POINT_SIZE_GRANULARITY" group="GetPName"/>
+        <enum value="0x0B13" name="GL_SMOOTH_POINT_SIZE_GRANULARITY" alias="GL_POINT_SIZE_GRANULARITY" group="GetPName"/>
 
-        <enum value="0x0B20" name="GL_LINE_SMOOTH"/>
-        <enum value="0x0B21" name="GL_LINE_WIDTH"/>
-        <enum value="0x0B22" name="GL_LINE_WIDTH_RANGE"/>
-        <enum value="0x0B22" name="GL_SMOOTH_LINE_WIDTH_RANGE" alias="GL_LINE_WIDTH_RANGE"/>
-        <enum value="0x0B23" name="GL_LINE_WIDTH_GRANULARITY"/>
-        <enum value="0x0B23" name="GL_SMOOTH_LINE_WIDTH_GRANULARITY" alias="GL_LINE_WIDTH_GRANULARITY"/>
-        <enum value="0x0B24" name="GL_LINE_STIPPLE"/>
-        <enum value="0x0B25" name="GL_LINE_STIPPLE_PATTERN"/>
-        <enum value="0x0B26" name="GL_LINE_STIPPLE_REPEAT"/>
+        <enum value="0x0B20" name="GL_LINE_SMOOTH" group="GetPName,EnableCap"/>
+        <enum value="0x0B21" name="GL_LINE_WIDTH" group="GetPName"/>
+        <enum value="0x0B22" name="GL_LINE_WIDTH_RANGE" group="GetPName"/>
+        <enum value="0x0B22" name="GL_SMOOTH_LINE_WIDTH_RANGE" alias="GL_LINE_WIDTH_RANGE" group="GetPName"/>
+        <enum value="0x0B23" name="GL_LINE_WIDTH_GRANULARITY" group="GetPName"/>
+        <enum value="0x0B23" name="GL_SMOOTH_LINE_WIDTH_GRANULARITY" alias="GL_LINE_WIDTH_GRANULARITY" group="GetPName"/>
+        <enum value="0x0B24" name="GL_LINE_STIPPLE" group="GetPName,EnableCap"/>
+        <enum value="0x0B25" name="GL_LINE_STIPPLE_PATTERN" group="GetPName"/>
+        <enum value="0x0B26" name="GL_LINE_STIPPLE_REPEAT" group="GetPName"/>
 
-        <enum value="0x0B30" name="GL_LIST_MODE"/>
-        <enum value="0x0B31" name="GL_MAX_LIST_NESTING"/>
-        <enum value="0x0B32" name="GL_LIST_BASE"/>
-        <enum value="0x0B33" name="GL_LIST_INDEX"/>
+        <enum value="0x0B30" name="GL_LIST_MODE" group="GetPName"/>
+        <enum value="0x0B31" name="GL_MAX_LIST_NESTING" group="GetPName"/>
+        <enum value="0x0B32" name="GL_LIST_BASE" group="GetPName"/>
+        <enum value="0x0B33" name="GL_LIST_INDEX" group="GetPName"/>
 
-        <enum value="0x0B40" name="GL_POLYGON_MODE"/>
+        <enum value="0x0B40" name="GL_POLYGON_MODE" group="GetPName"/>
         <enum value="0x0B40" name="GL_POLYGON_MODE_NV"/>
-        <enum value="0x0B41" name="GL_POLYGON_SMOOTH"/>
-        <enum value="0x0B42" name="GL_POLYGON_STIPPLE"/>
-        <enum value="0x0B43" name="GL_EDGE_FLAG"/>
-        <enum value="0x0B44" name="GL_CULL_FACE"/>
-        <enum value="0x0B45" name="GL_CULL_FACE_MODE"/>
-        <enum value="0x0B46" name="GL_FRONT_FACE"/>
+        <enum value="0x0B41" name="GL_POLYGON_SMOOTH" group="GetPName,EnableCap"/>
+        <enum value="0x0B42" name="GL_POLYGON_STIPPLE" group="GetPName,EnableCap"/>
+        <enum value="0x0B43" name="GL_EDGE_FLAG" group="GetPName"/>
+        <enum value="0x0B44" name="GL_CULL_FACE" group="GetPName,EnableCap"/>
+        <enum value="0x0B45" name="GL_CULL_FACE_MODE" group="GetPName"/>
+        <enum value="0x0B46" name="GL_FRONT_FACE" group="GetPName"/>
 
-        <enum value="0x0B50" name="GL_LIGHTING"/>
-        <enum value="0x0B51" name="GL_LIGHT_MODEL_LOCAL_VIEWER"/>
-        <enum value="0x0B52" name="GL_LIGHT_MODEL_TWO_SIDE"/>
-        <enum value="0x0B53" name="GL_LIGHT_MODEL_AMBIENT"/>
-        <enum value="0x0B54" name="GL_SHADE_MODEL"/>
-        <enum value="0x0B55" name="GL_COLOR_MATERIAL_FACE"/>
-        <enum value="0x0B56" name="GL_COLOR_MATERIAL_PARAMETER"/>
-        <enum value="0x0B57" name="GL_COLOR_MATERIAL"/>
+        <enum value="0x0B50" name="GL_LIGHTING" group="GetPName,EnableCap"/>
+        <enum value="0x0B51" name="GL_LIGHT_MODEL_LOCAL_VIEWER" group="LightModelParameter,GetPName"/>
+        <enum value="0x0B52" name="GL_LIGHT_MODEL_TWO_SIDE" group="LightModelParameter,GetPName"/>
+        <enum value="0x0B53" name="GL_LIGHT_MODEL_AMBIENT" group="LightModelParameter,GetPName"/>
+        <enum value="0x0B54" name="GL_SHADE_MODEL" group="GetPName"/>
+        <enum value="0x0B55" name="GL_COLOR_MATERIAL_FACE" group="GetPName"/>
+        <enum value="0x0B56" name="GL_COLOR_MATERIAL_PARAMETER" group="GetPName"/>
+        <enum value="0x0B57" name="GL_COLOR_MATERIAL" group="GetPName,EnableCap"/>
 
-        <enum value="0x0B60" name="GL_FOG"/>
-        <enum value="0x0B61" name="GL_FOG_INDEX"/>
-        <enum value="0x0B62" name="GL_FOG_DENSITY"/>
-        <enum value="0x0B63" name="GL_FOG_START"/>
-        <enum value="0x0B64" name="GL_FOG_END"/>
-        <enum value="0x0B65" name="GL_FOG_MODE"/>
-        <enum value="0x0B66" name="GL_FOG_COLOR"/>
+        <enum value="0x0B60" name="GL_FOG" group="GetPName,EnableCap"/>
+        <enum value="0x0B61" name="GL_FOG_INDEX" group="FogPName,FogParameter,GetPName"/>
+        <enum value="0x0B62" name="GL_FOG_DENSITY" group="FogPName,FogParameter,GetPName"/>
+        <enum value="0x0B63" name="GL_FOG_START" group="FogPName,FogParameter,GetPName"/>
+        <enum value="0x0B64" name="GL_FOG_END" group="FogPName,FogParameter,GetPName"/>
+        <enum value="0x0B65" name="GL_FOG_MODE" group="FogPName,FogParameter,GetPName"/>
+        <enum value="0x0B66" name="GL_FOG_COLOR" group="GetPName,FogParameter"/>
 
-        <enum value="0x0B70" name="GL_DEPTH_RANGE"/>
-        <enum value="0x0B71" name="GL_DEPTH_TEST"/>
-        <enum value="0x0B72" name="GL_DEPTH_WRITEMASK"/>
-        <enum value="0x0B73" name="GL_DEPTH_CLEAR_VALUE"/>
-        <enum value="0x0B74" name="GL_DEPTH_FUNC"/>
+        <enum value="0x0B70" name="GL_DEPTH_RANGE" group="GetPName"/>
+        <enum value="0x0B71" name="GL_DEPTH_TEST" group="GetPName,EnableCap"/>
+        <enum value="0x0B72" name="GL_DEPTH_WRITEMASK" group="GetPName"/>
+        <enum value="0x0B73" name="GL_DEPTH_CLEAR_VALUE" group="GetPName"/>
+        <enum value="0x0B74" name="GL_DEPTH_FUNC" group="GetPName"/>
 
-        <enum value="0x0B80" name="GL_ACCUM_CLEAR_VALUE"/>
+        <enum value="0x0B80" name="GL_ACCUM_CLEAR_VALUE" group="GetPName"/>
 
-        <enum value="0x0B90" name="GL_STENCIL_TEST"/>
-        <enum value="0x0B91" name="GL_STENCIL_CLEAR_VALUE"/>
-        <enum value="0x0B92" name="GL_STENCIL_FUNC"/>
-        <enum value="0x0B93" name="GL_STENCIL_VALUE_MASK"/>
-        <enum value="0x0B94" name="GL_STENCIL_FAIL"/>
-        <enum value="0x0B95" name="GL_STENCIL_PASS_DEPTH_FAIL"/>
-        <enum value="0x0B96" name="GL_STENCIL_PASS_DEPTH_PASS"/>
-        <enum value="0x0B97" name="GL_STENCIL_REF"/>
-        <enum value="0x0B98" name="GL_STENCIL_WRITEMASK"/>
+        <enum value="0x0B90" name="GL_STENCIL_TEST" group="GetPName,EnableCap"/>
+        <enum value="0x0B91" name="GL_STENCIL_CLEAR_VALUE" group="GetPName"/>
+        <enum value="0x0B92" name="GL_STENCIL_FUNC" group="GetPName"/>
+        <enum value="0x0B93" name="GL_STENCIL_VALUE_MASK" group="GetPName"/>
+        <enum value="0x0B94" name="GL_STENCIL_FAIL" group="GetPName"/>
+        <enum value="0x0B95" name="GL_STENCIL_PASS_DEPTH_FAIL" group="GetPName"/>
+        <enum value="0x0B96" name="GL_STENCIL_PASS_DEPTH_PASS" group="GetPName"/>
+        <enum value="0x0B97" name="GL_STENCIL_REF" group="GetPName"/>
+        <enum value="0x0B98" name="GL_STENCIL_WRITEMASK" group="GetPName"/>
 
-        <enum value="0x0BA0" name="GL_MATRIX_MODE"/>
-        <enum value="0x0BA1" name="GL_NORMALIZE"/>
-        <enum value="0x0BA2" name="GL_VIEWPORT"/>
-        <enum value="0x0BA3" name="GL_MODELVIEW_STACK_DEPTH"/>
-        <enum value="0x0BA3" name="GL_MODELVIEW0_STACK_DEPTH_EXT"/>
+        <enum value="0x0BA0" name="GL_MATRIX_MODE" group="GetPName"/>
+        <enum value="0x0BA1" name="GL_NORMALIZE" group="GetPName,EnableCap"/>
+        <enum value="0x0BA2" name="GL_VIEWPORT" group="GetPName"/>
+        <enum value="0x0BA3" name="GL_MODELVIEW_STACK_DEPTH" group="GetPName"/>
+        <enum value="0x0BA3" name="GL_MODELVIEW0_STACK_DEPTH_EXT" group="GetPName"/>
         <enum value="0x0BA3" name="GL_PATH_MODELVIEW_STACK_DEPTH_NV"/>
-        <enum value="0x0BA4" name="GL_PROJECTION_STACK_DEPTH"/>
+        <enum value="0x0BA4" name="GL_PROJECTION_STACK_DEPTH" group="GetPName"/>
         <enum value="0x0BA4" name="GL_PATH_PROJECTION_STACK_DEPTH_NV"/>
-        <enum value="0x0BA5" name="GL_TEXTURE_STACK_DEPTH"/>
-        <enum value="0x0BA6" name="GL_MODELVIEW_MATRIX"/>
-        <enum value="0x0BA6" name="GL_MODELVIEW0_MATRIX_EXT"/>
+        <enum value="0x0BA5" name="GL_TEXTURE_STACK_DEPTH" group="GetPName"/>
+        <enum value="0x0BA6" name="GL_MODELVIEW_MATRIX" group="GetPName"/>
+        <enum value="0x0BA6" name="GL_MODELVIEW0_MATRIX_EXT" group="GetPName"/>
         <enum value="0x0BA6" name="GL_PATH_MODELVIEW_MATRIX_NV"/>
-        <enum value="0x0BA7" name="GL_PROJECTION_MATRIX"/>
+        <enum value="0x0BA7" name="GL_PROJECTION_MATRIX" group="GetPName"/>
         <enum value="0x0BA7" name="GL_PATH_PROJECTION_MATRIX_NV"/>
-        <enum value="0x0BA8" name="GL_TEXTURE_MATRIX"/>
+        <enum value="0x0BA8" name="GL_TEXTURE_MATRIX" group="GetPName,VertexShaderTextureUnitParameter"/>
 
-        <enum value="0x0BB0" name="GL_ATTRIB_STACK_DEPTH"/>
-        <enum value="0x0BB1" name="GL_CLIENT_ATTRIB_STACK_DEPTH"/>
+        <enum value="0x0BB0" name="GL_ATTRIB_STACK_DEPTH" group="GetPName"/>
+        <enum value="0x0BB1" name="GL_CLIENT_ATTRIB_STACK_DEPTH" group="GetPName"/>
 
-        <enum value="0x0BC0" name="GL_ALPHA_TEST"/>
-        <enum value="0x0BC0" name="GL_ALPHA_TEST_QCOM"/>
-        <enum value="0x0BC1" name="GL_ALPHA_TEST_FUNC"/>
-        <enum value="0x0BC1" name="GL_ALPHA_TEST_FUNC_QCOM"/>
-        <enum value="0x0BC2" name="GL_ALPHA_TEST_REF"/>
-        <enum value="0x0BC2" name="GL_ALPHA_TEST_REF_QCOM"/>
+        <enum value="0x0BC0" name="GL_ALPHA_TEST" group="GetPName,EnableCap"/>
+        <enum value="0x0BC0" name="GL_ALPHA_TEST_QCOM" group="GetPName"/>
+        <enum value="0x0BC1" name="GL_ALPHA_TEST_FUNC" group="GetPName"/>
+        <enum value="0x0BC1" name="GL_ALPHA_TEST_FUNC_QCOM" group="GetPName"/>
+        <enum value="0x0BC2" name="GL_ALPHA_TEST_REF" group="GetPName"/>
+        <enum value="0x0BC2" name="GL_ALPHA_TEST_REF_QCOM" group="GetPName"/>
 
-        <enum value="0x0BD0" name="GL_DITHER"/>
+        <enum value="0x0BD0" name="GL_DITHER" group="GetPName,EnableCap"/>
 
-        <enum value="0x0BE0" name="GL_BLEND_DST"/>
-        <enum value="0x0BE1" name="GL_BLEND_SRC"/>
-        <enum value="0x0BE2" name="GL_BLEND"/>
+        <enum value="0x0BE0" name="GL_BLEND_DST" group="GetPName"/>
+        <enum value="0x0BE1" name="GL_BLEND_SRC" group="GetPName"/>
+        <enum value="0x0BE2" name="GL_BLEND" group="TextureEnvMode,EnableCap,GetPName"/>
 
-        <enum value="0x0BF0" name="GL_LOGIC_OP_MODE"/>
-        <enum value="0x0BF1" name="GL_INDEX_LOGIC_OP"/>
-        <enum value="0x0BF1" name="GL_LOGIC_OP"/>
-        <enum value="0x0BF2" name="GL_COLOR_LOGIC_OP"/>
+        <enum value="0x0BF0" name="GL_LOGIC_OP_MODE" group="GetPName"/>
+        <enum value="0x0BF1" name="GL_INDEX_LOGIC_OP" group="GetPName,EnableCap"/>
+        <enum value="0x0BF1" name="GL_LOGIC_OP" group="GetPName"/>
+        <enum value="0x0BF2" name="GL_COLOR_LOGIC_OP" group="GetPName,EnableCap"/>
 
-        <enum value="0x0C00" name="GL_AUX_BUFFERS"/>
-        <enum value="0x0C01" name="GL_DRAW_BUFFER"/>
-        <enum value="0x0C01" name="GL_DRAW_BUFFER_EXT"/>
-        <enum value="0x0C02" name="GL_READ_BUFFER"/>
-        <enum value="0x0C02" name="GL_READ_BUFFER_EXT"/>
-        <enum value="0x0C02" name="GL_READ_BUFFER_NV"/>
+        <enum value="0x0C00" name="GL_AUX_BUFFERS" group="GetPName"/>
+        <enum value="0x0C01" name="GL_DRAW_BUFFER" group="GetPName"/>
+        <enum value="0x0C01" name="GL_DRAW_BUFFER_EXT" group="GetPName"/>
+        <enum value="0x0C02" name="GL_READ_BUFFER" group="GetPName"/>
+        <enum value="0x0C02" name="GL_READ_BUFFER_EXT" group="GetPName"/>
+        <enum value="0x0C02" name="GL_READ_BUFFER_NV" group="GetPName"/>
 
-        <enum value="0x0C10" name="GL_SCISSOR_BOX"/>
-        <enum value="0x0C11" name="GL_SCISSOR_TEST"/>
+        <enum value="0x0C10" name="GL_SCISSOR_BOX" group="GetPName"/>
+        <enum value="0x0C11" name="GL_SCISSOR_TEST" group="GetPName,EnableCap"/>
 
-        <enum value="0x0C20" name="GL_INDEX_CLEAR_VALUE"/>
-        <enum value="0x0C21" name="GL_INDEX_WRITEMASK"/>
-        <enum value="0x0C22" name="GL_COLOR_CLEAR_VALUE"/>
-        <enum value="0x0C23" name="GL_COLOR_WRITEMASK"/>
+        <enum value="0x0C20" name="GL_INDEX_CLEAR_VALUE" group="GetPName"/>
+        <enum value="0x0C21" name="GL_INDEX_WRITEMASK" group="GetPName"/>
+        <enum value="0x0C22" name="GL_COLOR_CLEAR_VALUE" group="GetPName"/>
+        <enum value="0x0C23" name="GL_COLOR_WRITEMASK" group="GetPName"/>
 
-        <enum value="0x0C30" name="GL_INDEX_MODE"/>
-        <enum value="0x0C31" name="GL_RGBA_MODE"/>
-        <enum value="0x0C32" name="GL_DOUBLEBUFFER"/>
-        <enum value="0x0C33" name="GL_STEREO"/>
+        <enum value="0x0C30" name="GL_INDEX_MODE" group="GetPName"/>
+        <enum value="0x0C31" name="GL_RGBA_MODE" group="GetPName"/>
+        <enum value="0x0C32" name="GL_DOUBLEBUFFER" group="GetFramebufferParameter,GetPName"/>
+        <enum value="0x0C33" name="GL_STEREO" group="GetFramebufferParameter,GetPName"/>
 
-        <enum value="0x0C40" name="GL_RENDER_MODE"/>
+        <enum value="0x0C40" name="GL_RENDER_MODE" group="GetPName"/>
 
-        <enum value="0x0C50" name="GL_PERSPECTIVE_CORRECTION_HINT"/>
-        <enum value="0x0C51" name="GL_POINT_SMOOTH_HINT"/>
-        <enum value="0x0C52" name="GL_LINE_SMOOTH_HINT"/>
-        <enum value="0x0C53" name="GL_POLYGON_SMOOTH_HINT"/>
-        <enum value="0x0C54" name="GL_FOG_HINT"/>
+        <enum value="0x0C50" name="GL_PERSPECTIVE_CORRECTION_HINT" group="HintTarget,GetPName"/>
+        <enum value="0x0C51" name="GL_POINT_SMOOTH_HINT" group="HintTarget,GetPName"/>
+        <enum value="0x0C52" name="GL_LINE_SMOOTH_HINT" group="HintTarget,GetPName"/>
+        <enum value="0x0C53" name="GL_POLYGON_SMOOTH_HINT" group="HintTarget,GetPName"/>
+        <enum value="0x0C54" name="GL_FOG_HINT" group="HintTarget,GetPName"/>
 
-        <enum value="0x0C60" name="GL_TEXTURE_GEN_S"/>
-        <enum value="0x0C61" name="GL_TEXTURE_GEN_T"/>
-        <enum value="0x0C62" name="GL_TEXTURE_GEN_R"/>
-        <enum value="0x0C63" name="GL_TEXTURE_GEN_Q"/>
+        <enum value="0x0C60" name="GL_TEXTURE_GEN_S" group="GetPName,EnableCap"/>
+        <enum value="0x0C61" name="GL_TEXTURE_GEN_T" group="GetPName,EnableCap"/>
+        <enum value="0x0C62" name="GL_TEXTURE_GEN_R" group="GetPName,EnableCap"/>
+        <enum value="0x0C63" name="GL_TEXTURE_GEN_Q" group="GetPName,EnableCap"/>
 
-        <enum value="0x0C70" name="GL_PIXEL_MAP_I_TO_I"/>
-        <enum value="0x0C71" name="GL_PIXEL_MAP_S_TO_S"/>
-        <enum value="0x0C72" name="GL_PIXEL_MAP_I_TO_R"/>
-        <enum value="0x0C73" name="GL_PIXEL_MAP_I_TO_G"/>
-        <enum value="0x0C74" name="GL_PIXEL_MAP_I_TO_B"/>
-        <enum value="0x0C75" name="GL_PIXEL_MAP_I_TO_A"/>
-        <enum value="0x0C76" name="GL_PIXEL_MAP_R_TO_R"/>
-        <enum value="0x0C77" name="GL_PIXEL_MAP_G_TO_G"/>
-        <enum value="0x0C78" name="GL_PIXEL_MAP_B_TO_B"/>
-        <enum value="0x0C79" name="GL_PIXEL_MAP_A_TO_A"/>
+        <enum value="0x0C70" name="GL_PIXEL_MAP_I_TO_I" group="PixelMap,GetPixelMap"/>
+        <enum value="0x0C71" name="GL_PIXEL_MAP_S_TO_S" group="PixelMap,GetPixelMap"/>
+        <enum value="0x0C72" name="GL_PIXEL_MAP_I_TO_R" group="PixelMap,GetPixelMap"/>
+        <enum value="0x0C73" name="GL_PIXEL_MAP_I_TO_G" group="PixelMap,GetPixelMap"/>
+        <enum value="0x0C74" name="GL_PIXEL_MAP_I_TO_B" group="PixelMap,GetPixelMap"/>
+        <enum value="0x0C75" name="GL_PIXEL_MAP_I_TO_A" group="PixelMap,GetPixelMap"/>
+        <enum value="0x0C76" name="GL_PIXEL_MAP_R_TO_R" group="PixelMap,GetPixelMap"/>
+        <enum value="0x0C77" name="GL_PIXEL_MAP_G_TO_G" group="PixelMap,GetPixelMap"/>
+        <enum value="0x0C78" name="GL_PIXEL_MAP_B_TO_B" group="PixelMap,GetPixelMap"/>
+        <enum value="0x0C79" name="GL_PIXEL_MAP_A_TO_A" group="PixelMap,GetPixelMap"/>
 
-        <enum value="0x0CB0" name="GL_PIXEL_MAP_I_TO_I_SIZE"/>
-        <enum value="0x0CB1" name="GL_PIXEL_MAP_S_TO_S_SIZE"/>
-        <enum value="0x0CB2" name="GL_PIXEL_MAP_I_TO_R_SIZE"/>
-        <enum value="0x0CB3" name="GL_PIXEL_MAP_I_TO_G_SIZE"/>
-        <enum value="0x0CB4" name="GL_PIXEL_MAP_I_TO_B_SIZE"/>
-        <enum value="0x0CB5" name="GL_PIXEL_MAP_I_TO_A_SIZE"/>
-        <enum value="0x0CB6" name="GL_PIXEL_MAP_R_TO_R_SIZE"/>
-        <enum value="0x0CB7" name="GL_PIXEL_MAP_G_TO_G_SIZE"/>
-        <enum value="0x0CB8" name="GL_PIXEL_MAP_B_TO_B_SIZE"/>
-        <enum value="0x0CB9" name="GL_PIXEL_MAP_A_TO_A_SIZE"/>
+        <enum value="0x0CB0" name="GL_PIXEL_MAP_I_TO_I_SIZE" group="GetPName"/>
+        <enum value="0x0CB1" name="GL_PIXEL_MAP_S_TO_S_SIZE" group="GetPName"/>
+        <enum value="0x0CB2" name="GL_PIXEL_MAP_I_TO_R_SIZE" group="GetPName"/>
+        <enum value="0x0CB3" name="GL_PIXEL_MAP_I_TO_G_SIZE" group="GetPName"/>
+        <enum value="0x0CB4" name="GL_PIXEL_MAP_I_TO_B_SIZE" group="GetPName"/>
+        <enum value="0x0CB5" name="GL_PIXEL_MAP_I_TO_A_SIZE" group="GetPName"/>
+        <enum value="0x0CB6" name="GL_PIXEL_MAP_R_TO_R_SIZE" group="GetPName"/>
+        <enum value="0x0CB7" name="GL_PIXEL_MAP_G_TO_G_SIZE" group="GetPName"/>
+        <enum value="0x0CB8" name="GL_PIXEL_MAP_B_TO_B_SIZE" group="GetPName"/>
+        <enum value="0x0CB9" name="GL_PIXEL_MAP_A_TO_A_SIZE" group="GetPName"/>
 
-        <enum value="0x0CF0" name="GL_UNPACK_SWAP_BYTES"/>
-        <enum value="0x0CF1" name="GL_UNPACK_LSB_FIRST"/>
-        <enum value="0x0CF2" name="GL_UNPACK_ROW_LENGTH"/>
-        <enum value="0x0CF2" name="GL_UNPACK_ROW_LENGTH_EXT"/>
-        <enum value="0x0CF3" name="GL_UNPACK_SKIP_ROWS"/>
-        <enum value="0x0CF3" name="GL_UNPACK_SKIP_ROWS_EXT"/>
-        <enum value="0x0CF4" name="GL_UNPACK_SKIP_PIXELS"/>
-        <enum value="0x0CF4" name="GL_UNPACK_SKIP_PIXELS_EXT"/>
-        <enum value="0x0CF5" name="GL_UNPACK_ALIGNMENT"/>
+        <enum value="0x0CF0" name="GL_UNPACK_SWAP_BYTES" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x0CF1" name="GL_UNPACK_LSB_FIRST" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x0CF2" name="GL_UNPACK_ROW_LENGTH" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x0CF2" name="GL_UNPACK_ROW_LENGTH_EXT" group="PixelStoreParameter"/>
+        <enum value="0x0CF3" name="GL_UNPACK_SKIP_ROWS" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x0CF3" name="GL_UNPACK_SKIP_ROWS_EXT" group="PixelStoreParameter"/>
+        <enum value="0x0CF4" name="GL_UNPACK_SKIP_PIXELS" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x0CF4" name="GL_UNPACK_SKIP_PIXELS_EXT" group="PixelStoreParameter"/>
+        <enum value="0x0CF5" name="GL_UNPACK_ALIGNMENT" group="PixelStoreParameter,GetPName"/>
 
-        <enum value="0x0D00" name="GL_PACK_SWAP_BYTES"/>
-        <enum value="0x0D01" name="GL_PACK_LSB_FIRST"/>
-        <enum value="0x0D02" name="GL_PACK_ROW_LENGTH"/>
-        <enum value="0x0D03" name="GL_PACK_SKIP_ROWS"/>
-        <enum value="0x0D04" name="GL_PACK_SKIP_PIXELS"/>
-        <enum value="0x0D05" name="GL_PACK_ALIGNMENT"/>
+        <enum value="0x0D00" name="GL_PACK_SWAP_BYTES" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x0D01" name="GL_PACK_LSB_FIRST" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x0D02" name="GL_PACK_ROW_LENGTH" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x0D03" name="GL_PACK_SKIP_ROWS" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x0D04" name="GL_PACK_SKIP_PIXELS" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x0D05" name="GL_PACK_ALIGNMENT" group="PixelStoreParameter,GetPName"/>
 
-        <enum value="0x0D10" name="GL_MAP_COLOR"/>
-        <enum value="0x0D11" name="GL_MAP_STENCIL"/>
-        <enum value="0x0D12" name="GL_INDEX_SHIFT"/>
-        <enum value="0x0D13" name="GL_INDEX_OFFSET"/>
-        <enum value="0x0D14" name="GL_RED_SCALE"/>
-        <enum value="0x0D15" name="GL_RED_BIAS"/>
-        <enum value="0x0D16" name="GL_ZOOM_X"/>
-        <enum value="0x0D17" name="GL_ZOOM_Y"/>
-        <enum value="0x0D18" name="GL_GREEN_SCALE"/>
-        <enum value="0x0D19" name="GL_GREEN_BIAS"/>
-        <enum value="0x0D1A" name="GL_BLUE_SCALE"/>
-        <enum value="0x0D1B" name="GL_BLUE_BIAS"/>
-        <enum value="0x0D1C" name="GL_ALPHA_SCALE"/>
-        <enum value="0x0D1D" name="GL_ALPHA_BIAS"/>
-        <enum value="0x0D1E" name="GL_DEPTH_SCALE"/>
-        <enum value="0x0D1F" name="GL_DEPTH_BIAS"/>
+        <enum value="0x0D10" name="GL_MAP_COLOR" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x0D11" name="GL_MAP_STENCIL" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x0D12" name="GL_INDEX_SHIFT" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x0D13" name="GL_INDEX_OFFSET" group="PixelTransferParameter,IndexMaterialParameterEXT,GetPName"/>
+        <enum value="0x0D14" name="GL_RED_SCALE" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x0D15" name="GL_RED_BIAS" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x0D16" name="GL_ZOOM_X" group="GetPName"/>
+        <enum value="0x0D17" name="GL_ZOOM_Y" group="GetPName"/>
+        <enum value="0x0D18" name="GL_GREEN_SCALE" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x0D19" name="GL_GREEN_BIAS" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x0D1A" name="GL_BLUE_SCALE" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x0D1B" name="GL_BLUE_BIAS" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x0D1C" name="GL_ALPHA_SCALE" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x0D1D" name="GL_ALPHA_BIAS" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x0D1E" name="GL_DEPTH_SCALE" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x0D1F" name="GL_DEPTH_BIAS" group="PixelTransferParameter,GetPName"/>
 
-        <enum value="0x0D30" name="GL_MAX_EVAL_ORDER"/>
-        <enum value="0x0D31" name="GL_MAX_LIGHTS"/>
-        <enum value="0x0D32" name="GL_MAX_CLIP_PLANES"/>
+        <enum value="0x0D30" name="GL_MAX_EVAL_ORDER" group="GetPName"/>
+        <enum value="0x0D31" name="GL_MAX_LIGHTS" group="GetPName"/>
+        <enum value="0x0D32" name="GL_MAX_CLIP_PLANES" group="GetPName"/>
         <enum value="0x0D32" name="GL_MAX_CLIP_PLANES_IMG"/>
-        <enum value="0x0D32" name="GL_MAX_CLIP_DISTANCES" alias="GL_MAX_CLIP_PLANES"/>
+        <enum value="0x0D32" name="GL_MAX_CLIP_DISTANCES" alias="GL_MAX_CLIP_PLANES" group="GetPName"/>
         <enum value="0x0D32" name="GL_MAX_CLIP_DISTANCES_EXT" alias="GL_MAX_CLIP_PLANES"/>
         <enum value="0x0D32" name="GL_MAX_CLIP_DISTANCES_APPLE"/>
-        <enum value="0x0D33" name="GL_MAX_TEXTURE_SIZE"/>
-        <enum value="0x0D34" name="GL_MAX_PIXEL_MAP_TABLE"/>
-        <enum value="0x0D35" name="GL_MAX_ATTRIB_STACK_DEPTH"/>
-        <enum value="0x0D36" name="GL_MAX_MODELVIEW_STACK_DEPTH"/>
+        <enum value="0x0D33" name="GL_MAX_TEXTURE_SIZE" group="GetPName"/>
+        <enum value="0x0D34" name="GL_MAX_PIXEL_MAP_TABLE" group="GetPName"/>
+        <enum value="0x0D35" name="GL_MAX_ATTRIB_STACK_DEPTH" group="GetPName"/>
+        <enum value="0x0D36" name="GL_MAX_MODELVIEW_STACK_DEPTH" group="GetPName"/>
         <enum value="0x0D36" name="GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV"/>
-        <enum value="0x0D37" name="GL_MAX_NAME_STACK_DEPTH"/>
-        <enum value="0x0D38" name="GL_MAX_PROJECTION_STACK_DEPTH"/>
+        <enum value="0x0D37" name="GL_MAX_NAME_STACK_DEPTH" group="GetPName"/>
+        <enum value="0x0D38" name="GL_MAX_PROJECTION_STACK_DEPTH" group="GetPName"/>
         <enum value="0x0D38" name="GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV"/>
-        <enum value="0x0D39" name="GL_MAX_TEXTURE_STACK_DEPTH"/>
-        <enum value="0x0D3A" name="GL_MAX_VIEWPORT_DIMS"/>
-        <enum value="0x0D3B" name="GL_MAX_CLIENT_ATTRIB_STACK_DEPTH"/>
+        <enum value="0x0D39" name="GL_MAX_TEXTURE_STACK_DEPTH" group="GetPName"/>
+        <enum value="0x0D3A" name="GL_MAX_VIEWPORT_DIMS" group="GetPName"/>
+        <enum value="0x0D3B" name="GL_MAX_CLIENT_ATTRIB_STACK_DEPTH" group="GetPName"/>
 
-        <enum value="0x0D50" name="GL_SUBPIXEL_BITS"/>
-        <enum value="0x0D51" name="GL_INDEX_BITS"/>
-        <enum value="0x0D52" name="GL_RED_BITS"/>
-        <enum value="0x0D53" name="GL_GREEN_BITS"/>
-        <enum value="0x0D54" name="GL_BLUE_BITS"/>
-        <enum value="0x0D55" name="GL_ALPHA_BITS"/>
-        <enum value="0x0D56" name="GL_DEPTH_BITS"/>
-        <enum value="0x0D57" name="GL_STENCIL_BITS"/>
-        <enum value="0x0D58" name="GL_ACCUM_RED_BITS"/>
-        <enum value="0x0D59" name="GL_ACCUM_GREEN_BITS"/>
-        <enum value="0x0D5A" name="GL_ACCUM_BLUE_BITS"/>
-        <enum value="0x0D5B" name="GL_ACCUM_ALPHA_BITS"/>
+        <enum value="0x0D50" name="GL_SUBPIXEL_BITS" group="GetPName"/>
+        <enum value="0x0D51" name="GL_INDEX_BITS" group="GetPName"/>
+        <enum value="0x0D52" name="GL_RED_BITS" group="GetPName"/>
+        <enum value="0x0D53" name="GL_GREEN_BITS" group="GetPName"/>
+        <enum value="0x0D54" name="GL_BLUE_BITS" group="GetPName"/>
+        <enum value="0x0D55" name="GL_ALPHA_BITS" group="GetPName"/>
+        <enum value="0x0D56" name="GL_DEPTH_BITS" group="GetPName"/>
+        <enum value="0x0D57" name="GL_STENCIL_BITS" group="GetPName"/>
+        <enum value="0x0D58" name="GL_ACCUM_RED_BITS" group="GetPName"/>
+        <enum value="0x0D59" name="GL_ACCUM_GREEN_BITS" group="GetPName"/>
+        <enum value="0x0D5A" name="GL_ACCUM_BLUE_BITS" group="GetPName"/>
+        <enum value="0x0D5B" name="GL_ACCUM_ALPHA_BITS" group="GetPName"/>
 
-        <enum value="0x0D70" name="GL_NAME_STACK_DEPTH"/>
+        <enum value="0x0D70" name="GL_NAME_STACK_DEPTH" group="GetPName"/>
 
-        <enum value="0x0D80" name="GL_AUTO_NORMAL"/>
+        <enum value="0x0D80" name="GL_AUTO_NORMAL" group="GetPName,EnableCap"/>
 
-        <enum value="0x0D90" name="GL_MAP1_COLOR_4"/>
-        <enum value="0x0D91" name="GL_MAP1_INDEX"/>
-        <enum value="0x0D92" name="GL_MAP1_NORMAL"/>
-        <enum value="0x0D93" name="GL_MAP1_TEXTURE_COORD_1"/>
-        <enum value="0x0D94" name="GL_MAP1_TEXTURE_COORD_2"/>
-        <enum value="0x0D95" name="GL_MAP1_TEXTURE_COORD_3"/>
-        <enum value="0x0D96" name="GL_MAP1_TEXTURE_COORD_4"/>
-        <enum value="0x0D97" name="GL_MAP1_VERTEX_3"/>
-        <enum value="0x0D98" name="GL_MAP1_VERTEX_4"/>
+        <enum value="0x0D90" name="GL_MAP1_COLOR_4" group="MapTarget,EnableCap,GetPName"/>
+        <enum value="0x0D91" name="GL_MAP1_INDEX" group="MapTarget,EnableCap,GetPName"/>
+        <enum value="0x0D92" name="GL_MAP1_NORMAL" group="MapTarget,EnableCap,GetPName"/>
+        <enum value="0x0D93" name="GL_MAP1_TEXTURE_COORD_1" group="MapTarget,EnableCap,GetPName"/>
+        <enum value="0x0D94" name="GL_MAP1_TEXTURE_COORD_2" group="MapTarget,EnableCap,GetPName"/>
+        <enum value="0x0D95" name="GL_MAP1_TEXTURE_COORD_3" group="MapTarget,EnableCap,GetPName"/>
+        <enum value="0x0D96" name="GL_MAP1_TEXTURE_COORD_4" group="MapTarget,EnableCap,GetPName"/>
+        <enum value="0x0D97" name="GL_MAP1_VERTEX_3" group="MapTarget,EnableCap,GetPName"/>
+        <enum value="0x0D98" name="GL_MAP1_VERTEX_4" group="MapTarget,EnableCap,GetPName"/>
 
-        <enum value="0x0DB0" name="GL_MAP2_COLOR_4"/>
-        <enum value="0x0DB1" name="GL_MAP2_INDEX"/>
-        <enum value="0x0DB2" name="GL_MAP2_NORMAL"/>
-        <enum value="0x0DB3" name="GL_MAP2_TEXTURE_COORD_1"/>
-        <enum value="0x0DB4" name="GL_MAP2_TEXTURE_COORD_2"/>
-        <enum value="0x0DB5" name="GL_MAP2_TEXTURE_COORD_3"/>
-        <enum value="0x0DB6" name="GL_MAP2_TEXTURE_COORD_4"/>
-        <enum value="0x0DB7" name="GL_MAP2_VERTEX_3"/>
-        <enum value="0x0DB8" name="GL_MAP2_VERTEX_4"/>
+        <enum value="0x0DB0" name="GL_MAP2_COLOR_4" group="MapTarget,EnableCap,GetPName"/>
+        <enum value="0x0DB1" name="GL_MAP2_INDEX" group="MapTarget,EnableCap,GetPName"/>
+        <enum value="0x0DB2" name="GL_MAP2_NORMAL" group="MapTarget,EnableCap,GetPName"/>
+        <enum value="0x0DB3" name="GL_MAP2_TEXTURE_COORD_1" group="MapTarget,EnableCap,GetPName"/>
+        <enum value="0x0DB4" name="GL_MAP2_TEXTURE_COORD_2" group="MapTarget,EnableCap,GetPName"/>
+        <enum value="0x0DB5" name="GL_MAP2_TEXTURE_COORD_3" group="MapTarget,EnableCap,GetPName"/>
+        <enum value="0x0DB6" name="GL_MAP2_TEXTURE_COORD_4" group="MapTarget,EnableCap,GetPName"/>
+        <enum value="0x0DB7" name="GL_MAP2_VERTEX_3" group="MapTarget,EnableCap,GetPName"/>
+        <enum value="0x0DB8" name="GL_MAP2_VERTEX_4" group="MapTarget,EnableCap,GetPName"/>
 
-        <enum value="0x0DD0" name="GL_MAP1_GRID_DOMAIN"/>
-        <enum value="0x0DD1" name="GL_MAP1_GRID_SEGMENTS"/>
-        <enum value="0x0DD2" name="GL_MAP2_GRID_DOMAIN"/>
-        <enum value="0x0DD3" name="GL_MAP2_GRID_SEGMENTS"/>
+        <enum value="0x0DD0" name="GL_MAP1_GRID_DOMAIN" group="GetPName"/>
+        <enum value="0x0DD1" name="GL_MAP1_GRID_SEGMENTS" group="GetPName"/>
+        <enum value="0x0DD2" name="GL_MAP2_GRID_DOMAIN" group="GetPName"/>
+        <enum value="0x0DD3" name="GL_MAP2_GRID_SEGMENTS" group="GetPName"/>
 
-        <enum value="0x0DE0" name="GL_TEXTURE_1D"/>
-        <enum value="0x0DE1" name="GL_TEXTURE_2D"/>
+        <enum value="0x0DE0" name="GL_TEXTURE_1D" group="CopyImageSubDataTarget,EnableCap,GetPName,TextureTarget"/>
+        <enum value="0x0DE1" name="GL_TEXTURE_2D" group="CopyImageSubDataTarget,EnableCap,GetPName,TextureTarget"/>
 
-        <enum value="0x0DF0" name="GL_FEEDBACK_BUFFER_POINTER"/>
-        <enum value="0x0DF1" name="GL_FEEDBACK_BUFFER_SIZE"/>
-        <enum value="0x0DF2" name="GL_FEEDBACK_BUFFER_TYPE"/>
-        <enum value="0x0DF3" name="GL_SELECTION_BUFFER_POINTER"/>
-        <enum value="0x0DF4" name="GL_SELECTION_BUFFER_SIZE"/>
+        <enum value="0x0DF0" name="GL_FEEDBACK_BUFFER_POINTER" group="GetPointervPName"/>
+        <enum value="0x0DF1" name="GL_FEEDBACK_BUFFER_SIZE" group="GetPName"/>
+        <enum value="0x0DF2" name="GL_FEEDBACK_BUFFER_TYPE" group="GetPName"/>
+        <enum value="0x0DF3" name="GL_SELECTION_BUFFER_POINTER" group="GetPointervPName"/>
+        <enum value="0x0DF4" name="GL_SELECTION_BUFFER_SIZE" group="GetPName"/>
             <unused start="0x0DF5" end="0xFFFF" comment="Unused for GetPName"/>
-        <enum value="0x1000" name="GL_TEXTURE_WIDTH"/>
-        <enum value="0x1001" name="GL_TEXTURE_HEIGHT"/>
-        <enum value="0x1003" name="GL_TEXTURE_INTERNAL_FORMAT"/>
-        <enum value="0x1003" name="GL_TEXTURE_COMPONENTS"/>
-        <enum value="0x1004" name="GL_TEXTURE_BORDER_COLOR"/>
+        <enum value="0x1000" name="GL_TEXTURE_WIDTH" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x1001" name="GL_TEXTURE_HEIGHT" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x1003" name="GL_TEXTURE_INTERNAL_FORMAT" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x1003" name="GL_TEXTURE_COMPONENTS" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x1004" name="GL_TEXTURE_BORDER_COLOR" group="SamplerParameterF,GetTextureParameter,TextureParameterName"/>
         <enum value="0x1004" name="GL_TEXTURE_BORDER_COLOR_EXT"/>
-        <enum value="0x1004" name="GL_TEXTURE_BORDER_COLOR_NV"/>
+        <enum value="0x1004" name="GL_TEXTURE_BORDER_COLOR_NV" group="TextureParameterName,GetTextureParameter"/>
         <enum value="0x1004" name="GL_TEXTURE_BORDER_COLOR_OES"/>
-        <enum value="0x1005" name="GL_TEXTURE_BORDER"/>
+        <enum value="0x1005" name="GL_TEXTURE_BORDER" group="TextureParameterName,GetTextureParameter"/>
         <enum value="0x1006" name="GL_TEXTURE_TARGET"/>
             <unused start="0x1007" end="0x10FF" comment="Unused for GetTextureParameter"/>
-        <enum value="0x1100" name="GL_DONT_CARE"/>
-        <enum value="0x1101" name="GL_FASTEST"/>
-        <enum value="0x1102" name="GL_NICEST"/>
+        <enum value="0x1100" name="GL_DONT_CARE" group="DebugSeverity,HintMode,DebugSource,DebugType"/>
+        <enum value="0x1101" name="GL_FASTEST" group="HintMode"/>
+        <enum value="0x1102" name="GL_NICEST" group="HintMode"/>
             <unused start="0x1103" end="0x11FF" comment="Unused for HintMode"/>
-        <enum value="0x1200" name="GL_AMBIENT"/>
-        <enum value="0x1201" name="GL_DIFFUSE"/>
-        <enum value="0x1202" name="GL_SPECULAR"/>
-        <enum value="0x1203" name="GL_POSITION"/>
-        <enum value="0x1204" name="GL_SPOT_DIRECTION"/>
-        <enum value="0x1205" name="GL_SPOT_EXPONENT"/>
-        <enum value="0x1206" name="GL_SPOT_CUTOFF"/>
-        <enum value="0x1207" name="GL_CONSTANT_ATTENUATION"/>
-        <enum value="0x1208" name="GL_LINEAR_ATTENUATION"/>
-        <enum value="0x1209" name="GL_QUADRATIC_ATTENUATION"/>
+        <enum value="0x1200" name="GL_AMBIENT" group="MaterialParameter,FragmentLightParameterSGIX,ColorMaterialParameter"/>
+        <enum value="0x1201" name="GL_DIFFUSE" group="MaterialParameter,FragmentLightParameterSGIX,ColorMaterialParameter"/>
+        <enum value="0x1202" name="GL_SPECULAR" group="MaterialParameter,FragmentLightParameterSGIX,ColorMaterialParameter"/>
+        <enum value="0x1203" name="GL_POSITION" group="LightParameter,FragmentLightParameterSGIX"/>
+        <enum value="0x1204" name="GL_SPOT_DIRECTION" group="LightParameter,FragmentLightParameterSGIX"/>
+        <enum value="0x1205" name="GL_SPOT_EXPONENT" group="LightParameter,FragmentLightParameterSGIX"/>
+        <enum value="0x1206" name="GL_SPOT_CUTOFF" group="LightParameter,FragmentLightParameterSGIX"/>
+        <enum value="0x1207" name="GL_CONSTANT_ATTENUATION" group="LightParameter,FragmentLightParameterSGIX"/>
+        <enum value="0x1208" name="GL_LINEAR_ATTENUATION" group="LightParameter,FragmentLightParameterSGIX"/>
+        <enum value="0x1209" name="GL_QUADRATIC_ATTENUATION" group="LightParameter,FragmentLightParameterSGIX"/>
             <unused start="0x1210" end="0x12FF" comment="Unused for LightParameter"/>
-        <enum value="0x1300" name="GL_COMPILE"/>
-        <enum value="0x1301" name="GL_COMPILE_AND_EXECUTE"/>
+        <enum value="0x1300" name="GL_COMPILE" group="ListMode"/>
+        <enum value="0x1301" name="GL_COMPILE_AND_EXECUTE" group="ListMode"/>
             <unused start="0x1302" end="0x13FF" comment="Unused for ListMode"/>
-        <enum value="0x1400" name="GL_BYTE"/>
-        <enum value="0x1401" name="GL_UNSIGNED_BYTE"/>
-        <enum value="0x1402" name="GL_SHORT"/>
-        <enum value="0x1403" name="GL_UNSIGNED_SHORT"/>
-        <enum value="0x1404" name="GL_INT"/>
-        <enum value="0x1405" name="GL_UNSIGNED_INT"/>
-        <enum value="0x1406" name="GL_FLOAT"/>
-        <enum value="0x1407" name="GL_2_BYTES"/>
+        <enum value="0x1400" name="GL_BYTE" group="VertexAttribIType,WeightPointerTypeARB,TangentPointerTypeEXT,BinormalPointerTypeEXT,ColorPointerType,ListNameType,NormalPointerType,PixelType,VertexAttribType,VertexAttribPointerType"/>
+        <enum value="0x1401" name="GL_UNSIGNED_BYTE" group="VertexAttribIType,ScalarType,ReplacementCodeTypeSUN,ElementPointerTypeATI,MatrixIndexPointerTypeARB,WeightPointerTypeARB,ColorPointerType,DrawElementsType,ListNameType,PixelType,VertexAttribType,VertexAttribPointerType"/>
+        <enum value="0x1402" name="GL_SHORT" group="VertexAttribIType,SecondaryColorPointerTypeIBM,WeightPointerTypeARB,TangentPointerTypeEXT,BinormalPointerTypeEXT,IndexPointerType,ListNameType,NormalPointerType,PixelType,TexCoordPointerType,VertexPointerType,VertexAttribType,VertexAttribPointerType"/>
+        <enum value="0x1403" name="GL_UNSIGNED_SHORT" group="VertexAttribIType,ScalarType,ReplacementCodeTypeSUN,ElementPointerTypeATI,MatrixIndexPointerTypeARB,WeightPointerTypeARB,ColorPointerType,DrawElementsType,ListNameType,PixelFormat,PixelType,VertexAttribType,VertexAttribPointerType"/>
+        <enum value="0x1404" name="GL_INT" group="VertexAttribIType,SecondaryColorPointerTypeIBM,WeightPointerTypeARB,TangentPointerTypeEXT,BinormalPointerTypeEXT,IndexPointerType,ListNameType,NormalPointerType,PixelType,TexCoordPointerType,VertexPointerType,VertexAttribType,AttributeType,UniformType,VertexAttribPointerType,GlslTypeToken"/>
+        <enum value="0x1405" name="GL_UNSIGNED_INT" group="VertexAttribIType,ScalarType,ReplacementCodeTypeSUN,ElementPointerTypeATI,MatrixIndexPointerTypeARB,WeightPointerTypeARB,ColorPointerType,DrawElementsType,ListNameType,PixelFormat,PixelType,VertexAttribType,AttributeType,UniformType,VertexAttribPointerType,GlslTypeToken"/>
+        <enum value="0x1406" name="GL_FLOAT" group="GlslTypeToken,MapTypeNV,SecondaryColorPointerTypeIBM,WeightPointerTypeARB,VertexWeightPointerTypeEXT,TangentPointerTypeEXT,BinormalPointerTypeEXT,FogCoordinatePointerType,FogPointerTypeEXT,FogPointerTypeIBM,IndexPointerType,ListNameType,NormalPointerType,PixelType,TexCoordPointerType,VertexPointerType,VertexAttribType,AttributeType,UniformType,VertexAttribPointerType"/>
+        <enum value="0x1407" name="GL_2_BYTES" group="ListNameType"/>
         <enum value="0x1407" name="GL_2_BYTES_NV"/>
-        <enum value="0x1408" name="GL_3_BYTES"/>
+        <enum value="0x1408" name="GL_3_BYTES" group="ListNameType"/>
         <enum value="0x1408" name="GL_3_BYTES_NV"/>
-        <enum value="0x1409" name="GL_4_BYTES"/>
+        <enum value="0x1409" name="GL_4_BYTES" group="ListNameType"/>
         <enum value="0x1409" name="GL_4_BYTES_NV"/>
-        <enum value="0x140A" name="GL_DOUBLE"/>
-        <enum value="0x140A" name="GL_DOUBLE_EXT"/>
-        <enum value="0x140B" name="GL_HALF_FLOAT"/>
+        <enum value="0x140A" name="GL_DOUBLE" group="VertexAttribLType,MapTypeNV,SecondaryColorPointerTypeIBM,WeightPointerTypeARB,TangentPointerTypeEXT,BinormalPointerTypeEXT,FogCoordinatePointerType,FogPointerTypeEXT,FogPointerTypeIBM,IndexPointerType,NormalPointerType,TexCoordPointerType,VertexPointerType,VertexAttribType,AttributeType,UniformType,VertexAttribPointerType,GlslTypeToken"/>
+        <enum value="0x140A" name="GL_DOUBLE_EXT" group="BinormalPointerTypeEXT,TangentPointerTypeEXT"/>
+        <enum value="0x140B" name="GL_HALF_FLOAT" group="VertexAttribPointerType,VertexAttribType"/>
         <enum value="0x140B" name="GL_HALF_FLOAT_ARB"/>
         <enum value="0x140B" name="GL_HALF_FLOAT_NV"/>
         <enum value="0x140B" name="GL_HALF_APPLE"/>
-        <enum value="0x140C" name="GL_FIXED"/>
+        <enum value="0x140C" name="GL_FIXED" group="VertexAttribPointerType,VertexAttribType"/>
         <enum value="0x140C" name="GL_FIXED_OES"/>
             <unused start="0x140D" comment="Leave gap to preserve even/odd int/uint token values"/>
-        <enum value="0x140E" name="GL_INT64_ARB"/>
-        <enum value="0x140E" name="GL_INT64_NV"/>
-        <enum value="0x140F" name="GL_UNSIGNED_INT64_ARB"/>
-        <enum value="0x140F" name="GL_UNSIGNED_INT64_NV"/>
+        <enum value="0x140E" name="GL_INT64_ARB" group="VertexAttribPointerType,AttributeType"/>
+        <enum value="0x140E" name="GL_INT64_NV" group="VertexAttribPointerType,AttributeType"/>
+        <enum value="0x140F" name="GL_UNSIGNED_INT64_ARB" group="VertexAttribPointerType,AttributeType"/>
+        <enum value="0x140F" name="GL_UNSIGNED_INT64_NV" group="VertexAttribPointerType,AttributeType"/>
             <unused start="0x1410" end="0x14FF" comment="Unused for DataType"/>
-        <enum value="0x1500" name="GL_CLEAR"/>
-        <enum value="0x1501" name="GL_AND"/>
-        <enum value="0x1502" name="GL_AND_REVERSE"/>
-        <enum value="0x1503" name="GL_COPY"/>
-        <enum value="0x1504" name="GL_AND_INVERTED"/>
-        <enum value="0x1505" name="GL_NOOP"/>
-        <enum value="0x1506" name="GL_XOR"/>
+        <enum value="0x1500" name="GL_CLEAR" group="LogicOp"/>
+        <enum value="0x1501" name="GL_AND" group="LogicOp"/>
+        <enum value="0x1502" name="GL_AND_REVERSE" group="LogicOp"/>
+        <enum value="0x1503" name="GL_COPY" group="LogicOp"/>
+        <enum value="0x1504" name="GL_AND_INVERTED" group="LogicOp"/>
+        <enum value="0x1505" name="GL_NOOP" group="LogicOp"/>
+        <enum value="0x1506" name="GL_XOR" group="LogicOp"/>
         <enum value="0x1506" name="GL_XOR_NV"/>
-        <enum value="0x1507" name="GL_OR"/>
-        <enum value="0x1508" name="GL_NOR"/>
-        <enum value="0x1509" name="GL_EQUIV"/>
-        <enum value="0x150A" name="GL_INVERT"/>
-        <enum value="0x150B" name="GL_OR_REVERSE"/>
-        <enum value="0x150C" name="GL_COPY_INVERTED"/>
-        <enum value="0x150D" name="GL_OR_INVERTED"/>
-        <enum value="0x150E" name="GL_NAND"/>
-        <enum value="0x150F" name="GL_SET"/>
+        <enum value="0x1507" name="GL_OR" group="LogicOp"/>
+        <enum value="0x1508" name="GL_NOR" group="LogicOp"/>
+        <enum value="0x1509" name="GL_EQUIV" group="LogicOp"/>
+        <enum value="0x150A" name="GL_INVERT" group="PathFillMode,LogicOp,StencilOp"/>
+        <enum value="0x150B" name="GL_OR_REVERSE" group="LogicOp"/>
+        <enum value="0x150C" name="GL_COPY_INVERTED" group="LogicOp"/>
+        <enum value="0x150D" name="GL_OR_INVERTED" group="LogicOp"/>
+        <enum value="0x150E" name="GL_NAND" group="LogicOp"/>
+        <enum value="0x150F" name="GL_SET" group="LogicOp"/>
             <unused start="0x1510" end="0x15FF" comment="Unused for LogicOp"/>
-        <enum value="0x1600" name="GL_EMISSION"/>
-        <enum value="0x1601" name="GL_SHININESS"/>
-        <enum value="0x1602" name="GL_AMBIENT_AND_DIFFUSE"/>
-        <enum value="0x1603" name="GL_COLOR_INDEXES"/>
+        <enum value="0x1600" name="GL_EMISSION" group="MaterialParameter,ColorMaterialParameter"/>
+        <enum value="0x1601" name="GL_SHININESS" group="MaterialParameter"/>
+        <enum value="0x1602" name="GL_AMBIENT_AND_DIFFUSE" group="MaterialParameter,ColorMaterialParameter"/>
+        <enum value="0x1603" name="GL_COLOR_INDEXES" group="MaterialParameter"/>
             <unused start="0x1604" end="0x16FF" comment="Unused for MaterialParameter"/>
-        <enum value="0x1700" name="GL_MODELVIEW"/>
+        <enum value="0x1700" name="GL_MODELVIEW" group="MatrixMode"/>
         <enum value="0x1700" name="GL_MODELVIEW0_ARB"/>
-        <enum value="0x1700" name="GL_MODELVIEW0_EXT"/>
+        <enum value="0x1700" name="GL_MODELVIEW0_EXT" group="MatrixMode"/>
         <enum value="0x1700" name="GL_PATH_MODELVIEW_NV"/>
-        <enum value="0x1701" name="GL_PROJECTION"/>
+        <enum value="0x1701" name="GL_PROJECTION" group="MatrixMode"/>
         <enum value="0x1701" name="GL_PATH_PROJECTION_NV"/>
-        <enum value="0x1702" name="GL_TEXTURE"/>
+        <enum value="0x1702" name="GL_TEXTURE" group="ObjectIdentifier,MatrixMode"/>
             <unused start="0x1703" end="0x17FF" comment="Unused for MatrixMode"/>
-        <enum value="0x1800" name="GL_COLOR"/>
-        <enum value="0x1800" name="GL_COLOR_EXT"/>
-        <enum value="0x1801" name="GL_DEPTH"/>
-        <enum value="0x1801" name="GL_DEPTH_EXT"/>
-        <enum value="0x1802" name="GL_STENCIL"/>
-        <enum value="0x1802" name="GL_STENCIL_EXT"/>
+        <enum value="0x1800" name="GL_COLOR" group="Buffer,PixelCopyType,InvalidateFramebufferAttachment"/>
+        <enum value="0x1800" name="GL_COLOR_EXT" group="PixelCopyType"/>
+        <enum value="0x1801" name="GL_DEPTH" group="Buffer,PixelCopyType,InvalidateFramebufferAttachment"/>
+        <enum value="0x1801" name="GL_DEPTH_EXT" group="PixelCopyType"/>
+        <enum value="0x1802" name="GL_STENCIL" group="Buffer,PixelCopyType,InvalidateFramebufferAttachment"/>
+        <enum value="0x1802" name="GL_STENCIL_EXT" group="PixelCopyType"/>
             <unused start="0x1803" end="0x18FF" comment="Unused for PixelCopyType"/>
-        <enum value="0x1900" name="GL_COLOR_INDEX"/>
-        <enum value="0x1901" name="GL_STENCIL_INDEX"/>
-        <enum value="0x1901" name="GL_STENCIL_INDEX_OES"/>
-        <enum value="0x1902" name="GL_DEPTH_COMPONENT"/>
-        <enum value="0x1903" name="GL_RED"/>
-        <enum value="0x1903" name="GL_RED_EXT"/>
+        <enum value="0x1900" name="GL_COLOR_INDEX" group="PixelFormat"/>
+        <enum value="0x1901" name="GL_STENCIL_INDEX" group="InternalFormat,PixelFormat"/>
+        <enum value="0x1901" name="GL_STENCIL_INDEX_OES" group="InternalFormat"/>
+        <enum value="0x1902" name="GL_DEPTH_COMPONENT" group="InternalFormat,PixelFormat"/>
+        <enum value="0x1903" name="GL_RED" group="TextureSwizzle,PixelFormat,InternalFormat"/>
+        <enum value="0x1903" name="GL_RED_EXT" group="InternalFormat,PixelFormat"/>
         <enum value="0x1903" name="GL_RED_NV"/>
-        <enum value="0x1904" name="GL_GREEN"/>
+        <enum value="0x1904" name="GL_GREEN" group="TextureSwizzle,PixelFormat"/>
         <enum value="0x1904" name="GL_GREEN_NV"/>
-        <enum value="0x1905" name="GL_BLUE"/>
+        <enum value="0x1905" name="GL_BLUE" group="TextureSwizzle,CombinerComponentUsageNV,PixelFormat"/>
         <enum value="0x1905" name="GL_BLUE_NV"/>
-        <enum value="0x1906" name="GL_ALPHA"/>
-        <enum value="0x1907" name="GL_RGB"/>
-        <enum value="0x1908" name="GL_RGBA"/>
-        <enum value="0x1909" name="GL_LUMINANCE"/>
-        <enum value="0x190A" name="GL_LUMINANCE_ALPHA"/>
+        <enum value="0x1906" name="GL_ALPHA" group="TextureSwizzle,CombinerPortionNV,PathColorFormat,CombinerComponentUsageNV,PixelFormat"/>
+        <enum value="0x1907" name="GL_RGB" group="PixelTexGenMode,CombinerPortionNV,PathColorFormat,CombinerComponentUsageNV,PixelFormat,InternalFormat"/>
+        <enum value="0x1908" name="GL_RGBA" group="PixelTexGenMode,PathColorFormat,PixelFormat,InternalFormat"/>
+        <enum value="0x1909" name="GL_LUMINANCE" group="PixelTexGenMode,PathColorFormat,PixelFormat"/>
+        <enum value="0x190A" name="GL_LUMINANCE_ALPHA" group="PixelTexGenMode,PathColorFormat,PixelFormat"/>
             <unused start="0x1910" end="0x19FF" comment="Unused for PixelFormat"/>
-        <enum value="0x1A00" name="GL_BITMAP"/>
+        <enum value="0x1A00" name="GL_BITMAP" group="PixelType"/>
             <unused start="0x1A01" end="0x1AFF" comment="Unused for PixelType"/>
-        <enum value="0x1B00" name="GL_POINT"/>
+        <enum value="0x1B00" name="GL_POINT" group="PolygonMode,MeshMode1,MeshMode2"/>
         <enum value="0x1B00" name="GL_POINT_NV"/>
-        <enum value="0x1B01" name="GL_LINE"/>
+        <enum value="0x1B01" name="GL_LINE" group="PolygonMode,MeshMode1,MeshMode2"/>
         <enum value="0x1B01" name="GL_LINE_NV"/>
-        <enum value="0x1B02" name="GL_FILL"/>
-        <enum value="0x1B02" name="GL_FILL_NV"/>
+        <enum value="0x1B02" name="GL_FILL" group="PolygonMode,MeshMode2"/>
+        <enum value="0x1B02" name="GL_FILL_NV" group="EvalMapsModeNV"/>
             <unused start="0x1B03" end="0x1BFF" comment="Unused for PolygonMode"/>
-        <enum value="0x1C00" name="GL_RENDER"/>
-        <enum value="0x1C01" name="GL_FEEDBACK"/>
-        <enum value="0x1C02" name="GL_SELECT"/>
+        <enum value="0x1C00" name="GL_RENDER" group="RenderingMode"/>
+        <enum value="0x1C01" name="GL_FEEDBACK" group="RenderingMode"/>
+        <enum value="0x1C02" name="GL_SELECT" group="RenderingMode"/>
             <unused start="0x1C03" end="0x1CFF" comment="Unused for RenderingMode"/>
-        <enum value="0x1D00" name="GL_FLAT"/>
-        <enum value="0x1D01" name="GL_SMOOTH"/>
+        <enum value="0x1D00" name="GL_FLAT" group="ShadingModel"/>
+        <enum value="0x1D01" name="GL_SMOOTH" group="ShadingModel"/>
             <unused start="0x1D02" end="0x1DFF" comment="Unused for ShadingModel"/>
-        <enum value="0x1E00" name="GL_KEEP"/>
-        <enum value="0x1E01" name="GL_REPLACE"/>
-        <enum value="0x1E02" name="GL_INCR"/>
-        <enum value="0x1E03" name="GL_DECR"/>
+        <enum value="0x1E00" name="GL_KEEP" group="StencilOp"/>
+        <enum value="0x1E01" name="GL_REPLACE" group="StencilOp,LightEnvModeSGIX"/>
+        <enum value="0x1E02" name="GL_INCR" group="StencilOp"/>
+        <enum value="0x1E03" name="GL_DECR" group="StencilOp"/>
             <unused start="0x1E04" end="0x1EFF" comment="Unused for StencilOp"/>
-        <enum value="0x1F00" name="GL_VENDOR"/>
-        <enum value="0x1F01" name="GL_RENDERER"/>
-        <enum value="0x1F02" name="GL_VERSION"/>
-        <enum value="0x1F03" name="GL_EXTENSIONS"/>
+        <enum value="0x1F00" name="GL_VENDOR" group="StringName"/>
+        <enum value="0x1F01" name="GL_RENDERER" group="StringName"/>
+        <enum value="0x1F02" name="GL_VERSION" group="StringName"/>
+        <enum value="0x1F03" name="GL_EXTENSIONS" group="StringName"/>
             <unused start="0x1F04" end="0x1FFF" comment="Unused for StringName"/>
-        <enum value="0x2000" name="GL_S"/>
-        <enum value="0x2001" name="GL_T"/>
-        <enum value="0x2002" name="GL_R"/>
-        <enum value="0x2003" name="GL_Q"/>
+        <enum value="0x2000" name="GL_S" group="TextureCoordName"/>
+        <enum value="0x2001" name="GL_T" group="TextureCoordName"/>
+        <enum value="0x2002" name="GL_R" group="TextureCoordName"/>
+        <enum value="0x2003" name="GL_Q" group="TextureCoordName"/>
             <unused start="0x2004" end="0x20FF" comment="Unused for TextureCoordName"/>
-        <enum value="0x2100" name="GL_MODULATE"/>
-        <enum value="0x2101" name="GL_DECAL"/>
+        <enum value="0x2100" name="GL_MODULATE" group="TextureEnvMode,LightEnvModeSGIX"/>
+        <enum value="0x2101" name="GL_DECAL" group="TextureEnvMode"/>
             <unused start="0x2102" end="0x21FF" comment="Unused for TextureEnvMode"/>
-        <enum value="0x2200" name="GL_TEXTURE_ENV_MODE"/>
-        <enum value="0x2201" name="GL_TEXTURE_ENV_COLOR"/>
+        <enum value="0x2200" name="GL_TEXTURE_ENV_MODE" group="TextureEnvParameter"/>
+        <enum value="0x2201" name="GL_TEXTURE_ENV_COLOR" group="TextureEnvParameter"/>
             <unused start="0x2202" end="0x22FF" comment="Unused for TextureEnvParameter"/>
-        <enum value="0x2300" name="GL_TEXTURE_ENV"/>
+        <enum value="0x2300" name="GL_TEXTURE_ENV" group="TextureEnvTarget"/>
             <unused start="0x2301" end="0x23FF" comment="Unused for TextureEnvTarget"/>
-        <enum value="0x2400" name="GL_EYE_LINEAR"/>
+        <enum value="0x2400" name="GL_EYE_LINEAR" group="PathGenMode,TextureGenMode"/>
         <enum value="0x2400" name="GL_EYE_LINEAR_NV"/>
-        <enum value="0x2401" name="GL_OBJECT_LINEAR"/>
+        <enum value="0x2401" name="GL_OBJECT_LINEAR" group="PathGenMode,TextureGenMode"/>
         <enum value="0x2401" name="GL_OBJECT_LINEAR_NV"/>
-        <enum value="0x2402" name="GL_SPHERE_MAP"/>
+        <enum value="0x2402" name="GL_SPHERE_MAP" group="TextureGenMode"/>
             <unused start="0x2403" end="0x24FF" comment="Unused for TextureGenMode"/>
-        <enum value="0x2500" name="GL_TEXTURE_GEN_MODE"/>
+        <enum value="0x2500" name="GL_TEXTURE_GEN_MODE" group="TextureGenParameter"/>
         <enum value="0x2500" name="GL_TEXTURE_GEN_MODE_OES"/>
-        <enum value="0x2501" name="GL_OBJECT_PLANE"/>
-        <enum value="0x2502" name="GL_EYE_PLANE"/>
+        <enum value="0x2501" name="GL_OBJECT_PLANE" group="TextureGenParameter"/>
+        <enum value="0x2502" name="GL_EYE_PLANE" group="TextureGenParameter"/>
             <unused start="0x2503" end="0x25FF" comment="Unused for TextureGenParameter"/>
-        <enum value="0x2600" name="GL_NEAREST"/>
-        <enum value="0x2601" name="GL_LINEAR"/>
+        <enum value="0x2600" name="GL_NEAREST" group="BlitFramebufferFilter,TextureMagFilter,TextureMinFilter"/>
+        <enum value="0x2601" name="GL_LINEAR" group="BlitFramebufferFilter,FogMode,TextureMagFilter,TextureMinFilter"/>
             <unused start="0x2602" end="0x26FF" comment="Unused for TextureMagFilter"/>
-        <enum value="0x2700" name="GL_NEAREST_MIPMAP_NEAREST"/>
-        <enum value="0x2701" name="GL_LINEAR_MIPMAP_NEAREST"/>
-        <enum value="0x2702" name="GL_NEAREST_MIPMAP_LINEAR"/>
-        <enum value="0x2703" name="GL_LINEAR_MIPMAP_LINEAR"/>
+        <enum value="0x2700" name="GL_NEAREST_MIPMAP_NEAREST" group="TextureMinFilter"/>
+        <enum value="0x2701" name="GL_LINEAR_MIPMAP_NEAREST" group="TextureMinFilter"/>
+        <enum value="0x2702" name="GL_NEAREST_MIPMAP_LINEAR" group="TextureMinFilter"/>
+        <enum value="0x2703" name="GL_LINEAR_MIPMAP_LINEAR" group="TextureWrapMode,TextureMinFilter"/>
             <unused start="0x2704" end="0x27FF" comment="Unused for TextureMinFilter"/>
-        <enum value="0x2800" name="GL_TEXTURE_MAG_FILTER"/>
-        <enum value="0x2801" name="GL_TEXTURE_MIN_FILTER"/>
-        <enum value="0x2802" name="GL_TEXTURE_WRAP_S"/>
-        <enum value="0x2803" name="GL_TEXTURE_WRAP_T"/>
+        <enum value="0x2800" name="GL_TEXTURE_MAG_FILTER" group="SamplerParameterI,GetTextureParameter,TextureParameterName"/>
+        <enum value="0x2801" name="GL_TEXTURE_MIN_FILTER" group="SamplerParameterI,GetTextureParameter,TextureParameterName"/>
+        <enum value="0x2802" name="GL_TEXTURE_WRAP_S" group="SamplerParameterI,GetTextureParameter,TextureParameterName"/>
+        <enum value="0x2803" name="GL_TEXTURE_WRAP_T" group="SamplerParameterI,GetTextureParameter,TextureParameterName"/>
             <unused start="0x2804" end="0x28FF" comment="Unused for TextureParameterName"/>
-        <enum value="0x2900" name="GL_CLAMP"/>
-        <enum value="0x2901" name="GL_REPEAT"/>
+        <enum value="0x2900" name="GL_CLAMP" group="TextureWrapMode"/>
+        <enum value="0x2901" name="GL_REPEAT" group="TextureWrapMode"/>
             <unused start="0x2902" end="0x29FF" comment="Unused for TextureWrapMode"/>
-        <enum value="0x2A00" name="GL_POLYGON_OFFSET_UNITS"/>
-        <enum value="0x2A01" name="GL_POLYGON_OFFSET_POINT"/>
+        <enum value="0x2A00" name="GL_POLYGON_OFFSET_UNITS" group="GetPName"/>
+        <enum value="0x2A01" name="GL_POLYGON_OFFSET_POINT" group="GetPName,EnableCap"/>
         <enum value="0x2A01" name="GL_POLYGON_OFFSET_POINT_NV"/>
-        <enum value="0x2A02" name="GL_POLYGON_OFFSET_LINE"/>
+        <enum value="0x2A02" name="GL_POLYGON_OFFSET_LINE" group="GetPName,EnableCap"/>
         <enum value="0x2A02" name="GL_POLYGON_OFFSET_LINE_NV"/>
             <unused start="0x2A03" end="0x2A09" comment="Unused for PolygonOffset"/>
-        <enum value="0x2A10" name="GL_R3_G3_B2"/>
+        <enum value="0x2A10" name="GL_R3_G3_B2" group="InternalFormat"/>
             <unused start="0x2A11" end="0x2A1F" comment="Unused for InternalFormat"/>
-        <enum value="0x2A20" name="GL_V2F"/>
-        <enum value="0x2A21" name="GL_V3F"/>
-        <enum value="0x2A22" name="GL_C4UB_V2F"/>
-        <enum value="0x2A23" name="GL_C4UB_V3F"/>
-        <enum value="0x2A24" name="GL_C3F_V3F"/>
-        <enum value="0x2A25" name="GL_N3F_V3F"/>
-        <enum value="0x2A26" name="GL_C4F_N3F_V3F"/>
-        <enum value="0x2A27" name="GL_T2F_V3F"/>
-        <enum value="0x2A28" name="GL_T4F_V4F"/>
-        <enum value="0x2A29" name="GL_T2F_C4UB_V3F"/>
-        <enum value="0x2A2A" name="GL_T2F_C3F_V3F"/>
-        <enum value="0x2A2B" name="GL_T2F_N3F_V3F"/>
-        <enum value="0x2A2C" name="GL_T2F_C4F_N3F_V3F"/>
-        <enum value="0x2A2D" name="GL_T4F_C4F_N3F_V4F"/>
+        <enum value="0x2A20" name="GL_V2F" group="InterleavedArrayFormat"/>
+        <enum value="0x2A21" name="GL_V3F" group="InterleavedArrayFormat"/>
+        <enum value="0x2A22" name="GL_C4UB_V2F" group="InterleavedArrayFormat"/>
+        <enum value="0x2A23" name="GL_C4UB_V3F" group="InterleavedArrayFormat"/>
+        <enum value="0x2A24" name="GL_C3F_V3F" group="InterleavedArrayFormat"/>
+        <enum value="0x2A25" name="GL_N3F_V3F" group="InterleavedArrayFormat"/>
+        <enum value="0x2A26" name="GL_C4F_N3F_V3F" group="InterleavedArrayFormat"/>
+        <enum value="0x2A27" name="GL_T2F_V3F" group="InterleavedArrayFormat"/>
+        <enum value="0x2A28" name="GL_T4F_V4F" group="InterleavedArrayFormat"/>
+        <enum value="0x2A29" name="GL_T2F_C4UB_V3F" group="InterleavedArrayFormat"/>
+        <enum value="0x2A2A" name="GL_T2F_C3F_V3F" group="InterleavedArrayFormat"/>
+        <enum value="0x2A2B" name="GL_T2F_N3F_V3F" group="InterleavedArrayFormat"/>
+        <enum value="0x2A2C" name="GL_T2F_C4F_N3F_V3F" group="InterleavedArrayFormat"/>
+        <enum value="0x2A2D" name="GL_T4F_C4F_N3F_V4F" group="InterleavedArrayFormat"/>
             <unused start="0x2A2E" end="0x2FFF" comment="Unused for InterleavedArrayFormat"/>
-        <enum value="0x3000" name="GL_CLIP_PLANE0"/>
+        <enum value="0x3000" name="GL_CLIP_PLANE0" group="GetPName,ClipPlaneName,EnableCap"/>
         <enum value="0x3000" name="GL_CLIP_PLANE0_IMG"/>
-        <enum value="0x3000" name="GL_CLIP_DISTANCE0" alias="GL_CLIP_PLANE0"/>
+        <enum value="0x3000" name="GL_CLIP_DISTANCE0" alias="GL_CLIP_PLANE0" group="EnableCap,ClipPlaneName"/>
         <enum value="0x3000" name="GL_CLIP_DISTANCE0_EXT" alias="GL_CLIP_PLANE0"/>
         <enum value="0x3000" name="GL_CLIP_DISTANCE0_APPLE"/>
-        <enum value="0x3001" name="GL_CLIP_PLANE1"/>
+        <enum value="0x3001" name="GL_CLIP_PLANE1" group="GetPName,ClipPlaneName,EnableCap"/>
         <enum value="0x3001" name="GL_CLIP_PLANE1_IMG"/>
-        <enum value="0x3001" name="GL_CLIP_DISTANCE1" alias="GL_CLIP_PLANE1"/>
+        <enum value="0x3001" name="GL_CLIP_DISTANCE1" alias="GL_CLIP_PLANE1" group="EnableCap,ClipPlaneName"/>
         <enum value="0x3001" name="GL_CLIP_DISTANCE1_EXT" alias="GL_CLIP_PLANE1"/>
         <enum value="0x3001" name="GL_CLIP_DISTANCE1_APPLE"/>
-        <enum value="0x3002" name="GL_CLIP_PLANE2"/>
+        <enum value="0x3002" name="GL_CLIP_PLANE2" group="GetPName,ClipPlaneName,EnableCap"/>
         <enum value="0x3002" name="GL_CLIP_PLANE2_IMG"/>
-        <enum value="0x3002" name="GL_CLIP_DISTANCE2" alias="GL_CLIP_PLANE2"/>
+        <enum value="0x3002" name="GL_CLIP_DISTANCE2" alias="GL_CLIP_PLANE2" group="EnableCap,ClipPlaneName"/>
         <enum value="0x3002" name="GL_CLIP_DISTANCE2_EXT" alias="GL_CLIP_PLANE2"/>
         <enum value="0x3002" name="GL_CLIP_DISTANCE2_APPLE"/>
-        <enum value="0x3003" name="GL_CLIP_PLANE3"/>
+        <enum value="0x3003" name="GL_CLIP_PLANE3" group="GetPName,ClipPlaneName,EnableCap"/>
         <enum value="0x3003" name="GL_CLIP_PLANE3_IMG"/>
-        <enum value="0x3003" name="GL_CLIP_DISTANCE3" alias="GL_CLIP_PLANE3"/>
+        <enum value="0x3003" name="GL_CLIP_DISTANCE3" alias="GL_CLIP_PLANE3" group="EnableCap,ClipPlaneName"/>
         <enum value="0x3003" name="GL_CLIP_DISTANCE3_EXT" alias="GL_CLIP_PLANE3"/>
         <enum value="0x3003" name="GL_CLIP_DISTANCE3_APPLE"/>
-        <enum value="0x3004" name="GL_CLIP_PLANE4"/>
+        <enum value="0x3004" name="GL_CLIP_PLANE4" group="GetPName,ClipPlaneName,EnableCap"/>
         <enum value="0x3004" name="GL_CLIP_PLANE4_IMG"/>
-        <enum value="0x3004" name="GL_CLIP_DISTANCE4" alias="GL_CLIP_PLANE4"/>
+        <enum value="0x3004" name="GL_CLIP_DISTANCE4" alias="GL_CLIP_PLANE4" group="EnableCap,ClipPlaneName"/>
         <enum value="0x3004" name="GL_CLIP_DISTANCE4_EXT" alias="GL_CLIP_PLANE4"/>
         <enum value="0x3004" name="GL_CLIP_DISTANCE4_APPLE"/>
-        <enum value="0x3005" name="GL_CLIP_PLANE5"/>
+        <enum value="0x3005" name="GL_CLIP_PLANE5" group="GetPName,ClipPlaneName,EnableCap"/>
         <enum value="0x3005" name="GL_CLIP_PLANE5_IMG"/>
-        <enum value="0x3005" name="GL_CLIP_DISTANCE5" alias="GL_CLIP_PLANE5"/>
+        <enum value="0x3005" name="GL_CLIP_DISTANCE5" alias="GL_CLIP_PLANE5" group="EnableCap,ClipPlaneName"/>
         <enum value="0x3005" name="GL_CLIP_DISTANCE5_EXT" alias="GL_CLIP_PLANE5"/>
         <enum value="0x3005" name="GL_CLIP_DISTANCE5_APPLE"/>
-        <enum value="0x3006" name="GL_CLIP_DISTANCE6"/>
+        <enum value="0x3006" name="GL_CLIP_DISTANCE6" group="EnableCap,ClipPlaneName"/>
         <enum value="0x3006" name="GL_CLIP_DISTANCE6_EXT" alias="GL_CLIP_DISTANCE6"/>
         <enum value="0x3006" name="GL_CLIP_DISTANCE6_APPLE"/>
-        <enum value="0x3007" name="GL_CLIP_DISTANCE7"/>
+        <enum value="0x3007" name="GL_CLIP_DISTANCE7" group="EnableCap,ClipPlaneName"/>
         <enum value="0x3007" name="GL_CLIP_DISTANCE7_EXT" alias="GL_CLIP_DISTANCE7"/>
         <enum value="0x3007" name="GL_CLIP_DISTANCE7_APPLE"/>
             <unused start="0x3008" end="0x3FFF" comment="Unused for ClipPlaneName"/>
-        <enum value="0x4000" name="GL_LIGHT0"/>
-        <enum value="0x4001" name="GL_LIGHT1"/>
-        <enum value="0x4002" name="GL_LIGHT2"/>
-        <enum value="0x4003" name="GL_LIGHT3"/>
-        <enum value="0x4004" name="GL_LIGHT4"/>
-        <enum value="0x4005" name="GL_LIGHT5"/>
-        <enum value="0x4006" name="GL_LIGHT6"/>
-        <enum value="0x4007" name="GL_LIGHT7"/>
+        <enum value="0x4000" name="GL_LIGHT0" group="LightName,EnableCap,GetPName"/>
+        <enum value="0x4001" name="GL_LIGHT1" group="LightName,EnableCap,GetPName"/>
+        <enum value="0x4002" name="GL_LIGHT2" group="LightName,EnableCap,GetPName"/>
+        <enum value="0x4003" name="GL_LIGHT3" group="LightName,EnableCap,GetPName"/>
+        <enum value="0x4004" name="GL_LIGHT4" group="LightName,EnableCap,GetPName"/>
+        <enum value="0x4005" name="GL_LIGHT5" group="LightName,EnableCap,GetPName"/>
+        <enum value="0x4006" name="GL_LIGHT6" group="LightName,EnableCap,GetPName"/>
+        <enum value="0x4007" name="GL_LIGHT7" group="LightName,EnableCap,GetPName"/>
             <unused start="0x4008" end="0x4FFF" comment="Unused for LightName"/>
             <unused start="0x5000" end="0x5FFF" comment="Unused. Do not use."/>
             <unused start="0x6000" end="0x6FFF" comment="Experimental (internal/test only) range. DO NOT SHIP VALUES IN THIS RANGE."/>
@@ -5900,410 +5899,410 @@
     </enums>
 
     <enums namespace="GL" start="0x8000" end="0x80BF" vendor="ARB" comment="The primary GL enumerant space begins here. All modern enum allocations are in this range. These enums are mostly assigned the default class since it's a great deal of not very useful work to be more specific">
-        <enum value="0x8000" name="GL_ABGR_EXT"/>
-        <enum value="0x8001" name="GL_CONSTANT_COLOR"/>
+        <enum value="0x8000" name="GL_ABGR_EXT" group="PixelFormat"/>
+        <enum value="0x8001" name="GL_CONSTANT_COLOR" group="BlendingFactor"/>
         <enum value="0x8001" name="GL_CONSTANT_COLOR_EXT"/>
-        <enum value="0x8002" name="GL_ONE_MINUS_CONSTANT_COLOR"/>
+        <enum value="0x8002" name="GL_ONE_MINUS_CONSTANT_COLOR" group="BlendingFactor"/>
         <enum value="0x8002" name="GL_ONE_MINUS_CONSTANT_COLOR_EXT"/>
-        <enum value="0x8003" name="GL_CONSTANT_ALPHA"/>
+        <enum value="0x8003" name="GL_CONSTANT_ALPHA" group="BlendingFactor"/>
         <enum value="0x8003" name="GL_CONSTANT_ALPHA_EXT"/>
-        <enum value="0x8004" name="GL_ONE_MINUS_CONSTANT_ALPHA"/>
+        <enum value="0x8004" name="GL_ONE_MINUS_CONSTANT_ALPHA" group="BlendingFactor"/>
         <enum value="0x8004" name="GL_ONE_MINUS_CONSTANT_ALPHA_EXT"/>
-        <enum value="0x8005" name="GL_BLEND_COLOR"/>
-        <enum value="0x8005" name="GL_BLEND_COLOR_EXT"/>
-        <enum value="0x8006" name="GL_FUNC_ADD"/>
-        <enum value="0x8006" name="GL_FUNC_ADD_EXT"/>
+        <enum value="0x8005" name="GL_BLEND_COLOR" group="GetPName"/>
+        <enum value="0x8005" name="GL_BLEND_COLOR_EXT" group="GetPName"/>
+        <enum value="0x8006" name="GL_FUNC_ADD" group="BlendEquationModeEXT"/>
+        <enum value="0x8006" name="GL_FUNC_ADD_EXT" group="BlendEquationModeEXT"/>
         <enum value="0x8006" name="GL_FUNC_ADD_OES"/>
-        <enum value="0x8007" name="GL_MIN"/>
-        <enum value="0x8007" name="GL_MIN_EXT"/>
-        <enum value="0x8008" name="GL_MAX"/>
-        <enum value="0x8008" name="GL_MAX_EXT"/>
+        <enum value="0x8007" name="GL_MIN" group="BlendEquationModeEXT"/>
+        <enum value="0x8007" name="GL_MIN_EXT" group="BlendEquationModeEXT"/>
+        <enum value="0x8008" name="GL_MAX" group="BlendEquationModeEXT"/>
+        <enum value="0x8008" name="GL_MAX_EXT" group="BlendEquationModeEXT"/>
         <enum value="0x8009" name="GL_BLEND_EQUATION"/>
-        <enum value="0x8009" name="GL_BLEND_EQUATION_EXT"/>
+        <enum value="0x8009" name="GL_BLEND_EQUATION_EXT" group="GetPName"/>
         <enum value="0x8009" name="GL_BLEND_EQUATION_OES"/>
-        <enum value="0x8009" name="GL_BLEND_EQUATION_RGB"/>
+        <enum value="0x8009" name="GL_BLEND_EQUATION_RGB" group="GetPName"/>
         <enum value="0x8009" name="GL_BLEND_EQUATION_RGB_EXT"/>
         <enum value="0x8009" name="GL_BLEND_EQUATION_RGB_OES"/>
-        <enum value="0x800A" name="GL_FUNC_SUBTRACT"/>
-        <enum value="0x800A" name="GL_FUNC_SUBTRACT_EXT"/>
+        <enum value="0x800A" name="GL_FUNC_SUBTRACT" group="BlendEquationModeEXT"/>
+        <enum value="0x800A" name="GL_FUNC_SUBTRACT_EXT" group="BlendEquationModeEXT"/>
         <enum value="0x800A" name="GL_FUNC_SUBTRACT_OES"/>
-        <enum value="0x800B" name="GL_FUNC_REVERSE_SUBTRACT"/>
-        <enum value="0x800B" name="GL_FUNC_REVERSE_SUBTRACT_EXT"/>
+        <enum value="0x800B" name="GL_FUNC_REVERSE_SUBTRACT" group="BlendEquationModeEXT"/>
+        <enum value="0x800B" name="GL_FUNC_REVERSE_SUBTRACT_EXT" group="BlendEquationModeEXT"/>
         <enum value="0x800B" name="GL_FUNC_REVERSE_SUBTRACT_OES"/>
-        <enum value="0x800C" name="GL_CMYK_EXT"/>
-        <enum value="0x800D" name="GL_CMYKA_EXT"/>
-        <enum value="0x800E" name="GL_PACK_CMYK_HINT_EXT"/>
-        <enum value="0x800F" name="GL_UNPACK_CMYK_HINT_EXT"/>
-        <enum value="0x8010" name="GL_CONVOLUTION_1D"/>
-        <enum value="0x8010" name="GL_CONVOLUTION_1D_EXT"/>
-        <enum value="0x8011" name="GL_CONVOLUTION_2D"/>
-        <enum value="0x8011" name="GL_CONVOLUTION_2D_EXT"/>
-        <enum value="0x8012" name="GL_SEPARABLE_2D"/>
-        <enum value="0x8012" name="GL_SEPARABLE_2D_EXT"/>
-        <enum value="0x8013" name="GL_CONVOLUTION_BORDER_MODE"/>
-        <enum value="0x8013" name="GL_CONVOLUTION_BORDER_MODE_EXT"/>
-        <enum value="0x8014" name="GL_CONVOLUTION_FILTER_SCALE"/>
-        <enum value="0x8014" name="GL_CONVOLUTION_FILTER_SCALE_EXT"/>
-        <enum value="0x8015" name="GL_CONVOLUTION_FILTER_BIAS"/>
-        <enum value="0x8015" name="GL_CONVOLUTION_FILTER_BIAS_EXT"/>
-        <enum value="0x8016" name="GL_REDUCE"/>
-        <enum value="0x8016" name="GL_REDUCE_EXT"/>
-        <enum value="0x8017" name="GL_CONVOLUTION_FORMAT"/>
-        <enum value="0x8017" name="GL_CONVOLUTION_FORMAT_EXT"/>
-        <enum value="0x8018" name="GL_CONVOLUTION_WIDTH"/>
-        <enum value="0x8018" name="GL_CONVOLUTION_WIDTH_EXT"/>
-        <enum value="0x8019" name="GL_CONVOLUTION_HEIGHT"/>
-        <enum value="0x8019" name="GL_CONVOLUTION_HEIGHT_EXT"/>
-        <enum value="0x801A" name="GL_MAX_CONVOLUTION_WIDTH"/>
-        <enum value="0x801A" name="GL_MAX_CONVOLUTION_WIDTH_EXT"/>
-        <enum value="0x801B" name="GL_MAX_CONVOLUTION_HEIGHT"/>
-        <enum value="0x801B" name="GL_MAX_CONVOLUTION_HEIGHT_EXT"/>
-        <enum value="0x801C" name="GL_POST_CONVOLUTION_RED_SCALE"/>
-        <enum value="0x801C" name="GL_POST_CONVOLUTION_RED_SCALE_EXT"/>
-        <enum value="0x801D" name="GL_POST_CONVOLUTION_GREEN_SCALE"/>
-        <enum value="0x801D" name="GL_POST_CONVOLUTION_GREEN_SCALE_EXT"/>
-        <enum value="0x801E" name="GL_POST_CONVOLUTION_BLUE_SCALE"/>
-        <enum value="0x801E" name="GL_POST_CONVOLUTION_BLUE_SCALE_EXT"/>
-        <enum value="0x801F" name="GL_POST_CONVOLUTION_ALPHA_SCALE"/>
-        <enum value="0x801F" name="GL_POST_CONVOLUTION_ALPHA_SCALE_EXT"/>
-        <enum value="0x8020" name="GL_POST_CONVOLUTION_RED_BIAS"/>
-        <enum value="0x8020" name="GL_POST_CONVOLUTION_RED_BIAS_EXT"/>
-        <enum value="0x8021" name="GL_POST_CONVOLUTION_GREEN_BIAS"/>
-        <enum value="0x8021" name="GL_POST_CONVOLUTION_GREEN_BIAS_EXT"/>
-        <enum value="0x8022" name="GL_POST_CONVOLUTION_BLUE_BIAS"/>
-        <enum value="0x8022" name="GL_POST_CONVOLUTION_BLUE_BIAS_EXT"/>
-        <enum value="0x8023" name="GL_POST_CONVOLUTION_ALPHA_BIAS"/>
-        <enum value="0x8023" name="GL_POST_CONVOLUTION_ALPHA_BIAS_EXT"/>
-        <enum value="0x8024" name="GL_HISTOGRAM"/>
-        <enum value="0x8024" name="GL_HISTOGRAM_EXT"/>
-        <enum value="0x8025" name="GL_PROXY_HISTOGRAM"/>
-        <enum value="0x8025" name="GL_PROXY_HISTOGRAM_EXT"/>
-        <enum value="0x8026" name="GL_HISTOGRAM_WIDTH"/>
-        <enum value="0x8026" name="GL_HISTOGRAM_WIDTH_EXT"/>
-        <enum value="0x8027" name="GL_HISTOGRAM_FORMAT"/>
-        <enum value="0x8027" name="GL_HISTOGRAM_FORMAT_EXT"/>
-        <enum value="0x8028" name="GL_HISTOGRAM_RED_SIZE"/>
-        <enum value="0x8028" name="GL_HISTOGRAM_RED_SIZE_EXT"/>
-        <enum value="0x8029" name="GL_HISTOGRAM_GREEN_SIZE"/>
-        <enum value="0x8029" name="GL_HISTOGRAM_GREEN_SIZE_EXT"/>
-        <enum value="0x802A" name="GL_HISTOGRAM_BLUE_SIZE"/>
-        <enum value="0x802A" name="GL_HISTOGRAM_BLUE_SIZE_EXT"/>
-        <enum value="0x802B" name="GL_HISTOGRAM_ALPHA_SIZE"/>
-        <enum value="0x802B" name="GL_HISTOGRAM_ALPHA_SIZE_EXT"/>
-        <enum value="0x802C" name="GL_HISTOGRAM_LUMINANCE_SIZE"/>
-        <enum value="0x802C" name="GL_HISTOGRAM_LUMINANCE_SIZE_EXT"/>
-        <enum value="0x802D" name="GL_HISTOGRAM_SINK"/>
-        <enum value="0x802D" name="GL_HISTOGRAM_SINK_EXT"/>
-        <enum value="0x802E" name="GL_MINMAX"/>
-        <enum value="0x802E" name="GL_MINMAX_EXT"/>
-        <enum value="0x802F" name="GL_MINMAX_FORMAT"/>
-        <enum value="0x802F" name="GL_MINMAX_FORMAT_EXT"/>
-        <enum value="0x8030" name="GL_MINMAX_SINK"/>
-        <enum value="0x8030" name="GL_MINMAX_SINK_EXT"/>
-        <enum value="0x8031" name="GL_TABLE_TOO_LARGE_EXT"/>
-        <enum value="0x8031" name="GL_TABLE_TOO_LARGE"/>
-        <enum value="0x8032" name="GL_UNSIGNED_BYTE_3_3_2"/>
-        <enum value="0x8032" name="GL_UNSIGNED_BYTE_3_3_2_EXT"/>
-        <enum value="0x8033" name="GL_UNSIGNED_SHORT_4_4_4_4"/>
-        <enum value="0x8033" name="GL_UNSIGNED_SHORT_4_4_4_4_EXT"/>
-        <enum value="0x8034" name="GL_UNSIGNED_SHORT_5_5_5_1"/>
-        <enum value="0x8034" name="GL_UNSIGNED_SHORT_5_5_5_1_EXT"/>
-        <enum value="0x8035" name="GL_UNSIGNED_INT_8_8_8_8"/>
-        <enum value="0x8035" name="GL_UNSIGNED_INT_8_8_8_8_EXT"/>
-        <enum value="0x8036" name="GL_UNSIGNED_INT_10_10_10_2"/>
-        <enum value="0x8036" name="GL_UNSIGNED_INT_10_10_10_2_EXT"/>
+        <enum value="0x800C" name="GL_CMYK_EXT" group="PixelFormat"/>
+        <enum value="0x800D" name="GL_CMYKA_EXT" group="PixelFormat"/>
+        <enum value="0x800E" name="GL_PACK_CMYK_HINT_EXT" group="HintTarget,GetPName"/>
+        <enum value="0x800F" name="GL_UNPACK_CMYK_HINT_EXT" group="HintTarget,GetPName"/>
+        <enum value="0x8010" name="GL_CONVOLUTION_1D" group="ConvolutionTarget,ConvolutionTargetEXT"/>
+        <enum value="0x8010" name="GL_CONVOLUTION_1D_EXT" group="GetPName,ConvolutionTargetEXT,EnableCap"/>
+        <enum value="0x8011" name="GL_CONVOLUTION_2D" group="ConvolutionTarget,ConvolutionTargetEXT"/>
+        <enum value="0x8011" name="GL_CONVOLUTION_2D_EXT" group="GetPName,ConvolutionTargetEXT,EnableCap"/>
+        <enum value="0x8012" name="GL_SEPARABLE_2D" group="SeparableTargetEXT"/>
+        <enum value="0x8012" name="GL_SEPARABLE_2D_EXT" group="SeparableTargetEXT,EnableCap,GetPName"/>
+        <enum value="0x8013" name="GL_CONVOLUTION_BORDER_MODE" group="GetConvolutionParameter,ConvolutionParameterEXT"/>
+        <enum value="0x8013" name="GL_CONVOLUTION_BORDER_MODE_EXT" group="GetConvolutionParameter,ConvolutionParameterEXT"/>
+        <enum value="0x8014" name="GL_CONVOLUTION_FILTER_SCALE" group="GetConvolutionParameter,ConvolutionParameterEXT"/>
+        <enum value="0x8014" name="GL_CONVOLUTION_FILTER_SCALE_EXT" group="GetConvolutionParameter,ConvolutionParameterEXT"/>
+        <enum value="0x8015" name="GL_CONVOLUTION_FILTER_BIAS" group="GetConvolutionParameter,ConvolutionParameterEXT"/>
+        <enum value="0x8015" name="GL_CONVOLUTION_FILTER_BIAS_EXT" group="GetConvolutionParameter,ConvolutionParameterEXT"/>
+        <enum value="0x8016" name="GL_REDUCE" group="ConvolutionBorderModeEXT"/>
+        <enum value="0x8016" name="GL_REDUCE_EXT" group="ConvolutionBorderModeEXT"/>
+        <enum value="0x8017" name="GL_CONVOLUTION_FORMAT" group="GetConvolutionParameter"/>
+        <enum value="0x8017" name="GL_CONVOLUTION_FORMAT_EXT" group="GetConvolutionParameter"/>
+        <enum value="0x8018" name="GL_CONVOLUTION_WIDTH" group="GetConvolutionParameter"/>
+        <enum value="0x8018" name="GL_CONVOLUTION_WIDTH_EXT" group="GetConvolutionParameter"/>
+        <enum value="0x8019" name="GL_CONVOLUTION_HEIGHT" group="GetConvolutionParameter"/>
+        <enum value="0x8019" name="GL_CONVOLUTION_HEIGHT_EXT" group="GetConvolutionParameter"/>
+        <enum value="0x801A" name="GL_MAX_CONVOLUTION_WIDTH" group="GetConvolutionParameter"/>
+        <enum value="0x801A" name="GL_MAX_CONVOLUTION_WIDTH_EXT" group="GetConvolutionParameter"/>
+        <enum value="0x801B" name="GL_MAX_CONVOLUTION_HEIGHT" group="GetConvolutionParameter"/>
+        <enum value="0x801B" name="GL_MAX_CONVOLUTION_HEIGHT_EXT" group="GetConvolutionParameter"/>
+        <enum value="0x801C" name="GL_POST_CONVOLUTION_RED_SCALE" group="PixelTransferParameter"/>
+        <enum value="0x801C" name="GL_POST_CONVOLUTION_RED_SCALE_EXT" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x801D" name="GL_POST_CONVOLUTION_GREEN_SCALE" group="PixelTransferParameter"/>
+        <enum value="0x801D" name="GL_POST_CONVOLUTION_GREEN_SCALE_EXT" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x801E" name="GL_POST_CONVOLUTION_BLUE_SCALE" group="PixelTransferParameter"/>
+        <enum value="0x801E" name="GL_POST_CONVOLUTION_BLUE_SCALE_EXT" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x801F" name="GL_POST_CONVOLUTION_ALPHA_SCALE" group="PixelTransferParameter"/>
+        <enum value="0x801F" name="GL_POST_CONVOLUTION_ALPHA_SCALE_EXT" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x8020" name="GL_POST_CONVOLUTION_RED_BIAS" group="PixelTransferParameter"/>
+        <enum value="0x8020" name="GL_POST_CONVOLUTION_RED_BIAS_EXT" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x8021" name="GL_POST_CONVOLUTION_GREEN_BIAS" group="PixelTransferParameter"/>
+        <enum value="0x8021" name="GL_POST_CONVOLUTION_GREEN_BIAS_EXT" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x8022" name="GL_POST_CONVOLUTION_BLUE_BIAS" group="PixelTransferParameter"/>
+        <enum value="0x8022" name="GL_POST_CONVOLUTION_BLUE_BIAS_EXT" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x8023" name="GL_POST_CONVOLUTION_ALPHA_BIAS" group="PixelTransferParameter"/>
+        <enum value="0x8023" name="GL_POST_CONVOLUTION_ALPHA_BIAS_EXT" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x8024" name="GL_HISTOGRAM" group="HistogramTargetEXT"/>
+        <enum value="0x8024" name="GL_HISTOGRAM_EXT" group="HistogramTargetEXT,EnableCap,GetPName"/>
+        <enum value="0x8025" name="GL_PROXY_HISTOGRAM" group="HistogramTargetEXT"/>
+        <enum value="0x8025" name="GL_PROXY_HISTOGRAM_EXT" group="HistogramTargetEXT"/>
+        <enum value="0x8026" name="GL_HISTOGRAM_WIDTH" group="GetHistogramParameterPNameEXT"/>
+        <enum value="0x8026" name="GL_HISTOGRAM_WIDTH_EXT" group="GetHistogramParameterPNameEXT"/>
+        <enum value="0x8027" name="GL_HISTOGRAM_FORMAT" group="GetHistogramParameterPNameEXT"/>
+        <enum value="0x8027" name="GL_HISTOGRAM_FORMAT_EXT" group="GetHistogramParameterPNameEXT"/>
+        <enum value="0x8028" name="GL_HISTOGRAM_RED_SIZE" group="GetHistogramParameterPNameEXT"/>
+        <enum value="0x8028" name="GL_HISTOGRAM_RED_SIZE_EXT" group="GetHistogramParameterPNameEXT"/>
+        <enum value="0x8029" name="GL_HISTOGRAM_GREEN_SIZE" group="GetHistogramParameterPNameEXT"/>
+        <enum value="0x8029" name="GL_HISTOGRAM_GREEN_SIZE_EXT" group="GetHistogramParameterPNameEXT"/>
+        <enum value="0x802A" name="GL_HISTOGRAM_BLUE_SIZE" group="GetHistogramParameterPNameEXT"/>
+        <enum value="0x802A" name="GL_HISTOGRAM_BLUE_SIZE_EXT" group="GetHistogramParameterPNameEXT"/>
+        <enum value="0x802B" name="GL_HISTOGRAM_ALPHA_SIZE" group="GetHistogramParameterPNameEXT"/>
+        <enum value="0x802B" name="GL_HISTOGRAM_ALPHA_SIZE_EXT" group="GetHistogramParameterPNameEXT"/>
+        <enum value="0x802C" name="GL_HISTOGRAM_LUMINANCE_SIZE" group="GetHistogramParameterPNameEXT"/>
+        <enum value="0x802C" name="GL_HISTOGRAM_LUMINANCE_SIZE_EXT" group="GetHistogramParameterPNameEXT"/>
+        <enum value="0x802D" name="GL_HISTOGRAM_SINK" group="GetHistogramParameterPNameEXT"/>
+        <enum value="0x802D" name="GL_HISTOGRAM_SINK_EXT" group="GetHistogramParameterPNameEXT"/>
+        <enum value="0x802E" name="GL_MINMAX" group="MinmaxTargetEXT"/>
+        <enum value="0x802E" name="GL_MINMAX_EXT" group="MinmaxTargetEXT,EnableCap,GetPName"/>
+        <enum value="0x802F" name="GL_MINMAX_FORMAT" group="GetMinmaxParameterPNameEXT"/>
+        <enum value="0x802F" name="GL_MINMAX_FORMAT_EXT" group="GetMinmaxParameterPNameEXT"/>
+        <enum value="0x8030" name="GL_MINMAX_SINK" group="GetMinmaxParameterPNameEXT"/>
+        <enum value="0x8030" name="GL_MINMAX_SINK_EXT" group="GetMinmaxParameterPNameEXT"/>
+        <enum value="0x8031" name="GL_TABLE_TOO_LARGE_EXT" group="ErrorCode"/>
+        <enum value="0x8031" name="GL_TABLE_TOO_LARGE" group="ErrorCode"/>
+        <enum value="0x8032" name="GL_UNSIGNED_BYTE_3_3_2" group="PixelType"/>
+        <enum value="0x8032" name="GL_UNSIGNED_BYTE_3_3_2_EXT" group="PixelType"/>
+        <enum value="0x8033" name="GL_UNSIGNED_SHORT_4_4_4_4" group="PixelType"/>
+        <enum value="0x8033" name="GL_UNSIGNED_SHORT_4_4_4_4_EXT" group="PixelType"/>
+        <enum value="0x8034" name="GL_UNSIGNED_SHORT_5_5_5_1" group="PixelType"/>
+        <enum value="0x8034" name="GL_UNSIGNED_SHORT_5_5_5_1_EXT" group="PixelType"/>
+        <enum value="0x8035" name="GL_UNSIGNED_INT_8_8_8_8" group="PixelType"/>
+        <enum value="0x8035" name="GL_UNSIGNED_INT_8_8_8_8_EXT" group="PixelType"/>
+        <enum value="0x8036" name="GL_UNSIGNED_INT_10_10_10_2" group="PixelType"/>
+        <enum value="0x8036" name="GL_UNSIGNED_INT_10_10_10_2_EXT" group="PixelType"/>
         <enum value="0x8037" name="GL_POLYGON_OFFSET_EXT"/>
-        <enum value="0x8037" name="GL_POLYGON_OFFSET_FILL"/>
-        <enum value="0x8038" name="GL_POLYGON_OFFSET_FACTOR"/>
+        <enum value="0x8037" name="GL_POLYGON_OFFSET_FILL" group="GetPName,EnableCap"/>
+        <enum value="0x8038" name="GL_POLYGON_OFFSET_FACTOR" group="GetPName"/>
         <enum value="0x8038" name="GL_POLYGON_OFFSET_FACTOR_EXT"/>
-        <enum value="0x8039" name="GL_POLYGON_OFFSET_BIAS_EXT"/>
+        <enum value="0x8039" name="GL_POLYGON_OFFSET_BIAS_EXT" group="GetPName"/>
         <enum value="0x803A" name="GL_RESCALE_NORMAL"/>
-        <enum value="0x803A" name="GL_RESCALE_NORMAL_EXT"/>
-        <enum value="0x803B" name="GL_ALPHA4"/>
+        <enum value="0x803A" name="GL_RESCALE_NORMAL_EXT" group="GetPName,EnableCap"/>
+        <enum value="0x803B" name="GL_ALPHA4" group="InternalFormat"/>
         <enum value="0x803B" name="GL_ALPHA4_EXT"/>
-        <enum value="0x803C" name="GL_ALPHA8"/>
+        <enum value="0x803C" name="GL_ALPHA8" group="InternalFormat"/>
         <enum value="0x803C" name="GL_ALPHA8_EXT"/>
         <enum value="0x803C" name="GL_ALPHA8_OES"/>
-        <enum value="0x803D" name="GL_ALPHA12"/>
+        <enum value="0x803D" name="GL_ALPHA12" group="InternalFormat"/>
         <enum value="0x803D" name="GL_ALPHA12_EXT"/>
-        <enum value="0x803E" name="GL_ALPHA16"/>
+        <enum value="0x803E" name="GL_ALPHA16" group="InternalFormat"/>
         <enum value="0x803E" name="GL_ALPHA16_EXT"/>
-        <enum value="0x803F" name="GL_LUMINANCE4"/>
+        <enum value="0x803F" name="GL_LUMINANCE4" group="InternalFormat"/>
         <enum value="0x803F" name="GL_LUMINANCE4_EXT"/>
-        <enum value="0x8040" name="GL_LUMINANCE8"/>
+        <enum value="0x8040" name="GL_LUMINANCE8" group="InternalFormat"/>
         <enum value="0x8040" name="GL_LUMINANCE8_EXT"/>
         <enum value="0x8040" name="GL_LUMINANCE8_OES"/>
-        <enum value="0x8041" name="GL_LUMINANCE12"/>
+        <enum value="0x8041" name="GL_LUMINANCE12" group="InternalFormat"/>
         <enum value="0x8041" name="GL_LUMINANCE12_EXT"/>
-        <enum value="0x8042" name="GL_LUMINANCE16"/>
+        <enum value="0x8042" name="GL_LUMINANCE16" group="InternalFormat"/>
         <enum value="0x8042" name="GL_LUMINANCE16_EXT"/>
-        <enum value="0x8043" name="GL_LUMINANCE4_ALPHA4"/>
+        <enum value="0x8043" name="GL_LUMINANCE4_ALPHA4" group="InternalFormat"/>
         <enum value="0x8043" name="GL_LUMINANCE4_ALPHA4_EXT"/>
         <enum value="0x8043" name="GL_LUMINANCE4_ALPHA4_OES"/>
-        <enum value="0x8044" name="GL_LUMINANCE6_ALPHA2"/>
+        <enum value="0x8044" name="GL_LUMINANCE6_ALPHA2" group="InternalFormat"/>
         <enum value="0x8044" name="GL_LUMINANCE6_ALPHA2_EXT"/>
-        <enum value="0x8045" name="GL_LUMINANCE8_ALPHA8"/>
+        <enum value="0x8045" name="GL_LUMINANCE8_ALPHA8" group="InternalFormat"/>
         <enum value="0x8045" name="GL_LUMINANCE8_ALPHA8_EXT"/>
         <enum value="0x8045" name="GL_LUMINANCE8_ALPHA8_OES"/>
-        <enum value="0x8046" name="GL_LUMINANCE12_ALPHA4"/>
+        <enum value="0x8046" name="GL_LUMINANCE12_ALPHA4" group="InternalFormat"/>
         <enum value="0x8046" name="GL_LUMINANCE12_ALPHA4_EXT"/>
-        <enum value="0x8047" name="GL_LUMINANCE12_ALPHA12"/>
+        <enum value="0x8047" name="GL_LUMINANCE12_ALPHA12" group="InternalFormat"/>
         <enum value="0x8047" name="GL_LUMINANCE12_ALPHA12_EXT"/>
-        <enum value="0x8048" name="GL_LUMINANCE16_ALPHA16"/>
+        <enum value="0x8048" name="GL_LUMINANCE16_ALPHA16" group="InternalFormat"/>
         <enum value="0x8048" name="GL_LUMINANCE16_ALPHA16_EXT"/>
-        <enum value="0x8049" name="GL_INTENSITY"/>
+        <enum value="0x8049" name="GL_INTENSITY" group="InternalFormat,PathColorFormat"/>
         <enum value="0x8049" name="GL_INTENSITY_EXT"/>
-        <enum value="0x804A" name="GL_INTENSITY4"/>
+        <enum value="0x804A" name="GL_INTENSITY4" group="InternalFormat"/>
         <enum value="0x804A" name="GL_INTENSITY4_EXT"/>
-        <enum value="0x804B" name="GL_INTENSITY8"/>
+        <enum value="0x804B" name="GL_INTENSITY8" group="InternalFormat"/>
         <enum value="0x804B" name="GL_INTENSITY8_EXT"/>
-        <enum value="0x804C" name="GL_INTENSITY12"/>
+        <enum value="0x804C" name="GL_INTENSITY12" group="InternalFormat"/>
         <enum value="0x804C" name="GL_INTENSITY12_EXT"/>
-        <enum value="0x804D" name="GL_INTENSITY16"/>
+        <enum value="0x804D" name="GL_INTENSITY16" group="InternalFormat"/>
         <enum value="0x804D" name="GL_INTENSITY16_EXT"/>
-        <enum value="0x804E" name="GL_RGB2_EXT"/>
-        <enum value="0x804F" name="GL_RGB4"/>
-        <enum value="0x804F" name="GL_RGB4_EXT"/>
-        <enum value="0x8050" name="GL_RGB5"/>
-        <enum value="0x8050" name="GL_RGB5_EXT"/>
-        <enum value="0x8051" name="GL_RGB8"/>
-        <enum value="0x8051" name="GL_RGB8_EXT"/>
-        <enum value="0x8051" name="GL_RGB8_OES"/>
-        <enum value="0x8052" name="GL_RGB10"/>
-        <enum value="0x8052" name="GL_RGB10_EXT"/>
-        <enum value="0x8053" name="GL_RGB12"/>
-        <enum value="0x8053" name="GL_RGB12_EXT"/>
-        <enum value="0x8054" name="GL_RGB16"/>
-        <enum value="0x8054" name="GL_RGB16_EXT"/>
+        <enum value="0x804E" name="GL_RGB2_EXT" group="InternalFormat"/>
+        <enum value="0x804F" name="GL_RGB4" group="InternalFormat"/>
+        <enum value="0x804F" name="GL_RGB4_EXT" group="InternalFormat"/>
+        <enum value="0x8050" name="GL_RGB5" group="InternalFormat"/>
+        <enum value="0x8050" name="GL_RGB5_EXT" group="InternalFormat"/>
+        <enum value="0x8051" name="GL_RGB8" group="InternalFormat"/>
+        <enum value="0x8051" name="GL_RGB8_EXT" group="InternalFormat"/>
+        <enum value="0x8051" name="GL_RGB8_OES" group="InternalFormat"/>
+        <enum value="0x8052" name="GL_RGB10" group="InternalFormat"/>
+        <enum value="0x8052" name="GL_RGB10_EXT" group="InternalFormat"/>
+        <enum value="0x8053" name="GL_RGB12" group="InternalFormat"/>
+        <enum value="0x8053" name="GL_RGB12_EXT" group="InternalFormat"/>
+        <enum value="0x8054" name="GL_RGB16" group="InternalFormat"/>
+        <enum value="0x8054" name="GL_RGB16_EXT" group="InternalFormat"/>
         <enum value="0x8055" name="GL_RGBA2"/>
         <enum value="0x8055" name="GL_RGBA2_EXT"/>
-        <enum value="0x8056" name="GL_RGBA4"/>
-        <enum value="0x8056" name="GL_RGBA4_EXT"/>
-        <enum value="0x8056" name="GL_RGBA4_OES"/>
-        <enum value="0x8057" name="GL_RGB5_A1"/>
-        <enum value="0x8057" name="GL_RGB5_A1_EXT"/>
-        <enum value="0x8057" name="GL_RGB5_A1_OES"/>
-        <enum value="0x8058" name="GL_RGBA8"/>
-        <enum value="0x8058" name="GL_RGBA8_EXT"/>
-        <enum value="0x8058" name="GL_RGBA8_OES"/>
-        <enum value="0x8059" name="GL_RGB10_A2"/>
-        <enum value="0x8059" name="GL_RGB10_A2_EXT"/>
-        <enum value="0x805A" name="GL_RGBA12"/>
-        <enum value="0x805A" name="GL_RGBA12_EXT"/>
-        <enum value="0x805B" name="GL_RGBA16"/>
-        <enum value="0x805B" name="GL_RGBA16_EXT"/>
-        <enum value="0x805C" name="GL_TEXTURE_RED_SIZE"/>
+        <enum value="0x8056" name="GL_RGBA4" group="InternalFormat"/>
+        <enum value="0x8056" name="GL_RGBA4_EXT" group="InternalFormat"/>
+        <enum value="0x8056" name="GL_RGBA4_OES" group="InternalFormat"/>
+        <enum value="0x8057" name="GL_RGB5_A1" group="InternalFormat"/>
+        <enum value="0x8057" name="GL_RGB5_A1_EXT" group="InternalFormat"/>
+        <enum value="0x8057" name="GL_RGB5_A1_OES" group="InternalFormat"/>
+        <enum value="0x8058" name="GL_RGBA8" group="InternalFormat"/>
+        <enum value="0x8058" name="GL_RGBA8_EXT" group="InternalFormat"/>
+        <enum value="0x8058" name="GL_RGBA8_OES" group="InternalFormat"/>
+        <enum value="0x8059" name="GL_RGB10_A2" group="InternalFormat"/>
+        <enum value="0x8059" name="GL_RGB10_A2_EXT" group="InternalFormat"/>
+        <enum value="0x805A" name="GL_RGBA12" group="InternalFormat"/>
+        <enum value="0x805A" name="GL_RGBA12_EXT" group="InternalFormat"/>
+        <enum value="0x805B" name="GL_RGBA16" group="InternalFormat"/>
+        <enum value="0x805B" name="GL_RGBA16_EXT" group="InternalFormat"/>
+        <enum value="0x805C" name="GL_TEXTURE_RED_SIZE" group="TextureParameterName,GetTextureParameter"/>
         <enum value="0x805C" name="GL_TEXTURE_RED_SIZE_EXT"/>
-        <enum value="0x805D" name="GL_TEXTURE_GREEN_SIZE"/>
+        <enum value="0x805D" name="GL_TEXTURE_GREEN_SIZE" group="TextureParameterName,GetTextureParameter"/>
         <enum value="0x805D" name="GL_TEXTURE_GREEN_SIZE_EXT"/>
-        <enum value="0x805E" name="GL_TEXTURE_BLUE_SIZE"/>
+        <enum value="0x805E" name="GL_TEXTURE_BLUE_SIZE" group="TextureParameterName,GetTextureParameter"/>
         <enum value="0x805E" name="GL_TEXTURE_BLUE_SIZE_EXT"/>
-        <enum value="0x805F" name="GL_TEXTURE_ALPHA_SIZE"/>
+        <enum value="0x805F" name="GL_TEXTURE_ALPHA_SIZE" group="TextureParameterName,GetTextureParameter"/>
         <enum value="0x805F" name="GL_TEXTURE_ALPHA_SIZE_EXT"/>
-        <enum value="0x8060" name="GL_TEXTURE_LUMINANCE_SIZE"/>
+        <enum value="0x8060" name="GL_TEXTURE_LUMINANCE_SIZE" group="TextureParameterName,GetTextureParameter"/>
         <enum value="0x8060" name="GL_TEXTURE_LUMINANCE_SIZE_EXT"/>
-        <enum value="0x8061" name="GL_TEXTURE_INTENSITY_SIZE"/>
+        <enum value="0x8061" name="GL_TEXTURE_INTENSITY_SIZE" group="TextureParameterName,GetTextureParameter"/>
         <enum value="0x8061" name="GL_TEXTURE_INTENSITY_SIZE_EXT"/>
-        <enum value="0x8062" name="GL_REPLACE_EXT"/>
-        <enum value="0x8063" name="GL_PROXY_TEXTURE_1D"/>
-        <enum value="0x8063" name="GL_PROXY_TEXTURE_1D_EXT"/>
-        <enum value="0x8064" name="GL_PROXY_TEXTURE_2D"/>
-        <enum value="0x8064" name="GL_PROXY_TEXTURE_2D_EXT"/>
-        <enum value="0x8065" name="GL_TEXTURE_TOO_LARGE_EXT"/>
-        <enum value="0x8066" name="GL_TEXTURE_PRIORITY"/>
-        <enum value="0x8066" name="GL_TEXTURE_PRIORITY_EXT"/>
-        <enum value="0x8067" name="GL_TEXTURE_RESIDENT"/>
+        <enum value="0x8062" name="GL_REPLACE_EXT" group="TextureEnvMode"/>
+        <enum value="0x8063" name="GL_PROXY_TEXTURE_1D" group="TextureTarget"/>
+        <enum value="0x8063" name="GL_PROXY_TEXTURE_1D_EXT" group="TextureTarget"/>
+        <enum value="0x8064" name="GL_PROXY_TEXTURE_2D" group="TextureTarget"/>
+        <enum value="0x8064" name="GL_PROXY_TEXTURE_2D_EXT" group="TextureTarget"/>
+        <enum value="0x8065" name="GL_TEXTURE_TOO_LARGE_EXT" group="ErrorCode"/>
+        <enum value="0x8066" name="GL_TEXTURE_PRIORITY" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x8066" name="GL_TEXTURE_PRIORITY_EXT" group="TextureParameterName"/>
+        <enum value="0x8067" name="GL_TEXTURE_RESIDENT" group="TextureParameterName,GetTextureParameter"/>
         <enum value="0x8067" name="GL_TEXTURE_RESIDENT_EXT"/>
         <enum value="0x8068" name="GL_TEXTURE_1D_BINDING_EXT"/>
-        <enum value="0x8068" name="GL_TEXTURE_BINDING_1D"/>
+        <enum value="0x8068" name="GL_TEXTURE_BINDING_1D" group="GetPName"/>
         <enum value="0x8069" name="GL_TEXTURE_2D_BINDING_EXT"/>
-        <enum value="0x8069" name="GL_TEXTURE_BINDING_2D"/>
-        <enum value="0x806A" name="GL_TEXTURE_3D_BINDING_EXT"/>
+        <enum value="0x8069" name="GL_TEXTURE_BINDING_2D" group="GetPName"/>
+        <enum value="0x806A" name="GL_TEXTURE_3D_BINDING_EXT" group="GetPName"/>
         <enum value="0x806A" name="GL_TEXTURE_3D_BINDING_OES"/>
-        <enum value="0x806A" name="GL_TEXTURE_BINDING_3D"/>
+        <enum value="0x806A" name="GL_TEXTURE_BINDING_3D" group="GetPName"/>
         <enum value="0x806A" name="GL_TEXTURE_BINDING_3D_OES"/>
-        <enum value="0x806B" name="GL_PACK_SKIP_IMAGES"/>
-        <enum value="0x806B" name="GL_PACK_SKIP_IMAGES_EXT"/>
-        <enum value="0x806C" name="GL_PACK_IMAGE_HEIGHT"/>
-        <enum value="0x806C" name="GL_PACK_IMAGE_HEIGHT_EXT"/>
-        <enum value="0x806D" name="GL_UNPACK_SKIP_IMAGES"/>
-        <enum value="0x806D" name="GL_UNPACK_SKIP_IMAGES_EXT"/>
-        <enum value="0x806E" name="GL_UNPACK_IMAGE_HEIGHT"/>
-        <enum value="0x806E" name="GL_UNPACK_IMAGE_HEIGHT_EXT"/>
-        <enum value="0x806F" name="GL_TEXTURE_3D"/>
-        <enum value="0x806F" name="GL_TEXTURE_3D_EXT"/>
-        <enum value="0x806F" name="GL_TEXTURE_3D_OES"/>
-        <enum value="0x8070" name="GL_PROXY_TEXTURE_3D"/>
-        <enum value="0x8070" name="GL_PROXY_TEXTURE_3D_EXT"/>
+        <enum value="0x806B" name="GL_PACK_SKIP_IMAGES" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x806B" name="GL_PACK_SKIP_IMAGES_EXT" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x806C" name="GL_PACK_IMAGE_HEIGHT" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x806C" name="GL_PACK_IMAGE_HEIGHT_EXT" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x806D" name="GL_UNPACK_SKIP_IMAGES" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x806D" name="GL_UNPACK_SKIP_IMAGES_EXT" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x806E" name="GL_UNPACK_IMAGE_HEIGHT" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x806E" name="GL_UNPACK_IMAGE_HEIGHT_EXT" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x806F" name="GL_TEXTURE_3D" group="CopyImageSubDataTarget,TextureTarget"/>
+        <enum value="0x806F" name="GL_TEXTURE_3D_EXT" group="TextureTarget,EnableCap,GetPName"/>
+        <enum value="0x806F" name="GL_TEXTURE_3D_OES" group="TextureTarget"/>
+        <enum value="0x8070" name="GL_PROXY_TEXTURE_3D" group="TextureTarget"/>
+        <enum value="0x8070" name="GL_PROXY_TEXTURE_3D_EXT" group="TextureTarget"/>
         <enum value="0x8071" name="GL_TEXTURE_DEPTH"/>
-        <enum value="0x8071" name="GL_TEXTURE_DEPTH_EXT"/>
-        <enum value="0x8072" name="GL_TEXTURE_WRAP_R"/>
-        <enum value="0x8072" name="GL_TEXTURE_WRAP_R_EXT"/>
-        <enum value="0x8072" name="GL_TEXTURE_WRAP_R_OES"/>
-        <enum value="0x8073" name="GL_MAX_3D_TEXTURE_SIZE"/>
-        <enum value="0x8073" name="GL_MAX_3D_TEXTURE_SIZE_EXT"/>
+        <enum value="0x8071" name="GL_TEXTURE_DEPTH_EXT" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x8072" name="GL_TEXTURE_WRAP_R" group="SamplerParameterI,TextureParameterName"/>
+        <enum value="0x8072" name="GL_TEXTURE_WRAP_R_EXT" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x8072" name="GL_TEXTURE_WRAP_R_OES" group="TextureParameterName"/>
+        <enum value="0x8073" name="GL_MAX_3D_TEXTURE_SIZE" group="GetPName"/>
+        <enum value="0x8073" name="GL_MAX_3D_TEXTURE_SIZE_EXT" group="GetPName"/>
         <enum value="0x8073" name="GL_MAX_3D_TEXTURE_SIZE_OES"/>
-        <enum value="0x8074" name="GL_VERTEX_ARRAY"/>
+        <enum value="0x8074" name="GL_VERTEX_ARRAY" group="ObjectIdentifier,EnableCap,GetPName"/>
         <enum value="0x8074" name="GL_VERTEX_ARRAY_EXT"/>
         <enum value="0x8074" name="GL_VERTEX_ARRAY_KHR"/>
-        <enum value="0x8075" name="GL_NORMAL_ARRAY"/>
+        <enum value="0x8075" name="GL_NORMAL_ARRAY" group="GetPName,EnableCap"/>
         <enum value="0x8075" name="GL_NORMAL_ARRAY_EXT"/>
-        <enum value="0x8076" name="GL_COLOR_ARRAY"/>
+        <enum value="0x8076" name="GL_COLOR_ARRAY" group="GetPName,EnableCap"/>
         <enum value="0x8076" name="GL_COLOR_ARRAY_EXT"/>
-        <enum value="0x8077" name="GL_INDEX_ARRAY"/>
+        <enum value="0x8077" name="GL_INDEX_ARRAY" group="GetPName,EnableCap"/>
         <enum value="0x8077" name="GL_INDEX_ARRAY_EXT"/>
-        <enum value="0x8078" name="GL_TEXTURE_COORD_ARRAY"/>
+        <enum value="0x8078" name="GL_TEXTURE_COORD_ARRAY" group="GetPName,EnableCap"/>
         <enum value="0x8078" name="GL_TEXTURE_COORD_ARRAY_EXT"/>
-        <enum value="0x8079" name="GL_EDGE_FLAG_ARRAY"/>
+        <enum value="0x8079" name="GL_EDGE_FLAG_ARRAY" group="GetPName,EnableCap"/>
         <enum value="0x8079" name="GL_EDGE_FLAG_ARRAY_EXT"/>
-        <enum value="0x807A" name="GL_VERTEX_ARRAY_SIZE"/>
+        <enum value="0x807A" name="GL_VERTEX_ARRAY_SIZE" group="GetPName"/>
         <enum value="0x807A" name="GL_VERTEX_ARRAY_SIZE_EXT"/>
-        <enum value="0x807B" name="GL_VERTEX_ARRAY_TYPE"/>
+        <enum value="0x807B" name="GL_VERTEX_ARRAY_TYPE" group="GetPName"/>
         <enum value="0x807B" name="GL_VERTEX_ARRAY_TYPE_EXT"/>
-        <enum value="0x807C" name="GL_VERTEX_ARRAY_STRIDE"/>
+        <enum value="0x807C" name="GL_VERTEX_ARRAY_STRIDE" group="GetPName"/>
         <enum value="0x807C" name="GL_VERTEX_ARRAY_STRIDE_EXT"/>
-        <enum value="0x807D" name="GL_VERTEX_ARRAY_COUNT_EXT"/>
-        <enum value="0x807E" name="GL_NORMAL_ARRAY_TYPE"/>
+        <enum value="0x807D" name="GL_VERTEX_ARRAY_COUNT_EXT" group="GetPName"/>
+        <enum value="0x807E" name="GL_NORMAL_ARRAY_TYPE" group="GetPName"/>
         <enum value="0x807E" name="GL_NORMAL_ARRAY_TYPE_EXT"/>
-        <enum value="0x807F" name="GL_NORMAL_ARRAY_STRIDE"/>
+        <enum value="0x807F" name="GL_NORMAL_ARRAY_STRIDE" group="GetPName"/>
         <enum value="0x807F" name="GL_NORMAL_ARRAY_STRIDE_EXT"/>
-        <enum value="0x8080" name="GL_NORMAL_ARRAY_COUNT_EXT"/>
-        <enum value="0x8081" name="GL_COLOR_ARRAY_SIZE"/>
+        <enum value="0x8080" name="GL_NORMAL_ARRAY_COUNT_EXT" group="GetPName"/>
+        <enum value="0x8081" name="GL_COLOR_ARRAY_SIZE" group="GetPName"/>
         <enum value="0x8081" name="GL_COLOR_ARRAY_SIZE_EXT"/>
-        <enum value="0x8082" name="GL_COLOR_ARRAY_TYPE"/>
+        <enum value="0x8082" name="GL_COLOR_ARRAY_TYPE" group="GetPName"/>
         <enum value="0x8082" name="GL_COLOR_ARRAY_TYPE_EXT"/>
-        <enum value="0x8083" name="GL_COLOR_ARRAY_STRIDE"/>
+        <enum value="0x8083" name="GL_COLOR_ARRAY_STRIDE" group="GetPName"/>
         <enum value="0x8083" name="GL_COLOR_ARRAY_STRIDE_EXT"/>
-        <enum value="0x8084" name="GL_COLOR_ARRAY_COUNT_EXT"/>
-        <enum value="0x8085" name="GL_INDEX_ARRAY_TYPE"/>
+        <enum value="0x8084" name="GL_COLOR_ARRAY_COUNT_EXT" group="GetPName"/>
+        <enum value="0x8085" name="GL_INDEX_ARRAY_TYPE" group="GetPName"/>
         <enum value="0x8085" name="GL_INDEX_ARRAY_TYPE_EXT"/>
-        <enum value="0x8086" name="GL_INDEX_ARRAY_STRIDE"/>
+        <enum value="0x8086" name="GL_INDEX_ARRAY_STRIDE" group="GetPName"/>
         <enum value="0x8086" name="GL_INDEX_ARRAY_STRIDE_EXT"/>
-        <enum value="0x8087" name="GL_INDEX_ARRAY_COUNT_EXT"/>
-        <enum value="0x8088" name="GL_TEXTURE_COORD_ARRAY_SIZE"/>
+        <enum value="0x8087" name="GL_INDEX_ARRAY_COUNT_EXT" group="GetPName"/>
+        <enum value="0x8088" name="GL_TEXTURE_COORD_ARRAY_SIZE" group="GetPName"/>
         <enum value="0x8088" name="GL_TEXTURE_COORD_ARRAY_SIZE_EXT"/>
-        <enum value="0x8089" name="GL_TEXTURE_COORD_ARRAY_TYPE"/>
+        <enum value="0x8089" name="GL_TEXTURE_COORD_ARRAY_TYPE" group="GetPName"/>
         <enum value="0x8089" name="GL_TEXTURE_COORD_ARRAY_TYPE_EXT"/>
-        <enum value="0x808A" name="GL_TEXTURE_COORD_ARRAY_STRIDE"/>
+        <enum value="0x808A" name="GL_TEXTURE_COORD_ARRAY_STRIDE" group="GetPName"/>
         <enum value="0x808A" name="GL_TEXTURE_COORD_ARRAY_STRIDE_EXT"/>
-        <enum value="0x808B" name="GL_TEXTURE_COORD_ARRAY_COUNT_EXT"/>
-        <enum value="0x808C" name="GL_EDGE_FLAG_ARRAY_STRIDE"/>
+        <enum value="0x808B" name="GL_TEXTURE_COORD_ARRAY_COUNT_EXT" group="GetPName"/>
+        <enum value="0x808C" name="GL_EDGE_FLAG_ARRAY_STRIDE" group="GetPName"/>
         <enum value="0x808C" name="GL_EDGE_FLAG_ARRAY_STRIDE_EXT"/>
-        <enum value="0x808D" name="GL_EDGE_FLAG_ARRAY_COUNT_EXT"/>
-        <enum value="0x808E" name="GL_VERTEX_ARRAY_POINTER"/>
-        <enum value="0x808E" name="GL_VERTEX_ARRAY_POINTER_EXT"/>
-        <enum value="0x808F" name="GL_NORMAL_ARRAY_POINTER"/>
-        <enum value="0x808F" name="GL_NORMAL_ARRAY_POINTER_EXT"/>
-        <enum value="0x8090" name="GL_COLOR_ARRAY_POINTER"/>
-        <enum value="0x8090" name="GL_COLOR_ARRAY_POINTER_EXT"/>
-        <enum value="0x8091" name="GL_INDEX_ARRAY_POINTER"/>
-        <enum value="0x8091" name="GL_INDEX_ARRAY_POINTER_EXT"/>
-        <enum value="0x8092" name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
-        <enum value="0x8092" name="GL_TEXTURE_COORD_ARRAY_POINTER_EXT"/>
-        <enum value="0x8093" name="GL_EDGE_FLAG_ARRAY_POINTER"/>
-        <enum value="0x8093" name="GL_EDGE_FLAG_ARRAY_POINTER_EXT"/>
-        <enum value="0x8094" name="GL_INTERLACE_SGIX"/>
-        <enum value="0x8095" name="GL_DETAIL_TEXTURE_2D_SGIS"/>
-        <enum value="0x8096" name="GL_DETAIL_TEXTURE_2D_BINDING_SGIS"/>
-        <enum value="0x8097" name="GL_LINEAR_DETAIL_SGIS"/>
-        <enum value="0x8098" name="GL_LINEAR_DETAIL_ALPHA_SGIS"/>
-        <enum value="0x8099" name="GL_LINEAR_DETAIL_COLOR_SGIS"/>
-        <enum value="0x809A" name="GL_DETAIL_TEXTURE_LEVEL_SGIS"/>
-        <enum value="0x809B" name="GL_DETAIL_TEXTURE_MODE_SGIS"/>
-        <enum value="0x809C" name="GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS"/>
-        <enum value="0x809D" name="GL_MULTISAMPLE"/>
+        <enum value="0x808D" name="GL_EDGE_FLAG_ARRAY_COUNT_EXT" group="GetPName"/>
+        <enum value="0x808E" name="GL_VERTEX_ARRAY_POINTER" group="GetPointervPName"/>
+        <enum value="0x808E" name="GL_VERTEX_ARRAY_POINTER_EXT" group="GetPointervPName"/>
+        <enum value="0x808F" name="GL_NORMAL_ARRAY_POINTER" group="GetPointervPName"/>
+        <enum value="0x808F" name="GL_NORMAL_ARRAY_POINTER_EXT" group="GetPointervPName"/>
+        <enum value="0x8090" name="GL_COLOR_ARRAY_POINTER" group="GetPointervPName"/>
+        <enum value="0x8090" name="GL_COLOR_ARRAY_POINTER_EXT" group="GetPointervPName"/>
+        <enum value="0x8091" name="GL_INDEX_ARRAY_POINTER" group="GetPointervPName"/>
+        <enum value="0x8091" name="GL_INDEX_ARRAY_POINTER_EXT" group="GetPointervPName"/>
+        <enum value="0x8092" name="GL_TEXTURE_COORD_ARRAY_POINTER" group="GetPointervPName"/>
+        <enum value="0x8092" name="GL_TEXTURE_COORD_ARRAY_POINTER_EXT" group="GetPointervPName"/>
+        <enum value="0x8093" name="GL_EDGE_FLAG_ARRAY_POINTER" group="GetPointervPName"/>
+        <enum value="0x8093" name="GL_EDGE_FLAG_ARRAY_POINTER_EXT" group="GetPointervPName"/>
+        <enum value="0x8094" name="GL_INTERLACE_SGIX" group="GetPName,EnableCap"/>
+        <enum value="0x8095" name="GL_DETAIL_TEXTURE_2D_SGIS" group="TextureTarget"/>
+        <enum value="0x8096" name="GL_DETAIL_TEXTURE_2D_BINDING_SGIS" group="GetPName"/>
+        <enum value="0x8097" name="GL_LINEAR_DETAIL_SGIS" group="TextureMagFilter"/>
+        <enum value="0x8098" name="GL_LINEAR_DETAIL_ALPHA_SGIS" group="TextureMagFilter"/>
+        <enum value="0x8099" name="GL_LINEAR_DETAIL_COLOR_SGIS" group="TextureMagFilter"/>
+        <enum value="0x809A" name="GL_DETAIL_TEXTURE_LEVEL_SGIS" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x809B" name="GL_DETAIL_TEXTURE_MODE_SGIS" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x809C" name="GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x809D" name="GL_MULTISAMPLE" group="EnableCap"/>
         <enum value="0x809D" name="GL_MULTISAMPLE_ARB"/>
         <enum value="0x809D" name="GL_MULTISAMPLE_EXT"/>
-        <enum value="0x809D" name="GL_MULTISAMPLE_SGIS"/>
-        <enum value="0x809E" name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
+        <enum value="0x809D" name="GL_MULTISAMPLE_SGIS" group="GetPName,EnableCap"/>
+        <enum value="0x809E" name="GL_SAMPLE_ALPHA_TO_COVERAGE" group="EnableCap"/>
         <enum value="0x809E" name="GL_SAMPLE_ALPHA_TO_COVERAGE_ARB"/>
         <enum value="0x809E" name="GL_SAMPLE_ALPHA_TO_MASK_EXT"/>
-        <enum value="0x809E" name="GL_SAMPLE_ALPHA_TO_MASK_SGIS"/>
-        <enum value="0x809F" name="GL_SAMPLE_ALPHA_TO_ONE"/>
+        <enum value="0x809E" name="GL_SAMPLE_ALPHA_TO_MASK_SGIS" group="GetPName,EnableCap"/>
+        <enum value="0x809F" name="GL_SAMPLE_ALPHA_TO_ONE" group="EnableCap"/>
         <enum value="0x809F" name="GL_SAMPLE_ALPHA_TO_ONE_ARB"/>
         <enum value="0x809F" name="GL_SAMPLE_ALPHA_TO_ONE_EXT"/>
-        <enum value="0x809F" name="GL_SAMPLE_ALPHA_TO_ONE_SGIS"/>
-        <enum value="0x80A0" name="GL_SAMPLE_COVERAGE"/>
+        <enum value="0x809F" name="GL_SAMPLE_ALPHA_TO_ONE_SGIS" group="GetPName,EnableCap"/>
+        <enum value="0x80A0" name="GL_SAMPLE_COVERAGE" group="EnableCap"/>
         <enum value="0x80A0" name="GL_SAMPLE_COVERAGE_ARB"/>
         <enum value="0x80A0" name="GL_SAMPLE_MASK_EXT"/>
-        <enum value="0x80A0" name="GL_SAMPLE_MASK_SGIS"/>
-        <enum value="0x80A1" name="GL_1PASS_EXT"/>
-        <enum value="0x80A1" name="GL_1PASS_SGIS"/>
-        <enum value="0x80A2" name="GL_2PASS_0_EXT"/>
-        <enum value="0x80A2" name="GL_2PASS_0_SGIS"/>
-        <enum value="0x80A3" name="GL_2PASS_1_EXT"/>
-        <enum value="0x80A3" name="GL_2PASS_1_SGIS"/>
-        <enum value="0x80A4" name="GL_4PASS_0_EXT"/>
-        <enum value="0x80A4" name="GL_4PASS_0_SGIS"/>
-        <enum value="0x80A5" name="GL_4PASS_1_EXT"/>
-        <enum value="0x80A5" name="GL_4PASS_1_SGIS"/>
-        <enum value="0x80A6" name="GL_4PASS_2_EXT"/>
-        <enum value="0x80A6" name="GL_4PASS_2_SGIS"/>
-        <enum value="0x80A7" name="GL_4PASS_3_EXT"/>
-        <enum value="0x80A7" name="GL_4PASS_3_SGIS"/>
-        <enum value="0x80A8" name="GL_SAMPLE_BUFFERS"/>
+        <enum value="0x80A0" name="GL_SAMPLE_MASK_SGIS" group="GetPName,EnableCap"/>
+        <enum value="0x80A1" name="GL_1PASS_EXT" group="SamplePatternSGIS,SamplePatternEXT"/>
+        <enum value="0x80A1" name="GL_1PASS_SGIS" group="SamplePatternSGIS"/>
+        <enum value="0x80A2" name="GL_2PASS_0_EXT" group="SamplePatternSGIS,SamplePatternEXT"/>
+        <enum value="0x80A2" name="GL_2PASS_0_SGIS" group="SamplePatternSGIS"/>
+        <enum value="0x80A3" name="GL_2PASS_1_EXT" group="SamplePatternSGIS,SamplePatternEXT"/>
+        <enum value="0x80A3" name="GL_2PASS_1_SGIS" group="SamplePatternSGIS"/>
+        <enum value="0x80A4" name="GL_4PASS_0_EXT" group="SamplePatternSGIS,SamplePatternEXT"/>
+        <enum value="0x80A4" name="GL_4PASS_0_SGIS" group="SamplePatternSGIS"/>
+        <enum value="0x80A5" name="GL_4PASS_1_EXT" group="SamplePatternSGIS,SamplePatternEXT"/>
+        <enum value="0x80A5" name="GL_4PASS_1_SGIS" group="SamplePatternSGIS"/>
+        <enum value="0x80A6" name="GL_4PASS_2_EXT" group="SamplePatternSGIS,SamplePatternEXT"/>
+        <enum value="0x80A6" name="GL_4PASS_2_SGIS" group="SamplePatternSGIS"/>
+        <enum value="0x80A7" name="GL_4PASS_3_EXT" group="SamplePatternSGIS,SamplePatternEXT"/>
+        <enum value="0x80A7" name="GL_4PASS_3_SGIS" group="SamplePatternSGIS"/>
+        <enum value="0x80A8" name="GL_SAMPLE_BUFFERS" group="GetFramebufferParameter,GetPName"/>
         <enum value="0x80A8" name="GL_SAMPLE_BUFFERS_ARB"/>
         <enum value="0x80A8" name="GL_SAMPLE_BUFFERS_EXT"/>
-        <enum value="0x80A8" name="GL_SAMPLE_BUFFERS_SGIS"/>
-        <enum value="0x80A9" name="GL_SAMPLES"/>
+        <enum value="0x80A8" name="GL_SAMPLE_BUFFERS_SGIS" group="GetPName"/>
+        <enum value="0x80A9" name="GL_SAMPLES" group="GetFramebufferParameter,GetPName,InternalFormatPName"/>
         <enum value="0x80A9" name="GL_SAMPLES_ARB"/>
         <enum value="0x80A9" name="GL_SAMPLES_EXT"/>
-        <enum value="0x80A9" name="GL_SAMPLES_SGIS"/>
-        <enum value="0x80AA" name="GL_SAMPLE_COVERAGE_VALUE"/>
+        <enum value="0x80A9" name="GL_SAMPLES_SGIS" group="GetPName"/>
+        <enum value="0x80AA" name="GL_SAMPLE_COVERAGE_VALUE" group="GetPName"/>
         <enum value="0x80AA" name="GL_SAMPLE_COVERAGE_VALUE_ARB"/>
         <enum value="0x80AA" name="GL_SAMPLE_MASK_VALUE_EXT"/>
-        <enum value="0x80AA" name="GL_SAMPLE_MASK_VALUE_SGIS"/>
-        <enum value="0x80AB" name="GL_SAMPLE_COVERAGE_INVERT"/>
+        <enum value="0x80AA" name="GL_SAMPLE_MASK_VALUE_SGIS" group="GetPName"/>
+        <enum value="0x80AB" name="GL_SAMPLE_COVERAGE_INVERT" group="GetPName"/>
         <enum value="0x80AB" name="GL_SAMPLE_COVERAGE_INVERT_ARB"/>
         <enum value="0x80AB" name="GL_SAMPLE_MASK_INVERT_EXT"/>
-        <enum value="0x80AB" name="GL_SAMPLE_MASK_INVERT_SGIS"/>
+        <enum value="0x80AB" name="GL_SAMPLE_MASK_INVERT_SGIS" group="GetPName"/>
         <enum value="0x80AC" name="GL_SAMPLE_PATTERN_EXT"/>
-        <enum value="0x80AC" name="GL_SAMPLE_PATTERN_SGIS"/>
-        <enum value="0x80AD" name="GL_LINEAR_SHARPEN_SGIS"/>
-        <enum value="0x80AE" name="GL_LINEAR_SHARPEN_ALPHA_SGIS"/>
-        <enum value="0x80AF" name="GL_LINEAR_SHARPEN_COLOR_SGIS"/>
-        <enum value="0x80B0" name="GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS"/>
+        <enum value="0x80AC" name="GL_SAMPLE_PATTERN_SGIS" group="GetPName"/>
+        <enum value="0x80AD" name="GL_LINEAR_SHARPEN_SGIS" group="TextureMagFilter"/>
+        <enum value="0x80AE" name="GL_LINEAR_SHARPEN_ALPHA_SGIS" group="TextureMagFilter"/>
+        <enum value="0x80AF" name="GL_LINEAR_SHARPEN_COLOR_SGIS" group="TextureMagFilter"/>
+        <enum value="0x80B0" name="GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS" group="TextureParameterName,GetTextureParameter"/>
         <enum value="0x80B1" name="GL_COLOR_MATRIX"/>
-        <enum value="0x80B1" name="GL_COLOR_MATRIX_SGI"/>
+        <enum value="0x80B1" name="GL_COLOR_MATRIX_SGI" group="GetPName"/>
         <enum value="0x80B2" name="GL_COLOR_MATRIX_STACK_DEPTH"/>
-        <enum value="0x80B2" name="GL_COLOR_MATRIX_STACK_DEPTH_SGI"/>
+        <enum value="0x80B2" name="GL_COLOR_MATRIX_STACK_DEPTH_SGI" group="GetPName"/>
         <enum value="0x80B3" name="GL_MAX_COLOR_MATRIX_STACK_DEPTH"/>
-        <enum value="0x80B3" name="GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI"/>
-        <enum value="0x80B4" name="GL_POST_COLOR_MATRIX_RED_SCALE"/>
-        <enum value="0x80B4" name="GL_POST_COLOR_MATRIX_RED_SCALE_SGI"/>
-        <enum value="0x80B5" name="GL_POST_COLOR_MATRIX_GREEN_SCALE"/>
-        <enum value="0x80B5" name="GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI"/>
-        <enum value="0x80B6" name="GL_POST_COLOR_MATRIX_BLUE_SCALE"/>
-        <enum value="0x80B6" name="GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI"/>
-        <enum value="0x80B7" name="GL_POST_COLOR_MATRIX_ALPHA_SCALE"/>
-        <enum value="0x80B7" name="GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI"/>
-        <enum value="0x80B8" name="GL_POST_COLOR_MATRIX_RED_BIAS"/>
-        <enum value="0x80B8" name="GL_POST_COLOR_MATRIX_RED_BIAS_SGI"/>
-        <enum value="0x80B9" name="GL_POST_COLOR_MATRIX_GREEN_BIAS"/>
-        <enum value="0x80B9" name="GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI"/>
-        <enum value="0x80BA" name="GL_POST_COLOR_MATRIX_BLUE_BIAS"/>
-        <enum value="0x80BA" name="GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI"/>
-        <enum value="0x80BB" name="GL_POST_COLOR_MATRIX_ALPHA_BIAS"/>
-        <enum value="0x80BB" name="GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI"/>
-        <enum value="0x80BC" name="GL_TEXTURE_COLOR_TABLE_SGI"/>
-        <enum value="0x80BD" name="GL_PROXY_TEXTURE_COLOR_TABLE_SGI"/>
-        <enum value="0x80BE" name="GL_TEXTURE_ENV_BIAS_SGIX"/>
-        <enum value="0x80BF" name="GL_SHADOW_AMBIENT_SGIX"/>
+        <enum value="0x80B3" name="GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI" group="GetPName"/>
+        <enum value="0x80B4" name="GL_POST_COLOR_MATRIX_RED_SCALE" group="PixelTransferParameter"/>
+        <enum value="0x80B4" name="GL_POST_COLOR_MATRIX_RED_SCALE_SGI" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x80B5" name="GL_POST_COLOR_MATRIX_GREEN_SCALE" group="PixelTransferParameter"/>
+        <enum value="0x80B5" name="GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x80B6" name="GL_POST_COLOR_MATRIX_BLUE_SCALE" group="PixelTransferParameter"/>
+        <enum value="0x80B6" name="GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x80B7" name="GL_POST_COLOR_MATRIX_ALPHA_SCALE" group="PixelTransferParameter"/>
+        <enum value="0x80B7" name="GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x80B8" name="GL_POST_COLOR_MATRIX_RED_BIAS" group="PixelTransferParameter"/>
+        <enum value="0x80B8" name="GL_POST_COLOR_MATRIX_RED_BIAS_SGI" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x80B9" name="GL_POST_COLOR_MATRIX_GREEN_BIAS" group="PixelTransferParameter"/>
+        <enum value="0x80B9" name="GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x80BA" name="GL_POST_COLOR_MATRIX_BLUE_BIAS" group="PixelTransferParameter"/>
+        <enum value="0x80BA" name="GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x80BB" name="GL_POST_COLOR_MATRIX_ALPHA_BIAS" group="PixelTransferParameter"/>
+        <enum value="0x80BB" name="GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI" group="PixelTransferParameter,GetPName"/>
+        <enum value="0x80BC" name="GL_TEXTURE_COLOR_TABLE_SGI" group="GetPName,ColorTableTargetSGI,EnableCap"/>
+        <enum value="0x80BD" name="GL_PROXY_TEXTURE_COLOR_TABLE_SGI" group="ColorTableTargetSGI"/>
+        <enum value="0x80BE" name="GL_TEXTURE_ENV_BIAS_SGIX" group="TextureEnvMode"/>
+        <enum value="0x80BF" name="GL_SHADOW_AMBIENT_SGIX" group="TextureParameterName,GetTextureParameter"/>
         <enum value="0x80BF" name="GL_TEXTURE_COMPARE_FAIL_VALUE_ARB"/>
     </enums>
 
     <enums namespace="GL" start="0x80C0" end="0x80CF" vendor="ZiiLabs">
             <unused start="0x80C0" end="0x80C7" vendor="ZiiLabs"/>
-        <enum value="0x80C8" name="GL_BLEND_DST_RGB"/>
+        <enum value="0x80C8" name="GL_BLEND_DST_RGB" group="GetPName"/>
         <enum value="0x80C8" name="GL_BLEND_DST_RGB_EXT"/>
         <enum value="0x80C8" name="GL_BLEND_DST_RGB_OES"/>
-        <enum value="0x80C9" name="GL_BLEND_SRC_RGB"/>
+        <enum value="0x80C9" name="GL_BLEND_SRC_RGB" group="GetPName"/>
         <enum value="0x80C9" name="GL_BLEND_SRC_RGB_EXT"/>
         <enum value="0x80C9" name="GL_BLEND_SRC_RGB_OES"/>
-        <enum value="0x80CA" name="GL_BLEND_DST_ALPHA"/>
+        <enum value="0x80CA" name="GL_BLEND_DST_ALPHA" group="GetPName"/>
         <enum value="0x80CA" name="GL_BLEND_DST_ALPHA_EXT"/>
         <enum value="0x80CA" name="GL_BLEND_DST_ALPHA_OES"/>
-        <enum value="0x80CB" name="GL_BLEND_SRC_ALPHA"/>
+        <enum value="0x80CB" name="GL_BLEND_SRC_ALPHA" group="GetPName"/>
         <enum value="0x80CB" name="GL_BLEND_SRC_ALPHA_EXT"/>
         <enum value="0x80CB" name="GL_BLEND_SRC_ALPHA_OES"/>
         <enum value="0x80CC" name="GL_422_EXT"/>
@@ -6313,44 +6312,44 @@
     </enums>
 
     <enums namespace="GL" start="0x80D0" end="0x80DF" vendor="SGI">
-        <enum value="0x80D0" name="GL_COLOR_TABLE"/>
-        <enum value="0x80D0" name="GL_COLOR_TABLE_SGI"/>
-        <enum value="0x80D1" name="GL_POST_CONVOLUTION_COLOR_TABLE"/>
-        <enum value="0x80D1" name="GL_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
-        <enum value="0x80D2" name="GL_POST_COLOR_MATRIX_COLOR_TABLE"/>
-        <enum value="0x80D2" name="GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
-        <enum value="0x80D3" name="GL_PROXY_COLOR_TABLE"/>
-        <enum value="0x80D3" name="GL_PROXY_COLOR_TABLE_SGI"/>
-        <enum value="0x80D4" name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE"/>
-        <enum value="0x80D4" name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
-        <enum value="0x80D5" name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE"/>
-        <enum value="0x80D5" name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
-        <enum value="0x80D6" name="GL_COLOR_TABLE_SCALE"/>
-        <enum value="0x80D6" name="GL_COLOR_TABLE_SCALE_SGI"/>
-        <enum value="0x80D7" name="GL_COLOR_TABLE_BIAS"/>
-        <enum value="0x80D7" name="GL_COLOR_TABLE_BIAS_SGI"/>
-        <enum value="0x80D8" name="GL_COLOR_TABLE_FORMAT"/>
-        <enum value="0x80D8" name="GL_COLOR_TABLE_FORMAT_SGI"/>
-        <enum value="0x80D9" name="GL_COLOR_TABLE_WIDTH"/>
-        <enum value="0x80D9" name="GL_COLOR_TABLE_WIDTH_SGI"/>
-        <enum value="0x80DA" name="GL_COLOR_TABLE_RED_SIZE"/>
-        <enum value="0x80DA" name="GL_COLOR_TABLE_RED_SIZE_SGI"/>
-        <enum value="0x80DB" name="GL_COLOR_TABLE_GREEN_SIZE"/>
-        <enum value="0x80DB" name="GL_COLOR_TABLE_GREEN_SIZE_SGI"/>
-        <enum value="0x80DC" name="GL_COLOR_TABLE_BLUE_SIZE"/>
-        <enum value="0x80DC" name="GL_COLOR_TABLE_BLUE_SIZE_SGI"/>
-        <enum value="0x80DD" name="GL_COLOR_TABLE_ALPHA_SIZE"/>
-        <enum value="0x80DD" name="GL_COLOR_TABLE_ALPHA_SIZE_SGI"/>
-        <enum value="0x80DE" name="GL_COLOR_TABLE_LUMINANCE_SIZE"/>
-        <enum value="0x80DE" name="GL_COLOR_TABLE_LUMINANCE_SIZE_SGI"/>
-        <enum value="0x80DF" name="GL_COLOR_TABLE_INTENSITY_SIZE"/>
-        <enum value="0x80DF" name="GL_COLOR_TABLE_INTENSITY_SIZE_SGI"/>
+        <enum value="0x80D0" name="GL_COLOR_TABLE" group="ColorTableTarget,ColorTableTargetSGI"/>
+        <enum value="0x80D0" name="GL_COLOR_TABLE_SGI" group="GetPName,ColorTableTargetSGI,EnableCap"/>
+        <enum value="0x80D1" name="GL_POST_CONVOLUTION_COLOR_TABLE" group="ColorTableTarget,ColorTableTargetSGI"/>
+        <enum value="0x80D1" name="GL_POST_CONVOLUTION_COLOR_TABLE_SGI" group="GetPName,ColorTableTargetSGI,EnableCap"/>
+        <enum value="0x80D2" name="GL_POST_COLOR_MATRIX_COLOR_TABLE" group="ColorTableTarget,ColorTableTargetSGI"/>
+        <enum value="0x80D2" name="GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI" group="GetPName,ColorTableTargetSGI,EnableCap"/>
+        <enum value="0x80D3" name="GL_PROXY_COLOR_TABLE" group="ColorTableTargetSGI"/>
+        <enum value="0x80D3" name="GL_PROXY_COLOR_TABLE_SGI" group="ColorTableTargetSGI"/>
+        <enum value="0x80D4" name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE" group="ColorTableTargetSGI"/>
+        <enum value="0x80D4" name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI" group="ColorTableTargetSGI"/>
+        <enum value="0x80D5" name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE" group="ColorTableTargetSGI"/>
+        <enum value="0x80D5" name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI" group="ColorTableTargetSGI"/>
+        <enum value="0x80D6" name="GL_COLOR_TABLE_SCALE" group="GetColorTableParameterPNameSGI"/>
+        <enum value="0x80D6" name="GL_COLOR_TABLE_SCALE_SGI" group="GetColorTableParameterPNameSGI"/>
+        <enum value="0x80D7" name="GL_COLOR_TABLE_BIAS" group="GetColorTableParameterPNameSGI"/>
+        <enum value="0x80D7" name="GL_COLOR_TABLE_BIAS_SGI" group="GetColorTableParameterPNameSGI"/>
+        <enum value="0x80D8" name="GL_COLOR_TABLE_FORMAT" group="GetColorTableParameterPNameSGI"/>
+        <enum value="0x80D8" name="GL_COLOR_TABLE_FORMAT_SGI" group="GetColorTableParameterPNameSGI"/>
+        <enum value="0x80D9" name="GL_COLOR_TABLE_WIDTH" group="GetColorTableParameterPNameSGI"/>
+        <enum value="0x80D9" name="GL_COLOR_TABLE_WIDTH_SGI" group="GetColorTableParameterPNameSGI"/>
+        <enum value="0x80DA" name="GL_COLOR_TABLE_RED_SIZE" group="GetColorTableParameterPNameSGI"/>
+        <enum value="0x80DA" name="GL_COLOR_TABLE_RED_SIZE_SGI" group="GetColorTableParameterPNameSGI"/>
+        <enum value="0x80DB" name="GL_COLOR_TABLE_GREEN_SIZE" group="GetColorTableParameterPNameSGI"/>
+        <enum value="0x80DB" name="GL_COLOR_TABLE_GREEN_SIZE_SGI" group="GetColorTableParameterPNameSGI"/>
+        <enum value="0x80DC" name="GL_COLOR_TABLE_BLUE_SIZE" group="GetColorTableParameterPNameSGI"/>
+        <enum value="0x80DC" name="GL_COLOR_TABLE_BLUE_SIZE_SGI" group="GetColorTableParameterPNameSGI"/>
+        <enum value="0x80DD" name="GL_COLOR_TABLE_ALPHA_SIZE" group="GetColorTableParameterPNameSGI"/>
+        <enum value="0x80DD" name="GL_COLOR_TABLE_ALPHA_SIZE_SGI" group="GetColorTableParameterPNameSGI"/>
+        <enum value="0x80DE" name="GL_COLOR_TABLE_LUMINANCE_SIZE" group="GetColorTableParameterPNameSGI"/>
+        <enum value="0x80DE" name="GL_COLOR_TABLE_LUMINANCE_SIZE_SGI" group="GetColorTableParameterPNameSGI"/>
+        <enum value="0x80DF" name="GL_COLOR_TABLE_INTENSITY_SIZE" group="GetColorTableParameterPNameSGI"/>
+        <enum value="0x80DF" name="GL_COLOR_TABLE_INTENSITY_SIZE_SGI" group="GetColorTableParameterPNameSGI"/>
     </enums>
 
     <enums namespace="GL" start="0x80E0" end="0x810F" vendor="MS">
-        <enum value="0x80E0" name="GL_BGR"/>
+        <enum value="0x80E0" name="GL_BGR" group="PixelFormat"/>
         <enum value="0x80E0" name="GL_BGR_EXT"/>
-        <enum value="0x80E1" name="GL_BGRA"/>
+        <enum value="0x80E1" name="GL_BGRA" group="PixelFormat"/>
         <enum value="0x80E1" name="GL_BGRA_EXT"/>
         <enum value="0x80E1" name="GL_BGRA_IMG"/>
         <enum value="0x80E2" name="GL_COLOR_INDEX1_EXT"/>
@@ -6359,110 +6358,110 @@
         <enum value="0x80E5" name="GL_COLOR_INDEX8_EXT"/>
         <enum value="0x80E6" name="GL_COLOR_INDEX12_EXT"/>
         <enum value="0x80E7" name="GL_COLOR_INDEX16_EXT"/>
-        <enum value="0x80E8" name="GL_MAX_ELEMENTS_VERTICES"/>
+        <enum value="0x80E8" name="GL_MAX_ELEMENTS_VERTICES" group="GetPName"/>
         <enum value="0x80E8" name="GL_MAX_ELEMENTS_VERTICES_EXT"/>
-        <enum value="0x80E9" name="GL_MAX_ELEMENTS_INDICES"/>
+        <enum value="0x80E9" name="GL_MAX_ELEMENTS_INDICES" group="GetPName"/>
         <enum value="0x80E9" name="GL_MAX_ELEMENTS_INDICES_EXT"/>
         <enum value="0x80EA" name="GL_PHONG_WIN"/>
-        <enum value="0x80EB" name="GL_PHONG_HINT_WIN"/>
+        <enum value="0x80EB" name="GL_PHONG_HINT_WIN" group="HintTarget"/>
         <enum value="0x80EC" name="GL_FOG_SPECULAR_TEXTURE_WIN"/>
         <enum value="0x80ED" name="GL_TEXTURE_INDEX_SIZE_EXT"/>
-        <enum value="0x80EE" name="GL_PARAMETER_BUFFER"/>
+        <enum value="0x80EE" name="GL_PARAMETER_BUFFER" group="BufferTargetARB"/>
         <enum value="0x80EE" name="GL_PARAMETER_BUFFER_ARB" alias="GL_PARAMETER_BUFFER"/>
         <enum value="0x80EF" name="GL_PARAMETER_BUFFER_BINDING"/>
         <enum value="0x80EF" name="GL_PARAMETER_BUFFER_BINDING_ARB" alias="GL_PARAMETER_BUFFER_BINDING"/>
-        <enum value="0x80F0" name="GL_CLIP_VOLUME_CLIPPING_HINT_EXT"/>
+        <enum value="0x80F0" name="GL_CLIP_VOLUME_CLIPPING_HINT_EXT" group="HintTarget"/>
             <unused start="0x80F1" end="0x810F" vendor="MS"/>
     </enums>
 
     <enums namespace="GL" start="0x8110" end="0x814F" vendor="SGI">
-        <enum value="0x8110" name="GL_DUAL_ALPHA4_SGIS"/>
-        <enum value="0x8111" name="GL_DUAL_ALPHA8_SGIS"/>
-        <enum value="0x8112" name="GL_DUAL_ALPHA12_SGIS"/>
-        <enum value="0x8113" name="GL_DUAL_ALPHA16_SGIS"/>
-        <enum value="0x8114" name="GL_DUAL_LUMINANCE4_SGIS"/>
-        <enum value="0x8115" name="GL_DUAL_LUMINANCE8_SGIS"/>
-        <enum value="0x8116" name="GL_DUAL_LUMINANCE12_SGIS"/>
-        <enum value="0x8117" name="GL_DUAL_LUMINANCE16_SGIS"/>
-        <enum value="0x8118" name="GL_DUAL_INTENSITY4_SGIS"/>
-        <enum value="0x8119" name="GL_DUAL_INTENSITY8_SGIS"/>
-        <enum value="0x811A" name="GL_DUAL_INTENSITY12_SGIS"/>
-        <enum value="0x811B" name="GL_DUAL_INTENSITY16_SGIS"/>
-        <enum value="0x811C" name="GL_DUAL_LUMINANCE_ALPHA4_SGIS"/>
-        <enum value="0x811D" name="GL_DUAL_LUMINANCE_ALPHA8_SGIS"/>
-        <enum value="0x811E" name="GL_QUAD_ALPHA4_SGIS"/>
-        <enum value="0x811F" name="GL_QUAD_ALPHA8_SGIS"/>
-        <enum value="0x8120" name="GL_QUAD_LUMINANCE4_SGIS"/>
-        <enum value="0x8121" name="GL_QUAD_LUMINANCE8_SGIS"/>
-        <enum value="0x8122" name="GL_QUAD_INTENSITY4_SGIS"/>
-        <enum value="0x8123" name="GL_QUAD_INTENSITY8_SGIS"/>
-        <enum value="0x8124" name="GL_DUAL_TEXTURE_SELECT_SGIS"/>
-        <enum value="0x8125" name="GL_QUAD_TEXTURE_SELECT_SGIS"/>
-        <enum value="0x8126" name="GL_POINT_SIZE_MIN"/>
-        <enum value="0x8126" name="GL_POINT_SIZE_MIN_ARB"/>
-        <enum value="0x8126" name="GL_POINT_SIZE_MIN_EXT"/>
-        <enum value="0x8126" name="GL_POINT_SIZE_MIN_SGIS"/>
-        <enum value="0x8127" name="GL_POINT_SIZE_MAX"/>
-        <enum value="0x8127" name="GL_POINT_SIZE_MAX_ARB"/>
-        <enum value="0x8127" name="GL_POINT_SIZE_MAX_EXT"/>
-        <enum value="0x8127" name="GL_POINT_SIZE_MAX_SGIS"/>
-        <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE"/>
-        <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE_ARB"/>
-        <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE_EXT"/>
-        <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE_SGIS"/>
-        <enum value="0x8129" name="GL_DISTANCE_ATTENUATION_EXT"/>
-        <enum value="0x8129" name="GL_DISTANCE_ATTENUATION_SGIS"/>
-        <enum value="0x8129" name="GL_POINT_DISTANCE_ATTENUATION"/>
-        <enum value="0x8129" name="GL_POINT_DISTANCE_ATTENUATION_ARB"/>
-        <enum value="0x812A" name="GL_FOG_FUNC_SGIS"/>
-        <enum value="0x812B" name="GL_FOG_FUNC_POINTS_SGIS"/>
-        <enum value="0x812C" name="GL_MAX_FOG_FUNC_POINTS_SGIS"/>
-        <enum value="0x812D" name="GL_CLAMP_TO_BORDER"/>
-        <enum value="0x812D" name="GL_CLAMP_TO_BORDER_ARB"/>
+        <enum value="0x8110" name="GL_DUAL_ALPHA4_SGIS" group="InternalFormat"/>
+        <enum value="0x8111" name="GL_DUAL_ALPHA8_SGIS" group="InternalFormat"/>
+        <enum value="0x8112" name="GL_DUAL_ALPHA12_SGIS" group="InternalFormat"/>
+        <enum value="0x8113" name="GL_DUAL_ALPHA16_SGIS" group="InternalFormat"/>
+        <enum value="0x8114" name="GL_DUAL_LUMINANCE4_SGIS" group="InternalFormat"/>
+        <enum value="0x8115" name="GL_DUAL_LUMINANCE8_SGIS" group="InternalFormat"/>
+        <enum value="0x8116" name="GL_DUAL_LUMINANCE12_SGIS" group="InternalFormat"/>
+        <enum value="0x8117" name="GL_DUAL_LUMINANCE16_SGIS" group="InternalFormat"/>
+        <enum value="0x8118" name="GL_DUAL_INTENSITY4_SGIS" group="InternalFormat"/>
+        <enum value="0x8119" name="GL_DUAL_INTENSITY8_SGIS" group="InternalFormat"/>
+        <enum value="0x811A" name="GL_DUAL_INTENSITY12_SGIS" group="InternalFormat"/>
+        <enum value="0x811B" name="GL_DUAL_INTENSITY16_SGIS" group="InternalFormat"/>
+        <enum value="0x811C" name="GL_DUAL_LUMINANCE_ALPHA4_SGIS" group="InternalFormat"/>
+        <enum value="0x811D" name="GL_DUAL_LUMINANCE_ALPHA8_SGIS" group="InternalFormat"/>
+        <enum value="0x811E" name="GL_QUAD_ALPHA4_SGIS" group="InternalFormat"/>
+        <enum value="0x811F" name="GL_QUAD_ALPHA8_SGIS" group="InternalFormat"/>
+        <enum value="0x8120" name="GL_QUAD_LUMINANCE4_SGIS" group="InternalFormat"/>
+        <enum value="0x8121" name="GL_QUAD_LUMINANCE8_SGIS" group="InternalFormat"/>
+        <enum value="0x8122" name="GL_QUAD_INTENSITY4_SGIS" group="InternalFormat"/>
+        <enum value="0x8123" name="GL_QUAD_INTENSITY8_SGIS" group="InternalFormat"/>
+        <enum value="0x8124" name="GL_DUAL_TEXTURE_SELECT_SGIS" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x8125" name="GL_QUAD_TEXTURE_SELECT_SGIS" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x8126" name="GL_POINT_SIZE_MIN" group="PointParameterNameSGIS"/>
+        <enum value="0x8126" name="GL_POINT_SIZE_MIN_ARB" group="PointParameterNameSGIS"/>
+        <enum value="0x8126" name="GL_POINT_SIZE_MIN_EXT" group="PointParameterNameSGIS,PointParameterNameARB"/>
+        <enum value="0x8126" name="GL_POINT_SIZE_MIN_SGIS" group="PointParameterNameSGIS,GetPName"/>
+        <enum value="0x8127" name="GL_POINT_SIZE_MAX" group="PointParameterNameSGIS"/>
+        <enum value="0x8127" name="GL_POINT_SIZE_MAX_ARB" group="PointParameterNameSGIS"/>
+        <enum value="0x8127" name="GL_POINT_SIZE_MAX_EXT" group="PointParameterNameSGIS,PointParameterNameARB"/>
+        <enum value="0x8127" name="GL_POINT_SIZE_MAX_SGIS" group="PointParameterNameSGIS,GetPName"/>
+        <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE" group="PointParameterNameSGIS,PointParameterNameARB,GetPName"/>
+        <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE_ARB" group="PointParameterNameSGIS"/>
+        <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE_EXT" group="PointParameterNameSGIS,PointParameterNameARB"/>
+        <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE_SGIS" group="PointParameterNameSGIS,GetPName"/>
+        <enum value="0x8129" name="GL_DISTANCE_ATTENUATION_EXT" group="PointParameterNameSGIS"/>
+        <enum value="0x8129" name="GL_DISTANCE_ATTENUATION_SGIS" group="PointParameterNameSGIS,GetPName"/>
+        <enum value="0x8129" name="GL_POINT_DISTANCE_ATTENUATION" group="PointParameterNameSGIS"/>
+        <enum value="0x8129" name="GL_POINT_DISTANCE_ATTENUATION_ARB" group="PointParameterNameSGIS"/>
+        <enum value="0x812A" name="GL_FOG_FUNC_SGIS" group="FogMode"/>
+        <enum value="0x812B" name="GL_FOG_FUNC_POINTS_SGIS" group="GetPName"/>
+        <enum value="0x812C" name="GL_MAX_FOG_FUNC_POINTS_SGIS" group="GetPName"/>
+        <enum value="0x812D" name="GL_CLAMP_TO_BORDER" group="TextureWrapMode"/>
+        <enum value="0x812D" name="GL_CLAMP_TO_BORDER_ARB" group="TextureWrapMode"/>
         <enum value="0x812D" name="GL_CLAMP_TO_BORDER_EXT"/>
-        <enum value="0x812D" name="GL_CLAMP_TO_BORDER_NV"/>
-        <enum value="0x812D" name="GL_CLAMP_TO_BORDER_SGIS"/>
+        <enum value="0x812D" name="GL_CLAMP_TO_BORDER_NV" group="TextureWrapMode"/>
+        <enum value="0x812D" name="GL_CLAMP_TO_BORDER_SGIS" group="TextureWrapMode"/>
         <enum value="0x812D" name="GL_CLAMP_TO_BORDER_OES"/>
-        <enum value="0x812E" name="GL_TEXTURE_MULTI_BUFFER_HINT_SGIX"/>
-        <enum value="0x812F" name="GL_CLAMP_TO_EDGE"/>
-        <enum value="0x812F" name="GL_CLAMP_TO_EDGE_SGIS"/>
-        <enum value="0x8130" name="GL_PACK_SKIP_VOLUMES_SGIS"/>
-        <enum value="0x8131" name="GL_PACK_IMAGE_DEPTH_SGIS"/>
-        <enum value="0x8132" name="GL_UNPACK_SKIP_VOLUMES_SGIS"/>
-        <enum value="0x8133" name="GL_UNPACK_IMAGE_DEPTH_SGIS"/>
-        <enum value="0x8134" name="GL_TEXTURE_4D_SGIS"/>
-        <enum value="0x8135" name="GL_PROXY_TEXTURE_4D_SGIS"/>
-        <enum value="0x8136" name="GL_TEXTURE_4DSIZE_SGIS"/>
-        <enum value="0x8137" name="GL_TEXTURE_WRAP_Q_SGIS"/>
-        <enum value="0x8138" name="GL_MAX_4D_TEXTURE_SIZE_SGIS"/>
-        <enum value="0x8139" name="GL_PIXEL_TEX_GEN_SGIX"/>
-        <enum value="0x813A" name="GL_TEXTURE_MIN_LOD"/>
-        <enum value="0x813A" name="GL_TEXTURE_MIN_LOD_SGIS"/>
-        <enum value="0x813B" name="GL_TEXTURE_MAX_LOD"/>
-        <enum value="0x813B" name="GL_TEXTURE_MAX_LOD_SGIS"/>
-        <enum value="0x813C" name="GL_TEXTURE_BASE_LEVEL"/>
-        <enum value="0x813C" name="GL_TEXTURE_BASE_LEVEL_SGIS"/>
-        <enum value="0x813D" name="GL_TEXTURE_MAX_LEVEL"/>
+        <enum value="0x812E" name="GL_TEXTURE_MULTI_BUFFER_HINT_SGIX" group="HintTarget"/>
+        <enum value="0x812F" name="GL_CLAMP_TO_EDGE" group="TextureWrapMode"/>
+        <enum value="0x812F" name="GL_CLAMP_TO_EDGE_SGIS" group="TextureWrapMode"/>
+        <enum value="0x8130" name="GL_PACK_SKIP_VOLUMES_SGIS" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x8131" name="GL_PACK_IMAGE_DEPTH_SGIS" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x8132" name="GL_UNPACK_SKIP_VOLUMES_SGIS" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x8133" name="GL_UNPACK_IMAGE_DEPTH_SGIS" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x8134" name="GL_TEXTURE_4D_SGIS" group="TextureTarget,EnableCap,GetPName"/>
+        <enum value="0x8135" name="GL_PROXY_TEXTURE_4D_SGIS" group="TextureTarget"/>
+        <enum value="0x8136" name="GL_TEXTURE_4DSIZE_SGIS" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x8137" name="GL_TEXTURE_WRAP_Q_SGIS" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x8138" name="GL_MAX_4D_TEXTURE_SIZE_SGIS" group="GetPName"/>
+        <enum value="0x8139" name="GL_PIXEL_TEX_GEN_SGIX" group="GetPName,EnableCap"/>
+        <enum value="0x813A" name="GL_TEXTURE_MIN_LOD" group="SamplerParameterF,TextureParameterName"/>
+        <enum value="0x813A" name="GL_TEXTURE_MIN_LOD_SGIS" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x813B" name="GL_TEXTURE_MAX_LOD" group="SamplerParameterF,TextureParameterName"/>
+        <enum value="0x813B" name="GL_TEXTURE_MAX_LOD_SGIS" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x813C" name="GL_TEXTURE_BASE_LEVEL" group="TextureParameterName"/>
+        <enum value="0x813C" name="GL_TEXTURE_BASE_LEVEL_SGIS" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x813D" name="GL_TEXTURE_MAX_LEVEL" group="TextureParameterName"/>
         <enum value="0x813D" name="GL_TEXTURE_MAX_LEVEL_APPLE"/>
-        <enum value="0x813D" name="GL_TEXTURE_MAX_LEVEL_SGIS"/>
-        <enum value="0x813E" name="GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX"/>
-        <enum value="0x813F" name="GL_PIXEL_TILE_CACHE_INCREMENT_SGIX"/>
-        <enum value="0x8140" name="GL_PIXEL_TILE_WIDTH_SGIX"/>
-        <enum value="0x8141" name="GL_PIXEL_TILE_HEIGHT_SGIX"/>
-        <enum value="0x8142" name="GL_PIXEL_TILE_GRID_WIDTH_SGIX"/>
-        <enum value="0x8143" name="GL_PIXEL_TILE_GRID_HEIGHT_SGIX"/>
-        <enum value="0x8144" name="GL_PIXEL_TILE_GRID_DEPTH_SGIX"/>
-        <enum value="0x8145" name="GL_PIXEL_TILE_CACHE_SIZE_SGIX"/>
-        <enum value="0x8146" name="GL_FILTER4_SGIS"/>
-        <enum value="0x8147" name="GL_TEXTURE_FILTER4_SIZE_SGIS"/>
-        <enum value="0x8148" name="GL_SPRITE_SGIX"/>
-        <enum value="0x8149" name="GL_SPRITE_MODE_SGIX"/>
-        <enum value="0x814A" name="GL_SPRITE_AXIS_SGIX"/>
-        <enum value="0x814B" name="GL_SPRITE_TRANSLATION_SGIX"/>
+        <enum value="0x813D" name="GL_TEXTURE_MAX_LEVEL_SGIS" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x813E" name="GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX" group="GetPName"/>
+        <enum value="0x813F" name="GL_PIXEL_TILE_CACHE_INCREMENT_SGIX" group="GetPName"/>
+        <enum value="0x8140" name="GL_PIXEL_TILE_WIDTH_SGIX" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x8141" name="GL_PIXEL_TILE_HEIGHT_SGIX" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x8142" name="GL_PIXEL_TILE_GRID_WIDTH_SGIX" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x8143" name="GL_PIXEL_TILE_GRID_HEIGHT_SGIX" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x8144" name="GL_PIXEL_TILE_GRID_DEPTH_SGIX" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x8145" name="GL_PIXEL_TILE_CACHE_SIZE_SGIX" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x8146" name="GL_FILTER4_SGIS" group="TextureMinFilter,TextureFilterSGIS,TextureFilterFuncSGIS,TextureMagFilter"/>
+        <enum value="0x8147" name="GL_TEXTURE_FILTER4_SIZE_SGIS" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x8148" name="GL_SPRITE_SGIX" group="GetPName,EnableCap"/>
+        <enum value="0x8149" name="GL_SPRITE_MODE_SGIX" group="GetPName,SpriteParameterNameSGIX"/>
+        <enum value="0x814A" name="GL_SPRITE_AXIS_SGIX" group="GetPName"/>
+        <enum value="0x814B" name="GL_SPRITE_TRANSLATION_SGIX" group="GetPName"/>
         <enum value="0x814C" name="GL_SPRITE_AXIAL_SGIX"/>
         <enum value="0x814D" name="GL_SPRITE_OBJECT_ALIGNED_SGIX"/>
         <enum value="0x814E" name="GL_SPRITE_EYE_ALIGNED_SGIX"/>
-        <enum value="0x814F" name="GL_TEXTURE_4D_BINDING_SGIS"/>
+        <enum value="0x814F" name="GL_TEXTURE_4D_BINDING_SGIS" group="GetPName"/>
     </enums>
 
     <enums namespace="GL" start="0x8150" end="0x816F" vendor="HP">
@@ -6472,21 +6471,21 @@
             <unused start="0x8152" vendor="HP" comment="GL_WRAP_BORDER = 0x8152 was proposed, but not actually promoted to core"/>
         <enum value="0x8153" name="GL_REPLICATE_BORDER"/>
         <enum value="0x8153" name="GL_REPLICATE_BORDER_HP"/>
-        <enum value="0x8154" name="GL_CONVOLUTION_BORDER_COLOR"/>
+        <enum value="0x8154" name="GL_CONVOLUTION_BORDER_COLOR" group="GetConvolutionParameter"/>
         <enum value="0x8154" name="GL_CONVOLUTION_BORDER_COLOR_HP"/>
-        <enum value="0x8155" name="GL_IMAGE_SCALE_X_HP"/>
-        <enum value="0x8156" name="GL_IMAGE_SCALE_Y_HP"/>
-        <enum value="0x8157" name="GL_IMAGE_TRANSLATE_X_HP"/>
-        <enum value="0x8158" name="GL_IMAGE_TRANSLATE_Y_HP"/>
-        <enum value="0x8159" name="GL_IMAGE_ROTATE_ANGLE_HP"/>
-        <enum value="0x815A" name="GL_IMAGE_ROTATE_ORIGIN_X_HP"/>
-        <enum value="0x815B" name="GL_IMAGE_ROTATE_ORIGIN_Y_HP"/>
-        <enum value="0x815C" name="GL_IMAGE_MAG_FILTER_HP"/>
-        <enum value="0x815D" name="GL_IMAGE_MIN_FILTER_HP"/>
-        <enum value="0x815E" name="GL_IMAGE_CUBIC_WEIGHT_HP"/>
+        <enum value="0x8155" name="GL_IMAGE_SCALE_X_HP" group="ImageTransformPNameHP"/>
+        <enum value="0x8156" name="GL_IMAGE_SCALE_Y_HP" group="ImageTransformPNameHP"/>
+        <enum value="0x8157" name="GL_IMAGE_TRANSLATE_X_HP" group="ImageTransformPNameHP"/>
+        <enum value="0x8158" name="GL_IMAGE_TRANSLATE_Y_HP" group="ImageTransformPNameHP"/>
+        <enum value="0x8159" name="GL_IMAGE_ROTATE_ANGLE_HP" group="ImageTransformPNameHP"/>
+        <enum value="0x815A" name="GL_IMAGE_ROTATE_ORIGIN_X_HP" group="ImageTransformPNameHP"/>
+        <enum value="0x815B" name="GL_IMAGE_ROTATE_ORIGIN_Y_HP" group="ImageTransformPNameHP"/>
+        <enum value="0x815C" name="GL_IMAGE_MAG_FILTER_HP" group="ImageTransformPNameHP"/>
+        <enum value="0x815D" name="GL_IMAGE_MIN_FILTER_HP" group="ImageTransformPNameHP"/>
+        <enum value="0x815E" name="GL_IMAGE_CUBIC_WEIGHT_HP" group="ImageTransformPNameHP"/>
         <enum value="0x815F" name="GL_CUBIC_HP"/>
         <enum value="0x8160" name="GL_AVERAGE_HP"/>
-        <enum value="0x8161" name="GL_IMAGE_TRANSFORM_2D_HP"/>
+        <enum value="0x8161" name="GL_IMAGE_TRANSFORM_2D_HP" group="ImageTransformTargetHP"/>
         <enum value="0x8162" name="GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP"/>
         <enum value="0x8163" name="GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP"/>
             <unused start="0x8164" vendor="HP"/>
@@ -6499,55 +6498,55 @@
     </enums>
 
     <enums namespace="GL" start="0x8170" end="0x81CF" vendor="SGI">
-        <enum value="0x8170" name="GL_LINEAR_CLIPMAP_LINEAR_SGIX"/>
-        <enum value="0x8171" name="GL_TEXTURE_CLIPMAP_CENTER_SGIX"/>
-        <enum value="0x8172" name="GL_TEXTURE_CLIPMAP_FRAME_SGIX"/>
-        <enum value="0x8173" name="GL_TEXTURE_CLIPMAP_OFFSET_SGIX"/>
-        <enum value="0x8174" name="GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
-        <enum value="0x8175" name="GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX"/>
-        <enum value="0x8176" name="GL_TEXTURE_CLIPMAP_DEPTH_SGIX"/>
-        <enum value="0x8177" name="GL_MAX_CLIPMAP_DEPTH_SGIX"/>
-        <enum value="0x8178" name="GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
-        <enum value="0x8179" name="GL_POST_TEXTURE_FILTER_BIAS_SGIX"/>
-        <enum value="0x817A" name="GL_POST_TEXTURE_FILTER_SCALE_SGIX"/>
-        <enum value="0x817B" name="GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX"/>
-        <enum value="0x817C" name="GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX"/>
-        <enum value="0x817D" name="GL_REFERENCE_PLANE_SGIX"/>
-        <enum value="0x817E" name="GL_REFERENCE_PLANE_EQUATION_SGIX"/>
-        <enum value="0x817F" name="GL_IR_INSTRUMENT1_SGIX"/>
-        <enum value="0x8180" name="GL_INSTRUMENT_BUFFER_POINTER_SGIX"/>
-        <enum value="0x8181" name="GL_INSTRUMENT_MEASUREMENTS_SGIX"/>
-        <enum value="0x8182" name="GL_LIST_PRIORITY_SGIX"/>
-        <enum value="0x8183" name="GL_CALLIGRAPHIC_FRAGMENT_SGIX"/>
-        <enum value="0x8184" name="GL_PIXEL_TEX_GEN_Q_CEILING_SGIX"/>
-        <enum value="0x8185" name="GL_PIXEL_TEX_GEN_Q_ROUND_SGIX"/>
-        <enum value="0x8186" name="GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX"/>
-        <enum value="0x8187" name="GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX"/>
-        <enum value="0x8188" name="GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX"/>
-        <enum value="0x8189" name="GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX"/>
-        <enum value="0x818A" name="GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX"/>
-        <enum value="0x818B" name="GL_FRAMEZOOM_SGIX"/>
-        <enum value="0x818C" name="GL_FRAMEZOOM_FACTOR_SGIX"/>
-        <enum value="0x818D" name="GL_MAX_FRAMEZOOM_FACTOR_SGIX"/>
-        <enum value="0x818E" name="GL_TEXTURE_LOD_BIAS_S_SGIX"/>
-        <enum value="0x818F" name="GL_TEXTURE_LOD_BIAS_T_SGIX"/>
-        <enum value="0x8190" name="GL_TEXTURE_LOD_BIAS_R_SGIX"/>
-        <enum value="0x8191" name="GL_GENERATE_MIPMAP"/>
-        <enum value="0x8191" name="GL_GENERATE_MIPMAP_SGIS"/>
-        <enum value="0x8192" name="GL_GENERATE_MIPMAP_HINT"/>
-        <enum value="0x8192" name="GL_GENERATE_MIPMAP_HINT_SGIS"/>
+        <enum value="0x8170" name="GL_LINEAR_CLIPMAP_LINEAR_SGIX" group="TextureMinFilter"/>
+        <enum value="0x8171" name="GL_TEXTURE_CLIPMAP_CENTER_SGIX" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x8172" name="GL_TEXTURE_CLIPMAP_FRAME_SGIX" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x8173" name="GL_TEXTURE_CLIPMAP_OFFSET_SGIX" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x8174" name="GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x8175" name="GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x8176" name="GL_TEXTURE_CLIPMAP_DEPTH_SGIX" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x8177" name="GL_MAX_CLIPMAP_DEPTH_SGIX" group="GetPName"/>
+        <enum value="0x8178" name="GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX" group="GetPName"/>
+        <enum value="0x8179" name="GL_POST_TEXTURE_FILTER_BIAS_SGIX" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x817A" name="GL_POST_TEXTURE_FILTER_SCALE_SGIX" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x817B" name="GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX" group="GetPName"/>
+        <enum value="0x817C" name="GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX" group="GetPName"/>
+        <enum value="0x817D" name="GL_REFERENCE_PLANE_SGIX" group="GetPName,EnableCap"/>
+        <enum value="0x817E" name="GL_REFERENCE_PLANE_EQUATION_SGIX" group="GetPName"/>
+        <enum value="0x817F" name="GL_IR_INSTRUMENT1_SGIX" group="GetPName,EnableCap"/>
+        <enum value="0x8180" name="GL_INSTRUMENT_BUFFER_POINTER_SGIX" group="GetPointervPName"/>
+        <enum value="0x8181" name="GL_INSTRUMENT_MEASUREMENTS_SGIX" group="GetPName"/>
+        <enum value="0x8182" name="GL_LIST_PRIORITY_SGIX" group="ListParameterName"/>
+        <enum value="0x8183" name="GL_CALLIGRAPHIC_FRAGMENT_SGIX" group="GetPName,EnableCap"/>
+        <enum value="0x8184" name="GL_PIXEL_TEX_GEN_Q_CEILING_SGIX" group="TextureMinFilter,PixelTexGenModeSGIX,TextureMagFilter"/>
+        <enum value="0x8185" name="GL_PIXEL_TEX_GEN_Q_ROUND_SGIX" group="TextureMinFilter,PixelTexGenModeSGIX,TextureMagFilter"/>
+        <enum value="0x8186" name="GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX" group="TextureMinFilter,PixelTexGenModeSGIX,TextureMagFilter"/>
+        <enum value="0x8187" name="GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX" group="PixelTexGenMode"/>
+        <enum value="0x8188" name="GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX" group="PixelTexGenMode"/>
+        <enum value="0x8189" name="GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX" group="PixelTexGenMode,PixelTexGenModeSGIX"/>
+        <enum value="0x818A" name="GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX" group="PixelTexGenMode,PixelTexGenModeSGIX"/>
+        <enum value="0x818B" name="GL_FRAMEZOOM_SGIX" group="GetPName,EnableCap"/>
+        <enum value="0x818C" name="GL_FRAMEZOOM_FACTOR_SGIX" group="GetPName"/>
+        <enum value="0x818D" name="GL_MAX_FRAMEZOOM_FACTOR_SGIX" group="GetPName"/>
+        <enum value="0x818E" name="GL_TEXTURE_LOD_BIAS_S_SGIX" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x818F" name="GL_TEXTURE_LOD_BIAS_T_SGIX" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x8190" name="GL_TEXTURE_LOD_BIAS_R_SGIX" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x8191" name="GL_GENERATE_MIPMAP" group="InternalFormatPName,TextureParameterName"/>
+        <enum value="0x8191" name="GL_GENERATE_MIPMAP_SGIS" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x8192" name="GL_GENERATE_MIPMAP_HINT" group="HintTarget"/>
+        <enum value="0x8192" name="GL_GENERATE_MIPMAP_HINT_SGIS" group="HintTarget,GetPName"/>
             <unused start="0x8193" end="0x8193" comment="Incomplete extension SGIX_spotlight_cutoff"/>
             <!-- <enum value="0x8193" name="GL_SPOT_CUTOFF_DELTA_SGIX"/> -->
-        <enum value="0x8194" name="GL_GEOMETRY_DEFORMATION_SGIX"/>
-        <enum value="0x8195" name="GL_TEXTURE_DEFORMATION_SGIX"/>
-        <enum value="0x8196" name="GL_DEFORMATIONS_MASK_SGIX"/>
+        <enum value="0x8194" name="GL_GEOMETRY_DEFORMATION_SGIX" group="MapTarget,FfdTargetSGIX"/>
+        <enum value="0x8195" name="GL_TEXTURE_DEFORMATION_SGIX" group="MapTarget,FfdTargetSGIX"/>
+        <enum value="0x8196" name="GL_DEFORMATIONS_MASK_SGIX" group="GetPName"/>
         <enum value="0x8197" name="GL_MAX_DEFORMATION_ORDER_SGIX"/>
-        <enum value="0x8198" name="GL_FOG_OFFSET_SGIX"/>
-        <enum value="0x8199" name="GL_FOG_OFFSET_VALUE_SGIX"/>
-        <enum value="0x819A" name="GL_TEXTURE_COMPARE_SGIX"/>
-        <enum value="0x819B" name="GL_TEXTURE_COMPARE_OPERATOR_SGIX"/>
-        <enum value="0x819C" name="GL_TEXTURE_LEQUAL_R_SGIX"/>
-        <enum value="0x819D" name="GL_TEXTURE_GEQUAL_R_SGIX"/>
+        <enum value="0x8198" name="GL_FOG_OFFSET_SGIX" group="GetPName,EnableCap"/>
+        <enum value="0x8199" name="GL_FOG_OFFSET_VALUE_SGIX" group="GetPName,FogParameter"/>
+        <enum value="0x819A" name="GL_TEXTURE_COMPARE_SGIX" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x819B" name="GL_TEXTURE_COMPARE_OPERATOR_SGIX" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x819C" name="GL_TEXTURE_LEQUAL_R_SGIX" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x819D" name="GL_TEXTURE_GEQUAL_R_SGIX" group="TextureParameterName,GetTextureParameter"/>
             <unused start="0x819E" end="0x81A4" comment="Private (internal) extension SGIX_igloo_interface"/>
             <!-- <enum value="0x819E" name="GL_IGLOO_FULLSCREEN_SGIX"/> -->
             <!-- <enum value="0x819F" name="GL_IGLOO_VIEWPORT_OFFSET_SGIX"/> -->
@@ -6556,23 +6555,23 @@
             <!-- <enum value="0x81A2" name="GL_IGLOO_IRISGL_MODE_SGIX"/> -->
             <!-- <enum value="0x81A3" name="GL_IGLOO_LMC_COLOR_SGIX"/> -->
             <!-- <enum value="0x81A4" name="GL_IGLOO_TMESHMODE_SGIX"/> -->
-        <enum value="0x81A5" name="GL_DEPTH_COMPONENT16"/>
-        <enum value="0x81A5" name="GL_DEPTH_COMPONENT16_ARB"/>
-        <enum value="0x81A5" name="GL_DEPTH_COMPONENT16_OES"/>
-        <enum value="0x81A5" name="GL_DEPTH_COMPONENT16_SGIX"/>
+        <enum value="0x81A5" name="GL_DEPTH_COMPONENT16" group="InternalFormat"/>
+        <enum value="0x81A5" name="GL_DEPTH_COMPONENT16_ARB" group="InternalFormat"/>
+        <enum value="0x81A5" name="GL_DEPTH_COMPONENT16_OES" group="InternalFormat"/>
+        <enum value="0x81A5" name="GL_DEPTH_COMPONENT16_SGIX" group="InternalFormat"/>
         <enum value="0x81A6" name="GL_DEPTH_COMPONENT24"/>
-        <enum value="0x81A6" name="GL_DEPTH_COMPONENT24_ARB"/>
-        <enum value="0x81A6" name="GL_DEPTH_COMPONENT24_OES"/>
-        <enum value="0x81A6" name="GL_DEPTH_COMPONENT24_SGIX"/>
+        <enum value="0x81A6" name="GL_DEPTH_COMPONENT24_ARB" group="InternalFormat"/>
+        <enum value="0x81A6" name="GL_DEPTH_COMPONENT24_OES" group="InternalFormat"/>
+        <enum value="0x81A6" name="GL_DEPTH_COMPONENT24_SGIX" group="InternalFormat"/>
         <enum value="0x81A7" name="GL_DEPTH_COMPONENT32"/>
-        <enum value="0x81A7" name="GL_DEPTH_COMPONENT32_ARB"/>
-        <enum value="0x81A7" name="GL_DEPTH_COMPONENT32_OES"/>
-        <enum value="0x81A7" name="GL_DEPTH_COMPONENT32_SGIX"/>
+        <enum value="0x81A7" name="GL_DEPTH_COMPONENT32_ARB" group="InternalFormat"/>
+        <enum value="0x81A7" name="GL_DEPTH_COMPONENT32_OES" group="InternalFormat"/>
+        <enum value="0x81A7" name="GL_DEPTH_COMPONENT32_SGIX" group="InternalFormat"/>
         <enum value="0x81A8" name="GL_ARRAY_ELEMENT_LOCK_FIRST_EXT"/>
         <enum value="0x81A9" name="GL_ARRAY_ELEMENT_LOCK_COUNT_EXT"/>
         <enum value="0x81AA" name="GL_CULL_VERTEX_EXT"/>
-        <enum value="0x81AB" name="GL_CULL_VERTEX_EYE_POSITION_EXT"/>
-        <enum value="0x81AC" name="GL_CULL_VERTEX_OBJECT_POSITION_EXT"/>
+        <enum value="0x81AB" name="GL_CULL_VERTEX_EYE_POSITION_EXT" group="CullParameterEXT"/>
+        <enum value="0x81AC" name="GL_CULL_VERTEX_OBJECT_POSITION_EXT" group="CullParameterEXT"/>
         <enum value="0x81AD" name="GL_IUI_V2F_EXT"/>
         <enum value="0x81AE" name="GL_IUI_V3F_EXT"/>
         <enum value="0x81AF" name="GL_IUI_N3F_V2F_EXT"/>
@@ -6587,8 +6586,8 @@
         <enum value="0x81B8" name="GL_INDEX_MATERIAL_EXT"/>
         <enum value="0x81B9" name="GL_INDEX_MATERIAL_PARAMETER_EXT"/>
         <enum value="0x81BA" name="GL_INDEX_MATERIAL_FACE_EXT"/>
-        <enum value="0x81BB" name="GL_YCRCB_422_SGIX"/>
-        <enum value="0x81BC" name="GL_YCRCB_444_SGIX"/>
+        <enum value="0x81BB" name="GL_YCRCB_422_SGIX" group="PixelFormat"/>
+        <enum value="0x81BC" name="GL_YCRCB_444_SGIX" group="PixelFormat"/>
             <unused start="0x81BD" end="0x81C3" comment="Incomplete extension SGI_complex_type"/>
             <!-- <enum value="0x81BD" name="GL_COMPLEX_UNSIGNED_BYTE_SGI"/> -->
             <!-- <enum value="0x81BE" name="GL_COMPLEX_BYTE_SGI"/> -->
@@ -6646,21 +6645,21 @@
             <!-- <enum value="0x81ED" name="GL_NURBS_KNOT_COUNT_SGIX"/> -->
             <!-- <enum value="0x81EE" name="GL_NURBS_KNOT_VECTOR_SGIX"/> -->
         <enum value="0x81EF" name="GL_TEXTURE_COLOR_WRITEMASK_SGIS"/>
-        <enum value="0x81F0" name="GL_EYE_DISTANCE_TO_POINT_SGIS"/>
-        <enum value="0x81F1" name="GL_OBJECT_DISTANCE_TO_POINT_SGIS"/>
-        <enum value="0x81F2" name="GL_EYE_DISTANCE_TO_LINE_SGIS"/>
-        <enum value="0x81F3" name="GL_OBJECT_DISTANCE_TO_LINE_SGIS"/>
-        <enum value="0x81F4" name="GL_EYE_POINT_SGIS"/>
-        <enum value="0x81F5" name="GL_OBJECT_POINT_SGIS"/>
-        <enum value="0x81F6" name="GL_EYE_LINE_SGIS"/>
-        <enum value="0x81F7" name="GL_OBJECT_LINE_SGIS"/>
-        <enum value="0x81F8" name="GL_LIGHT_MODEL_COLOR_CONTROL"/>
-        <enum value="0x81F8" name="GL_LIGHT_MODEL_COLOR_CONTROL_EXT"/>
-        <enum value="0x81F9" name="GL_SINGLE_COLOR"/>
-        <enum value="0x81F9" name="GL_SINGLE_COLOR_EXT"/>
-        <enum value="0x81FA" name="GL_SEPARATE_SPECULAR_COLOR"/>
-        <enum value="0x81FA" name="GL_SEPARATE_SPECULAR_COLOR_EXT"/>
-        <enum value="0x81FB" name="GL_SHARED_TEXTURE_PALETTE_EXT"/>
+        <enum value="0x81F0" name="GL_EYE_DISTANCE_TO_POINT_SGIS" group="TextureGenMode"/>
+        <enum value="0x81F1" name="GL_OBJECT_DISTANCE_TO_POINT_SGIS" group="TextureGenMode"/>
+        <enum value="0x81F2" name="GL_EYE_DISTANCE_TO_LINE_SGIS" group="TextureGenMode"/>
+        <enum value="0x81F3" name="GL_OBJECT_DISTANCE_TO_LINE_SGIS" group="TextureGenMode"/>
+        <enum value="0x81F4" name="GL_EYE_POINT_SGIS" group="TextureGenParameter"/>
+        <enum value="0x81F5" name="GL_OBJECT_POINT_SGIS" group="TextureGenParameter"/>
+        <enum value="0x81F6" name="GL_EYE_LINE_SGIS" group="TextureGenParameter"/>
+        <enum value="0x81F7" name="GL_OBJECT_LINE_SGIS" group="TextureGenParameter"/>
+        <enum value="0x81F8" name="GL_LIGHT_MODEL_COLOR_CONTROL" group="LightModelParameter,GetPName"/>
+        <enum value="0x81F8" name="GL_LIGHT_MODEL_COLOR_CONTROL_EXT" group="LightModelParameter"/>
+        <enum value="0x81F9" name="GL_SINGLE_COLOR" group="LightModelColorControl"/>
+        <enum value="0x81F9" name="GL_SINGLE_COLOR_EXT" group="LightModelColorControl"/>
+        <enum value="0x81FA" name="GL_SEPARATE_SPECULAR_COLOR" group="LightModelColorControl"/>
+        <enum value="0x81FA" name="GL_SEPARATE_SPECULAR_COLOR_EXT" group="LightModelColorControl"/>
+        <enum value="0x81FB" name="GL_SHARED_TEXTURE_PALETTE_EXT" group="GetPName,EnableCap"/>
             <unused start="0x81FC" end="0x81FD" comment="Incomplete extension SGIX_fog_scale"/>
             <!-- <enum value="0x81FC" name="GL_FOG_SCALE_SGIX"/> -->
             <!-- <enum value="0x81FD" name="GL_FOG_SCALE_VALUE_SGIX"/> -->
@@ -6670,138 +6669,138 @@
     </enums>
 
     <enums namespace="GL" start="0x8200" end="0x820F" vendor="AMD" comment="Range released by MS 2002/9/16">
-        <enum value="0x8200" name="GL_TEXT_FRAGMENT_SHADER_ATI"/>
+        <enum value="0x8200" name="GL_TEXT_FRAGMENT_SHADER_ATI" group="ProgramTarget"/>
             <unused start="0x8201" end="0x820F" vendor="AMD"/>
     </enums>
 
     <enums namespace="GL" start="0x8210" end="0x823F" vendor="ARB">
-        <enum value="0x8210" name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING"/>
-        <enum value="0x8210" name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT"/>
-        <enum value="0x8211" name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE"/>
-        <enum value="0x8211" name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT"/>
-        <enum value="0x8212" name="GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE"/>
-        <enum value="0x8213" name="GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE"/>
-        <enum value="0x8214" name="GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE"/>
-        <enum value="0x8215" name="GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE"/>
-        <enum value="0x8216" name="GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE"/>
-        <enum value="0x8217" name="GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE"/>
+        <enum value="0x8210" name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8210" name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8211" name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8211" name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8212" name="GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8213" name="GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8214" name="GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8215" name="GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8216" name="GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8217" name="GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE" group="FramebufferAttachmentParameterName"/>
         <enum value="0x8218" name="GL_FRAMEBUFFER_DEFAULT"/>
-        <enum value="0x8219" name="GL_FRAMEBUFFER_UNDEFINED"/>
+        <enum value="0x8219" name="GL_FRAMEBUFFER_UNDEFINED" group="FramebufferStatus"/>
         <enum value="0x8219" name="GL_FRAMEBUFFER_UNDEFINED_OES"/>
-        <enum value="0x821A" name="GL_DEPTH_STENCIL_ATTACHMENT"/>
-        <enum value="0x821B" name="GL_MAJOR_VERSION"/>
-        <enum value="0x821C" name="GL_MINOR_VERSION"/>
-        <enum value="0x821D" name="GL_NUM_EXTENSIONS"/>
-        <enum value="0x821E" name="GL_CONTEXT_FLAGS"/>
-        <enum value="0x821F" name="GL_BUFFER_IMMUTABLE_STORAGE"/>
+        <enum value="0x821A" name="GL_DEPTH_STENCIL_ATTACHMENT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x821B" name="GL_MAJOR_VERSION" group="GetPName"/>
+        <enum value="0x821C" name="GL_MINOR_VERSION" group="GetPName"/>
+        <enum value="0x821D" name="GL_NUM_EXTENSIONS" group="GetPName"/>
+        <enum value="0x821E" name="GL_CONTEXT_FLAGS" group="GetPName"/>
+        <enum value="0x821F" name="GL_BUFFER_IMMUTABLE_STORAGE" group="VertexBufferObjectParameter,BufferPNameARB"/>
         <enum value="0x821F" name="GL_BUFFER_IMMUTABLE_STORAGE_EXT"/>
-        <enum value="0x8220" name="GL_BUFFER_STORAGE_FLAGS"/>
+        <enum value="0x8220" name="GL_BUFFER_STORAGE_FLAGS" group="VertexBufferObjectParameter,BufferPNameARB"/>
         <enum value="0x8220" name="GL_BUFFER_STORAGE_FLAGS_EXT"/>
         <enum value="0x8221" name="GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED"/>
         <enum value="0x8221" name="GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES"/>
         <enum value="0x8222" name="GL_INDEX"/>
             <unused start="0x8223" vendor="ARB" comment="GL_DEPTH_BUFFER = 0x8223 not actually used in the API"/>
             <unused start="0x8224" vendor="ARB" comment="GL_STENCIL_BUFFER = 0x8224 not actually used in the API"/>
-        <enum value="0x8225" name="GL_COMPRESSED_RED"/>
-        <enum value="0x8226" name="GL_COMPRESSED_RG"/>
-        <enum value="0x8227" name="GL_RG"/>
+        <enum value="0x8225" name="GL_COMPRESSED_RED" group="InternalFormat"/>
+        <enum value="0x8226" name="GL_COMPRESSED_RG" group="InternalFormat"/>
+        <enum value="0x8227" name="GL_RG" group="InternalFormat,PixelFormat"/>
         <enum value="0x8227" name="GL_RG_EXT"/>
-        <enum value="0x8228" name="GL_RG_INTEGER"/>
-        <enum value="0x8229" name="GL_R8"/>
-        <enum value="0x8229" name="GL_R8_EXT"/>
-        <enum value="0x822A" name="GL_R16"/>
-        <enum value="0x822A" name="GL_R16_EXT"/>
-        <enum value="0x822B" name="GL_RG8"/>
-        <enum value="0x822B" name="GL_RG8_EXT"/>
-        <enum value="0x822C" name="GL_RG16"/>
-        <enum value="0x822C" name="GL_RG16_EXT"/>
-        <enum value="0x822D" name="GL_R16F"/>
-        <enum value="0x822D" name="GL_R16F_EXT"/>
-        <enum value="0x822E" name="GL_R32F"/>
-        <enum value="0x822E" name="GL_R32F_EXT"/>
-        <enum value="0x822F" name="GL_RG16F"/>
-        <enum value="0x822F" name="GL_RG16F_EXT"/>
-        <enum value="0x8230" name="GL_RG32F"/>
-        <enum value="0x8230" name="GL_RG32F_EXT"/>
-        <enum value="0x8231" name="GL_R8I"/>
-        <enum value="0x8232" name="GL_R8UI"/>
-        <enum value="0x8233" name="GL_R16I"/>
-        <enum value="0x8234" name="GL_R16UI"/>
-        <enum value="0x8235" name="GL_R32I"/>
-        <enum value="0x8236" name="GL_R32UI"/>
-        <enum value="0x8237" name="GL_RG8I"/>
-        <enum value="0x8238" name="GL_RG8UI"/>
-        <enum value="0x8239" name="GL_RG16I"/>
-        <enum value="0x823A" name="GL_RG16UI"/>
-        <enum value="0x823B" name="GL_RG32I"/>
-        <enum value="0x823C" name="GL_RG32UI"/>
+        <enum value="0x8228" name="GL_RG_INTEGER" group="PixelFormat"/>
+        <enum value="0x8229" name="GL_R8" group="InternalFormat"/>
+        <enum value="0x8229" name="GL_R8_EXT" group="InternalFormat"/>
+        <enum value="0x822A" name="GL_R16" group="InternalFormat"/>
+        <enum value="0x822A" name="GL_R16_EXT" group="InternalFormat"/>
+        <enum value="0x822B" name="GL_RG8" group="InternalFormat"/>
+        <enum value="0x822B" name="GL_RG8_EXT" group="InternalFormat"/>
+        <enum value="0x822C" name="GL_RG16" group="InternalFormat"/>
+        <enum value="0x822C" name="GL_RG16_EXT" group="InternalFormat"/>
+        <enum value="0x822D" name="GL_R16F" group="InternalFormat"/>
+        <enum value="0x822D" name="GL_R16F_EXT" group="InternalFormat"/>
+        <enum value="0x822E" name="GL_R32F" group="InternalFormat"/>
+        <enum value="0x822E" name="GL_R32F_EXT" group="InternalFormat"/>
+        <enum value="0x822F" name="GL_RG16F" group="InternalFormat"/>
+        <enum value="0x822F" name="GL_RG16F_EXT" group="InternalFormat"/>
+        <enum value="0x8230" name="GL_RG32F" group="InternalFormat"/>
+        <enum value="0x8230" name="GL_RG32F_EXT" group="InternalFormat"/>
+        <enum value="0x8231" name="GL_R8I" group="InternalFormat"/>
+        <enum value="0x8232" name="GL_R8UI" group="InternalFormat"/>
+        <enum value="0x8233" name="GL_R16I" group="InternalFormat"/>
+        <enum value="0x8234" name="GL_R16UI" group="InternalFormat"/>
+        <enum value="0x8235" name="GL_R32I" group="InternalFormat"/>
+        <enum value="0x8236" name="GL_R32UI" group="InternalFormat"/>
+        <enum value="0x8237" name="GL_RG8I" group="InternalFormat"/>
+        <enum value="0x8238" name="GL_RG8UI" group="InternalFormat"/>
+        <enum value="0x8239" name="GL_RG16I" group="InternalFormat"/>
+        <enum value="0x823A" name="GL_RG16UI" group="InternalFormat"/>
+        <enum value="0x823B" name="GL_RG32I" group="InternalFormat"/>
+        <enum value="0x823C" name="GL_RG32UI" group="InternalFormat"/>
             <unused start="0x823D" end="0x823F" vendor="ARB"/>
     </enums>
 
     <enums namespace="GL" start="0x8240" end="0x82AF" vendor="ARB" comment="Range released by MS on 2002/9/16">
         <enum value="0x8240" name="GL_SYNC_CL_EVENT_ARB"/>
         <enum value="0x8241" name="GL_SYNC_CL_EVENT_COMPLETE_ARB"/>
-        <enum value="0x8242" name="GL_DEBUG_OUTPUT_SYNCHRONOUS"/>
+        <enum value="0x8242" name="GL_DEBUG_OUTPUT_SYNCHRONOUS" group="EnableCap"/>
         <enum value="0x8242" name="GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB"/>
         <enum value="0x8242" name="GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR"/>
         <enum value="0x8243" name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH"/>
         <enum value="0x8243" name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB"/>
         <enum value="0x8243" name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR"/>
-        <enum value="0x8244" name="GL_DEBUG_CALLBACK_FUNCTION"/>
+        <enum value="0x8244" name="GL_DEBUG_CALLBACK_FUNCTION" group="GetPointervPName"/>
         <enum value="0x8244" name="GL_DEBUG_CALLBACK_FUNCTION_ARB"/>
         <enum value="0x8244" name="GL_DEBUG_CALLBACK_FUNCTION_KHR"/>
-        <enum value="0x8245" name="GL_DEBUG_CALLBACK_USER_PARAM"/>
+        <enum value="0x8245" name="GL_DEBUG_CALLBACK_USER_PARAM" group="GetPointervPName"/>
         <enum value="0x8245" name="GL_DEBUG_CALLBACK_USER_PARAM_ARB"/>
         <enum value="0x8245" name="GL_DEBUG_CALLBACK_USER_PARAM_KHR"/>
-        <enum value="0x8246" name="GL_DEBUG_SOURCE_API"/>
+        <enum value="0x8246" name="GL_DEBUG_SOURCE_API" group="DebugSource"/>
         <enum value="0x8246" name="GL_DEBUG_SOURCE_API_ARB"/>
         <enum value="0x8246" name="GL_DEBUG_SOURCE_API_KHR"/>
-        <enum value="0x8247" name="GL_DEBUG_SOURCE_WINDOW_SYSTEM"/>
+        <enum value="0x8247" name="GL_DEBUG_SOURCE_WINDOW_SYSTEM" group="DebugSource"/>
         <enum value="0x8247" name="GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB"/>
         <enum value="0x8247" name="GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR"/>
-        <enum value="0x8248" name="GL_DEBUG_SOURCE_SHADER_COMPILER"/>
+        <enum value="0x8248" name="GL_DEBUG_SOURCE_SHADER_COMPILER" group="DebugSource"/>
         <enum value="0x8248" name="GL_DEBUG_SOURCE_SHADER_COMPILER_ARB"/>
         <enum value="0x8248" name="GL_DEBUG_SOURCE_SHADER_COMPILER_KHR"/>
-        <enum value="0x8249" name="GL_DEBUG_SOURCE_THIRD_PARTY"/>
+        <enum value="0x8249" name="GL_DEBUG_SOURCE_THIRD_PARTY" group="DebugSource"/>
         <enum value="0x8249" name="GL_DEBUG_SOURCE_THIRD_PARTY_ARB"/>
         <enum value="0x8249" name="GL_DEBUG_SOURCE_THIRD_PARTY_KHR"/>
-        <enum value="0x824A" name="GL_DEBUG_SOURCE_APPLICATION"/>
+        <enum value="0x824A" name="GL_DEBUG_SOURCE_APPLICATION" group="DebugSource"/>
         <enum value="0x824A" name="GL_DEBUG_SOURCE_APPLICATION_ARB"/>
         <enum value="0x824A" name="GL_DEBUG_SOURCE_APPLICATION_KHR"/>
-        <enum value="0x824B" name="GL_DEBUG_SOURCE_OTHER"/>
+        <enum value="0x824B" name="GL_DEBUG_SOURCE_OTHER" group="DebugSource"/>
         <enum value="0x824B" name="GL_DEBUG_SOURCE_OTHER_ARB"/>
         <enum value="0x824B" name="GL_DEBUG_SOURCE_OTHER_KHR"/>
-        <enum value="0x824C" name="GL_DEBUG_TYPE_ERROR"/>
+        <enum value="0x824C" name="GL_DEBUG_TYPE_ERROR" group="DebugType"/>
         <enum value="0x824C" name="GL_DEBUG_TYPE_ERROR_ARB"/>
         <enum value="0x824C" name="GL_DEBUG_TYPE_ERROR_KHR"/>
-        <enum value="0x824D" name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR"/>
+        <enum value="0x824D" name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR" group="DebugType"/>
         <enum value="0x824D" name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB"/>
         <enum value="0x824D" name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR"/>
-        <enum value="0x824E" name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR"/>
+        <enum value="0x824E" name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR" group="DebugType"/>
         <enum value="0x824E" name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB"/>
         <enum value="0x824E" name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR"/>
-        <enum value="0x824F" name="GL_DEBUG_TYPE_PORTABILITY"/>
+        <enum value="0x824F" name="GL_DEBUG_TYPE_PORTABILITY" group="DebugType"/>
         <enum value="0x824F" name="GL_DEBUG_TYPE_PORTABILITY_ARB"/>
         <enum value="0x824F" name="GL_DEBUG_TYPE_PORTABILITY_KHR"/>
-        <enum value="0x8250" name="GL_DEBUG_TYPE_PERFORMANCE"/>
+        <enum value="0x8250" name="GL_DEBUG_TYPE_PERFORMANCE" group="DebugType"/>
         <enum value="0x8250" name="GL_DEBUG_TYPE_PERFORMANCE_ARB"/>
         <enum value="0x8250" name="GL_DEBUG_TYPE_PERFORMANCE_KHR"/>
-        <enum value="0x8251" name="GL_DEBUG_TYPE_OTHER"/>
+        <enum value="0x8251" name="GL_DEBUG_TYPE_OTHER" group="DebugType"/>
         <enum value="0x8251" name="GL_DEBUG_TYPE_OTHER_ARB"/>
         <enum value="0x8251" name="GL_DEBUG_TYPE_OTHER_KHR"/>
         <enum value="0x8252" name="GL_LOSE_CONTEXT_ON_RESET"/>
         <enum value="0x8252" name="GL_LOSE_CONTEXT_ON_RESET_ARB"/>
         <enum value="0x8252" name="GL_LOSE_CONTEXT_ON_RESET_EXT"/>
         <enum value="0x8252" name="GL_LOSE_CONTEXT_ON_RESET_KHR"/>
-        <enum value="0x8253" name="GL_GUILTY_CONTEXT_RESET"/>
+        <enum value="0x8253" name="GL_GUILTY_CONTEXT_RESET" group="GraphicsResetStatus"/>
         <enum value="0x8253" name="GL_GUILTY_CONTEXT_RESET_ARB"/>
         <enum value="0x8253" name="GL_GUILTY_CONTEXT_RESET_EXT"/>
         <enum value="0x8253" name="GL_GUILTY_CONTEXT_RESET_KHR"/>
-        <enum value="0x8254" name="GL_INNOCENT_CONTEXT_RESET"/>
+        <enum value="0x8254" name="GL_INNOCENT_CONTEXT_RESET" group="GraphicsResetStatus"/>
         <enum value="0x8254" name="GL_INNOCENT_CONTEXT_RESET_ARB"/>
         <enum value="0x8254" name="GL_INNOCENT_CONTEXT_RESET_EXT"/>
         <enum value="0x8254" name="GL_INNOCENT_CONTEXT_RESET_KHR"/>
-        <enum value="0x8255" name="GL_UNKNOWN_CONTEXT_RESET"/>
+        <enum value="0x8255" name="GL_UNKNOWN_CONTEXT_RESET" group="GraphicsResetStatus"/>
         <enum value="0x8255" name="GL_UNKNOWN_CONTEXT_RESET_ARB"/>
         <enum value="0x8255" name="GL_UNKNOWN_CONTEXT_RESET_EXT"/>
         <enum value="0x8255" name="GL_UNKNOWN_CONTEXT_RESET_KHR"/>
@@ -6809,28 +6808,28 @@
         <enum value="0x8256" name="GL_RESET_NOTIFICATION_STRATEGY_ARB"/>
         <enum value="0x8256" name="GL_RESET_NOTIFICATION_STRATEGY_EXT"/>
         <enum value="0x8256" name="GL_RESET_NOTIFICATION_STRATEGY_KHR"/>
-        <enum value="0x8257" name="GL_PROGRAM_BINARY_RETRIEVABLE_HINT"/>
-        <enum value="0x8258" name="GL_PROGRAM_SEPARABLE"/>
+        <enum value="0x8257" name="GL_PROGRAM_BINARY_RETRIEVABLE_HINT" group="ProgramParameterPName,HintTarget"/>
+        <enum value="0x8258" name="GL_PROGRAM_SEPARABLE" group="ProgramParameterPName"/>
         <enum value="0x8258" name="GL_PROGRAM_SEPARABLE_EXT"/>
-        <enum value="0x8259" name="GL_ACTIVE_PROGRAM"/>
+        <enum value="0x8259" name="GL_ACTIVE_PROGRAM" group="PipelineParameterName"/>
         <enum value="0x8259" api="gles2" name="GL_ACTIVE_PROGRAM_EXT" comment="For the OpenGL ES version of EXT_separate_shader_objects"/>
-        <enum value="0x825A" name="GL_PROGRAM_PIPELINE_BINDING"/>
+        <enum value="0x825A" name="GL_PROGRAM_PIPELINE_BINDING" group="GetPName"/>
         <enum value="0x825A" name="GL_PROGRAM_PIPELINE_BINDING_EXT"/>
-        <enum value="0x825B" name="GL_MAX_VIEWPORTS"/>
+        <enum value="0x825B" name="GL_MAX_VIEWPORTS" group="GetPName"/>
         <enum value="0x825B" name="GL_MAX_VIEWPORTS_NV"/>
         <enum value="0x825B" name="GL_MAX_VIEWPORTS_OES"/>
-        <enum value="0x825C" name="GL_VIEWPORT_SUBPIXEL_BITS"/>
+        <enum value="0x825C" name="GL_VIEWPORT_SUBPIXEL_BITS" group="GetPName"/>
         <enum value="0x825C" name="GL_VIEWPORT_SUBPIXEL_BITS_EXT"/>
         <enum value="0x825C" name="GL_VIEWPORT_SUBPIXEL_BITS_NV"/>
         <enum value="0x825C" name="GL_VIEWPORT_SUBPIXEL_BITS_OES"/>
-        <enum value="0x825D" name="GL_VIEWPORT_BOUNDS_RANGE"/>
+        <enum value="0x825D" name="GL_VIEWPORT_BOUNDS_RANGE" group="GetPName"/>
         <enum value="0x825D" name="GL_VIEWPORT_BOUNDS_RANGE_EXT"/>
         <enum value="0x825D" name="GL_VIEWPORT_BOUNDS_RANGE_NV"/>
         <enum value="0x825D" name="GL_VIEWPORT_BOUNDS_RANGE_OES"/>
-        <enum value="0x825E" name="GL_LAYER_PROVOKING_VERTEX"/>
+        <enum value="0x825E" name="GL_LAYER_PROVOKING_VERTEX" group="GetPName"/>
         <enum value="0x825E" name="GL_LAYER_PROVOKING_VERTEX_EXT"/>
         <enum value="0x825E" name="GL_LAYER_PROVOKING_VERTEX_OES"/>
-        <enum value="0x825F" name="GL_VIEWPORT_INDEX_PROVOKING_VERTEX"/>
+        <enum value="0x825F" name="GL_VIEWPORT_INDEX_PROVOKING_VERTEX" group="GetPName"/>
         <enum value="0x825F" name="GL_VIEWPORT_INDEX_PROVOKING_VERTEX_EXT"/>
         <enum value="0x825F" name="GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV"/>
         <enum value="0x825F" name="GL_VIEWPORT_INDEX_PROVOKING_VERTEX_OES"/>
@@ -6842,99 +6841,99 @@
         <enum value="0x8261" name="GL_NO_RESET_NOTIFICATION_EXT"/>
         <enum value="0x8261" name="GL_NO_RESET_NOTIFICATION_KHR"/>
         <enum value="0x8262" name="GL_MAX_COMPUTE_SHARED_MEMORY_SIZE"/>
-        <enum value="0x8263" name="GL_MAX_COMPUTE_UNIFORM_COMPONENTS"/>
-        <enum value="0x8264" name="GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS"/>
-        <enum value="0x8265" name="GL_MAX_COMPUTE_ATOMIC_COUNTERS"/>
-        <enum value="0x8266" name="GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS"/>
-        <enum value="0x8267" name="GL_COMPUTE_WORK_GROUP_SIZE"/>
-        <enum value="0x8268" name="GL_DEBUG_TYPE_MARKER"/>
+        <enum value="0x8263" name="GL_MAX_COMPUTE_UNIFORM_COMPONENTS" group="GetPName"/>
+        <enum value="0x8264" name="GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS" group="GetPName"/>
+        <enum value="0x8265" name="GL_MAX_COMPUTE_ATOMIC_COUNTERS" group="GetPName"/>
+        <enum value="0x8266" name="GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS" group="GetPName"/>
+        <enum value="0x8267" name="GL_COMPUTE_WORK_GROUP_SIZE" group="ProgramPropertyARB"/>
+        <enum value="0x8268" name="GL_DEBUG_TYPE_MARKER" group="DebugType"/>
         <enum value="0x8268" name="GL_DEBUG_TYPE_MARKER_KHR"/>
-        <enum value="0x8269" name="GL_DEBUG_TYPE_PUSH_GROUP"/>
+        <enum value="0x8269" name="GL_DEBUG_TYPE_PUSH_GROUP" group="DebugType"/>
         <enum value="0x8269" name="GL_DEBUG_TYPE_PUSH_GROUP_KHR"/>
-        <enum value="0x826A" name="GL_DEBUG_TYPE_POP_GROUP"/>
+        <enum value="0x826A" name="GL_DEBUG_TYPE_POP_GROUP" group="DebugType"/>
         <enum value="0x826A" name="GL_DEBUG_TYPE_POP_GROUP_KHR"/>
-        <enum value="0x826B" name="GL_DEBUG_SEVERITY_NOTIFICATION"/>
+        <enum value="0x826B" name="GL_DEBUG_SEVERITY_NOTIFICATION" group="DebugSeverity"/>
         <enum value="0x826B" name="GL_DEBUG_SEVERITY_NOTIFICATION_KHR"/>
-        <enum value="0x826C" name="GL_MAX_DEBUG_GROUP_STACK_DEPTH"/>
+        <enum value="0x826C" name="GL_MAX_DEBUG_GROUP_STACK_DEPTH" group="GetPName"/>
         <enum value="0x826C" name="GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR"/>
-        <enum value="0x826D" name="GL_DEBUG_GROUP_STACK_DEPTH"/>
+        <enum value="0x826D" name="GL_DEBUG_GROUP_STACK_DEPTH" group="GetPName"/>
         <enum value="0x826D" name="GL_DEBUG_GROUP_STACK_DEPTH_KHR"/>
-        <enum value="0x826E" name="GL_MAX_UNIFORM_LOCATIONS"/>
-        <enum value="0x826F" name="GL_INTERNALFORMAT_SUPPORTED"/>
-        <enum value="0x8270" name="GL_INTERNALFORMAT_PREFERRED"/>
-        <enum value="0x8271" name="GL_INTERNALFORMAT_RED_SIZE"/>
-        <enum value="0x8272" name="GL_INTERNALFORMAT_GREEN_SIZE"/>
-        <enum value="0x8273" name="GL_INTERNALFORMAT_BLUE_SIZE"/>
-        <enum value="0x8274" name="GL_INTERNALFORMAT_ALPHA_SIZE"/>
-        <enum value="0x8275" name="GL_INTERNALFORMAT_DEPTH_SIZE"/>
-        <enum value="0x8276" name="GL_INTERNALFORMAT_STENCIL_SIZE"/>
-        <enum value="0x8277" name="GL_INTERNALFORMAT_SHARED_SIZE"/>
-        <enum value="0x8278" name="GL_INTERNALFORMAT_RED_TYPE"/>
-        <enum value="0x8279" name="GL_INTERNALFORMAT_GREEN_TYPE"/>
-        <enum value="0x827A" name="GL_INTERNALFORMAT_BLUE_TYPE"/>
-        <enum value="0x827B" name="GL_INTERNALFORMAT_ALPHA_TYPE"/>
-        <enum value="0x827C" name="GL_INTERNALFORMAT_DEPTH_TYPE"/>
-        <enum value="0x827D" name="GL_INTERNALFORMAT_STENCIL_TYPE"/>
-        <enum value="0x827E" name="GL_MAX_WIDTH"/>
-        <enum value="0x827F" name="GL_MAX_HEIGHT"/>
-        <enum value="0x8280" name="GL_MAX_DEPTH"/>
-        <enum value="0x8281" name="GL_MAX_LAYERS"/>
+        <enum value="0x826E" name="GL_MAX_UNIFORM_LOCATIONS" group="GetPName"/>
+        <enum value="0x826F" name="GL_INTERNALFORMAT_SUPPORTED" group="InternalFormatPName"/>
+        <enum value="0x8270" name="GL_INTERNALFORMAT_PREFERRED" group="InternalFormatPName"/>
+        <enum value="0x8271" name="GL_INTERNALFORMAT_RED_SIZE" group="InternalFormatPName"/>
+        <enum value="0x8272" name="GL_INTERNALFORMAT_GREEN_SIZE" group="InternalFormatPName"/>
+        <enum value="0x8273" name="GL_INTERNALFORMAT_BLUE_SIZE" group="InternalFormatPName"/>
+        <enum value="0x8274" name="GL_INTERNALFORMAT_ALPHA_SIZE" group="InternalFormatPName"/>
+        <enum value="0x8275" name="GL_INTERNALFORMAT_DEPTH_SIZE" group="InternalFormatPName"/>
+        <enum value="0x8276" name="GL_INTERNALFORMAT_STENCIL_SIZE" group="InternalFormatPName"/>
+        <enum value="0x8277" name="GL_INTERNALFORMAT_SHARED_SIZE" group="InternalFormatPName"/>
+        <enum value="0x8278" name="GL_INTERNALFORMAT_RED_TYPE" group="InternalFormatPName"/>
+        <enum value="0x8279" name="GL_INTERNALFORMAT_GREEN_TYPE" group="InternalFormatPName"/>
+        <enum value="0x827A" name="GL_INTERNALFORMAT_BLUE_TYPE" group="InternalFormatPName"/>
+        <enum value="0x827B" name="GL_INTERNALFORMAT_ALPHA_TYPE" group="InternalFormatPName"/>
+        <enum value="0x827C" name="GL_INTERNALFORMAT_DEPTH_TYPE" group="InternalFormatPName"/>
+        <enum value="0x827D" name="GL_INTERNALFORMAT_STENCIL_TYPE" group="InternalFormatPName"/>
+        <enum value="0x827E" name="GL_MAX_WIDTH" group="InternalFormatPName"/>
+        <enum value="0x827F" name="GL_MAX_HEIGHT" group="InternalFormatPName"/>
+        <enum value="0x8280" name="GL_MAX_DEPTH" group="InternalFormatPName"/>
+        <enum value="0x8281" name="GL_MAX_LAYERS" group="InternalFormatPName"/>
         <enum value="0x8282" name="GL_MAX_COMBINED_DIMENSIONS"/>
-        <enum value="0x8283" name="GL_COLOR_COMPONENTS"/>
+        <enum value="0x8283" name="GL_COLOR_COMPONENTS" group="InternalFormatPName"/>
         <enum value="0x8284" name="GL_DEPTH_COMPONENTS"/>
         <enum value="0x8285" name="GL_STENCIL_COMPONENTS"/>
-        <enum value="0x8286" name="GL_COLOR_RENDERABLE"/>
-        <enum value="0x8287" name="GL_DEPTH_RENDERABLE"/>
-        <enum value="0x8288" name="GL_STENCIL_RENDERABLE"/>
-        <enum value="0x8289" name="GL_FRAMEBUFFER_RENDERABLE"/>
-        <enum value="0x828A" name="GL_FRAMEBUFFER_RENDERABLE_LAYERED"/>
-        <enum value="0x828B" name="GL_FRAMEBUFFER_BLEND"/>
-        <enum value="0x828C" name="GL_READ_PIXELS"/>
-        <enum value="0x828D" name="GL_READ_PIXELS_FORMAT"/>
-        <enum value="0x828E" name="GL_READ_PIXELS_TYPE"/>
-        <enum value="0x828F" name="GL_TEXTURE_IMAGE_FORMAT"/>
-        <enum value="0x8290" name="GL_TEXTURE_IMAGE_TYPE"/>
-        <enum value="0x8291" name="GL_GET_TEXTURE_IMAGE_FORMAT"/>
-        <enum value="0x8292" name="GL_GET_TEXTURE_IMAGE_TYPE"/>
-        <enum value="0x8293" name="GL_MIPMAP"/>
+        <enum value="0x8286" name="GL_COLOR_RENDERABLE" group="InternalFormatPName"/>
+        <enum value="0x8287" name="GL_DEPTH_RENDERABLE" group="InternalFormatPName"/>
+        <enum value="0x8288" name="GL_STENCIL_RENDERABLE" group="InternalFormatPName"/>
+        <enum value="0x8289" name="GL_FRAMEBUFFER_RENDERABLE" group="InternalFormatPName"/>
+        <enum value="0x828A" name="GL_FRAMEBUFFER_RENDERABLE_LAYERED" group="InternalFormatPName"/>
+        <enum value="0x828B" name="GL_FRAMEBUFFER_BLEND" group="InternalFormatPName"/>
+        <enum value="0x828C" name="GL_READ_PIXELS" group="InternalFormatPName"/>
+        <enum value="0x828D" name="GL_READ_PIXELS_FORMAT" group="InternalFormatPName"/>
+        <enum value="0x828E" name="GL_READ_PIXELS_TYPE" group="InternalFormatPName"/>
+        <enum value="0x828F" name="GL_TEXTURE_IMAGE_FORMAT" group="InternalFormatPName"/>
+        <enum value="0x8290" name="GL_TEXTURE_IMAGE_TYPE" group="InternalFormatPName"/>
+        <enum value="0x8291" name="GL_GET_TEXTURE_IMAGE_FORMAT" group="InternalFormatPName"/>
+        <enum value="0x8292" name="GL_GET_TEXTURE_IMAGE_TYPE" group="InternalFormatPName"/>
+        <enum value="0x8293" name="GL_MIPMAP" group="InternalFormatPName"/>
         <enum value="0x8294" name="GL_MANUAL_GENERATE_MIPMAP"/>
-        <enum value="0x8295" name="GL_AUTO_GENERATE_MIPMAP" comment="Should be deprecated"/>
-        <enum value="0x8296" name="GL_COLOR_ENCODING"/>
-        <enum value="0x8297" name="GL_SRGB_READ"/>
-        <enum value="0x8298" name="GL_SRGB_WRITE"/>
+        <enum value="0x8295" name="GL_AUTO_GENERATE_MIPMAP" comment="Should be deprecated" group="InternalFormatPName"/>
+        <enum value="0x8296" name="GL_COLOR_ENCODING" group="InternalFormatPName"/>
+        <enum value="0x8297" name="GL_SRGB_READ" group="InternalFormatPName"/>
+        <enum value="0x8298" name="GL_SRGB_WRITE" group="InternalFormatPName"/>
         <enum value="0x8299" name="GL_SRGB_DECODE_ARB"/>
-        <enum value="0x829A" name="GL_FILTER"/>
-        <enum value="0x829B" name="GL_VERTEX_TEXTURE"/>
-        <enum value="0x829C" name="GL_TESS_CONTROL_TEXTURE"/>
-        <enum value="0x829D" name="GL_TESS_EVALUATION_TEXTURE"/>
-        <enum value="0x829E" name="GL_GEOMETRY_TEXTURE"/>
-        <enum value="0x829F" name="GL_FRAGMENT_TEXTURE"/>
-        <enum value="0x82A0" name="GL_COMPUTE_TEXTURE"/>
-        <enum value="0x82A1" name="GL_TEXTURE_SHADOW"/>
-        <enum value="0x82A2" name="GL_TEXTURE_GATHER"/>
-        <enum value="0x82A3" name="GL_TEXTURE_GATHER_SHADOW"/>
-        <enum value="0x82A4" name="GL_SHADER_IMAGE_LOAD"/>
-        <enum value="0x82A5" name="GL_SHADER_IMAGE_STORE"/>
-        <enum value="0x82A6" name="GL_SHADER_IMAGE_ATOMIC"/>
-        <enum value="0x82A7" name="GL_IMAGE_TEXEL_SIZE"/>
-        <enum value="0x82A8" name="GL_IMAGE_COMPATIBILITY_CLASS"/>
-        <enum value="0x82A9" name="GL_IMAGE_PIXEL_FORMAT"/>
-        <enum value="0x82AA" name="GL_IMAGE_PIXEL_TYPE"/>
+        <enum value="0x829A" name="GL_FILTER" group="InternalFormatPName"/>
+        <enum value="0x829B" name="GL_VERTEX_TEXTURE" group="InternalFormatPName"/>
+        <enum value="0x829C" name="GL_TESS_CONTROL_TEXTURE" group="InternalFormatPName"/>
+        <enum value="0x829D" name="GL_TESS_EVALUATION_TEXTURE" group="InternalFormatPName"/>
+        <enum value="0x829E" name="GL_GEOMETRY_TEXTURE" group="InternalFormatPName"/>
+        <enum value="0x829F" name="GL_FRAGMENT_TEXTURE" group="InternalFormatPName"/>
+        <enum value="0x82A0" name="GL_COMPUTE_TEXTURE" group="InternalFormatPName"/>
+        <enum value="0x82A1" name="GL_TEXTURE_SHADOW" group="InternalFormatPName"/>
+        <enum value="0x82A2" name="GL_TEXTURE_GATHER" group="InternalFormatPName"/>
+        <enum value="0x82A3" name="GL_TEXTURE_GATHER_SHADOW" group="InternalFormatPName"/>
+        <enum value="0x82A4" name="GL_SHADER_IMAGE_LOAD" group="InternalFormatPName"/>
+        <enum value="0x82A5" name="GL_SHADER_IMAGE_STORE" group="InternalFormatPName"/>
+        <enum value="0x82A6" name="GL_SHADER_IMAGE_ATOMIC" group="InternalFormatPName"/>
+        <enum value="0x82A7" name="GL_IMAGE_TEXEL_SIZE" group="InternalFormatPName"/>
+        <enum value="0x82A8" name="GL_IMAGE_COMPATIBILITY_CLASS" group="InternalFormatPName"/>
+        <enum value="0x82A9" name="GL_IMAGE_PIXEL_FORMAT" group="InternalFormatPName"/>
+        <enum value="0x82AA" name="GL_IMAGE_PIXEL_TYPE" group="InternalFormatPName"/>
             <unused start="0x82AB" vendor="ARB"/>
-        <enum value="0x82AC" name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST"/>
-        <enum value="0x82AD" name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST"/>
-        <enum value="0x82AE" name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE"/>
-        <enum value="0x82AF" name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE"/>
+        <enum value="0x82AC" name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST" group="InternalFormatPName"/>
+        <enum value="0x82AD" name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST" group="InternalFormatPName"/>
+        <enum value="0x82AE" name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE" group="InternalFormatPName"/>
+        <enum value="0x82AF" name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE" group="InternalFormatPName"/>
     </enums>
 
     <enums namespace="GL" start="0x82B0" end="0x830F" vendor="ARB" comment="Range reclaimed from ADD on 2012/05/10">
             <unused start="0x82B0" vendor="ARB"/>
-        <enum value="0x82B1" name="GL_TEXTURE_COMPRESSED_BLOCK_WIDTH"/>
-        <enum value="0x82B2" name="GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT"/>
-        <enum value="0x82B3" name="GL_TEXTURE_COMPRESSED_BLOCK_SIZE"/>
-        <enum value="0x82B4" name="GL_CLEAR_BUFFER"/>
-        <enum value="0x82B5" name="GL_TEXTURE_VIEW"/>
-        <enum value="0x82B6" name="GL_VIEW_COMPATIBILITY_CLASS"/>
+        <enum value="0x82B1" name="GL_TEXTURE_COMPRESSED_BLOCK_WIDTH" group="InternalFormatPName"/>
+        <enum value="0x82B2" name="GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT" group="InternalFormatPName"/>
+        <enum value="0x82B3" name="GL_TEXTURE_COMPRESSED_BLOCK_SIZE" group="InternalFormatPName"/>
+        <enum value="0x82B4" name="GL_CLEAR_BUFFER" group="InternalFormatPName"/>
+        <enum value="0x82B5" name="GL_TEXTURE_VIEW" group="InternalFormatPName"/>
+        <enum value="0x82B6" name="GL_VIEW_COMPATIBILITY_CLASS" group="InternalFormatPName"/>
         <enum value="0x82B7" name="GL_FULL_SUPPORT"/>
         <enum value="0x82B8" name="GL_CAVEAT_SUPPORT"/>
         <enum value="0x82B9" name="GL_IMAGE_CLASS_4_X_32"/>
@@ -6964,13 +6963,13 @@
         <enum value="0x82D1" name="GL_VIEW_CLASS_RGTC2_RG"/>
         <enum value="0x82D2" name="GL_VIEW_CLASS_BPTC_UNORM"/>
         <enum value="0x82D3" name="GL_VIEW_CLASS_BPTC_FLOAT"/>
-        <enum value="0x82D4" name="GL_VERTEX_ATTRIB_BINDING"/>
-        <enum value="0x82D5" name="GL_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
-        <enum value="0x82D6" name="GL_VERTEX_BINDING_DIVISOR"/>
-        <enum value="0x82D7" name="GL_VERTEX_BINDING_OFFSET"/>
-        <enum value="0x82D8" name="GL_VERTEX_BINDING_STRIDE"/>
-        <enum value="0x82D9" name="GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
-        <enum value="0x82DA" name="GL_MAX_VERTEX_ATTRIB_BINDINGS"/>
+        <enum value="0x82D4" name="GL_VERTEX_ATTRIB_BINDING" group="VertexAttribPropertyARB"/>
+        <enum value="0x82D5" name="GL_VERTEX_ATTRIB_RELATIVE_OFFSET" group="VertexArrayPName,VertexAttribPropertyARB"/>
+        <enum value="0x82D6" name="GL_VERTEX_BINDING_DIVISOR" group="GetPName"/>
+        <enum value="0x82D7" name="GL_VERTEX_BINDING_OFFSET" group="GetPName"/>
+        <enum value="0x82D8" name="GL_VERTEX_BINDING_STRIDE" group="GetPName"/>
+        <enum value="0x82D9" name="GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET" group="GetPName"/>
+        <enum value="0x82DA" name="GL_MAX_VERTEX_ATTRIB_BINDINGS" group="GetPName"/>
         <enum value="0x82DB" name="GL_TEXTURE_VIEW_MIN_LEVEL"/>
         <enum value="0x82DB" name="GL_TEXTURE_VIEW_MIN_LEVEL_EXT"/>
         <enum value="0x82DB" name="GL_TEXTURE_VIEW_MIN_LEVEL_OES"/>
@@ -6984,37 +6983,37 @@
         <enum value="0x82DE" name="GL_TEXTURE_VIEW_NUM_LAYERS_EXT"/>
         <enum value="0x82DE" name="GL_TEXTURE_VIEW_NUM_LAYERS_OES"/>
         <enum value="0x82DF" name="GL_TEXTURE_IMMUTABLE_LEVELS"/>
-        <enum value="0x82E0" name="GL_BUFFER"/>
+        <enum value="0x82E0" name="GL_BUFFER" group="ObjectIdentifier"/>
         <enum value="0x82E0" name="GL_BUFFER_KHR"/>
-        <enum value="0x82E1" name="GL_SHADER"/>
+        <enum value="0x82E1" name="GL_SHADER" group="ObjectIdentifier"/>
         <enum value="0x82E1" name="GL_SHADER_KHR"/>
-        <enum value="0x82E2" name="GL_PROGRAM"/>
+        <enum value="0x82E2" name="GL_PROGRAM" group="ObjectIdentifier"/>
         <enum value="0x82E2" name="GL_PROGRAM_KHR"/>
-        <enum value="0x82E3" name="GL_QUERY"/>
+        <enum value="0x82E3" name="GL_QUERY" group="ObjectIdentifier"/>
         <enum value="0x82E3" name="GL_QUERY_KHR"/>
-        <enum value="0x82E4" name="GL_PROGRAM_PIPELINE"/>
+        <enum value="0x82E4" name="GL_PROGRAM_PIPELINE" group="ObjectIdentifier"/>
         <enum value="0x82E4" name="GL_PROGRAM_PIPELINE_KHR"/>
         <enum value="0x82E5" name="GL_MAX_VERTEX_ATTRIB_STRIDE"/>
-        <enum value="0x82E6" name="GL_SAMPLER"/>
+        <enum value="0x82E6" name="GL_SAMPLER" group="ObjectIdentifier"/>
         <enum value="0x82E6" name="GL_SAMPLER_KHR"/>
         <enum value="0x82E7" name="GL_DISPLAY_LIST"/>
-        <enum value="0x82E8" name="GL_MAX_LABEL_LENGTH"/>
+        <enum value="0x82E8" name="GL_MAX_LABEL_LENGTH" group="GetPName"/>
         <enum value="0x82E8" name="GL_MAX_LABEL_LENGTH_KHR"/>
         <enum value="0x82E9" name="GL_NUM_SHADING_LANGUAGE_VERSIONS"/>
-        <enum value="0x82EA" name="GL_QUERY_TARGET"/>
+        <enum value="0x82EA" name="GL_QUERY_TARGET" group="QueryObjectParameterName"/>
         <!-- 0x82EB = GL_TEXTURE_BINDING was removed in GL 4.5 and
              ARB_direct_state_access in February 2015 after determining it
              was not well defined or implementable. -->
             <unused start="0x82EB" vendor="ARB" comment="Reserved. Formerly used for GL_TEXTURE_BINDING."/>
-        <enum value="0x82EC" name="GL_TRANSFORM_FEEDBACK_OVERFLOW"/>
+        <enum value="0x82EC" name="GL_TRANSFORM_FEEDBACK_OVERFLOW" group="QueryTarget"/>
         <enum value="0x82EC" name="GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB" alias="GL_TRANSFORM_FEEDBACK_OVERFLOW"/>
         <enum value="0x82ED" name="GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW"/>
         <enum value="0x82ED" name="GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB" alias="GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW"/>
-        <enum value="0x82EE" name="GL_VERTICES_SUBMITTED"/>
+        <enum value="0x82EE" name="GL_VERTICES_SUBMITTED" group="QueryTarget"/>
         <enum value="0x82EE" name="GL_VERTICES_SUBMITTED_ARB" alias="GL_VERTICES_SUBMITTED"/>
-        <enum value="0x82EF" name="GL_PRIMITIVES_SUBMITTED"/>
+        <enum value="0x82EF" name="GL_PRIMITIVES_SUBMITTED" group="QueryTarget"/>
         <enum value="0x82EF" name="GL_PRIMITIVES_SUBMITTED_ARB" alias="GL_PRIMITIVES_SUBMITTED"/>
-        <enum value="0x82F0" name="GL_VERTEX_SHADER_INVOCATIONS"/>
+        <enum value="0x82F0" name="GL_VERTEX_SHADER_INVOCATIONS" group="QueryTarget"/>
         <enum value="0x82F0" name="GL_VERTEX_SHADER_INVOCATIONS_ARB" alias="GL_VERTEX_SHADER_INVOCATIONS"/>
         <enum value="0x82F1" name="GL_TESS_CONTROL_SHADER_PATCHES"/>
         <enum value="0x82F1" name="GL_TESS_CONTROL_SHADER_PATCHES_ARB" alias="GL_TESS_CONTROL_SHADER_PATCHES"/>
@@ -7050,7 +7049,7 @@
         <enum value="0x8313" name="GL_FRAGMENTS_INSTRUMENT_SGIX"/>
         <enum value="0x8314" name="GL_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX"/>
         <enum value="0x8315" name="GL_FRAGMENTS_INSTRUMENT_MAX_SGIX"/>
-        <enum value="0x8316" name="GL_CONVOLUTION_HINT_SGIX"/>
+        <enum value="0x8316" name="GL_CONVOLUTION_HINT_SGIX" group="HintTarget,GetPName"/>
             <unused start="0x8317" comment="Incomplete extension SGIX_color_matrix_accuracy"/>
             <!-- <enum value="0x8317" name="GL_COLOR_MATRIX_HINT"/> -->
         <enum value="0x8318" name="GL_YCRCB_SGIX"/>
@@ -7061,9 +7060,9 @@
         <enum value="0x831D" name="GL_SLIM8U_SGIX"/>
         <enum value="0x831E" name="GL_SLIM10U_SGIX"/>
         <enum value="0x831F" name="GL_SLIM12S_SGIX"/>
-        <enum value="0x8320" name="GL_ALPHA_MIN_SGIX"/>
-        <enum value="0x8321" name="GL_ALPHA_MAX_SGIX"/>
-        <enum value="0x8322" name="GL_SCALEBIAS_HINT_SGIX"/>
+        <enum value="0x8320" name="GL_ALPHA_MIN_SGIX" group="BlendEquationModeEXT"/>
+        <enum value="0x8321" name="GL_ALPHA_MAX_SGIX" group="BlendEquationModeEXT"/>
+        <enum value="0x8322" name="GL_SCALEBIAS_HINT_SGIX" group="HintTarget"/>
             <unused start="0x8323" end="0x8328" comment="Incomplete extension SGIX_fog_layers"/>
             <!-- <enum value="0x8323" name="GL_FOG_TYPE_SGIX"/> -->
             <!-- <enum value="0x8324" name="GL_UNIFORM_SGIX"/> -->
@@ -7071,22 +7070,22 @@
             <!-- <enum value="0x8326" name="GL_FOG_GROUND_PLANE_SGIX"/> -->
             <!-- <enum value="0x8327" name="GL_FOG_LAYERS_POINTS_SGIX"/> -->
             <!-- <enum value="0x8328" name="GL_MAX_FOG_LAYERS_POINTS_SGIX"/> -->
-        <enum value="0x8329" name="GL_ASYNC_MARKER_SGIX"/>
+        <enum value="0x8329" name="GL_ASYNC_MARKER_SGIX" group="GetPName"/>
             <unused start="0x832A" comment="Incomplete extension SGIX_texture_phase"/>
             <!-- <enum value="0x832A" name="GL_PHASE_SGIX"/> -->
-        <enum value="0x832B" name="GL_PIXEL_TEX_GEN_MODE_SGIX"/>
-        <enum value="0x832C" name="GL_ASYNC_HISTOGRAM_SGIX"/>
-        <enum value="0x832D" name="GL_MAX_ASYNC_HISTOGRAM_SGIX"/>
+        <enum value="0x832B" name="GL_PIXEL_TEX_GEN_MODE_SGIX" group="GetPName"/>
+        <enum value="0x832C" name="GL_ASYNC_HISTOGRAM_SGIX" group="GetPName,EnableCap"/>
+        <enum value="0x832D" name="GL_MAX_ASYNC_HISTOGRAM_SGIX" group="GetPName"/>
             <unused start="0x832E" end="0x832F" comment="Incomplete extension SGIX_texture_mipmap_anisotropic"/>
             <!-- <enum value="0x832E" name="GL_TEXTURE_MIPMAP_ANISOTROPY_SGIX"/> -->
             <!-- <enum value="0x832F" name="GL_MAX_MIPMAP_ANISOTROPY_SGIX"/> -->
     </enums>
 
     <enums namespace="GL" start="0x8330" end="0x833F" vendor="SUN">
-        <enum value="0x8330" name="GL_PIXEL_TRANSFORM_2D_EXT"/>
-        <enum value="0x8331" name="GL_PIXEL_MAG_FILTER_EXT"/>
-        <enum value="0x8332" name="GL_PIXEL_MIN_FILTER_EXT"/>
-        <enum value="0x8333" name="GL_PIXEL_CUBIC_WEIGHT_EXT"/>
+        <enum value="0x8330" name="GL_PIXEL_TRANSFORM_2D_EXT" group="PixelTransformTargetEXT"/>
+        <enum value="0x8331" name="GL_PIXEL_MAG_FILTER_EXT" group="PixelTransformPNameEXT"/>
+        <enum value="0x8332" name="GL_PIXEL_MIN_FILTER_EXT" group="PixelTransformPNameEXT"/>
+        <enum value="0x8333" name="GL_PIXEL_CUBIC_WEIGHT_EXT" group="PixelTransformPNameEXT"/>
         <enum value="0x8334" name="GL_CUBIC_EXT"/>
         <enum value="0x8335" name="GL_AVERAGE_EXT"/>
         <enum value="0x8336" name="GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT"/>
@@ -7106,21 +7105,21 @@
             <!-- <enum value="0x8346" name="GL_CUBE_MAP_YN_SGIX"/> -->
             <!-- <enum value="0x8347" name="GL_CUBE_MAP_YP_SGIX"/> -->
             <!-- <enum value="0x8348" name="GL_CUBE_MAP_BINDING_SGIX"/> -->
-        <enum value="0x8349" name="GL_FRAGMENT_MATERIAL_EXT"/>
-        <enum value="0x834A" name="GL_FRAGMENT_NORMAL_EXT"/>
+        <enum value="0x8349" name="GL_FRAGMENT_MATERIAL_EXT" group="LightTextureModeEXT"/>
+        <enum value="0x834A" name="GL_FRAGMENT_NORMAL_EXT" group="LightTextureModeEXT"/>
             <!-- Unfortunately, there was a collision promoting to EXT
                  from SGIX. Use fog_coord's value of 0x8452 instead of
                  the old assigned FRAGMENT_DEPTH_EXT (0x834B). -->
-        <enum value="0x834C" name="GL_FRAGMENT_COLOR_EXT"/>
-        <enum value="0x834D" name="GL_ATTENUATION_EXT"/>
-        <enum value="0x834E" name="GL_SHADOW_ATTENUATION_EXT"/>
+        <enum value="0x834C" name="GL_FRAGMENT_COLOR_EXT" group="LightTextureModeEXT"/>
+        <enum value="0x834D" name="GL_ATTENUATION_EXT" group="LightTexturePNameEXT"/>
+        <enum value="0x834E" name="GL_SHADOW_ATTENUATION_EXT" group="LightTexturePNameEXT"/>
         <enum value="0x834F" name="GL_TEXTURE_APPLICATION_MODE_EXT"/>
         <enum value="0x8350" name="GL_TEXTURE_LIGHT_EXT"/>
         <enum value="0x8351" name="GL_TEXTURE_MATERIAL_FACE_EXT"/>
         <enum value="0x8352" name="GL_TEXTURE_MATERIAL_PARAMETER_EXT"/>
-        <enum value="0x8353" name="GL_PIXEL_TEXTURE_SGIS"/>
-        <enum value="0x8354" name="GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS"/>
-        <enum value="0x8355" name="GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS"/>
+        <enum value="0x8353" name="GL_PIXEL_TEXTURE_SGIS" group="GetPName,EnableCap"/>
+        <enum value="0x8354" name="GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS" group="PixelTexGenParameterNameSGIS"/>
+        <enum value="0x8355" name="GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS" group="PixelTexGenParameterNameSGIS"/>
         <enum value="0x8356" name="GL_PIXEL_GROUP_COLOR_SGIS"/>
             <unused start="0x8357" end="0x8359" comment="Incomplete extension SGIX_pixel_texture_bits"/>
             <!-- <enum value="0x8357" name="GL_COLOR_TO_TEXTURE_COORD_SGIX"/> -->
@@ -7128,13 +7127,13 @@
             <!-- <enum value="0x8359" name="GL_COLOR_VALUE_SGIX"/> -->
             <unused start="0x835A" comment="Incomplete extension SGIX_pixel_texture_lod"/>
             <!-- <enum value="0x835A" name="GL_PIXEL_TEX_GEN_LAMBDA_SOURCE_SGIX"/> -->
-        <enum value="0x835B" name="GL_LINE_QUALITY_HINT_SGIX"/>
-        <enum value="0x835C" name="GL_ASYNC_TEX_IMAGE_SGIX"/>
-        <enum value="0x835D" name="GL_ASYNC_DRAW_PIXELS_SGIX"/>
-        <enum value="0x835E" name="GL_ASYNC_READ_PIXELS_SGIX"/>
-        <enum value="0x835F" name="GL_MAX_ASYNC_TEX_IMAGE_SGIX"/>
-        <enum value="0x8360" name="GL_MAX_ASYNC_DRAW_PIXELS_SGIX"/>
-        <enum value="0x8361" name="GL_MAX_ASYNC_READ_PIXELS_SGIX"/>
+        <enum value="0x835B" name="GL_LINE_QUALITY_HINT_SGIX" group="HintTarget"/>
+        <enum value="0x835C" name="GL_ASYNC_TEX_IMAGE_SGIX" group="GetPName,EnableCap"/>
+        <enum value="0x835D" name="GL_ASYNC_DRAW_PIXELS_SGIX" group="GetPName,EnableCap"/>
+        <enum value="0x835E" name="GL_ASYNC_READ_PIXELS_SGIX" group="GetPName,EnableCap"/>
+        <enum value="0x835F" name="GL_MAX_ASYNC_TEX_IMAGE_SGIX" group="GetPName"/>
+        <enum value="0x8360" name="GL_MAX_ASYNC_DRAW_PIXELS_SGIX" group="GetPName"/>
+        <enum value="0x8361" name="GL_MAX_ASYNC_READ_PIXELS_SGIX" group="GetPName"/>
         <enum value="0x8362" name="GL_UNSIGNED_BYTE_2_3_3_REV"/>
         <enum value="0x8362" name="GL_UNSIGNED_BYTE_2_3_3_REV_EXT"/>
         <enum value="0x8363" name="GL_UNSIGNED_SHORT_5_6_5"/>
@@ -7148,11 +7147,11 @@
         <enum value="0x8366" name="GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT"/>
         <enum value="0x8367" name="GL_UNSIGNED_INT_8_8_8_8_REV"/>
         <enum value="0x8367" name="GL_UNSIGNED_INT_8_8_8_8_REV_EXT"/>
-        <enum value="0x8368" name="GL_UNSIGNED_INT_2_10_10_10_REV"/>
+        <enum value="0x8368" name="GL_UNSIGNED_INT_2_10_10_10_REV" group="VertexAttribPointerType,VertexAttribType"/>
         <enum value="0x8368" name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT"/>
-        <enum value="0x8369" name="GL_TEXTURE_MAX_CLAMP_S_SGIX"/>
-        <enum value="0x836A" name="GL_TEXTURE_MAX_CLAMP_T_SGIX"/>
-        <enum value="0x836B" name="GL_TEXTURE_MAX_CLAMP_R_SGIX"/>
+        <enum value="0x8369" name="GL_TEXTURE_MAX_CLAMP_S_SGIX" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x836A" name="GL_TEXTURE_MAX_CLAMP_T_SGIX" group="TextureParameterName,GetTextureParameter"/>
+        <enum value="0x836B" name="GL_TEXTURE_MAX_CLAMP_R_SGIX" group="TextureParameterName,GetTextureParameter"/>
             <unused start="0x836C" end="0x836E" comment="Incomplete extension SGIX_fog_texture"/>
             <!-- <enum value="0x836C" name="GL_FRAGMENT_FOG_SGIX"/> -->
             <!-- <enum value="0x836D" name="GL_TEXTURE_FOG_SGIX"/> -->
@@ -7169,7 +7168,7 @@
                  conflicts. They have never reported using any values in
                  this range. Lesson: assigned ranges belong to vendors,
                  not engineers! -->
-        <enum value="0x8370" name="GL_MIRRORED_REPEAT"/>
+        <enum value="0x8370" name="GL_MIRRORED_REPEAT" group="TextureWrapMode"/>
         <enum value="0x8370" name="GL_MIRRORED_REPEAT_ARB"/>
         <enum value="0x8370" name="GL_MIRRORED_REPEAT_IBM"/>
         <enum value="0x8370" name="GL_MIRRORED_REPEAT_OES"/>
@@ -7215,19 +7214,19 @@
             <!-- <enum value="0x83EC" name="GL_BALI_R_CHIP_COUNT_SGIX"/> -->
             <unused start="0x83ED" comment="Incomplete extension SGIX_occlusion_instrument"/>
             <!-- <enum value="0x83ED" name="GL_OCCLUSION_INSTRUMENT_SGIX"/> -->
-        <enum value="0x83EE" name="GL_VERTEX_PRECLIP_SGIX"/>
-        <enum value="0x83EF" name="GL_VERTEX_PRECLIP_HINT_SGIX"/>
+        <enum value="0x83EE" name="GL_VERTEX_PRECLIP_SGIX" group="HintTarget,GetPName"/>
+        <enum value="0x83EF" name="GL_VERTEX_PRECLIP_HINT_SGIX" group="HintTarget,GetPName"/>
     </enums>
 
     <enums namespace="GL" start="0x83F0" end="0x83FF" vendor="INTEL">
             <!-- This block was reclaimed from NTP, who never shipped
                  it, and reassigned to Intel. -->
-        <enum value="0x83F0" name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT"/>
-        <enum value="0x83F1" name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"/>
+        <enum value="0x83F0" name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT" group="InternalFormat"/>
+        <enum value="0x83F1" name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT" group="InternalFormat"/>
         <enum value="0x83F2" name="GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE"/>
-        <enum value="0x83F2" name="GL_COMPRESSED_RGBA_S3TC_DXT3_EXT"/>
+        <enum value="0x83F2" name="GL_COMPRESSED_RGBA_S3TC_DXT3_EXT" group="InternalFormat"/>
         <enum value="0x83F3" name="GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE"/>
-        <enum value="0x83F3" name="GL_COMPRESSED_RGBA_S3TC_DXT5_EXT"/>
+        <enum value="0x83F3" name="GL_COMPRESSED_RGBA_S3TC_DXT5_EXT" group="InternalFormat"/>
         <enum value="0x83F4" name="GL_PARALLEL_ARRAYS_INTEL"/>
         <enum value="0x83F5" name="GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL"/>
         <enum value="0x83F6" name="GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL"/>
@@ -7243,33 +7242,33 @@
     </enums>
 
     <enums namespace="GL" start="0x8400" end="0x846F" vendor="SGI">
-        <enum value="0x8400" name="GL_FRAGMENT_LIGHTING_SGIX"/>
-        <enum value="0x8401" name="GL_FRAGMENT_COLOR_MATERIAL_SGIX"/>
-        <enum value="0x8402" name="GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX"/>
-        <enum value="0x8403" name="GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX"/>
-        <enum value="0x8404" name="GL_MAX_FRAGMENT_LIGHTS_SGIX"/>
-        <enum value="0x8405" name="GL_MAX_ACTIVE_LIGHTS_SGIX"/>
+        <enum value="0x8400" name="GL_FRAGMENT_LIGHTING_SGIX" group="GetPName,EnableCap"/>
+        <enum value="0x8401" name="GL_FRAGMENT_COLOR_MATERIAL_SGIX" group="GetPName,EnableCap"/>
+        <enum value="0x8402" name="GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX" group="GetPName"/>
+        <enum value="0x8403" name="GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX" group="GetPName"/>
+        <enum value="0x8404" name="GL_MAX_FRAGMENT_LIGHTS_SGIX" group="GetPName"/>
+        <enum value="0x8405" name="GL_MAX_ACTIVE_LIGHTS_SGIX" group="GetPName"/>
         <enum value="0x8406" name="GL_CURRENT_RASTER_NORMAL_SGIX"/>
-        <enum value="0x8407" name="GL_LIGHT_ENV_MODE_SGIX"/>
-        <enum value="0x8408" name="GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX"/>
-        <enum value="0x8409" name="GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX"/>
-        <enum value="0x840A" name="GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX"/>
-        <enum value="0x840B" name="GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX"/>
-        <enum value="0x840C" name="GL_FRAGMENT_LIGHT0_SGIX"/>
-        <enum value="0x840D" name="GL_FRAGMENT_LIGHT1_SGIX"/>
-        <enum value="0x840E" name="GL_FRAGMENT_LIGHT2_SGIX"/>
-        <enum value="0x840F" name="GL_FRAGMENT_LIGHT3_SGIX"/>
-        <enum value="0x8410" name="GL_FRAGMENT_LIGHT4_SGIX"/>
-        <enum value="0x8411" name="GL_FRAGMENT_LIGHT5_SGIX"/>
-        <enum value="0x8412" name="GL_FRAGMENT_LIGHT6_SGIX"/>
-        <enum value="0x8413" name="GL_FRAGMENT_LIGHT7_SGIX"/>
+        <enum value="0x8407" name="GL_LIGHT_ENV_MODE_SGIX" group="LightEnvParameterSGIX,GetPName"/>
+        <enum value="0x8408" name="GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX" group="GetPName,FragmentLightModelParameterSGIX"/>
+        <enum value="0x8409" name="GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX" group="GetPName,FragmentLightModelParameterSGIX"/>
+        <enum value="0x840A" name="GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX" group="GetPName,FragmentLightModelParameterSGIX"/>
+        <enum value="0x840B" name="GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX" group="GetPName,FragmentLightModelParameterSGIX"/>
+        <enum value="0x840C" name="GL_FRAGMENT_LIGHT0_SGIX" group="LightName,FragmentLightNameSGIX,EnableCap,GetPName"/>
+        <enum value="0x840D" name="GL_FRAGMENT_LIGHT1_SGIX" group="LightName,FragmentLightNameSGIX,EnableCap"/>
+        <enum value="0x840E" name="GL_FRAGMENT_LIGHT2_SGIX" group="LightName,FragmentLightNameSGIX,EnableCap"/>
+        <enum value="0x840F" name="GL_FRAGMENT_LIGHT3_SGIX" group="LightName,FragmentLightNameSGIX,EnableCap"/>
+        <enum value="0x8410" name="GL_FRAGMENT_LIGHT4_SGIX" group="LightName,FragmentLightNameSGIX,EnableCap"/>
+        <enum value="0x8411" name="GL_FRAGMENT_LIGHT5_SGIX" group="LightName,FragmentLightNameSGIX,EnableCap"/>
+        <enum value="0x8412" name="GL_FRAGMENT_LIGHT6_SGIX" group="LightName,FragmentLightNameSGIX,EnableCap"/>
+        <enum value="0x8413" name="GL_FRAGMENT_LIGHT7_SGIX" group="LightName,FragmentLightNameSGIX,EnableCap"/>
             <unused start="0x8414" end="0x842D" vendor="SGI"/>
-        <enum value="0x842E" name="GL_PACK_RESAMPLE_SGIX" comment="Formerly 0x842C in SGI specfile"/>
-        <enum value="0x842F" name="GL_UNPACK_RESAMPLE_SGIX" comment="Formerly 0x842D in SGI specfile"/>
-        <enum value="0x8430" name="GL_RESAMPLE_DECIMATE_SGIX" comment="Formerly 0x8430 in SGI specfile"/>
+        <enum value="0x842E" name="GL_PACK_RESAMPLE_SGIX" comment="Formerly 0x842C in SGI specfile" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x842F" name="GL_UNPACK_RESAMPLE_SGIX" comment="Formerly 0x842D in SGI specfile" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x8430" name="GL_RESAMPLE_DECIMATE_SGIX" comment="Formerly 0x8430 in SGI specfile" group="PixelStoreResampleMode"/>
             <unused start="0x8431" end="0x8432" vendor="SGI"/>
-        <enum value="0x8433" name="GL_RESAMPLE_REPLICATE_SGIX" comment="Formerly 0x842E in SGI specfile"/>
-        <enum value="0x8434" name="GL_RESAMPLE_ZERO_FILL_SGIX" comment="Formerly 0x842F in SGI specfile"/>
+        <enum value="0x8433" name="GL_RESAMPLE_REPLICATE_SGIX" comment="Formerly 0x842E in SGI specfile" group="PixelStoreResampleMode"/>
+        <enum value="0x8434" name="GL_RESAMPLE_ZERO_FILL_SGIX" comment="Formerly 0x842F in SGI specfile" group="PixelStoreResampleMode"/>
             <unused start="0x8435" vendor="SGI"/>
             <!-- Incomplete extension SGIX_fragment_lighting -->
             <!-- <enum value="0x8436"      name="GL_EYE_SPACE_SGIX"/> -->
@@ -7312,18 +7311,18 @@
             <!-- <enum value="0x844A" name="GL_BALI_GEOM_TIMER_INSTRUMENT_SGIX"/> -->
             <!-- <enum value="0x844B" name="GL_BALI_RASTER_TIMER_INSTRUMENT_SGIX"/> -->
             <!-- <enum value="0x844C" name="GL_BALI_INSTRUMENT_TIME_UNIT_SGIX"/> -->
-        <enum value="0x844D" name="GL_NEAREST_CLIPMAP_NEAREST_SGIX"/>
-        <enum value="0x844E" name="GL_NEAREST_CLIPMAP_LINEAR_SGIX"/>
-        <enum value="0x844F" name="GL_LINEAR_CLIPMAP_NEAREST_SGIX"/>
+        <enum value="0x844D" name="GL_NEAREST_CLIPMAP_NEAREST_SGIX" group="TextureMinFilter"/>
+        <enum value="0x844E" name="GL_NEAREST_CLIPMAP_LINEAR_SGIX" group="TextureMinFilter"/>
+        <enum value="0x844F" name="GL_LINEAR_CLIPMAP_NEAREST_SGIX" group="TextureMinFilter"/>
             <!-- 0x8450-0x845F range brokered for Id Software -->
         <enum value="0x8450" name="GL_FOG_COORDINATE_SOURCE"/>
         <enum value="0x8450" name="GL_FOG_COORDINATE_SOURCE_EXT"/>
-        <enum value="0x8450" name="GL_FOG_COORD_SRC" alias="GL_FOG_COORDINATE_SOURCE"/>
+        <enum value="0x8450" name="GL_FOG_COORD_SRC" alias="GL_FOG_COORDINATE_SOURCE" group="FogPName"/>
         <enum value="0x8451" name="GL_FOG_COORDINATE"/>
         <enum value="0x8451" name="GL_FOG_COORD" alias="GL_FOG_COORDINATE"/>
         <enum value="0x8451" name="GL_FOG_COORDINATE_EXT"/>
         <enum value="0x8452" name="GL_FRAGMENT_DEPTH"/>
-        <enum value="0x8452" name="GL_FRAGMENT_DEPTH_EXT"/>
+        <enum value="0x8452" name="GL_FRAGMENT_DEPTH_EXT" group="LightTextureModeEXT"/>
         <enum value="0x8453" name="GL_CURRENT_FOG_COORDINATE"/>
         <enum value="0x8453" name="GL_CURRENT_FOG_COORD" alias="GL_CURRENT_FOG_COORDINATE"/>
         <enum value="0x8453" name="GL_CURRENT_FOG_COORDINATE_EXT"/>
@@ -7369,8 +7368,8 @@
             <!-- <enum value="0x846A" name="GL_INTENSITY16_ICC_SGIX"/> -->
             <!-- <enum value="0x846B" name="GL_LUMINANCE16_ALPHA8_ICC_SGIX"/> -->
             <unused start="0x846C" vendor="SGI"/>
-        <enum value="0x846D" name="GL_ALIASED_POINT_SIZE_RANGE"/>
-        <enum value="0x846E" name="GL_ALIASED_LINE_WIDTH_RANGE"/>
+        <enum value="0x846D" name="GL_ALIASED_POINT_SIZE_RANGE" group="GetPName"/>
+        <enum value="0x846E" name="GL_ALIASED_LINE_WIDTH_RANGE" group="GetPName"/>
             <unused start="0x846F" vendor="SGI"/>
     </enums>
 
@@ -7389,71 +7388,71 @@
     </enums>
 
     <enums namespace="GL" start="0x84C0" end="0x84EF" vendor="ARB">
-        <enum value="0x84C0" name="GL_TEXTURE0"/>
-        <enum value="0x84C0" name="GL_TEXTURE0_ARB"/>
-        <enum value="0x84C1" name="GL_TEXTURE1"/>
-        <enum value="0x84C1" name="GL_TEXTURE1_ARB"/>
-        <enum value="0x84C2" name="GL_TEXTURE2"/>
+        <enum value="0x84C0" name="GL_TEXTURE0" group="TextureUnit"/>
+        <enum value="0x84C0" name="GL_TEXTURE0_ARB" group="CombinerRegisterNV"/>
+        <enum value="0x84C1" name="GL_TEXTURE1" group="TextureUnit"/>
+        <enum value="0x84C1" name="GL_TEXTURE1_ARB" group="CombinerRegisterNV"/>
+        <enum value="0x84C2" name="GL_TEXTURE2" group="TextureUnit"/>
         <enum value="0x84C2" name="GL_TEXTURE2_ARB"/>
-        <enum value="0x84C3" name="GL_TEXTURE3"/>
+        <enum value="0x84C3" name="GL_TEXTURE3" group="TextureUnit"/>
         <enum value="0x84C3" name="GL_TEXTURE3_ARB"/>
-        <enum value="0x84C4" name="GL_TEXTURE4"/>
+        <enum value="0x84C4" name="GL_TEXTURE4" group="TextureUnit"/>
         <enum value="0x84C4" name="GL_TEXTURE4_ARB"/>
-        <enum value="0x84C5" name="GL_TEXTURE5"/>
+        <enum value="0x84C5" name="GL_TEXTURE5" group="TextureUnit"/>
         <enum value="0x84C5" name="GL_TEXTURE5_ARB"/>
-        <enum value="0x84C6" name="GL_TEXTURE6"/>
+        <enum value="0x84C6" name="GL_TEXTURE6" group="TextureUnit"/>
         <enum value="0x84C6" name="GL_TEXTURE6_ARB"/>
-        <enum value="0x84C7" name="GL_TEXTURE7"/>
+        <enum value="0x84C7" name="GL_TEXTURE7" group="TextureUnit"/>
         <enum value="0x84C7" name="GL_TEXTURE7_ARB"/>
-        <enum value="0x84C8" name="GL_TEXTURE8"/>
+        <enum value="0x84C8" name="GL_TEXTURE8" group="TextureUnit"/>
         <enum value="0x84C8" name="GL_TEXTURE8_ARB"/>
-        <enum value="0x84C9" name="GL_TEXTURE9"/>
+        <enum value="0x84C9" name="GL_TEXTURE9" group="TextureUnit"/>
         <enum value="0x84C9" name="GL_TEXTURE9_ARB"/>
-        <enum value="0x84CA" name="GL_TEXTURE10"/>
+        <enum value="0x84CA" name="GL_TEXTURE10" group="TextureUnit"/>
         <enum value="0x84CA" name="GL_TEXTURE10_ARB"/>
-        <enum value="0x84CB" name="GL_TEXTURE11"/>
+        <enum value="0x84CB" name="GL_TEXTURE11" group="TextureUnit"/>
         <enum value="0x84CB" name="GL_TEXTURE11_ARB"/>
-        <enum value="0x84CC" name="GL_TEXTURE12"/>
+        <enum value="0x84CC" name="GL_TEXTURE12" group="TextureUnit"/>
         <enum value="0x84CC" name="GL_TEXTURE12_ARB"/>
-        <enum value="0x84CD" name="GL_TEXTURE13"/>
+        <enum value="0x84CD" name="GL_TEXTURE13" group="TextureUnit"/>
         <enum value="0x84CD" name="GL_TEXTURE13_ARB"/>
-        <enum value="0x84CE" name="GL_TEXTURE14"/>
+        <enum value="0x84CE" name="GL_TEXTURE14" group="TextureUnit"/>
         <enum value="0x84CE" name="GL_TEXTURE14_ARB"/>
-        <enum value="0x84CF" name="GL_TEXTURE15"/>
+        <enum value="0x84CF" name="GL_TEXTURE15" group="TextureUnit"/>
         <enum value="0x84CF" name="GL_TEXTURE15_ARB"/>
-        <enum value="0x84D0" name="GL_TEXTURE16"/>
+        <enum value="0x84D0" name="GL_TEXTURE16" group="TextureUnit"/>
         <enum value="0x84D0" name="GL_TEXTURE16_ARB"/>
-        <enum value="0x84D1" name="GL_TEXTURE17"/>
+        <enum value="0x84D1" name="GL_TEXTURE17" group="TextureUnit"/>
         <enum value="0x84D1" name="GL_TEXTURE17_ARB"/>
-        <enum value="0x84D2" name="GL_TEXTURE18"/>
+        <enum value="0x84D2" name="GL_TEXTURE18" group="TextureUnit"/>
         <enum value="0x84D2" name="GL_TEXTURE18_ARB"/>
-        <enum value="0x84D3" name="GL_TEXTURE19"/>
+        <enum value="0x84D3" name="GL_TEXTURE19" group="TextureUnit"/>
         <enum value="0x84D3" name="GL_TEXTURE19_ARB"/>
-        <enum value="0x84D4" name="GL_TEXTURE20"/>
+        <enum value="0x84D4" name="GL_TEXTURE20" group="TextureUnit"/>
         <enum value="0x84D4" name="GL_TEXTURE20_ARB"/>
-        <enum value="0x84D5" name="GL_TEXTURE21"/>
+        <enum value="0x84D5" name="GL_TEXTURE21" group="TextureUnit"/>
         <enum value="0x84D5" name="GL_TEXTURE21_ARB"/>
-        <enum value="0x84D6" name="GL_TEXTURE22"/>
+        <enum value="0x84D6" name="GL_TEXTURE22" group="TextureUnit"/>
         <enum value="0x84D6" name="GL_TEXTURE22_ARB"/>
-        <enum value="0x84D7" name="GL_TEXTURE23"/>
+        <enum value="0x84D7" name="GL_TEXTURE23" group="TextureUnit"/>
         <enum value="0x84D7" name="GL_TEXTURE23_ARB"/>
-        <enum value="0x84D8" name="GL_TEXTURE24"/>
+        <enum value="0x84D8" name="GL_TEXTURE24" group="TextureUnit"/>
         <enum value="0x84D8" name="GL_TEXTURE24_ARB"/>
-        <enum value="0x84D9" name="GL_TEXTURE25"/>
+        <enum value="0x84D9" name="GL_TEXTURE25" group="TextureUnit"/>
         <enum value="0x84D9" name="GL_TEXTURE25_ARB"/>
-        <enum value="0x84DA" name="GL_TEXTURE26"/>
+        <enum value="0x84DA" name="GL_TEXTURE26" group="TextureUnit"/>
         <enum value="0x84DA" name="GL_TEXTURE26_ARB"/>
-        <enum value="0x84DB" name="GL_TEXTURE27"/>
+        <enum value="0x84DB" name="GL_TEXTURE27" group="TextureUnit"/>
         <enum value="0x84DB" name="GL_TEXTURE27_ARB"/>
-        <enum value="0x84DC" name="GL_TEXTURE28"/>
+        <enum value="0x84DC" name="GL_TEXTURE28" group="TextureUnit"/>
         <enum value="0x84DC" name="GL_TEXTURE28_ARB"/>
-        <enum value="0x84DD" name="GL_TEXTURE29"/>
+        <enum value="0x84DD" name="GL_TEXTURE29" group="TextureUnit"/>
         <enum value="0x84DD" name="GL_TEXTURE29_ARB"/>
-        <enum value="0x84DE" name="GL_TEXTURE30"/>
+        <enum value="0x84DE" name="GL_TEXTURE30" group="TextureUnit"/>
         <enum value="0x84DE" name="GL_TEXTURE30_ARB"/>
-        <enum value="0x84DF" name="GL_TEXTURE31"/>
+        <enum value="0x84DF" name="GL_TEXTURE31" group="TextureUnit"/>
         <enum value="0x84DF" name="GL_TEXTURE31_ARB"/>
-        <enum value="0x84E0" name="GL_ACTIVE_TEXTURE"/>
+        <enum value="0x84E0" name="GL_ACTIVE_TEXTURE" group="GetPName"/>
         <enum value="0x84E0" name="GL_ACTIVE_TEXTURE_ARB"/>
         <enum value="0x84E1" name="GL_CLIENT_ACTIVE_TEXTURE"/>
         <enum value="0x84E1" name="GL_CLIENT_ACTIVE_TEXTURE_ARB"/>
@@ -7471,7 +7470,7 @@
         <enum value="0x84E6" name="GL_TRANSPOSE_COLOR_MATRIX_ARB"/>
         <enum value="0x84E7" name="GL_SUBTRACT"/>
         <enum value="0x84E7" name="GL_SUBTRACT_ARB"/>
-        <enum value="0x84E8" name="GL_MAX_RENDERBUFFER_SIZE"/>
+        <enum value="0x84E8" name="GL_MAX_RENDERBUFFER_SIZE" group="GetPName"/>
         <enum value="0x84E8" name="GL_MAX_RENDERBUFFER_SIZE_EXT"/>
         <enum value="0x84E8" name="GL_MAX_RENDERBUFFER_SIZE_OES"/>
         <enum value="0x84E9" name="GL_COMPRESSED_ALPHA"/>
@@ -7482,60 +7481,60 @@
         <enum value="0x84EB" name="GL_COMPRESSED_LUMINANCE_ALPHA_ARB"/>
         <enum value="0x84EC" name="GL_COMPRESSED_INTENSITY"/>
         <enum value="0x84EC" name="GL_COMPRESSED_INTENSITY_ARB"/>
-        <enum value="0x84ED" name="GL_COMPRESSED_RGB"/>
+        <enum value="0x84ED" name="GL_COMPRESSED_RGB" group="InternalFormat"/>
         <enum value="0x84ED" name="GL_COMPRESSED_RGB_ARB"/>
-        <enum value="0x84EE" name="GL_COMPRESSED_RGBA"/>
+        <enum value="0x84EE" name="GL_COMPRESSED_RGBA" group="InternalFormat"/>
         <enum value="0x84EE" name="GL_COMPRESSED_RGBA_ARB"/>
-        <enum value="0x84EF" name="GL_TEXTURE_COMPRESSION_HINT"/>
-        <enum value="0x84EF" name="GL_TEXTURE_COMPRESSION_HINT_ARB"/>
+        <enum value="0x84EF" name="GL_TEXTURE_COMPRESSION_HINT" group="HintTarget,GetPName"/>
+        <enum value="0x84EF" name="GL_TEXTURE_COMPRESSION_HINT_ARB" group="HintTarget"/>
     </enums>
 
     <enums namespace="GL" start="0x84F0" end="0x855F" vendor="NV">
-        <enum value="0x84F0" name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER"/>
-        <enum value="0x84F1" name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
-        <enum value="0x84F2" name="GL_ALL_COMPLETED_NV"/>
-        <enum value="0x84F3" name="GL_FENCE_STATUS_NV"/>
-        <enum value="0x84F4" name="GL_FENCE_CONDITION_NV"/>
-        <enum value="0x84F5" name="GL_TEXTURE_RECTANGLE"/>
+        <enum value="0x84F0" name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER" group="UniformBlockPName"/>
+        <enum value="0x84F1" name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER" group="UniformBlockPName"/>
+        <enum value="0x84F2" name="GL_ALL_COMPLETED_NV" group="FenceConditionNV"/>
+        <enum value="0x84F3" name="GL_FENCE_STATUS_NV" group="FenceParameterNameNV"/>
+        <enum value="0x84F4" name="GL_FENCE_CONDITION_NV" group="FenceParameterNameNV"/>
+        <enum value="0x84F5" name="GL_TEXTURE_RECTANGLE" group="CopyImageSubDataTarget,TextureTarget"/>
         <enum value="0x84F5" name="GL_TEXTURE_RECTANGLE_ARB"/>
         <enum value="0x84F5" name="GL_TEXTURE_RECTANGLE_NV"/>
-        <enum value="0x84F6" name="GL_TEXTURE_BINDING_RECTANGLE"/>
+        <enum value="0x84F6" name="GL_TEXTURE_BINDING_RECTANGLE" group="GetPName"/>
         <enum value="0x84F6" name="GL_TEXTURE_BINDING_RECTANGLE_ARB"/>
         <enum value="0x84F6" name="GL_TEXTURE_BINDING_RECTANGLE_NV"/>
-        <enum value="0x84F7" name="GL_PROXY_TEXTURE_RECTANGLE"/>
-        <enum value="0x84F7" name="GL_PROXY_TEXTURE_RECTANGLE_ARB"/>
-        <enum value="0x84F7" name="GL_PROXY_TEXTURE_RECTANGLE_NV"/>
-        <enum value="0x84F8" name="GL_MAX_RECTANGLE_TEXTURE_SIZE"/>
+        <enum value="0x84F7" name="GL_PROXY_TEXTURE_RECTANGLE" group="TextureTarget"/>
+        <enum value="0x84F7" name="GL_PROXY_TEXTURE_RECTANGLE_ARB" group="TextureTarget"/>
+        <enum value="0x84F7" name="GL_PROXY_TEXTURE_RECTANGLE_NV" group="TextureTarget"/>
+        <enum value="0x84F8" name="GL_MAX_RECTANGLE_TEXTURE_SIZE" group="GetPName"/>
         <enum value="0x84F8" name="GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB"/>
         <enum value="0x84F8" name="GL_MAX_RECTANGLE_TEXTURE_SIZE_NV"/>
-        <enum value="0x84F9" name="GL_DEPTH_STENCIL"/>
-        <enum value="0x84F9" name="GL_DEPTH_STENCIL_EXT"/>
-        <enum value="0x84F9" name="GL_DEPTH_STENCIL_NV"/>
-        <enum value="0x84F9" name="GL_DEPTH_STENCIL_OES"/>
+        <enum value="0x84F9" name="GL_DEPTH_STENCIL" group="InternalFormat,PixelFormat"/>
+        <enum value="0x84F9" name="GL_DEPTH_STENCIL_EXT" group="InternalFormat"/>
+        <enum value="0x84F9" name="GL_DEPTH_STENCIL_NV" group="InternalFormat"/>
+        <enum value="0x84F9" name="GL_DEPTH_STENCIL_OES" group="InternalFormat"/>
         <enum value="0x84FA" name="GL_UNSIGNED_INT_24_8"/>
         <enum value="0x84FA" name="GL_UNSIGNED_INT_24_8_EXT"/>
         <enum value="0x84FA" name="GL_UNSIGNED_INT_24_8_NV"/>
         <enum value="0x84FA" name="GL_UNSIGNED_INT_24_8_OES"/>
             <unused start="0x84FB" end="0x84FC" vendor="NV"/>
-        <enum value="0x84FD" name="GL_MAX_TEXTURE_LOD_BIAS"/>
+        <enum value="0x84FD" name="GL_MAX_TEXTURE_LOD_BIAS" group="GetPName"/>
         <enum value="0x84FD" name="GL_MAX_TEXTURE_LOD_BIAS_EXT"/>
-        <enum value="0x84FE" name="GL_TEXTURE_MAX_ANISOTROPY"/>
+        <enum value="0x84FE" name="GL_TEXTURE_MAX_ANISOTROPY" group="SamplerParameterF"/>
         <enum value="0x84FE" name="GL_TEXTURE_MAX_ANISOTROPY_EXT" alias="GL_TEXTURE_MAX_ANISOTROPY"/>
         <enum value="0x84FF" name="GL_MAX_TEXTURE_MAX_ANISOTROPY"/>
         <enum value="0x84FF" name="GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT" alias="GL_MAX_TEXTURE_MAX_ANISOTROPY"/>
         <enum value="0x8500" name="GL_TEXTURE_FILTER_CONTROL"/>
         <enum value="0x8500" name="GL_TEXTURE_FILTER_CONTROL_EXT"/>
-        <enum value="0x8501" name="GL_TEXTURE_LOD_BIAS"/>
+        <enum value="0x8501" name="GL_TEXTURE_LOD_BIAS" group="TextureParameterName"/>
         <enum value="0x8501" name="GL_TEXTURE_LOD_BIAS_EXT"/>
         <enum value="0x8502" name="GL_MODELVIEW1_STACK_DEPTH_EXT"/>
         <enum value="0x8503" name="GL_COMBINE4_NV"/>
         <enum value="0x8504" name="GL_MAX_SHININESS_NV"/>
         <enum value="0x8505" name="GL_MAX_SPOT_EXPONENT_NV"/>
         <enum value="0x8506" name="GL_MODELVIEW1_MATRIX_EXT"/>
-        <enum value="0x8507" name="GL_INCR_WRAP"/>
+        <enum value="0x8507" name="GL_INCR_WRAP" group="StencilOp"/>
         <enum value="0x8507" name="GL_INCR_WRAP_EXT"/>
         <enum value="0x8507" name="GL_INCR_WRAP_OES"/>
-        <enum value="0x8508" name="GL_DECR_WRAP"/>
+        <enum value="0x8508" name="GL_DECR_WRAP" group="StencilOp"/>
         <enum value="0x8508" name="GL_DECR_WRAP_EXT"/>
         <enum value="0x8508" name="GL_DECR_WRAP_OES"/>
         <enum value="0x8509" name="GL_VERTEX_WEIGHTING_EXT"/>
@@ -7557,42 +7556,42 @@
         <enum value="0x8512" name="GL_REFLECTION_MAP_EXT"/>
         <enum value="0x8512" name="GL_REFLECTION_MAP_NV"/>
         <enum value="0x8512" name="GL_REFLECTION_MAP_OES"/>
-        <enum value="0x8513" name="GL_TEXTURE_CUBE_MAP"/>
+        <enum value="0x8513" name="GL_TEXTURE_CUBE_MAP" group="CopyImageSubDataTarget,TextureTarget"/>
         <enum value="0x8513" name="GL_TEXTURE_CUBE_MAP_ARB"/>
         <enum value="0x8513" name="GL_TEXTURE_CUBE_MAP_EXT"/>
         <enum value="0x8513" name="GL_TEXTURE_CUBE_MAP_OES"/>
-        <enum value="0x8514" name="GL_TEXTURE_BINDING_CUBE_MAP"/>
+        <enum value="0x8514" name="GL_TEXTURE_BINDING_CUBE_MAP" group="GetPName"/>
         <enum value="0x8514" name="GL_TEXTURE_BINDING_CUBE_MAP_ARB"/>
         <enum value="0x8514" name="GL_TEXTURE_BINDING_CUBE_MAP_EXT"/>
         <enum value="0x8514" name="GL_TEXTURE_BINDING_CUBE_MAP_OES"/>
-        <enum value="0x8515" name="GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
+        <enum value="0x8515" name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" group="TextureTarget"/>
         <enum value="0x8515" name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB"/>
         <enum value="0x8515" name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT"/>
         <enum value="0x8515" name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES"/>
-        <enum value="0x8516" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
+        <enum value="0x8516" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" group="TextureTarget"/>
         <enum value="0x8516" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB"/>
         <enum value="0x8516" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT"/>
         <enum value="0x8516" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES"/>
-        <enum value="0x8517" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
+        <enum value="0x8517" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" group="TextureTarget"/>
         <enum value="0x8517" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB"/>
         <enum value="0x8517" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT"/>
         <enum value="0x8517" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES"/>
-        <enum value="0x8518" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
+        <enum value="0x8518" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" group="TextureTarget"/>
         <enum value="0x8518" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB"/>
         <enum value="0x8518" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT"/>
         <enum value="0x8518" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES"/>
-        <enum value="0x8519" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
+        <enum value="0x8519" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" group="TextureTarget"/>
         <enum value="0x8519" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB"/>
         <enum value="0x8519" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT"/>
         <enum value="0x8519" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES"/>
-        <enum value="0x851A" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
+        <enum value="0x851A" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" group="TextureTarget"/>
         <enum value="0x851A" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB"/>
         <enum value="0x851A" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT"/>
         <enum value="0x851A" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES"/>
-        <enum value="0x851B" name="GL_PROXY_TEXTURE_CUBE_MAP"/>
-        <enum value="0x851B" name="GL_PROXY_TEXTURE_CUBE_MAP_ARB"/>
-        <enum value="0x851B" name="GL_PROXY_TEXTURE_CUBE_MAP_EXT"/>
-        <enum value="0x851C" name="GL_MAX_CUBE_MAP_TEXTURE_SIZE"/>
+        <enum value="0x851B" name="GL_PROXY_TEXTURE_CUBE_MAP" group="TextureTarget"/>
+        <enum value="0x851B" name="GL_PROXY_TEXTURE_CUBE_MAP_ARB" group="TextureTarget"/>
+        <enum value="0x851B" name="GL_PROXY_TEXTURE_CUBE_MAP_EXT" group="TextureTarget"/>
+        <enum value="0x851C" name="GL_MAX_CUBE_MAP_TEXTURE_SIZE" group="GetPName"/>
         <enum value="0x851C" name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB"/>
         <enum value="0x851C" name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT"/>
         <enum value="0x851C" name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES"/>
@@ -7601,45 +7600,45 @@
         <enum value="0x851E" name="GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE"/>
         <enum value="0x851E" name="GL_VERTEX_ARRAY_RANGE_LENGTH_NV"/>
         <enum value="0x851F" name="GL_VERTEX_ARRAY_RANGE_VALID_NV"/>
-        <enum value="0x851F" name="GL_VERTEX_ARRAY_STORAGE_HINT_APPLE"/>
+        <enum value="0x851F" name="GL_VERTEX_ARRAY_STORAGE_HINT_APPLE" group="HintTarget"/>
         <enum value="0x8520" name="GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV"/>
         <enum value="0x8521" name="GL_VERTEX_ARRAY_RANGE_POINTER_APPLE"/>
         <enum value="0x8521" name="GL_VERTEX_ARRAY_RANGE_POINTER_NV"/>
         <enum value="0x8522" name="GL_REGISTER_COMBINERS_NV"/>
-        <enum value="0x8523" name="GL_VARIABLE_A_NV"/>
-        <enum value="0x8524" name="GL_VARIABLE_B_NV"/>
-        <enum value="0x8525" name="GL_VARIABLE_C_NV"/>
-        <enum value="0x8526" name="GL_VARIABLE_D_NV"/>
-        <enum value="0x8527" name="GL_VARIABLE_E_NV"/>
-        <enum value="0x8528" name="GL_VARIABLE_F_NV"/>
-        <enum value="0x8529" name="GL_VARIABLE_G_NV"/>
+        <enum value="0x8523" name="GL_VARIABLE_A_NV" group="CombinerVariableNV"/>
+        <enum value="0x8524" name="GL_VARIABLE_B_NV" group="CombinerVariableNV"/>
+        <enum value="0x8525" name="GL_VARIABLE_C_NV" group="CombinerVariableNV"/>
+        <enum value="0x8526" name="GL_VARIABLE_D_NV" group="CombinerVariableNV"/>
+        <enum value="0x8527" name="GL_VARIABLE_E_NV" group="CombinerVariableNV"/>
+        <enum value="0x8528" name="GL_VARIABLE_F_NV" group="CombinerVariableNV"/>
+        <enum value="0x8529" name="GL_VARIABLE_G_NV" group="CombinerVariableNV"/>
         <enum value="0x852A" name="GL_CONSTANT_COLOR0_NV"/>
         <enum value="0x852B" name="GL_CONSTANT_COLOR1_NV"/>
-        <enum value="0x852C" name="GL_PRIMARY_COLOR_NV"/>
-        <enum value="0x852D" name="GL_SECONDARY_COLOR_NV"/>
-        <enum value="0x852E" name="GL_SPARE0_NV"/>
-        <enum value="0x852F" name="GL_SPARE1_NV"/>
-        <enum value="0x8530" name="GL_DISCARD_NV"/>
+        <enum value="0x852C" name="GL_PRIMARY_COLOR_NV" group="PathColor,CombinerRegisterNV"/>
+        <enum value="0x852D" name="GL_SECONDARY_COLOR_NV" group="PathColor,CombinerRegisterNV"/>
+        <enum value="0x852E" name="GL_SPARE0_NV" group="CombinerRegisterNV"/>
+        <enum value="0x852F" name="GL_SPARE1_NV" group="CombinerRegisterNV"/>
+        <enum value="0x8530" name="GL_DISCARD_NV" group="CombinerRegisterNV"/>
         <enum value="0x8531" name="GL_E_TIMES_F_NV"/>
         <enum value="0x8532" name="GL_SPARE0_PLUS_SECONDARY_COLOR_NV"/>
         <enum value="0x8533" name="GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV"/>
-        <enum value="0x8534" name="GL_MULTISAMPLE_FILTER_HINT_NV"/>
+        <enum value="0x8534" name="GL_MULTISAMPLE_FILTER_HINT_NV" group="HintTarget"/>
         <enum value="0x8535" name="GL_PER_STAGE_CONSTANTS_NV"/>
-        <enum value="0x8536" name="GL_UNSIGNED_IDENTITY_NV"/>
-        <enum value="0x8537" name="GL_UNSIGNED_INVERT_NV"/>
-        <enum value="0x8538" name="GL_EXPAND_NORMAL_NV"/>
-        <enum value="0x8539" name="GL_EXPAND_NEGATE_NV"/>
-        <enum value="0x853A" name="GL_HALF_BIAS_NORMAL_NV"/>
-        <enum value="0x853B" name="GL_HALF_BIAS_NEGATE_NV"/>
-        <enum value="0x853C" name="GL_SIGNED_IDENTITY_NV"/>
-        <enum value="0x853D" name="GL_SIGNED_NEGATE_NV"/>
-        <enum value="0x853E" name="GL_SCALE_BY_TWO_NV"/>
-        <enum value="0x853F" name="GL_SCALE_BY_FOUR_NV"/>
-        <enum value="0x8540" name="GL_SCALE_BY_ONE_HALF_NV"/>
-        <enum value="0x8541" name="GL_BIAS_BY_NEGATIVE_ONE_HALF_NV"/>
-        <enum value="0x8542" name="GL_COMBINER_INPUT_NV"/>
-        <enum value="0x8543" name="GL_COMBINER_MAPPING_NV"/>
-        <enum value="0x8544" name="GL_COMBINER_COMPONENT_USAGE_NV"/>
+        <enum value="0x8536" name="GL_UNSIGNED_IDENTITY_NV" group="CombinerMappingNV"/>
+        <enum value="0x8537" name="GL_UNSIGNED_INVERT_NV" group="CombinerMappingNV"/>
+        <enum value="0x8538" name="GL_EXPAND_NORMAL_NV" group="CombinerMappingNV"/>
+        <enum value="0x8539" name="GL_EXPAND_NEGATE_NV" group="CombinerMappingNV"/>
+        <enum value="0x853A" name="GL_HALF_BIAS_NORMAL_NV" group="CombinerMappingNV"/>
+        <enum value="0x853B" name="GL_HALF_BIAS_NEGATE_NV" group="CombinerMappingNV"/>
+        <enum value="0x853C" name="GL_SIGNED_IDENTITY_NV" group="CombinerMappingNV"/>
+        <enum value="0x853D" name="GL_SIGNED_NEGATE_NV" group="CombinerMappingNV"/>
+        <enum value="0x853E" name="GL_SCALE_BY_TWO_NV" group="CombinerScaleNV"/>
+        <enum value="0x853F" name="GL_SCALE_BY_FOUR_NV" group="CombinerScaleNV"/>
+        <enum value="0x8540" name="GL_SCALE_BY_ONE_HALF_NV" group="CombinerScaleNV"/>
+        <enum value="0x8541" name="GL_BIAS_BY_NEGATIVE_ONE_HALF_NV" group="CombinerBiasNV"/>
+        <enum value="0x8542" name="GL_COMBINER_INPUT_NV" group="CombinerParameterNV"/>
+        <enum value="0x8543" name="GL_COMBINER_MAPPING_NV" group="CombinerParameterNV"/>
+        <enum value="0x8544" name="GL_COMBINER_COMPONENT_USAGE_NV" group="CombinerParameterNV"/>
         <enum value="0x8545" name="GL_COMBINER_AB_DOT_PRODUCT_NV"/>
         <enum value="0x8546" name="GL_COMBINER_CD_DOT_PRODUCT_NV"/>
         <enum value="0x8547" name="GL_COMBINER_MUX_SUM_NV"/>
@@ -7651,14 +7650,14 @@
         <enum value="0x854D" name="GL_MAX_GENERAL_COMBINERS_NV"/>
         <enum value="0x854E" name="GL_NUM_GENERAL_COMBINERS_NV"/>
         <enum value="0x854F" name="GL_COLOR_SUM_CLAMP_NV"/>
-        <enum value="0x8550" name="GL_COMBINER0_NV"/>
-        <enum value="0x8551" name="GL_COMBINER1_NV"/>
-        <enum value="0x8552" name="GL_COMBINER2_NV"/>
-        <enum value="0x8553" name="GL_COMBINER3_NV"/>
-        <enum value="0x8554" name="GL_COMBINER4_NV"/>
-        <enum value="0x8555" name="GL_COMBINER5_NV"/>
-        <enum value="0x8556" name="GL_COMBINER6_NV"/>
-        <enum value="0x8557" name="GL_COMBINER7_NV"/>
+        <enum value="0x8550" name="GL_COMBINER0_NV" group="CombinerStageNV"/>
+        <enum value="0x8551" name="GL_COMBINER1_NV" group="CombinerStageNV"/>
+        <enum value="0x8552" name="GL_COMBINER2_NV" group="CombinerStageNV"/>
+        <enum value="0x8553" name="GL_COMBINER3_NV" group="CombinerStageNV"/>
+        <enum value="0x8554" name="GL_COMBINER4_NV" group="CombinerStageNV"/>
+        <enum value="0x8555" name="GL_COMBINER5_NV" group="CombinerStageNV"/>
+        <enum value="0x8556" name="GL_COMBINER6_NV" group="CombinerStageNV"/>
+        <enum value="0x8557" name="GL_COMBINER7_NV" group="CombinerStageNV"/>
         <enum value="0x8558" name="GL_PRIMITIVE_RESTART_NV"/>
         <enum value="0x8559" name="GL_PRIMITIVE_RESTART_INDEX_NV"/>
         <enum value="0x855A" name="GL_FOG_DISTANCE_MODE_NV"/>
@@ -7701,11 +7700,11 @@
         <enum value="0x8575" name="GL_INTERPOLATE"/>
         <enum value="0x8575" name="GL_INTERPOLATE_ARB"/>
         <enum value="0x8575" name="GL_INTERPOLATE_EXT"/>
-        <enum value="0x8576" name="GL_CONSTANT"/>
+        <enum value="0x8576" name="GL_CONSTANT" group="PathGenMode"/>
         <enum value="0x8576" name="GL_CONSTANT_ARB"/>
         <enum value="0x8576" name="GL_CONSTANT_EXT"/>
         <enum value="0x8576" name="GL_CONSTANT_NV"/>
-        <enum value="0x8577" name="GL_PRIMARY_COLOR"/>
+        <enum value="0x8577" name="GL_PRIMARY_COLOR" group="PathColor"/>
         <enum value="0x8577" name="GL_PRIMARY_COLOR_ARB"/>
         <enum value="0x8577" name="GL_PRIMARY_COLOR_EXT"/>
         <enum value="0x8578" name="GL_PREVIOUS"/>
@@ -7733,7 +7732,7 @@
         <enum value="0x8589" name="GL_SOURCE1_ALPHA"/>
         <enum value="0x8589" name="GL_SOURCE1_ALPHA_ARB"/>
         <enum value="0x8589" name="GL_SOURCE1_ALPHA_EXT"/>
-        <enum value="0x8589" name="GL_SRC1_ALPHA" alias="GL_SOURCE1_ALPHA"/>
+        <enum value="0x8589" name="GL_SRC1_ALPHA" alias="GL_SOURCE1_ALPHA" group="BlendingFactor"/>
         <enum value="0x8589" name="GL_SRC1_ALPHA_EXT"/>
         <enum value="0x858A" name="GL_SOURCE2_ALPHA"/>
         <enum value="0x858A" name="GL_SOURCE2_ALPHA_ARB"/>
@@ -7766,11 +7765,11 @@
     </enums>
 
     <enums namespace="GL" start="0x85A0" end="0x85AF" vendor="SGI">
-        <enum value="0x85A0" name="GL_PACK_SUBSAMPLE_RATE_SGIX"/>
-        <enum value="0x85A1" name="GL_UNPACK_SUBSAMPLE_RATE_SGIX"/>
-        <enum value="0x85A2" name="GL_PIXEL_SUBSAMPLE_4444_SGIX"/>
-        <enum value="0x85A3" name="GL_PIXEL_SUBSAMPLE_2424_SGIX"/>
-        <enum value="0x85A4" name="GL_PIXEL_SUBSAMPLE_4242_SGIX"/>
+        <enum value="0x85A0" name="GL_PACK_SUBSAMPLE_RATE_SGIX" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x85A1" name="GL_UNPACK_SUBSAMPLE_RATE_SGIX" group="PixelStoreParameter,GetPName"/>
+        <enum value="0x85A2" name="GL_PIXEL_SUBSAMPLE_4444_SGIX" group="PixelStoreSubsampleRate"/>
+        <enum value="0x85A3" name="GL_PIXEL_SUBSAMPLE_2424_SGIX" group="PixelStoreSubsampleRate"/>
+        <enum value="0x85A4" name="GL_PIXEL_SUBSAMPLE_4242_SGIX" group="PixelStoreSubsampleRate"/>
             <unused start="0x85A5" end="0x85AD" comment="Incomplete extension SGIS_color_range"/>
             <!-- <enum value="0x85A5" name="GL_EXTENDED_RANGE_SGIS"/> -->
             <!-- <enum value="0x85A6" name="GL_MIN_RED_SGIS"/> -->
@@ -7781,17 +7780,17 @@
             <!-- <enum value="0x85AB" name="GL_MAX_BLUE_SGIS"/> -->
             <!-- <enum value="0x85AC" name="GL_MIN_ALPHA_SGIS"/> -->
             <!-- <enum value="0x85AD" name="GL_MAX_ALPHA_SGIS"/> -->
-        <enum value="0x85AE" name="GL_PERTURB_EXT"/>
+        <enum value="0x85AE" name="GL_PERTURB_EXT" group="TextureNormalModeEXT"/>
         <enum value="0x85AF" name="GL_TEXTURE_NORMAL_EXT"/>
     </enums>
 
     <enums namespace="GL" start="0x85B0" end="0x85BF" vendor="APPLE">
         <enum value="0x85B0" name="GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE"/>
-        <enum value="0x85B1" name="GL_TRANSFORM_HINT_APPLE"/>
+        <enum value="0x85B1" name="GL_TRANSFORM_HINT_APPLE" group="HintTarget"/>
         <enum value="0x85B2" name="GL_UNPACK_CLIENT_STORAGE_APPLE"/>
         <enum value="0x85B3" name="GL_BUFFER_OBJECT_APPLE"/>
-        <enum value="0x85B4" name="GL_STORAGE_CLIENT_APPLE"/>
-        <enum value="0x85B5" name="GL_VERTEX_ARRAY_BINDING"/>
+        <enum value="0x85B4" name="GL_STORAGE_CLIENT_APPLE" group="VertexArrayPNameAPPLE"/>
+        <enum value="0x85B5" name="GL_VERTEX_ARRAY_BINDING" group="GetPName"/>
         <enum value="0x85B5" name="GL_VERTEX_ARRAY_BINDING_APPLE"/>
         <enum value="0x85B5" name="GL_VERTEX_ARRAY_BINDING_OES"/>
             <unused start="0x85B6" vendor="APPLE" comment="Unknown extension (Khronos bug 632)"/>
@@ -7803,10 +7802,10 @@
         <enum value="0x85BA" name="GL_UNSIGNED_SHORT_8_8_MESA"/>
         <enum value="0x85BB" name="GL_UNSIGNED_SHORT_8_8_REV_APPLE"/>
         <enum value="0x85BB" name="GL_UNSIGNED_SHORT_8_8_REV_MESA"/>
-        <enum value="0x85BC" name="GL_TEXTURE_STORAGE_HINT_APPLE"/>
+        <enum value="0x85BC" name="GL_TEXTURE_STORAGE_HINT_APPLE" group="HintTarget"/>
         <enum value="0x85BD" name="GL_STORAGE_PRIVATE_APPLE"/>
-        <enum value="0x85BE" name="GL_STORAGE_CACHED_APPLE"/>
-        <enum value="0x85BF" name="GL_STORAGE_SHARED_APPLE"/>
+        <enum value="0x85BE" name="GL_STORAGE_CACHED_APPLE" group="VertexArrayPNameAPPLE"/>
+        <enum value="0x85BF" name="GL_STORAGE_SHARED_APPLE" group="VertexArrayPNameAPPLE"/>
     </enums>
 
     <enums namespace="GL" start="0x85C0" end="0x85CF" vendor="SUN">
@@ -7874,26 +7873,26 @@
     </enums>
 
     <enums namespace="GL" start="0x8620" end="0x867F" vendor="NV">
-        <enum value="0x8620" name="GL_VERTEX_PROGRAM_ARB"/>
+        <enum value="0x8620" name="GL_VERTEX_PROGRAM_ARB" group="ProgramTarget"/>
         <enum value="0x8620" name="GL_VERTEX_PROGRAM_NV"/>
         <enum value="0x8621" name="GL_VERTEX_STATE_PROGRAM_NV"/>
-        <enum value="0x8622" name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
+        <enum value="0x8622" name="GL_VERTEX_ATTRIB_ARRAY_ENABLED" group="VertexAttribEnum,VertexAttribPropertyARB,VertexArrayPName"/>
         <enum value="0x8622" name="GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB"/>
         <enum value="0x8623" name="GL_ATTRIB_ARRAY_SIZE_NV"/>
-        <enum value="0x8623" name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
+        <enum value="0x8623" name="GL_VERTEX_ATTRIB_ARRAY_SIZE" group="VertexAttribEnum,VertexAttribPropertyARB,VertexArrayPName"/>
         <enum value="0x8623" name="GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB"/>
         <enum value="0x8624" name="GL_ATTRIB_ARRAY_STRIDE_NV"/>
-        <enum value="0x8624" name="GL_VERTEX_ATTRIB_ARRAY_STRIDE"/>
+        <enum value="0x8624" name="GL_VERTEX_ATTRIB_ARRAY_STRIDE" group="VertexAttribEnum,VertexAttribPropertyARB,VertexArrayPName"/>
         <enum value="0x8624" name="GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB"/>
         <enum value="0x8625" name="GL_ATTRIB_ARRAY_TYPE_NV"/>
-        <enum value="0x8625" name="GL_VERTEX_ATTRIB_ARRAY_TYPE"/>
+        <enum value="0x8625" name="GL_VERTEX_ATTRIB_ARRAY_TYPE" group="VertexAttribEnum,VertexAttribPropertyARB,VertexArrayPName"/>
         <enum value="0x8625" name="GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB"/>
         <enum value="0x8626" name="GL_CURRENT_ATTRIB_NV"/>
-        <enum value="0x8626" name="GL_CURRENT_VERTEX_ATTRIB"/>
+        <enum value="0x8626" name="GL_CURRENT_VERTEX_ATTRIB" group="VertexAttribEnum,VertexAttribPropertyARB"/>
         <enum value="0x8626" name="GL_CURRENT_VERTEX_ATTRIB_ARB"/>
         <enum value="0x8627" name="GL_PROGRAM_LENGTH_ARB"/>
         <enum value="0x8627" name="GL_PROGRAM_LENGTH_NV"/>
-        <enum value="0x8628" name="GL_PROGRAM_STRING_ARB"/>
+        <enum value="0x8628" name="GL_PROGRAM_STRING_ARB" group="ProgramStringProperty"/>
         <enum value="0x8628" name="GL_PROGRAM_STRING_NV"/>
         <enum value="0x8629" name="GL_MODELVIEW_PROJECTION_NV"/>
         <enum value="0x862A" name="GL_IDENTITY_NV"/>
@@ -7928,16 +7927,16 @@
         <enum value="0x8642" name="GL_VERTEX_PROGRAM_POINT_SIZE"/>
         <enum value="0x8642" name="GL_VERTEX_PROGRAM_POINT_SIZE_ARB"/>
         <enum value="0x8642" name="GL_VERTEX_PROGRAM_POINT_SIZE_NV"/>
-        <enum value="0x8642" name="GL_PROGRAM_POINT_SIZE" alias="GL_VERTEX_PROGRAM_POINT_SIZE"/>
+        <enum value="0x8642" name="GL_PROGRAM_POINT_SIZE" alias="GL_VERTEX_PROGRAM_POINT_SIZE" group="GetPName,EnableCap"/>
         <enum value="0x8642" name="GL_PROGRAM_POINT_SIZE_ARB"/>
         <enum value="0x8642" name="GL_PROGRAM_POINT_SIZE_EXT"/>
         <enum value="0x8643" name="GL_VERTEX_PROGRAM_TWO_SIDE"/>
         <enum value="0x8643" name="GL_VERTEX_PROGRAM_TWO_SIDE_ARB"/>
         <enum value="0x8643" name="GL_VERTEX_PROGRAM_TWO_SIDE_NV"/>
-        <enum value="0x8644" name="GL_PROGRAM_PARAMETER_NV"/>
+        <enum value="0x8644" name="GL_PROGRAM_PARAMETER_NV" group="VertexAttribEnumNV"/>
         <enum value="0x8645" name="GL_ATTRIB_ARRAY_POINTER_NV"/>
-        <enum value="0x8645" name="GL_VERTEX_ATTRIB_ARRAY_POINTER"/>
-        <enum value="0x8645" name="GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB"/>
+        <enum value="0x8645" name="GL_VERTEX_ATTRIB_ARRAY_POINTER" group="VertexAttribPointerPropertyARB"/>
+        <enum value="0x8645" name="GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB" group="VertexAttribPointerPropertyARB"/>
         <enum value="0x8646" name="GL_PROGRAM_TARGET_NV"/>
         <enum value="0x8647" name="GL_PROGRAM_RESIDENT_NV"/>
         <enum value="0x8648" name="GL_TRACK_MATRIX_NV"/>
@@ -7948,7 +7947,7 @@
         <enum value="0x864C" name="GL_OFFSET_TEXTURE_RECTANGLE_NV"/>
         <enum value="0x864D" name="GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV"/>
         <enum value="0x864E" name="GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV"/>
-        <enum value="0x864F" name="GL_DEPTH_CLAMP"/>
+        <enum value="0x864F" name="GL_DEPTH_CLAMP" group="EnableCap"/>
         <enum value="0x864F" name="GL_DEPTH_CLAMP_NV"/>
         <enum value="0x864F" name="GL_DEPTH_CLAMP_EXT"/>
         <enum value="0x8650" name="GL_VERTEX_ATTRIB_ARRAY0_NV"/>
@@ -8009,11 +8008,11 @@
     <enums namespace="GL" start="0x86A0" end="0x86AF" vendor="ARB">
         <enum value="0x86A0" name="GL_TEXTURE_COMPRESSED_IMAGE_SIZE"/>
         <enum value="0x86A0" name="GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB"/>
-        <enum value="0x86A1" name="GL_TEXTURE_COMPRESSED"/>
+        <enum value="0x86A1" name="GL_TEXTURE_COMPRESSED" group="InternalFormatPName"/>
         <enum value="0x86A1" name="GL_TEXTURE_COMPRESSED_ARB"/>
-        <enum value="0x86A2" name="GL_NUM_COMPRESSED_TEXTURE_FORMATS"/>
+        <enum value="0x86A2" name="GL_NUM_COMPRESSED_TEXTURE_FORMATS" group="GetPName"/>
         <enum value="0x86A2" name="GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB"/>
-        <enum value="0x86A3" name="GL_COMPRESSED_TEXTURE_FORMATS"/>
+        <enum value="0x86A3" name="GL_COMPRESSED_TEXTURE_FORMATS" group="GetPName"/>
         <enum value="0x86A3" name="GL_COMPRESSED_TEXTURE_FORMATS_ARB"/>
         <enum value="0x86A4" name="GL_MAX_VERTEX_UNITS_ARB"/>
         <enum value="0x86A4" name="GL_MAX_VERTEX_UNITS_OES"/>
@@ -8048,11 +8047,11 @@
     </enums>
 
     <enums namespace="GL" start="0x86C0" end="0x871F" vendor="NV">
-        <enum value="0x86C0" name="GL_EVAL_2D_NV"/>
-        <enum value="0x86C1" name="GL_EVAL_TRIANGULAR_2D_NV"/>
-        <enum value="0x86C2" name="GL_MAP_TESSELLATION_NV"/>
-        <enum value="0x86C3" name="GL_MAP_ATTRIB_U_ORDER_NV"/>
-        <enum value="0x86C4" name="GL_MAP_ATTRIB_V_ORDER_NV"/>
+        <enum value="0x86C0" name="GL_EVAL_2D_NV" group="EvalTargetNV"/>
+        <enum value="0x86C1" name="GL_EVAL_TRIANGULAR_2D_NV" group="EvalTargetNV"/>
+        <enum value="0x86C2" name="GL_MAP_TESSELLATION_NV" group="MapParameterNV"/>
+        <enum value="0x86C3" name="GL_MAP_ATTRIB_U_ORDER_NV" group="MapAttribParameterNV"/>
+        <enum value="0x86C4" name="GL_MAP_ATTRIB_V_ORDER_NV" group="MapAttribParameterNV"/>
         <enum value="0x86C5" name="GL_EVAL_FRACTIONAL_TESSELLATION_NV"/>
         <enum value="0x86C6" name="GL_EVAL_VERTEX_ATTRIB0_NV"/>
         <enum value="0x86C7" name="GL_EVAL_VERTEX_ATTRIB1_NV"/>
@@ -8188,7 +8187,7 @@
         <enum value="0x8740" name="GL_Z400_BINARY_AMD" comment="NOT an alias. Accidental reuse of GL_DOT3_RGB_EXT"/>
         <enum value="0x8741" name="GL_DOT3_RGBA_EXT"/>
         <enum value="0x8741" name="GL_PROGRAM_BINARY_LENGTH_OES" comment="NOT an alias. Accidental reuse of GL_DOT3_RGBA_EXT"/>
-        <enum value="0x8741" name="GL_PROGRAM_BINARY_LENGTH"/>
+        <enum value="0x8741" name="GL_PROGRAM_BINARY_LENGTH" group="ProgramPropertyARB"/>
         <enum value="0x8742" name="GL_MIRROR_CLAMP_ATI"/>
         <enum value="0x8742" name="GL_MIRROR_CLAMP_EXT"/>
         <enum value="0x8743" name="GL_MIRROR_CLAMP_TO_EDGE"/>
@@ -8202,12 +8201,12 @@
         <enum value="0x874B" name="GL_REPLACE_VALUE_AMD"/>
         <enum value="0x874C" name="GL_STENCIL_OP_VALUE_AMD"/>
         <enum value="0x874D" name="GL_STENCIL_BACK_OP_VALUE_AMD"/>
-        <enum value="0x874E" name="GL_VERTEX_ATTRIB_ARRAY_LONG"/>
+        <enum value="0x874E" name="GL_VERTEX_ATTRIB_ARRAY_LONG" group="VertexArrayPName,VertexAttribPropertyARB"/>
         <enum value="0x874F" name="GL_OCCLUSION_QUERY_EVENT_MASK_AMD"/>
     </enums>
 
     <enums namespace="GL" start="0x8750" end="0x875F" vendor="MESA">
-        <enum value="0x8750" name="GL_DEPTH_STENCIL_MESA"/>
+        <enum value="0x8750" name="GL_DEPTH_STENCIL_MESA" group="InternalFormat"/>
         <enum value="0x8751" name="GL_UNSIGNED_INT_24_8_MESA"/>
         <enum value="0x8752" name="GL_UNSIGNED_INT_8_24_REV_MESA"/>
         <enum value="0x8753" name="GL_UNSIGNED_SHORT_15_1_MESA"/>
@@ -8229,35 +8228,35 @@
     </enums>
 
     <enums namespace="GL" start="0x8760" end="0x883F" vendor="AMD">
-        <enum value="0x8760" name="GL_STATIC_ATI"/>
-        <enum value="0x8761" name="GL_DYNAMIC_ATI"/>
-        <enum value="0x8762" name="GL_PRESERVE_ATI"/>
-        <enum value="0x8763" name="GL_DISCARD_ATI"/>
-        <enum value="0x8764" name="GL_BUFFER_SIZE"/>
-        <enum value="0x8764" name="GL_BUFFER_SIZE_ARB"/>
-        <enum value="0x8764" name="GL_OBJECT_BUFFER_SIZE_ATI"/>
-        <enum value="0x8765" name="GL_BUFFER_USAGE"/>
-        <enum value="0x8765" name="GL_BUFFER_USAGE_ARB"/>
-        <enum value="0x8765" name="GL_OBJECT_BUFFER_USAGE_ATI"/>
+        <enum value="0x8760" name="GL_STATIC_ATI" group="ArrayObjectUsageATI"/>
+        <enum value="0x8761" name="GL_DYNAMIC_ATI" group="ArrayObjectUsageATI"/>
+        <enum value="0x8762" name="GL_PRESERVE_ATI" group="PreserveModeATI"/>
+        <enum value="0x8763" name="GL_DISCARD_ATI" group="PreserveModeATI"/>
+        <enum value="0x8764" name="GL_BUFFER_SIZE" group="VertexBufferObjectParameter,BufferPNameARB"/>
+        <enum value="0x8764" name="GL_BUFFER_SIZE_ARB" group="BufferPNameARB"/>
+        <enum value="0x8764" name="GL_OBJECT_BUFFER_SIZE_ATI" group="ArrayObjectPNameATI"/>
+        <enum value="0x8765" name="GL_BUFFER_USAGE" group="VertexBufferObjectParameter,BufferPNameARB"/>
+        <enum value="0x8765" name="GL_BUFFER_USAGE_ARB" group="BufferPNameARB"/>
+        <enum value="0x8765" name="GL_OBJECT_BUFFER_USAGE_ATI" group="ArrayObjectPNameATI"/>
         <enum value="0x8766" name="GL_ARRAY_OBJECT_BUFFER_ATI"/>
         <enum value="0x8767" name="GL_ARRAY_OBJECT_OFFSET_ATI"/>
         <enum value="0x8768" name="GL_ELEMENT_ARRAY_ATI"/>
         <enum value="0x8769" name="GL_ELEMENT_ARRAY_TYPE_ATI"/>
         <enum value="0x876A" name="GL_ELEMENT_ARRAY_POINTER_ATI"/>
         <enum value="0x876B" name="GL_MAX_VERTEX_STREAMS_ATI"/>
-        <enum value="0x876C" name="GL_VERTEX_STREAM0_ATI"/>
-        <enum value="0x876D" name="GL_VERTEX_STREAM1_ATI"/>
-        <enum value="0x876E" name="GL_VERTEX_STREAM2_ATI"/>
-        <enum value="0x876F" name="GL_VERTEX_STREAM3_ATI"/>
-        <enum value="0x8770" name="GL_VERTEX_STREAM4_ATI"/>
-        <enum value="0x8771" name="GL_VERTEX_STREAM5_ATI"/>
-        <enum value="0x8772" name="GL_VERTEX_STREAM6_ATI"/>
-        <enum value="0x8773" name="GL_VERTEX_STREAM7_ATI"/>
+        <enum value="0x876C" name="GL_VERTEX_STREAM0_ATI" group="VertexStreamATI"/>
+        <enum value="0x876D" name="GL_VERTEX_STREAM1_ATI" group="VertexStreamATI"/>
+        <enum value="0x876E" name="GL_VERTEX_STREAM2_ATI" group="VertexStreamATI"/>
+        <enum value="0x876F" name="GL_VERTEX_STREAM3_ATI" group="VertexStreamATI"/>
+        <enum value="0x8770" name="GL_VERTEX_STREAM4_ATI" group="VertexStreamATI"/>
+        <enum value="0x8771" name="GL_VERTEX_STREAM5_ATI" group="VertexStreamATI"/>
+        <enum value="0x8772" name="GL_VERTEX_STREAM6_ATI" group="VertexStreamATI"/>
+        <enum value="0x8773" name="GL_VERTEX_STREAM7_ATI" group="VertexStreamATI"/>
         <enum value="0x8774" name="GL_VERTEX_SOURCE_ATI"/>
-        <enum value="0x8775" name="GL_BUMP_ROT_MATRIX_ATI"/>
-        <enum value="0x8776" name="GL_BUMP_ROT_MATRIX_SIZE_ATI"/>
-        <enum value="0x8777" name="GL_BUMP_NUM_TEX_UNITS_ATI"/>
-        <enum value="0x8778" name="GL_BUMP_TEX_UNITS_ATI"/>
+        <enum value="0x8775" name="GL_BUMP_ROT_MATRIX_ATI" group="GetTexBumpParameterATI"/>
+        <enum value="0x8776" name="GL_BUMP_ROT_MATRIX_SIZE_ATI" group="GetTexBumpParameterATI"/>
+        <enum value="0x8777" name="GL_BUMP_NUM_TEX_UNITS_ATI" group="GetTexBumpParameterATI"/>
+        <enum value="0x8778" name="GL_BUMP_TEX_UNITS_ATI" group="GetTexBumpParameterATI"/>
         <enum value="0x8779" name="GL_DUDV_ATI"/>
         <enum value="0x877A" name="GL_DU8DV8_ATI"/>
         <enum value="0x877B" name="GL_BUMP_ENVMAP_ATI"/>
@@ -8265,30 +8264,30 @@
             <unused start="0x877D" end="0x877F" vendor="AMD"/>
         <enum value="0x8780" name="GL_VERTEX_SHADER_EXT"/>
         <enum value="0x8781" name="GL_VERTEX_SHADER_BINDING_EXT"/>
-        <enum value="0x8782" name="GL_OP_INDEX_EXT"/>
-        <enum value="0x8783" name="GL_OP_NEGATE_EXT"/>
-        <enum value="0x8784" name="GL_OP_DOT3_EXT"/>
-        <enum value="0x8785" name="GL_OP_DOT4_EXT"/>
-        <enum value="0x8786" name="GL_OP_MUL_EXT"/>
-        <enum value="0x8787" name="GL_OP_ADD_EXT"/>
-        <enum value="0x8788" name="GL_OP_MADD_EXT"/>
-        <enum value="0x8789" name="GL_OP_FRAC_EXT"/>
-        <enum value="0x878A" name="GL_OP_MAX_EXT"/>
-        <enum value="0x878B" name="GL_OP_MIN_EXT"/>
-        <enum value="0x878C" name="GL_OP_SET_GE_EXT"/>
-        <enum value="0x878D" name="GL_OP_SET_LT_EXT"/>
-        <enum value="0x878E" name="GL_OP_CLAMP_EXT"/>
-        <enum value="0x878F" name="GL_OP_FLOOR_EXT"/>
-        <enum value="0x8790" name="GL_OP_ROUND_EXT"/>
-        <enum value="0x8791" name="GL_OP_EXP_BASE_2_EXT"/>
-        <enum value="0x8792" name="GL_OP_LOG_BASE_2_EXT"/>
-        <enum value="0x8793" name="GL_OP_POWER_EXT"/>
-        <enum value="0x8794" name="GL_OP_RECIP_EXT"/>
-        <enum value="0x8795" name="GL_OP_RECIP_SQRT_EXT"/>
-        <enum value="0x8796" name="GL_OP_SUB_EXT"/>
-        <enum value="0x8797" name="GL_OP_CROSS_PRODUCT_EXT"/>
-        <enum value="0x8798" name="GL_OP_MULTIPLY_MATRIX_EXT"/>
-        <enum value="0x8799" name="GL_OP_MOV_EXT"/>
+        <enum value="0x8782" name="GL_OP_INDEX_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x8783" name="GL_OP_NEGATE_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x8784" name="GL_OP_DOT3_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x8785" name="GL_OP_DOT4_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x8786" name="GL_OP_MUL_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x8787" name="GL_OP_ADD_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x8788" name="GL_OP_MADD_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x8789" name="GL_OP_FRAC_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x878A" name="GL_OP_MAX_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x878B" name="GL_OP_MIN_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x878C" name="GL_OP_SET_GE_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x878D" name="GL_OP_SET_LT_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x878E" name="GL_OP_CLAMP_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x878F" name="GL_OP_FLOOR_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x8790" name="GL_OP_ROUND_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x8791" name="GL_OP_EXP_BASE_2_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x8792" name="GL_OP_LOG_BASE_2_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x8793" name="GL_OP_POWER_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x8794" name="GL_OP_RECIP_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x8795" name="GL_OP_RECIP_SQRT_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x8796" name="GL_OP_SUB_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x8797" name="GL_OP_CROSS_PRODUCT_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x8798" name="GL_OP_MULTIPLY_MATRIX_EXT" group="VertexShaderOpEXT"/>
+        <enum value="0x8799" name="GL_OP_MOV_EXT" group="VertexShaderOpEXT"/>
         <enum value="0x879A" name="GL_OUTPUT_VERTEX_EXT"/>
         <enum value="0x879B" name="GL_OUTPUT_COLOR0_EXT"/>
         <enum value="0x879C" name="GL_OUTPUT_COLOR1_EXT"/>
@@ -8325,13 +8324,13 @@
         <enum value="0x87BB" name="GL_OUTPUT_TEXTURE_COORD30_EXT"/>
         <enum value="0x87BC" name="GL_OUTPUT_TEXTURE_COORD31_EXT"/>
         <enum value="0x87BD" name="GL_OUTPUT_FOG_EXT"/>
-        <enum value="0x87BE" name="GL_SCALAR_EXT"/>
-        <enum value="0x87BF" name="GL_VECTOR_EXT"/>
-        <enum value="0x87C0" name="GL_MATRIX_EXT"/>
-        <enum value="0x87C1" name="GL_VARIANT_EXT"/>
-        <enum value="0x87C2" name="GL_INVARIANT_EXT"/>
-        <enum value="0x87C3" name="GL_LOCAL_CONSTANT_EXT"/>
-        <enum value="0x87C4" name="GL_LOCAL_EXT"/>
+        <enum value="0x87BE" name="GL_SCALAR_EXT" group="DataTypeEXT"/>
+        <enum value="0x87BF" name="GL_VECTOR_EXT" group="DataTypeEXT"/>
+        <enum value="0x87C0" name="GL_MATRIX_EXT" group="DataTypeEXT"/>
+        <enum value="0x87C1" name="GL_VARIANT_EXT" group="VertexShaderStorageTypeEXT"/>
+        <enum value="0x87C2" name="GL_INVARIANT_EXT" group="VertexShaderStorageTypeEXT"/>
+        <enum value="0x87C3" name="GL_LOCAL_CONSTANT_EXT" group="VertexShaderStorageTypeEXT"/>
+        <enum value="0x87C4" name="GL_LOCAL_EXT" group="VertexShaderStorageTypeEXT"/>
         <enum value="0x87C5" name="GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT"/>
         <enum value="0x87C6" name="GL_MAX_VERTEX_SHADER_VARIANTS_EXT"/>
         <enum value="0x87C7" name="GL_MAX_VERTEX_SHADER_INVARIANTS_EXT"/>
@@ -8348,26 +8347,26 @@
         <enum value="0x87D2" name="GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"/>
         <enum value="0x87D3" name="GL_VERTEX_SHADER_LOCALS_EXT"/>
         <enum value="0x87D4" name="GL_VERTEX_SHADER_OPTIMIZED_EXT"/>
-        <enum value="0x87D5" name="GL_X_EXT"/>
-        <enum value="0x87D6" name="GL_Y_EXT"/>
-        <enum value="0x87D7" name="GL_Z_EXT"/>
-        <enum value="0x87D8" name="GL_W_EXT"/>
-        <enum value="0x87D9" name="GL_NEGATIVE_X_EXT"/>
-        <enum value="0x87DA" name="GL_NEGATIVE_Y_EXT"/>
-        <enum value="0x87DB" name="GL_NEGATIVE_Z_EXT"/>
-        <enum value="0x87DC" name="GL_NEGATIVE_W_EXT"/>
-        <enum value="0x87DD" name="GL_ZERO_EXT"/>
-        <enum value="0x87DE" name="GL_ONE_EXT"/>
-        <enum value="0x87DF" name="GL_NEGATIVE_ONE_EXT"/>
-        <enum value="0x87E0" name="GL_NORMALIZED_RANGE_EXT"/>
-        <enum value="0x87E1" name="GL_FULL_RANGE_EXT"/>
-        <enum value="0x87E2" name="GL_CURRENT_VERTEX_EXT"/>
-        <enum value="0x87E3" name="GL_MVP_MATRIX_EXT"/>
-        <enum value="0x87E4" name="GL_VARIANT_VALUE_EXT"/>
-        <enum value="0x87E5" name="GL_VARIANT_DATATYPE_EXT"/>
-        <enum value="0x87E6" name="GL_VARIANT_ARRAY_STRIDE_EXT"/>
-        <enum value="0x87E7" name="GL_VARIANT_ARRAY_TYPE_EXT"/>
-        <enum value="0x87E8" name="GL_VARIANT_ARRAY_EXT"/>
+        <enum value="0x87D5" name="GL_X_EXT" group="VertexShaderCoordOutEXT"/>
+        <enum value="0x87D6" name="GL_Y_EXT" group="VertexShaderCoordOutEXT"/>
+        <enum value="0x87D7" name="GL_Z_EXT" group="VertexShaderCoordOutEXT"/>
+        <enum value="0x87D8" name="GL_W_EXT" group="VertexShaderCoordOutEXT"/>
+        <enum value="0x87D9" name="GL_NEGATIVE_X_EXT" group="VertexShaderCoordOutEXT"/>
+        <enum value="0x87DA" name="GL_NEGATIVE_Y_EXT" group="VertexShaderCoordOutEXT"/>
+        <enum value="0x87DB" name="GL_NEGATIVE_Z_EXT" group="VertexShaderCoordOutEXT"/>
+        <enum value="0x87DC" name="GL_NEGATIVE_W_EXT" group="VertexShaderCoordOutEXT"/>
+        <enum value="0x87DD" name="GL_ZERO_EXT" group="VertexShaderCoordOutEXT"/>
+        <enum value="0x87DE" name="GL_ONE_EXT" group="VertexShaderCoordOutEXT"/>
+        <enum value="0x87DF" name="GL_NEGATIVE_ONE_EXT" group="VertexShaderCoordOutEXT"/>
+        <enum value="0x87E0" name="GL_NORMALIZED_RANGE_EXT" group="ParameterRangeEXT"/>
+        <enum value="0x87E1" name="GL_FULL_RANGE_EXT" group="ParameterRangeEXT"/>
+        <enum value="0x87E2" name="GL_CURRENT_VERTEX_EXT" group="VertexShaderParameterEXT"/>
+        <enum value="0x87E3" name="GL_MVP_MATRIX_EXT" group="VertexShaderParameterEXT"/>
+        <enum value="0x87E4" name="GL_VARIANT_VALUE_EXT" group="GetVariantValueEXT"/>
+        <enum value="0x87E5" name="GL_VARIANT_DATATYPE_EXT" group="GetVariantValueEXT"/>
+        <enum value="0x87E6" name="GL_VARIANT_ARRAY_STRIDE_EXT" group="GetVariantValueEXT"/>
+        <enum value="0x87E7" name="GL_VARIANT_ARRAY_TYPE_EXT" group="GetVariantValueEXT"/>
+        <enum value="0x87E8" name="GL_VARIANT_ARRAY_EXT" group="VariantCapEXT"/>
         <enum value="0x87E9" name="GL_VARIANT_ARRAY_POINTER_EXT"/>
         <enum value="0x87EA" name="GL_INVARIANT_VALUE_EXT"/>
         <enum value="0x87EB" name="GL_INVARIANT_DATATYPE_EXT"/>
@@ -8376,9 +8375,9 @@
         <enum value="0x87EE" name="GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD"/>
         <enum value="0x87F0" name="GL_PN_TRIANGLES_ATI"/>
         <enum value="0x87F1" name="GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI"/>
-        <enum value="0x87F2" name="GL_PN_TRIANGLES_POINT_MODE_ATI"/>
-        <enum value="0x87F3" name="GL_PN_TRIANGLES_NORMAL_MODE_ATI"/>
-        <enum value="0x87F4" name="GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI"/>
+        <enum value="0x87F2" name="GL_PN_TRIANGLES_POINT_MODE_ATI" group="PNTrianglesPNameATI"/>
+        <enum value="0x87F3" name="GL_PN_TRIANGLES_NORMAL_MODE_ATI" group="PNTrianglesPNameATI"/>
+        <enum value="0x87F4" name="GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI" group="PNTrianglesPNameATI"/>
         <enum value="0x87F5" name="GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI"/>
         <enum value="0x87F6" name="GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI"/>
         <enum value="0x87F7" name="GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI"/>
@@ -8388,19 +8387,19 @@
         <enum value="0x87FB" name="GL_VBO_FREE_MEMORY_ATI"/>
         <enum value="0x87FC" name="GL_TEXTURE_FREE_MEMORY_ATI"/>
         <enum value="0x87FD" name="GL_RENDERBUFFER_FREE_MEMORY_ATI"/>
-        <enum value="0x87FE" name="GL_NUM_PROGRAM_BINARY_FORMATS"/>
+        <enum value="0x87FE" name="GL_NUM_PROGRAM_BINARY_FORMATS" group="GetPName"/>
         <enum value="0x87FE" name="GL_NUM_PROGRAM_BINARY_FORMATS_OES"/>
-        <enum value="0x87FF" name="GL_PROGRAM_BINARY_FORMATS"/>
+        <enum value="0x87FF" name="GL_PROGRAM_BINARY_FORMATS" group="GetPName"/>
         <enum value="0x87FF" name="GL_PROGRAM_BINARY_FORMATS_OES"/>
-        <enum value="0x8800" name="GL_STENCIL_BACK_FUNC"/>
+        <enum value="0x8800" name="GL_STENCIL_BACK_FUNC" group="GetPName"/>
         <enum value="0x8800" name="GL_STENCIL_BACK_FUNC_ATI"/>
-        <enum value="0x8801" name="GL_STENCIL_BACK_FAIL"/>
+        <enum value="0x8801" name="GL_STENCIL_BACK_FAIL" group="GetPName"/>
         <enum value="0x8801" name="GL_STENCIL_BACK_FAIL_ATI"/>
-        <enum value="0x8802" name="GL_STENCIL_BACK_PASS_DEPTH_FAIL"/>
+        <enum value="0x8802" name="GL_STENCIL_BACK_PASS_DEPTH_FAIL" group="GetPName"/>
         <enum value="0x8802" name="GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI"/>
-        <enum value="0x8803" name="GL_STENCIL_BACK_PASS_DEPTH_PASS"/>
+        <enum value="0x8803" name="GL_STENCIL_BACK_PASS_DEPTH_PASS" group="GetPName"/>
         <enum value="0x8803" name="GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI"/>
-        <enum value="0x8804" name="GL_FRAGMENT_PROGRAM_ARB"/>
+        <enum value="0x8804" name="GL_FRAGMENT_PROGRAM_ARB" group="ProgramTarget"/>
         <enum value="0x8805" name="GL_PROGRAM_ALU_INSTRUCTIONS_ARB"/>
         <enum value="0x8806" name="GL_PROGRAM_TEX_INSTRUCTIONS_ARB"/>
         <enum value="0x8807" name="GL_PROGRAM_TEX_INDIRECTIONS_ARB"/>
@@ -8414,12 +8413,12 @@
         <enum value="0x880F" name="GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB"/>
         <enum value="0x8810" name="GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB"/>
             <unused start="0x8811" end="0x8813" vendor="AMD"/>
-        <enum value="0x8814" name="GL_RGBA32F"/>
-        <enum value="0x8814" name="GL_RGBA32F_ARB"/>
-        <enum value="0x8814" name="GL_RGBA32F_EXT"/>
+        <enum value="0x8814" name="GL_RGBA32F" group="InternalFormat"/>
+        <enum value="0x8814" name="GL_RGBA32F_ARB" group="InternalFormat"/>
+        <enum value="0x8814" name="GL_RGBA32F_EXT" group="InternalFormat"/>
         <enum value="0x8814" name="GL_RGBA_FLOAT32_APPLE"/>
         <enum value="0x8814" name="GL_RGBA_FLOAT32_ATI"/>
-        <enum value="0x8815" name="GL_RGB32F"/>
+        <enum value="0x8815" name="GL_RGB32F" group="InternalFormat"/>
         <enum value="0x8815" name="GL_RGB32F_ARB"/>
         <enum value="0x8815" name="GL_RGB32F_EXT"/>
         <enum value="0x8815" name="GL_RGB_FLOAT32_APPLE"/>
@@ -8439,14 +8438,14 @@
         <enum value="0x8819" name="GL_LUMINANCE_ALPHA32F_EXT"/>
         <enum value="0x8819" name="GL_LUMINANCE_ALPHA_FLOAT32_APPLE"/>
         <enum value="0x8819" name="GL_LUMINANCE_ALPHA_FLOAT32_ATI"/>
-        <enum value="0x881A" name="GL_RGBA16F"/>
-        <enum value="0x881A" name="GL_RGBA16F_ARB"/>
-        <enum value="0x881A" name="GL_RGBA16F_EXT"/>
+        <enum value="0x881A" name="GL_RGBA16F" group="InternalFormat"/>
+        <enum value="0x881A" name="GL_RGBA16F_ARB" group="InternalFormat"/>
+        <enum value="0x881A" name="GL_RGBA16F_EXT" group="InternalFormat"/>
         <enum value="0x881A" name="GL_RGBA_FLOAT16_APPLE"/>
         <enum value="0x881A" name="GL_RGBA_FLOAT16_ATI"/>
-        <enum value="0x881B" name="GL_RGB16F"/>
-        <enum value="0x881B" name="GL_RGB16F_ARB"/>
-        <enum value="0x881B" name="GL_RGB16F_EXT"/>
+        <enum value="0x881B" name="GL_RGB16F" group="InternalFormat"/>
+        <enum value="0x881B" name="GL_RGB16F_ARB" group="InternalFormat"/>
+        <enum value="0x881B" name="GL_RGB16F_EXT" group="InternalFormat"/>
         <enum value="0x881B" name="GL_RGB_FLOAT16_APPLE"/>
         <enum value="0x881B" name="GL_RGB_FLOAT16_ATI"/>
         <enum value="0x881C" name="GL_ALPHA16F_ARB"/>
@@ -8469,7 +8468,7 @@
         <enum value="0x8820" name="GL_RGBA_FLOAT_MODE_ATI"/>
             <unused start="0x8821" end="0x8822" vendor="AMD"/>
         <enum value="0x8823" name="GL_WRITEONLY_RENDERING_QCOM"/>
-        <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS"/>
+        <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS" group="GetPName"/>
         <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS_ARB"/>
         <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS_ATI"/>
         <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS_EXT"/>
@@ -8558,7 +8557,7 @@
             <unused start="0x8836" vendor="AMD"/>
         <enum value="0x8837" name="GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI" comment="Defined by Mesa but not ATI"/>
             <unused start="0x8838" end="0x883C" vendor="AMD"/>
-        <enum value="0x883D" name="GL_BLEND_EQUATION_ALPHA"/>
+        <enum value="0x883D" name="GL_BLEND_EQUATION_ALPHA" group="GetPName"/>
         <enum value="0x883D" name="GL_BLEND_EQUATION_ALPHA_EXT"/>
         <enum value="0x883D" name="GL_BLEND_EQUATION_ALPHA_OES"/>
             <unused start="0x883E" vendor="AMD"/>
@@ -8588,18 +8587,18 @@
         <enum value="0x884A" name="GL_TEXTURE_DEPTH_SIZE_ARB"/>
         <enum value="0x884B" name="GL_DEPTH_TEXTURE_MODE"/>
         <enum value="0x884B" name="GL_DEPTH_TEXTURE_MODE_ARB"/>
-        <enum value="0x884C" name="GL_TEXTURE_COMPARE_MODE"/>
+        <enum value="0x884C" name="GL_TEXTURE_COMPARE_MODE" group="SamplerParameterI,TextureParameterName"/>
         <enum value="0x884C" name="GL_TEXTURE_COMPARE_MODE_ARB"/>
         <enum value="0x884C" name="GL_TEXTURE_COMPARE_MODE_EXT"/>
-        <enum value="0x884D" name="GL_TEXTURE_COMPARE_FUNC"/>
+        <enum value="0x884D" name="GL_TEXTURE_COMPARE_FUNC" group="SamplerParameterI,TextureParameterName"/>
         <enum value="0x884D" name="GL_TEXTURE_COMPARE_FUNC_ARB"/>
         <enum value="0x884D" name="GL_TEXTURE_COMPARE_FUNC_EXT"/>
-        <enum value="0x884E" name="GL_COMPARE_R_TO_TEXTURE"/>
+        <enum value="0x884E" name="GL_COMPARE_R_TO_TEXTURE" group="TextureCompareMode"/>
         <enum value="0x884E" name="GL_COMPARE_R_TO_TEXTURE_ARB"/>
         <enum value="0x884E" name="GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT"/>
-        <enum value="0x884E" name="GL_COMPARE_REF_TO_TEXTURE" alias="GL_COMPARE_R_TO_TEXTURE"/>
+        <enum value="0x884E" name="GL_COMPARE_REF_TO_TEXTURE" alias="GL_COMPARE_R_TO_TEXTURE" group="TextureCompareMode"/>
         <enum value="0x884E" name="GL_COMPARE_REF_TO_TEXTURE_EXT"/>
-        <enum value="0x884F" name="GL_TEXTURE_CUBE_MAP_SEAMLESS"/>
+        <enum value="0x884F" name="GL_TEXTURE_CUBE_MAP_SEAMLESS" group="EnableCap"/>
     </enums>
 
     <enums namespace="GL" start="0x8850" end="0x891F" vendor="NV">
@@ -8630,25 +8629,25 @@
         <enum value="0x8862" name="GL_COORD_REPLACE_OES"/>
         <enum value="0x8863" name="GL_POINT_SPRITE_R_MODE_NV"/>
         <enum value="0x8864" name="GL_PIXEL_COUNTER_BITS_NV"/>
-        <enum value="0x8864" name="GL_QUERY_COUNTER_BITS"/>
+        <enum value="0x8864" name="GL_QUERY_COUNTER_BITS" group="QueryParameterName"/>
         <enum value="0x8864" name="GL_QUERY_COUNTER_BITS_ARB"/>
         <enum value="0x8864" name="GL_QUERY_COUNTER_BITS_EXT"/>
         <enum value="0x8865" name="GL_CURRENT_OCCLUSION_QUERY_ID_NV"/>
-        <enum value="0x8865" name="GL_CURRENT_QUERY"/>
+        <enum value="0x8865" name="GL_CURRENT_QUERY" group="QueryParameterName"/>
         <enum value="0x8865" name="GL_CURRENT_QUERY_ARB"/>
         <enum value="0x8865" name="GL_CURRENT_QUERY_EXT"/>
-        <enum value="0x8866" name="GL_PIXEL_COUNT_NV"/>
-        <enum value="0x8866" name="GL_QUERY_RESULT"/>
+        <enum value="0x8866" name="GL_PIXEL_COUNT_NV" group="OcclusionQueryParameterNameNV"/>
+        <enum value="0x8866" name="GL_QUERY_RESULT" group="QueryObjectParameterName"/>
         <enum value="0x8866" name="GL_QUERY_RESULT_ARB"/>
         <enum value="0x8866" name="GL_QUERY_RESULT_EXT"/>
-        <enum value="0x8867" name="GL_PIXEL_COUNT_AVAILABLE_NV"/>
-        <enum value="0x8867" name="GL_QUERY_RESULT_AVAILABLE"/>
+        <enum value="0x8867" name="GL_PIXEL_COUNT_AVAILABLE_NV" group="OcclusionQueryParameterNameNV"/>
+        <enum value="0x8867" name="GL_QUERY_RESULT_AVAILABLE" group="QueryObjectParameterName"/>
         <enum value="0x8867" name="GL_QUERY_RESULT_AVAILABLE_ARB"/>
         <enum value="0x8867" name="GL_QUERY_RESULT_AVAILABLE_EXT"/>
         <enum value="0x8868" name="GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV"/>
-        <enum value="0x8869" name="GL_MAX_VERTEX_ATTRIBS"/>
+        <enum value="0x8869" name="GL_MAX_VERTEX_ATTRIBS" group="GetPName"/>
         <enum value="0x8869" name="GL_MAX_VERTEX_ATTRIBS_ARB"/>
-        <enum value="0x886A" name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED"/>
+        <enum value="0x886A" name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED" group="VertexAttribEnum,VertexAttribPropertyARB,VertexArrayPName"/>
         <enum value="0x886A" name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB"/>
             <unused start="0x886B" vendor="NV"/>
         <enum value="0x886C" name="GL_MAX_TESS_CONTROL_INPUT_COMPONENTS"/>
@@ -8663,17 +8662,17 @@
         <enum value="0x8871" name="GL_MAX_TEXTURE_COORDS"/>
         <enum value="0x8871" name="GL_MAX_TEXTURE_COORDS_ARB"/>
         <enum value="0x8871" name="GL_MAX_TEXTURE_COORDS_NV"/>
-        <enum value="0x8872" name="GL_MAX_TEXTURE_IMAGE_UNITS"/>
+        <enum value="0x8872" name="GL_MAX_TEXTURE_IMAGE_UNITS" group="GetPName"/>
         <enum value="0x8872" name="GL_MAX_TEXTURE_IMAGE_UNITS_ARB"/>
         <enum value="0x8872" name="GL_MAX_TEXTURE_IMAGE_UNITS_NV"/>
         <enum value="0x8873" name="GL_FRAGMENT_PROGRAM_BINDING_NV"/>
         <enum value="0x8874" name="GL_PROGRAM_ERROR_STRING_ARB"/>
         <enum value="0x8874" name="GL_PROGRAM_ERROR_STRING_NV"/>
-        <enum value="0x8875" name="GL_PROGRAM_FORMAT_ASCII_ARB"/>
+        <enum value="0x8875" name="GL_PROGRAM_FORMAT_ASCII_ARB" group="ProgramFormat"/>
         <enum value="0x8876" name="GL_PROGRAM_FORMAT_ARB"/>
             <unused start="0x8877" vendor="NV" comment="Should have been assigned to PROGRAM_BINDING_ARB"/>
-        <enum value="0x8878" name="GL_WRITE_PIXEL_DATA_RANGE_NV"/>
-        <enum value="0x8879" name="GL_READ_PIXEL_DATA_RANGE_NV"/>
+        <enum value="0x8878" name="GL_WRITE_PIXEL_DATA_RANGE_NV" group="PixelDataRangeTargetNV"/>
+        <enum value="0x8879" name="GL_READ_PIXEL_DATA_RANGE_NV" group="PixelDataRangeTargetNV"/>
         <enum value="0x887A" name="GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV"/>
         <enum value="0x887B" name="GL_READ_PIXEL_DATA_RANGE_LENGTH_NV"/>
         <enum value="0x887C" name="GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV"/>
@@ -8700,13 +8699,13 @@
         <enum value="0x888F" name="GL_TEXTURE_UNSIGNED_REMAP_MODE_NV"/>
         <enum value="0x8890" name="GL_DEPTH_BOUNDS_TEST_EXT"/>
         <enum value="0x8891" name="GL_DEPTH_BOUNDS_EXT"/>
-        <enum value="0x8892" name="GL_ARRAY_BUFFER"/>
+        <enum value="0x8892" name="GL_ARRAY_BUFFER" group="CopyBufferSubDataTarget,BufferTargetARB,BufferStorageTarget"/>
         <enum value="0x8892" name="GL_ARRAY_BUFFER_ARB"/>
-        <enum value="0x8893" name="GL_ELEMENT_ARRAY_BUFFER"/>
+        <enum value="0x8893" name="GL_ELEMENT_ARRAY_BUFFER" group="CopyBufferSubDataTarget,BufferTargetARB,BufferStorageTarget"/>
         <enum value="0x8893" name="GL_ELEMENT_ARRAY_BUFFER_ARB"/>
-        <enum value="0x8894" name="GL_ARRAY_BUFFER_BINDING"/>
+        <enum value="0x8894" name="GL_ARRAY_BUFFER_BINDING" group="GetPName"/>
         <enum value="0x8894" name="GL_ARRAY_BUFFER_BINDING_ARB"/>
-        <enum value="0x8895" name="GL_ELEMENT_ARRAY_BUFFER_BINDING"/>
+        <enum value="0x8895" name="GL_ELEMENT_ARRAY_BUFFER_BINDING" group="GetPName"/>
         <enum value="0x8895" name="GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB"/>
         <enum value="0x8896" name="GL_VERTEX_ARRAY_BUFFER_BINDING"/>
         <enum value="0x8896" name="GL_VERTEX_ARRAY_BUFFER_BINDING_ARB"/>
@@ -8728,7 +8727,7 @@
         <enum value="0x889E" name="GL_WEIGHT_ARRAY_BUFFER_BINDING"/>
         <enum value="0x889E" name="GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB"/>
         <enum value="0x889E" name="GL_WEIGHT_ARRAY_BUFFER_BINDING_OES"/>
-        <enum value="0x889F" name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/>
+        <enum value="0x889F" name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING" group="VertexAttribEnum,VertexAttribPropertyARB"/>
         <enum value="0x889F" name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB"/>
         <enum value="0x88A0" name="GL_PROGRAM_INSTRUCTIONS_ARB"/>
         <enum value="0x88A1" name="GL_MAX_PROGRAM_INSTRUCTIONS_ARB"/>
@@ -8754,24 +8753,24 @@
         <enum value="0x88B5" name="GL_MAX_PROGRAM_ENV_PARAMETERS_ARB"/>
         <enum value="0x88B6" name="GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB"/>
         <enum value="0x88B7" name="GL_TRANSPOSE_CURRENT_MATRIX_ARB"/>
-        <enum value="0x88B8" name="GL_READ_ONLY"/>
+        <enum value="0x88B8" name="GL_READ_ONLY" group="BufferAccessARB"/>
         <enum value="0x88B8" name="GL_READ_ONLY_ARB"/>
-        <enum value="0x88B9" name="GL_WRITE_ONLY"/>
+        <enum value="0x88B9" name="GL_WRITE_ONLY" group="BufferAccessARB"/>
         <enum value="0x88B9" name="GL_WRITE_ONLY_ARB"/>
         <enum value="0x88B9" name="GL_WRITE_ONLY_OES"/>
-        <enum value="0x88BA" name="GL_READ_WRITE"/>
+        <enum value="0x88BA" name="GL_READ_WRITE" group="BufferAccessARB"/>
         <enum value="0x88BA" name="GL_READ_WRITE_ARB"/>
-        <enum value="0x88BB" name="GL_BUFFER_ACCESS"/>
-        <enum value="0x88BB" name="GL_BUFFER_ACCESS_ARB"/>
+        <enum value="0x88BB" name="GL_BUFFER_ACCESS" group="VertexBufferObjectParameter,BufferPNameARB"/>
+        <enum value="0x88BB" name="GL_BUFFER_ACCESS_ARB" group="BufferPNameARB"/>
         <enum value="0x88BB" name="GL_BUFFER_ACCESS_OES"/>
-        <enum value="0x88BC" name="GL_BUFFER_MAPPED"/>
-        <enum value="0x88BC" name="GL_BUFFER_MAPPED_ARB"/>
+        <enum value="0x88BC" name="GL_BUFFER_MAPPED" group="VertexBufferObjectParameter,BufferPNameARB"/>
+        <enum value="0x88BC" name="GL_BUFFER_MAPPED_ARB" group="BufferPNameARB"/>
         <enum value="0x88BC" name="GL_BUFFER_MAPPED_OES"/>
-        <enum value="0x88BD" name="GL_BUFFER_MAP_POINTER"/>
-        <enum value="0x88BD" name="GL_BUFFER_MAP_POINTER_ARB"/>
+        <enum value="0x88BD" name="GL_BUFFER_MAP_POINTER" group="BufferPointerNameARB"/>
+        <enum value="0x88BD" name="GL_BUFFER_MAP_POINTER_ARB" group="BufferPointerNameARB"/>
         <enum value="0x88BD" name="GL_BUFFER_MAP_POINTER_OES"/>
         <enum value="0x88BE" name="GL_WRITE_DISCARD_NV"/>
-        <enum value="0x88BF" name="GL_TIME_ELAPSED"/>
+        <enum value="0x88BF" name="GL_TIME_ELAPSED" group="QueryTarget"/>
         <enum value="0x88BF" name="GL_TIME_ELAPSED_EXT"/>
         <enum value="0x88C0" name="GL_MATRIX0_ARB"/>
         <enum value="0x88C1" name="GL_MATRIX1_ARB"/>
@@ -8805,46 +8804,46 @@
         <enum value="0x88DD" name="GL_MATRIX29_ARB"/>
         <enum value="0x88DE" name="GL_MATRIX30_ARB"/>
         <enum value="0x88DF" name="GL_MATRIX31_ARB"/>
-        <enum value="0x88E0" name="GL_STREAM_DRAW"/>
+        <enum value="0x88E0" name="GL_STREAM_DRAW" group="VertexBufferObjectUsage,BufferUsageARB"/>
         <enum value="0x88E0" name="GL_STREAM_DRAW_ARB"/>
-        <enum value="0x88E1" name="GL_STREAM_READ"/>
+        <enum value="0x88E1" name="GL_STREAM_READ" group="VertexBufferObjectUsage,BufferUsageARB"/>
         <enum value="0x88E1" name="GL_STREAM_READ_ARB"/>
-        <enum value="0x88E2" name="GL_STREAM_COPY"/>
+        <enum value="0x88E2" name="GL_STREAM_COPY" group="VertexBufferObjectUsage,BufferUsageARB"/>
         <enum value="0x88E2" name="GL_STREAM_COPY_ARB"/>
             <unused start="0x88E3" vendor="NV" comment="To extend ARB_vbo"/>
-        <enum value="0x88E4" name="GL_STATIC_DRAW"/>
+        <enum value="0x88E4" name="GL_STATIC_DRAW" group="VertexBufferObjectUsage,BufferUsageARB"/>
         <enum value="0x88E4" name="GL_STATIC_DRAW_ARB"/>
-        <enum value="0x88E5" name="GL_STATIC_READ"/>
+        <enum value="0x88E5" name="GL_STATIC_READ" group="VertexBufferObjectUsage,BufferUsageARB"/>
         <enum value="0x88E5" name="GL_STATIC_READ_ARB"/>
-        <enum value="0x88E6" name="GL_STATIC_COPY"/>
+        <enum value="0x88E6" name="GL_STATIC_COPY" group="VertexBufferObjectUsage,BufferUsageARB"/>
         <enum value="0x88E6" name="GL_STATIC_COPY_ARB"/>
             <unused start="0x88E7" vendor="NV" comment="To extend ARB_vbo"/>
-        <enum value="0x88E8" name="GL_DYNAMIC_DRAW"/>
+        <enum value="0x88E8" name="GL_DYNAMIC_DRAW" group="VertexBufferObjectUsage,BufferUsageARB"/>
         <enum value="0x88E8" name="GL_DYNAMIC_DRAW_ARB"/>
-        <enum value="0x88E9" name="GL_DYNAMIC_READ"/>
+        <enum value="0x88E9" name="GL_DYNAMIC_READ" group="VertexBufferObjectUsage,BufferUsageARB"/>
         <enum value="0x88E9" name="GL_DYNAMIC_READ_ARB"/>
-        <enum value="0x88EA" name="GL_DYNAMIC_COPY"/>
+        <enum value="0x88EA" name="GL_DYNAMIC_COPY" group="VertexBufferObjectUsage,BufferUsageARB"/>
         <enum value="0x88EA" name="GL_DYNAMIC_COPY_ARB"/>
-        <enum value="0x88EB" name="GL_PIXEL_PACK_BUFFER"/>
+        <enum value="0x88EB" name="GL_PIXEL_PACK_BUFFER" group="CopyBufferSubDataTarget,BufferTargetARB,BufferStorageTarget"/>
         <enum value="0x88EB" name="GL_PIXEL_PACK_BUFFER_ARB"/>
         <enum value="0x88EB" name="GL_PIXEL_PACK_BUFFER_EXT"/>
         <enum value="0x88EB" name="GL_PIXEL_PACK_BUFFER_NV"/>
-        <enum value="0x88EC" name="GL_PIXEL_UNPACK_BUFFER"/>
+        <enum value="0x88EC" name="GL_PIXEL_UNPACK_BUFFER" group="CopyBufferSubDataTarget,BufferTargetARB,BufferStorageTarget"/>
         <enum value="0x88EC" name="GL_PIXEL_UNPACK_BUFFER_ARB"/>
         <enum value="0x88EC" name="GL_PIXEL_UNPACK_BUFFER_EXT"/>
         <enum value="0x88EC" name="GL_PIXEL_UNPACK_BUFFER_NV"/>
-        <enum value="0x88ED" name="GL_PIXEL_PACK_BUFFER_BINDING"/>
+        <enum value="0x88ED" name="GL_PIXEL_PACK_BUFFER_BINDING" group="GetPName"/>
         <enum value="0x88ED" name="GL_PIXEL_PACK_BUFFER_BINDING_ARB"/>
         <enum value="0x88ED" name="GL_PIXEL_PACK_BUFFER_BINDING_EXT"/>
         <enum value="0x88ED" name="GL_PIXEL_PACK_BUFFER_BINDING_NV"/>
         <enum value="0x88EE" name="GL_ETC1_SRGB8_NV"/>
-        <enum value="0x88EF" name="GL_PIXEL_UNPACK_BUFFER_BINDING"/>
+        <enum value="0x88EF" name="GL_PIXEL_UNPACK_BUFFER_BINDING" group="GetPName"/>
         <enum value="0x88EF" name="GL_PIXEL_UNPACK_BUFFER_BINDING_ARB"/>
         <enum value="0x88EF" name="GL_PIXEL_UNPACK_BUFFER_BINDING_EXT"/>
         <enum value="0x88EF" name="GL_PIXEL_UNPACK_BUFFER_BINDING_NV"/>
-        <enum value="0x88F0" name="GL_DEPTH24_STENCIL8"/>
-        <enum value="0x88F0" name="GL_DEPTH24_STENCIL8_EXT"/>
-        <enum value="0x88F0" name="GL_DEPTH24_STENCIL8_OES"/>
+        <enum value="0x88F0" name="GL_DEPTH24_STENCIL8" group="InternalFormat"/>
+        <enum value="0x88F0" name="GL_DEPTH24_STENCIL8_EXT" group="InternalFormat"/>
+        <enum value="0x88F0" name="GL_DEPTH24_STENCIL8_OES" group="InternalFormat"/>
         <enum value="0x88F1" name="GL_TEXTURE_STENCIL_SIZE"/>
         <enum value="0x88F1" name="GL_TEXTURE_STENCIL_SIZE_EXT"/>
         <enum value="0x88F2" name="GL_STENCIL_TAG_BITS_EXT"/>
@@ -8854,28 +8853,28 @@
         <enum value="0x88F6" name="GL_MAX_PROGRAM_IF_DEPTH_NV"/>
         <enum value="0x88F7" name="GL_MAX_PROGRAM_LOOP_DEPTH_NV"/>
         <enum value="0x88F8" name="GL_MAX_PROGRAM_LOOP_COUNT_NV"/>
-        <enum value="0x88F9" name="GL_SRC1_COLOR"/>
+        <enum value="0x88F9" name="GL_SRC1_COLOR" group="BlendingFactor"/>
         <enum value="0x88F9" name="GL_SRC1_COLOR_EXT"/>
-        <enum value="0x88FA" name="GL_ONE_MINUS_SRC1_COLOR"/>
+        <enum value="0x88FA" name="GL_ONE_MINUS_SRC1_COLOR" group="BlendingFactor"/>
         <enum value="0x88FA" name="GL_ONE_MINUS_SRC1_COLOR_EXT"/>
-        <enum value="0x88FB" name="GL_ONE_MINUS_SRC1_ALPHA"/>
+        <enum value="0x88FB" name="GL_ONE_MINUS_SRC1_ALPHA" group="BlendingFactor"/>
         <enum value="0x88FB" name="GL_ONE_MINUS_SRC1_ALPHA_EXT"/>
-        <enum value="0x88FC" name="GL_MAX_DUAL_SOURCE_DRAW_BUFFERS"/>
+        <enum value="0x88FC" name="GL_MAX_DUAL_SOURCE_DRAW_BUFFERS" group="GetPName"/>
         <enum value="0x88FC" name="GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT"/>
-        <enum value="0x88FD" name="GL_VERTEX_ATTRIB_ARRAY_INTEGER"/>
-        <enum value="0x88FD" name="GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT"/>
+        <enum value="0x88FD" name="GL_VERTEX_ATTRIB_ARRAY_INTEGER" group="VertexAttribEnum,VertexAttribPropertyARB,VertexArrayPName"/>
+        <enum value="0x88FD" name="GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT" group="VertexAttribPropertyARB"/>
         <enum value="0x88FD" name="GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV"/>
-        <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR"/>
+        <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR" group="VertexAttribEnum,VertexAttribPropertyARB,VertexArrayPName"/>
         <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE"/>
         <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB"/>
         <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT"/>
         <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV"/>
-        <enum value="0x88FF" name="GL_MAX_ARRAY_TEXTURE_LAYERS"/>
+        <enum value="0x88FF" name="GL_MAX_ARRAY_TEXTURE_LAYERS" group="GetPName"/>
         <enum value="0x88FF" name="GL_MAX_ARRAY_TEXTURE_LAYERS_EXT"/>
-        <enum value="0x8904" name="GL_MIN_PROGRAM_TEXEL_OFFSET"/>
+        <enum value="0x8904" name="GL_MIN_PROGRAM_TEXEL_OFFSET" group="GetPName"/>
         <enum value="0x8904" name="GL_MIN_PROGRAM_TEXEL_OFFSET_EXT"/>
         <enum value="0x8904" name="GL_MIN_PROGRAM_TEXEL_OFFSET_NV"/>
-        <enum value="0x8905" name="GL_MAX_PROGRAM_TEXEL_OFFSET"/>
+        <enum value="0x8905" name="GL_MAX_PROGRAM_TEXEL_OFFSET" group="GetPName"/>
         <enum value="0x8905" name="GL_MAX_PROGRAM_TEXEL_OFFSET_EXT"/>
         <enum value="0x8905" name="GL_MAX_PROGRAM_TEXEL_OFFSET_NV"/>
         <enum value="0x8906" name="GL_PROGRAM_ATTRIB_COMPONENTS_NV"/>
@@ -8886,29 +8885,29 @@
         <enum value="0x8911" name="GL_ACTIVE_STENCIL_FACE_EXT"/>
         <enum value="0x8912" name="GL_MIRROR_CLAMP_TO_BORDER_EXT"/>
             <unused start="0x8913" vendor="NV"/>
-        <enum value="0x8914" name="GL_SAMPLES_PASSED"/>
+        <enum value="0x8914" name="GL_SAMPLES_PASSED" group="QueryTarget"/>
         <enum value="0x8914" name="GL_SAMPLES_PASSED_ARB"/>
             <unused start="0x8915" vendor="NV"/>
-        <enum value="0x8916" name="GL_GEOMETRY_VERTICES_OUT"/>
+        <enum value="0x8916" name="GL_GEOMETRY_VERTICES_OUT" group="ProgramPropertyARB"/>
         <enum value="0x8916" name="GL_GEOMETRY_LINKED_VERTICES_OUT_EXT"/>
         <enum value="0x8916" name="GL_GEOMETRY_LINKED_VERTICES_OUT_OES"/>
-        <enum value="0x8917" name="GL_GEOMETRY_INPUT_TYPE"/>
+        <enum value="0x8917" name="GL_GEOMETRY_INPUT_TYPE" group="ProgramPropertyARB"/>
         <enum value="0x8917" name="GL_GEOMETRY_LINKED_INPUT_TYPE_EXT"/>
         <enum value="0x8917" name="GL_GEOMETRY_LINKED_INPUT_TYPE_OES"/>
-        <enum value="0x8918" name="GL_GEOMETRY_OUTPUT_TYPE"/>
+        <enum value="0x8918" name="GL_GEOMETRY_OUTPUT_TYPE" group="ProgramPropertyARB"/>
         <enum value="0x8918" name="GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT"/>
         <enum value="0x8918" name="GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES"/>
-        <enum value="0x8919" name="GL_SAMPLER_BINDING"/>
+        <enum value="0x8919" name="GL_SAMPLER_BINDING" group="GetPName"/>
         <enum value="0x891A" name="GL_CLAMP_VERTEX_COLOR"/>
-        <enum value="0x891A" name="GL_CLAMP_VERTEX_COLOR_ARB"/>
+        <enum value="0x891A" name="GL_CLAMP_VERTEX_COLOR_ARB" group="ClampColorTargetARB"/>
         <enum value="0x891B" name="GL_CLAMP_FRAGMENT_COLOR"/>
-        <enum value="0x891B" name="GL_CLAMP_FRAGMENT_COLOR_ARB"/>
-        <enum value="0x891C" name="GL_CLAMP_READ_COLOR"/>
-        <enum value="0x891C" name="GL_CLAMP_READ_COLOR_ARB"/>
-        <enum value="0x891D" name="GL_FIXED_ONLY"/>
-        <enum value="0x891D" name="GL_FIXED_ONLY_ARB"/>
-        <enum value="0x891E" name="GL_TESS_CONTROL_PROGRAM_NV"/>
-        <enum value="0x891F" name="GL_TESS_EVALUATION_PROGRAM_NV"/>
+        <enum value="0x891B" name="GL_CLAMP_FRAGMENT_COLOR_ARB" group="ClampColorTargetARB"/>
+        <enum value="0x891C" name="GL_CLAMP_READ_COLOR" group="ClampColorTargetARB"/>
+        <enum value="0x891C" name="GL_CLAMP_READ_COLOR_ARB" group="ClampColorTargetARB"/>
+        <enum value="0x891D" name="GL_FIXED_ONLY" group="ClampColorModeARB"/>
+        <enum value="0x891D" name="GL_FIXED_ONLY_ARB" group="ClampColorModeARB"/>
+        <enum value="0x891E" name="GL_TESS_CONTROL_PROGRAM_NV" group="ProgramTarget"/>
+        <enum value="0x891F" name="GL_TESS_EVALUATION_PROGRAM_NV" group="ProgramTarget"/>
     </enums>
 
     <enums namespace="GL" start="0x8920" end="0x897F" vendor="AMD">
@@ -8977,17 +8976,17 @@
         <enum value="0x895E" name="GL_CON_29_ATI"/>
         <enum value="0x895F" name="GL_CON_30_ATI"/>
         <enum value="0x8960" name="GL_CON_31_ATI"/>
-        <enum value="0x8961" name="GL_MOV_ATI"/>
-        <enum value="0x8963" name="GL_ADD_ATI"/>
-        <enum value="0x8964" name="GL_MUL_ATI"/>
-        <enum value="0x8965" name="GL_SUB_ATI"/>
-        <enum value="0x8966" name="GL_DOT3_ATI"/>
-        <enum value="0x8967" name="GL_DOT4_ATI"/>
-        <enum value="0x8968" name="GL_MAD_ATI"/>
-        <enum value="0x8969" name="GL_LERP_ATI"/>
-        <enum value="0x896A" name="GL_CND_ATI"/>
-        <enum value="0x896B" name="GL_CND0_ATI"/>
-        <enum value="0x896C" name="GL_DOT2_ADD_ATI"/>
+        <enum value="0x8961" name="GL_MOV_ATI" group="FragmentOpATI"/>
+        <enum value="0x8963" name="GL_ADD_ATI" group="FragmentOpATI"/>
+        <enum value="0x8964" name="GL_MUL_ATI" group="FragmentOpATI"/>
+        <enum value="0x8965" name="GL_SUB_ATI" group="FragmentOpATI"/>
+        <enum value="0x8966" name="GL_DOT3_ATI" group="FragmentOpATI"/>
+        <enum value="0x8967" name="GL_DOT4_ATI" group="FragmentOpATI"/>
+        <enum value="0x8968" name="GL_MAD_ATI" group="FragmentOpATI"/>
+        <enum value="0x8969" name="GL_LERP_ATI" group="FragmentOpATI"/>
+        <enum value="0x896A" name="GL_CND_ATI" group="FragmentOpATI"/>
+        <enum value="0x896B" name="GL_CND0_ATI" group="FragmentOpATI"/>
+        <enum value="0x896C" name="GL_DOT2_ADD_ATI" group="FragmentOpATI"/>
         <enum value="0x896D" name="GL_SECONDARY_INTERPOLATOR_ATI"/>
         <enum value="0x896E" name="GL_NUM_FRAGMENT_REGISTERS_ATI"/>
         <enum value="0x896F" name="GL_NUM_FRAGMENT_CONSTANTS_ATI"/>
@@ -8997,10 +8996,10 @@
         <enum value="0x8973" name="GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI"/>
         <enum value="0x8974" name="GL_NUM_LOOPBACK_COMPONENTS_ATI"/>
         <enum value="0x8975" name="GL_COLOR_ALPHA_PAIRING_ATI"/>
-        <enum value="0x8976" name="GL_SWIZZLE_STR_ATI"/>
-        <enum value="0x8977" name="GL_SWIZZLE_STQ_ATI"/>
-        <enum value="0x8978" name="GL_SWIZZLE_STR_DR_ATI"/>
-        <enum value="0x8979" name="GL_SWIZZLE_STQ_DQ_ATI"/>
+        <enum value="0x8976" name="GL_SWIZZLE_STR_ATI" group="SwizzleOpATI"/>
+        <enum value="0x8977" name="GL_SWIZZLE_STQ_ATI" group="SwizzleOpATI"/>
+        <enum value="0x8978" name="GL_SWIZZLE_STR_DR_ATI" group="SwizzleOpATI"/>
+        <enum value="0x8979" name="GL_SWIZZLE_STQ_DQ_ATI" group="SwizzleOpATI"/>
         <enum value="0x897A" name="GL_SWIZZLE_STRQ_ATI"/>
         <enum value="0x897B" name="GL_SWIZZLE_STRQ_DQ_ATI"/>
             <unused start="0x897C" end="0x897F" vendor="AMD"/>
@@ -9011,8 +9010,8 @@
         <enum value="0x8981" name="GL_INTERLACE_READ_OML"/>
         <enum value="0x8982" name="GL_FORMAT_SUBSAMPLE_24_24_OML"/>
         <enum value="0x8983" name="GL_FORMAT_SUBSAMPLE_244_244_OML"/>
-        <enum value="0x8984" name="GL_PACK_RESAMPLE_OML"/>
-        <enum value="0x8985" name="GL_UNPACK_RESAMPLE_OML"/>
+        <enum value="0x8984" name="GL_PACK_RESAMPLE_OML" group="PixelStoreParameter"/>
+        <enum value="0x8985" name="GL_UNPACK_RESAMPLE_OML" group="PixelStoreParameter"/>
         <enum value="0x8986" name="GL_RESAMPLE_REPLICATE_OML"/>
         <enum value="0x8987" name="GL_RESAMPLE_ZERO_FILL_OML"/>
         <enum value="0x8988" name="GL_RESAMPLE_AVERAGE_OML"/>
@@ -9044,15 +9043,15 @@
         <enum value="0x8A07" name="GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE"/>
         <enum value="0x8A08" name="GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE"/>
         <enum value="0x8A09" name="GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE"/>
-        <enum value="0x8A0A" name="GL_DRAW_PIXELS_APPLE"/>
-        <enum value="0x8A0B" name="GL_FENCE_APPLE"/>
+        <enum value="0x8A0A" name="GL_DRAW_PIXELS_APPLE" group="ObjectTypeAPPLE"/>
+        <enum value="0x8A0B" name="GL_FENCE_APPLE" group="ObjectTypeAPPLE"/>
         <enum value="0x8A0C" name="GL_ELEMENT_ARRAY_APPLE"/>
         <enum value="0x8A0D" name="GL_ELEMENT_ARRAY_TYPE_APPLE"/>
         <enum value="0x8A0E" name="GL_ELEMENT_ARRAY_POINTER_APPLE"/>
         <enum value="0x8A0F" name="GL_COLOR_FLOAT_APPLE"/>
             <unused start="0x8A10" vendor="APPLE" comment="Unknown extension (Khronos bug 632)"/>
             <!-- <enum value="0x8A10" name="GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE"/> -->
-        <enum value="0x8A11" name="GL_UNIFORM_BUFFER"/>
+        <enum value="0x8A11" name="GL_UNIFORM_BUFFER" group="CopyBufferSubDataTarget,BufferTargetARB,BufferStorageTarget"/>
         <enum value="0x8A12" name="GL_BUFFER_SERIALIZED_MODIFY_APPLE"/>
         <enum value="0x8A13" name="GL_BUFFER_FLUSHING_UNMAP_APPLE"/>
         <enum value="0x8A14" name="GL_AUX_DEPTH_STENCIL_APPLE"/>
@@ -9067,41 +9066,41 @@
             <unused start="0x8A1E" vendor="APPLE"/>
         <enum value="0x8A1F" name="GL_RGB_422_APPLE"/>
             <unused start="0x8A20" end="0x8A27" vendor="APPLE"/>
-        <enum value="0x8A28" name="GL_UNIFORM_BUFFER_BINDING"/>
-        <enum value="0x8A29" name="GL_UNIFORM_BUFFER_START"/>
-        <enum value="0x8A2A" name="GL_UNIFORM_BUFFER_SIZE"/>
-        <enum value="0x8A2B" name="GL_MAX_VERTEX_UNIFORM_BLOCKS"/>
-        <enum value="0x8A2C" name="GL_MAX_GEOMETRY_UNIFORM_BLOCKS"/>
+        <enum value="0x8A28" name="GL_UNIFORM_BUFFER_BINDING" group="GetPName"/>
+        <enum value="0x8A29" name="GL_UNIFORM_BUFFER_START" group="GetPName"/>
+        <enum value="0x8A2A" name="GL_UNIFORM_BUFFER_SIZE" group="GetPName"/>
+        <enum value="0x8A2B" name="GL_MAX_VERTEX_UNIFORM_BLOCKS" group="GetPName"/>
+        <enum value="0x8A2C" name="GL_MAX_GEOMETRY_UNIFORM_BLOCKS" group="GetPName"/>
         <enum value="0x8A2C" name="GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT"/>
         <enum value="0x8A2C" name="GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES"/>
-        <enum value="0x8A2D" name="GL_MAX_FRAGMENT_UNIFORM_BLOCKS"/>
-        <enum value="0x8A2E" name="GL_MAX_COMBINED_UNIFORM_BLOCKS"/>
-        <enum value="0x8A2F" name="GL_MAX_UNIFORM_BUFFER_BINDINGS"/>
-        <enum value="0x8A30" name="GL_MAX_UNIFORM_BLOCK_SIZE"/>
-        <enum value="0x8A31" name="GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS"/>
-        <enum value="0x8A32" name="GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS"/>
+        <enum value="0x8A2D" name="GL_MAX_FRAGMENT_UNIFORM_BLOCKS" group="GetPName"/>
+        <enum value="0x8A2E" name="GL_MAX_COMBINED_UNIFORM_BLOCKS" group="GetPName"/>
+        <enum value="0x8A2F" name="GL_MAX_UNIFORM_BUFFER_BINDINGS" group="GetPName"/>
+        <enum value="0x8A30" name="GL_MAX_UNIFORM_BLOCK_SIZE" group="GetPName"/>
+        <enum value="0x8A31" name="GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS" group="GetPName"/>
+        <enum value="0x8A32" name="GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS" group="GetPName"/>
         <enum value="0x8A32" name="GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT"/>
         <enum value="0x8A32" name="GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES"/>
-        <enum value="0x8A33" name="GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS"/>
-        <enum value="0x8A34" name="GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT"/>
-        <enum value="0x8A35" name="GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH"/>
-        <enum value="0x8A36" name="GL_ACTIVE_UNIFORM_BLOCKS"/>
-        <enum value="0x8A37" name="GL_UNIFORM_TYPE"/>
-        <enum value="0x8A38" name="GL_UNIFORM_SIZE"/>
-        <enum value="0x8A39" name="GL_UNIFORM_NAME_LENGTH"/>
-        <enum value="0x8A3A" name="GL_UNIFORM_BLOCK_INDEX"/>
-        <enum value="0x8A3B" name="GL_UNIFORM_OFFSET"/>
-        <enum value="0x8A3C" name="GL_UNIFORM_ARRAY_STRIDE"/>
-        <enum value="0x8A3D" name="GL_UNIFORM_MATRIX_STRIDE"/>
-        <enum value="0x8A3E" name="GL_UNIFORM_IS_ROW_MAJOR"/>
-        <enum value="0x8A3F" name="GL_UNIFORM_BLOCK_BINDING"/>
-        <enum value="0x8A40" name="GL_UNIFORM_BLOCK_DATA_SIZE"/>
-        <enum value="0x8A41" name="GL_UNIFORM_BLOCK_NAME_LENGTH"/>
-        <enum value="0x8A42" name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS"/>
-        <enum value="0x8A43" name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES"/>
-        <enum value="0x8A44" name="GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER"/>
-        <enum value="0x8A45" name="GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER"/>
-        <enum value="0x8A46" name="GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER"/>
+        <enum value="0x8A33" name="GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS" group="GetPName"/>
+        <enum value="0x8A34" name="GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT" group="GetPName"/>
+        <enum value="0x8A35" name="GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH" group="ProgramPropertyARB"/>
+        <enum value="0x8A36" name="GL_ACTIVE_UNIFORM_BLOCKS" group="ProgramPropertyARB"/>
+        <enum value="0x8A37" name="GL_UNIFORM_TYPE" group="UniformPName"/>
+        <enum value="0x8A38" name="GL_UNIFORM_SIZE" group="SubroutineParameterName,UniformPName"/>
+        <enum value="0x8A39" name="GL_UNIFORM_NAME_LENGTH" group="SubroutineParameterName,UniformPName"/>
+        <enum value="0x8A3A" name="GL_UNIFORM_BLOCK_INDEX" group="UniformPName"/>
+        <enum value="0x8A3B" name="GL_UNIFORM_OFFSET" group="UniformPName"/>
+        <enum value="0x8A3C" name="GL_UNIFORM_ARRAY_STRIDE" group="UniformPName"/>
+        <enum value="0x8A3D" name="GL_UNIFORM_MATRIX_STRIDE" group="UniformPName"/>
+        <enum value="0x8A3E" name="GL_UNIFORM_IS_ROW_MAJOR" group="UniformPName"/>
+        <enum value="0x8A3F" name="GL_UNIFORM_BLOCK_BINDING" group="UniformBlockPName"/>
+        <enum value="0x8A40" name="GL_UNIFORM_BLOCK_DATA_SIZE" group="UniformBlockPName"/>
+        <enum value="0x8A41" name="GL_UNIFORM_BLOCK_NAME_LENGTH" group="UniformBlockPName"/>
+        <enum value="0x8A42" name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS" group="UniformBlockPName"/>
+        <enum value="0x8A43" name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES" group="UniformBlockPName"/>
+        <enum value="0x8A44" name="GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER" group="UniformBlockPName"/>
+        <enum value="0x8A45" name="GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER" group="UniformBlockPName"/>
+        <enum value="0x8A46" name="GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER" group="UniformBlockPName"/>
             <unused start="0x8A47" vendor="APPLE"/>
         <enum value="0x8A48" name="GL_TEXTURE_SRGB_DECODE_EXT"/>
         <enum value="0x8A49" name="GL_DECODE_EXT"/>
@@ -9128,10 +9127,10 @@
     </enums>
 
     <enums namespace="GL" start="0x8B30" end="0x8B3F" group="ShaderType" vendor="ARB">
-        <enum value="0x8B30" name="GL_FRAGMENT_SHADER"/>
-        <enum value="0x8B30" name="GL_FRAGMENT_SHADER_ARB"/>
-        <enum value="0x8B31" name="GL_VERTEX_SHADER"/>
-        <enum value="0x8B31" name="GL_VERTEX_SHADER_ARB"/>
+        <enum value="0x8B30" name="GL_FRAGMENT_SHADER" group="PipelineParameterName,ShaderType"/>
+        <enum value="0x8B30" name="GL_FRAGMENT_SHADER_ARB" group="ShaderType"/>
+        <enum value="0x8B31" name="GL_VERTEX_SHADER" group="PipelineParameterName,ShaderType"/>
+        <enum value="0x8B31" name="GL_VERTEX_SHADER_ARB" group="ShaderType"/>
             <unused start="0x8B32" end="0x8B3F" comment="For shader types"/>
     </enums>
 
@@ -9144,112 +9143,112 @@
     <enums namespace="GL" start="0x8B48" end="0x8B4F" vendor="ARB">
         <enum value="0x8B48" name="GL_SHADER_OBJECT_ARB"/>
         <enum value="0x8B48" name="GL_SHADER_OBJECT_EXT"/>
-        <enum value="0x8B49" name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS"/>
+        <enum value="0x8B49" name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS" group="GetPName"/>
         <enum value="0x8B49" name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB"/>
-        <enum value="0x8B4A" name="GL_MAX_VERTEX_UNIFORM_COMPONENTS"/>
+        <enum value="0x8B4A" name="GL_MAX_VERTEX_UNIFORM_COMPONENTS" group="GetPName"/>
         <enum value="0x8B4A" name="GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB"/>
-        <enum value="0x8B4B" name="GL_MAX_VARYING_FLOATS"/>
-        <enum value="0x8B4B" name="GL_MAX_VARYING_COMPONENTS" alias="MAX_VARYING_FLOATS"/>
+        <enum value="0x8B4B" name="GL_MAX_VARYING_FLOATS" group="GetPName"/>
+        <enum value="0x8B4B" name="GL_MAX_VARYING_COMPONENTS" alias="MAX_VARYING_FLOATS" group="GetPName"/>
         <enum value="0x8B4B" name="GL_MAX_VARYING_COMPONENTS_EXT"/>
         <enum value="0x8B4B" name="GL_MAX_VARYING_FLOATS_ARB"/>
-        <enum value="0x8B4C" name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS"/>
+        <enum value="0x8B4C" name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS" group="GetPName"/>
         <enum value="0x8B4C" name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB"/>
-        <enum value="0x8B4D" name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS"/>
+        <enum value="0x8B4D" name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS" group="GetPName"/>
         <enum value="0x8B4D" name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB"/>
         <enum value="0x8B4E" name="GL_OBJECT_TYPE_ARB"/>
-        <enum value="0x8B4F" name="GL_SHADER_TYPE"/>
+        <enum value="0x8B4F" name="GL_SHADER_TYPE" group="ShaderParameterName"/>
         <enum value="0x8B4F" name="GL_OBJECT_SUBTYPE_ARB"/>
     </enums>
 
     <enums namespace="GL" start="0x8B50" end="0x8B7F" group="AttributeType" vendor="ARB">
-        <enum value="0x8B50" name="GL_FLOAT_VEC2"/>
-        <enum value="0x8B50" name="GL_FLOAT_VEC2_ARB"/>
-        <enum value="0x8B51" name="GL_FLOAT_VEC3"/>
-        <enum value="0x8B51" name="GL_FLOAT_VEC3_ARB"/>
-        <enum value="0x8B52" name="GL_FLOAT_VEC4"/>
-        <enum value="0x8B52" name="GL_FLOAT_VEC4_ARB"/>
-        <enum value="0x8B53" name="GL_INT_VEC2"/>
-        <enum value="0x8B53" name="GL_INT_VEC2_ARB"/>
-        <enum value="0x8B54" name="GL_INT_VEC3"/>
-        <enum value="0x8B54" name="GL_INT_VEC3_ARB"/>
-        <enum value="0x8B55" name="GL_INT_VEC4"/>
-        <enum value="0x8B55" name="GL_INT_VEC4_ARB"/>
-        <enum value="0x8B56" name="GL_BOOL"/>
-        <enum value="0x8B56" name="GL_BOOL_ARB"/>
-        <enum value="0x8B57" name="GL_BOOL_VEC2"/>
-        <enum value="0x8B57" name="GL_BOOL_VEC2_ARB"/>
-        <enum value="0x8B58" name="GL_BOOL_VEC3"/>
-        <enum value="0x8B58" name="GL_BOOL_VEC3_ARB"/>
-        <enum value="0x8B59" name="GL_BOOL_VEC4"/>
-        <enum value="0x8B59" name="GL_BOOL_VEC4_ARB"/>
-        <enum value="0x8B5A" name="GL_FLOAT_MAT2"/>
-        <enum value="0x8B5A" name="GL_FLOAT_MAT2_ARB"/>
-        <enum value="0x8B5B" name="GL_FLOAT_MAT3"/>
-        <enum value="0x8B5B" name="GL_FLOAT_MAT3_ARB"/>
-        <enum value="0x8B5C" name="GL_FLOAT_MAT4"/>
-        <enum value="0x8B5C" name="GL_FLOAT_MAT4_ARB"/>
-        <enum value="0x8B5D" name="GL_SAMPLER_1D"/>
-        <enum value="0x8B5D" name="GL_SAMPLER_1D_ARB"/>
-        <enum value="0x8B5E" name="GL_SAMPLER_2D"/>
-        <enum value="0x8B5E" name="GL_SAMPLER_2D_ARB"/>
-        <enum value="0x8B5F" name="GL_SAMPLER_3D"/>
-        <enum value="0x8B5F" name="GL_SAMPLER_3D_ARB"/>
-        <enum value="0x8B5F" name="GL_SAMPLER_3D_OES"/>
-        <enum value="0x8B60" name="GL_SAMPLER_CUBE"/>
-        <enum value="0x8B60" name="GL_SAMPLER_CUBE_ARB"/>
-        <enum value="0x8B61" name="GL_SAMPLER_1D_SHADOW"/>
-        <enum value="0x8B61" name="GL_SAMPLER_1D_SHADOW_ARB"/>
-        <enum value="0x8B62" name="GL_SAMPLER_2D_SHADOW"/>
-        <enum value="0x8B62" name="GL_SAMPLER_2D_SHADOW_ARB"/>
-        <enum value="0x8B62" name="GL_SAMPLER_2D_SHADOW_EXT"/>
-        <enum value="0x8B63" name="GL_SAMPLER_2D_RECT"/>
-        <enum value="0x8B63" name="GL_SAMPLER_2D_RECT_ARB"/>
-        <enum value="0x8B64" name="GL_SAMPLER_2D_RECT_SHADOW"/>
-        <enum value="0x8B64" name="GL_SAMPLER_2D_RECT_SHADOW_ARB"/>
-        <enum value="0x8B65" name="GL_FLOAT_MAT2x3"/>
-        <enum value="0x8B65" name="GL_FLOAT_MAT2x3_NV"/>
-        <enum value="0x8B66" name="GL_FLOAT_MAT2x4"/>
-        <enum value="0x8B66" name="GL_FLOAT_MAT2x4_NV"/>
-        <enum value="0x8B67" name="GL_FLOAT_MAT3x2"/>
-        <enum value="0x8B67" name="GL_FLOAT_MAT3x2_NV"/>
-        <enum value="0x8B68" name="GL_FLOAT_MAT3x4"/>
-        <enum value="0x8B68" name="GL_FLOAT_MAT3x4_NV"/>
-        <enum value="0x8B69" name="GL_FLOAT_MAT4x2"/>
-        <enum value="0x8B69" name="GL_FLOAT_MAT4x2_NV"/>
-        <enum value="0x8B6A" name="GL_FLOAT_MAT4x3"/>
-        <enum value="0x8B6A" name="GL_FLOAT_MAT4x3_NV"/>
+        <enum value="0x8B50" name="GL_FLOAT_VEC2" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B50" name="GL_FLOAT_VEC2_ARB" group="AttributeType"/>
+        <enum value="0x8B51" name="GL_FLOAT_VEC3" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B51" name="GL_FLOAT_VEC3_ARB" group="AttributeType"/>
+        <enum value="0x8B52" name="GL_FLOAT_VEC4" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B52" name="GL_FLOAT_VEC4_ARB" group="AttributeType"/>
+        <enum value="0x8B53" name="GL_INT_VEC2" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B53" name="GL_INT_VEC2_ARB" group="AttributeType"/>
+        <enum value="0x8B54" name="GL_INT_VEC3" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B54" name="GL_INT_VEC3_ARB" group="AttributeType"/>
+        <enum value="0x8B55" name="GL_INT_VEC4" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B55" name="GL_INT_VEC4_ARB" group="AttributeType"/>
+        <enum value="0x8B56" name="GL_BOOL" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B56" name="GL_BOOL_ARB" group="AttributeType"/>
+        <enum value="0x8B57" name="GL_BOOL_VEC2" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B57" name="GL_BOOL_VEC2_ARB" group="AttributeType"/>
+        <enum value="0x8B58" name="GL_BOOL_VEC3" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B58" name="GL_BOOL_VEC3_ARB" group="AttributeType"/>
+        <enum value="0x8B59" name="GL_BOOL_VEC4" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B59" name="GL_BOOL_VEC4_ARB" group="AttributeType"/>
+        <enum value="0x8B5A" name="GL_FLOAT_MAT2" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B5A" name="GL_FLOAT_MAT2_ARB" group="AttributeType"/>
+        <enum value="0x8B5B" name="GL_FLOAT_MAT3" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B5B" name="GL_FLOAT_MAT3_ARB" group="AttributeType"/>
+        <enum value="0x8B5C" name="GL_FLOAT_MAT4" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B5C" name="GL_FLOAT_MAT4_ARB" group="AttributeType"/>
+        <enum value="0x8B5D" name="GL_SAMPLER_1D" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B5D" name="GL_SAMPLER_1D_ARB" group="AttributeType"/>
+        <enum value="0x8B5E" name="GL_SAMPLER_2D" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B5E" name="GL_SAMPLER_2D_ARB" group="AttributeType"/>
+        <enum value="0x8B5F" name="GL_SAMPLER_3D" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B5F" name="GL_SAMPLER_3D_ARB" group="AttributeType"/>
+        <enum value="0x8B5F" name="GL_SAMPLER_3D_OES" group="AttributeType"/>
+        <enum value="0x8B60" name="GL_SAMPLER_CUBE" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B60" name="GL_SAMPLER_CUBE_ARB" group="AttributeType"/>
+        <enum value="0x8B61" name="GL_SAMPLER_1D_SHADOW" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B61" name="GL_SAMPLER_1D_SHADOW_ARB" group="AttributeType"/>
+        <enum value="0x8B62" name="GL_SAMPLER_2D_SHADOW" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B62" name="GL_SAMPLER_2D_SHADOW_ARB" group="AttributeType"/>
+        <enum value="0x8B62" name="GL_SAMPLER_2D_SHADOW_EXT" group="AttributeType"/>
+        <enum value="0x8B63" name="GL_SAMPLER_2D_RECT" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B63" name="GL_SAMPLER_2D_RECT_ARB" group="AttributeType"/>
+        <enum value="0x8B64" name="GL_SAMPLER_2D_RECT_SHADOW" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B64" name="GL_SAMPLER_2D_RECT_SHADOW_ARB" group="AttributeType"/>
+        <enum value="0x8B65" name="GL_FLOAT_MAT2x3" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B65" name="GL_FLOAT_MAT2x3_NV" group="AttributeType"/>
+        <enum value="0x8B66" name="GL_FLOAT_MAT2x4" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B66" name="GL_FLOAT_MAT2x4_NV" group="AttributeType"/>
+        <enum value="0x8B67" name="GL_FLOAT_MAT3x2" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B67" name="GL_FLOAT_MAT3x2_NV" group="AttributeType"/>
+        <enum value="0x8B68" name="GL_FLOAT_MAT3x4" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B68" name="GL_FLOAT_MAT3x4_NV" group="AttributeType"/>
+        <enum value="0x8B69" name="GL_FLOAT_MAT4x2" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B69" name="GL_FLOAT_MAT4x2_NV" group="AttributeType"/>
+        <enum value="0x8B6A" name="GL_FLOAT_MAT4x3" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x8B6A" name="GL_FLOAT_MAT4x3_NV" group="AttributeType"/>
             <unused start="0x8B6B" end="0x8B7F" comment="For attribute types"/>
     </enums>
 
     <enums namespace="GL" start="0x8B80" end="0x8B8F" vendor="ARB">
-        <enum value="0x8B80" name="GL_DELETE_STATUS"/>
+        <enum value="0x8B80" name="GL_DELETE_STATUS" group="ProgramPropertyARB,ShaderParameterName"/>
         <enum value="0x8B80" name="GL_OBJECT_DELETE_STATUS_ARB"/>
-        <enum value="0x8B81" name="GL_COMPILE_STATUS"/>
+        <enum value="0x8B81" name="GL_COMPILE_STATUS" group="ShaderParameterName"/>
         <enum value="0x8B81" name="GL_OBJECT_COMPILE_STATUS_ARB"/>
-        <enum value="0x8B82" name="GL_LINK_STATUS"/>
+        <enum value="0x8B82" name="GL_LINK_STATUS" group="ProgramPropertyARB"/>
         <enum value="0x8B82" name="GL_OBJECT_LINK_STATUS_ARB"/>
-        <enum value="0x8B83" name="GL_VALIDATE_STATUS"/>
+        <enum value="0x8B83" name="GL_VALIDATE_STATUS" group="ProgramPropertyARB"/>
         <enum value="0x8B83" name="GL_OBJECT_VALIDATE_STATUS_ARB"/>
-        <enum value="0x8B84" name="GL_INFO_LOG_LENGTH"/>
+        <enum value="0x8B84" name="GL_INFO_LOG_LENGTH" group="ProgramPropertyARB,ShaderParameterName,PipelineParameterName"/>
         <enum value="0x8B84" name="GL_OBJECT_INFO_LOG_LENGTH_ARB"/>
-        <enum value="0x8B85" name="GL_ATTACHED_SHADERS"/>
+        <enum value="0x8B85" name="GL_ATTACHED_SHADERS" group="ProgramPropertyARB"/>
         <enum value="0x8B85" name="GL_OBJECT_ATTACHED_OBJECTS_ARB"/>
-        <enum value="0x8B86" name="GL_ACTIVE_UNIFORMS"/>
+        <enum value="0x8B86" name="GL_ACTIVE_UNIFORMS" group="ProgramPropertyARB"/>
         <enum value="0x8B86" name="GL_OBJECT_ACTIVE_UNIFORMS_ARB"/>
-        <enum value="0x8B87" name="GL_ACTIVE_UNIFORM_MAX_LENGTH"/>
+        <enum value="0x8B87" name="GL_ACTIVE_UNIFORM_MAX_LENGTH" group="ProgramPropertyARB"/>
         <enum value="0x8B87" name="GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB"/>
-        <enum value="0x8B88" name="GL_SHADER_SOURCE_LENGTH"/>
+        <enum value="0x8B88" name="GL_SHADER_SOURCE_LENGTH" group="ShaderParameterName"/>
         <enum value="0x8B88" name="GL_OBJECT_SHADER_SOURCE_LENGTH_ARB"/>
-        <enum value="0x8B89" name="GL_ACTIVE_ATTRIBUTES"/>
+        <enum value="0x8B89" name="GL_ACTIVE_ATTRIBUTES" group="ProgramPropertyARB"/>
         <enum value="0x8B89" name="GL_OBJECT_ACTIVE_ATTRIBUTES_ARB"/>
-        <enum value="0x8B8A" name="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH"/>
+        <enum value="0x8B8A" name="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH" group="ProgramPropertyARB"/>
         <enum value="0x8B8A" name="GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB"/>
-        <enum value="0x8B8B" name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT"/>
-        <enum value="0x8B8B" name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB"/>
-        <enum value="0x8B8B" name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES"/>
-        <enum value="0x8B8C" name="GL_SHADING_LANGUAGE_VERSION"/>
+        <enum value="0x8B8B" name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT" group="HintTarget,GetPName"/>
+        <enum value="0x8B8B" name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB" group="HintTarget"/>
+        <enum value="0x8B8B" name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES" group="HintTarget"/>
+        <enum value="0x8B8C" name="GL_SHADING_LANGUAGE_VERSION" group="StringName"/>
         <enum value="0x8B8C" name="GL_SHADING_LANGUAGE_VERSION_ARB"/>
-        <enum value="0x8B8D" name="GL_CURRENT_PROGRAM"/>
+        <enum value="0x8B8D" name="GL_CURRENT_PROGRAM" group="GetPName"/>
         <enum value="0x8B8D" api="gl" name="GL_ACTIVE_PROGRAM_EXT" alias="GL_CURRENT_PROGRAM" comment="For the OpenGL version of EXT_separate_shader_objects"/>
             <unused start="0x8B8E" end="0x8B8F" vendor="ARB"/>
     </enums>
@@ -9265,9 +9264,9 @@
         <enum value="0x8B97" name="GL_PALETTE8_R5_G6_B5_OES"/>
         <enum value="0x8B98" name="GL_PALETTE8_RGBA4_OES"/>
         <enum value="0x8B99" name="GL_PALETTE8_RGB5_A1_OES"/>
-        <enum value="0x8B9A" name="GL_IMPLEMENTATION_COLOR_READ_TYPE"/>
+        <enum value="0x8B9A" name="GL_IMPLEMENTATION_COLOR_READ_TYPE" group="GetFramebufferParameter,GetPName"/>
         <enum value="0x8B9A" name="GL_IMPLEMENTATION_COLOR_READ_TYPE_OES"/>
-        <enum value="0x8B9B" name="GL_IMPLEMENTATION_COLOR_READ_FORMAT"/>
+        <enum value="0x8B9B" name="GL_IMPLEMENTATION_COLOR_READ_FORMAT" group="GetFramebufferParameter,GetPName"/>
         <enum value="0x8B9B" name="GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES"/>
         <enum value="0x8B9C" name="GL_POINT_SIZE_ARRAY_OES"/>
         <enum value="0x8B9D" name="GL_TEXTURE_CROP_RECT_OES"/>
@@ -9291,7 +9290,7 @@
         <enum value="0x8BB8" name="GL_TILE_RASTER_ORDER_FIXED_MESA"/>
         <enum value="0x8BB9" name="GL_TILE_RASTER_ORDER_INCREASING_X_MESA"/>
         <enum value="0x8BBA" name="GL_TILE_RASTER_ORDER_INCREASING_Y_MESA"/>
-        <enum value="0x8BBB" name="GL_FRAMEBUFFER_FLIP_Y_MESA" />
+        <enum value="0x8BBB" name="GL_FRAMEBUFFER_FLIP_Y_MESA"/>
     </enums>
 
     <enums namespace="GL" start="0x8BC0" end="0x8BFF" vendor="QCOM" comment="Reassigned from AMD to QCOM">
@@ -9358,38 +9357,38 @@
         <enum value="0x8C17" name="GL_UNSIGNED_NORMALIZED"/>
         <enum value="0x8C17" name="GL_UNSIGNED_NORMALIZED_ARB"/>
         <enum value="0x8C17" name="GL_UNSIGNED_NORMALIZED_EXT"/>
-        <enum value="0x8C18" name="GL_TEXTURE_1D_ARRAY"/>
+        <enum value="0x8C18" name="GL_TEXTURE_1D_ARRAY" group="CopyImageSubDataTarget,TextureTarget"/>
         <enum value="0x8C18" name="GL_TEXTURE_1D_ARRAY_EXT"/>
-        <enum value="0x8C19" name="GL_PROXY_TEXTURE_1D_ARRAY"/>
-        <enum value="0x8C19" name="GL_PROXY_TEXTURE_1D_ARRAY_EXT"/>
-        <enum value="0x8C1A" name="GL_TEXTURE_2D_ARRAY"/>
+        <enum value="0x8C19" name="GL_PROXY_TEXTURE_1D_ARRAY" group="TextureTarget"/>
+        <enum value="0x8C19" name="GL_PROXY_TEXTURE_1D_ARRAY_EXT" group="TextureTarget"/>
+        <enum value="0x8C1A" name="GL_TEXTURE_2D_ARRAY" group="CopyImageSubDataTarget,TextureTarget"/>
         <enum value="0x8C1A" name="GL_TEXTURE_2D_ARRAY_EXT"/>
-        <enum value="0x8C1B" name="GL_PROXY_TEXTURE_2D_ARRAY"/>
-        <enum value="0x8C1B" name="GL_PROXY_TEXTURE_2D_ARRAY_EXT"/>
-        <enum value="0x8C1C" name="GL_TEXTURE_BINDING_1D_ARRAY"/>
+        <enum value="0x8C1B" name="GL_PROXY_TEXTURE_2D_ARRAY" group="TextureTarget"/>
+        <enum value="0x8C1B" name="GL_PROXY_TEXTURE_2D_ARRAY_EXT" group="TextureTarget"/>
+        <enum value="0x8C1C" name="GL_TEXTURE_BINDING_1D_ARRAY" group="GetPName"/>
         <enum value="0x8C1C" name="GL_TEXTURE_BINDING_1D_ARRAY_EXT"/>
-        <enum value="0x8C1D" name="GL_TEXTURE_BINDING_2D_ARRAY"/>
+        <enum value="0x8C1D" name="GL_TEXTURE_BINDING_2D_ARRAY" group="GetPName"/>
         <enum value="0x8C1D" name="GL_TEXTURE_BINDING_2D_ARRAY_EXT"/>
             <unused start="0x8C1E" end="0x8C25" vendor="NV"/>
-        <enum value="0x8C26" name="GL_GEOMETRY_PROGRAM_NV"/>
+        <enum value="0x8C26" name="GL_GEOMETRY_PROGRAM_NV" group="ProgramTarget"/>
         <enum value="0x8C27" name="GL_MAX_PROGRAM_OUTPUT_VERTICES_NV"/>
         <enum value="0x8C28" name="GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV"/>
-        <enum value="0x8C29" name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS"/>
+        <enum value="0x8C29" name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS" group="GetPName"/>
         <enum value="0x8C29" name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB"/>
         <enum value="0x8C29" name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT"/>
         <enum value="0x8C29" name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES"/>
-        <enum value="0x8C2A" name="GL_TEXTURE_BUFFER"/>
+        <enum value="0x8C2A" name="GL_TEXTURE_BUFFER" group="CopyBufferSubDataTarget,BufferTargetARB,BufferStorageTarget"/>
         <enum value="0x8C2A" name="GL_TEXTURE_BUFFER_ARB"/>
         <enum value="0x8C2A" name="GL_TEXTURE_BUFFER_EXT"/>
         <enum value="0x8C2A" name="GL_TEXTURE_BUFFER_OES"/>
         <enum value="0x8C2A" name="GL_TEXTURE_BUFFER_BINDING" comment="Equivalent to GL_TEXTURE_BUFFER_ARB query, but named more consistently"/>
         <enum value="0x8C2A" name="GL_TEXTURE_BUFFER_BINDING_EXT"/>
         <enum value="0x8C2A" name="GL_TEXTURE_BUFFER_BINDING_OES"/>
-        <enum value="0x8C2B" name="GL_MAX_TEXTURE_BUFFER_SIZE"/>
+        <enum value="0x8C2B" name="GL_MAX_TEXTURE_BUFFER_SIZE" group="GetPName"/>
         <enum value="0x8C2B" name="GL_MAX_TEXTURE_BUFFER_SIZE_ARB"/>
         <enum value="0x8C2B" name="GL_MAX_TEXTURE_BUFFER_SIZE_EXT"/>
         <enum value="0x8C2B" name="GL_MAX_TEXTURE_BUFFER_SIZE_OES"/>
-        <enum value="0x8C2C" name="GL_TEXTURE_BINDING_BUFFER"/>
+        <enum value="0x8C2C" name="GL_TEXTURE_BINDING_BUFFER" group="GetPName"/>
         <enum value="0x8C2C" name="GL_TEXTURE_BINDING_BUFFER_ARB"/>
         <enum value="0x8C2C" name="GL_TEXTURE_BINDING_BUFFER_EXT"/>
         <enum value="0x8C2C" name="GL_TEXTURE_BINDING_BUFFER_OES"/>
@@ -9399,40 +9398,40 @@
         <enum value="0x8C2D" name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES"/>
         <enum value="0x8C2E" name="GL_TEXTURE_BUFFER_FORMAT_ARB"/>
         <enum value="0x8C2E" name="GL_TEXTURE_BUFFER_FORMAT_EXT"/>
-        <enum value="0x8C2F" name="GL_ANY_SAMPLES_PASSED"/>
+        <enum value="0x8C2F" name="GL_ANY_SAMPLES_PASSED" group="QueryTarget"/>
         <enum value="0x8C2F" name="GL_ANY_SAMPLES_PASSED_EXT"/>
             <unused start="0x8C30" end="0x8C35" vendor="NV"/>
-        <enum value="0x8C36" name="GL_SAMPLE_SHADING"/>
+        <enum value="0x8C36" name="GL_SAMPLE_SHADING" group="EnableCap"/>
         <enum value="0x8C36" name="GL_SAMPLE_SHADING_ARB"/>
         <enum value="0x8C36" name="GL_SAMPLE_SHADING_OES"/>
         <enum value="0x8C37" name="GL_MIN_SAMPLE_SHADING_VALUE"/>
         <enum value="0x8C37" name="GL_MIN_SAMPLE_SHADING_VALUE_ARB"/>
         <enum value="0x8C37" name="GL_MIN_SAMPLE_SHADING_VALUE_OES"/>
             <unused start="0x8C38" end="0x8C39" vendor="NV"/>
-        <enum value="0x8C3A" name="GL_R11F_G11F_B10F"/>
-        <enum value="0x8C3A" name="GL_R11F_G11F_B10F_APPLE"/>
-        <enum value="0x8C3A" name="GL_R11F_G11F_B10F_EXT"/>
-        <enum value="0x8C3B" name="GL_UNSIGNED_INT_10F_11F_11F_REV"/>
+        <enum value="0x8C3A" name="GL_R11F_G11F_B10F" group="InternalFormat"/>
+        <enum value="0x8C3A" name="GL_R11F_G11F_B10F_APPLE" group="InternalFormat"/>
+        <enum value="0x8C3A" name="GL_R11F_G11F_B10F_EXT" group="InternalFormat"/>
+        <enum value="0x8C3B" name="GL_UNSIGNED_INT_10F_11F_11F_REV" group="VertexAttribPointerType,VertexAttribType"/>
         <enum value="0x8C3B" name="GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE"/>
         <enum value="0x8C3B" name="GL_UNSIGNED_INT_10F_11F_11F_REV_EXT"/>
         <enum value="0x8C3C" name="GL_RGBA_SIGNED_COMPONENTS_EXT"/>
-        <enum value="0x8C3D" name="GL_RGB9_E5"/>
-        <enum value="0x8C3D" name="GL_RGB9_E5_APPLE"/>
-        <enum value="0x8C3D" name="GL_RGB9_E5_EXT"/>
+        <enum value="0x8C3D" name="GL_RGB9_E5" group="InternalFormat"/>
+        <enum value="0x8C3D" name="GL_RGB9_E5_APPLE" group="InternalFormat"/>
+        <enum value="0x8C3D" name="GL_RGB9_E5_EXT" group="InternalFormat"/>
         <enum value="0x8C3E" name="GL_UNSIGNED_INT_5_9_9_9_REV"/>
         <enum value="0x8C3E" name="GL_UNSIGNED_INT_5_9_9_9_REV_APPLE"/>
         <enum value="0x8C3E" name="GL_UNSIGNED_INT_5_9_9_9_REV_EXT"/>
         <enum value="0x8C3F" name="GL_TEXTURE_SHARED_SIZE"/>
         <enum value="0x8C3F" name="GL_TEXTURE_SHARED_SIZE_EXT"/>
-        <enum value="0x8C40" name="GL_SRGB"/>
-        <enum value="0x8C40" name="GL_SRGB_EXT"/>
-        <enum value="0x8C41" name="GL_SRGB8"/>
-        <enum value="0x8C41" name="GL_SRGB8_EXT"/>
-        <enum value="0x8C41" name="GL_SRGB8_NV"/>
-        <enum value="0x8C42" name="GL_SRGB_ALPHA"/>
-        <enum value="0x8C42" name="GL_SRGB_ALPHA_EXT"/>
-        <enum value="0x8C43" name="GL_SRGB8_ALPHA8"/>
-        <enum value="0x8C43" name="GL_SRGB8_ALPHA8_EXT"/>
+        <enum value="0x8C40" name="GL_SRGB" group="InternalFormat"/>
+        <enum value="0x8C40" name="GL_SRGB_EXT" group="InternalFormat"/>
+        <enum value="0x8C41" name="GL_SRGB8" group="InternalFormat"/>
+        <enum value="0x8C41" name="GL_SRGB8_EXT" group="InternalFormat"/>
+        <enum value="0x8C41" name="GL_SRGB8_NV" group="InternalFormat"/>
+        <enum value="0x8C42" name="GL_SRGB_ALPHA" group="InternalFormat"/>
+        <enum value="0x8C42" name="GL_SRGB_ALPHA_EXT" group="InternalFormat"/>
+        <enum value="0x8C43" name="GL_SRGB8_ALPHA8" group="InternalFormat"/>
+        <enum value="0x8C43" name="GL_SRGB8_ALPHA8_EXT" group="InternalFormat"/>
         <enum value="0x8C44" name="GL_SLUMINANCE_ALPHA"/>
         <enum value="0x8C44" name="GL_SLUMINANCE_ALPHA_EXT"/>
         <enum value="0x8C44" name="GL_SLUMINANCE_ALPHA_NV"/>
@@ -9445,21 +9444,21 @@
         <enum value="0x8C47" name="GL_SLUMINANCE8"/>
         <enum value="0x8C47" name="GL_SLUMINANCE8_EXT"/>
         <enum value="0x8C47" name="GL_SLUMINANCE8_NV"/>
-        <enum value="0x8C48" name="GL_COMPRESSED_SRGB"/>
+        <enum value="0x8C48" name="GL_COMPRESSED_SRGB" group="InternalFormat"/>
         <enum value="0x8C48" name="GL_COMPRESSED_SRGB_EXT"/>
-        <enum value="0x8C49" name="GL_COMPRESSED_SRGB_ALPHA"/>
+        <enum value="0x8C49" name="GL_COMPRESSED_SRGB_ALPHA" group="InternalFormat"/>
         <enum value="0x8C49" name="GL_COMPRESSED_SRGB_ALPHA_EXT"/>
         <enum value="0x8C4A" name="GL_COMPRESSED_SLUMINANCE"/>
         <enum value="0x8C4A" name="GL_COMPRESSED_SLUMINANCE_EXT"/>
         <enum value="0x8C4B" name="GL_COMPRESSED_SLUMINANCE_ALPHA"/>
         <enum value="0x8C4B" name="GL_COMPRESSED_SLUMINANCE_ALPHA_EXT"/>
-        <enum value="0x8C4C" name="GL_COMPRESSED_SRGB_S3TC_DXT1_EXT"/>
+        <enum value="0x8C4C" name="GL_COMPRESSED_SRGB_S3TC_DXT1_EXT" group="InternalFormat"/>
         <enum value="0x8C4C" name="GL_COMPRESSED_SRGB_S3TC_DXT1_NV"/>
-        <enum value="0x8C4D" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT"/>
+        <enum value="0x8C4D" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT" group="InternalFormat"/>
         <enum value="0x8C4D" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV"/>
-        <enum value="0x8C4E" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT"/>
+        <enum value="0x8C4E" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT" group="InternalFormat"/>
         <enum value="0x8C4E" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV"/>
-        <enum value="0x8C4F" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT"/>
+        <enum value="0x8C4F" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT" group="InternalFormat"/>
         <enum value="0x8C4F" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV"/>
             <unused start="0x8C50" end="0x8C6F" vendor="NV"/>
         <enum value="0x8C70" name="GL_COMPRESSED_LUMINANCE_LATC1_EXT"/>
@@ -9468,7 +9467,7 @@
         <enum value="0x8C73" name="GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT"/>
         <enum value="0x8C74" name="GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV"/>
         <enum value="0x8C75" name="GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV"/>
-        <enum value="0x8C76" name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH"/>
+        <enum value="0x8C76" name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH" group="ProgramPropertyARB"/>
         <enum value="0x8C76" name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT"/>
         <enum value="0x8C77" name="GL_BACK_PRIMARY_COLOR_NV"/>
         <enum value="0x8C78" name="GL_BACK_SECONDARY_COLOR_NV"/>
@@ -9478,7 +9477,7 @@
         <enum value="0x8C7C" name="GL_PRIMITIVE_ID_NV"/>
         <enum value="0x8C7D" name="GL_GENERIC_ATTRIB_NV"/>
         <enum value="0x8C7E" name="GL_TRANSFORM_FEEDBACK_ATTRIBS_NV"/>
-        <enum value="0x8C7F" name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE"/>
+        <enum value="0x8C7F" name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE" group="ProgramPropertyARB"/>
         <enum value="0x8C7F" name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT"/>
         <enum value="0x8C7F" name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV"/>
         <enum value="0x8C80" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS"/>
@@ -9486,24 +9485,24 @@
         <enum value="0x8C80" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV"/>
         <enum value="0x8C81" name="GL_ACTIVE_VARYINGS_NV"/>
         <enum value="0x8C82" name="GL_ACTIVE_VARYING_MAX_LENGTH_NV"/>
-        <enum value="0x8C83" name="GL_TRANSFORM_FEEDBACK_VARYINGS"/>
+        <enum value="0x8C83" name="GL_TRANSFORM_FEEDBACK_VARYINGS" group="ProgramPropertyARB"/>
         <enum value="0x8C83" name="GL_TRANSFORM_FEEDBACK_VARYINGS_EXT"/>
         <enum value="0x8C83" name="GL_TRANSFORM_FEEDBACK_VARYINGS_NV"/>
-        <enum value="0x8C84" name="GL_TRANSFORM_FEEDBACK_BUFFER_START"/>
+        <enum value="0x8C84" name="GL_TRANSFORM_FEEDBACK_BUFFER_START" group="TransformFeedbackPName,GetPName"/>
         <enum value="0x8C84" name="GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT"/>
         <enum value="0x8C84" name="GL_TRANSFORM_FEEDBACK_BUFFER_START_NV"/>
-        <enum value="0x8C85" name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE"/>
+        <enum value="0x8C85" name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE" group="TransformFeedbackPName,GetPName"/>
         <enum value="0x8C85" name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT"/>
         <enum value="0x8C85" name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV"/>
         <enum value="0x8C86" name="GL_TRANSFORM_FEEDBACK_RECORD_NV"/>
-        <enum value="0x8C87" name="GL_PRIMITIVES_GENERATED"/>
+        <enum value="0x8C87" name="GL_PRIMITIVES_GENERATED" group="QueryTarget"/>
         <enum value="0x8C87" name="GL_PRIMITIVES_GENERATED_EXT"/>
         <enum value="0x8C87" name="GL_PRIMITIVES_GENERATED_NV"/>
         <enum value="0x8C87" name="GL_PRIMITIVES_GENERATED_OES"/>
-        <enum value="0x8C88" name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN"/>
+        <enum value="0x8C88" name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN" group="QueryTarget"/>
         <enum value="0x8C88" name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT"/>
         <enum value="0x8C88" name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV"/>
-        <enum value="0x8C89" name="GL_RASTERIZER_DISCARD"/>
+        <enum value="0x8C89" name="GL_RASTERIZER_DISCARD" group="EnableCap"/>
         <enum value="0x8C89" name="GL_RASTERIZER_DISCARD_EXT"/>
         <enum value="0x8C89" name="GL_RASTERIZER_DISCARD_NV"/>
         <enum value="0x8C8A" name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS"/>
@@ -9512,16 +9511,16 @@
         <enum value="0x8C8B" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS"/>
         <enum value="0x8C8B" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT"/>
         <enum value="0x8C8B" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV"/>
-        <enum value="0x8C8C" name="GL_INTERLEAVED_ATTRIBS"/>
+        <enum value="0x8C8C" name="GL_INTERLEAVED_ATTRIBS" group="TransformFeedbackBufferMode"/>
         <enum value="0x8C8C" name="GL_INTERLEAVED_ATTRIBS_EXT"/>
         <enum value="0x8C8C" name="GL_INTERLEAVED_ATTRIBS_NV"/>
-        <enum value="0x8C8D" name="GL_SEPARATE_ATTRIBS"/>
+        <enum value="0x8C8D" name="GL_SEPARATE_ATTRIBS" group="TransformFeedbackBufferMode"/>
         <enum value="0x8C8D" name="GL_SEPARATE_ATTRIBS_EXT"/>
         <enum value="0x8C8D" name="GL_SEPARATE_ATTRIBS_NV"/>
-        <enum value="0x8C8E" name="GL_TRANSFORM_FEEDBACK_BUFFER"/>
+        <enum value="0x8C8E" name="GL_TRANSFORM_FEEDBACK_BUFFER" group="ProgramInterface,BufferTargetARB,BufferStorageTarget,CopyBufferSubDataTarget"/>
         <enum value="0x8C8E" name="GL_TRANSFORM_FEEDBACK_BUFFER_EXT"/>
         <enum value="0x8C8E" name="GL_TRANSFORM_FEEDBACK_BUFFER_NV"/>
-        <enum value="0x8C8F" name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING"/>
+        <enum value="0x8C8F" name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING" group="TransformFeedbackPName,GetPName"/>
         <enum value="0x8C8F" name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT"/>
         <enum value="0x8C8F" name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV"/>
     </enums>
@@ -9534,14 +9533,14 @@
     </enums>
     <enums namespace="GL" start="0x8CA0" end="0x8CAF" vendor="ARB">
         <enum value="0x8CA0" name="GL_POINT_SPRITE_COORD_ORIGIN"/>
-        <enum value="0x8CA1" name="GL_LOWER_LEFT"/>
+        <enum value="0x8CA1" name="GL_LOWER_LEFT" group="ClipControlOrigin"/>
         <enum value="0x8CA1" name="GL_LOWER_LEFT_EXT" alias="GL_LOWER_LEFT"/>
-        <enum value="0x8CA2" name="GL_UPPER_LEFT"/>
+        <enum value="0x8CA2" name="GL_UPPER_LEFT" group="ClipControlOrigin"/>
         <enum value="0x8CA2" name="GL_UPPER_LEFT_EXT" alias="GL_UPPER_LEFT"/>
-        <enum value="0x8CA3" name="GL_STENCIL_BACK_REF"/>
-        <enum value="0x8CA4" name="GL_STENCIL_BACK_VALUE_MASK"/>
-        <enum value="0x8CA5" name="GL_STENCIL_BACK_WRITEMASK"/>
-        <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING"/>
+        <enum value="0x8CA3" name="GL_STENCIL_BACK_REF" group="GetPName"/>
+        <enum value="0x8CA4" name="GL_STENCIL_BACK_VALUE_MASK" group="GetPName"/>
+        <enum value="0x8CA5" name="GL_STENCIL_BACK_WRITEMASK" group="GetPName"/>
+        <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING" group="GetPName"/>
         <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING_ANGLE"/>
         <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING_APPLE"/>
         <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING_EXT"/>
@@ -9550,33 +9549,33 @@
         <enum value="0x8CA6" name="GL_FRAMEBUFFER_BINDING_ANGLE"/>
         <enum value="0x8CA6" name="GL_FRAMEBUFFER_BINDING_EXT"/>
         <enum value="0x8CA6" name="GL_FRAMEBUFFER_BINDING_OES"/>
-        <enum value="0x8CA7" name="GL_RENDERBUFFER_BINDING"/>
+        <enum value="0x8CA7" name="GL_RENDERBUFFER_BINDING" group="GetPName"/>
         <enum value="0x8CA7" name="GL_RENDERBUFFER_BINDING_ANGLE"/>
         <enum value="0x8CA7" name="GL_RENDERBUFFER_BINDING_EXT"/>
         <enum value="0x8CA7" name="GL_RENDERBUFFER_BINDING_OES"/>
-        <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER"/>
+        <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER" group="CheckFramebufferStatusTarget,FramebufferTarget"/>
         <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER_ANGLE"/>
         <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER_APPLE"/>
         <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER_EXT"/>
         <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER_NV"/>
-        <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER"/>
+        <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER" group="CheckFramebufferStatusTarget,FramebufferTarget"/>
         <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER_ANGLE"/>
         <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER_APPLE"/>
         <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER_EXT"/>
         <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER_NV"/>
-        <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING"/>
+        <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING" group="GetPName"/>
         <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING_ANGLE"/>
         <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING_APPLE"/>
         <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING_EXT"/>
         <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING_NV"/>
-        <enum value="0x8CAB" name="GL_RENDERBUFFER_COVERAGE_SAMPLES_NV"/>
-        <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES"/>
-        <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_ANGLE"/>
-        <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_APPLE"/>
-        <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_EXT"/>
-        <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_NV"/>
-        <enum value="0x8CAC" name="GL_DEPTH_COMPONENT32F"/>
-        <enum value="0x8CAD" name="GL_DEPTH32F_STENCIL8"/>
+        <enum value="0x8CAB" name="GL_RENDERBUFFER_COVERAGE_SAMPLES_NV" group="RenderbufferParameterName"/>
+        <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES" group="RenderbufferParameterName"/>
+        <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_ANGLE" group="RenderbufferParameterName"/>
+        <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_APPLE" group="RenderbufferParameterName"/>
+        <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_EXT" group="RenderbufferParameterName"/>
+        <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_NV" group="RenderbufferParameterName"/>
+        <enum value="0x8CAC" name="GL_DEPTH_COMPONENT32F" group="InternalFormat"/>
+        <enum value="0x8CAD" name="GL_DEPTH32F_STENCIL8" group="InternalFormat"/>
             <unused start="0x8CAE" end="0x8CAF" vendor="ARB"/>
     </enums>
 
@@ -9585,29 +9584,29 @@
     </enums>
 
     <enums namespace="GL" start="0x8CD0" end="0x8D5F" vendor="ARB" comment="Framebuffer object specification + headroom">
-        <enum value="0x8CD0" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"/>
-        <enum value="0x8CD0" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT"/>
-        <enum value="0x8CD0" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES"/>
-        <enum value="0x8CD1" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"/>
-        <enum value="0x8CD1" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT"/>
-        <enum value="0x8CD1" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES"/>
-        <enum value="0x8CD2" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"/>
-        <enum value="0x8CD2" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT"/>
-        <enum value="0x8CD2" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES"/>
-        <enum value="0x8CD3" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"/>
-        <enum value="0x8CD3" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT"/>
-        <enum value="0x8CD3" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES"/>
-        <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT"/>
-        <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES"/>
-        <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"/>
-        <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT"/>
-        <enum value="0x8CD5" name="GL_FRAMEBUFFER_COMPLETE"/>
+        <enum value="0x8CD0" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8CD0" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8CD0" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8CD1" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8CD1" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8CD1" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8CD2" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8CD2" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8CD2" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8CD3" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8CD3" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8CD3" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8CD5" name="GL_FRAMEBUFFER_COMPLETE" group="FramebufferStatus"/>
         <enum value="0x8CD5" name="GL_FRAMEBUFFER_COMPLETE_EXT"/>
         <enum value="0x8CD5" name="GL_FRAMEBUFFER_COMPLETE_OES"/>
-        <enum value="0x8CD6" name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"/>
+        <enum value="0x8CD6" name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT" group="FramebufferStatus"/>
         <enum value="0x8CD6" name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT"/>
         <enum value="0x8CD6" name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES"/>
-        <enum value="0x8CD7" name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"/>
+        <enum value="0x8CD7" name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT" group="FramebufferStatus"/>
         <enum value="0x8CD7" name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT"/>
         <enum value="0x8CD7" name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES"/>
             <unused start="0x8CD8" vendor="ARB" comment="Removed 2005/09/26 in revision #117 of the FBO extension spec"/>
@@ -9617,13 +9616,13 @@
         <enum value="0x8CD9" name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES"/>
         <enum value="0x8CDA" name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT"/>
         <enum value="0x8CDA" name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES"/>
-        <enum value="0x8CDB" name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER"/>
+        <enum value="0x8CDB" name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER" group="FramebufferStatus"/>
         <enum value="0x8CDB" name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT"/>
         <enum value="0x8CDB" name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES"/>
-        <enum value="0x8CDC" name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER"/>
+        <enum value="0x8CDC" name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER" group="FramebufferStatus"/>
         <enum value="0x8CDC" name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT"/>
         <enum value="0x8CDC" name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES"/>
-        <enum value="0x8CDD" name="GL_FRAMEBUFFER_UNSUPPORTED"/>
+        <enum value="0x8CDD" name="GL_FRAMEBUFFER_UNSUPPORTED" group="FramebufferStatus"/>
         <enum value="0x8CDD" name="GL_FRAMEBUFFER_UNSUPPORTED_EXT"/>
         <enum value="0x8CDD" name="GL_FRAMEBUFFER_UNSUPPORTED_OES"/>
             <unused start="0x8CDE" vendor="ARB" comment="Removed 2005/05/31 in revision #113 of the FBO extension spec"/>
@@ -9631,126 +9630,126 @@
         <enum value="0x8CDF" name="GL_MAX_COLOR_ATTACHMENTS"/>
         <enum value="0x8CDF" name="GL_MAX_COLOR_ATTACHMENTS_EXT"/>
         <enum value="0x8CDF" name="GL_MAX_COLOR_ATTACHMENTS_NV"/>
-        <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0"/>
-        <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0_EXT"/>
-        <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0_NV"/>
-        <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0_OES"/>
-        <enum value="0x8CE1" name="GL_COLOR_ATTACHMENT1"/>
-        <enum value="0x8CE1" name="GL_COLOR_ATTACHMENT1_EXT"/>
-        <enum value="0x8CE1" name="GL_COLOR_ATTACHMENT1_NV"/>
-        <enum value="0x8CE2" name="GL_COLOR_ATTACHMENT2"/>
-        <enum value="0x8CE2" name="GL_COLOR_ATTACHMENT2_EXT"/>
-        <enum value="0x8CE2" name="GL_COLOR_ATTACHMENT2_NV"/>
-        <enum value="0x8CE3" name="GL_COLOR_ATTACHMENT3"/>
-        <enum value="0x8CE3" name="GL_COLOR_ATTACHMENT3_EXT"/>
-        <enum value="0x8CE3" name="GL_COLOR_ATTACHMENT3_NV"/>
-        <enum value="0x8CE4" name="GL_COLOR_ATTACHMENT4"/>
-        <enum value="0x8CE4" name="GL_COLOR_ATTACHMENT4_EXT"/>
-        <enum value="0x8CE4" name="GL_COLOR_ATTACHMENT4_NV"/>
-        <enum value="0x8CE5" name="GL_COLOR_ATTACHMENT5"/>
-        <enum value="0x8CE5" name="GL_COLOR_ATTACHMENT5_EXT"/>
-        <enum value="0x8CE5" name="GL_COLOR_ATTACHMENT5_NV"/>
-        <enum value="0x8CE6" name="GL_COLOR_ATTACHMENT6"/>
-        <enum value="0x8CE6" name="GL_COLOR_ATTACHMENT6_EXT"/>
-        <enum value="0x8CE6" name="GL_COLOR_ATTACHMENT6_NV"/>
-        <enum value="0x8CE7" name="GL_COLOR_ATTACHMENT7"/>
-        <enum value="0x8CE7" name="GL_COLOR_ATTACHMENT7_EXT"/>
-        <enum value="0x8CE7" name="GL_COLOR_ATTACHMENT7_NV"/>
-        <enum value="0x8CE8" name="GL_COLOR_ATTACHMENT8"/>
-        <enum value="0x8CE8" name="GL_COLOR_ATTACHMENT8_EXT"/>
-        <enum value="0x8CE8" name="GL_COLOR_ATTACHMENT8_NV"/>
-        <enum value="0x8CE9" name="GL_COLOR_ATTACHMENT9"/>
-        <enum value="0x8CE9" name="GL_COLOR_ATTACHMENT9_EXT"/>
-        <enum value="0x8CE9" name="GL_COLOR_ATTACHMENT9_NV"/>
-        <enum value="0x8CEA" name="GL_COLOR_ATTACHMENT10"/>
-        <enum value="0x8CEA" name="GL_COLOR_ATTACHMENT10_EXT"/>
-        <enum value="0x8CEA" name="GL_COLOR_ATTACHMENT10_NV"/>
-        <enum value="0x8CEB" name="GL_COLOR_ATTACHMENT11"/>
-        <enum value="0x8CEB" name="GL_COLOR_ATTACHMENT11_EXT"/>
-        <enum value="0x8CEB" name="GL_COLOR_ATTACHMENT11_NV"/>
-        <enum value="0x8CEC" name="GL_COLOR_ATTACHMENT12"/>
-        <enum value="0x8CEC" name="GL_COLOR_ATTACHMENT12_EXT"/>
-        <enum value="0x8CEC" name="GL_COLOR_ATTACHMENT12_NV"/>
-        <enum value="0x8CED" name="GL_COLOR_ATTACHMENT13"/>
-        <enum value="0x8CED" name="GL_COLOR_ATTACHMENT13_EXT"/>
-        <enum value="0x8CED" name="GL_COLOR_ATTACHMENT13_NV"/>
-        <enum value="0x8CEE" name="GL_COLOR_ATTACHMENT14"/>
-        <enum value="0x8CEE" name="GL_COLOR_ATTACHMENT14_EXT"/>
-        <enum value="0x8CEE" name="GL_COLOR_ATTACHMENT14_NV"/>
-        <enum value="0x8CEF" name="GL_COLOR_ATTACHMENT15"/>
-        <enum value="0x8CEF" name="GL_COLOR_ATTACHMENT15_EXT"/>
-        <enum value="0x8CEF" name="GL_COLOR_ATTACHMENT15_NV"/>
-        <enum value="0x8CF0" name="GL_COLOR_ATTACHMENT16"/>
-        <enum value="0x8CF1" name="GL_COLOR_ATTACHMENT17"/>
-        <enum value="0x8CF2" name="GL_COLOR_ATTACHMENT18"/>
-        <enum value="0x8CF3" name="GL_COLOR_ATTACHMENT19"/>
-        <enum value="0x8CF4" name="GL_COLOR_ATTACHMENT20"/>
-        <enum value="0x8CF5" name="GL_COLOR_ATTACHMENT21"/>
-        <enum value="0x8CF6" name="GL_COLOR_ATTACHMENT22"/>
-        <enum value="0x8CF7" name="GL_COLOR_ATTACHMENT23"/>
-        <enum value="0x8CF8" name="GL_COLOR_ATTACHMENT24"/>
-        <enum value="0x8CF9" name="GL_COLOR_ATTACHMENT25"/>
-        <enum value="0x8CFA" name="GL_COLOR_ATTACHMENT26"/>
-        <enum value="0x8CFB" name="GL_COLOR_ATTACHMENT27"/>
-        <enum value="0x8CFC" name="GL_COLOR_ATTACHMENT28"/>
-        <enum value="0x8CFD" name="GL_COLOR_ATTACHMENT29"/>
-        <enum value="0x8CFE" name="GL_COLOR_ATTACHMENT30"/>
-        <enum value="0x8CFF" name="GL_COLOR_ATTACHMENT31"/>
-        <enum value="0x8D00" name="GL_DEPTH_ATTACHMENT"/>
-        <enum value="0x8D00" name="GL_DEPTH_ATTACHMENT_EXT"/>
-        <enum value="0x8D00" name="GL_DEPTH_ATTACHMENT_OES"/>
+        <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0" group="ColorBuffer,DrawBufferMode,ReadBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0_EXT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0_NV" group="InvalidateFramebufferAttachment,DrawBufferModeATI"/>
+        <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0_OES" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE1" name="GL_COLOR_ATTACHMENT1" group="ColorBuffer,DrawBufferMode,ReadBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE1" name="GL_COLOR_ATTACHMENT1_EXT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE1" name="GL_COLOR_ATTACHMENT1_NV" group="InvalidateFramebufferAttachment,DrawBufferModeATI"/>
+        <enum value="0x8CE2" name="GL_COLOR_ATTACHMENT2" group="ColorBuffer,DrawBufferMode,ReadBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE2" name="GL_COLOR_ATTACHMENT2_EXT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE2" name="GL_COLOR_ATTACHMENT2_NV" group="InvalidateFramebufferAttachment,DrawBufferModeATI"/>
+        <enum value="0x8CE3" name="GL_COLOR_ATTACHMENT3" group="ColorBuffer,DrawBufferMode,ReadBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE3" name="GL_COLOR_ATTACHMENT3_EXT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE3" name="GL_COLOR_ATTACHMENT3_NV" group="InvalidateFramebufferAttachment,DrawBufferModeATI"/>
+        <enum value="0x8CE4" name="GL_COLOR_ATTACHMENT4" group="ColorBuffer,DrawBufferMode,ReadBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE4" name="GL_COLOR_ATTACHMENT4_EXT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE4" name="GL_COLOR_ATTACHMENT4_NV" group="InvalidateFramebufferAttachment,DrawBufferModeATI"/>
+        <enum value="0x8CE5" name="GL_COLOR_ATTACHMENT5" group="ColorBuffer,DrawBufferMode,ReadBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE5" name="GL_COLOR_ATTACHMENT5_EXT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE5" name="GL_COLOR_ATTACHMENT5_NV" group="InvalidateFramebufferAttachment,DrawBufferModeATI"/>
+        <enum value="0x8CE6" name="GL_COLOR_ATTACHMENT6" group="ColorBuffer,DrawBufferMode,ReadBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE6" name="GL_COLOR_ATTACHMENT6_EXT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE6" name="GL_COLOR_ATTACHMENT6_NV" group="InvalidateFramebufferAttachment,DrawBufferModeATI"/>
+        <enum value="0x8CE7" name="GL_COLOR_ATTACHMENT7" group="ColorBuffer,DrawBufferMode,ReadBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE7" name="GL_COLOR_ATTACHMENT7_EXT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE7" name="GL_COLOR_ATTACHMENT7_NV" group="InvalidateFramebufferAttachment,DrawBufferModeATI"/>
+        <enum value="0x8CE8" name="GL_COLOR_ATTACHMENT8" group="ColorBuffer,DrawBufferMode,ReadBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE8" name="GL_COLOR_ATTACHMENT8_EXT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE8" name="GL_COLOR_ATTACHMENT8_NV" group="InvalidateFramebufferAttachment,DrawBufferModeATI"/>
+        <enum value="0x8CE9" name="GL_COLOR_ATTACHMENT9" group="ColorBuffer,DrawBufferMode,ReadBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE9" name="GL_COLOR_ATTACHMENT9_EXT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8CE9" name="GL_COLOR_ATTACHMENT9_NV" group="InvalidateFramebufferAttachment,DrawBufferModeATI"/>
+        <enum value="0x8CEA" name="GL_COLOR_ATTACHMENT10" group="ColorBuffer,DrawBufferMode,ReadBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CEA" name="GL_COLOR_ATTACHMENT10_EXT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8CEA" name="GL_COLOR_ATTACHMENT10_NV" group="InvalidateFramebufferAttachment,DrawBufferModeATI"/>
+        <enum value="0x8CEB" name="GL_COLOR_ATTACHMENT11" group="ColorBuffer,DrawBufferMode,ReadBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CEB" name="GL_COLOR_ATTACHMENT11_EXT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8CEB" name="GL_COLOR_ATTACHMENT11_NV" group="InvalidateFramebufferAttachment,DrawBufferModeATI"/>
+        <enum value="0x8CEC" name="GL_COLOR_ATTACHMENT12" group="ColorBuffer,DrawBufferMode,ReadBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CEC" name="GL_COLOR_ATTACHMENT12_EXT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8CEC" name="GL_COLOR_ATTACHMENT12_NV" group="InvalidateFramebufferAttachment,DrawBufferModeATI"/>
+        <enum value="0x8CED" name="GL_COLOR_ATTACHMENT13" group="ColorBuffer,DrawBufferMode,ReadBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CED" name="GL_COLOR_ATTACHMENT13_EXT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8CED" name="GL_COLOR_ATTACHMENT13_NV" group="InvalidateFramebufferAttachment,DrawBufferModeATI"/>
+        <enum value="0x8CEE" name="GL_COLOR_ATTACHMENT14" group="ColorBuffer,DrawBufferMode,ReadBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CEE" name="GL_COLOR_ATTACHMENT14_EXT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8CEE" name="GL_COLOR_ATTACHMENT14_NV" group="InvalidateFramebufferAttachment,DrawBufferModeATI"/>
+        <enum value="0x8CEF" name="GL_COLOR_ATTACHMENT15" group="ColorBuffer,DrawBufferMode,ReadBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CEF" name="GL_COLOR_ATTACHMENT15_EXT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8CEF" name="GL_COLOR_ATTACHMENT15_NV" group="InvalidateFramebufferAttachment,DrawBufferModeATI"/>
+        <enum value="0x8CF0" name="GL_COLOR_ATTACHMENT16" group="ColorBuffer,DrawBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CF1" name="GL_COLOR_ATTACHMENT17" group="ColorBuffer,DrawBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CF2" name="GL_COLOR_ATTACHMENT18" group="ColorBuffer,DrawBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CF3" name="GL_COLOR_ATTACHMENT19" group="ColorBuffer,DrawBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CF4" name="GL_COLOR_ATTACHMENT20" group="ColorBuffer,DrawBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CF5" name="GL_COLOR_ATTACHMENT21" group="ColorBuffer,DrawBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CF6" name="GL_COLOR_ATTACHMENT22" group="ColorBuffer,DrawBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CF7" name="GL_COLOR_ATTACHMENT23" group="ColorBuffer,DrawBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CF8" name="GL_COLOR_ATTACHMENT24" group="ColorBuffer,DrawBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CF9" name="GL_COLOR_ATTACHMENT25" group="ColorBuffer,DrawBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CFA" name="GL_COLOR_ATTACHMENT26" group="ColorBuffer,DrawBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CFB" name="GL_COLOR_ATTACHMENT27" group="ColorBuffer,DrawBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CFC" name="GL_COLOR_ATTACHMENT28" group="ColorBuffer,DrawBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CFD" name="GL_COLOR_ATTACHMENT29" group="ColorBuffer,DrawBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CFE" name="GL_COLOR_ATTACHMENT30" group="ColorBuffer,DrawBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8CFF" name="GL_COLOR_ATTACHMENT31" group="ColorBuffer,DrawBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
+        <enum value="0x8D00" name="GL_DEPTH_ATTACHMENT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8D00" name="GL_DEPTH_ATTACHMENT_EXT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8D00" name="GL_DEPTH_ATTACHMENT_OES" group="InvalidateFramebufferAttachment"/>
             <unused start="0x8D01" end="0x8D1F" vendor="ARB" comment="For depth attachments 16-31"/>
-        <enum value="0x8D20" name="GL_STENCIL_ATTACHMENT"/>
-        <enum value="0x8D20" name="GL_STENCIL_ATTACHMENT_EXT"/>
-        <enum value="0x8D20" name="GL_STENCIL_ATTACHMENT_OES"/>
+        <enum value="0x8D20" name="GL_STENCIL_ATTACHMENT" group="FramebufferAttachment"/>
+        <enum value="0x8D20" name="GL_STENCIL_ATTACHMENT_EXT" group="InvalidateFramebufferAttachment"/>
+        <enum value="0x8D20" name="GL_STENCIL_ATTACHMENT_OES" group="InvalidateFramebufferAttachment"/>
             <unused start="0x8D21" end="0x8D3F" vendor="ARB" comment="For stencil attachments 16-31"/>
-        <enum value="0x8D40" name="GL_FRAMEBUFFER"/>
+        <enum value="0x8D40" name="GL_FRAMEBUFFER" group="ObjectIdentifier,FramebufferTarget,CheckFramebufferStatusTarget"/>
         <enum value="0x8D40" name="GL_FRAMEBUFFER_EXT"/>
-        <enum value="0x8D40" name="GL_FRAMEBUFFER_OES"/>
-        <enum value="0x8D41" name="GL_RENDERBUFFER"/>
+        <enum value="0x8D40" name="GL_FRAMEBUFFER_OES" group="FramebufferTarget"/>
+        <enum value="0x8D41" name="GL_RENDERBUFFER" group="ObjectIdentifier,RenderbufferTarget,CopyImageSubDataTarget"/>
         <enum value="0x8D41" name="GL_RENDERBUFFER_EXT"/>
-        <enum value="0x8D41" name="GL_RENDERBUFFER_OES"/>
-        <enum value="0x8D42" name="GL_RENDERBUFFER_WIDTH"/>
-        <enum value="0x8D42" name="GL_RENDERBUFFER_WIDTH_EXT"/>
-        <enum value="0x8D42" name="GL_RENDERBUFFER_WIDTH_OES"/>
-        <enum value="0x8D43" name="GL_RENDERBUFFER_HEIGHT"/>
-        <enum value="0x8D43" name="GL_RENDERBUFFER_HEIGHT_EXT"/>
-        <enum value="0x8D43" name="GL_RENDERBUFFER_HEIGHT_OES"/>
-        <enum value="0x8D44" name="GL_RENDERBUFFER_INTERNAL_FORMAT"/>
-        <enum value="0x8D44" name="GL_RENDERBUFFER_INTERNAL_FORMAT_EXT"/>
-        <enum value="0x8D44" name="GL_RENDERBUFFER_INTERNAL_FORMAT_OES"/>
+        <enum value="0x8D41" name="GL_RENDERBUFFER_OES" group="RenderbufferTarget"/>
+        <enum value="0x8D42" name="GL_RENDERBUFFER_WIDTH" group="RenderbufferParameterName"/>
+        <enum value="0x8D42" name="GL_RENDERBUFFER_WIDTH_EXT" group="RenderbufferParameterName"/>
+        <enum value="0x8D42" name="GL_RENDERBUFFER_WIDTH_OES" group="RenderbufferParameterName"/>
+        <enum value="0x8D43" name="GL_RENDERBUFFER_HEIGHT" group="RenderbufferParameterName"/>
+        <enum value="0x8D43" name="GL_RENDERBUFFER_HEIGHT_EXT" group="RenderbufferParameterName"/>
+        <enum value="0x8D43" name="GL_RENDERBUFFER_HEIGHT_OES" group="RenderbufferParameterName"/>
+        <enum value="0x8D44" name="GL_RENDERBUFFER_INTERNAL_FORMAT" group="RenderbufferParameterName"/>
+        <enum value="0x8D44" name="GL_RENDERBUFFER_INTERNAL_FORMAT_EXT" group="RenderbufferParameterName"/>
+        <enum value="0x8D44" name="GL_RENDERBUFFER_INTERNAL_FORMAT_OES" group="RenderbufferParameterName"/>
             <unused start="0x8D45" vendor="ARB" comment="Was for GL_STENCIL_INDEX_EXT, but now use core STENCIL_INDEX instead"/>
-        <enum value="0x8D46" name="GL_STENCIL_INDEX1"/>
-        <enum value="0x8D46" name="GL_STENCIL_INDEX1_EXT"/>
-        <enum value="0x8D46" name="GL_STENCIL_INDEX1_OES"/>
-        <enum value="0x8D47" name="GL_STENCIL_INDEX4"/>
-        <enum value="0x8D47" name="GL_STENCIL_INDEX4_EXT"/>
-        <enum value="0x8D47" name="GL_STENCIL_INDEX4_OES"/>
-        <enum value="0x8D48" name="GL_STENCIL_INDEX8"/>
-        <enum value="0x8D48" name="GL_STENCIL_INDEX8_EXT"/>
-        <enum value="0x8D48" name="GL_STENCIL_INDEX8_OES"/>
-        <enum value="0x8D49" name="GL_STENCIL_INDEX16"/>
-        <enum value="0x8D49" name="GL_STENCIL_INDEX16_EXT"/>
+        <enum value="0x8D46" name="GL_STENCIL_INDEX1" group="InternalFormat"/>
+        <enum value="0x8D46" name="GL_STENCIL_INDEX1_EXT" group="InternalFormat"/>
+        <enum value="0x8D46" name="GL_STENCIL_INDEX1_OES" group="InternalFormat"/>
+        <enum value="0x8D47" name="GL_STENCIL_INDEX4" group="InternalFormat"/>
+        <enum value="0x8D47" name="GL_STENCIL_INDEX4_EXT" group="InternalFormat"/>
+        <enum value="0x8D47" name="GL_STENCIL_INDEX4_OES" group="InternalFormat"/>
+        <enum value="0x8D48" name="GL_STENCIL_INDEX8" group="InternalFormat"/>
+        <enum value="0x8D48" name="GL_STENCIL_INDEX8_EXT" group="InternalFormat"/>
+        <enum value="0x8D48" name="GL_STENCIL_INDEX8_OES" group="InternalFormat"/>
+        <enum value="0x8D49" name="GL_STENCIL_INDEX16" group="InternalFormat"/>
+        <enum value="0x8D49" name="GL_STENCIL_INDEX16_EXT" group="InternalFormat"/>
             <unused start="0x8D4A" end="0x8D4F" vendor="ARB" comment="For additional stencil formats"/>
-        <enum value="0x8D50" name="GL_RENDERBUFFER_RED_SIZE"/>
-        <enum value="0x8D50" name="GL_RENDERBUFFER_RED_SIZE_EXT"/>
-        <enum value="0x8D50" name="GL_RENDERBUFFER_RED_SIZE_OES"/>
-        <enum value="0x8D51" name="GL_RENDERBUFFER_GREEN_SIZE"/>
-        <enum value="0x8D51" name="GL_RENDERBUFFER_GREEN_SIZE_EXT"/>
-        <enum value="0x8D51" name="GL_RENDERBUFFER_GREEN_SIZE_OES"/>
-        <enum value="0x8D52" name="GL_RENDERBUFFER_BLUE_SIZE"/>
-        <enum value="0x8D52" name="GL_RENDERBUFFER_BLUE_SIZE_EXT"/>
-        <enum value="0x8D52" name="GL_RENDERBUFFER_BLUE_SIZE_OES"/>
-        <enum value="0x8D53" name="GL_RENDERBUFFER_ALPHA_SIZE"/>
-        <enum value="0x8D53" name="GL_RENDERBUFFER_ALPHA_SIZE_EXT"/>
-        <enum value="0x8D53" name="GL_RENDERBUFFER_ALPHA_SIZE_OES"/>
-        <enum value="0x8D54" name="GL_RENDERBUFFER_DEPTH_SIZE"/>
-        <enum value="0x8D54" name="GL_RENDERBUFFER_DEPTH_SIZE_EXT"/>
-        <enum value="0x8D54" name="GL_RENDERBUFFER_DEPTH_SIZE_OES"/>
-        <enum value="0x8D55" name="GL_RENDERBUFFER_STENCIL_SIZE"/>
-        <enum value="0x8D55" name="GL_RENDERBUFFER_STENCIL_SIZE_EXT"/>
-        <enum value="0x8D55" name="GL_RENDERBUFFER_STENCIL_SIZE_OES"/>
-        <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"/>
+        <enum value="0x8D50" name="GL_RENDERBUFFER_RED_SIZE" group="RenderbufferParameterName"/>
+        <enum value="0x8D50" name="GL_RENDERBUFFER_RED_SIZE_EXT" group="RenderbufferParameterName"/>
+        <enum value="0x8D50" name="GL_RENDERBUFFER_RED_SIZE_OES" group="RenderbufferParameterName"/>
+        <enum value="0x8D51" name="GL_RENDERBUFFER_GREEN_SIZE" group="RenderbufferParameterName"/>
+        <enum value="0x8D51" name="GL_RENDERBUFFER_GREEN_SIZE_EXT" group="RenderbufferParameterName"/>
+        <enum value="0x8D51" name="GL_RENDERBUFFER_GREEN_SIZE_OES" group="RenderbufferParameterName"/>
+        <enum value="0x8D52" name="GL_RENDERBUFFER_BLUE_SIZE" group="RenderbufferParameterName"/>
+        <enum value="0x8D52" name="GL_RENDERBUFFER_BLUE_SIZE_EXT" group="RenderbufferParameterName"/>
+        <enum value="0x8D52" name="GL_RENDERBUFFER_BLUE_SIZE_OES" group="RenderbufferParameterName"/>
+        <enum value="0x8D53" name="GL_RENDERBUFFER_ALPHA_SIZE" group="RenderbufferParameterName"/>
+        <enum value="0x8D53" name="GL_RENDERBUFFER_ALPHA_SIZE_EXT" group="RenderbufferParameterName"/>
+        <enum value="0x8D53" name="GL_RENDERBUFFER_ALPHA_SIZE_OES" group="RenderbufferParameterName"/>
+        <enum value="0x8D54" name="GL_RENDERBUFFER_DEPTH_SIZE" group="RenderbufferParameterName"/>
+        <enum value="0x8D54" name="GL_RENDERBUFFER_DEPTH_SIZE_EXT" group="RenderbufferParameterName"/>
+        <enum value="0x8D54" name="GL_RENDERBUFFER_DEPTH_SIZE_OES" group="RenderbufferParameterName"/>
+        <enum value="0x8D55" name="GL_RENDERBUFFER_STENCIL_SIZE" group="RenderbufferParameterName"/>
+        <enum value="0x8D55" name="GL_RENDERBUFFER_STENCIL_SIZE_EXT" group="RenderbufferParameterName"/>
+        <enum value="0x8D55" name="GL_RENDERBUFFER_STENCIL_SIZE_OES" group="RenderbufferParameterName"/>
+        <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE" group="FramebufferStatus"/>
         <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE"/>
         <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE"/>
         <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT"/>
@@ -9774,83 +9773,83 @@
         <enum value="0x8D66" name="GL_SAMPLER_EXTERNAL_OES"/>
         <enum value="0x8D67" name="GL_TEXTURE_BINDING_EXTERNAL_OES"/>
         <enum value="0x8D68" name="GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES"/>
-        <enum value="0x8D69" name="GL_PRIMITIVE_RESTART_FIXED_INDEX"/>
-        <enum value="0x8D6A" name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE"/>
+        <enum value="0x8D69" name="GL_PRIMITIVE_RESTART_FIXED_INDEX" group="EnableCap"/>
+        <enum value="0x8D6A" name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE" group="QueryTarget"/>
         <enum value="0x8D6A" name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT"/>
-        <enum value="0x8D6B" name="GL_MAX_ELEMENT_INDEX"/>
-        <enum value="0x8D6C" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT"/>
+        <enum value="0x8D6B" name="GL_MAX_ELEMENT_INDEX" group="GetPName"/>
+        <enum value="0x8D6C" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT" group="FramebufferAttachmentParameterName"/>
             <unused start="0x8D6D" end="0x8D6F" vendor="OES"/>
     </enums>
 
     <enums namespace="GL" start="0x8D70" end="0x8DEF" vendor="NV" comment="For Pat Brown 2005/10/13">
-        <enum value="0x8D70" name="GL_RGBA32UI"/>
+        <enum value="0x8D70" name="GL_RGBA32UI" group="InternalFormat"/>
         <enum value="0x8D70" name="GL_RGBA32UI_EXT"/>
-        <enum value="0x8D71" name="GL_RGB32UI"/>
+        <enum value="0x8D71" name="GL_RGB32UI" group="InternalFormat"/>
         <enum value="0x8D71" name="GL_RGB32UI_EXT"/>
         <enum value="0x8D72" name="GL_ALPHA32UI_EXT"/>
         <enum value="0x8D73" name="GL_INTENSITY32UI_EXT"/>
         <enum value="0x8D74" name="GL_LUMINANCE32UI_EXT"/>
         <enum value="0x8D75" name="GL_LUMINANCE_ALPHA32UI_EXT"/>
-        <enum value="0x8D76" name="GL_RGBA16UI"/>
+        <enum value="0x8D76" name="GL_RGBA16UI" group="InternalFormat"/>
         <enum value="0x8D76" name="GL_RGBA16UI_EXT"/>
-        <enum value="0x8D77" name="GL_RGB16UI"/>
+        <enum value="0x8D77" name="GL_RGB16UI" group="InternalFormat"/>
         <enum value="0x8D77" name="GL_RGB16UI_EXT"/>
         <enum value="0x8D78" name="GL_ALPHA16UI_EXT"/>
         <enum value="0x8D79" name="GL_INTENSITY16UI_EXT"/>
         <enum value="0x8D7A" name="GL_LUMINANCE16UI_EXT"/>
         <enum value="0x8D7B" name="GL_LUMINANCE_ALPHA16UI_EXT"/>
-        <enum value="0x8D7C" name="GL_RGBA8UI"/>
+        <enum value="0x8D7C" name="GL_RGBA8UI" group="InternalFormat"/>
         <enum value="0x8D7C" name="GL_RGBA8UI_EXT"/>
-        <enum value="0x8D7D" name="GL_RGB8UI"/>
+        <enum value="0x8D7D" name="GL_RGB8UI" group="InternalFormat"/>
         <enum value="0x8D7D" name="GL_RGB8UI_EXT"/>
         <enum value="0x8D7E" name="GL_ALPHA8UI_EXT"/>
         <enum value="0x8D7F" name="GL_INTENSITY8UI_EXT"/>
         <enum value="0x8D80" name="GL_LUMINANCE8UI_EXT"/>
         <enum value="0x8D81" name="GL_LUMINANCE_ALPHA8UI_EXT"/>
-        <enum value="0x8D82" name="GL_RGBA32I"/>
+        <enum value="0x8D82" name="GL_RGBA32I" group="InternalFormat"/>
         <enum value="0x8D82" name="GL_RGBA32I_EXT"/>
-        <enum value="0x8D83" name="GL_RGB32I"/>
+        <enum value="0x8D83" name="GL_RGB32I" group="InternalFormat"/>
         <enum value="0x8D83" name="GL_RGB32I_EXT"/>
         <enum value="0x8D84" name="GL_ALPHA32I_EXT"/>
         <enum value="0x8D85" name="GL_INTENSITY32I_EXT"/>
         <enum value="0x8D86" name="GL_LUMINANCE32I_EXT"/>
         <enum value="0x8D87" name="GL_LUMINANCE_ALPHA32I_EXT"/>
-        <enum value="0x8D88" name="GL_RGBA16I"/>
+        <enum value="0x8D88" name="GL_RGBA16I" group="InternalFormat"/>
         <enum value="0x8D88" name="GL_RGBA16I_EXT"/>
-        <enum value="0x8D89" name="GL_RGB16I"/>
+        <enum value="0x8D89" name="GL_RGB16I" group="InternalFormat"/>
         <enum value="0x8D89" name="GL_RGB16I_EXT"/>
         <enum value="0x8D8A" name="GL_ALPHA16I_EXT"/>
         <enum value="0x8D8B" name="GL_INTENSITY16I_EXT"/>
         <enum value="0x8D8C" name="GL_LUMINANCE16I_EXT"/>
         <enum value="0x8D8D" name="GL_LUMINANCE_ALPHA16I_EXT"/>
-        <enum value="0x8D8E" name="GL_RGBA8I"/>
+        <enum value="0x8D8E" name="GL_RGBA8I" group="InternalFormat"/>
         <enum value="0x8D8E" name="GL_RGBA8I_EXT"/>
-        <enum value="0x8D8F" name="GL_RGB8I"/>
+        <enum value="0x8D8F" name="GL_RGB8I" group="InternalFormat"/>
         <enum value="0x8D8F" name="GL_RGB8I_EXT"/>
         <enum value="0x8D90" name="GL_ALPHA8I_EXT"/>
         <enum value="0x8D91" name="GL_INTENSITY8I_EXT"/>
         <enum value="0x8D92" name="GL_LUMINANCE8I_EXT"/>
         <enum value="0x8D93" name="GL_LUMINANCE_ALPHA8I_EXT"/>
-        <enum value="0x8D94" name="GL_RED_INTEGER"/>
+        <enum value="0x8D94" name="GL_RED_INTEGER" group="PixelFormat"/>
         <enum value="0x8D94" name="GL_RED_INTEGER_EXT"/>
-        <enum value="0x8D95" name="GL_GREEN_INTEGER"/>
+        <enum value="0x8D95" name="GL_GREEN_INTEGER" group="PixelFormat"/>
         <enum value="0x8D95" name="GL_GREEN_INTEGER_EXT"/>
-        <enum value="0x8D96" name="GL_BLUE_INTEGER"/>
+        <enum value="0x8D96" name="GL_BLUE_INTEGER" group="PixelFormat"/>
         <enum value="0x8D96" name="GL_BLUE_INTEGER_EXT"/>
         <enum value="0x8D97" name="GL_ALPHA_INTEGER"/>
         <enum value="0x8D97" name="GL_ALPHA_INTEGER_EXT"/>
-        <enum value="0x8D98" name="GL_RGB_INTEGER"/>
+        <enum value="0x8D98" name="GL_RGB_INTEGER" group="PixelFormat"/>
         <enum value="0x8D98" name="GL_RGB_INTEGER_EXT"/>
-        <enum value="0x8D99" name="GL_RGBA_INTEGER"/>
+        <enum value="0x8D99" name="GL_RGBA_INTEGER" group="PixelFormat"/>
         <enum value="0x8D99" name="GL_RGBA_INTEGER_EXT"/>
-        <enum value="0x8D9A" name="GL_BGR_INTEGER"/>
+        <enum value="0x8D9A" name="GL_BGR_INTEGER" group="PixelFormat"/>
         <enum value="0x8D9A" name="GL_BGR_INTEGER_EXT"/>
-        <enum value="0x8D9B" name="GL_BGRA_INTEGER"/>
+        <enum value="0x8D9B" name="GL_BGRA_INTEGER" group="PixelFormat"/>
         <enum value="0x8D9B" name="GL_BGRA_INTEGER_EXT"/>
         <enum value="0x8D9C" name="GL_LUMINANCE_INTEGER_EXT"/>
         <enum value="0x8D9D" name="GL_LUMINANCE_ALPHA_INTEGER_EXT"/>
         <enum value="0x8D9E" name="GL_RGBA_INTEGER_MODE_EXT"/>
-        <enum value="0x8D9F" name="GL_INT_2_10_10_10_REV"/>
+        <enum value="0x8D9F" name="GL_INT_2_10_10_10_REV" group="VertexAttribPointerType,VertexAttribType"/>
         <enum value="0x8DA0" name="GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV"/>
         <enum value="0x8DA1" name="GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV"/>
         <enum value="0x8DA2" name="GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV"/>
@@ -9858,11 +9857,11 @@
         <enum value="0x8DA4" name="GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV"/>
         <enum value="0x8DA5" name="GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV"/>
         <enum value="0x8DA6" name="GL_MAX_PROGRAM_GENERIC_RESULTS_NV"/>
-        <enum value="0x8DA7" name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED"/>
-        <enum value="0x8DA7" name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB"/>
-        <enum value="0x8DA7" name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT"/>
-        <enum value="0x8DA7" name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES"/>
-        <enum value="0x8DA8" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS"/>
+        <enum value="0x8DA7" name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8DA7" name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8DA7" name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8DA7" name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES" group="FramebufferAttachmentParameterName"/>
+        <enum value="0x8DA8" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS" group="FramebufferStatus"/>
         <enum value="0x8DA8" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB"/>
         <enum value="0x8DA8" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT"/>
         <enum value="0x8DA8" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES"/>
@@ -9870,80 +9869,80 @@
         <enum value="0x8DA9" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT"/>
             <!-- Also see the odd namespace "NVTransformFeedbackToken" above -->
         <enum value="0x8DAA" name="GL_LAYER_NV"/>
-        <enum value="0x8DAB" name="GL_DEPTH_COMPONENT32F_NV"/>
-        <enum value="0x8DAC" name="GL_DEPTH32F_STENCIL8_NV"/>
+        <enum value="0x8DAB" name="GL_DEPTH_COMPONENT32F_NV" group="InternalFormat"/>
+        <enum value="0x8DAC" name="GL_DEPTH32F_STENCIL8_NV" group="InternalFormat"/>
         <enum value="0x8DAD" name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV"/>
         <enum value="0x8DAD" name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV"/>
         <enum value="0x8DAE" name="GL_SHADER_INCLUDE_ARB"/>
         <enum value="0x8DAF" name="GL_DEPTH_BUFFER_FLOAT_MODE_NV"/>
             <unused start="0x8DB0" end="0x8DB8" vendor="NV"/>
-        <enum value="0x8DB9" name="GL_FRAMEBUFFER_SRGB"/>
+        <enum value="0x8DB9" name="GL_FRAMEBUFFER_SRGB" group="EnableCap"/>
         <enum value="0x8DB9" name="GL_FRAMEBUFFER_SRGB_EXT"/>
         <enum value="0x8DBA" name="GL_FRAMEBUFFER_SRGB_CAPABLE_EXT"/>
-        <enum value="0x8DBB" name="GL_COMPRESSED_RED_RGTC1"/>
-        <enum value="0x8DBB" name="GL_COMPRESSED_RED_RGTC1_EXT"/>
-        <enum value="0x8DBC" name="GL_COMPRESSED_SIGNED_RED_RGTC1"/>
-        <enum value="0x8DBC" name="GL_COMPRESSED_SIGNED_RED_RGTC1_EXT"/>
+        <enum value="0x8DBB" name="GL_COMPRESSED_RED_RGTC1" group="InternalFormat"/>
+        <enum value="0x8DBB" name="GL_COMPRESSED_RED_RGTC1_EXT" group="InternalFormat"/>
+        <enum value="0x8DBC" name="GL_COMPRESSED_SIGNED_RED_RGTC1" group="InternalFormat"/>
+        <enum value="0x8DBC" name="GL_COMPRESSED_SIGNED_RED_RGTC1_EXT" group="InternalFormat"/>
         <enum value="0x8DBD" name="GL_COMPRESSED_RED_GREEN_RGTC2_EXT"/>
-        <enum value="0x8DBD" name="GL_COMPRESSED_RG_RGTC2"/>
+        <enum value="0x8DBD" name="GL_COMPRESSED_RG_RGTC2" group="InternalFormat"/>
         <enum value="0x8DBE" name="GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT"/>
-        <enum value="0x8DBE" name="GL_COMPRESSED_SIGNED_RG_RGTC2"/>
-        <enum value="0x8DC0" name="GL_SAMPLER_1D_ARRAY"/>
+        <enum value="0x8DBE" name="GL_COMPRESSED_SIGNED_RG_RGTC2" group="InternalFormat"/>
+        <enum value="0x8DC0" name="GL_SAMPLER_1D_ARRAY" group="GlslTypeToken,UniformType"/>
         <enum value="0x8DC0" name="GL_SAMPLER_1D_ARRAY_EXT"/>
-        <enum value="0x8DC1" name="GL_SAMPLER_2D_ARRAY"/>
+        <enum value="0x8DC1" name="GL_SAMPLER_2D_ARRAY" group="GlslTypeToken,UniformType"/>
         <enum value="0x8DC1" name="GL_SAMPLER_2D_ARRAY_EXT"/>
-        <enum value="0x8DC2" name="GL_SAMPLER_BUFFER"/>
+        <enum value="0x8DC2" name="GL_SAMPLER_BUFFER" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DC2" name="GL_SAMPLER_BUFFER_EXT"/>
         <enum value="0x8DC2" name="GL_SAMPLER_BUFFER_OES"/>
-        <enum value="0x8DC3" name="GL_SAMPLER_1D_ARRAY_SHADOW"/>
+        <enum value="0x8DC3" name="GL_SAMPLER_1D_ARRAY_SHADOW" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DC3" name="GL_SAMPLER_1D_ARRAY_SHADOW_EXT"/>
-        <enum value="0x8DC4" name="GL_SAMPLER_2D_ARRAY_SHADOW"/>
+        <enum value="0x8DC4" name="GL_SAMPLER_2D_ARRAY_SHADOW" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DC4" name="GL_SAMPLER_2D_ARRAY_SHADOW_EXT"/>
         <enum value="0x8DC4" name="GL_SAMPLER_2D_ARRAY_SHADOW_NV"/>
-        <enum value="0x8DC5" name="GL_SAMPLER_CUBE_SHADOW"/>
+        <enum value="0x8DC5" name="GL_SAMPLER_CUBE_SHADOW" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DC5" name="GL_SAMPLER_CUBE_SHADOW_EXT"/>
         <enum value="0x8DC5" name="GL_SAMPLER_CUBE_SHADOW_NV"/>
-        <enum value="0x8DC6" name="GL_UNSIGNED_INT_VEC2"/>
+        <enum value="0x8DC6" name="GL_UNSIGNED_INT_VEC2" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DC6" name="GL_UNSIGNED_INT_VEC2_EXT"/>
-        <enum value="0x8DC7" name="GL_UNSIGNED_INT_VEC3"/>
+        <enum value="0x8DC7" name="GL_UNSIGNED_INT_VEC3" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DC7" name="GL_UNSIGNED_INT_VEC3_EXT"/>
-        <enum value="0x8DC8" name="GL_UNSIGNED_INT_VEC4"/>
+        <enum value="0x8DC8" name="GL_UNSIGNED_INT_VEC4" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DC8" name="GL_UNSIGNED_INT_VEC4_EXT"/>
-        <enum value="0x8DC9" name="GL_INT_SAMPLER_1D"/>
+        <enum value="0x8DC9" name="GL_INT_SAMPLER_1D" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DC9" name="GL_INT_SAMPLER_1D_EXT"/>
-        <enum value="0x8DCA" name="GL_INT_SAMPLER_2D"/>
+        <enum value="0x8DCA" name="GL_INT_SAMPLER_2D" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DCA" name="GL_INT_SAMPLER_2D_EXT"/>
-        <enum value="0x8DCB" name="GL_INT_SAMPLER_3D"/>
+        <enum value="0x8DCB" name="GL_INT_SAMPLER_3D" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DCB" name="GL_INT_SAMPLER_3D_EXT"/>
-        <enum value="0x8DCC" name="GL_INT_SAMPLER_CUBE"/>
+        <enum value="0x8DCC" name="GL_INT_SAMPLER_CUBE" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DCC" name="GL_INT_SAMPLER_CUBE_EXT"/>
-        <enum value="0x8DCD" name="GL_INT_SAMPLER_2D_RECT"/>
+        <enum value="0x8DCD" name="GL_INT_SAMPLER_2D_RECT" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DCD" name="GL_INT_SAMPLER_2D_RECT_EXT"/>
-        <enum value="0x8DCE" name="GL_INT_SAMPLER_1D_ARRAY"/>
+        <enum value="0x8DCE" name="GL_INT_SAMPLER_1D_ARRAY" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DCE" name="GL_INT_SAMPLER_1D_ARRAY_EXT"/>
-        <enum value="0x8DCF" name="GL_INT_SAMPLER_2D_ARRAY"/>
+        <enum value="0x8DCF" name="GL_INT_SAMPLER_2D_ARRAY" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DCF" name="GL_INT_SAMPLER_2D_ARRAY_EXT"/>
-        <enum value="0x8DD0" name="GL_INT_SAMPLER_BUFFER"/>
+        <enum value="0x8DD0" name="GL_INT_SAMPLER_BUFFER" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DD0" name="GL_INT_SAMPLER_BUFFER_EXT"/>
         <enum value="0x8DD0" name="GL_INT_SAMPLER_BUFFER_OES"/>
-        <enum value="0x8DD1" name="GL_UNSIGNED_INT_SAMPLER_1D"/>
+        <enum value="0x8DD1" name="GL_UNSIGNED_INT_SAMPLER_1D" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DD1" name="GL_UNSIGNED_INT_SAMPLER_1D_EXT"/>
-        <enum value="0x8DD2" name="GL_UNSIGNED_INT_SAMPLER_2D"/>
+        <enum value="0x8DD2" name="GL_UNSIGNED_INT_SAMPLER_2D" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DD2" name="GL_UNSIGNED_INT_SAMPLER_2D_EXT"/>
-        <enum value="0x8DD3" name="GL_UNSIGNED_INT_SAMPLER_3D"/>
+        <enum value="0x8DD3" name="GL_UNSIGNED_INT_SAMPLER_3D" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DD3" name="GL_UNSIGNED_INT_SAMPLER_3D_EXT"/>
-        <enum value="0x8DD4" name="GL_UNSIGNED_INT_SAMPLER_CUBE"/>
+        <enum value="0x8DD4" name="GL_UNSIGNED_INT_SAMPLER_CUBE" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DD4" name="GL_UNSIGNED_INT_SAMPLER_CUBE_EXT"/>
-        <enum value="0x8DD5" name="GL_UNSIGNED_INT_SAMPLER_2D_RECT"/>
+        <enum value="0x8DD5" name="GL_UNSIGNED_INT_SAMPLER_2D_RECT" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DD5" name="GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT"/>
-        <enum value="0x8DD6" name="GL_UNSIGNED_INT_SAMPLER_1D_ARRAY"/>
+        <enum value="0x8DD6" name="GL_UNSIGNED_INT_SAMPLER_1D_ARRAY" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DD6" name="GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT"/>
-        <enum value="0x8DD7" name="GL_UNSIGNED_INT_SAMPLER_2D_ARRAY"/>
+        <enum value="0x8DD7" name="GL_UNSIGNED_INT_SAMPLER_2D_ARRAY" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DD7" name="GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT"/>
-        <enum value="0x8DD8" name="GL_UNSIGNED_INT_SAMPLER_BUFFER"/>
+        <enum value="0x8DD8" name="GL_UNSIGNED_INT_SAMPLER_BUFFER" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8DD8" name="GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT"/>
         <enum value="0x8DD8" name="GL_UNSIGNED_INT_SAMPLER_BUFFER_OES"/>
-        <enum value="0x8DD9" name="GL_GEOMETRY_SHADER"/>
+        <enum value="0x8DD9" name="GL_GEOMETRY_SHADER" group="PipelineParameterName,ShaderType"/>
         <enum value="0x8DD9" name="GL_GEOMETRY_SHADER_ARB"/>
         <enum value="0x8DD9" name="GL_GEOMETRY_SHADER_EXT"/>
         <enum value="0x8DD9" name="GL_GEOMETRY_SHADER_OES"/>
@@ -9957,7 +9956,7 @@
         <enum value="0x8DDD" name="GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT"/>
         <enum value="0x8DDE" name="GL_MAX_VERTEX_VARYING_COMPONENTS_ARB"/>
         <enum value="0x8DDE" name="GL_MAX_VERTEX_VARYING_COMPONENTS_EXT"/>
-        <enum value="0x8DDF" name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS"/>
+        <enum value="0x8DDF" name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS" group="GetPName"/>
         <enum value="0x8DDF" name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB"/>
         <enum value="0x8DDF" name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT"/>
         <enum value="0x8DDF" name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES"/>
@@ -9972,8 +9971,8 @@
         <enum value="0x8DE2" name="GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT"/>
         <enum value="0x8DE3" name="GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT"/>
         <enum value="0x8DE4" name="GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT"/>
-        <enum value="0x8DE5" name="GL_ACTIVE_SUBROUTINES"/>
-        <enum value="0x8DE6" name="GL_ACTIVE_SUBROUTINE_UNIFORMS"/>
+        <enum value="0x8DE5" name="GL_ACTIVE_SUBROUTINES" group="ProgramStagePName"/>
+        <enum value="0x8DE6" name="GL_ACTIVE_SUBROUTINE_UNIFORMS" group="ProgramStagePName"/>
         <enum value="0x8DE7" name="GL_MAX_SUBROUTINES"/>
         <enum value="0x8DE8" name="GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS"/>
         <enum value="0x8DE9" name="GL_NAMED_STRING_LENGTH_ARB"/>
@@ -9985,39 +9984,39 @@
     </enums>
 
     <enums namespace="GL" start="0x8DF0" end="0x8E0F" vendor="OES">
-        <enum value="0x8DF0" name="GL_LOW_FLOAT"/>
-        <enum value="0x8DF1" name="GL_MEDIUM_FLOAT"/>
-        <enum value="0x8DF2" name="GL_HIGH_FLOAT"/>
-        <enum value="0x8DF3" name="GL_LOW_INT"/>
-        <enum value="0x8DF4" name="GL_MEDIUM_INT"/>
-        <enum value="0x8DF5" name="GL_HIGH_INT"/>
+        <enum value="0x8DF0" name="GL_LOW_FLOAT" group="PrecisionType"/>
+        <enum value="0x8DF1" name="GL_MEDIUM_FLOAT" group="PrecisionType"/>
+        <enum value="0x8DF2" name="GL_HIGH_FLOAT" group="PrecisionType"/>
+        <enum value="0x8DF3" name="GL_LOW_INT" group="PrecisionType"/>
+        <enum value="0x8DF4" name="GL_MEDIUM_INT" group="PrecisionType"/>
+        <enum value="0x8DF5" name="GL_HIGH_INT" group="PrecisionType"/>
         <enum value="0x8DF6" name="GL_UNSIGNED_INT_10_10_10_2_OES"/>
         <enum value="0x8DF7" name="GL_INT_10_10_10_2_OES"/>
         <enum value="0x8DF8" name="GL_SHADER_BINARY_FORMATS"/>
-        <enum value="0x8DF9" name="GL_NUM_SHADER_BINARY_FORMATS"/>
-        <enum value="0x8DFA" name="GL_SHADER_COMPILER"/>
-        <enum value="0x8DFB" name="GL_MAX_VERTEX_UNIFORM_VECTORS"/>
-        <enum value="0x8DFC" name="GL_MAX_VARYING_VECTORS"/>
-        <enum value="0x8DFD" name="GL_MAX_FRAGMENT_UNIFORM_VECTORS"/>
+        <enum value="0x8DF9" name="GL_NUM_SHADER_BINARY_FORMATS" group="GetPName"/>
+        <enum value="0x8DFA" name="GL_SHADER_COMPILER" group="GetPName"/>
+        <enum value="0x8DFB" name="GL_MAX_VERTEX_UNIFORM_VECTORS" group="GetPName"/>
+        <enum value="0x8DFC" name="GL_MAX_VARYING_VECTORS" group="GetPName"/>
+        <enum value="0x8DFD" name="GL_MAX_FRAGMENT_UNIFORM_VECTORS" group="GetPName"/>
             <unused start="0x8DFE" end="0x8E0F" vendor="OES"/>
     </enums>
 
     <enums namespace="GL" start="0x8E10" end="0x8E8F" vendor="NV" comment="For Michael Gold 2006/08/07">
-        <enum value="0x8E10" name="GL_RENDERBUFFER_COLOR_SAMPLES_NV"/>
+        <enum value="0x8E10" name="GL_RENDERBUFFER_COLOR_SAMPLES_NV" group="RenderbufferParameterName"/>
         <enum value="0x8E11" name="GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV"/>
         <enum value="0x8E12" name="GL_MULTISAMPLE_COVERAGE_MODES_NV"/>
-        <enum value="0x8E13" name="GL_QUERY_WAIT"/>
+        <enum value="0x8E13" name="GL_QUERY_WAIT" group="ConditionalRenderMode"/>
         <enum value="0x8E13" name="GL_QUERY_WAIT_NV"/>
-        <enum value="0x8E14" name="GL_QUERY_NO_WAIT"/>
+        <enum value="0x8E14" name="GL_QUERY_NO_WAIT" group="ConditionalRenderMode"/>
         <enum value="0x8E14" name="GL_QUERY_NO_WAIT_NV"/>
-        <enum value="0x8E15" name="GL_QUERY_BY_REGION_WAIT"/>
+        <enum value="0x8E15" name="GL_QUERY_BY_REGION_WAIT" group="ConditionalRenderMode"/>
         <enum value="0x8E15" name="GL_QUERY_BY_REGION_WAIT_NV"/>
-        <enum value="0x8E16" name="GL_QUERY_BY_REGION_NO_WAIT"/>
+        <enum value="0x8E16" name="GL_QUERY_BY_REGION_NO_WAIT" group="ConditionalRenderMode"/>
         <enum value="0x8E16" name="GL_QUERY_BY_REGION_NO_WAIT_NV"/>
-        <enum value="0x8E17" name="GL_QUERY_WAIT_INVERTED"/>
-        <enum value="0x8E18" name="GL_QUERY_NO_WAIT_INVERTED"/>
-        <enum value="0x8E19" name="GL_QUERY_BY_REGION_WAIT_INVERTED"/>
-        <enum value="0x8E1A" name="GL_QUERY_BY_REGION_NO_WAIT_INVERTED"/>
+        <enum value="0x8E17" name="GL_QUERY_WAIT_INVERTED" group="ConditionalRenderMode"/>
+        <enum value="0x8E18" name="GL_QUERY_NO_WAIT_INVERTED" group="ConditionalRenderMode"/>
+        <enum value="0x8E19" name="GL_QUERY_BY_REGION_WAIT_INVERTED" group="ConditionalRenderMode"/>
+        <enum value="0x8E1A" name="GL_QUERY_BY_REGION_NO_WAIT_INVERTED" group="ConditionalRenderMode"/>
         <enum value="0x8E1B" name="GL_POLYGON_OFFSET_CLAMP"/>
         <enum value="0x8E1B" name="GL_POLYGON_OFFSET_CLAMP_EXT" alias="GL_POLYGON_OFFSET_CLAMP"/>
             <unused start="0x8E1C" end="0x8E1D" vendor="NV"/>
@@ -10029,20 +10028,20 @@
         <enum value="0x8E1F" name="GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES"/>
         <enum value="0x8E20" name="GL_COLOR_SAMPLES_NV"/>
             <unused start="0x8E21" vendor="NV"/>
-        <enum value="0x8E22" name="GL_TRANSFORM_FEEDBACK"/>
+        <enum value="0x8E22" name="GL_TRANSFORM_FEEDBACK" group="ObjectIdentifier,BindTransformFeedbackTarget"/>
         <enum value="0x8E22" name="GL_TRANSFORM_FEEDBACK_NV"/>
         <enum value="0x8E23" name="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED"/>
-        <enum value="0x8E23" name="GL_TRANSFORM_FEEDBACK_PAUSED" alias="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED"/>
+        <enum value="0x8E23" name="GL_TRANSFORM_FEEDBACK_PAUSED" alias="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED" group="TransformFeedbackPName"/>
         <enum value="0x8E23" name="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV"/>
         <enum value="0x8E24" name="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE"/>
-        <enum value="0x8E24" name="GL_TRANSFORM_FEEDBACK_ACTIVE" alias="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE"/>
+        <enum value="0x8E24" name="GL_TRANSFORM_FEEDBACK_ACTIVE" alias="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE" group="TransformFeedbackPName"/>
         <enum value="0x8E24" name="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV"/>
         <enum value="0x8E25" name="GL_TRANSFORM_FEEDBACK_BINDING"/>
         <enum value="0x8E25" name="GL_TRANSFORM_FEEDBACK_BINDING_NV"/>
         <enum value="0x8E26" name="GL_FRAME_NV"/>
         <enum value="0x8E27" name="GL_FIELDS_NV"/>
         <enum value="0x8E28" name="GL_CURRENT_TIME_NV"/>
-        <enum value="0x8E28" name="GL_TIMESTAMP"/>
+        <enum value="0x8E28" name="GL_TIMESTAMP" group="QueryCounterTarget,GetPName"/>
         <enum value="0x8E28" name="GL_TIMESTAMP_EXT"/>
         <enum value="0x8E29" name="GL_NUM_FILL_STREAMS_NV"/>
         <enum value="0x8E2A" name="GL_PRESENT_TIME_NV"/>
@@ -10052,36 +10051,36 @@
         <enum value="0x8E2E" name="GL_TRANSPOSE_PROGRAM_MATRIX_EXT"/>
         <enum value="0x8E2F" name="GL_PROGRAM_MATRIX_STACK_DEPTH_EXT"/>
             <unused start="0x8E30" end="0x8E41" vendor="NV"/>
-        <enum value="0x8E42" name="GL_TEXTURE_SWIZZLE_R"/>
+        <enum value="0x8E42" name="GL_TEXTURE_SWIZZLE_R" group="TextureParameterName"/>
         <enum value="0x8E42" name="GL_TEXTURE_SWIZZLE_R_EXT"/>
-        <enum value="0x8E43" name="GL_TEXTURE_SWIZZLE_G"/>
+        <enum value="0x8E43" name="GL_TEXTURE_SWIZZLE_G" group="TextureParameterName"/>
         <enum value="0x8E43" name="GL_TEXTURE_SWIZZLE_G_EXT"/>
-        <enum value="0x8E44" name="GL_TEXTURE_SWIZZLE_B"/>
+        <enum value="0x8E44" name="GL_TEXTURE_SWIZZLE_B" group="TextureParameterName"/>
         <enum value="0x8E44" name="GL_TEXTURE_SWIZZLE_B_EXT"/>
-        <enum value="0x8E45" name="GL_TEXTURE_SWIZZLE_A"/>
+        <enum value="0x8E45" name="GL_TEXTURE_SWIZZLE_A" group="TextureParameterName"/>
         <enum value="0x8E45" name="GL_TEXTURE_SWIZZLE_A_EXT"/>
-        <enum value="0x8E46" name="GL_TEXTURE_SWIZZLE_RGBA"/>
+        <enum value="0x8E46" name="GL_TEXTURE_SWIZZLE_RGBA" group="TextureParameterName"/>
         <enum value="0x8E46" name="GL_TEXTURE_SWIZZLE_RGBA_EXT"/>
-        <enum value="0x8E47" name="GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS"/>
-        <enum value="0x8E48" name="GL_ACTIVE_SUBROUTINE_MAX_LENGTH"/>
-        <enum value="0x8E49" name="GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH"/>
-        <enum value="0x8E4A" name="GL_NUM_COMPATIBLE_SUBROUTINES"/>
-        <enum value="0x8E4B" name="GL_COMPATIBLE_SUBROUTINES"/>
+        <enum value="0x8E47" name="GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS" group="ProgramStagePName"/>
+        <enum value="0x8E48" name="GL_ACTIVE_SUBROUTINE_MAX_LENGTH" group="ProgramStagePName"/>
+        <enum value="0x8E49" name="GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH" group="ProgramStagePName"/>
+        <enum value="0x8E4A" name="GL_NUM_COMPATIBLE_SUBROUTINES" group="ProgramResourceProperty,SubroutineParameterName"/>
+        <enum value="0x8E4B" name="GL_COMPATIBLE_SUBROUTINES" group="ProgramResourceProperty,SubroutineParameterName"/>
         <enum value="0x8E4C" name="GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION"/>
         <enum value="0x8E4C" name="GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT"/>
-        <enum value="0x8E4D" name="GL_FIRST_VERTEX_CONVENTION"/>
+        <enum value="0x8E4D" name="GL_FIRST_VERTEX_CONVENTION" group="VertexProvokingMode"/>
         <enum value="0x8E4D" name="GL_FIRST_VERTEX_CONVENTION_EXT"/>
         <enum value="0x8E4D" name="GL_FIRST_VERTEX_CONVENTION_OES"/>
-        <enum value="0x8E4E" name="GL_LAST_VERTEX_CONVENTION"/>
+        <enum value="0x8E4E" name="GL_LAST_VERTEX_CONVENTION" group="VertexProvokingMode"/>
         <enum value="0x8E4E" name="GL_LAST_VERTEX_CONVENTION_EXT"/>
         <enum value="0x8E4E" name="GL_LAST_VERTEX_CONVENTION_OES"/>
-        <enum value="0x8E4F" name="GL_PROVOKING_VERTEX"/>
+        <enum value="0x8E4F" name="GL_PROVOKING_VERTEX" group="GetPName"/>
         <enum value="0x8E4F" name="GL_PROVOKING_VERTEX_EXT"/>
-        <enum value="0x8E50" name="GL_SAMPLE_POSITION"/>
+        <enum value="0x8E50" name="GL_SAMPLE_POSITION" group="GetMultisamplePNameNV"/>
         <enum value="0x8E50" name="GL_SAMPLE_POSITION_NV"/>
-        <enum value="0x8E50" name="GL_SAMPLE_LOCATION_ARB" alias="GL_SAMPLE_POSITION"/>
+        <enum value="0x8E50" name="GL_SAMPLE_LOCATION_ARB" alias="GL_SAMPLE_POSITION" group="GetMultisamplePNameNV"/>
         <enum value="0x8E50" name="GL_SAMPLE_LOCATION_NV" alias="GL_SAMPLE_POSITION_NV"/>
-        <enum value="0x8E51" name="GL_SAMPLE_MASK"/>
+        <enum value="0x8E51" name="GL_SAMPLE_MASK" group="EnableCap"/>
         <enum value="0x8E51" name="GL_SAMPLE_MASK_NV"/>
         <enum value="0x8E52" name="GL_SAMPLE_MASK_VALUE"/>
         <enum value="0x8E52" name="GL_SAMPLE_MASK_VALUE_NV"/>
@@ -10091,7 +10090,7 @@
         <enum value="0x8E56" name="GL_SAMPLER_RENDERBUFFER_NV"/>
         <enum value="0x8E57" name="GL_INT_SAMPLER_RENDERBUFFER_NV"/>
         <enum value="0x8E58" name="GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV"/>
-        <enum value="0x8E59" name="GL_MAX_SAMPLE_MASK_WORDS"/>
+        <enum value="0x8E59" name="GL_MAX_SAMPLE_MASK_WORDS" group="GetPName"/>
         <enum value="0x8E59" name="GL_MAX_SAMPLE_MASK_WORDS_NV"/>
         <enum value="0x8E5A" name="GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV"/>
         <enum value="0x8E5A" name="GL_MAX_GEOMETRY_SHADER_INVOCATIONS"/>
@@ -10130,12 +10129,12 @@
         <enum value="0x8E6F" name="GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV"/>
         <enum value="0x8E70" name="GL_MAX_TRANSFORM_FEEDBACK_BUFFERS"/>
         <enum value="0x8E71" name="GL_MAX_VERTEX_STREAMS"/>
-        <enum value="0x8E72" name="GL_PATCH_VERTICES"/>
+        <enum value="0x8E72" name="GL_PATCH_VERTICES" group="PatchParameterName"/>
         <enum value="0x8E72" name="GL_PATCH_VERTICES_EXT"/>
         <enum value="0x8E72" name="GL_PATCH_VERTICES_OES"/>
-        <enum value="0x8E73" name="GL_PATCH_DEFAULT_INNER_LEVEL"/>
+        <enum value="0x8E73" name="GL_PATCH_DEFAULT_INNER_LEVEL" group="PatchParameterName"/>
         <enum value="0x8E73" name="GL_PATCH_DEFAULT_INNER_LEVEL_EXT"/>
-        <enum value="0x8E74" name="GL_PATCH_DEFAULT_OUTER_LEVEL"/>
+        <enum value="0x8E74" name="GL_PATCH_DEFAULT_OUTER_LEVEL" group="PatchParameterName"/>
         <enum value="0x8E74" name="GL_PATCH_DEFAULT_OUTER_LEVEL_EXT"/>
         <enum value="0x8E75" name="GL_TESS_CONTROL_OUTPUT_VERTICES"/>
         <enum value="0x8E75" name="GL_TESS_CONTROL_OUTPUT_VERTICES_EXT"/>
@@ -10191,10 +10190,10 @@
         <enum value="0x8E86" name="GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS"/>
         <enum value="0x8E86" name="GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT"/>
         <enum value="0x8E86" name="GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES"/>
-        <enum value="0x8E87" name="GL_TESS_EVALUATION_SHADER"/>
+        <enum value="0x8E87" name="GL_TESS_EVALUATION_SHADER" group="PipelineParameterName,ShaderType"/>
         <enum value="0x8E87" name="GL_TESS_EVALUATION_SHADER_EXT"/>
         <enum value="0x8E87" name="GL_TESS_EVALUATION_SHADER_OES"/>
-        <enum value="0x8E88" name="GL_TESS_CONTROL_SHADER"/>
+        <enum value="0x8E88" name="GL_TESS_CONTROL_SHADER" group="PipelineParameterName,ShaderType"/>
         <enum value="0x8E88" name="GL_TESS_CONTROL_SHADER_EXT"/>
         <enum value="0x8E88" name="GL_TESS_CONTROL_SHADER_OES"/>
         <enum value="0x8E89" name="GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS"/>
@@ -10204,16 +10203,16 @@
         <enum value="0x8E8A" name="GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT"/>
         <enum value="0x8E8A" name="GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES"/>
             <unused start="0x8E8B" vendor="NV"/>
-        <enum value="0x8E8C" name="GL_COMPRESSED_RGBA_BPTC_UNORM"/>
+        <enum value="0x8E8C" name="GL_COMPRESSED_RGBA_BPTC_UNORM" group="InternalFormat"/>
         <enum value="0x8E8C" name="GL_COMPRESSED_RGBA_BPTC_UNORM_ARB"/>
         <enum value="0x8E8C" name="GL_COMPRESSED_RGBA_BPTC_UNORM_EXT"/>
-        <enum value="0x8E8D" name="GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM"/>
+        <enum value="0x8E8D" name="GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM" group="InternalFormat"/>
         <enum value="0x8E8D" name="GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB"/>
         <enum value="0x8E8D" name="GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT"/>
-        <enum value="0x8E8E" name="GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT"/>
+        <enum value="0x8E8E" name="GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT" group="InternalFormat"/>
         <enum value="0x8E8E" name="GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB"/>
         <enum value="0x8E8E" name="GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT"/>
-        <enum value="0x8E8F" name="GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT"/>
+        <enum value="0x8E8F" name="GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT" group="InternalFormat"/>
         <enum value="0x8E8F" name="GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB"/>
         <enum value="0x8E8F" name="GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT"/>
     </enums>
@@ -10276,10 +10275,10 @@
         <enum value="0x8F33" name="GL_ELEMENT_ARRAY_LENGTH_NV"/>
         <enum value="0x8F34" name="GL_GPU_ADDRESS_NV"/>
         <enum value="0x8F35" name="GL_MAX_SHADER_BUFFER_ADDRESS_NV"/>
-        <enum value="0x8F36" name="GL_COPY_READ_BUFFER"/>
+        <enum value="0x8F36" name="GL_COPY_READ_BUFFER" group="CopyBufferSubDataTarget,BufferTargetARB,BufferStorageTarget"/>
         <enum value="0x8F36" name="GL_COPY_READ_BUFFER_NV"/>
         <enum value="0x8F36" name="GL_COPY_READ_BUFFER_BINDING" alias="GL_COPY_READ_BUFFER"/>
-        <enum value="0x8F37" name="GL_COPY_WRITE_BUFFER"/>
+        <enum value="0x8F37" name="GL_COPY_WRITE_BUFFER" group="CopyBufferSubDataTarget,BufferTargetARB,BufferStorageTarget"/>
         <enum value="0x8F37" name="GL_COPY_WRITE_BUFFER_NV"/>
         <enum value="0x8F37" name="GL_COPY_WRITE_BUFFER_BINDING" alias="GL_COPY_WRITE_BUFFER"/>
         <enum value="0x8F38" name="GL_MAX_IMAGE_UNITS"/>
@@ -10297,30 +10296,30 @@
         <enum value="0x8F3D" name="GL_IMAGE_BINDING_LAYER_EXT"/>
         <enum value="0x8F3E" name="GL_IMAGE_BINDING_ACCESS"/>
         <enum value="0x8F3E" name="GL_IMAGE_BINDING_ACCESS_EXT"/>
-        <enum value="0x8F3F" name="GL_DRAW_INDIRECT_BUFFER"/>
+        <enum value="0x8F3F" name="GL_DRAW_INDIRECT_BUFFER" group="CopyBufferSubDataTarget,BufferTargetARB,BufferStorageTarget"/>
         <enum value="0x8F40" name="GL_DRAW_INDIRECT_UNIFIED_NV"/>
         <enum value="0x8F41" name="GL_DRAW_INDIRECT_ADDRESS_NV"/>
         <enum value="0x8F42" name="GL_DRAW_INDIRECT_LENGTH_NV"/>
         <enum value="0x8F43" name="GL_DRAW_INDIRECT_BUFFER_BINDING"/>
         <enum value="0x8F44" name="GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV"/>
         <enum value="0x8F45" name="GL_MAX_PROGRAM_SUBROUTINE_NUM_NV"/>
-        <enum value="0x8F46" name="GL_DOUBLE_MAT2"/>
+        <enum value="0x8F46" name="GL_DOUBLE_MAT2" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8F46" name="GL_DOUBLE_MAT2_EXT"/>
-        <enum value="0x8F47" name="GL_DOUBLE_MAT3"/>
+        <enum value="0x8F47" name="GL_DOUBLE_MAT3" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8F47" name="GL_DOUBLE_MAT3_EXT"/>
-        <enum value="0x8F48" name="GL_DOUBLE_MAT4"/>
+        <enum value="0x8F48" name="GL_DOUBLE_MAT4" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8F48" name="GL_DOUBLE_MAT4_EXT"/>
-        <enum value="0x8F49" name="GL_DOUBLE_MAT2x3"/>
+        <enum value="0x8F49" name="GL_DOUBLE_MAT2x3" group="UniformType,AttributeType"/>
         <enum value="0x8F49" name="GL_DOUBLE_MAT2x3_EXT"/>
-        <enum value="0x8F4A" name="GL_DOUBLE_MAT2x4"/>
+        <enum value="0x8F4A" name="GL_DOUBLE_MAT2x4" group="UniformType,AttributeType"/>
         <enum value="0x8F4A" name="GL_DOUBLE_MAT2x4_EXT"/>
-        <enum value="0x8F4B" name="GL_DOUBLE_MAT3x2"/>
+        <enum value="0x8F4B" name="GL_DOUBLE_MAT3x2" group="UniformType,AttributeType"/>
         <enum value="0x8F4B" name="GL_DOUBLE_MAT3x2_EXT"/>
-        <enum value="0x8F4C" name="GL_DOUBLE_MAT3x4"/>
+        <enum value="0x8F4C" name="GL_DOUBLE_MAT3x4" group="UniformType,AttributeType"/>
         <enum value="0x8F4C" name="GL_DOUBLE_MAT3x4_EXT"/>
-        <enum value="0x8F4D" name="GL_DOUBLE_MAT4x2"/>
+        <enum value="0x8F4D" name="GL_DOUBLE_MAT4x2" group="UniformType,AttributeType"/>
         <enum value="0x8F4D" name="GL_DOUBLE_MAT4x2_EXT"/>
-        <enum value="0x8F4E" name="GL_DOUBLE_MAT4x3"/>
+        <enum value="0x8F4E" name="GL_DOUBLE_MAT4x3" group="UniformType,AttributeType"/>
         <enum value="0x8F4E" name="GL_DOUBLE_MAT4x3_EXT"/>
         <enum value="0x8F4F" name="GL_VERTEX_BINDING_BUFFER"/>
     </enums>
@@ -10356,21 +10355,21 @@
         <enum value="0x8F91" name="GL_RG_SNORM"/>
         <enum value="0x8F92" name="GL_RGB_SNORM"/>
         <enum value="0x8F93" name="GL_RGBA_SNORM"/>
-        <enum value="0x8F94" name="GL_R8_SNORM"/>
-        <enum value="0x8F95" name="GL_RG8_SNORM"/>
-        <enum value="0x8F96" name="GL_RGB8_SNORM"/>
-        <enum value="0x8F97" name="GL_RGBA8_SNORM"/>
-        <enum value="0x8F98" name="GL_R16_SNORM"/>
-        <enum value="0x8F98" name="GL_R16_SNORM_EXT"/>
-        <enum value="0x8F99" name="GL_RG16_SNORM"/>
-        <enum value="0x8F99" name="GL_RG16_SNORM_EXT"/>
-        <enum value="0x8F9A" name="GL_RGB16_SNORM"/>
-        <enum value="0x8F9A" name="GL_RGB16_SNORM_EXT"/>
+        <enum value="0x8F94" name="GL_R8_SNORM" group="InternalFormat"/>
+        <enum value="0x8F95" name="GL_RG8_SNORM" group="InternalFormat"/>
+        <enum value="0x8F96" name="GL_RGB8_SNORM" group="InternalFormat"/>
+        <enum value="0x8F97" name="GL_RGBA8_SNORM" group="InternalFormat"/>
+        <enum value="0x8F98" name="GL_R16_SNORM" group="InternalFormat"/>
+        <enum value="0x8F98" name="GL_R16_SNORM_EXT" group="InternalFormat"/>
+        <enum value="0x8F99" name="GL_RG16_SNORM" group="InternalFormat"/>
+        <enum value="0x8F99" name="GL_RG16_SNORM_EXT" group="InternalFormat"/>
+        <enum value="0x8F9A" name="GL_RGB16_SNORM" group="InternalFormat"/>
+        <enum value="0x8F9A" name="GL_RGB16_SNORM_EXT" group="InternalFormat"/>
         <enum value="0x8F9B" name="GL_RGBA16_SNORM"/>
         <enum value="0x8F9B" name="GL_RGBA16_SNORM_EXT"/>
         <enum value="0x8F9C" name="GL_SIGNED_NORMALIZED"/>
-        <enum value="0x8F9D" name="GL_PRIMITIVE_RESTART"/>
-        <enum value="0x8F9E" name="GL_PRIMITIVE_RESTART_INDEX"/>
+        <enum value="0x8F9D" name="GL_PRIMITIVE_RESTART" group="EnableCap"/>
+        <enum value="0x8F9E" name="GL_PRIMITIVE_RESTART_INDEX" group="GetPName"/>
         <enum value="0x8F9F" name="GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB"/>
     </enums>
 
@@ -10378,7 +10377,7 @@
         <enum value="0x8FA0" name="GL_PERFMON_GLOBAL_MODE_QCOM"/>
         <enum value="0x8FA1" name="GL_MAX_SHADER_SUBSAMPLED_IMAGE_UNITS_QCOM"/>
             <unused start="0x8FA2" end="0x8FAF" vendor="QCOM"/>
-        <enum value="0x8FB0" name="GL_BINNING_CONTROL_HINT_QCOM"/>
+        <enum value="0x8FB0" name="GL_BINNING_CONTROL_HINT_QCOM" group="HintTarget"/>
         <enum value="0x8FB1" name="GL_CPU_OPTIMIZED_QCOM"/>
         <enum value="0x8FB2" name="GL_GPU_OPTIMIZED_QCOM"/>
         <enum value="0x8FB3" name="GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM"/>
@@ -10403,11 +10402,11 @@
         <enum value="0x8FE5" name="GL_INT16_VEC2_NV"/>
         <enum value="0x8FE6" name="GL_INT16_VEC3_NV"/>
         <enum value="0x8FE7" name="GL_INT16_VEC4_NV"/>
-        <enum value="0x8FE9" name="GL_INT64_VEC2_ARB"/>
+        <enum value="0x8FE9" name="GL_INT64_VEC2_ARB" group="AttributeType"/>
         <enum value="0x8FE9" name="GL_INT64_VEC2_NV"/>
-        <enum value="0x8FEA" name="GL_INT64_VEC3_ARB"/>
+        <enum value="0x8FEA" name="GL_INT64_VEC3_ARB" group="AttributeType"/>
         <enum value="0x8FEA" name="GL_INT64_VEC3_NV"/>
-        <enum value="0x8FEB" name="GL_INT64_VEC4_ARB"/>
+        <enum value="0x8FEB" name="GL_INT64_VEC4_ARB" group="AttributeType"/>
         <enum value="0x8FEB" name="GL_INT64_VEC4_NV"/>
         <enum value="0x8FEC" name="GL_UNSIGNED_INT8_NV"/>
         <enum value="0x8FED" name="GL_UNSIGNED_INT8_VEC2_NV"/>
@@ -10417,21 +10416,21 @@
         <enum value="0x8FF1" name="GL_UNSIGNED_INT16_VEC2_NV"/>
         <enum value="0x8FF2" name="GL_UNSIGNED_INT16_VEC3_NV"/>
         <enum value="0x8FF3" name="GL_UNSIGNED_INT16_VEC4_NV"/>
-        <enum value="0x8FF5" name="GL_UNSIGNED_INT64_VEC2_ARB"/>
+        <enum value="0x8FF5" name="GL_UNSIGNED_INT64_VEC2_ARB" group="AttributeType"/>
         <enum value="0x8FF5" name="GL_UNSIGNED_INT64_VEC2_NV"/>
-        <enum value="0x8FF6" name="GL_UNSIGNED_INT64_VEC3_ARB"/>
+        <enum value="0x8FF6" name="GL_UNSIGNED_INT64_VEC3_ARB" group="AttributeType"/>
         <enum value="0x8FF6" name="GL_UNSIGNED_INT64_VEC3_NV"/>
-        <enum value="0x8FF7" name="GL_UNSIGNED_INT64_VEC4_ARB"/>
+        <enum value="0x8FF7" name="GL_UNSIGNED_INT64_VEC4_ARB" group="AttributeType"/>
         <enum value="0x8FF7" name="GL_UNSIGNED_INT64_VEC4_NV"/>
         <enum value="0x8FF8" name="GL_FLOAT16_NV"/>
         <enum value="0x8FF9" name="GL_FLOAT16_VEC2_NV"/>
         <enum value="0x8FFA" name="GL_FLOAT16_VEC3_NV"/>
         <enum value="0x8FFB" name="GL_FLOAT16_VEC4_NV"/>
-        <enum value="0x8FFC" name="GL_DOUBLE_VEC2"/>
+        <enum value="0x8FFC" name="GL_DOUBLE_VEC2" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8FFC" name="GL_DOUBLE_VEC2_EXT"/>
-        <enum value="0x8FFD" name="GL_DOUBLE_VEC3"/>
+        <enum value="0x8FFD" name="GL_DOUBLE_VEC3" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8FFD" name="GL_DOUBLE_VEC3_EXT"/>
-        <enum value="0x8FFE" name="GL_DOUBLE_VEC4"/>
+        <enum value="0x8FFE" name="GL_DOUBLE_VEC4" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x8FFE" name="GL_DOUBLE_VEC4_EXT"/>
             <unused start="0x8FFF" vendor="NV"/>
     </enums>
@@ -10445,29 +10444,29 @@
         <enum value="0x9006" name="GL_DISCRETE_AMD"/>
         <enum value="0x9007" name="GL_CONTINUOUS_AMD"/>
             <unused start="0x9008" vendor="AMD"/>
-        <enum value="0x9009" name="GL_TEXTURE_CUBE_MAP_ARRAY"/>
-        <enum value="0x9009" name="GL_TEXTURE_CUBE_MAP_ARRAY_ARB"/>
-        <enum value="0x9009" name="GL_TEXTURE_CUBE_MAP_ARRAY_EXT"/>
-        <enum value="0x9009" name="GL_TEXTURE_CUBE_MAP_ARRAY_OES"/>
+        <enum value="0x9009" name="GL_TEXTURE_CUBE_MAP_ARRAY" group="CopyImageSubDataTarget,TextureTarget"/>
+        <enum value="0x9009" name="GL_TEXTURE_CUBE_MAP_ARRAY_ARB" group="TextureTarget"/>
+        <enum value="0x9009" name="GL_TEXTURE_CUBE_MAP_ARRAY_EXT" group="TextureTarget"/>
+        <enum value="0x9009" name="GL_TEXTURE_CUBE_MAP_ARRAY_OES" group="TextureTarget"/>
         <enum value="0x900A" name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY"/>
         <enum value="0x900A" name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB"/>
         <enum value="0x900A" name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT"/>
         <enum value="0x900A" name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES"/>
-        <enum value="0x900B" name="GL_PROXY_TEXTURE_CUBE_MAP_ARRAY"/>
-        <enum value="0x900B" name="GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB"/>
-        <enum value="0x900C" name="GL_SAMPLER_CUBE_MAP_ARRAY"/>
+        <enum value="0x900B" name="GL_PROXY_TEXTURE_CUBE_MAP_ARRAY" group="TextureTarget"/>
+        <enum value="0x900B" name="GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB" group="TextureTarget"/>
+        <enum value="0x900C" name="GL_SAMPLER_CUBE_MAP_ARRAY" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x900C" name="GL_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
         <enum value="0x900C" name="GL_SAMPLER_CUBE_MAP_ARRAY_EXT"/>
         <enum value="0x900C" name="GL_SAMPLER_CUBE_MAP_ARRAY_OES"/>
-        <enum value="0x900D" name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW"/>
+        <enum value="0x900D" name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x900D" name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB"/>
         <enum value="0x900D" name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT"/>
         <enum value="0x900D" name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES"/>
-        <enum value="0x900E" name="GL_INT_SAMPLER_CUBE_MAP_ARRAY"/>
+        <enum value="0x900E" name="GL_INT_SAMPLER_CUBE_MAP_ARRAY" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x900E" name="GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
         <enum value="0x900E" name="GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT"/>
         <enum value="0x900E" name="GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES"/>
-        <enum value="0x900F" name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY"/>
+        <enum value="0x900F" name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x900F" name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
         <enum value="0x900F" name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT"/>
         <enum value="0x900F" name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES"/>
@@ -10527,152 +10526,152 @@
         <enum value="0x9049" name="GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX"/>
         <enum value="0x904A" name="GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX"/>
         <enum value="0x904B" name="GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX"/>
-        <enum value="0x904C" name="GL_IMAGE_1D"/>
+        <enum value="0x904C" name="GL_IMAGE_1D" group="GlslTypeToken,AttributeType"/>
         <enum value="0x904C" name="GL_IMAGE_1D_EXT"/>
-        <enum value="0x904D" name="GL_IMAGE_2D"/>
+        <enum value="0x904D" name="GL_IMAGE_2D" group="GlslTypeToken,AttributeType"/>
         <enum value="0x904D" name="GL_IMAGE_2D_EXT"/>
-        <enum value="0x904E" name="GL_IMAGE_3D"/>
+        <enum value="0x904E" name="GL_IMAGE_3D" group="GlslTypeToken,AttributeType"/>
         <enum value="0x904E" name="GL_IMAGE_3D_EXT"/>
-        <enum value="0x904F" name="GL_IMAGE_2D_RECT"/>
+        <enum value="0x904F" name="GL_IMAGE_2D_RECT" group="GlslTypeToken,AttributeType"/>
         <enum value="0x904F" name="GL_IMAGE_2D_RECT_EXT"/>
-        <enum value="0x9050" name="GL_IMAGE_CUBE"/>
+        <enum value="0x9050" name="GL_IMAGE_CUBE" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9050" name="GL_IMAGE_CUBE_EXT"/>
-        <enum value="0x9051" name="GL_IMAGE_BUFFER"/>
+        <enum value="0x9051" name="GL_IMAGE_BUFFER" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9051" name="GL_IMAGE_BUFFER_EXT"/>
         <enum value="0x9051" name="GL_IMAGE_BUFFER_OES"/>
-        <enum value="0x9052" name="GL_IMAGE_1D_ARRAY"/>
+        <enum value="0x9052" name="GL_IMAGE_1D_ARRAY" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9052" name="GL_IMAGE_1D_ARRAY_EXT"/>
-        <enum value="0x9053" name="GL_IMAGE_2D_ARRAY"/>
+        <enum value="0x9053" name="GL_IMAGE_2D_ARRAY" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9053" name="GL_IMAGE_2D_ARRAY_EXT"/>
-        <enum value="0x9054" name="GL_IMAGE_CUBE_MAP_ARRAY"/>
+        <enum value="0x9054" name="GL_IMAGE_CUBE_MAP_ARRAY" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9054" name="GL_IMAGE_CUBE_MAP_ARRAY_EXT"/>
         <enum value="0x9054" name="GL_IMAGE_CUBE_MAP_ARRAY_OES"/>
-        <enum value="0x9055" name="GL_IMAGE_2D_MULTISAMPLE"/>
+        <enum value="0x9055" name="GL_IMAGE_2D_MULTISAMPLE" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9055" name="GL_IMAGE_2D_MULTISAMPLE_EXT"/>
-        <enum value="0x9056" name="GL_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+        <enum value="0x9056" name="GL_IMAGE_2D_MULTISAMPLE_ARRAY" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9056" name="GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
-        <enum value="0x9057" name="GL_INT_IMAGE_1D"/>
+        <enum value="0x9057" name="GL_INT_IMAGE_1D" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9057" name="GL_INT_IMAGE_1D_EXT"/>
-        <enum value="0x9058" name="GL_INT_IMAGE_2D"/>
+        <enum value="0x9058" name="GL_INT_IMAGE_2D" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9058" name="GL_INT_IMAGE_2D_EXT"/>
-        <enum value="0x9059" name="GL_INT_IMAGE_3D"/>
+        <enum value="0x9059" name="GL_INT_IMAGE_3D" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9059" name="GL_INT_IMAGE_3D_EXT"/>
-        <enum value="0x905A" name="GL_INT_IMAGE_2D_RECT"/>
+        <enum value="0x905A" name="GL_INT_IMAGE_2D_RECT" group="GlslTypeToken,AttributeType"/>
         <enum value="0x905A" name="GL_INT_IMAGE_2D_RECT_EXT"/>
-        <enum value="0x905B" name="GL_INT_IMAGE_CUBE"/>
+        <enum value="0x905B" name="GL_INT_IMAGE_CUBE" group="GlslTypeToken,AttributeType"/>
         <enum value="0x905B" name="GL_INT_IMAGE_CUBE_EXT"/>
-        <enum value="0x905C" name="GL_INT_IMAGE_BUFFER"/>
+        <enum value="0x905C" name="GL_INT_IMAGE_BUFFER" group="GlslTypeToken,AttributeType"/>
         <enum value="0x905C" name="GL_INT_IMAGE_BUFFER_EXT"/>
         <enum value="0x905C" name="GL_INT_IMAGE_BUFFER_OES"/>
-        <enum value="0x905D" name="GL_INT_IMAGE_1D_ARRAY"/>
+        <enum value="0x905D" name="GL_INT_IMAGE_1D_ARRAY" group="GlslTypeToken,AttributeType"/>
         <enum value="0x905D" name="GL_INT_IMAGE_1D_ARRAY_EXT"/>
-        <enum value="0x905E" name="GL_INT_IMAGE_2D_ARRAY"/>
+        <enum value="0x905E" name="GL_INT_IMAGE_2D_ARRAY" group="GlslTypeToken,AttributeType"/>
         <enum value="0x905E" name="GL_INT_IMAGE_2D_ARRAY_EXT"/>
-        <enum value="0x905F" name="GL_INT_IMAGE_CUBE_MAP_ARRAY"/>
+        <enum value="0x905F" name="GL_INT_IMAGE_CUBE_MAP_ARRAY" group="GlslTypeToken,AttributeType"/>
         <enum value="0x905F" name="GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT"/>
         <enum value="0x905F" name="GL_INT_IMAGE_CUBE_MAP_ARRAY_OES"/>
-        <enum value="0x9060" name="GL_INT_IMAGE_2D_MULTISAMPLE"/>
+        <enum value="0x9060" name="GL_INT_IMAGE_2D_MULTISAMPLE" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9060" name="GL_INT_IMAGE_2D_MULTISAMPLE_EXT"/>
-        <enum value="0x9061" name="GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+        <enum value="0x9061" name="GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9061" name="GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
-        <enum value="0x9062" name="GL_UNSIGNED_INT_IMAGE_1D"/>
+        <enum value="0x9062" name="GL_UNSIGNED_INT_IMAGE_1D" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9062" name="GL_UNSIGNED_INT_IMAGE_1D_EXT"/>
-        <enum value="0x9063" name="GL_UNSIGNED_INT_IMAGE_2D"/>
+        <enum value="0x9063" name="GL_UNSIGNED_INT_IMAGE_2D" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9063" name="GL_UNSIGNED_INT_IMAGE_2D_EXT"/>
-        <enum value="0x9064" name="GL_UNSIGNED_INT_IMAGE_3D"/>
+        <enum value="0x9064" name="GL_UNSIGNED_INT_IMAGE_3D" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9064" name="GL_UNSIGNED_INT_IMAGE_3D_EXT"/>
-        <enum value="0x9065" name="GL_UNSIGNED_INT_IMAGE_2D_RECT"/>
+        <enum value="0x9065" name="GL_UNSIGNED_INT_IMAGE_2D_RECT" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9065" name="GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT"/>
-        <enum value="0x9066" name="GL_UNSIGNED_INT_IMAGE_CUBE"/>
+        <enum value="0x9066" name="GL_UNSIGNED_INT_IMAGE_CUBE" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9066" name="GL_UNSIGNED_INT_IMAGE_CUBE_EXT"/>
-        <enum value="0x9067" name="GL_UNSIGNED_INT_IMAGE_BUFFER"/>
+        <enum value="0x9067" name="GL_UNSIGNED_INT_IMAGE_BUFFER" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9067" name="GL_UNSIGNED_INT_IMAGE_BUFFER_EXT"/>
         <enum value="0x9067" name="GL_UNSIGNED_INT_IMAGE_BUFFER_OES"/>
-        <enum value="0x9068" name="GL_UNSIGNED_INT_IMAGE_1D_ARRAY"/>
+        <enum value="0x9068" name="GL_UNSIGNED_INT_IMAGE_1D_ARRAY" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9068" name="GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT"/>
-        <enum value="0x9069" name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY"/>
+        <enum value="0x9069" name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY" group="GlslTypeToken,AttributeType"/>
         <enum value="0x9069" name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT"/>
-        <enum value="0x906A" name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY"/>
+        <enum value="0x906A" name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY" group="GlslTypeToken,AttributeType"/>
         <enum value="0x906A" name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT"/>
         <enum value="0x906A" name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES"/>
-        <enum value="0x906B" name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE"/>
+        <enum value="0x906B" name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE" group="GlslTypeToken,AttributeType"/>
         <enum value="0x906B" name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT"/>
-        <enum value="0x906C" name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+        <enum value="0x906C" name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY" group="GlslTypeToken,AttributeType"/>
         <enum value="0x906C" name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
         <enum value="0x906D" name="GL_MAX_IMAGE_SAMPLES"/>
         <enum value="0x906D" name="GL_MAX_IMAGE_SAMPLES_EXT"/>
         <enum value="0x906E" name="GL_IMAGE_BINDING_FORMAT"/>
         <enum value="0x906E" name="GL_IMAGE_BINDING_FORMAT_EXT"/>
-        <enum value="0x906F" name="GL_RGB10_A2UI"/>
-        <enum value="0x9070" name="GL_PATH_FORMAT_SVG_NV"/>
-        <enum value="0x9071" name="GL_PATH_FORMAT_PS_NV"/>
-        <enum value="0x9072" name="GL_STANDARD_FONT_NAME_NV"/>
-        <enum value="0x9073" name="GL_SYSTEM_FONT_NAME_NV"/>
-        <enum value="0x9074" name="GL_FILE_NAME_NV"/>
-        <enum value="0x9075" name="GL_PATH_STROKE_WIDTH_NV"/>
-        <enum value="0x9076" name="GL_PATH_END_CAPS_NV"/>
-        <enum value="0x9077" name="GL_PATH_INITIAL_END_CAP_NV"/>
-        <enum value="0x9078" name="GL_PATH_TERMINAL_END_CAP_NV"/>
-        <enum value="0x9079" name="GL_PATH_JOIN_STYLE_NV"/>
-        <enum value="0x907A" name="GL_PATH_MITER_LIMIT_NV"/>
-        <enum value="0x907B" name="GL_PATH_DASH_CAPS_NV"/>
-        <enum value="0x907C" name="GL_PATH_INITIAL_DASH_CAP_NV"/>
-        <enum value="0x907D" name="GL_PATH_TERMINAL_DASH_CAP_NV"/>
-        <enum value="0x907E" name="GL_PATH_DASH_OFFSET_NV"/>
-        <enum value="0x907F" name="GL_PATH_CLIENT_LENGTH_NV"/>
-        <enum value="0x9080" name="GL_PATH_FILL_MODE_NV"/>
-        <enum value="0x9081" name="GL_PATH_FILL_MASK_NV"/>
-        <enum value="0x9082" name="GL_PATH_FILL_COVER_MODE_NV"/>
-        <enum value="0x9083" name="GL_PATH_STROKE_COVER_MODE_NV"/>
-        <enum value="0x9084" name="GL_PATH_STROKE_MASK_NV"/>
+        <enum value="0x906F" name="GL_RGB10_A2UI" group="InternalFormat"/>
+        <enum value="0x9070" name="GL_PATH_FORMAT_SVG_NV" group="PathStringFormat"/>
+        <enum value="0x9071" name="GL_PATH_FORMAT_PS_NV" group="PathStringFormat"/>
+        <enum value="0x9072" name="GL_STANDARD_FONT_NAME_NV" group="PathFontTarget"/>
+        <enum value="0x9073" name="GL_SYSTEM_FONT_NAME_NV" group="PathFontTarget"/>
+        <enum value="0x9074" name="GL_FILE_NAME_NV" group="PathFontTarget"/>
+        <enum value="0x9075" name="GL_PATH_STROKE_WIDTH_NV" group="PathParameter"/>
+        <enum value="0x9076" name="GL_PATH_END_CAPS_NV" group="PathParameter"/>
+        <enum value="0x9077" name="GL_PATH_INITIAL_END_CAP_NV" group="PathParameter"/>
+        <enum value="0x9078" name="GL_PATH_TERMINAL_END_CAP_NV" group="PathParameter"/>
+        <enum value="0x9079" name="GL_PATH_JOIN_STYLE_NV" group="PathParameter"/>
+        <enum value="0x907A" name="GL_PATH_MITER_LIMIT_NV" group="PathParameter"/>
+        <enum value="0x907B" name="GL_PATH_DASH_CAPS_NV" group="PathParameter"/>
+        <enum value="0x907C" name="GL_PATH_INITIAL_DASH_CAP_NV" group="PathParameter"/>
+        <enum value="0x907D" name="GL_PATH_TERMINAL_DASH_CAP_NV" group="PathParameter"/>
+        <enum value="0x907E" name="GL_PATH_DASH_OFFSET_NV" group="PathParameter"/>
+        <enum value="0x907F" name="GL_PATH_CLIENT_LENGTH_NV" group="PathParameter"/>
+        <enum value="0x9080" name="GL_PATH_FILL_MODE_NV" group="PathParameter,PathFillMode"/>
+        <enum value="0x9081" name="GL_PATH_FILL_MASK_NV" group="PathParameter"/>
+        <enum value="0x9082" name="GL_PATH_FILL_COVER_MODE_NV" group="PathCoverMode,PathParameter"/>
+        <enum value="0x9083" name="GL_PATH_STROKE_COVER_MODE_NV" group="PathParameter"/>
+        <enum value="0x9084" name="GL_PATH_STROKE_MASK_NV" group="PathParameter"/>
             <!-- <enum value="0x9085" name="GL_PATH_SAMPLE_QUALITY_NV"          comment="Removed from extension"/> -->
             <!-- <enum value="0x9086" name="GL_PATH_STROKE_BOUND_NV"            comment="Removed from extension"/> -->
             <!-- <enum value="0x9087" name="GL_PATH_STROKE_OVERSAMPLE_COUNT_NV" comment="Removed from extension"/> -->
-        <enum value="0x9088" name="GL_COUNT_UP_NV"/>
-        <enum value="0x9089" name="GL_COUNT_DOWN_NV"/>
-        <enum value="0x908A" name="GL_PATH_OBJECT_BOUNDING_BOX_NV"/>
-        <enum value="0x908B" name="GL_CONVEX_HULL_NV"/>
+        <enum value="0x9088" name="GL_COUNT_UP_NV" group="PathFillMode"/>
+        <enum value="0x9089" name="GL_COUNT_DOWN_NV" group="PathFillMode"/>
+        <enum value="0x908A" name="GL_PATH_OBJECT_BOUNDING_BOX_NV" group="PathGenMode,PathParameter"/>
+        <enum value="0x908B" name="GL_CONVEX_HULL_NV" group="PathCoverMode"/>
             <!-- <enum value="0x908C" name="GL_MULTI_HULLS_NV"                  comment="Removed from extension"/> -->
-        <enum value="0x908D" name="GL_BOUNDING_BOX_NV"/>
-        <enum value="0x908E" name="GL_TRANSLATE_X_NV"/>
-        <enum value="0x908F" name="GL_TRANSLATE_Y_NV"/>
-        <enum value="0x9090" name="GL_TRANSLATE_2D_NV"/>
-        <enum value="0x9091" name="GL_TRANSLATE_3D_NV"/>
-        <enum value="0x9092" name="GL_AFFINE_2D_NV"/>
+        <enum value="0x908D" name="GL_BOUNDING_BOX_NV" group="PathCoverMode"/>
+        <enum value="0x908E" name="GL_TRANSLATE_X_NV" group="PathTransformType"/>
+        <enum value="0x908F" name="GL_TRANSLATE_Y_NV" group="PathTransformType"/>
+        <enum value="0x9090" name="GL_TRANSLATE_2D_NV" group="PathTransformType"/>
+        <enum value="0x9091" name="GL_TRANSLATE_3D_NV" group="PathTransformType"/>
+        <enum value="0x9092" name="GL_AFFINE_2D_NV" group="PathTransformType"/>
             <!-- <enum value="0x9093" name="GL_PROJECTIVE_2D_NV"                comment="Removed from extension"/> -->
-        <enum value="0x9094" name="GL_AFFINE_3D_NV"/>
+        <enum value="0x9094" name="GL_AFFINE_3D_NV" group="PathTransformType"/>
             <!-- <enum value="0x9095" name="GL_PROJECTIVE_3D_NV"                comment="Removed from extension"/> -->
-        <enum value="0x9096" name="GL_TRANSPOSE_AFFINE_2D_NV"/>
+        <enum value="0x9096" name="GL_TRANSPOSE_AFFINE_2D_NV" group="PathTransformType"/>
             <!-- <enum value="0x9097" name="GL_TRANSPOSE_PROJECTIVE_2D_NV"      comment="Removed from extension"/> -->
-        <enum value="0x9098" name="GL_TRANSPOSE_AFFINE_3D_NV"/>
+        <enum value="0x9098" name="GL_TRANSPOSE_AFFINE_3D_NV" group="PathTransformType"/>
             <!-- <enum value="0x9099" name="GL_TRANSPOSE_PROJECTIVE_3D_NV"      comment="Removed from extension"/> -->
-        <enum value="0x909A" name="GL_UTF8_NV"/>
-        <enum value="0x909B" name="GL_UTF16_NV"/>
-        <enum value="0x909C" name="GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV"/>
-        <enum value="0x909D" name="GL_PATH_COMMAND_COUNT_NV"/>
-        <enum value="0x909E" name="GL_PATH_COORD_COUNT_NV"/>
-        <enum value="0x909F" name="GL_PATH_DASH_ARRAY_COUNT_NV"/>
-        <enum value="0x90A0" name="GL_PATH_COMPUTED_LENGTH_NV"/>
-        <enum value="0x90A1" name="GL_PATH_FILL_BOUNDING_BOX_NV"/>
-        <enum value="0x90A2" name="GL_PATH_STROKE_BOUNDING_BOX_NV"/>
+        <enum value="0x909A" name="GL_UTF8_NV" group="PathElementType"/>
+        <enum value="0x909B" name="GL_UTF16_NV" group="PathElementType"/>
+        <enum value="0x909C" name="GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV" group="PathCoverMode"/>
+        <enum value="0x909D" name="GL_PATH_COMMAND_COUNT_NV" group="PathParameter"/>
+        <enum value="0x909E" name="GL_PATH_COORD_COUNT_NV" group="PathParameter"/>
+        <enum value="0x909F" name="GL_PATH_DASH_ARRAY_COUNT_NV" group="PathParameter"/>
+        <enum value="0x90A0" name="GL_PATH_COMPUTED_LENGTH_NV" group="PathParameter"/>
+        <enum value="0x90A1" name="GL_PATH_FILL_BOUNDING_BOX_NV" group="PathParameter"/>
+        <enum value="0x90A2" name="GL_PATH_STROKE_BOUNDING_BOX_NV" group="PathParameter"/>
         <enum value="0x90A3" name="GL_SQUARE_NV"/>
         <enum value="0x90A4" name="GL_ROUND_NV"/>
         <enum value="0x90A5" name="GL_TRIANGULAR_NV"/>
         <enum value="0x90A6" name="GL_BEVEL_NV"/>
         <enum value="0x90A7" name="GL_MITER_REVERT_NV"/>
         <enum value="0x90A8" name="GL_MITER_TRUNCATE_NV"/>
-        <enum value="0x90A9" name="GL_SKIP_MISSING_GLYPH_NV"/>
-        <enum value="0x90AA" name="GL_USE_MISSING_GLYPH_NV"/>
+        <enum value="0x90A9" name="GL_SKIP_MISSING_GLYPH_NV" group="PathHandleMissingGlyphs"/>
+        <enum value="0x90AA" name="GL_USE_MISSING_GLYPH_NV" group="PathHandleMissingGlyphs"/>
         <enum value="0x90AB" name="GL_PATH_ERROR_POSITION_NV"/>
         <enum value="0x90AC" name="GL_PATH_FOG_GEN_MODE_NV"/>
-        <enum value="0x90AD" name="GL_ACCUM_ADJACENT_PAIRS_NV"/>
-        <enum value="0x90AE" name="GL_ADJACENT_PAIRS_NV"/>
-        <enum value="0x90AF" name="GL_FIRST_TO_REST_NV"/>
+        <enum value="0x90AD" name="GL_ACCUM_ADJACENT_PAIRS_NV" group="PathListMode"/>
+        <enum value="0x90AE" name="GL_ADJACENT_PAIRS_NV" group="PathListMode"/>
+        <enum value="0x90AF" name="GL_FIRST_TO_REST_NV" group="PathListMode"/>
         <enum value="0x90B0" name="GL_PATH_GEN_MODE_NV"/>
         <enum value="0x90B1" name="GL_PATH_GEN_COEFF_NV"/>
         <enum value="0x90B2" name="GL_PATH_GEN_COLOR_FORMAT_NV"/>
         <enum value="0x90B3" name="GL_PATH_GEN_COMPONENTS_NV"/>
-        <enum value="0x90B4" name="GL_PATH_DASH_OFFSET_RESET_NV"/>
+        <enum value="0x90B4" name="GL_PATH_DASH_OFFSET_RESET_NV" group="PathParameter"/>
         <enum value="0x90B5" name="GL_MOVE_TO_RESETS_NV"/>
         <enum value="0x90B6" name="GL_MOVE_TO_CONTINUES_NV"/>
         <enum value="0x90B7" name="GL_PATH_STENCIL_FUNC_NV"/>
@@ -10680,12 +10679,12 @@
         <enum value="0x90B9" name="GL_PATH_STENCIL_VALUE_MASK_NV"/>
         <enum value="0x90BA" name="GL_SCALED_RESOLVE_FASTEST_EXT"/>
         <enum value="0x90BB" name="GL_SCALED_RESOLVE_NICEST_EXT"/>
-        <enum value="0x90BC" name="GL_MIN_MAP_BUFFER_ALIGNMENT"/>
+        <enum value="0x90BC" name="GL_MIN_MAP_BUFFER_ALIGNMENT" group="GetPName"/>
         <enum value="0x90BD" name="GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV"/>
         <enum value="0x90BE" name="GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV"/>
         <enum value="0x90BF" name="GL_PATH_COVER_DEPTH_FUNC_NV"/>
             <unused start="0x90C0" end="0x90C6" vendor="NV"/>
-        <enum value="0x90C7" name="GL_IMAGE_FORMAT_COMPATIBILITY_TYPE"/>
+        <enum value="0x90C7" name="GL_IMAGE_FORMAT_COMPATIBILITY_TYPE" group="InternalFormatPName"/>
         <enum value="0x90C8" name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE"/>
         <enum value="0x90C9" name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS"/>
         <enum value="0x90CA" name="GL_MAX_VERTEX_IMAGE_UNIFORMS"/>
@@ -10702,36 +10701,36 @@
         <enum value="0x90CF" name="GL_MAX_COMBINED_IMAGE_UNIFORMS"/>
         <enum value="0x90D0" name="GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV"/>
         <enum value="0x90D1" name="GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV"/>
-        <enum value="0x90D2" name="GL_SHADER_STORAGE_BUFFER"/>
-        <enum value="0x90D3" name="GL_SHADER_STORAGE_BUFFER_BINDING"/>
-        <enum value="0x90D4" name="GL_SHADER_STORAGE_BUFFER_START"/>
-        <enum value="0x90D5" name="GL_SHADER_STORAGE_BUFFER_SIZE"/>
-        <enum value="0x90D6" name="GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS"/>
-        <enum value="0x90D7" name="GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS"/>
+        <enum value="0x90D2" name="GL_SHADER_STORAGE_BUFFER" group="CopyBufferSubDataTarget,BufferTargetARB,BufferStorageTarget"/>
+        <enum value="0x90D3" name="GL_SHADER_STORAGE_BUFFER_BINDING" group="GetPName"/>
+        <enum value="0x90D4" name="GL_SHADER_STORAGE_BUFFER_START" group="GetPName"/>
+        <enum value="0x90D5" name="GL_SHADER_STORAGE_BUFFER_SIZE" group="GetPName"/>
+        <enum value="0x90D6" name="GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS" group="GetPName"/>
+        <enum value="0x90D7" name="GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS" group="GetPName"/>
         <enum value="0x90D7" name="GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT"/>
         <enum value="0x90D7" name="GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES"/>
-        <enum value="0x90D8" name="GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS"/>
+        <enum value="0x90D8" name="GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS" group="GetPName"/>
         <enum value="0x90D8" name="GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT"/>
         <enum value="0x90D8" name="GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES"/>
-        <enum value="0x90D9" name="GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS"/>
+        <enum value="0x90D9" name="GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS" group="GetPName"/>
         <enum value="0x90D9" name="GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT"/>
         <enum value="0x90D9" name="GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES"/>
-        <enum value="0x90DA" name="GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS"/>
-        <enum value="0x90DB" name="GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS"/>
-        <enum value="0x90DC" name="GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS"/>
-        <enum value="0x90DD" name="GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS"/>
+        <enum value="0x90DA" name="GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS" group="GetPName"/>
+        <enum value="0x90DB" name="GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS" group="GetPName"/>
+        <enum value="0x90DC" name="GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS" group="GetPName"/>
+        <enum value="0x90DD" name="GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS" group="GetPName"/>
         <enum value="0x90DE" name="GL_MAX_SHADER_STORAGE_BLOCK_SIZE"/>
-        <enum value="0x90DF" name="GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT"/>
+        <enum value="0x90DF" name="GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT" group="GetPName"/>
             <unused start="0x90E0" vendor="NV"/>
         <enum value="0x90E1" name="GL_SYNC_X11_FENCE_EXT"/>
             <unused start="0x90E2" end="0x90E9" vendor="NV"/>
-        <enum value="0x90EA" name="GL_DEPTH_STENCIL_TEXTURE_MODE"/>
-        <enum value="0x90EB" name="GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS"/>
+        <enum value="0x90EA" name="GL_DEPTH_STENCIL_TEXTURE_MODE" group="TextureParameterName"/>
+        <enum value="0x90EB" name="GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS" group="GetPName"/>
         <enum value="0x90EB" name="GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB" alias="GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS"/>
-        <enum value="0x90EC" name="GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER"/>
-        <enum value="0x90ED" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER"/>
-        <enum value="0x90EE" name="GL_DISPATCH_INDIRECT_BUFFER"/>
-        <enum value="0x90EF" name="GL_DISPATCH_INDIRECT_BUFFER_BINDING"/>
+        <enum value="0x90EC" name="GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER" group="UniformBlockPName"/>
+        <enum value="0x90ED" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER" group="AtomicCounterBufferPName"/>
+        <enum value="0x90EE" name="GL_DISPATCH_INDIRECT_BUFFER" group="CopyBufferSubDataTarget,BufferTargetARB,BufferStorageTarget"/>
+        <enum value="0x90EF" name="GL_DISPATCH_INDIRECT_BUFFER_BINDING" group="GetPName"/>
         <enum value="0x90F0" name="GL_COLOR_ATTACHMENT_EXT"/>
         <enum value="0x90F1" name="GL_MULTIVIEW_EXT"/>
         <enum value="0x90F2" name="GL_MAX_MULTIVIEW_BUFFERS_EXT"/>
@@ -10739,71 +10738,71 @@
         <enum value="0x90F3" name="GL_CONTEXT_ROBUST_ACCESS_EXT"/>
         <enum value="0x90F3" name="GL_CONTEXT_ROBUST_ACCESS_KHR"/>
             <unused start="0x90F4" end="0x90FA" vendor="NV"/>
-        <enum value="0x90FB" name="GL_COMPUTE_PROGRAM_NV"/>
+        <enum value="0x90FB" name="GL_COMPUTE_PROGRAM_NV" group="ProgramTarget"/>
         <enum value="0x90FC" name="GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV"/>
             <unused start="0x90FD" end="0x90FF" vendor="NV"/>
     </enums>
 
     <enums namespace="GL" start="0x9100" end="0x912F" vendor="ARB">
-        <enum value="0x9100" name="GL_TEXTURE_2D_MULTISAMPLE"/>
-        <enum value="0x9101" name="GL_PROXY_TEXTURE_2D_MULTISAMPLE"/>
-        <enum value="0x9102" name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+        <enum value="0x9100" name="GL_TEXTURE_2D_MULTISAMPLE" group="CopyImageSubDataTarget,TextureTarget"/>
+        <enum value="0x9101" name="GL_PROXY_TEXTURE_2D_MULTISAMPLE" group="TextureTarget"/>
+        <enum value="0x9102" name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY" group="CopyImageSubDataTarget,TextureTarget"/>
         <enum value="0x9102" name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES"/>
-        <enum value="0x9103" name="GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
-        <enum value="0x9104" name="GL_TEXTURE_BINDING_2D_MULTISAMPLE"/>
-        <enum value="0x9105" name="GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY"/>
+        <enum value="0x9103" name="GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY" group="TextureTarget"/>
+        <enum value="0x9104" name="GL_TEXTURE_BINDING_2D_MULTISAMPLE" group="GetPName"/>
+        <enum value="0x9105" name="GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY" group="GetPName"/>
         <enum value="0x9105" name="GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES"/>
         <enum value="0x9106" name="GL_TEXTURE_SAMPLES"/>
         <enum value="0x9107" name="GL_TEXTURE_FIXED_SAMPLE_LOCATIONS"/>
-        <enum value="0x9108" name="GL_SAMPLER_2D_MULTISAMPLE"/>
-        <enum value="0x9109" name="GL_INT_SAMPLER_2D_MULTISAMPLE"/>
-        <enum value="0x910A" name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE"/>
-        <enum value="0x910B" name="GL_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+        <enum value="0x9108" name="GL_SAMPLER_2D_MULTISAMPLE" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x9109" name="GL_INT_SAMPLER_2D_MULTISAMPLE" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x910A" name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE" group="GlslTypeToken,AttributeType,UniformType"/>
+        <enum value="0x910B" name="GL_SAMPLER_2D_MULTISAMPLE_ARRAY" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x910B" name="GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES"/>
-        <enum value="0x910C" name="GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+        <enum value="0x910C" name="GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x910C" name="GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES"/>
-        <enum value="0x910D" name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+        <enum value="0x910D" name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY" group="GlslTypeToken,AttributeType,UniformType"/>
         <enum value="0x910D" name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES"/>
-        <enum value="0x910E" name="GL_MAX_COLOR_TEXTURE_SAMPLES"/>
-        <enum value="0x910F" name="GL_MAX_DEPTH_TEXTURE_SAMPLES"/>
-        <enum value="0x9110" name="GL_MAX_INTEGER_SAMPLES"/>
-        <enum value="0x9111" name="GL_MAX_SERVER_WAIT_TIMEOUT"/>
+        <enum value="0x910E" name="GL_MAX_COLOR_TEXTURE_SAMPLES" group="GetPName"/>
+        <enum value="0x910F" name="GL_MAX_DEPTH_TEXTURE_SAMPLES" group="GetPName"/>
+        <enum value="0x9110" name="GL_MAX_INTEGER_SAMPLES" group="GetPName"/>
+        <enum value="0x9111" name="GL_MAX_SERVER_WAIT_TIMEOUT" group="GetPName"/>
         <enum value="0x9111" name="GL_MAX_SERVER_WAIT_TIMEOUT_APPLE"/>
-        <enum value="0x9112" name="GL_OBJECT_TYPE"/>
+        <enum value="0x9112" name="GL_OBJECT_TYPE" group="SyncParameterName"/>
         <enum value="0x9112" name="GL_OBJECT_TYPE_APPLE"/>
-        <enum value="0x9113" name="GL_SYNC_CONDITION"/>
+        <enum value="0x9113" name="GL_SYNC_CONDITION" group="SyncParameterName"/>
         <enum value="0x9113" name="GL_SYNC_CONDITION_APPLE"/>
-        <enum value="0x9114" name="GL_SYNC_STATUS"/>
+        <enum value="0x9114" name="GL_SYNC_STATUS" group="SyncParameterName"/>
         <enum value="0x9114" name="GL_SYNC_STATUS_APPLE"/>
-        <enum value="0x9115" name="GL_SYNC_FLAGS"/>
+        <enum value="0x9115" name="GL_SYNC_FLAGS" group="SyncParameterName"/>
         <enum value="0x9115" name="GL_SYNC_FLAGS_APPLE"/>
         <enum value="0x9116" name="GL_SYNC_FENCE"/>
         <enum value="0x9116" name="GL_SYNC_FENCE_APPLE"/>
-        <enum value="0x9117" name="GL_SYNC_GPU_COMMANDS_COMPLETE"/>
+        <enum value="0x9117" name="GL_SYNC_GPU_COMMANDS_COMPLETE" group="SyncCondition"/>
         <enum value="0x9117" name="GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE"/>
         <enum value="0x9118" name="GL_UNSIGNALED"/>
         <enum value="0x9118" name="GL_UNSIGNALED_APPLE"/>
         <enum value="0x9119" name="GL_SIGNALED"/>
         <enum value="0x9119" name="GL_SIGNALED_APPLE"/>
-        <enum value="0x911A" name="GL_ALREADY_SIGNALED"/>
+        <enum value="0x911A" name="GL_ALREADY_SIGNALED" group="SyncStatus"/>
         <enum value="0x911A" name="GL_ALREADY_SIGNALED_APPLE"/>
-        <enum value="0x911B" name="GL_TIMEOUT_EXPIRED"/>
+        <enum value="0x911B" name="GL_TIMEOUT_EXPIRED" group="SyncStatus"/>
         <enum value="0x911B" name="GL_TIMEOUT_EXPIRED_APPLE"/>
-        <enum value="0x911C" name="GL_CONDITION_SATISFIED"/>
+        <enum value="0x911C" name="GL_CONDITION_SATISFIED" group="SyncStatus"/>
         <enum value="0x911C" name="GL_CONDITION_SATISFIED_APPLE"/>
-        <enum value="0x911D" name="GL_WAIT_FAILED"/>
+        <enum value="0x911D" name="GL_WAIT_FAILED" group="SyncStatus"/>
         <enum value="0x911D" name="GL_WAIT_FAILED_APPLE"/>
-        <enum value="0x911F" name="GL_BUFFER_ACCESS_FLAGS"/>
-        <enum value="0x9120" name="GL_BUFFER_MAP_LENGTH"/>
-        <enum value="0x9121" name="GL_BUFFER_MAP_OFFSET"/>
-        <enum value="0x9122" name="GL_MAX_VERTEX_OUTPUT_COMPONENTS"/>
-        <enum value="0x9123" name="GL_MAX_GEOMETRY_INPUT_COMPONENTS"/>
+        <enum value="0x911F" name="GL_BUFFER_ACCESS_FLAGS" group="VertexBufferObjectParameter,BufferPNameARB"/>
+        <enum value="0x9120" name="GL_BUFFER_MAP_LENGTH" group="VertexBufferObjectParameter,BufferPNameARB"/>
+        <enum value="0x9121" name="GL_BUFFER_MAP_OFFSET" group="VertexBufferObjectParameter,BufferPNameARB"/>
+        <enum value="0x9122" name="GL_MAX_VERTEX_OUTPUT_COMPONENTS" group="GetPName"/>
+        <enum value="0x9123" name="GL_MAX_GEOMETRY_INPUT_COMPONENTS" group="GetPName"/>
         <enum value="0x9123" name="GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT"/>
         <enum value="0x9123" name="GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES"/>
-        <enum value="0x9124" name="GL_MAX_GEOMETRY_OUTPUT_COMPONENTS"/>
+        <enum value="0x9124" name="GL_MAX_GEOMETRY_OUTPUT_COMPONENTS" group="GetPName"/>
         <enum value="0x9124" name="GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT"/>
         <enum value="0x9124" name="GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES"/>
-        <enum value="0x9125" name="GL_MAX_FRAGMENT_INPUT_COMPONENTS"/>
+        <enum value="0x9125" name="GL_MAX_FRAGMENT_INPUT_COMPONENTS" group="GetPName"/>
         <enum value="0x9126" name="GL_CONTEXT_PROFILE_MASK"/>
         <enum value="0x9127" name="GL_UNPACK_COMPRESSED_BLOCK_WIDTH"/>
         <enum value="0x9128" name="GL_UNPACK_COMPRESSED_BLOCK_HEIGHT"/>
@@ -10820,7 +10819,7 @@
     <enums namespace="GL" start="0x9130" end="0x913F" vendor="IMG" comment="Khronos bug 882">
         <enum value="0x9130" name="GL_SGX_PROGRAM_BINARY_IMG"/>
             <unused start="0x9131" end="0x9132" vendor="IMG"/>
-        <enum value="0x9133" name="GL_RENDERBUFFER_SAMPLES_IMG"/>
+        <enum value="0x9133" name="GL_RENDERBUFFER_SAMPLES_IMG" group="RenderbufferParameterName"/>
         <enum value="0x9134" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG"/>
         <enum value="0x9135" name="GL_MAX_SAMPLES_IMG"/>
         <enum value="0x9136" name="GL_TEXTURE_SAMPLES_IMG"/>
@@ -10832,7 +10831,7 @@
         <enum value="0x913C" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG"/>
         <enum value="0x913D" name="GL_NUM_DOWNSAMPLE_SCALES_IMG"/>
         <enum value="0x913E" name="GL_DOWNSAMPLE_SCALES_IMG"/>
-        <enum value="0x913F" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG"/>
+        <enum value="0x913F" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG" group="FramebufferAttachmentParameterName"/>
     </enums>
 
     <enums namespace="GL" start="0x9140" end="0x923F" vendor="AMD" comment="Khronos bugs 5899, 6004">
@@ -10849,15 +10848,15 @@
         <enum value="0x9145" name="GL_DEBUG_LOGGED_MESSAGES_AMD"/>
         <enum value="0x9145" name="GL_DEBUG_LOGGED_MESSAGES_ARB"/>
         <enum value="0x9145" name="GL_DEBUG_LOGGED_MESSAGES_KHR"/>
-        <enum value="0x9146" name="GL_DEBUG_SEVERITY_HIGH"/>
+        <enum value="0x9146" name="GL_DEBUG_SEVERITY_HIGH" group="DebugSeverity"/>
         <enum value="0x9146" name="GL_DEBUG_SEVERITY_HIGH_AMD"/>
         <enum value="0x9146" name="GL_DEBUG_SEVERITY_HIGH_ARB"/>
         <enum value="0x9146" name="GL_DEBUG_SEVERITY_HIGH_KHR"/>
-        <enum value="0x9147" name="GL_DEBUG_SEVERITY_MEDIUM"/>
+        <enum value="0x9147" name="GL_DEBUG_SEVERITY_MEDIUM" group="DebugSeverity"/>
         <enum value="0x9147" name="GL_DEBUG_SEVERITY_MEDIUM_AMD"/>
         <enum value="0x9147" name="GL_DEBUG_SEVERITY_MEDIUM_ARB"/>
         <enum value="0x9147" name="GL_DEBUG_SEVERITY_MEDIUM_KHR"/>
-        <enum value="0x9148" name="GL_DEBUG_SEVERITY_LOW"/>
+        <enum value="0x9148" name="GL_DEBUG_SEVERITY_LOW" group="DebugSeverity"/>
         <enum value="0x9148" name="GL_DEBUG_SEVERITY_LOW_AMD"/>
         <enum value="0x9148" name="GL_DEBUG_SEVERITY_LOW_ARB"/>
         <enum value="0x9148" name="GL_DEBUG_SEVERITY_LOW_KHR"/>
@@ -10880,11 +10879,11 @@
             <unused start="0x9156" end="0x915F" vendor="AMD"/>
         <enum value="0x9160" name="GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD"/>
             <unused start="0x9161" vendor="AMD"/>
-        <enum value="0x9192" name="GL_QUERY_BUFFER"/>
+        <enum value="0x9192" name="GL_QUERY_BUFFER" group="CopyBufferSubDataTarget,BufferTargetARB,BufferStorageTarget"/>
         <enum value="0x9192" name="GL_QUERY_BUFFER_AMD"/>
         <enum value="0x9193" name="GL_QUERY_BUFFER_BINDING"/>
         <enum value="0x9193" name="GL_QUERY_BUFFER_BINDING_AMD"/>
-        <enum value="0x9194" name="GL_QUERY_RESULT_NO_WAIT"/>
+        <enum value="0x9194" name="GL_QUERY_RESULT_NO_WAIT" group="QueryObjectParameterName"/>
         <enum value="0x9194" name="GL_QUERY_RESULT_NO_WAIT_AMD"/>
         <enum value="0x9195" name="GL_VIRTUAL_PAGE_SIZE_X_ARB"/>
         <enum value="0x9195" name="GL_VIRTUAL_PAGE_SIZE_X_EXT"/>
@@ -10912,7 +10911,7 @@
         <enum value="0x919E" name="GL_TEXTURE_BUFFER_SIZE"/>
         <enum value="0x919E" name="GL_TEXTURE_BUFFER_SIZE_EXT"/>
         <enum value="0x919E" name="GL_TEXTURE_BUFFER_SIZE_OES"/>
-        <enum value="0x919F" name="GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT"/>
+        <enum value="0x919F" name="GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT" group="GetPName"/>
         <enum value="0x919F" name="GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT"/>
         <enum value="0x919F" name="GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES"/>
         <enum value="0x91A0" name="GL_STREAM_RASTERIZATION_AMD"/>
@@ -10936,20 +10935,20 @@
         <enum value="0x91B0" name="GL_MAX_SHADER_COMPILER_THREADS_ARB" alias="GL_MAX_SHADER_COMPILER_THREADS_KHR"/>
         <enum value="0x91B1" name="GL_COMPLETION_STATUS_KHR"/>
         <enum value="0x91B1" name="GL_COMPLETION_STATUS_ARB" alias="GL_COMPLETION_STATUS_KHR"/>
-        <enum value="0x91B2" name="GL_RENDERBUFFER_STORAGE_SAMPLES_AMD"/>
+        <enum value="0x91B2" name="GL_RENDERBUFFER_STORAGE_SAMPLES_AMD" group="RenderbufferParameterName"/>
         <enum value="0x91B3" name="GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD"/>
         <enum value="0x91B4" name="GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD"/>
         <enum value="0x91B5" name="GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD"/>
         <enum value="0x91B6" name="GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD"/>
         <enum value="0x91B7" name="GL_SUPPORTED_MULTISAMPLE_MODES_AMD"/>
             <unused start="0x91B8" end="0x91B8" vendor="AMD"/>
-        <enum value="0x91B9" name="GL_COMPUTE_SHADER"/>
+        <enum value="0x91B9" name="GL_COMPUTE_SHADER" group="ShaderType"/>
             <unused start="0x91BA" vendor="AMD"/>
-        <enum value="0x91BB" name="GL_MAX_COMPUTE_UNIFORM_BLOCKS"/>
-        <enum value="0x91BC" name="GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS"/>
+        <enum value="0x91BB" name="GL_MAX_COMPUTE_UNIFORM_BLOCKS" group="GetPName"/>
+        <enum value="0x91BC" name="GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS" group="GetPName"/>
         <enum value="0x91BD" name="GL_MAX_COMPUTE_IMAGE_UNIFORMS"/>
-        <enum value="0x91BE" name="GL_MAX_COMPUTE_WORK_GROUP_COUNT"/>
-        <enum value="0x91BF" name="GL_MAX_COMPUTE_WORK_GROUP_SIZE"/>
+        <enum value="0x91BE" name="GL_MAX_COMPUTE_WORK_GROUP_COUNT" group="GetPName"/>
+        <enum value="0x91BF" name="GL_MAX_COMPUTE_WORK_GROUP_SIZE" group="GetPName"/>
         <enum value="0x91BF" name="GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB" alias="GL_MAX_COMPUTE_WORK_GROUP_SIZE"/>
             <unused start="0x91C0" end="0x91C4" vendor="AMD"/>
         <enum value="0x91C5" name="GL_FLOAT16_MAT2_AMD"/>
@@ -10987,25 +10986,25 @@
     </enums>
 
     <enums namespace="GL" start="0x9270" end="0x927F" vendor="OES" comment="Khronos bug 7625">
-        <enum value="0x9270" name="GL_COMPRESSED_R11_EAC"/>
+        <enum value="0x9270" name="GL_COMPRESSED_R11_EAC" group="InternalFormat"/>
         <enum value="0x9270" name="GL_COMPRESSED_R11_EAC_OES"/>
-        <enum value="0x9271" name="GL_COMPRESSED_SIGNED_R11_EAC"/>
+        <enum value="0x9271" name="GL_COMPRESSED_SIGNED_R11_EAC" group="InternalFormat"/>
         <enum value="0x9271" name="GL_COMPRESSED_SIGNED_R11_EAC_OES"/>
-        <enum value="0x9272" name="GL_COMPRESSED_RG11_EAC"/>
+        <enum value="0x9272" name="GL_COMPRESSED_RG11_EAC" group="InternalFormat"/>
         <enum value="0x9272" name="GL_COMPRESSED_RG11_EAC_OES"/>
-        <enum value="0x9273" name="GL_COMPRESSED_SIGNED_RG11_EAC"/>
+        <enum value="0x9273" name="GL_COMPRESSED_SIGNED_RG11_EAC" group="InternalFormat"/>
         <enum value="0x9273" name="GL_COMPRESSED_SIGNED_RG11_EAC_OES"/>
-        <enum value="0x9274" name="GL_COMPRESSED_RGB8_ETC2"/>
+        <enum value="0x9274" name="GL_COMPRESSED_RGB8_ETC2" group="InternalFormat"/>
         <enum value="0x9274" name="GL_COMPRESSED_RGB8_ETC2_OES"/>
-        <enum value="0x9275" name="GL_COMPRESSED_SRGB8_ETC2"/>
+        <enum value="0x9275" name="GL_COMPRESSED_SRGB8_ETC2" group="InternalFormat"/>
         <enum value="0x9275" name="GL_COMPRESSED_SRGB8_ETC2_OES"/>
-        <enum value="0x9276" name="GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+        <enum value="0x9276" name="GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2" group="InternalFormat"/>
         <enum value="0x9276" name="GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES"/>
-        <enum value="0x9277" name="GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+        <enum value="0x9277" name="GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2" group="InternalFormat"/>
         <enum value="0x9277" name="GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES"/>
-        <enum value="0x9278" name="GL_COMPRESSED_RGBA8_ETC2_EAC"/>
+        <enum value="0x9278" name="GL_COMPRESSED_RGBA8_ETC2_EAC" group="InternalFormat"/>
         <enum value="0x9278" name="GL_COMPRESSED_RGBA8_ETC2_EAC_OES"/>
-        <enum value="0x9279" name="GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"/>
+        <enum value="0x9279" name="GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC" group="InternalFormat"/>
         <enum value="0x9279" name="GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_OES"/>
             <unused start="0x927A" end="0x927F" vendor="OES"/>
     </enums>
@@ -11103,18 +11102,18 @@
         <enum value="0x92BE" name="GL_PRIMITIVE_BOUNDING_BOX_EXT"/>
         <enum value="0x92BE" name="GL_PRIMITIVE_BOUNDING_BOX_OES"/>
         <enum value="0x92BF" name="GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV"/>
-        <enum value="0x92C0" name="GL_ATOMIC_COUNTER_BUFFER"/>
-        <enum value="0x92C1" name="GL_ATOMIC_COUNTER_BUFFER_BINDING"/>
+        <enum value="0x92C0" name="GL_ATOMIC_COUNTER_BUFFER" group="CopyBufferSubDataTarget,BufferTargetARB,BufferStorageTarget"/>
+        <enum value="0x92C1" name="GL_ATOMIC_COUNTER_BUFFER_BINDING" group="AtomicCounterBufferPName"/>
         <enum value="0x92C2" name="GL_ATOMIC_COUNTER_BUFFER_START"/>
         <enum value="0x92C3" name="GL_ATOMIC_COUNTER_BUFFER_SIZE"/>
-        <enum value="0x92C4" name="GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE"/>
-        <enum value="0x92C5" name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS"/>
-        <enum value="0x92C6" name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES"/>
-        <enum value="0x92C7" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER"/>
-        <enum value="0x92C8" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER"/>
-        <enum value="0x92C9" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
-        <enum value="0x92CA" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER"/>
-        <enum value="0x92CB" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER"/>
+        <enum value="0x92C4" name="GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE" group="AtomicCounterBufferPName"/>
+        <enum value="0x92C5" name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS" group="AtomicCounterBufferPName"/>
+        <enum value="0x92C6" name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES" group="AtomicCounterBufferPName"/>
+        <enum value="0x92C7" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER" group="AtomicCounterBufferPName"/>
+        <enum value="0x92C8" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER" group="AtomicCounterBufferPName"/>
+        <enum value="0x92C9" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER" group="AtomicCounterBufferPName"/>
+        <enum value="0x92CA" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER" group="AtomicCounterBufferPName"/>
+        <enum value="0x92CB" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER" group="AtomicCounterBufferPName"/>
         <enum value="0x92CC" name="GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS"/>
         <enum value="0x92CD" name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS"/>
         <enum value="0x92CD" name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT"/>
@@ -11127,97 +11126,97 @@
         <enum value="0x92CF" name="GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES"/>
         <enum value="0x92D0" name="GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS"/>
         <enum value="0x92D1" name="GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS"/>
-        <enum value="0x92D2" name="GL_MAX_VERTEX_ATOMIC_COUNTERS"/>
-        <enum value="0x92D3" name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS"/>
+        <enum value="0x92D2" name="GL_MAX_VERTEX_ATOMIC_COUNTERS" group="GetPName"/>
+        <enum value="0x92D3" name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS" group="GetPName"/>
         <enum value="0x92D3" name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT"/>
         <enum value="0x92D3" name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES"/>
-        <enum value="0x92D4" name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS"/>
+        <enum value="0x92D4" name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS" group="GetPName"/>
         <enum value="0x92D4" name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT"/>
         <enum value="0x92D4" name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES"/>
-        <enum value="0x92D5" name="GL_MAX_GEOMETRY_ATOMIC_COUNTERS"/>
+        <enum value="0x92D5" name="GL_MAX_GEOMETRY_ATOMIC_COUNTERS" group="GetPName"/>
         <enum value="0x92D5" name="GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT"/>
         <enum value="0x92D5" name="GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES"/>
-        <enum value="0x92D6" name="GL_MAX_FRAGMENT_ATOMIC_COUNTERS"/>
-        <enum value="0x92D7" name="GL_MAX_COMBINED_ATOMIC_COUNTERS"/>
+        <enum value="0x92D6" name="GL_MAX_FRAGMENT_ATOMIC_COUNTERS" group="GetPName"/>
+        <enum value="0x92D7" name="GL_MAX_COMBINED_ATOMIC_COUNTERS" group="GetPName"/>
         <enum value="0x92D8" name="GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE"/>
-        <enum value="0x92D9" name="GL_ACTIVE_ATOMIC_COUNTER_BUFFERS"/>
-        <enum value="0x92DA" name="GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX"/>
-        <enum value="0x92DB" name="GL_UNSIGNED_INT_ATOMIC_COUNTER"/>
+        <enum value="0x92D9" name="GL_ACTIVE_ATOMIC_COUNTER_BUFFERS" group="ProgramPropertyARB"/>
+        <enum value="0x92DA" name="GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX" group="UniformPName"/>
+        <enum value="0x92DB" name="GL_UNSIGNED_INT_ATOMIC_COUNTER" group="GlslTypeToken"/>
         <enum value="0x92DC" name="GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS"/>
         <enum value="0x92DD" name="GL_FRAGMENT_COVERAGE_TO_COLOR_NV"/>
         <enum value="0x92DE" name="GL_FRAGMENT_COVERAGE_COLOR_NV"/>
         <enum value="0x92DF" name="GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV"/>
-        <enum value="0x92E0" name="GL_DEBUG_OUTPUT"/>
+        <enum value="0x92E0" name="GL_DEBUG_OUTPUT" group="EnableCap"/>
         <enum value="0x92E0" name="GL_DEBUG_OUTPUT_KHR"/>
-        <enum value="0x92E1" name="GL_UNIFORM"/>
-        <enum value="0x92E2" name="GL_UNIFORM_BLOCK"/>
-        <enum value="0x92E3" name="GL_PROGRAM_INPUT"/>
-        <enum value="0x92E4" name="GL_PROGRAM_OUTPUT"/>
-        <enum value="0x92E5" name="GL_BUFFER_VARIABLE"/>
-        <enum value="0x92E6" name="GL_SHADER_STORAGE_BLOCK"/>
-        <enum value="0x92E7" name="GL_IS_PER_PATCH"/>
+        <enum value="0x92E1" name="GL_UNIFORM" group="ProgramResourceProperty,ProgramInterface"/>
+        <enum value="0x92E2" name="GL_UNIFORM_BLOCK" group="ProgramInterface"/>
+        <enum value="0x92E3" name="GL_PROGRAM_INPUT" group="ProgramInterface"/>
+        <enum value="0x92E4" name="GL_PROGRAM_OUTPUT" group="ProgramInterface"/>
+        <enum value="0x92E5" name="GL_BUFFER_VARIABLE" group="ProgramInterface"/>
+        <enum value="0x92E6" name="GL_SHADER_STORAGE_BLOCK" group="ProgramInterface"/>
+        <enum value="0x92E7" name="GL_IS_PER_PATCH" group="ProgramResourceProperty"/>
         <enum value="0x92E7" name="GL_IS_PER_PATCH_EXT"/>
         <enum value="0x92E7" name="GL_IS_PER_PATCH_OES"/>
-        <enum value="0x92E8" name="GL_VERTEX_SUBROUTINE"/>
-        <enum value="0x92E9" name="GL_TESS_CONTROL_SUBROUTINE"/>
-        <enum value="0x92EA" name="GL_TESS_EVALUATION_SUBROUTINE"/>
-        <enum value="0x92EB" name="GL_GEOMETRY_SUBROUTINE"/>
-        <enum value="0x92EC" name="GL_FRAGMENT_SUBROUTINE"/>
-        <enum value="0x92ED" name="GL_COMPUTE_SUBROUTINE"/>
-        <enum value="0x92EE" name="GL_VERTEX_SUBROUTINE_UNIFORM"/>
-        <enum value="0x92EF" name="GL_TESS_CONTROL_SUBROUTINE_UNIFORM"/>
-        <enum value="0x92F0" name="GL_TESS_EVALUATION_SUBROUTINE_UNIFORM"/>
-        <enum value="0x92F1" name="GL_GEOMETRY_SUBROUTINE_UNIFORM"/>
-        <enum value="0x92F2" name="GL_FRAGMENT_SUBROUTINE_UNIFORM"/>
-        <enum value="0x92F3" name="GL_COMPUTE_SUBROUTINE_UNIFORM"/>
-        <enum value="0x92F4" name="GL_TRANSFORM_FEEDBACK_VARYING"/>
-        <enum value="0x92F5" name="GL_ACTIVE_RESOURCES"/>
-        <enum value="0x92F6" name="GL_MAX_NAME_LENGTH"/>
-        <enum value="0x92F7" name="GL_MAX_NUM_ACTIVE_VARIABLES"/>
-        <enum value="0x92F8" name="GL_MAX_NUM_COMPATIBLE_SUBROUTINES"/>
-        <enum value="0x92F9" name="GL_NAME_LENGTH"/>
-        <enum value="0x92FA" name="GL_TYPE"/>
-        <enum value="0x92FB" name="GL_ARRAY_SIZE"/>
-        <enum value="0x92FC" name="GL_OFFSET"/>
-        <enum value="0x92FD" name="GL_BLOCK_INDEX"/>
-        <enum value="0x92FE" name="GL_ARRAY_STRIDE"/>
-        <enum value="0x92FF" name="GL_MATRIX_STRIDE"/>
-        <enum value="0x9300" name="GL_IS_ROW_MAJOR"/>
-        <enum value="0x9301" name="GL_ATOMIC_COUNTER_BUFFER_INDEX"/>
-        <enum value="0x9302" name="GL_BUFFER_BINDING"/>
-        <enum value="0x9303" name="GL_BUFFER_DATA_SIZE"/>
-        <enum value="0x9304" name="GL_NUM_ACTIVE_VARIABLES"/>
-        <enum value="0x9305" name="GL_ACTIVE_VARIABLES"/>
-        <enum value="0x9306" name="GL_REFERENCED_BY_VERTEX_SHADER"/>
-        <enum value="0x9307" name="GL_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+        <enum value="0x92E8" name="GL_VERTEX_SUBROUTINE" group="ProgramInterface"/>
+        <enum value="0x92E9" name="GL_TESS_CONTROL_SUBROUTINE" group="ProgramInterface"/>
+        <enum value="0x92EA" name="GL_TESS_EVALUATION_SUBROUTINE" group="ProgramInterface"/>
+        <enum value="0x92EB" name="GL_GEOMETRY_SUBROUTINE" group="ProgramInterface"/>
+        <enum value="0x92EC" name="GL_FRAGMENT_SUBROUTINE" group="ProgramInterface"/>
+        <enum value="0x92ED" name="GL_COMPUTE_SUBROUTINE" group="ProgramInterface"/>
+        <enum value="0x92EE" name="GL_VERTEX_SUBROUTINE_UNIFORM" group="ProgramInterface"/>
+        <enum value="0x92EF" name="GL_TESS_CONTROL_SUBROUTINE_UNIFORM" group="ProgramInterface"/>
+        <enum value="0x92F0" name="GL_TESS_EVALUATION_SUBROUTINE_UNIFORM" group="ProgramInterface"/>
+        <enum value="0x92F1" name="GL_GEOMETRY_SUBROUTINE_UNIFORM" group="ProgramInterface"/>
+        <enum value="0x92F2" name="GL_FRAGMENT_SUBROUTINE_UNIFORM" group="ProgramInterface"/>
+        <enum value="0x92F3" name="GL_COMPUTE_SUBROUTINE_UNIFORM" group="ProgramInterface"/>
+        <enum value="0x92F4" name="GL_TRANSFORM_FEEDBACK_VARYING" group="ProgramInterface"/>
+        <enum value="0x92F5" name="GL_ACTIVE_RESOURCES" group="ProgramInterfacePName"/>
+        <enum value="0x92F6" name="GL_MAX_NAME_LENGTH" group="ProgramInterfacePName"/>
+        <enum value="0x92F7" name="GL_MAX_NUM_ACTIVE_VARIABLES" group="ProgramInterfacePName"/>
+        <enum value="0x92F8" name="GL_MAX_NUM_COMPATIBLE_SUBROUTINES" group="ProgramInterfacePName"/>
+        <enum value="0x92F9" name="GL_NAME_LENGTH" group="ProgramResourceProperty"/>
+        <enum value="0x92FA" name="GL_TYPE" group="ProgramResourceProperty"/>
+        <enum value="0x92FB" name="GL_ARRAY_SIZE" group="ProgramResourceProperty"/>
+        <enum value="0x92FC" name="GL_OFFSET" group="ProgramResourceProperty"/>
+        <enum value="0x92FD" name="GL_BLOCK_INDEX" group="ProgramResourceProperty"/>
+        <enum value="0x92FE" name="GL_ARRAY_STRIDE" group="ProgramResourceProperty"/>
+        <enum value="0x92FF" name="GL_MATRIX_STRIDE" group="ProgramResourceProperty"/>
+        <enum value="0x9300" name="GL_IS_ROW_MAJOR" group="ProgramResourceProperty"/>
+        <enum value="0x9301" name="GL_ATOMIC_COUNTER_BUFFER_INDEX" group="ProgramResourceProperty"/>
+        <enum value="0x9302" name="GL_BUFFER_BINDING" group="ProgramResourceProperty"/>
+        <enum value="0x9303" name="GL_BUFFER_DATA_SIZE" group="ProgramResourceProperty"/>
+        <enum value="0x9304" name="GL_NUM_ACTIVE_VARIABLES" group="ProgramResourceProperty"/>
+        <enum value="0x9305" name="GL_ACTIVE_VARIABLES" group="ProgramResourceProperty"/>
+        <enum value="0x9306" name="GL_REFERENCED_BY_VERTEX_SHADER" group="ProgramResourceProperty"/>
+        <enum value="0x9307" name="GL_REFERENCED_BY_TESS_CONTROL_SHADER" group="ProgramResourceProperty"/>
         <enum value="0x9307" name="GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT"/>
         <enum value="0x9307" name="GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES"/>
-        <enum value="0x9308" name="GL_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+        <enum value="0x9308" name="GL_REFERENCED_BY_TESS_EVALUATION_SHADER" group="ProgramResourceProperty"/>
         <enum value="0x9308" name="GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT"/>
         <enum value="0x9308" name="GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES"/>
-        <enum value="0x9309" name="GL_REFERENCED_BY_GEOMETRY_SHADER"/>
+        <enum value="0x9309" name="GL_REFERENCED_BY_GEOMETRY_SHADER" group="ProgramResourceProperty"/>
         <enum value="0x9309" name="GL_REFERENCED_BY_GEOMETRY_SHADER_EXT"/>
         <enum value="0x9309" name="GL_REFERENCED_BY_GEOMETRY_SHADER_OES"/>
-        <enum value="0x930A" name="GL_REFERENCED_BY_FRAGMENT_SHADER"/>
-        <enum value="0x930B" name="GL_REFERENCED_BY_COMPUTE_SHADER"/>
-        <enum value="0x930C" name="GL_TOP_LEVEL_ARRAY_SIZE"/>
-        <enum value="0x930D" name="GL_TOP_LEVEL_ARRAY_STRIDE"/>
-        <enum value="0x930E" name="GL_LOCATION"/>
-        <enum value="0x930F" name="GL_LOCATION_INDEX"/>
+        <enum value="0x930A" name="GL_REFERENCED_BY_FRAGMENT_SHADER" group="ProgramResourceProperty"/>
+        <enum value="0x930B" name="GL_REFERENCED_BY_COMPUTE_SHADER" group="ProgramResourceProperty"/>
+        <enum value="0x930C" name="GL_TOP_LEVEL_ARRAY_SIZE" group="ProgramResourceProperty"/>
+        <enum value="0x930D" name="GL_TOP_LEVEL_ARRAY_STRIDE" group="ProgramResourceProperty"/>
+        <enum value="0x930E" name="GL_LOCATION" group="ProgramResourceProperty"/>
+        <enum value="0x930F" name="GL_LOCATION_INDEX" group="ProgramResourceProperty"/>
         <enum value="0x930F" name="GL_LOCATION_INDEX_EXT"/>
-        <enum value="0x9310" name="GL_FRAMEBUFFER_DEFAULT_WIDTH"/>
-        <enum value="0x9311" name="GL_FRAMEBUFFER_DEFAULT_HEIGHT"/>
-        <enum value="0x9312" name="GL_FRAMEBUFFER_DEFAULT_LAYERS"/>
+        <enum value="0x9310" name="GL_FRAMEBUFFER_DEFAULT_WIDTH" group="GetFramebufferParameter,FramebufferParameterName"/>
+        <enum value="0x9311" name="GL_FRAMEBUFFER_DEFAULT_HEIGHT" group="GetFramebufferParameter,FramebufferParameterName"/>
+        <enum value="0x9312" name="GL_FRAMEBUFFER_DEFAULT_LAYERS" group="GetFramebufferParameter,FramebufferParameterName"/>
         <enum value="0x9312" name="GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT"/>
         <enum value="0x9312" name="GL_FRAMEBUFFER_DEFAULT_LAYERS_OES"/>
-        <enum value="0x9313" name="GL_FRAMEBUFFER_DEFAULT_SAMPLES"/>
-        <enum value="0x9314" name="GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS"/>
-        <enum value="0x9315" name="GL_MAX_FRAMEBUFFER_WIDTH"/>
-        <enum value="0x9316" name="GL_MAX_FRAMEBUFFER_HEIGHT"/>
-        <enum value="0x9317" name="GL_MAX_FRAMEBUFFER_LAYERS"/>
+        <enum value="0x9313" name="GL_FRAMEBUFFER_DEFAULT_SAMPLES" group="GetFramebufferParameter,FramebufferParameterName"/>
+        <enum value="0x9314" name="GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS" group="GetFramebufferParameter,FramebufferParameterName"/>
+        <enum value="0x9315" name="GL_MAX_FRAMEBUFFER_WIDTH" group="GetPName"/>
+        <enum value="0x9316" name="GL_MAX_FRAMEBUFFER_HEIGHT" group="GetPName"/>
+        <enum value="0x9317" name="GL_MAX_FRAMEBUFFER_LAYERS" group="GetPName"/>
         <enum value="0x9317" name="GL_MAX_FRAMEBUFFER_LAYERS_EXT"/>
         <enum value="0x9317" name="GL_MAX_FRAMEBUFFER_LAYERS_OES"/>
-        <enum value="0x9318" name="GL_MAX_FRAMEBUFFER_SAMPLES"/>
+        <enum value="0x9318" name="GL_MAX_FRAMEBUFFER_SAMPLES" group="GetPName"/>
             <unused start="0x9319" end="0x9326" vendor="NV"/>
         <enum value="0x9327" name="GL_RASTER_MULTISAMPLE_EXT"/>
         <enum value="0x9328" name="GL_RASTER_SAMPLES_EXT"/>
@@ -11245,7 +11244,7 @@
         <enum value="0x933F" name="GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV"/>
         <enum value="0x9340" name="GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB"/>
         <enum value="0x9340" name="GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV"/>
-        <enum value="0x9341" name="GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB"/>
+        <enum value="0x9341" name="GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB" group="GetMultisamplePNameNV"/>
         <enum value="0x9341" name="GL_PROGRAMMABLE_SAMPLE_LOCATION_NV"/>
         <enum value="0x9342" name="GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB"/>
         <enum value="0x9342" name="GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV"/>
@@ -11257,9 +11256,9 @@
         <enum value="0x9347" name="GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV"/>
         <enum value="0x9348" name="GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV"/>
         <enum value="0x9349" name="GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV"/>
-        <enum value="0x934A" name="GL_LOCATION_COMPONENT"/>
-        <enum value="0x934B" name="GL_TRANSFORM_FEEDBACK_BUFFER_INDEX"/>
-        <enum value="0x934C" name="GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE"/>
+        <enum value="0x934A" name="GL_LOCATION_COMPONENT" group="ProgramResourceProperty"/>
+        <enum value="0x934B" name="GL_TRANSFORM_FEEDBACK_BUFFER_INDEX" group="ProgramResourceProperty"/>
+        <enum value="0x934C" name="GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE" group="ProgramResourceProperty"/>
         <enum value="0x934D" name="GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV"/>
         <enum value="0x934E" name="GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV"/>
         <enum value="0x934F" name="GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV"/>
@@ -11279,12 +11278,12 @@
         <enum value="0x935C" name="GL_CLIP_ORIGIN_EXT" alias="GL_CLIP_ORIGIN"/>
         <enum value="0x935D" name="GL_CLIP_DEPTH_MODE"/>
         <enum value="0x935D" name="GL_CLIP_DEPTH_MODE_EXT" alias="GL_CLIP_DEPTH_MODE"/>
-        <enum value="0x935E" name="GL_NEGATIVE_ONE_TO_ONE"/>
+        <enum value="0x935E" name="GL_NEGATIVE_ONE_TO_ONE" group="ClipControlDepth"/>
         <enum value="0x935E" name="GL_NEGATIVE_ONE_TO_ONE_EXT" alias="GL_NEGATIVE_ONE_TO_ONE"/>
-        <enum value="0x935F" name="GL_ZERO_TO_ONE"/>
+        <enum value="0x935F" name="GL_ZERO_TO_ONE" group="ClipControlDepth"/>
         <enum value="0x935F" name="GL_ZERO_TO_ONE_EXT" alias="GL_ZERO_TO_ONE"/>
             <unused start="0x9360" end="0x9364" vendor="NV"/>
-        <enum value="0x9365" name="GL_CLEAR_TEXTURE"/>
+        <enum value="0x9365" name="GL_CLEAR_TEXTURE" group="InternalFormatPName"/>
         <enum value="0x9366" name="GL_TEXTURE_REDUCTION_MODE_ARB"/>
         <enum value="0x9366" name="GL_TEXTURE_REDUCTION_MODE_EXT" alias="GL_TEXTURE_REDUCTION_MODE_ARB"/>
         <enum value="0x9367" name="GL_WEIGHTED_AVERAGE_ARB"/>
@@ -11313,7 +11312,7 @@
     </enums>
 
     <enums namespace="GL" start="0x9380" end="0x939F" vendor="ARB">
-        <enum value="0x9380" name="GL_NUM_SAMPLE_COUNTS"/>
+        <enum value="0x9380" name="GL_NUM_SAMPLE_COUNTS" group="InternalFormatPName"/>
         <enum value="0x9381" name="GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB"/>
         <enum value="0x9381" name="GL_MULTISAMPLE_LINE_WIDTH_RANGE"/>
         <enum value="0x9382" name="GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB"/>
@@ -11362,85 +11361,85 @@
     </enums>
 
     <enums namespace="GL" start="0x93B0" end="0x93EF" vendor="OES" comment="Khronos bug 8853">
-        <enum value="0x93B0" name="GL_COMPRESSED_RGBA_ASTC_4x4"/>
-        <enum value="0x93B0" name="GL_COMPRESSED_RGBA_ASTC_4x4_KHR"/>
-        <enum value="0x93B1" name="GL_COMPRESSED_RGBA_ASTC_5x4"/>
-        <enum value="0x93B1" name="GL_COMPRESSED_RGBA_ASTC_5x4_KHR"/>
-        <enum value="0x93B2" name="GL_COMPRESSED_RGBA_ASTC_5x5"/>
-        <enum value="0x93B2" name="GL_COMPRESSED_RGBA_ASTC_5x5_KHR"/>
-        <enum value="0x93B3" name="GL_COMPRESSED_RGBA_ASTC_6x5"/>
-        <enum value="0x93B3" name="GL_COMPRESSED_RGBA_ASTC_6x5_KHR"/>
-        <enum value="0x93B4" name="GL_COMPRESSED_RGBA_ASTC_6x6"/>
-        <enum value="0x93B4" name="GL_COMPRESSED_RGBA_ASTC_6x6_KHR"/>
-        <enum value="0x93B5" name="GL_COMPRESSED_RGBA_ASTC_8x5"/>
-        <enum value="0x93B5" name="GL_COMPRESSED_RGBA_ASTC_8x5_KHR"/>
-        <enum value="0x93B6" name="GL_COMPRESSED_RGBA_ASTC_8x6"/>
-        <enum value="0x93B6" name="GL_COMPRESSED_RGBA_ASTC_8x6_KHR"/>
-        <enum value="0x93B7" name="GL_COMPRESSED_RGBA_ASTC_8x8"/>
-        <enum value="0x93B7" name="GL_COMPRESSED_RGBA_ASTC_8x8_KHR"/>
-        <enum value="0x93B8" name="GL_COMPRESSED_RGBA_ASTC_10x5"/>
-        <enum value="0x93B8" name="GL_COMPRESSED_RGBA_ASTC_10x5_KHR"/>
-        <enum value="0x93B9" name="GL_COMPRESSED_RGBA_ASTC_10x6"/>
-        <enum value="0x93B9" name="GL_COMPRESSED_RGBA_ASTC_10x6_KHR"/>
-        <enum value="0x93BA" name="GL_COMPRESSED_RGBA_ASTC_10x8"/>
-        <enum value="0x93BA" name="GL_COMPRESSED_RGBA_ASTC_10x8_KHR"/>
-        <enum value="0x93BB" name="GL_COMPRESSED_RGBA_ASTC_10x10"/>
-        <enum value="0x93BB" name="GL_COMPRESSED_RGBA_ASTC_10x10_KHR"/>
-        <enum value="0x93BC" name="GL_COMPRESSED_RGBA_ASTC_12x10"/>
-        <enum value="0x93BC" name="GL_COMPRESSED_RGBA_ASTC_12x10_KHR"/>
-        <enum value="0x93BD" name="GL_COMPRESSED_RGBA_ASTC_12x12"/>
-        <enum value="0x93BD" name="GL_COMPRESSED_RGBA_ASTC_12x12_KHR"/>
+        <enum value="0x93B0" name="GL_COMPRESSED_RGBA_ASTC_4x4" group="InternalFormat"/>
+        <enum value="0x93B0" name="GL_COMPRESSED_RGBA_ASTC_4x4_KHR" group="InternalFormat"/>
+        <enum value="0x93B1" name="GL_COMPRESSED_RGBA_ASTC_5x4" group="InternalFormat"/>
+        <enum value="0x93B1" name="GL_COMPRESSED_RGBA_ASTC_5x4_KHR" group="InternalFormat"/>
+        <enum value="0x93B2" name="GL_COMPRESSED_RGBA_ASTC_5x5" group="InternalFormat"/>
+        <enum value="0x93B2" name="GL_COMPRESSED_RGBA_ASTC_5x5_KHR" group="InternalFormat"/>
+        <enum value="0x93B3" name="GL_COMPRESSED_RGBA_ASTC_6x5" group="InternalFormat"/>
+        <enum value="0x93B3" name="GL_COMPRESSED_RGBA_ASTC_6x5_KHR" group="InternalFormat"/>
+        <enum value="0x93B4" name="GL_COMPRESSED_RGBA_ASTC_6x6" group="InternalFormat"/>
+        <enum value="0x93B4" name="GL_COMPRESSED_RGBA_ASTC_6x6_KHR" group="InternalFormat"/>
+        <enum value="0x93B5" name="GL_COMPRESSED_RGBA_ASTC_8x5" group="InternalFormat"/>
+        <enum value="0x93B5" name="GL_COMPRESSED_RGBA_ASTC_8x5_KHR" group="InternalFormat"/>
+        <enum value="0x93B6" name="GL_COMPRESSED_RGBA_ASTC_8x6" group="InternalFormat"/>
+        <enum value="0x93B6" name="GL_COMPRESSED_RGBA_ASTC_8x6_KHR" group="InternalFormat"/>
+        <enum value="0x93B7" name="GL_COMPRESSED_RGBA_ASTC_8x8" group="InternalFormat"/>
+        <enum value="0x93B7" name="GL_COMPRESSED_RGBA_ASTC_8x8_KHR" group="InternalFormat"/>
+        <enum value="0x93B8" name="GL_COMPRESSED_RGBA_ASTC_10x5" group="InternalFormat"/>
+        <enum value="0x93B8" name="GL_COMPRESSED_RGBA_ASTC_10x5_KHR" group="InternalFormat"/>
+        <enum value="0x93B9" name="GL_COMPRESSED_RGBA_ASTC_10x6" group="InternalFormat"/>
+        <enum value="0x93B9" name="GL_COMPRESSED_RGBA_ASTC_10x6_KHR" group="InternalFormat"/>
+        <enum value="0x93BA" name="GL_COMPRESSED_RGBA_ASTC_10x8" group="InternalFormat"/>
+        <enum value="0x93BA" name="GL_COMPRESSED_RGBA_ASTC_10x8_KHR" group="InternalFormat"/>
+        <enum value="0x93BB" name="GL_COMPRESSED_RGBA_ASTC_10x10" group="InternalFormat"/>
+        <enum value="0x93BB" name="GL_COMPRESSED_RGBA_ASTC_10x10_KHR" group="InternalFormat"/>
+        <enum value="0x93BC" name="GL_COMPRESSED_RGBA_ASTC_12x10" group="InternalFormat"/>
+        <enum value="0x93BC" name="GL_COMPRESSED_RGBA_ASTC_12x10_KHR" group="InternalFormat"/>
+        <enum value="0x93BD" name="GL_COMPRESSED_RGBA_ASTC_12x12" group="InternalFormat"/>
+        <enum value="0x93BD" name="GL_COMPRESSED_RGBA_ASTC_12x12_KHR" group="InternalFormat"/>
             <unused start="0x93BE" end="0x93BF" vendor="OES"/>
-        <enum value="0x93C0" name="GL_COMPRESSED_RGBA_ASTC_3x3x3_OES"/>
-        <enum value="0x93C1" name="GL_COMPRESSED_RGBA_ASTC_4x3x3_OES"/>
-        <enum value="0x93C2" name="GL_COMPRESSED_RGBA_ASTC_4x4x3_OES"/>
-        <enum value="0x93C3" name="GL_COMPRESSED_RGBA_ASTC_4x4x4_OES"/>
-        <enum value="0x93C4" name="GL_COMPRESSED_RGBA_ASTC_5x4x4_OES"/>
-        <enum value="0x93C5" name="GL_COMPRESSED_RGBA_ASTC_5x5x4_OES"/>
-        <enum value="0x93C6" name="GL_COMPRESSED_RGBA_ASTC_5x5x5_OES"/>
-        <enum value="0x93C7" name="GL_COMPRESSED_RGBA_ASTC_6x5x5_OES"/>
-        <enum value="0x93C8" name="GL_COMPRESSED_RGBA_ASTC_6x6x5_OES"/>
-        <enum value="0x93C9" name="GL_COMPRESSED_RGBA_ASTC_6x6x6_OES"/>
+        <enum value="0x93C0" name="GL_COMPRESSED_RGBA_ASTC_3x3x3_OES" group="InternalFormat"/>
+        <enum value="0x93C1" name="GL_COMPRESSED_RGBA_ASTC_4x3x3_OES" group="InternalFormat"/>
+        <enum value="0x93C2" name="GL_COMPRESSED_RGBA_ASTC_4x4x3_OES" group="InternalFormat"/>
+        <enum value="0x93C3" name="GL_COMPRESSED_RGBA_ASTC_4x4x4_OES" group="InternalFormat"/>
+        <enum value="0x93C4" name="GL_COMPRESSED_RGBA_ASTC_5x4x4_OES" group="InternalFormat"/>
+        <enum value="0x93C5" name="GL_COMPRESSED_RGBA_ASTC_5x5x4_OES" group="InternalFormat"/>
+        <enum value="0x93C6" name="GL_COMPRESSED_RGBA_ASTC_5x5x5_OES" group="InternalFormat"/>
+        <enum value="0x93C7" name="GL_COMPRESSED_RGBA_ASTC_6x5x5_OES" group="InternalFormat"/>
+        <enum value="0x93C8" name="GL_COMPRESSED_RGBA_ASTC_6x6x5_OES" group="InternalFormat"/>
+        <enum value="0x93C9" name="GL_COMPRESSED_RGBA_ASTC_6x6x6_OES" group="InternalFormat"/>
             <unused start="0x93CA" end="0x93CF" vendor="OES"/>
-        <enum value="0x93D0" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4"/>
-        <enum value="0x93D0" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"/>
-        <enum value="0x93D1" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4"/>
-        <enum value="0x93D1" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"/>
-        <enum value="0x93D2" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5"/>
-        <enum value="0x93D2" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"/>
-        <enum value="0x93D3" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5"/>
-        <enum value="0x93D3" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"/>
-        <enum value="0x93D4" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6"/>
-        <enum value="0x93D4" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"/>
-        <enum value="0x93D5" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5"/>
-        <enum value="0x93D5" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"/>
-        <enum value="0x93D6" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6"/>
-        <enum value="0x93D6" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"/>
-        <enum value="0x93D7" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8"/>
-        <enum value="0x93D7" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"/>
-        <enum value="0x93D8" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5"/>
-        <enum value="0x93D8" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"/>
-        <enum value="0x93D9" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6"/>
-        <enum value="0x93D9" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"/>
-        <enum value="0x93DA" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8"/>
-        <enum value="0x93DA" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"/>
-        <enum value="0x93DB" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10"/>
-        <enum value="0x93DB" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"/>
-        <enum value="0x93DC" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10"/>
-        <enum value="0x93DC" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"/>
-        <enum value="0x93DD" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12"/>
-        <enum value="0x93DD" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"/>
+        <enum value="0x93D0" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4" group="InternalFormat"/>
+        <enum value="0x93D0" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR" group="InternalFormat"/>
+        <enum value="0x93D1" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4" group="InternalFormat"/>
+        <enum value="0x93D1" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR" group="InternalFormat"/>
+        <enum value="0x93D2" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5" group="InternalFormat"/>
+        <enum value="0x93D2" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR" group="InternalFormat"/>
+        <enum value="0x93D3" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5" group="InternalFormat"/>
+        <enum value="0x93D3" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR" group="InternalFormat"/>
+        <enum value="0x93D4" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6" group="InternalFormat"/>
+        <enum value="0x93D4" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR" group="InternalFormat"/>
+        <enum value="0x93D5" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5" group="InternalFormat"/>
+        <enum value="0x93D5" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR" group="InternalFormat"/>
+        <enum value="0x93D6" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6" group="InternalFormat"/>
+        <enum value="0x93D6" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR" group="InternalFormat"/>
+        <enum value="0x93D7" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8" group="InternalFormat"/>
+        <enum value="0x93D7" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR" group="InternalFormat"/>
+        <enum value="0x93D8" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5" group="InternalFormat"/>
+        <enum value="0x93D8" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR" group="InternalFormat"/>
+        <enum value="0x93D9" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6" group="InternalFormat"/>
+        <enum value="0x93D9" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR" group="InternalFormat"/>
+        <enum value="0x93DA" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8" group="InternalFormat"/>
+        <enum value="0x93DA" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR" group="InternalFormat"/>
+        <enum value="0x93DB" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10" group="InternalFormat"/>
+        <enum value="0x93DB" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR" group="InternalFormat"/>
+        <enum value="0x93DC" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10" group="InternalFormat"/>
+        <enum value="0x93DC" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR" group="InternalFormat"/>
+        <enum value="0x93DD" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12" group="InternalFormat"/>
+        <enum value="0x93DD" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR" group="InternalFormat"/>
             <unused start="0x93DE" end="0x93DF" vendor="OES"/>
-        <enum value="0x93E0" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES"/>
-        <enum value="0x93E1" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES"/>
-        <enum value="0x93E2" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES"/>
-        <enum value="0x93E3" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES"/>
-        <enum value="0x93E4" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES"/>
-        <enum value="0x93E5" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES"/>
-        <enum value="0x93E6" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES"/>
-        <enum value="0x93E7" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES"/>
-        <enum value="0x93E8" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES"/>
-        <enum value="0x93E9" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES"/>
+        <enum value="0x93E0" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES" group="InternalFormat"/>
+        <enum value="0x93E1" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES" group="InternalFormat"/>
+        <enum value="0x93E2" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES" group="InternalFormat"/>
+        <enum value="0x93E3" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES" group="InternalFormat"/>
+        <enum value="0x93E4" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES" group="InternalFormat"/>
+        <enum value="0x93E5" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES" group="InternalFormat"/>
+        <enum value="0x93E6" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES" group="InternalFormat"/>
+        <enum value="0x93E7" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES" group="InternalFormat"/>
+        <enum value="0x93E8" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES" group="InternalFormat"/>
+        <enum value="0x93E9" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES" group="InternalFormat"/>
             <unused start="0x93EA" end="0x93EF" vendor="OES"/>
     </enums>
 
@@ -11475,8 +11474,8 @@
     </enums>
 
     <enums namespace="GL" start="0x9530" end="0x962F" vendor="NV" comment="Khronos bug 12977">
-        <enum value="0x9530" name="GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT"/>
-        <enum value="0x9531" name="GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT"/>
+        <enum value="0x9530" name="GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT" group="TextureLayout"/>
+        <enum value="0x9531" name="GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT" group="TextureLayout"/>
         <enum value="0x9532" name="GL_SUBGROUP_SIZE_KHR"/>
         <enum value="0x9533" name="GL_SUBGROUP_SUPPORTED_STAGES_KHR"/>
         <enum value="0x9534" name="GL_SUBGROUP_SUPPORTED_FEATURES_KHR"/>
@@ -11546,34 +11545,34 @@
         <enum value="0x957D" name="GL_TASK_SUBROUTINE_NV"/>
         <enum value="0x957E" name="GL_MESH_SUBROUTINE_UNIFORM_NV"/>
         <enum value="0x957F" name="GL_TASK_SUBROUTINE_UNIFORM_NV"/>
-        <enum value="0x9580" name="GL_TEXTURE_TILING_EXT"/>
-        <enum value="0x9581" name="GL_DEDICATED_MEMORY_OBJECT_EXT"/>
+        <enum value="0x9580" name="GL_TEXTURE_TILING_EXT" group="TextureParameterName"/>
+        <enum value="0x9581" name="GL_DEDICATED_MEMORY_OBJECT_EXT" group="MemoryObjectParameterName"/>
         <enum value="0x9582" name="GL_NUM_TILING_TYPES_EXT"/>
         <enum value="0x9583" name="GL_TILING_TYPES_EXT"/>
         <enum value="0x9584" name="GL_OPTIMAL_TILING_EXT"/>
         <enum value="0x9585" name="GL_LINEAR_TILING_EXT"/>
-        <enum value="0x9586" name="GL_HANDLE_TYPE_OPAQUE_FD_EXT"/>
-        <enum value="0x9587" name="GL_HANDLE_TYPE_OPAQUE_WIN32_EXT"/>
-        <enum value="0x9588" name="GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT"/>
-        <enum value="0x9589" name="GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT"/>
-        <enum value="0x958A" name="GL_HANDLE_TYPE_D3D12_RESOURCE_EXT"/>
-        <enum value="0x958B" name="GL_HANDLE_TYPE_D3D11_IMAGE_EXT"/>
-        <enum value="0x958C" name="GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT"/>
-        <enum value="0x958D" name="GL_LAYOUT_GENERAL_EXT"/>
-        <enum value="0x958E" name="GL_LAYOUT_COLOR_ATTACHMENT_EXT"/>
-        <enum value="0x958F" name="GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT"/>
-        <enum value="0x9590" name="GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT"/>
-        <enum value="0x9591" name="GL_LAYOUT_SHADER_READ_ONLY_EXT"/>
-        <enum value="0x9592" name="GL_LAYOUT_TRANSFER_SRC_EXT"/>
-        <enum value="0x9593" name="GL_LAYOUT_TRANSFER_DST_EXT"/>
-        <enum value="0x9594" name="GL_HANDLE_TYPE_D3D12_FENCE_EXT"/>
-        <enum value="0x9595" name="GL_D3D12_FENCE_VALUE_EXT"/>
-        <enum value="0x9596" name="GL_NUM_DEVICE_UUIDS_EXT"/>
-        <enum value="0x9597" name="GL_DEVICE_UUID_EXT"/>
-        <enum value="0x9598" name="GL_DRIVER_UUID_EXT"/>
-        <enum value="0x9599" name="GL_DEVICE_LUID_EXT"/>
-        <enum value="0x959A" name="GL_DEVICE_NODE_MASK_EXT"/>
-        <enum value="0x959B" name="GL_PROTECTED_MEMORY_OBJECT_EXT"/>
+        <enum value="0x9586" name="GL_HANDLE_TYPE_OPAQUE_FD_EXT" group="ExternalHandleType"/>
+        <enum value="0x9587" name="GL_HANDLE_TYPE_OPAQUE_WIN32_EXT" group="ExternalHandleType"/>
+        <enum value="0x9588" name="GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT" group="ExternalHandleType"/>
+        <enum value="0x9589" name="GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT" group="ExternalHandleType"/>
+        <enum value="0x958A" name="GL_HANDLE_TYPE_D3D12_RESOURCE_EXT" group="ExternalHandleType"/>
+        <enum value="0x958B" name="GL_HANDLE_TYPE_D3D11_IMAGE_EXT" group="ExternalHandleType"/>
+        <enum value="0x958C" name="GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT" group="ExternalHandleType"/>
+        <enum value="0x958D" name="GL_LAYOUT_GENERAL_EXT" group="TextureLayout"/>
+        <enum value="0x958E" name="GL_LAYOUT_COLOR_ATTACHMENT_EXT" group="TextureLayout"/>
+        <enum value="0x958F" name="GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT" group="TextureLayout"/>
+        <enum value="0x9590" name="GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT" group="TextureLayout"/>
+        <enum value="0x9591" name="GL_LAYOUT_SHADER_READ_ONLY_EXT" group="TextureLayout"/>
+        <enum value="0x9592" name="GL_LAYOUT_TRANSFER_SRC_EXT" group="TextureLayout"/>
+        <enum value="0x9593" name="GL_LAYOUT_TRANSFER_DST_EXT" group="TextureLayout"/>
+        <enum value="0x9594" name="GL_HANDLE_TYPE_D3D12_FENCE_EXT" group="ExternalHandleType"/>
+        <enum value="0x9595" name="GL_D3D12_FENCE_VALUE_EXT" group="SemaphoreParameterName"/>
+        <enum value="0x9596" name="GL_NUM_DEVICE_UUIDS_EXT" group="GetPName"/>
+        <enum value="0x9597" name="GL_DEVICE_UUID_EXT" group="GetPName"/>
+        <enum value="0x9598" name="GL_DRIVER_UUID_EXT" group="GetPName"/>
+        <enum value="0x9599" name="GL_DEVICE_LUID_EXT" group="GetPName"/>
+        <enum value="0x959A" name="GL_DEVICE_NODE_MASK_EXT" group="GetPName"/>
+        <enum value="0x959B" name="GL_PROTECTED_MEMORY_OBJECT_EXT" group="MemoryObjectParameterName"/>
         <enum value="0x959C" name="GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV"/>
         <enum value="0x959D" name="GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV"/>
         <enum value="0x959E" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV"/>
@@ -11599,9 +11598,9 @@
     </enums>
 
     <enums namespace="GL" start="0x9630" end="0x963F" vendor="Oculus" comment="Email from Cass Everitt">
-        <enum value="0x9630" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR"/>
+        <enum value="0x9630" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR" group="FramebufferAttachmentParameterName"/>
         <enum value="0x9631" name="GL_MAX_VIEWS_OVR"/>
-        <enum value="0x9632" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR"/>
+        <enum value="0x9632" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR" group="FramebufferAttachmentParameterName"/>
         <enum value="0x9633" name="GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR"/>
             <unused start="0x9634" end="0x963F" vendor="Oculus"/>
     </enums>
@@ -11625,7 +11624,7 @@
 
     <enums namespace="GL" start="0x96A0" end="0x96AF" vendor="Qualcomm" comment="contact Maurice Ribble">
             <unused start="0x96A0" end="0x96A1" vendor="Qualcomm"/>
-        <enum value="0x96A2" name="GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM"/>
+        <enum value="0x96A2" name="GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM" group="FramebufferFetchNoncoherent"/>
         <enum value="0x96A3" name="GL_VALIDATE_SHADER_BINARY_QCOM"/>
             <unused start="0x96A4" end="0x96AF" vendor="Qualcomm"/>
     </enums>
@@ -11680,30 +11679,30 @@
     <enums namespace="GL" start="106000" end="106999" vendor="KPC" comment="Kubota Pacific is out of business"/>
     <enums namespace="GL" start="107000" end="107999" vendor="PGI" comment="Portland Graphics was acquired by Template Graphics, which is out of business">
             <!-- lots of <unused> areas here which won't be computed yet -->
-        <enum value="0x1A1F8" name="GL_PREFER_DOUBLEBUFFER_HINT_PGI"/>
-        <enum value="0x1A1FD" name="GL_CONSERVE_MEMORY_HINT_PGI"/>
-        <enum value="0x1A1FE" name="GL_RECLAIM_MEMORY_HINT_PGI"/>
+        <enum value="0x1A1F8" name="GL_PREFER_DOUBLEBUFFER_HINT_PGI" group="HintTarget"/>
+        <enum value="0x1A1FD" name="GL_CONSERVE_MEMORY_HINT_PGI" group="HintTarget"/>
+        <enum value="0x1A1FE" name="GL_RECLAIM_MEMORY_HINT_PGI" group="HintTarget"/>
         <enum value="0x1A202" name="GL_NATIVE_GRAPHICS_HANDLE_PGI"/>
-        <enum value="0x1A203" name="GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI"/>
-        <enum value="0x1A204" name="GL_NATIVE_GRAPHICS_END_HINT_PGI"/>
-        <enum value="0x1A20C" name="GL_ALWAYS_FAST_HINT_PGI"/>
-        <enum value="0x1A20D" name="GL_ALWAYS_SOFT_HINT_PGI"/>
-        <enum value="0x1A20E" name="GL_ALLOW_DRAW_OBJ_HINT_PGI"/>
-        <enum value="0x1A20F" name="GL_ALLOW_DRAW_WIN_HINT_PGI"/>
-        <enum value="0x1A210" name="GL_ALLOW_DRAW_FRG_HINT_PGI"/>
-        <enum value="0x1A211" name="GL_ALLOW_DRAW_MEM_HINT_PGI"/>
-        <enum value="0x1A216" name="GL_STRICT_DEPTHFUNC_HINT_PGI"/>
-        <enum value="0x1A217" name="GL_STRICT_LIGHTING_HINT_PGI"/>
-        <enum value="0x1A218" name="GL_STRICT_SCISSOR_HINT_PGI"/>
-        <enum value="0x1A219" name="GL_FULL_STIPPLE_HINT_PGI"/>
-        <enum value="0x1A220" name="GL_CLIP_NEAR_HINT_PGI"/>
-        <enum value="0x1A221" name="GL_CLIP_FAR_HINT_PGI"/>
-        <enum value="0x1A222" name="GL_WIDE_LINE_HINT_PGI"/>
-        <enum value="0x1A223" name="GL_BACK_NORMALS_HINT_PGI"/>
-        <enum value="0x1A22A" name="GL_VERTEX_DATA_HINT_PGI"/>
-        <enum value="0x1A22B" name="GL_VERTEX_CONSISTENT_HINT_PGI"/>
-        <enum value="0x1A22C" name="GL_MATERIAL_SIDE_HINT_PGI"/>
-        <enum value="0x1A22D" name="GL_MAX_VERTEX_HINT_PGI"/>
+        <enum value="0x1A203" name="GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI" group="HintTarget"/>
+        <enum value="0x1A204" name="GL_NATIVE_GRAPHICS_END_HINT_PGI" group="HintTarget"/>
+        <enum value="0x1A20C" name="GL_ALWAYS_FAST_HINT_PGI" group="HintTarget"/>
+        <enum value="0x1A20D" name="GL_ALWAYS_SOFT_HINT_PGI" group="HintTarget"/>
+        <enum value="0x1A20E" name="GL_ALLOW_DRAW_OBJ_HINT_PGI" group="HintTarget"/>
+        <enum value="0x1A20F" name="GL_ALLOW_DRAW_WIN_HINT_PGI" group="HintTarget"/>
+        <enum value="0x1A210" name="GL_ALLOW_DRAW_FRG_HINT_PGI" group="HintTarget"/>
+        <enum value="0x1A211" name="GL_ALLOW_DRAW_MEM_HINT_PGI" group="HintTarget"/>
+        <enum value="0x1A216" name="GL_STRICT_DEPTHFUNC_HINT_PGI" group="HintTarget"/>
+        <enum value="0x1A217" name="GL_STRICT_LIGHTING_HINT_PGI" group="HintTarget"/>
+        <enum value="0x1A218" name="GL_STRICT_SCISSOR_HINT_PGI" group="HintTarget"/>
+        <enum value="0x1A219" name="GL_FULL_STIPPLE_HINT_PGI" group="HintTarget"/>
+        <enum value="0x1A220" name="GL_CLIP_NEAR_HINT_PGI" group="HintTarget"/>
+        <enum value="0x1A221" name="GL_CLIP_FAR_HINT_PGI" group="HintTarget"/>
+        <enum value="0x1A222" name="GL_WIDE_LINE_HINT_PGI" group="HintTarget"/>
+        <enum value="0x1A223" name="GL_BACK_NORMALS_HINT_PGI" group="HintTarget"/>
+        <enum value="0x1A22A" name="GL_VERTEX_DATA_HINT_PGI" group="HintTarget,HintTargetPGI"/>
+        <enum value="0x1A22B" name="GL_VERTEX_CONSISTENT_HINT_PGI" group="HintTarget,HintTargetPGI"/>
+        <enum value="0x1A22C" name="GL_MATERIAL_SIDE_HINT_PGI" group="HintTarget,HintTargetPGI"/>
+        <enum value="0x1A22D" name="GL_MAX_VERTEX_HINT_PGI" group="HintTarget,HintTargetPGI"/>
     </enums>
 
     <enums namespace="GL" start="108000" end="108999" vendor="ES" comment="Evans and Sutherland is out of the graphics hardware business"/>
@@ -29995,7 +29994,7 @@
             <param><ptype>GLuint</ptype> <name>program</name></param>
             <param><ptype>GLsizei</ptype> <name>count</name></param>
             <param len="count">const <ptype>GLchar</ptype> *const*<name>varyings</name></param>
-            <param group="TransformFeedbackBufferMode" ><ptype>GLenum</ptype> <name>bufferMode</name></param>
+            <param group="TransformFeedbackBufferMode"><ptype>GLenum</ptype> <name>bufferMode</name></param>
             <glx type="render" opcode="359"/>
         </command>
         <command>
diff --git a/xml/registry.rnc b/xml/registry.rnc
index 30c55dc..24aceef 100644
--- a/xml/registry.rnc
+++ b/xml/registry.rnc
@@ -81,7 +81,7 @@
 
 # <enums> defines a group of enumerants
 #   namespace - identifies a numeric namespace
-#   group - identifies a functional subset of the namespace - same as <group name="">
+#   group - identifies a functional subset of the namespace - same as group=""
 #   start, end - beginning and end of a numeric range in the namespace
 #   vendor - owner of the numeric range
 #   type - "bitmask", if present
@@ -101,6 +101,7 @@
 #   api - matches a <feature> api attribute, if present
 #   type - "u" (unsigned), "ull" (uint64), or integer if not present
 #   name - enumerant name
+#   group - identifies a functional subset of the namespace
 #   alias - another enumerant this is semantically identical to
 #   comment - unused
 Enum = element enum {
@@ -109,6 +110,7 @@
         attribute api { text } ? &
         attribute type { TypeSuffix } ? &
         attribute name { text } &
+        attribute group { text } ? &
         attribute alias { text } ? &
         Comment ?
     )