//////////////////////////////////////////////////////////////////////
//
//                             Pixie
//
// Copyright © 1999 - 2003, Okan Arikan
//
// Contact: okan@cs.berkeley.edu
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
// 
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
// General Public License for more details.
// 
// You should have received a copy of the GNU General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
//
//  File				:	variable.h
//  Classes				:	CVariable
//  Description			:	This class holds variable information
//
////////////////////////////////////////////////////////////////////////
#ifndef VARIABLE_H
#define VARIABLE_H

#include "common/global.h"		// The global header file

///////////////////////////////////////////////////////////////////////
// Class				:	CVariable
// Description			:	This class holds information about a variable
// Comments				:	FIXME: Maximum length of a variable's name is 63 characters
// Date last edited		:	8/2/2001
class CVariable {
public:
	char				name[64];		// Name as it is referenced
	EVariableType		type;			// Type
	EVariableClass		container;		// Container type
	int					numItems;		// Number of items if this is an array
	int					numFloats;		// Number of floats per variable (1 for float, 3 for color, 16 for matrix)
	int					entry;			// The global variable number as it's referenced from a grid (-1 if not global)
	int					usageMarker;	// The usage or flag
	int					global;			// TRUE if the variable is global
	CVariable			*next;			// Linked list next
};


int	parseVariable(CVariable *,const char *,const char *);

#endif
