예제 #1
0
Gura_ImplementClassMethod(win32_surface, create_printing)
{
	Signal &sig = env.GetSignal();
	const char *driverName = nullptr;
	const char *printerName = arg.GetString(0);
	char printerNameDefault[MAX_PATH];
	BYTE printerInfoBuff[16384];
	PRINTER_INFO_2 *pPrinterInfo2 = reinterpret_cast<PRINTER_INFO_2 *>(printerInfoBuff);
	if (::strcmp(printerName, "") == 0) {
		DWORD cch = ArraySizeOf(printerNameDefault) - 1;
		if (!::GetDefaultPrinter(printerNameDefault, &cch)) {
			sig.SetError(ERR_IOError, "failed to get a default printer");
			return Value::Nil;
		}
		printerName = printerNameDefault;
	}
	do {
		HANDLE hPrinter = nullptr;
		if (!::OpenPrinter(const_cast<char *>(printerName), &hPrinter, nullptr)) {
			sig.SetError(ERR_IOError, "failed to open printer handler");
			return Value::Nil;
		}
		DWORD cbNeeded = sizeof(printerInfoBuff);
		if (!::GetPrinter(hPrinter, 2, printerInfoBuff, sizeof(printerInfoBuff), &cbNeeded)) {
			sig.SetError(ERR_IOError, "failed to get printer information");
			return Value::Nil;
		}
		::ClosePrinter(hPrinter);
	} while (0);
	double width = arg.GetDouble(1), height = arg.GetDouble(2);
	RECT rc;
	rc.left = 0, rc.top = 0;
	rc.right = static_cast<long>(width * 20);	// unit: 1/20pt
	rc.bottom = static_cast<long>(height * 20);	// unit: 1/20pt
	HDC hdc = ::CreateDC(driverName, printerName, pPrinterInfo2->pPortName, nullptr);
	DOCINFO di;
	::memset(&di, 0x00, sizeof(di));
	di.cbSize = sizeof(DOCINFO);
	di.lpszDocName = "cairo";
	::StartDoc(hdc, &di);
	::SetMapMode(hdc, MM_TWIPS);				// 1 unit = 1/20pt
	//::SetMapMode(hdc, MM_HIMETRIC);			// 1 unit = 0.01mm
	Writer_WindowsDC *pWriter = new Writer_WindowsDC(sig, width, height, hdc);
	cairo_surface_t *surface = ::cairo_win32_printing_surface_create(hdc);
	Object_surface *pObjSurface = new Object_win32_surface(surface, pWriter);
	return ReturnValue(env, arg, Value(pObjSurface));
}
예제 #2
0
char GetEscaped(char ch)
{
	static const struct {
		char ch;
		char chConv;
	} tbl[] = {
		{ 'a',	'\a'	},
		{ 'b',	'\b'	},
		{ 'f',	'\f'	},
		{ 'n',	'\n'	},
		{ 'r',	'\r'	},
		{ 't',	'\t'	},
		{ 'v',	'\v'	},
		{ '\\',	'\\'	},
		{ '\'',	'\''	},
		{ '"',	'"'		},
	};
	for (size_t i = 0; i < ArraySizeOf(tbl); i++) {
		if (tbl[i].ch == ch) return tbl[i].chConv;
	}
	return ch;
}
예제 #3
0
void PrepareParamInfoDict()
{
	_pParamInfoDict = new ParamInfoDict();
	static const struct {
		GLenum pname;
		size_t n;
	} tbl[] = {
#if defined(GL_ACCUM_ALPHA_BITS)
		{ GL_ACCUM_ALPHA_BITS,						 1 },
#endif
#if defined(GL_ACCUM_BLUE_BITS)
		{ GL_ACCUM_BLUE_BITS,						 1 },
#endif
#if defined(GL_ACCUM_CLEAR_VALUE)
		{ GL_ACCUM_CLEAR_VALUE,						 4 },
#endif
#if defined(GL_ACCUM_GREEN_BITS)
		{ GL_ACCUM_GREEN_BITS,						 1 },
#endif
#if defined(GL_ACCUM_RED_BITS)
		{ GL_ACCUM_RED_BITS,						 1 },
#endif
#if defined(GL_ACTIVE_ATTRIBUTES)
		{ GL_ACTIVE_ATTRIBUTES,						 1 },
#endif
#if defined(GL_ACTIVE_ATTRIBUTE_MAX_LENGTH)
		{ GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,			 1 },
#endif
#if defined(GL_ACTIVE_TEXTURE)
		{ GL_ACTIVE_TEXTURE,						 1 },
#endif
#if defined(GL_ACTIVE_UNIFORMS)
		{ GL_ACTIVE_UNIFORMS,						 1 },
#endif
#if defined(GL_ACTIVE_UNIFORM_MAX_LENGTH)
		{ GL_ACTIVE_UNIFORM_MAX_LENGTH,				 1 },
#endif
#if defined(GL_ALIASED_LINE_WIDTH_RANGE)
		{ GL_ALIASED_LINE_WIDTH_RANGE,				 2 },
#endif
#if defined(GL_ALIASED_POINT_SIZE_RANGE)
		{ GL_ALIASED_POINT_SIZE_RANGE,				 2 },
#endif
#if defined(GL_ALPHA_BIAS)
		{ GL_ALPHA_BIAS,							 1 },
#endif
#if defined(GL_ALPHA_BITS)
		{ GL_ALPHA_BITS,							 1 },
#endif
#if defined(GL_ALPHA_SCALE)
		{ GL_ALPHA_SCALE,							 1 },
#endif
#if defined(GL_ALPHA_TEST)
		{ GL_ALPHA_TEST,							 1 },
#endif
#if defined(GL_ALPHA_TEST_REF)
		{ GL_ALPHA_TEST_REF,						 1 },
#endif
#if defined(GL_AMBIENT)
		{ GL_AMBIENT,								 4 },
#endif
#if defined(GL_ARRAY_BUFFER_BINDING)
		{ GL_ARRAY_BUFFER_BINDING,					 1 },
#endif
#if defined(GL_ATTACHED_SHADERS)
		{ GL_ATTACHED_SHADERS,						 1 },
#endif
#if defined(GL_ATTRIB_STACK_DEPTH)
		{ GL_ATTRIB_STACK_DEPTH,					 1 },
#endif
#if defined(GL_AUTO_NORMAL)
		{ GL_AUTO_NORMAL,							 1 },
#endif
#if defined(GL_AUX_BUFFERS)
		{ GL_AUX_BUFFERS,							 1 },
#endif
#if defined(GL_BLEND)
		{ GL_BLEND,									 1 },
#endif
#if defined(GL_BLEND_COLOR)
		{ GL_BLEND_COLOR,							 4 },
#endif
#if defined(GL_BLEND_DST_ALPHA)
		{ GL_BLEND_DST_ALPHA,						 1 },
#endif
#if defined(GL_BLEND_DST_RGB)
		{ GL_BLEND_DST_RGB,							 1 },
#endif
#if defined(GL_BLEND_EQUATION_ALPHA)
		{ GL_BLEND_EQUATION_ALPHA,					 1 },
#endif
#if defined(GL_BLEND_EQUATION_RGB)
		{ GL_BLEND_EQUATION_RGB,					 1 },
#endif
#if defined(GL_BLEND_SRC_ALPHA)
		{ GL_BLEND_SRC_ALPHA,						 1 },
#endif
#if defined(GL_BLEND_SRC_RGB)
		{ GL_BLEND_SRC_RGB,							 1 },
#endif
#if defined(GL_BLUE_BIAS)
		{ GL_BLUE_BIAS,								 1 },
#endif
#if defined(GL_BLUE_BITS)
		{ GL_BLUE_BITS,								 1 },
#endif
#if defined(GL_BLUE_SCALE)
		{ GL_BLUE_SCALE,							 1 },
#endif
#if defined(GL_CLIENT_ACTIVE_TEXTURE)
		{ GL_CLIENT_ACTIVE_TEXTURE,					 1 },
#endif
#if defined(GL_CLIENT_ATTRIB_STACK_DEPTH)
		{ GL_CLIENT_ATTRIB_STACK_DEPTH,				 1 },
#endif
//#if defined(GL_CLIP_PLANEi)
//		{ GL_CLIP_PLANEi,							 1 },
//#endif
#if defined(GL_COLOR_ARRAY)
		{ GL_COLOR_ARRAY,							 1 },
#endif
#if defined(GL_COLOR_ARRAY_BUFFER_BINDING)
		{ GL_COLOR_ARRAY_BUFFER_BINDING,			 1 },
#endif
#if defined(GL_COLOR_ARRAY_SIZE)
		{ GL_COLOR_ARRAY_SIZE,						 1 },
#endif
#if defined(GL_COLOR_ARRAY_STRIDE)
		{ GL_COLOR_ARRAY_STRIDE,					 1 },
#endif
#if defined(GL_COLOR_ARRAY_TYPE)
		{ GL_COLOR_ARRAY_TYPE,						 1 },
#endif
#if defined(GL_COLOR_CLEAR_VALUE)
		{ GL_COLOR_CLEAR_VALUE,						 4 },
#endif
#if defined(GL_COLOR_INDEXES)
		{ GL_COLOR_INDEXES,							 3 },
#endif
#if defined(GL_COLOR_LOGIC_OP)
		{ GL_COLOR_LOGIC_OP,						 1 },
#endif
#if defined(GL_COLOR_MATERIAL)
		{ GL_COLOR_MATERIAL,						 1 },
#endif
#if defined(GL_COLOR_MATERIAL_FACE)
		{ GL_COLOR_MATERIAL_FACE,					 1 },
#endif
#if defined(GL_COLOR_MATERIAL_PARAMETER)
		{ GL_COLOR_MATERIAL_PARAMETER,				 1 },
#endif
#if defined(GL_COLOR_MATRIX)
		{ GL_COLOR_MATRIX,							16 },
#endif
#if defined(GL_COLOR_MATRIX_STACK_DEPTH)
		{ GL_COLOR_MATRIX_STACK_DEPTH,				 1 },
#endif
#if defined(GL_COLOR_SUM)
		{ GL_COLOR_SUM,								 1 },
#endif
#if defined(GL_COLOR_TABLE)
		{ GL_COLOR_TABLE,							 1 },
#endif
#if defined(GL_COLOR_TABLE_ALPHA_SIZE)
		{ GL_COLOR_TABLE_ALPHA_SIZE,				 1 },
#endif
#if defined(GL_COLOR_TABLE_BIAS)
		{ GL_COLOR_TABLE_BIAS,						 4 },
#endif
#if defined(GL_COLOR_TABLE_BLUE_SIZE)
		{ GL_COLOR_TABLE_BLUE_SIZE,					 1 },
#endif
#if defined(GL_COLOR_TABLE_FORMAT)
		{ GL_COLOR_TABLE_FORMAT,					 1 },
#endif
#if defined(GL_COLOR_TABLE_GREEN_SIZE)
		{ GL_COLOR_TABLE_GREEN_SIZE,				 1 },
#endif
#if defined(GL_COLOR_TABLE_INTENSITY_SIZE)
		{ GL_COLOR_TABLE_INTENSITY_SIZE,			 1 },
#endif
#if defined(GL_COLOR_TABLE_LUMINANCE_SIZE)
		{ GL_COLOR_TABLE_LUMINANCE_SIZE,			 1 },
#endif
#if defined(GL_COLOR_TABLE_RED_SIZE)
		{ GL_COLOR_TABLE_RED_SIZE,					 1 },
#endif
#if defined(GL_COLOR_TABLE_SCALE)
		{ GL_COLOR_TABLE_SCALE,						 4 },
#endif
#if defined(GL_COLOR_TABLE_WIDTH)
		{ GL_COLOR_TABLE_WIDTH,						 1 },
#endif
#if defined(GL_COLOR_WRITEMASK)
		{ GL_COLOR_WRITEMASK,						 4 },
#endif
#if defined(GL_COMBINE_ALPHA)
		{ GL_COMBINE_ALPHA,							 1 },
#endif
#if defined(GL_COMBINE_RGB)
		{ GL_COMBINE_RGB,							 1 },
#endif
#if defined(GL_COMPILE_STATUS)
		{ GL_COMPILE_STATUS,						 1 },
#endif
#if defined(GL_COMPRESSED_TEXTURE_FORMATS)
		{ GL_COMPRESSED_TEXTURE_FORMATS,			99 },
#endif
#if defined(GL_CONSTANT_ATTENUATION)
		{ GL_CONSTANT_ATTENUATION,					 1 },
#endif
#if defined(GL_CONVOLUTION_1D)
		{ GL_CONVOLUTION_1D,						 1 },
#endif
#if defined(GL_CONVOLUTION_2D)
		{ GL_CONVOLUTION_2D,						 1 },
#endif
#if defined(GL_CONVOLUTION_BORDER_COLOR)
		{ GL_CONVOLUTION_BORDER_COLOR,				 4 },
#endif
#if defined(GL_CONVOLUTION_BORDER_MODE)
		{ GL_CONVOLUTION_BORDER_MODE,				 1 },
#endif
#if defined(GL_CONVOLUTION_FILTER_BIAS)
		{ GL_CONVOLUTION_FILTER_BIAS,				 4 },
#endif
#if defined(GL_CONVOLUTION_FILTER_SCALE)
		{ GL_CONVOLUTION_FILTER_SCALE,				 4 },
#endif
#if defined(GL_CONVOLUTION_FORMAT)
		{ GL_CONVOLUTION_FORMAT,					 1 },
#endif
#if defined(GL_CONVOLUTION_HEIGHT)
		{ GL_CONVOLUTION_HEIGHT,					 1 },
#endif
#if defined(GL_CONVOLUTION_WIDTH)
		{ GL_CONVOLUTION_WIDTH,						 1 },
#endif
#if defined(GL_COORD_REPLACE)
		{ GL_COORD_REPLACE,							 1 },
#endif
#if defined(GL_CULL_FACE)
		{ GL_CULL_FACE,								 1 },
#endif
#if defined(GL_CULL_FACE_MODE)
		{ GL_CULL_FACE_MODE,						 1 },
#endif
#if defined(GL_CURRENT_COLOR)
		{ GL_CURRENT_COLOR,							 4 },
#endif
#if defined(GL_CURRENT_FOG_COORD)
		{ GL_CURRENT_FOG_COORD,						 1 },
#endif
#if defined(GL_CURRENT_INDEX)
		{ GL_CURRENT_INDEX,							 1 },
#endif
#if defined(GL_CURRENT_NORMAL)
		{ GL_CURRENT_NORMAL,						 3 },
#endif
#if defined(GL_CURRENT_PROGRAM)
		{ GL_CURRENT_PROGRAM,						 1 },
#endif
#if defined(GL_CURRENT_QUERY)
		{ GL_CURRENT_QUERY,							 1 },
#endif
#if defined(GL_CURRENT_RASTER_COLOR)
		{ GL_CURRENT_RASTER_COLOR,					 4 },
#endif
#if defined(GL_CURRENT_RASTER_DISTANCE)
		{ GL_CURRENT_RASTER_DISTANCE,				 1 },
#endif
#if defined(GL_CURRENT_RASTER_INDEX)
		{ GL_CURRENT_RASTER_INDEX,					 1 },
#endif
#if defined(GL_CURRENT_RASTER_POSITION)
		{ GL_CURRENT_RASTER_POSITION,				 4 },
#endif
#if defined(GL_CURRENT_RASTER_POSITION_VALID)
		{ GL_CURRENT_RASTER_POSITION_VALID,			 1 },
#endif
#if defined(GL_CURRENT_RASTER_SECONDARY_COLOR)
		{ GL_CURRENT_RASTER_SECONDARY_COLOR,		 4 },
#endif
#if defined(GL_CURRENT_RASTER_TEXTURE_COORDS)
		{ GL_CURRENT_RASTER_TEXTURE_COORDS,			 4 },
#endif
#if defined(GL_CURRENT_SECONDARY_COLOR)
		{ GL_CURRENT_SECONDARY_COLOR,				 4 },
#endif
#if defined(GL_CURRENT_TEXTURE_COORDS)
		{ GL_CURRENT_TEXTURE_COORDS,				 4 },
#endif
#if defined(GL_DELETE_STATUS)
		{ GL_DELETE_STATUS,							 1 },
#endif
#if defined(GL_DEPTH_BIAS)
		{ GL_DEPTH_BIAS,							 1 },
#endif
#if defined(GL_DEPTH_BITS)
		{ GL_DEPTH_BITS,							 1 },
#endif
#if defined(GL_DEPTH_CLEAR_VALUE)
		{ GL_DEPTH_CLEAR_VALUE,						 1 },
#endif
#if defined(GL_DEPTH_FUNC)
		{ GL_DEPTH_FUNC,							 1 },
#endif
#if defined(GL_DEPTH_RANGE)
		{ GL_DEPTH_RANGE,							 2 },
#endif
#if defined(GL_DEPTH_SCALE)
		{ GL_DEPTH_SCALE,							 1 },
#endif
#if defined(GL_DEPTH_TEST)
		{ GL_DEPTH_TEST,							 1 },
#endif
#if defined(GL_DEPTH_TEXTURE_MODE)
		{ GL_DEPTH_TEXTURE_MODE,					 1 },
#endif
#if defined(GL_DEPTH_WRITEMASK)
		{ GL_DEPTH_WRITEMASK,						 1 },
#endif
#if defined(GL_DIFFUSE)
		{ GL_DIFFUSE,								 4 },
#endif
#if defined(GL_DITHER)
		{ GL_DITHER,								 1 },
#endif
#if defined(GL_DOUBLEBUFFER)
		{ GL_DOUBLEBUFFER,							 1 },
#endif
#if defined(GL_DRAW_BUFFER)
		{ GL_DRAW_BUFFER,							 1 },
#endif
//#if defined(GL_DRAW_BUFFERi)
//		{ GL_DRAW_BUFFERi,							 1 },
//#endif
#if defined(GL_EDGE_FLAG)
		{ GL_EDGE_FLAG,								 1 },
#endif
#if defined(GL_EDGE_FLAG_ARRAY)
		{ GL_EDGE_FLAG_ARRAY,						 1 },
#endif
#if defined(GL_EDGE_FLAG_ARRAY_BUFFER_BINDING)
		{ GL_EDGE_FLAG_ARRAY_BUFFER_BINDING,		 1 },
#endif
#if defined(GL_EDGE_FLAG_ARRAY_STRIDE)
		{ GL_EDGE_FLAG_ARRAY_STRIDE,				 1 },
#endif
#if defined(GL_ELEMENT_ARRAY_BUFFER_BINDING)
		{ GL_ELEMENT_ARRAY_BUFFER_BINDING,			 1 },
#endif
#if defined(GL_EMISSION)
		{ GL_EMISSION,								 4 },
#endif
#if defined(GL_EYE_PLANE)
		{ GL_EYE_PLANE,								 1 },
#endif
#if defined(GL_FEEDBACK_BUFFER_SIZE)
		{ GL_FEEDBACK_BUFFER_SIZE,					 1 },
#endif
#if defined(GL_FEEDBACK_BUFFER_TYPE)
		{ GL_FEEDBACK_BUFFER_TYPE,					 1 },
#endif
#if defined(GL_FOG)
		{ GL_FOG,									 1 },
#endif
#if defined(GL_FOG_COLOR)
		{ GL_FOG_COLOR,								 4 },
#endif
#if defined(GL_FOG_COORD_ARRAY)
		{ GL_FOG_COORD_ARRAY,						 1 },
#endif
#if defined(GL_FOG_COORD_ARRAY_BUFFER_BINDING)
		{ GL_FOG_COORD_ARRAY_BUFFER_BINDING,		 1 },
#endif
#if defined(GL_FOG_COORD_ARRAY_STRIDE)
		{ GL_FOG_COORD_ARRAY_STRIDE,				 1 },
#endif
#if defined(GL_FOG_COORD_ARRAY_TYPE)
		{ GL_FOG_COORD_ARRAY_TYPE,					 1 },
#endif
#if defined(GL_FOG_COORD_SRC)
		{ GL_FOG_COORD_SRC,							 1 },
#endif
#if defined(GL_FOG_DENSITY)
		{ GL_FOG_DENSITY,							 1 },
#endif
#if defined(GL_FOG_END)
		{ GL_FOG_END,								 1 },
#endif
#if defined(GL_FOG_HINT)
		{ GL_FOG_HINT,								 1 },
#endif
#if defined(GL_FOG_INDEX)
		{ GL_FOG_INDEX,								 1 },
#endif
#if defined(GL_FOG_MODE)
		{ GL_FOG_MODE,								 1 },
#endif
#if defined(GL_FOG_START)
		{ GL_FOG_START,								 1 },
#endif
#if defined(GL_FRAGMENT_SHADER_DERIVATIVE_HINT)
		{ GL_FRAGMENT_SHADER_DERIVATIVE_HINT,		 1 },
#endif
#if defined(GL_FRONT_FACE)
		{ GL_FRONT_FACE,							 1 },
#endif
#if defined(GL_GENERATE_MIPMAP)
		{ GL_GENERATE_MIPMAP,						 1 },
#endif
#if defined(GL_GENERATE_MIPMAP_HINT)
		{ GL_GENERATE_MIPMAP_HINT,					 1 },
#endif
#if defined(GL_GREEN_BIAS)
		{ GL_GREEN_BIAS,							 1 },
#endif
#if defined(GL_GREEN_BITS)
		{ GL_GREEN_BITS,							 1 },
#endif
#if defined(GL_GREEN_SCALE)
		{ GL_GREEN_SCALE,							 1 },
#endif
#if defined(GL_HISTOGRAM)
		{ GL_HISTOGRAM,								 1 },
#endif
#if defined(GL_HISTOGRAM_ALPHA_SIZE)
		{ GL_HISTOGRAM_ALPHA_SIZE,					 1 },
#endif
#if defined(GL_HISTOGRAM_BLUE_SIZE)
		{ GL_HISTOGRAM_BLUE_SIZE,					 1 },
#endif
#if defined(GL_HISTOGRAM_FORMAT)
		{ GL_HISTOGRAM_FORMAT,						 1 },
#endif
#if defined(GL_HISTOGRAM_GREEN_SIZE)
		{ GL_HISTOGRAM_GREEN_SIZE,					 1 },
#endif
#if defined(GL_HISTOGRAM_LUMINANCE_SIZE)
		{ GL_HISTOGRAM_LUMINANCE_SIZE,				 1 },
#endif
#if defined(GL_HISTOGRAM_RED_SIZE)
		{ GL_HISTOGRAM_RED_SIZE,					 1 },
#endif
#if defined(GL_HISTOGRAM_SINK)
		{ GL_HISTOGRAM_SINK,						 1 },
#endif
#if defined(GL_HISTOGRAM_WIDTH)
		{ GL_HISTOGRAM_WIDTH,						 1 },
#endif
#if defined(GL_INDEX_ARRAY)
		{ GL_INDEX_ARRAY,							 1 },
#endif
#if defined(GL_INDEX_ARRAY_BUFFER_BINDING)
		{ GL_INDEX_ARRAY_BUFFER_BINDING,			 1 },
#endif
#if defined(GL_INDEX_ARRAY_STRIDE)
		{ GL_INDEX_ARRAY_STRIDE,					 1 },
#endif
#if defined(GL_INDEX_ARRAY_TYPE)
		{ GL_INDEX_ARRAY_TYPE,						 1 },
#endif
#if defined(GL_INDEX_BITS)
		{ GL_INDEX_BITS,							 1 },
#endif
#if defined(GL_INDEX_CLEAR_VALUE)
		{ GL_INDEX_CLEAR_VALUE,						 1 },
#endif
#if defined(GL_INDEX_LOGIC_OP)
		{ GL_INDEX_LOGIC_OP,						 1 },
#endif
#if defined(GL_INDEX_MODE)
		{ GL_INDEX_MODE,							 1 },
#endif
#if defined(GL_INDEX_OFFSET)
		{ GL_INDEX_OFFSET,							 1 },
#endif
#if defined(GL_INDEX_SHIFT)
		{ GL_INDEX_SHIFT,							 1 },
#endif
#if defined(GL_INDEX_WRITEMASK)
		{ GL_INDEX_WRITEMASK,						 1 },
#endif
#if defined(GL_INFO_LOG_LENGTH)
		{ GL_INFO_LOG_LENGTH,						 1 },
#endif
#if defined(GL_LIGHTING)
		{ GL_LIGHTING,								 1 },
#endif
#if defined(GL_LIGHT_MODEL_AMBIENT)
		{ GL_LIGHT_MODEL_AMBIENT,					 4 },
#endif
#if defined(GL_LIGHT_MODEL_COLOR_CONTROL)
		{ GL_LIGHT_MODEL_COLOR_CONTROL,				 1 },
#endif
#if defined(GL_LIGHT_MODEL_LOCAL_VIEWER)
		{ GL_LIGHT_MODEL_LOCAL_VIEWER,				 1 },
#endif
#if defined(GL_LIGHT_MODEL_TWO_SIDE)
		{ GL_LIGHT_MODEL_TWO_SIDE,					 1 },
#endif
//#if defined(GL_LIGHTi)
//		{ GL_LIGHTi,								 1 },
//#endif
#if defined(GL_LINEAR_ATTENUATION)
		{ GL_LINEAR_ATTENUATION,					 1 },
#endif
#if defined(GL_LINE_SMOOTH)
		{ GL_LINE_SMOOTH,							 1 },
#endif
#if defined(GL_LINE_SMOOTH_HINT)
		{ GL_LINE_SMOOTH_HINT,						 1 },
#endif
#if defined(GL_LINE_STIPPLE)
		{ GL_LINE_STIPPLE,							 1 },
#endif
#if defined(GL_LINE_STIPPLE_PATTERN)
		{ GL_LINE_STIPPLE_PATTERN,					 1 },
#endif
#if defined(GL_LINE_STIPPLE_REPEAT)
		{ GL_LINE_STIPPLE_REPEAT,					 1 },
#endif
#if defined(GL_LINE_WIDTH)
		{ GL_LINE_WIDTH,							 1 },
#endif
#if defined(GL_LINE_WIDTH_GRANULARITY)
		{ GL_LINE_WIDTH_GRANULARITY,				 1 },
#endif
#if defined(GL_LINE_WIDTH_RANGE)
		{ GL_LINE_WIDTH_RANGE,						 2 },
#endif
#if defined(GL_LINK_STATUS)
		{ GL_LINK_STATUS,							 1 },
#endif
#if defined(GL_LIST_BASE)
		{ GL_LIST_BASE,								 1 },
#endif
#if defined(GL_LIST_INDEX)
		{ GL_LIST_INDEX,							 1 },
#endif
#if defined(GL_LIST_MODE)
		{ GL_LIST_MODE,								 1 },
#endif
#if defined(GL_LOGIC_OP_MODE)
		{ GL_LOGIC_OP_MODE,							 1 },
#endif
#if defined(GL_MAP1_COLOR_4)
		{ GL_MAP1_COLOR_4,							 1 },
#endif
#if defined(GL_MAP1_GRID_DOMAIN)
		{ GL_MAP1_GRID_DOMAIN,						 2 },
#endif
#if defined(GL_MAP1_GRID_SEGMENTS)
		{ GL_MAP1_GRID_SEGMENTS,					 1 },
#endif
#if defined(GL_MAP1_INDEX)
		{ GL_MAP1_INDEX,							 1 },
#endif
#if defined(GL_MAP1_NORMAL)
		{ GL_MAP1_NORMAL,							 1 },
#endif
#if defined(GL_MAP1_TEXTURE_COORD_1)
		{ GL_MAP1_TEXTURE_COORD_1,					 1 },
#endif
#if defined(GL_MAP1_TEXTURE_COORD_2)
		{ GL_MAP1_TEXTURE_COORD_2,					 1 },
#endif
#if defined(GL_MAP1_TEXTURE_COORD_3)
		{ GL_MAP1_TEXTURE_COORD_3,					 1 },
#endif
#if defined(GL_MAP1_TEXTURE_COORD_4)
		{ GL_MAP1_TEXTURE_COORD_4,					 1 },
#endif
#if defined(GL_MAP1_VERTEX_3)
		{ GL_MAP1_VERTEX_3,							 1 },
#endif
#if defined(GL_MAP1_VERTEX_4)
		{ GL_MAP1_VERTEX_4,							 1 },
#endif
#if defined(GL_MAP2_COLOR_4)
		{ GL_MAP2_COLOR_4,							 1 },
#endif
#if defined(GL_MAP2_GRID_DOMAIN)
		{ GL_MAP2_GRID_DOMAIN,						 4 },
#endif
#if defined(GL_MAP2_GRID_SEGMENTS)
		{ GL_MAP2_GRID_SEGMENTS,					 2 },
#endif
#if defined(GL_MAP2_INDEX)
		{ GL_MAP2_INDEX,							 1 },
#endif
#if defined(GL_MAP2_NORMAL)
		{ GL_MAP2_NORMAL,							 1 },
#endif
#if defined(GL_MAP2_TEXTURE_COORD_1)
		{ GL_MAP2_TEXTURE_COORD_1,					 1 },
#endif
#if defined(GL_MAP2_TEXTURE_COORD_2)
		{ GL_MAP2_TEXTURE_COORD_2,					 1 },
#endif
#if defined(GL_MAP2_TEXTURE_COORD_3)
		{ GL_MAP2_TEXTURE_COORD_3,					 1 },
#endif
#if defined(GL_MAP2_TEXTURE_COORD_4)
		{ GL_MAP2_TEXTURE_COORD_4,					 1 },
#endif
#if defined(GL_MAP2_VERTEX_3)
		{ GL_MAP2_VERTEX_3,							 1 },
#endif
#if defined(GL_MAP2_VERTEX_4)
		{ GL_MAP2_VERTEX_4,							 1 },
#endif
#if defined(GL_MAP_COLOR)
		{ GL_MAP_COLOR,								 1 },
#endif
#if defined(GL_MAP_STENCIL)
		{ GL_MAP_STENCIL,							 1 },
#endif
#if defined(GL_MATRIX_MODE)
		{ GL_MATRIX_MODE,							 1 },
#endif
#if defined(GL_MAX_3D_TEXTURE_SIZE)
		{ GL_MAX_3D_TEXTURE_SIZE,					 1 },
#endif
#if defined(GL_MAX_ATTRIB_STACK_DEPTH)
		{ GL_MAX_ATTRIB_STACK_DEPTH,				 1 },
#endif
#if defined(GL_MAX_CLIENT_ATTRIB_STACK_DEPTH)
		{ GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,			 1 },
#endif
#if defined(GL_MAX_CLIP_PLANES)
		{ GL_MAX_CLIP_PLANES,						 1 },
#endif
#if defined(GL_MAX_COLOR_MATRIX_STACK_DEPTH)
		{ GL_MAX_COLOR_MATRIX_STACK_DEPTH,			 1 },
#endif
#if defined(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS)
		{ GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,		 1 },
#endif
#if defined(GL_MAX_CONVOLUTION_HEIGHT)
		{ GL_MAX_CONVOLUTION_HEIGHT,				 1 },
#endif
#if defined(GL_MAX_CONVOLUTION_WIDTH)
		{ GL_MAX_CONVOLUTION_WIDTH,					 1 },
#endif
#if defined(GL_MAX_CUBE_MAP_TEXTURE_SIZE)
		{ GL_MAX_CUBE_MAP_TEXTURE_SIZE,				 1 },
#endif
#if defined(GL_MAX_DRAW_BUFFERS)
		{ GL_MAX_DRAW_BUFFERS,						 1 },
#endif
#if defined(GL_MAX_ELEMENTS_INDICES)
		{ GL_MAX_ELEMENTS_INDICES,					 1 },
#endif
#if defined(GL_MAX_ELEMENTS_VERTICES)
		{ GL_MAX_ELEMENTS_VERTICES,					 1 },
#endif
#if defined(GL_MAX_EVAL_ORDER)
		{ GL_MAX_EVAL_ORDER,						 1 },
#endif
#if defined(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS)
		{ GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,		 1 },
#endif
#if defined(GL_MAX_LIGHTS)
		{ GL_MAX_LIGHTS,							 1 },
#endif
#if defined(GL_MAX_LIST_NESTING)
		{ GL_MAX_LIST_NESTING,						 1 },
#endif
#if defined(GL_MAX_MODELVIEW_STACK_DEPTH)
		{ GL_MAX_MODELVIEW_STACK_DEPTH,				 1 },
#endif
#if defined(GL_MAX_NAME_STACK_DEPTH)
		{ GL_MAX_NAME_STACK_DEPTH,					 1 },
#endif
#if defined(GL_MAX_PIXEL_MAP_TABLE)
		{ GL_MAX_PIXEL_MAP_TABLE,					 1 },
#endif
#if defined(GL_MAX_PROJECTION_STACK_DEPTH)
		{ GL_MAX_PROJECTION_STACK_DEPTH,			 1 },
#endif
#if defined(GL_MAX_TEXTURE_COORDS)
		{ GL_MAX_TEXTURE_COORDS,					 1 },
#endif
#if defined(GL_MAX_TEXTURE_IMAGE_UNITS)
		{ GL_MAX_TEXTURE_IMAGE_UNITS,				 1 },
#endif
#if defined(GL_MAX_TEXTURE_LOD_BIAS)
		{ GL_MAX_TEXTURE_LOD_BIAS,					 1 },
#endif
#if defined(GL_MAX_TEXTURE_SIZE)
		{ GL_MAX_TEXTURE_SIZE,						 1 },
#endif
#if defined(GL_MAX_TEXTURE_STACK_DEPTH)
		{ GL_MAX_TEXTURE_STACK_DEPTH,				 1 },
#endif
#if defined(GL_MAX_TEXTURE_UNITS)
		{ GL_MAX_TEXTURE_UNITS,						 1 },
#endif
#if defined(GL_MAX_VARYING_FLOATS)
		{ GL_MAX_VARYING_FLOATS,					 1 },
#endif
#if defined(GL_MAX_VERTEX_ATTRIBS)
		{ GL_MAX_VERTEX_ATTRIBS,					 1 },
#endif
#if defined(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS)
		{ GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,		 1 },
#endif
#if defined(GL_MAX_VERTEX_UNIFORM_COMPONENTS)
		{ GL_MAX_VERTEX_UNIFORM_COMPONENTS,			 1 },
#endif
#if defined(GL_MAX_VIEWPORT_DIMS)
		{ GL_MAX_VIEWPORT_DIMS,						 2 },
#endif
#if defined(GL_MINMAX)
		{ GL_MINMAX,								 1 },
#endif
#if defined(GL_MINMAX_FORMAT)
		{ GL_MINMAX_FORMAT,							 1 },
#endif
#if defined(GL_MINMAX_SINK)
		{ GL_MINMAX_SINK,							 1 },
#endif
#if defined(GL_MODELVIEW_MATRIX)
		{ GL_MODELVIEW_MATRIX,						16 },
#endif
#if defined(GL_MODELVIEW_STACK_DEPTH)
		{ GL_MODELVIEW_STACK_DEPTH,					 1 },
#endif
#if defined(GL_NAME_STACK_DEPTH)
		{ GL_NAME_STACK_DEPTH,						 1 },
#endif
#if defined(GL_NORMALIZE)
		{ GL_NORMALIZE,								 1 },
#endif
#if defined(GL_NORMAL_ARRAY)
		{ GL_NORMAL_ARRAY,							 1 },
#endif
#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING)
		{ GL_NORMAL_ARRAY_BUFFER_BINDING,			 1 },
#endif
#if defined(GL_NORMAL_ARRAY_STRIDE)
		{ GL_NORMAL_ARRAY_STRIDE,					 1 },
#endif
#if defined(GL_NORMAL_ARRAY_TYPE)
		{ GL_NORMAL_ARRAY_TYPE,						 1 },
#endif
#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
		{ GL_NUM_COMPRESSED_TEXTURE_FORMATS,		 1 },
#endif
#if defined(GL_OBJECT_PLANE)
		{ GL_OBJECT_PLANE,							 1 },
#endif
#if defined(GL_OPERAND0_ALPHA)
		{ GL_OPERAND0_ALPHA,						 1 },
#endif
#if defined(GL_OPERAND0_RGB)
		{ GL_OPERAND0_RGB,							 1 },
#endif
#if defined(GL_OPERAND1_ALPHA)
		{ GL_OPERAND1_ALPHA,						 1 },
#endif
#if defined(GL_OPERAND1_RGB)
		{ GL_OPERAND1_RGB,							 1 },
#endif
#if defined(GL_OPERAND2_ALPHA)
		{ GL_OPERAND2_ALPHA,						 1 },
#endif
#if defined(GL_OPERAND2_RGB)
		{ GL_OPERAND2_RGB,							 1 },
#endif
#if defined(GL_PACK_ALIGNMENT)
		{ GL_PACK_ALIGNMENT,						 1 },
#endif
#if defined(GL_PACK_IMAGE_HEIGHT)
		{ GL_PACK_IMAGE_HEIGHT,						 1 },
#endif
#if defined(GL_PACK_LSB_FIRST)
		{ GL_PACK_LSB_FIRST,						 1 },
#endif
#if defined(GL_PACK_ROW_LENGTH)
		{ GL_PACK_ROW_LENGTH,						 1 },
#endif
#if defined(GL_PACK_SKIP_IMAGES)
		{ GL_PACK_SKIP_IMAGES,						 1 },
#endif
#if defined(GL_PACK_SKIP_PIXELS)
		{ GL_PACK_SKIP_PIXELS,						 1 },
#endif
#if defined(GL_PACK_SKIP_ROWS)
		{ GL_PACK_SKIP_ROWS,						 1 },
#endif
#if defined(GL_PACK_SWAP_BYTES)
		{ GL_PACK_SWAP_BYTES,						 1 },
#endif
#if defined(GL_PERSPECTIVE_CORRECTION_HINT)
		{ GL_PERSPECTIVE_CORRECTION_HINT,			 1 },
#endif
#if defined(GL_PIXEL_MAP_A_TO_A_SIZE)
		{ GL_PIXEL_MAP_A_TO_A_SIZE,					 1 },
#endif
#if defined(GL_PIXEL_MAP_B_TO_B_SIZE)
		{ GL_PIXEL_MAP_B_TO_B_SIZE,					 1 },
#endif
#if defined(GL_PIXEL_MAP_G_TO_G_SIZE)
		{ GL_PIXEL_MAP_G_TO_G_SIZE,					 1 },
#endif
#if defined(GL_PIXEL_MAP_I_TO_A_SIZE)
		{ GL_PIXEL_MAP_I_TO_A_SIZE,					 1 },
#endif
#if defined(GL_PIXEL_MAP_I_TO_B_SIZE)
		{ GL_PIXEL_MAP_I_TO_B_SIZE,					 1 },
#endif
#if defined(GL_PIXEL_MAP_I_TO_G_SIZE)
		{ GL_PIXEL_MAP_I_TO_G_SIZE,					 1 },
#endif
#if defined(GL_PIXEL_MAP_I_TO_I_SIZE)
		{ GL_PIXEL_MAP_I_TO_I_SIZE,					 1 },
#endif
#if defined(GL_PIXEL_MAP_I_TO_R_SIZE)
		{ GL_PIXEL_MAP_I_TO_R_SIZE,					 1 },
#endif
#if defined(GL_PIXEL_MAP_R_TO_R_SIZE)
		{ GL_PIXEL_MAP_R_TO_R_SIZE,					 1 },
#endif
#if defined(GL_PIXEL_MAP_S_TO_S_SIZE)
		{ GL_PIXEL_MAP_S_TO_S_SIZE,					 1 },
#endif
#if defined(GL_PIXEL_PACK_BUFFER_BINDING)
		{ GL_PIXEL_PACK_BUFFER_BINDING,				 1 },
#endif
#if defined(GL_PIXEL_UNPACK_BUFFER_BINDING)
		{ GL_PIXEL_UNPACK_BUFFER_BINDING,			 1 },
#endif
#if defined(GL_POINT_DISTANCE_ATTENUATION)
		{ GL_POINT_DISTANCE_ATTENUATION,			 3 },
#endif
#if defined(GL_POINT_FADE_THRESHOLD_SIZE)
		{ GL_POINT_FADE_THRESHOLD_SIZE,				 1 },
#endif
#if defined(GL_POINT_SIZE)
		{ GL_POINT_SIZE,							 1 },
#endif
#if defined(GL_POINT_SIZE_GRANULARITY)
		{ GL_POINT_SIZE_GRANULARITY,				 1 },
#endif
#if defined(GL_POINT_SIZE_MAX)
		{ GL_POINT_SIZE_MAX,						 1 },
#endif
#if defined(GL_POINT_SIZE_MIN)
		{ GL_POINT_SIZE_MIN,						 1 },
#endif
#if defined(GL_POINT_SIZE_RANGE)
		{ GL_POINT_SIZE_RANGE,						 2 },
#endif
#if defined(GL_POINT_SMOOTH)
		{ GL_POINT_SMOOTH,							 1 },
#endif
#if defined(GL_POINT_SMOOTH_HINT)
		{ GL_POINT_SMOOTH_HINT,						 1 },
#endif
#if defined(GL_POINT_SPRITE)
		{ GL_POINT_SPRITE,							 1 },
#endif
#if defined(GL_POLYGON_MODE)
		{ GL_POLYGON_MODE,							 2 },
#endif
#if defined(GL_POLYGON_OFFSET_FACTOR)
		{ GL_POLYGON_OFFSET_FACTOR,					 1 },
#endif
#if defined(GL_POLYGON_OFFSET_FILL)
		{ GL_POLYGON_OFFSET_FILL,					 1 },
#endif
#if defined(GL_POLYGON_OFFSET_LINE)
		{ GL_POLYGON_OFFSET_LINE,					 1 },
#endif
#if defined(GL_POLYGON_OFFSET_POINT)
		{ GL_POLYGON_OFFSET_POINT,					 1 },
#endif
#if defined(GL_POLYGON_OFFSET_UNITS)
		{ GL_POLYGON_OFFSET_UNITS,					 1 },
#endif
#if defined(GL_POLYGON_SMOOTH)
		{ GL_POLYGON_SMOOTH,						 1 },
#endif
#if defined(GL_POLYGON_SMOOTH_HINT)
		{ GL_POLYGON_SMOOTH_HINT,					 1 },
#endif
#if defined(GL_POLYGON_STIPPLE)
		{ GL_POLYGON_STIPPLE,						 1 },
#endif
#if defined(GL_POSITION)
		{ GL_POSITION,								 4 },
#endif
#if defined(GL_POST_COLOR_MATRIX_ALPHA_BIAS)
		{ GL_POST_COLOR_MATRIX_ALPHA_BIAS,			 1 },
#endif
#if defined(GL_POST_COLOR_MATRIX_ALPHA_SCALE)
		{ GL_POST_COLOR_MATRIX_ALPHA_SCALE,			 1 },
#endif
#if defined(GL_POST_COLOR_MATRIX_BLUE_BIAS)
		{ GL_POST_COLOR_MATRIX_BLUE_BIAS,			 1 },
#endif
#if defined(GL_POST_COLOR_MATRIX_BLUE_SCALE)
		{ GL_POST_COLOR_MATRIX_BLUE_SCALE,			 1 },
#endif
#if defined(GL_POST_COLOR_MATRIX_COLOR_TABLE)
		{ GL_POST_COLOR_MATRIX_COLOR_TABLE,			 1 },
#endif
#if defined(GL_POST_COLOR_MATRIX_GREEN_BIAS)
		{ GL_POST_COLOR_MATRIX_GREEN_BIAS,			 1 },
#endif
#if defined(GL_POST_COLOR_MATRIX_GREEN_SCALE)
		{ GL_POST_COLOR_MATRIX_GREEN_SCALE,			 1 },
#endif
#if defined(GL_POST_COLOR_MATRIX_RED_BIAS)
		{ GL_POST_COLOR_MATRIX_RED_BIAS,			 1 },
#endif
#if defined(GL_POST_COLOR_MATRIX_RED_SCALE)
		{ GL_POST_COLOR_MATRIX_RED_SCALE,			 1 },
#endif
#if defined(GL_POST_CONVOLUTION_ALPHA_BIAS)
		{ GL_POST_CONVOLUTION_ALPHA_BIAS,			 1 },
#endif
#if defined(GL_POST_CONVOLUTION_ALPHA_SCALE)
		{ GL_POST_CONVOLUTION_ALPHA_SCALE,			 1 },
#endif
#if defined(GL_POST_CONVOLUTION_BLUE_BIAS)
		{ GL_POST_CONVOLUTION_BLUE_BIAS,			 1 },
#endif
#if defined(GL_POST_CONVOLUTION_BLUE_SCALE)
		{ GL_POST_CONVOLUTION_BLUE_SCALE,			 1 },
#endif
#if defined(GL_POST_CONVOLUTION_COLOR_TABLE)
		{ GL_POST_CONVOLUTION_COLOR_TABLE,			 1 },
#endif
#if defined(GL_POST_CONVOLUTION_GREEN_BIAS)
		{ GL_POST_CONVOLUTION_GREEN_BIAS,			 1 },
#endif
#if defined(GL_POST_CONVOLUTION_GREEN_SCALE)
		{ GL_POST_CONVOLUTION_GREEN_SCALE,			 1 },
#endif
#if defined(GL_POST_CONVOLUTION_RED_BIAS)
		{ GL_POST_CONVOLUTION_RED_BIAS,				 1 },
#endif
#if defined(GL_POST_CONVOLUTION_RED_SCALE)
		{ GL_POST_CONVOLUTION_RED_SCALE,			 1 },
#endif
#if defined(GL_PROJECTION_MATRIX)
		{ GL_PROJECTION_MATRIX,						16 },
#endif
#if defined(GL_PROJECTION_STACK_DEPTH)
		{ GL_PROJECTION_STACK_DEPTH,				 1 },
#endif
#if defined(GL_QUADRATIC_ATTENUATION)
		{ GL_QUADRATIC_ATTENUATION,					 1 },
#endif
#if defined(GL_QUERY_COUNTER_BITS)
		{ GL_QUERY_COUNTER_BITS,					 1 },
#endif
#if defined(GL_QUERY_RESULT)
		{ GL_QUERY_RESULT,							 1 },
#endif
#if defined(GL_QUERY_RESULT_AVAILABLE)
		{ GL_QUERY_RESULT_AVAILABLE,				 1 },
#endif
#if defined(GL_READ_BUFFER)
		{ GL_READ_BUFFER,							 1 },
#endif
#if defined(GL_RED_BIAS)
		{ GL_RED_BIAS,								 1 },
#endif
#if defined(GL_RED_BITS)
		{ GL_RED_BITS,								 1 },
#endif
#if defined(GL_RED_SCALE)
		{ GL_RED_SCALE,								 1 },
#endif
#if defined(GL_RENDER_MODE)
		{ GL_RENDER_MODE,							 1 },
#endif
#if defined(GL_RESCALE_NORMAL)
		{ GL_RESCALE_NORMAL,						 1 },
#endif
#if defined(GL_RGBA_MODE)
		{ GL_RGBA_MODE,								 1 },
#endif
#if defined(GL_RGB_SCALE)
		{ GL_RGB_SCALE,								 1 },
#endif
#if defined(GL_SAMPLES)
		{ GL_SAMPLES,								 1 },
#endif
#if defined(GL_SAMPLE_BUFFERS)
		{ GL_SAMPLE_BUFFERS,						 1 },
#endif
#if defined(GL_SAMPLE_COVERAGE_INVERT)
		{ GL_SAMPLE_COVERAGE_INVERT,				 1 },
#endif
#if defined(GL_SAMPLE_COVERAGE_VALUE)
		{ GL_SAMPLE_COVERAGE_VALUE,					 1 },
#endif
#if defined(GL_SCISSOR_BOX)
		{ GL_SCISSOR_BOX,							 4 },
#endif
#if defined(GL_SCISSOR_TEST)
		{ GL_SCISSOR_TEST,							 1 },
#endif
#if defined(GL_SECONDARY_COLOR_ARRAY)
		{ GL_SECONDARY_COLOR_ARRAY,					 1 },
#endif
#if defined(GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING)
		{ GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,	 1 },
#endif
#if defined(GL_SECONDARY_COLOR_ARRAY_SIZE)
		{ GL_SECONDARY_COLOR_ARRAY_SIZE,			 1 },
#endif
#if defined(GL_SECONDARY_COLOR_ARRAY_STRIDE)
		{ GL_SECONDARY_COLOR_ARRAY_STRIDE,			 1 },
#endif
#if defined(GL_SECONDARY_COLOR_ARRAY_TYPE)
		{ GL_SECONDARY_COLOR_ARRAY_TYPE,			 1 },
#endif
#if defined(GL_SELECTION_BUFFER_SIZE)
		{ GL_SELECTION_BUFFER_SIZE,					 1 },
#endif
#if defined(GL_SEPARABLE_2D)
		{ GL_SEPARABLE_2D,							 1 },
#endif
#if defined(GL_SHADER_SOURCE_LENGTH)
		{ GL_SHADER_SOURCE_LENGTH,					 1 },
#endif
#if defined(GL_SHADER_TYPE)
		{ GL_SHADER_TYPE,							 1 },
#endif
#if defined(GL_SHADE_MODEL)
		{ GL_SHADE_MODEL,							 1 },
#endif
#if defined(GL_SHININESS)
		{ GL_SHININESS,								 1 },
#endif
#if defined(GL_SMOOTH_LINE_WIDTH_GRANULARITY)
		{ GL_SMOOTH_LINE_WIDTH_GRANULARITY,			 1 },
#endif
#if defined(GL_SMOOTH_LINE_WIDTH_RANGE)
		{ GL_SMOOTH_LINE_WIDTH_RANGE,				 2 },
#endif
#if defined(GL_SMOOTH_POINT_SIZE_GRANULARITY)
		{ GL_SMOOTH_POINT_SIZE_GRANULARITY,			 1 },
#endif
#if defined(GL_SMOOTH_POINT_SIZE_RANGE)
		{ GL_SMOOTH_POINT_SIZE_RANGE,				 2 },
#endif
#if defined(GL_SPECULAR)
		{ GL_SPECULAR,								 4 },
#endif
#if defined(GL_SPOT_CUTOFF)
		{ GL_SPOT_CUTOFF,							 1 },
#endif
#if defined(GL_SPOT_DIRECTION)
		{ GL_SPOT_DIRECTION,						 3 },
#endif
#if defined(GL_SPOT_EXPONENT)
		{ GL_SPOT_EXPONENT,							 1 },
#endif
#if defined(GL_SRC0_ALPHA)
		{ GL_SRC0_ALPHA,							 1 },
#endif
#if defined(GL_SRC0_RGB)
		{ GL_SRC0_RGB,								 1 },
#endif
#if defined(GL_SRC1_ALPHA)
		{ GL_SRC1_ALPHA,							 1 },
#endif
#if defined(GL_SRC1_RGB)
		{ GL_SRC1_RGB,								 1 },
#endif
#if defined(GL_SRC2_ALPHA)
		{ GL_SRC2_ALPHA,							 1 },
#endif
#if defined(GL_SRC2_RGB)
		{ GL_SRC2_RGB,								 1 },
#endif
#if defined(GL_STENCIL_BACK_FAIL)
		{ GL_STENCIL_BACK_FAIL,						 1 },
#endif
#if defined(GL_STENCIL_BACK_FUNC)
		{ GL_STENCIL_BACK_FUNC,						 1 },
#endif
#if defined(GL_STENCIL_BACK_PASS_DEPTH_FAIL)
		{ GL_STENCIL_BACK_PASS_DEPTH_FAIL,			 1 },
#endif
#if defined(GL_STENCIL_BACK_PASS_DEPTH_PASS)
		{ GL_STENCIL_BACK_PASS_DEPTH_PASS,			 1 },
#endif
#if defined(GL_STENCIL_BACK_REF)
		{ GL_STENCIL_BACK_REF,						 1 },
#endif
#if defined(GL_STENCIL_BACK_VALUE_MASK)
		{ GL_STENCIL_BACK_VALUE_MASK,				 1 },
#endif
#if defined(GL_STENCIL_BACK_WRITEMASK)
		{ GL_STENCIL_BACK_WRITEMASK,				 1 },
#endif
#if defined(GL_STENCIL_BITS)
		{ GL_STENCIL_BITS,							 1 },
#endif
#if defined(GL_STENCIL_CLEAR_VALUE)
		{ GL_STENCIL_CLEAR_VALUE,					 1 },
#endif
#if defined(GL_STENCIL_FAIL)
		{ GL_STENCIL_FAIL,							 1 },
#endif
#if defined(GL_STENCIL_FUNC)
		{ GL_STENCIL_FUNC,							 1 },
#endif
#if defined(GL_STENCIL_PASS_DEPTH_FAIL)
		{ GL_STENCIL_PASS_DEPTH_FAIL,				 1 },
#endif
#if defined(GL_STENCIL_PASS_DEPTH_PASS)
		{ GL_STENCIL_PASS_DEPTH_PASS,				 1 },
#endif
#if defined(GL_STENCIL_REF)
		{ GL_STENCIL_REF,							 1 },
#endif
#if defined(GL_STENCIL_TEST)
		{ GL_STENCIL_TEST,							 1 },
#endif
#if defined(GL_STENCIL_VALUE_MASK)
		{ GL_STENCIL_VALUE_MASK,					 1 },
#endif
#if defined(GL_STENCIL_WRITEMASK)
		{ GL_STENCIL_WRITEMASK,						 1 },
#endif
#if defined(GL_STEREO)
		{ GL_STEREO,								 1 },
#endif
#if defined(GL_SUBPIXEL_BITS)
		{ GL_SUBPIXEL_BITS,							 1 },
#endif
#if defined(GL_TEXTURE_1D)
		{ GL_TEXTURE_1D,							 1 },
#endif
#if defined(GL_TEXTURE_2D)
		{ GL_TEXTURE_2D,							 1 },
#endif
#if defined(GL_TEXTURE_3D)
		{ GL_TEXTURE_3D,							 1 },
#endif
#if defined(GL_TEXTURE_BASE_LEVEL)
		{ GL_TEXTURE_BASE_LEVEL,					 1 },
#endif
#if defined(GL_TEXTURE_BINDING_1D)
		{ GL_TEXTURE_BINDING_1D,					 1 },
#endif
#if defined(GL_TEXTURE_BINDING_2D)
		{ GL_TEXTURE_BINDING_2D,					 1 },
#endif
#if defined(GL_TEXTURE_BINDING_3D)
		{ GL_TEXTURE_BINDING_3D,					 1 },
#endif
#if defined(GL_TEXTURE_BINDING_CUBE_MAP)
		{ GL_TEXTURE_BINDING_CUBE_MAP,				 1 },
#endif
#if defined(GL_TEXTURE_BORDER)
		{ GL_TEXTURE_BORDER,						 1 },
#endif
#if defined(GL_TEXTURE_BORDER_COLOR)
		{ GL_TEXTURE_BORDER_COLOR,					 4 },
#endif
#if defined(GL_TEXTURE_COMPARE_FUNC)
		{ GL_TEXTURE_COMPARE_FUNC,					 1 },
#endif
#if defined(GL_TEXTURE_COMPARE_MODE)
		{ GL_TEXTURE_COMPARE_MODE,					 1 },
#endif
#if defined(GL_TEXTURE_COMPRESSED)
		{ GL_TEXTURE_COMPRESSED,					 1 },
#endif
#if defined(GL_TEXTURE_COMPRESSED_IMAGE_SIZE)
		{ GL_TEXTURE_COMPRESSED_IMAGE_SIZE,			 1 },
#endif
#if defined(GL_TEXTURE_COMPRESSION_HINT)
		{ GL_TEXTURE_COMPRESSION_HINT,				 1 },
#endif
#if defined(GL_TEXTURE_COORD_ARRAY)
		{ GL_TEXTURE_COORD_ARRAY,					 1 },
#endif
#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING)
		{ GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING,	 1 },
#endif
#if defined(GL_TEXTURE_COORD_ARRAY_SIZE)
		{ GL_TEXTURE_COORD_ARRAY_SIZE,				 1 },
#endif
#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE)
		{ GL_TEXTURE_COORD_ARRAY_STRIDE,			 1 },
#endif
#if defined(GL_TEXTURE_COORD_ARRAY_TYPE)
		{ GL_TEXTURE_COORD_ARRAY_TYPE,				 1 },
#endif
#if defined(GL_TEXTURE_CUBE_MAP)
		{ GL_TEXTURE_CUBE_MAP,						 1 },
#endif
#if defined(GL_TEXTURE_DEPTH)
		{ GL_TEXTURE_DEPTH,							 1 },
#endif
#if defined(GL_TEXTURE_DEPTH_SIZE)
		{ GL_TEXTURE_DEPTH_SIZE,					 1 },
#endif
#if defined(GL_TEXTURE_ENV_COLOR)
		{ GL_TEXTURE_ENV_COLOR,						 4 },
#endif
#if defined(GL_TEXTURE_ENV_MODE)
		{ GL_TEXTURE_ENV_MODE,						 1 },
#endif
#if defined(GL_TEXTURE_GEN_MODE)
		{ GL_TEXTURE_GEN_MODE,						 1 },
#endif
#if defined(GL_TEXTURE_GEN_Q)
		{ GL_TEXTURE_GEN_Q,							 1 },
#endif
#if defined(GL_TEXTURE_GEN_R)
		{ GL_TEXTURE_GEN_R,							 1 },
#endif
#if defined(GL_TEXTURE_GEN_S)
		{ GL_TEXTURE_GEN_S,							 1 },
#endif
#if defined(GL_TEXTURE_GEN_T)
		{ GL_TEXTURE_GEN_T,							 1 },
#endif
#if defined(GL_TEXTURE_HEIGHT)
		{ GL_TEXTURE_HEIGHT,						 1 },
#endif
#if defined(GL_TEXTURE_INTERNAL_FORMAT)
		{ GL_TEXTURE_INTERNAL_FORMAT,				 1 },
#endif
#if defined(GL_TEXTURE_LOD_BIAS)
		{ GL_TEXTURE_LOD_BIAS,						 1 },
#endif
#if defined(GL_TEXTURE_MAG_FILTER)
		{ GL_TEXTURE_MAG_FILTER,					 1 },
#endif
#if defined(GL_TEXTURE_MATRIX)
		{ GL_TEXTURE_MATRIX,						16 },
#endif
#if defined(GL_TEXTURE_MAX_LEVEL)
		{ GL_TEXTURE_MAX_LEVEL,						 1 },
#endif
#if defined(GL_TEXTURE_MAX_LOD)
		{ GL_TEXTURE_MAX_LOD,						 1 },
#endif
#if defined(GL_TEXTURE_MIN_FILTER)
		{ GL_TEXTURE_MIN_FILTER,					 1 },
#endif
#if defined(GL_TEXTURE_MIN_LOD)
		{ GL_TEXTURE_MIN_LOD,						 1 },
#endif
#if defined(GL_TEXTURE_PRIORITY)
		{ GL_TEXTURE_PRIORITY,						 1 },
#endif
#if defined(GL_TEXTURE_RESIDENT)
		{ GL_TEXTURE_RESIDENT,						 1 },
#endif
#if defined(GL_TEXTURE_STACK_DEPTH)
		{ GL_TEXTURE_STACK_DEPTH,					 1 },
#endif
#if defined(GL_TEXTURE_WIDTH)
		{ GL_TEXTURE_WIDTH,							 1 },
#endif
#if defined(GL_TEXTURE_WRAP_R)
		{ GL_TEXTURE_WRAP_R,						 1 },
#endif
#if defined(GL_TEXTURE_WRAP_S)
		{ GL_TEXTURE_WRAP_S,						 1 },
#endif
#if defined(GL_TEXTURE_WRAP_T)
		{ GL_TEXTURE_WRAP_T,						 1 },
#endif
#if defined(GL_TRANSPOSE_COLOR_MATRIX)
		{ GL_TRANSPOSE_COLOR_MATRIX,				16 },
#endif
#if defined(GL_TRANSPOSE_MODELVIEW_MATRIX)
		{ GL_TRANSPOSE_MODELVIEW_MATRIX,			16 },
#endif
#if defined(GL_TRANSPOSE_PROJECTION_MATRIX)
		{ GL_TRANSPOSE_PROJECTION_MATRIX,			16 },
#endif
#if defined(GL_TRANSPOSE_TEXTURE_MATRIX)
		{ GL_TRANSPOSE_TEXTURE_MATRIX,				16 },
#endif
#if defined(GL_UNPACK_ALIGNMENT)
		{ GL_UNPACK_ALIGNMENT,						 1 },
#endif
#if defined(GL_UNPACK_IMAGE_HEIGHT)
		{ GL_UNPACK_IMAGE_HEIGHT,					 1 },
#endif
#if defined(GL_UNPACK_LSB_FIRST)
		{ GL_UNPACK_LSB_FIRST,						 1 },
#endif
#if defined(GL_UNPACK_ROW_LENGTH)
		{ GL_UNPACK_ROW_LENGTH,						 1 },
#endif
#if defined(GL_UNPACK_SKIP_IMAGES)
		{ GL_UNPACK_SKIP_IMAGES,					 1 },
#endif
#if defined(GL_UNPACK_SKIP_PIXELS)
		{ GL_UNPACK_SKIP_PIXELS,					 1 },
#endif
#if defined(GL_UNPACK_SKIP_ROWS)
		{ GL_UNPACK_SKIP_ROWS,						 1 },
#endif
#if defined(GL_UNPACK_SWAP_BYTES)
		{ GL_UNPACK_SWAP_BYTES,						 1 },
#endif
#if defined(GL_VALIDATE_STATUS)
		{ GL_VALIDATE_STATUS,						 1 },
#endif
#if defined(GL_VERTEX_ARRAY)
		{ GL_VERTEX_ARRAY,							 1 },
#endif
#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING)
		{ GL_VERTEX_ARRAY_BUFFER_BINDING,			 1 },
#endif
#if defined(GL_VERTEX_ARRAY_SIZE)
		{ GL_VERTEX_ARRAY_SIZE,						 1 },
#endif
#if defined(GL_VERTEX_ARRAY_STRIDE)
		{ GL_VERTEX_ARRAY_STRIDE,					 1 },
#endif
#if defined(GL_VERTEX_ARRAY_TYPE)
		{ GL_VERTEX_ARRAY_TYPE,						 1 },
#endif
#if defined(GL_VERTEX_PROGRAM_POINT_SIZE)
		{ GL_VERTEX_PROGRAM_POINT_SIZE,				 1 },
#endif
#if defined(GL_VERTEX_PROGRAM_TWO_SIDE)
		{ GL_VERTEX_PROGRAM_TWO_SIDE,				 1 },
#endif
#if defined(GL_VIEWPORT)
		{ GL_VIEWPORT,								 4 },
#endif
#if defined(GL_ZOOM_X)
		{ GL_ZOOM_X,								 1 },
#endif
#if defined(GL_ZOOM_Y)
		{ GL_ZOOM_Y,								 1 },
#endif
#if defined(GL_BUFFER_ACCESS)
		{ GL_BUFFER_ACCESS,							 1 },
#endif
#if defined(GL_BUFFER_ACCESS_FLAGS)
		{ GL_BUFFER_ACCESS_FLAGS,					 1 },
#endif
#if defined(GL_BUFFER_IMMUTABLE_STORAGE)
		{ GL_BUFFER_IMMUTABLE_STORAGE,				 1 },
#endif
#if defined(GL_BUFFER_MAPPED)
		{ GL_BUFFER_MAPPED,							 1 },
#endif
#if defined(GL_BUFFER_MAP_LENGTH)
		{ GL_BUFFER_MAP_LENGTH,						 1 },
#endif
#if defined(GL_BUFFER_MAP_OFFSET)
		{ GL_BUFFER_MAP_OFFSET,						 1 },
#endif
#if defined(GL_BUFFER_SIZE)
		{ GL_BUFFER_SIZE,							 1 },
#endif
#if defined(GL_BUFFER_STORAGE_FLAGS)
		{ GL_BUFFER_STORAGE_FLAGS,					 1 },
#endif
#if defined(GL_BUFFER_USAGE)
		{ GL_BUFFER_USAGE,							 1 },
#endif
	};
	for (int i = 0; i < ArraySizeOf(tbl); i++) {
		(*_pParamInfoDict)[tbl[i].pname] = tbl[i].n;
	}
}
예제 #4
0
char ZenToHanChar(const char *str, const char **next)
{
	struct Convert {
		const char *zenkaku;
		int len;
		char hankaku;
	};
	static const Convert convTbl[] = {
		{ "\xef\xbc\x81", 3, 0x21 }, // !
		{ "\xe2\x80\x9c", 3, 0x22 }, // "
		{ "\xe2\x80\x9d", 3, 0x22 }, // "
		{ "\xe3\x82\x9b", 3, 0x22 }, // "
		{ "\xe2\x80\xb3", 3, 0x22 }, // "
		{ "\xef\xbc\x83", 3, 0x23 }, // #
		{ "\xef\xbc\x84", 3, 0x24 }, // $
		{ "\xef\xbc\x85", 3, 0x25 }, // %
		{ "\xef\xbc\x86", 3, 0x26 }, // &
		{ "\xe2\x80\x99", 3, 0x27 }, // '
		{ "\xc2\xb4",     2, 0x27 }, // '
		{ "\xe2\x80\xb2", 3, 0x27 }, // '
		{ "\xef\xbc\x88", 3, 0x28 }, // (
		{ "\xef\xbc\x89", 3, 0x29 }, // )
		{ "\xef\xbc\x8a", 3, 0x2a }, // *
		{ "\xc3\x97",     2, 0x2a }, // *
		{ "\xef\xbc\x8b", 3, 0x2b }, // +
		{ "\xe3\x80\x81", 3, 0x2c }, // ,
		{ "\xef\xbc\x8c", 3, 0x2c }, // ,
		{ "\xe3\x83\xbc", 3, 0x2d }, // -
		{ "\xef\xbc\x8d", 3, 0x2d }, // -
		{ "\xe2\x94\x80", 3, 0x2d }, // -
		{ "\xe3\x80\x82", 3, 0x2e }, // .
		{ "\xef\xbc\x8e", 3, 0x2e }, // .
		{ "\xef\xbc\x8f", 3, 0x2f }, // /
		{ "\xef\xbc\x90", 3, 0x30 }, // 0
		{ "\xef\xbc\x91", 3, 0x31 }, // 1
		{ "\xef\xbc\x92", 3, 0x32 }, // 2
		{ "\xef\xbc\x93", 3, 0x33 }, // 3
		{ "\xef\xbc\x94", 3, 0x34 }, // 4
		{ "\xef\xbc\x95", 3, 0x35 }, // 5
		{ "\xef\xbc\x96", 3, 0x36 }, // 6
		{ "\xef\xbc\x97", 3, 0x37 }, // 7
		{ "\xef\xbc\x98", 3, 0x38 }, // 8
		{ "\xef\xbc\x99", 3, 0x39 }, // 9
		{ "\xef\xbc\x9a", 3, 0x3a }, // :
		{ "\xef\xbc\x9b", 3, 0x3b }, // ;
		{ "\xef\xbc\x9c", 3, 0x3c }, // <
		{ "\xe3\x80\x88", 3, 0x3c }, // <
		{ "\xef\xbc\x9d", 3, 0x3d }, // =
		{ "\xef\xbc\x9e", 3, 0x3e }, // >
		{ "\xe3\x80\x89", 3, 0x3e }, // >
		{ "\xef\xbc\x9f", 3, 0x3f }, // ?
		{ "\xef\xbc\xa0", 3, 0x40 }, // @
		{ "\xef\xbc\xa1", 3, 0x41 }, // A
		{ "\xef\xbc\xa2", 3, 0x42 }, // B
		{ "\xef\xbc\xa3", 3, 0x43 }, // C
		{ "\xef\xbc\xa4", 3, 0x44 }, // D
		{ "\xef\xbc\xa5", 3, 0x45 }, // E
		{ "\xef\xbc\xa6", 3, 0x46 }, // F
		{ "\xef\xbc\xa7", 3, 0x47 }, // G
		{ "\xef\xbc\xa8", 3, 0x48 }, // H
		{ "\xef\xbc\xa9", 3, 0x49 }, // I
		{ "\xef\xbc\xaa", 3, 0x4a }, // J
		{ "\xef\xbc\xab", 3, 0x4b }, // K
		{ "\xef\xbc\xac", 3, 0x4c }, // L
		{ "\xef\xbc\xad", 3, 0x4d }, // M
		{ "\xef\xbc\xae", 3, 0x4e }, // N
		{ "\xef\xbc\xaf", 3, 0x4f }, // O
		{ "\xef\xbc\xb0", 3, 0x50 }, // P
		{ "\xef\xbc\xb1", 3, 0x51 }, // Q
		{ "\xef\xbc\xb2", 3, 0x52 }, // R
		{ "\xef\xbc\xb3", 3, 0x53 }, // S
		{ "\xef\xbc\xb4", 3, 0x54 }, // T
		{ "\xef\xbc\xb5", 3, 0x55 }, // U
		{ "\xef\xbc\xb6", 3, 0x56 }, // V
		{ "\xef\xbc\xb7", 3, 0x57 }, // W
		{ "\xef\xbc\xb8", 3, 0x58 }, // X
		{ "\xef\xbc\xb9", 3, 0x59 }, // Y
		{ "\xef\xbc\xba", 3, 0x5a }, // Z
		{ "\xef\xbc\xbb", 3, 0x5b }, // [
		{ "\xe3\x80\x94", 3, 0x5b }, // [
		{ "\xef\xbf\xa5", 3, 0x5c }, // yen
		{ "\xef\xbc\xbd", 3, 0x5d }, // ]
		{ "\xe3\x80\x95", 3, 0x5d }, // ]
		{ "\xef\xbc\xbe", 3, 0x5e }, // ^
		{ "\xef\xbc\xbf", 3, 0x5f }, // _
		{ "\xe2\x80\x98", 3, 0x60 }, // `
		{ "\xef\xbd\x80", 3, 0x60 }, // `
		{ "\xef\xbd\x81", 3, 0x61 }, // a
		{ "\xef\xbd\x82", 3, 0x62 }, // b
		{ "\xef\xbd\x83", 3, 0x63 }, // c
		{ "\xef\xbd\x84", 3, 0x64 }, // d
		{ "\xef\xbd\x85", 3, 0x65 }, // e
		{ "\xef\xbd\x86", 3, 0x66 }, // f
		{ "\xef\xbd\x87", 3, 0x67 }, // g
		{ "\xef\xbd\x88", 3, 0x68 }, // h
		{ "\xef\xbd\x89", 3, 0x69 }, // i
		{ "\xef\xbd\x8a", 3, 0x6a }, // j
		{ "\xef\xbd\x8b", 3, 0x6b }, // k
		{ "\xef\xbd\x8c", 3, 0x6c }, // l
		{ "\xef\xbd\x8d", 3, 0x6d }, // m
		{ "\xef\xbd\x8e", 3, 0x6e }, // n
		{ "\xef\xbd\x8f", 3, 0x6f }, // o
		{ "\xef\xbd\x90", 3, 0x70 }, // p
		{ "\xef\xbd\x91", 3, 0x71 }, // q
		{ "\xef\xbd\x92", 3, 0x72 }, // r
		{ "\xef\xbd\x93", 3, 0x73 }, // s
		{ "\xef\xbd\x94", 3, 0x74 }, // t
		{ "\xef\xbd\x95", 3, 0x75 }, // u
		{ "\xef\xbd\x96", 3, 0x76 }, // v
		{ "\xef\xbd\x97", 3, 0x77 }, // w
		{ "\xef\xbd\x98", 3, 0x78 }, // x
		{ "\xef\xbd\x99", 3, 0x79 }, // y
		{ "\xef\xbd\x9a", 3, 0x7a }, // z
		{ "\xef\xbd\x9b", 3, 0x7b }, // {
		{ "\xef\xbd\x9c", 3, 0x7c }, // |
		{ "\xef\xbd\x9d", 3, 0x7d }, // }
		{ "\xef\xbd\x9e", 3, 0x7e }, // ~
		{ "\xef\xbf\xa3", 3, 0x7e }, // ~
	};
	for (size_t i = 0; i < ArraySizeOf(convTbl); i++) {
		const Convert &conv = convTbl[i];
		if (::strncmp(str, conv.zenkaku, conv.len) == 0) {
			if (next != nullptr) *next = str + conv.len;
			return conv.hankaku;
		}
	}
	if (IsUTF8First(*str)) {
		str++;
		while (IsUTF8Follower(*str)) str++;
	} else if (*str != '\0') {
		str++;
	}
	if (next != nullptr) *next = str;
	return '\0';
}
예제 #5
0
//-----------------------------------------------------------------------------
// Tokenizer
//-----------------------------------------------------------------------------
TokenId Tokenizer::Tokenize(Environment &env, Stream &stream)
{
	Signal &sig = env.GetSignal();
	_iChar = 0;
	if (_tokenIdPending != TOKEN_None) {
		TokenId tokenId = _tokenIdPending;
		_tokenIdPending = TOKEN_None;
		return tokenId;
	}
	bool escapeFlag = false;
	for (;;) {
		int chRaw = stream.GetChar(sig);
		if (sig.IsSignalled()) break;
		char ch = (chRaw < 0)? '\0' : static_cast<char>(static_cast<UChar>(chRaw));
		if (ch == '\\' && !escapeFlag) {
			escapeFlag = true;
			continue;
		}
		Gura_BeginPushbackRegion();
		switch (_stat) {
		case STAT_LineTop: {
			if (ch == ' ' || ch == '\t') {
				// nothing to do
			} else if (ch == '\n' || ch == '\0') {
				// nothing to do
			} else if (ch == '#') {
				_stat = STAT_SkipToNextLine;
			} else {
				Gura_Pushback();
				_stat = STAT_Field;
			}
			break;
		}
		case STAT_SkipToNextLine: {
			if (ch == '\n') {
				if (escapeFlag) {
					// nothing to do
				} else {
					_stat = STAT_LineTop;
				}
			} else {
				// nothing to do
			}
			break;
		}
		case STAT_Field: {
			if (ch == ' ' || ch == '\t') {
				_stat = STAT_SkipWhite;
				_field[_iChar] = '\0';
				return TOKEN_Field;
			} else if (ch == '\n') {
				if (escapeFlag) {
					_stat = STAT_SkipWhite;
				} else {
					_tokenIdPending = TOKEN_EOL;
					_stat = STAT_LineTop;
				}
				_field[_iChar] = '\0';
				return TOKEN_Field;
			} else if (ch == '\0') {
				_tokenIdPending = TOKEN_EOF;
				_stat = STAT_FileEnd;
				_field[_iChar] = '\0';
				return TOKEN_Field;
			} else {
				_field[_iChar++] = ch;
				if (_iChar >= ArraySizeOf(_field)) {
					SetError_FormatError(env);
					return TOKEN_EOF;
				}
			}
			break;
		}
		case STAT_SkipWhite: {
			if (ch == ' ' || ch == '\t') {
				// nothing to do
			} else if (ch == '\n') {
				if (escapeFlag) {
					// nothing to do
				} else {
					_stat = STAT_LineTop;
					return TOKEN_EOL;
				}
			} else if (ch == '\0') {
				_stat = STAT_LineTop;
				return TOKEN_EOF;
			} else {
				Gura_Pushback();
				_stat = STAT_Field;
			}
			break;
		}
		case STAT_FileEnd: {
			// nothing to do
			break;
		}
		}
		Gura_EndPushbackRegion();
		escapeFlag = false;
		if (ch == '\0') break;
		if (ch == '\n') _iLine++;
	}
	return TOKEN_EOF;
}