]> de.git.xonotic.org Git - xonotic/netradiant.git/blob - tools/quake2/qdata_heretic2/common/token.h
transfer from internal tree r5311 branches/1.4-gpl
[xonotic/netradiant.git] / tools / quake2 / qdata_heretic2 / common / token.h
1 /*\r
2 Copyright (C) 1999-2007 id Software, Inc. and contributors.\r
3 For a list of contributors, see the accompanying CONTRIBUTORS file.\r
4 \r
5 This file is part of GtkRadiant.\r
6 \r
7 GtkRadiant is free software; you can redistribute it and/or modify\r
8 it under the terms of the GNU General Public License as published by\r
9 the Free Software Foundation; either version 2 of the License, or\r
10 (at your option) any later version.\r
11 \r
12 GtkRadiant is distributed in the hope that it will be useful,\r
13 but WITHOUT ANY WARRANTY; without even the implied warranty of\r
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
15 GNU General Public License for more details.\r
16 \r
17 You should have received a copy of the GNU General Public License\r
18 along with GtkRadiant; if not, write to the Free Software\r
19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\r
20 */\r
21 \r
22 \r
23 //**************************************************************************\r
24 //**\r
25 //** token.h\r
26 //**\r
27 //**************************************************************************\r
28 \r
29 #ifndef __TOKEN_H__\r
30 #define __TOKEN_H__\r
31 \r
32 #include "cmdlib.h"\r
33 \r
34 #ifndef TRUE\r
35 #define TRUE 1\r
36 #endif\r
37 #ifndef FALSE\r
38 #define FALSE 0\r
39 #endif\r
40 #ifndef YES\r
41 #define YES 1\r
42 #endif\r
43 #ifndef NO\r
44 #define NO 0\r
45 #endif\r
46 #define ASCII_SPACE 32\r
47 #define ASCII_QUOTE 34\r
48 #define ASCII_UNDERSCORE 95\r
49 #define EOF_CHARACTER 127\r
50 #define MAX_IDENTIFIER_LENGTH 64\r
51 #define MAX_QUOTED_LENGTH 1024\r
52 #define MAX_FILE_NAME_LENGTH 1024\r
53 \r
54 typedef enum\r
55 {\r
56         TK_NONE,\r
57         TK_UNKNOWNCHAR,\r
58         TK_EOF,\r
59         TK_IDENTIFIER,                  // VALUE: (char *) tk_String\r
60         TK_STRING,                              // VALUE: (char *) tk_String\r
61         TK_INTNUMBER,                   // VALUE: (int) tk_IntNumber\r
62         TK_FLOATNUMBER,                 // VALUE: (float) tk_FloatNumber\r
63         TK_LPAREN,\r
64         TK_RPAREN,\r
65         TK_LBRACE,\r
66         TK_RBRACE,                              // 10\r
67         TK_LBRACKET,                    \r
68         TK_RBRACKET,\r
69         TK_COLON,\r
70         TK_MESH,\r
71         TK_MODEL,                               // 15\r
72         TK_NODES,\r
73         TK_ROTATION,\r
74         TK_SCALING,\r
75         TK_TRANSLATION,\r
76         TK_POLYGONS,                    // 20\r
77         TK_POSITION,\r
78         TK_VERTEX,\r
79         TK_VERTICES,\r
80         TK_EDGES,\r
81         TK_HRCH,                                // 25\r
82         TK_SOFTIMAGE,\r
83         TK_MATERIAL,\r
84         TK_SPLINE,                              // 28\r
85 \r
86         TK_C_NAMED,\r
87         TK_OBJECT,                              // 30\r
88         TK_C_TRI,                               \r
89         TK_C_VERTICES,\r
90         TK_C_FACES,\r
91         TK_C_VERTEX,\r
92         TK_LIST,                                // 35\r
93         TK_C_FACE,                              \r
94 \r
95         TK_C_HEXEN,\r
96         TK_C_TRIANGLES,\r
97         TK_C_VERSION,\r
98         TK_FACES,                               // 40\r
99         TK_FACE,                                \r
100         TK_ORIGIN,\r
101 \r
102         TK_CLUSTERS,\r
103         TK_NUM_CLUSTER_VERTICES,\r
104         TK_NAME,                                // 45\r
105         TK_CLUSTER_NAME,                \r
106         TK_CLUSTER_STATE,\r
107 \r
108         TK_ACTOR_DATA,\r
109         TK_UVTEXTURE,\r
110 } tokenType_t;\r
111 \r
112 void TK_Init(void);\r
113 void TK_OpenSource(char *fileName);\r
114 void TK_CloseSource(void);\r
115 tokenType_t TK_Fetch(void);\r
116 void TK_Require(tokenType_t tokType);\r
117 void TK_FetchRequire(tokenType_t tokType);\r
118 tokenType_t TK_RequireFetch(tokenType_t tokType);\r
119 tokenType_t TK_FetchRequireFetch(tokenType_t tokType);\r
120 tokenType_t TK_Beyond(tokenType_t tokType);\r
121 void TK_BeyondRequire(tokenType_t bTok, tokenType_t rTok);\r
122 tokenType_t TK_Search(tokenType_t tokType);\r
123 tokenType_t TK_Get(tokenType_t tokType);\r
124 \r
125 extern tokenType_t tk_Token;\r
126 extern int tk_Line;\r
127 extern int tk_IntNumber;\r
128 extern float tk_FloatNumber;\r
129 extern char *tk_String;\r
130 extern char tk_SourceName[MAX_FILE_NAME_LENGTH];\r
131 \r
132 #endif\r