2 ===========================================================================
3 Copyright (C) 1997-2006 Id Software, Inc.
5 This file is part of Quake 2 Tools source code.
7 Quake 2 Tools source code is free software; you can redistribute it
8 and/or modify it under the terms of the GNU General Public License as
9 published by the Free Software Foundation; either version 2 of the License,
10 or (at your option) any later version.
12 Quake 2 Tools source code is distributed in the hope that it will be
13 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with Quake 2 Tools source code; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20 ===========================================================================
30 void StartTokenParsing (char *data)
37 qboolean GetToken (qboolean crossline)
41 if (unget) // is a token allready waiting?
48 while (*script_p <= 32)
53 Error ("Line %i is incomplete",scriptline);
56 if (*script_p++ == '\n')
59 Error ("Line %i is incomplete",scriptline);
64 if (script_p[0] == '/' && script_p[1] == '/') // comment field
67 Error ("Line %i is incomplete\n",scriptline);
68 while (*script_p++ != '\n')
72 Error ("Line %i is incomplete",scriptline);
86 while ( *script_p != '"' )
89 Error ("EOF inside quoted token");
90 *token_p++ = *script_p++;
91 if (token_p == &token[MAXTOKEN])
92 Error ("Token too large on line %i",scriptline);
96 else while ( *script_p > 32 )
98 *token_p++ = *script_p++;
99 if (token_p == &token[MAXTOKEN])
100 Error ("Token too large on line %i",scriptline);
108 void UngetToken (void)
118 Returns true if there is another token on the line
121 qboolean TokenAvailable (void)
127 while ( *search_p <= 32)
129 if (*search_p == '\n')
136 if (*search_p == ';')