int slang_variable_construct (slang_variable *var)
{
	if (!slang_fully_specified_type_construct (&var->type))
		return 0;
	var->a_name = SLANG_ATOM_NULL;
	var->array_len = 0;
	var->initializer = NULL;
	var->address = ~0;
	var->size = 0;
	var->global = 0;
	return 1;
}
int
slang_variable_construct(slang_variable * var)
{
   if (!slang_fully_specified_type_construct(&var->type))
      return 0;
   var->a_name = SLANG_ATOM_NULL;
   var->array_len = 0;
   var->initializer = NULL;
   var->size = 0;
   var->isTemp = GL_FALSE;
   var->store = NULL;
   var->declared = 0;
   return 1;
}
int slang_fully_specified_type_copy (slang_fully_specified_type *x, const slang_fully_specified_type *y)
{
	slang_fully_specified_type z;

	if (!slang_fully_specified_type_construct (&z))
		return 0;
	z.qualifier = y->qualifier;
	if (!slang_type_specifier_copy (&z.specifier, &y->specifier))
	{
		slang_fully_specified_type_destruct (&z);
		return 0;
	}
	slang_fully_specified_type_destruct (x);
	*x = z;
	return 1;
}