2 //**************************************************************************
\r
6 //**************************************************************************
\r
11 // HEADER FILES ------------------------------------------------------------
\r
16 // MACROS ------------------------------------------------------------------
\r
18 // TYPES -------------------------------------------------------------------
\r
24 TK_IDENTIFIER, // VALUE: (char *) tk_String
\r
25 TK_STRING, // VALUE: (char *) tk_String
\r
26 TK_NUMBER, // VALUE: (int) tk_Number
\r
27 TK_LINESPECIAL, // VALUE: (int) tk_LineSpecial
\r
34 TK_ADDASSIGN, // '+='
\r
35 TK_SUBASSIGN, // '-='
\r
36 TK_MULASSIGN, // '*='
\r
37 TK_DIVASSIGN, // '/='
\r
38 TK_MODASSIGN, // '%='
\r
49 TK_ANDLOGICAL, // '&&'
\r
50 TK_ORLOGICAL, // '||'
\r
51 TK_ANDBITWISE, // '&'
\r
52 TK_ORBITWISE, // '|'
\r
53 TK_EORBITWISE, // '^'
\r
62 TK_SEMICOLON, // ';'
\r
66 TK_NUMBERSIGN, // '#'
\r
67 TK_CPPCOMMENT, // '//'
\r
68 TK_STARTCOMMENT, // '/*'
\r
69 TK_ENDCOMMENT, // '*/'
\r
70 TK_BREAK, // 'break'
\r
72 TK_CONST, // 'const'
\r
73 TK_CONTINUE, // 'continue'
\r
74 TK_DEFAULT, // 'default'
\r
75 TK_DEFINE, // 'define'
\r
81 TK_INCLUDE, // 'include'
\r
84 TK_PRINT, // 'print'
\r
85 TK_PRINTBOLD, // 'printbold'
\r
87 TK_HUDMESSAGE, // 'hudmessage'
\r
88 TK_HUDMESSAGEBOLD, // 'hudmessagebold'
\r
89 TK_RESTART, // 'restart'
\r
90 TK_SCRIPT, // 'script'
\r
91 TK_SPECIAL, // 'special'
\r
93 TK_SUSPEND, // 'suspend'
\r
94 TK_SWITCH, // 'switch'
\r
95 TK_TERMINATE, // 'terminate'
\r
96 TK_UNTIL, // 'until'
\r
98 TK_WHILE, // 'while'
\r
99 TK_WORLD, // 'world'
\r
100 TK_GLOBAL, // 'global'
\r
101 TK_RESPAWN, // 'respawn' [BC]
\r
102 TK_DEATH, // 'death' [BC]
\r
103 TK_ENTER, // 'enter' [BC]
\r
104 TK_PICKUP, // 'pickup' [BC]
\r
105 TK_BLUERETURN, // 'bluereturn' [BC]
\r
106 TK_REDRETURN, // 'redreturn' [BC]
\r
107 TK_WHITERETURN, // 'whitereturn' [BC]
\r
108 TK_NOCOMPACT, // 'nocompact'
\r
109 TK_LIGHTNING, // 'ligtning'
\r
110 TK_CREATETRANSLATION,// 'createtranslation'
\r
111 TK_FUNCTION, // 'function'
\r
112 TK_RETURN, // 'return'
\r
113 TK_WADAUTHOR, // 'wadauthor'
\r
114 TK_NOWADAUTHOR, // 'nowadauthor'
\r
115 TK_ACSEXECUTEWAIT, // 'acs_executewait'
\r
116 TK_ENCRYPTSTRINGS, // 'encryptstrings'
\r
117 TK_IMPORT, // 'import'
\r
118 TK_LIBRARY, // 'library'
\r
119 TK_LIBDEFINE, // 'libdefine'
\r
122 TK_CLIENTSIDE, // 'clientside'
\r
123 TK_DISCONNECT, // 'disconnect'
\r
124 TK_UNLOADING, // 'unloading'
\r
125 TK_STATIC, // 'static'
\r
126 TK_ANDASSIGN, // '&='
\r
127 TK_ORASSIGN, // '|='
\r
128 TK_EORASSIGN, // '^='
\r
129 TK_LSASSIGN, // '<<='
\r
130 TK_RSASSIGN, // '>>='
\r
131 TK_STRPARAM_EVAL, // 'strparam'
\r
132 TK_STRCPY, // 'strcpy'
\r
135 // PUBLIC FUNCTION PROTOTYPES ----------------------------------------------
\r
137 void TK_Init(void);
\r
138 void TK_OpenSource(char *fileName);
\r
139 void TK_Include(char *fileName);
\r
140 void TK_Import(char *fileName, enum ImportModes prevMode);
\r
141 void TK_CloseSource(void);
\r
142 int TK_GetDepth(void);
\r
143 tokenType_t TK_NextToken(void);
\r
144 int TK_NextCharacter(void);
\r
145 boolean TK_NextTokenMustBe(tokenType_t token, error_t error);
\r
146 boolean TK_TokenMustBe(tokenType_t token, error_t error);
\r
147 boolean TK_Member(tokenType_t *list);
\r
148 void TK_Undo(void);
\r
149 void TK_SkipLine(void);
\r
150 void TK_SkipPast(tokenType_t token);
\r
151 void TK_SkipTo(tokenType_t token);
\r
152 void TK_AddIncludePath(char *sourceName);
\r
153 void TK_AddProgramIncludePath(char *argv0);
\r
155 // PUBLIC DATA DECLARATIONS ------------------------------------------------
\r
157 extern tokenType_t tk_Token;
\r
158 extern int tk_Line;
\r
159 extern int tk_Number;
\r
160 extern char *tk_String;
\r
161 extern int tk_SpecialValue;
\r
162 extern int tk_SpecialArgCount;
\r
163 extern char *tk_SourceName;
\r
164 extern int tk_IncludedLines;
\r
165 extern boolean forSemicolonHack;
\r
166 extern char MasterSourceLine[]; // master line - Ty 07jan2000
\r
167 extern int MasterSourcePos; // master position - Ty 07jan2000
\r
168 extern boolean ClearMasterSourceLine; // ready for new line - Ty 07jan2000
\r