mirror of
https://github.com/UberGames/GtkRadiant.git
synced 2024-11-29 07:02:26 +00:00
132 lines
3.1 KiB
C
132 lines
3.1 KiB
C
/*
|
|
Copyright (C) 1999-2007 id Software, Inc. and contributors.
|
|
For a list of contributors, see the accompanying CONTRIBUTORS file.
|
|
|
|
This file is part of GtkRadiant.
|
|
|
|
GtkRadiant 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.
|
|
|
|
GtkRadiant 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 GtkRadiant; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
|
|
//**************************************************************************
|
|
//**
|
|
//** token.h
|
|
//**
|
|
//**************************************************************************
|
|
|
|
#ifndef __TOKEN_H__
|
|
#define __TOKEN_H__
|
|
|
|
#include "cmdlib.h"
|
|
|
|
#ifndef TRUE
|
|
#define TRUE 1
|
|
#endif
|
|
#ifndef FALSE
|
|
#define FALSE 0
|
|
#endif
|
|
#ifndef YES
|
|
#define YES 1
|
|
#endif
|
|
#ifndef NO
|
|
#define NO 0
|
|
#endif
|
|
#define ASCII_SPACE 32
|
|
#define ASCII_QUOTE 34
|
|
#define ASCII_UNDERSCORE 95
|
|
#define EOF_CHARACTER 127
|
|
#define MAX_IDENTIFIER_LENGTH 64
|
|
#define MAX_QUOTED_LENGTH 1024
|
|
#define MAX_FILE_NAME_LENGTH 1024
|
|
|
|
typedef enum
|
|
{
|
|
TK_NONE,
|
|
TK_UNKNOWNCHAR,
|
|
TK_EOF,
|
|
TK_IDENTIFIER, // VALUE: (char *) tk_String
|
|
TK_STRING, // VALUE: (char *) tk_String
|
|
TK_INTNUMBER, // VALUE: (int) tk_IntNumber
|
|
TK_FLOATNUMBER, // VALUE: (float) tk_FloatNumber
|
|
TK_LPAREN,
|
|
TK_RPAREN,
|
|
TK_LBRACE,
|
|
TK_RBRACE, // 10
|
|
TK_LBRACKET,
|
|
TK_RBRACKET,
|
|
TK_COLON,
|
|
TK_MESH,
|
|
TK_MODEL, // 15
|
|
TK_NODES,
|
|
TK_ROTATION,
|
|
TK_SCALING,
|
|
TK_TRANSLATION,
|
|
TK_POLYGONS, // 20
|
|
TK_POSITION,
|
|
TK_VERTEX,
|
|
TK_VERTICES,
|
|
TK_EDGES,
|
|
TK_HRCH, // 25
|
|
TK_SOFTIMAGE,
|
|
TK_MATERIAL,
|
|
TK_SPLINE, // 28
|
|
|
|
TK_C_NAMED,
|
|
TK_OBJECT, // 30
|
|
TK_C_TRI,
|
|
TK_C_VERTICES,
|
|
TK_C_FACES,
|
|
TK_C_VERTEX,
|
|
TK_LIST, // 35
|
|
TK_C_FACE,
|
|
|
|
TK_C_HEXEN,
|
|
TK_C_TRIANGLES,
|
|
TK_C_VERSION,
|
|
TK_FACES, // 40
|
|
TK_FACE,
|
|
TK_ORIGIN,
|
|
|
|
TK_CLUSTERS,
|
|
TK_NUM_CLUSTER_VERTICES,
|
|
TK_NAME, // 45
|
|
TK_CLUSTER_NAME,
|
|
TK_CLUSTER_STATE,
|
|
|
|
TK_ACTOR_DATA,
|
|
TK_UVTEXTURE,
|
|
} tokenType_t;
|
|
|
|
void TK_Init( void );
|
|
void TK_OpenSource( char *fileName );
|
|
void TK_CloseSource( void );
|
|
tokenType_t TK_Fetch( void );
|
|
void TK_Require( tokenType_t tokType );
|
|
void TK_FetchRequire( tokenType_t tokType );
|
|
tokenType_t TK_RequireFetch( tokenType_t tokType );
|
|
tokenType_t TK_FetchRequireFetch( tokenType_t tokType );
|
|
tokenType_t TK_Beyond( tokenType_t tokType );
|
|
void TK_BeyondRequire( tokenType_t bTok, tokenType_t rTok );
|
|
tokenType_t TK_Search( tokenType_t tokType );
|
|
tokenType_t TK_Get( tokenType_t tokType );
|
|
|
|
extern tokenType_t tk_Token;
|
|
extern int tk_Line;
|
|
extern int tk_IntNumber;
|
|
extern float tk_FloatNumber;
|
|
extern char *tk_String;
|
|
extern char tk_SourceName[MAX_FILE_NAME_LENGTH];
|
|
|
|
#endif
|