mirror of
https://github.com/UberGames/GtkRadiant.git
synced 2024-12-19 17:01:48 +00:00
133 lines
3.1 KiB
C
133 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
|