// Path: src/iode/ast/Node.java
// public abstract class Node  {
// 	public abstract String generate();
// }
// 
// Path: src/iode/util/Errors.java
// public class Errors
// {
//     @SuppressWarnings("unchecked")
//     private static <T extends Throwable> void throwException(Throwable exception, Object dummy) throws T
//     {
//         throw (T) exception;
//     }
// 
//     public static void throwException(Throwable exception)
//     {
//         Errors.<RuntimeException>throwException(exception, null);
//     }
// }


import iode.ast.Node;
import iode.util.Errors;
			sb.append("typedef enum { false, true } bool;\n");
			sb.append("bool ");
			sb.append(name);
		} else if (type.equals("Int")) {
			sb.append("int ");
			sb.append(name);
		} else if (type.equals("Double")) {
			sb.append("double ");
			sb.append(name);
		} else if (type.equals("Char")) {
			sb.append("char ");
			sb.append(name);
		} else if (type.equals("String")) {
			sb.append("char *");
			sb.append(name);
		} else if (value != null && value instanceof ASTArray) {
			if (type.equals("Bool")) {
				sb.append("typedef enum { false, true } bool;\n");
				sb.append("bool ");
				sb.append(name);
			} else if (type.equals("Int")) {
				sb.append("int ");
				sb.append(name);
			} else if (type.equals("String")) {
				sb.append("char *");
				sb.append(name);
			}
			
			sb.append("[]");
		} else {
// Path: src/iode/ast/Node.java
// public abstract class Node  {
// 	public abstract String generate();
// }
// 
// Path: src/iode/util/Errors.java
// public class Errors
// {
//     @SuppressWarnings("unchecked")
//     private static <T extends Throwable> void throwException(Throwable exception, Object dummy) throws T
//     {
//         throw (T) exception;
//     }
// 
//     public static void throwException(Throwable exception)
//     {
//         Errors.<RuntimeException>throwException(exception, null);
//     }
// }


// Path: src/iode/ast/nodes/ASTDeclaration.java
import iode.ast.Node;
import iode.util.Errors;

			sb.append("typedef enum { false, true } bool;\n");
			sb.append("bool ");
			sb.append(name);
		} else if (type.equals("Int")) {
			sb.append("int ");
			sb.append(name);
		} else if (type.equals("Double")) {
			sb.append("double ");
			sb.append(name);
		} else if (type.equals("Char")) {
			sb.append("char ");
			sb.append(name);
		} else if (type.equals("String")) {
			sb.append("char *");
			sb.append(name);
		} else if (value != null && value instanceof ASTArray) {
			if (type.equals("Bool")) {
				sb.append("typedef enum { false, true } bool;\n");
				sb.append("bool ");
				sb.append(name);
			} else if (type.equals("Int")) {
				sb.append("int ");
				sb.append(name);
			} else if (type.equals("String")) {
				sb.append("char *");
				sb.append(name);
			}
			
			sb.append("[]");
		} else {
			Errors.throwException(new Exception("'" + type + "' is not a valid object type"));