// Path: source/transpiler/com/stormmq/java2c/transpiler/conversion/c/gccAttributes/GccAttributes.java
// public final class GccAttributes<N extends Enum<N> & AttributeName> implements Writable
// {
// 	@NotNull private final List<GccAttribute<N>> gccAttributes;
// 
// 	public GccAttributes(@NotNull final List<GccAttribute<N>> gccAttributes)
// 	{
// 		this.gccAttributes = gccAttributes;
// 	}
// 
// 	@Override
// 	public void write(@NotNull final Writer writer) throws IOException
// 	{
// 		if (gccAttributes.isEmpty())
// 		{
// 			return;
// 		}
// 
// 		writer.write(" __attribute__ ((");
// 		boolean afterFirst = false;
// 		for (GccAttribute<N> gccAttribute : gccAttributes)
// 		{
// 			if (afterFirst)
// 			{
// 				writer.write(", ");
// 			}
// 			else
// 			{
// 				afterFirst = true;
// 			}
// 			gccAttribute.write(writer);
// 		}
// 		writer.write("))");
// 	}
// }
// 
// Path: source/transpiler/com/stormmq/java2c/transpiler/conversion/c/gccAttributes/Writable.java
// public interface Writable
// {
// 	void write(@NotNull final Writer writer) throws IOException;
// }
// 
// Path: source/transpiler/com/stormmq/java2c/transpiler/conversion/c/gccAttributes/variable/GccVariableAttributeName.java
// public enum GccVariableAttributeName implements AttributeName
// {
// 	aligned,
// 	cleanup,
// 	common,
// 	nocommon,
// 	deprecated,
// 	mode,
// 	packed,
// 	section,
// 	tls_model,
// 	unused,
// 	used,
// 	vector_size,
// 	weak,
// 	;
// }


import com.stormmq.java2c.transpiler.conversion.c.gccAttributes.GccAttributes;
import com.stormmq.java2c.transpiler.conversion.c.gccAttributes.Writable;
import com.stormmq.java2c.transpiler.conversion.c.gccAttributes.variable.GccVariableAttributeName;
import org.jetbrains.annotations.NotNull;
import java.io.IOException;
import java.io.Writer;
import static com.stormmq.java2c.transpiler.conversion.c.StorageClass.auto;
package com.stormmq.java2c.transpiler.conversion.c;




public final class VariableDeclaration implements Writable
{
	@NotNull private final StorageClass storageClass;
	private final boolean isConst;
	private final boolean isVolatile;
	@NotNull private final String cTypeName;
	@NotNull private final String name;
// Path: source/transpiler/com/stormmq/java2c/transpiler/conversion/c/gccAttributes/GccAttributes.java
// public final class GccAttributes<N extends Enum<N> & AttributeName> implements Writable
// {
// 	@NotNull private final List<GccAttribute<N>> gccAttributes;
// 
// 	public GccAttributes(@NotNull final List<GccAttribute<N>> gccAttributes)
// 	{
// 		this.gccAttributes = gccAttributes;
// 	}
// 
// 	@Override
// 	public void write(@NotNull final Writer writer) throws IOException
// 	{
// 		if (gccAttributes.isEmpty())
// 		{
// 			return;
// 		}
// 
// 		writer.write(" __attribute__ ((");
// 		boolean afterFirst = false;
// 		for (GccAttribute<N> gccAttribute : gccAttributes)
// 		{
// 			if (afterFirst)
// 			{
// 				writer.write(", ");
// 			}
// 			else
// 			{
// 				afterFirst = true;
// 			}
// 			gccAttribute.write(writer);
// 		}
// 		writer.write("))");
// 	}
// }
// 
// Path: source/transpiler/com/stormmq/java2c/transpiler/conversion/c/gccAttributes/Writable.java
// public interface Writable
// {
// 	void write(@NotNull final Writer writer) throws IOException;
// }
// 
// Path: source/transpiler/com/stormmq/java2c/transpiler/conversion/c/gccAttributes/variable/GccVariableAttributeName.java
// public enum GccVariableAttributeName implements AttributeName
// {
// 	aligned,
// 	cleanup,
// 	common,
// 	nocommon,
// 	deprecated,
// 	mode,
// 	packed,
// 	section,
// 	tls_model,
// 	unused,
// 	used,
// 	vector_size,
// 	weak,
// 	;
// }


// Path: source/transpiler/com/stormmq/java2c/transpiler/conversion/c/VariableDeclaration.java
import com.stormmq.java2c.transpiler.conversion.c.gccAttributes.GccAttributes;
import com.stormmq.java2c.transpiler.conversion.c.gccAttributes.Writable;
import com.stormmq.java2c.transpiler.conversion.c.gccAttributes.variable.GccVariableAttributeName;
import org.jetbrains.annotations.NotNull;
import java.io.IOException;
import java.io.Writer;
import static com.stormmq.java2c.transpiler.conversion.c.StorageClass.auto;

package com.stormmq.java2c.transpiler.conversion.c;




public final class VariableDeclaration implements Writable
{
	@NotNull private final StorageClass storageClass;
	private final boolean isConst;
	private final boolean isVolatile;
	@NotNull private final String cTypeName;
	@NotNull private final String name;
	@NotNull private final GccAttributes<GccVariableAttributeName> gccAttributes;