/* -*- tab-width: 4 -*- */
/******************************************************************************      
 *
 *	Copyright 2004 The Orion Compiler Group. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice, this
 *    list of conditions and the following disclaimer. 
 * 2. Redistributions in binary form must reproduce the above copyright notice, 
 *    this list of conditions and the following disclaimer in the documentation 
 *    and/or other materials provided with the distribution. 
 *
 * THIS SOFTWARE IS PROVIDED BY THE ORION COMPILER GROUP ``AS IS'' AND ANY 
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
 * DISCLAIMED. IN NO EVENT SHALL THE ORION COMPILER GROUP OR CONTRIBUTORS BE 
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
 * OF SUCH DAMAGE.
 *
 * The views and conclusions contained in the software and documentation are 
 * those of the authors and should not be interpreted as representing official 
 * policies, either expressed or implied, of the Orion Compiler Group.
 *
 ******************************************************************************/

// For the curious, tabs are set to 1, 5, 9, etc... Do not modify and resubmit
// with spaces. It makes the code harder to merge in changes.

#ifndef _TYPES_H_
#define _TYPES_H_

// Include standard headers that we need - common files only!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <stdarg.h>
#include <ctype.h>

#ifdef WIN32
#include <windows.h>

#define strcasecmp(x, y) stricmp(x, y)
#else

#ifndef UINT32
typedef unsigned int		UINT32;
//typedef unsigned long int		UINT32;
#endif // UINT32

#ifndef INT32
typedef int			INT32;
//typedef signed long	int			INT32;
#endif // INT32

#endif

// Various definitions that we may or may not need to define

#ifndef UINT16
typedef unsigned short int		UINT16;
#endif // UINT16

#ifndef UINT8
typedef unsigned char			UINT8;
#endif // UINT 8

#ifndef INT16
typedef signed short int		INT16;
#endif // INT16

#ifndef INT8
typedef signed char				INT8;
#endif // INT8

// Get rid of TRUE/FALSE so we can bind them to enumeration to prevent them
// from being used imporperly

#ifdef TRUE
#undef TRUE
#endif

#ifdef FALSE
#undef FALSE
#endif

#ifdef BOOL
#undef BOOL
#endif

typedef enum
{ 
	FALSE = 0x0,
	TRUE  = 0x1
} BOOL;


// Where all the errors go
#define ERROR_OUT	stderr

#define ASSERT(bool)

#endif // _TYPES_H_
