ooRexx
4.2.0-source
About: ooRexx (Open Object Rexx) is a free implementation of Object Rexx. Object Rexx is an enhancement of the classic Rexx interpreter; a full-featured programming language with a human-oriented syntax. Fossies Dox: ooRexx-4.2.0-source.tar.gz ("inofficial" and yet experimental doxygen-generated source code documentation) 
|
Go to the documentation of this file. 44 #ifndef Included_RexxToken 45 #define Included_RexxToken 50 #define TERM_EOC 0x00000001u 51 #define TERM_RIGHT 0x00000002u 52 #define TERM_SQRIGHT 0x00000004u 53 #define TERM_TO 0x00000008u 54 #define TERM_BY 0x00000010u 55 #define TERM_FOR 0x00000020u 56 #define TERM_WHILE 0x00000040u 57 #define TERM_COMMA 0x00000080u 58 #define TERM_WITH 0x00000100u 59 #define TERM_THEN 0x00000200u 60 #define TERM_KEYWORD 0x10000000u 62 #define TERM_CONTROL (TERM_KEYWORD | TERM_TO | TERM_BY | TERM_FOR | TERM_WHILE | TERM_EOC) 64 #define TERM_COND (TERM_KEYWORD | TERM_WHILE | TERM_EOC) 66 #define TERM_IF (TERM_KEYWORD | TERM_THEN | TERM_EOC) 69 #define TOKEN_NULL 1201 70 #define TOKEN_BLANK TOKEN_NULL + 1 71 #define TOKEN_SYMBOL TOKEN_BLANK + 1 72 #define TOKEN_LITERAL TOKEN_SYMBOL + 1 73 #define TOKEN_OPERATOR TOKEN_LITERAL + 1 74 #define TOKEN_EOC TOKEN_OPERATOR + 1 75 #define TOKEN_COMMA TOKEN_EOC + 1 76 #define TOKEN_PREFIX TOKEN_COMMA + 1 77 #define TOKEN_LEFT TOKEN_PREFIX + 1 78 #define TOKEN_RIGHT TOKEN_LEFT + 1 79 #define TOKEN_POINT TOKEN_RIGHT + 1 80 #define TOKEN_COLON TOKEN_POINT + 1 81 #define TOKEN_TILDE TOKEN_COLON + 1 82 #define TOKEN_DTILDE TOKEN_TILDE + 1 83 #define TOKEN_SQLEFT TOKEN_DTILDE + 1 84 #define TOKEN_SQRIGHT TOKEN_SQLEFT + 1 85 #define TOKEN_DCOLON TOKEN_SQRIGHT + 1 86 #define TOKEN_CONTINUE TOKEN_DCOLON + 1 87 #define TOKEN_ASSIGNMENT TOKEN_CONTINUE + 1 90 #define SYMBOL_CONSTANT 1251 91 #define SYMBOL_VARIABLE 1252 92 #define SYMBOL_NAME 1253 93 #define SYMBOL_COMPOUND 1254 94 #define SYMBOL_STEM 1255 95 #define SYMBOL_DUMMY 1256 96 #define SYMBOL_DOTSYMBOL 1257 97 #define INTEGER_CONSTANT 1258 98 #define LITERAL_HEX 1259 99 #define LITERAL_BIN 1260 102 #define OPERATOR_PLUS 1 103 #define OPERATOR_SUBTRACT OPERATOR_PLUS + 1 104 #define OPERATOR_MULTIPLY OPERATOR_SUBTRACT + 1 105 #define OPERATOR_DIVIDE OPERATOR_MULTIPLY + 1 106 #define OPERATOR_INTDIV OPERATOR_DIVIDE + 1 107 #define OPERATOR_REMAINDER OPERATOR_INTDIV + 1 108 #define OPERATOR_POWER OPERATOR_REMAINDER + 1 109 #define OPERATOR_ABUTTAL OPERATOR_POWER + 1 110 #define OPERATOR_CONCATENATE OPERATOR_ABUTTAL + 1 111 #define OPERATOR_BLANK OPERATOR_CONCATENATE + 1 112 #define OPERATOR_EQUAL OPERATOR_BLANK + 1 113 #define OPERATOR_BACKSLASH_EQUAL OPERATOR_EQUAL + 1 114 #define OPERATOR_GREATERTHAN OPERATOR_BACKSLASH_EQUAL + 1 115 #define OPERATOR_BACKSLASH_GREATERTHAN OPERATOR_GREATERTHAN + 1 116 #define OPERATOR_LESSTHAN OPERATOR_BACKSLASH_GREATERTHAN + 1 117 #define OPERATOR_BACKSLASH_LESSTHAN OPERATOR_LESSTHAN + 1 118 #define OPERATOR_GREATERTHAN_EQUAL OPERATOR_BACKSLASH_LESSTHAN + 1 119 #define OPERATOR_LESSTHAN_EQUAL OPERATOR_GREATERTHAN_EQUAL + 1 120 #define OPERATOR_STRICT_EQUAL OPERATOR_LESSTHAN_EQUAL + 1 121 #define OPERATOR_STRICT_BACKSLASH_EQUAL OPERATOR_STRICT_EQUAL + 1 122 #define OPERATOR_STRICT_GREATERTHAN OPERATOR_STRICT_BACKSLASH_EQUAL + 1 123 #define OPERATOR_STRICT_BACKSLASH_GREATERTHAN OPERATOR_STRICT_GREATERTHAN + 1 124 #define OPERATOR_STRICT_LESSTHAN OPERATOR_STRICT_BACKSLASH_GREATERTHAN + 1 125 #define OPERATOR_STRICT_BACKSLASH_LESSTHAN OPERATOR_STRICT_LESSTHAN + 1 126 #define OPERATOR_STRICT_GREATERTHAN_EQUAL OPERATOR_STRICT_BACKSLASH_LESSTHAN + 1 127 #define OPERATOR_STRICT_LESSTHAN_EQUAL OPERATOR_STRICT_GREATERTHAN_EQUAL + 1 128 #define OPERATOR_LESSTHAN_GREATERTHAN OPERATOR_STRICT_LESSTHAN_EQUAL + 1 129 #define OPERATOR_GREATERTHAN_LESSTHAN OPERATOR_LESSTHAN_GREATERTHAN + 1 130 #define OPERATOR_AND OPERATOR_GREATERTHAN_LESSTHAN + 1 131 #define OPERATOR_OR OPERATOR_AND + 1 132 #define OPERATOR_XOR OPERATOR_OR + 1 133 #define OPERATOR_BACKSLASH OPERATOR_XOR + 1 137 #define KEYWORD_ADDRESS 1 138 #define KEYWORD_ARG KEYWORD_ADDRESS + 1 139 #define KEYWORD_CALL KEYWORD_ARG + 1 140 #define KEYWORD_DO KEYWORD_CALL + 1 141 #define KEYWORD_DROP KEYWORD_DO + 1 142 #define KEYWORD_EXIT KEYWORD_DROP + 1 143 #define KEYWORD_IF KEYWORD_EXIT + 1 144 #define KEYWORD_INTERPRET KEYWORD_IF + 1 145 #define KEYWORD_ITERATE KEYWORD_INTERPRET + 1 146 #define KEYWORD_LEAVE KEYWORD_ITERATE + 1 147 #define KEYWORD_METHOD KEYWORD_LEAVE + 1 148 #define KEYWORD_NOP KEYWORD_METHOD + 1 149 #define KEYWORD_NUMERIC KEYWORD_NOP + 1 150 #define KEYWORD_OPTIONS KEYWORD_NUMERIC + 1 151 #define KEYWORD_PARSE KEYWORD_OPTIONS + 1 152 #define KEYWORD_PROCEDURE KEYWORD_PARSE + 1 153 #define KEYWORD_PULL KEYWORD_PROCEDURE + 1 154 #define KEYWORD_PUSH KEYWORD_PULL + 1 155 #define KEYWORD_QUEUE KEYWORD_PUSH + 1 156 #define KEYWORD_REPLY KEYWORD_QUEUE + 1 157 #define KEYWORD_RETURN KEYWORD_REPLY + 1 158 #define KEYWORD_SAY KEYWORD_RETURN + 1 159 #define KEYWORD_SELECT KEYWORD_SAY + 1 160 #define KEYWORD_SIGNAL KEYWORD_SELECT + 1 161 #define KEYWORD_TRACE KEYWORD_SIGNAL + 1 162 #define KEYWORD_VAR KEYWORD_TRACE + 1 163 #define KEYWORD_GUARD KEYWORD_VAR + 1 164 #define KEYWORD_USE KEYWORD_GUARD + 1 165 #define KEYWORD_INITPROC KEYWORD_USE + 1 166 #define KEYWORD_EXPOSE KEYWORD_INITPROC + 1 167 #define KEYWORD_RAISE KEYWORD_EXPOSE + 1 168 #define KEYWORD_ELSE KEYWORD_RAISE + 1 169 #define KEYWORD_THEN KEYWORD_ELSE + 1 170 #define KEYWORD_END KEYWORD_THEN + 1 171 #define KEYWORD_OTHERWISE KEYWORD_END + 1 172 #define KEYWORD_IFTHEN KEYWORD_OTHERWISE + 1 173 #define KEYWORD_WHENTHEN KEYWORD_IFTHEN + 1 174 #define KEYWORD_WHEN KEYWORD_WHENTHEN + 1 175 #define KEYWORD_ASSIGNMENT KEYWORD_WHEN + 1 176 #define KEYWORD_COMMAND KEYWORD_ASSIGNMENT + 1 177 #define KEYWORD_MESSAGE KEYWORD_COMMAND + 1 178 #define KEYWORD_LABEL KEYWORD_MESSAGE + 1 179 #define KEYWORD_ENDIF KEYWORD_LABEL + 1 180 #define KEYWORD_BLOCK KEYWORD_ENDIF + 1 181 #define KEYWORD_FIRST KEYWORD_BLOCK + 1 182 #define KEYWORD_LAST KEYWORD_FIRST + 1 183 #define KEYWORD_ENDELSE KEYWORD_LAST + 1 184 #define KEYWORD_ENDTHEN KEYWORD_ENDELSE + 1 185 #define KEYWORD_ENDWHEN KEYWORD_ENDTHEN + 1 186 #define KEYWORD_REQUIRES KEYWORD_ENDWHEN + 1 187 #define KEYWORD_CLASS KEYWORD_REQUIRES + 1 188 #define KEYWORD_INSTRUCTION KEYWORD_CLASS + 1 189 #define KEYWORD_FORWARD KEYWORD_INSTRUCTION + 1 190 #define KEYWORD_LOOP KEYWORD_FORWARD + 1 191 #define KEYWORD_LIBRARY KEYWORD_LOOP + 1 195 #define SUBKEY_BY SUBKEY_ARG + 1 196 #define SUBKEY_DIGITS SUBKEY_BY + 1 197 #define SUBKEY_END SUBKEY_DIGITS + 1 198 #define SUBKEY_ELSE SUBKEY_END + 1 199 #define SUBKEY_ENGINEERING SUBKEY_ELSE + 1 200 #define SUBKEY_EXPOSE SUBKEY_ENGINEERING + 1 201 #define SUBKEY_FOR SUBKEY_EXPOSE + 1 202 #define SUBKEY_FOREVER SUBKEY_FOR + 1 203 #define SUBKEY_FORM SUBKEY_FOREVER + 1 204 #define SUBKEY_FUZZ SUBKEY_FORM + 1 205 #define SUBKEY_LINEIN SUBKEY_FUZZ + 1 206 #define SUBKEY_LOWER SUBKEY_LINEIN + 1 207 #define SUBKEY_CASELESS SUBKEY_LOWER + 1 208 #define SUBKEY_NAME SUBKEY_CASELESS + 1 209 #define SUBKEY_NOVALUE SUBKEY_NAME + 1 210 #define SUBKEY_OFF SUBKEY_NOVALUE + 1 211 #define SUBKEY_ON SUBKEY_OFF + 1 212 #define SUBKEY_OTHERWISE SUBKEY_ON + 1 213 #define SUBKEY_OVER SUBKEY_OTHERWISE + 1 214 #define SUBKEY_PULL SUBKEY_OVER + 1 215 #define SUBKEY_SCIENTIFIC SUBKEY_PULL + 1 216 #define SUBKEY_SOURCE SUBKEY_SCIENTIFIC + 1 217 #define SUBKEY_THEN SUBKEY_SOURCE + 1 218 #define SUBKEY_TO SUBKEY_THEN + 1 219 #define SUBKEY_UNTIL SUBKEY_TO + 1 220 #define SUBKEY_UPPER SUBKEY_UNTIL + 1 221 #define SUBKEY_VALUE SUBKEY_UPPER + 1 222 #define SUBKEY_VAR SUBKEY_VALUE + 1 223 #define SUBKEY_VERSION SUBKEY_VAR + 1 224 #define SUBKEY_WHEN SUBKEY_VERSION + 1 225 #define SUBKEY_WHILE SUBKEY_WHEN + 1 226 #define SUBKEY_WITH SUBKEY_WHILE + 1 227 #define SUBKEY_DESCRIPTION SUBKEY_WITH + 1 228 #define SUBKEY_ADDITIONAL SUBKEY_DESCRIPTION + 1 229 #define SUBKEY_RESULT SUBKEY_ADDITIONAL + 1 230 #define SUBKEY_ARRAY SUBKEY_RESULT + 1 231 #define SUBKEY_RETURN SUBKEY_ARRAY + 1 232 #define SUBKEY_EXIT SUBKEY_RETURN + 1 233 #define SUBKEY_CONTINUE SUBKEY_EXIT + 1 234 #define SUBKEY_CLASS SUBKEY_CONTINUE + 1 235 #define SUBKEY_MESSAGE SUBKEY_CLASS + 1 236 #define SUBKEY_ARGUMENTS SUBKEY_MESSAGE + 1 237 #define SUBKEY_LABEL SUBKEY_ARGUMENTS + 1 238 #define SUBKEY_STRICT SUBKEY_LABEL + 1 239 #define SUBKEY_TRUE SUBKEY_STRICT + 1 240 #define SUBKEY_FALSE SUBKEY_TRUE + 1 243 #define CLAUSEEND_EOF 2301 244 #define CLAUSEEND_SEMICOLON 2302 245 #define CLAUSEEND_EOL 2303 246 #define CLAUSEEND_NULL 2304 249 #define DIRECTIVE_REQUIRES 2401 250 #define DIRECTIVE_CLASS 2402 251 #define DIRECTIVE_METHOD 2403 252 #define DIRECTIVE_ROUTINE 2404 253 #define DIRECTIVE_ATTRIBUTE 2405 254 #define DIRECTIVE_CONSTANT 2406 255 #define DIRECTIVE_OPTIONS 2407 258 #define SUBDIRECTIVE_PUBLIC 2501 259 #define SUBDIRECTIVE_METACLASS 2502 260 #define SUBDIRECTIVE_INHERIT 2503 261 #define SUBDIRECTIVE_PRIVATE 2504 262 #define SUBDIRECTIVE_GUARDED 2505 263 #define SUBDIRECTIVE_CLASS 2506 264 #define SUBDIRECTIVE_EXTERNAL 2507 265 #define SUBDIRECTIVE_SUBCLASS 2508 266 #define SUBDIRECTIVE_UNGUARDED 2509 267 #define SUBDIRECTIVE_MIXINCLASS 2510 268 #define SUBDIRECTIVE_ATTRIBUTE 2511 269 #define SUBDIRECTIVE_PROTECTED 2512 270 #define SUBDIRECTIVE_ABSTRACT 2513 271 #define SUBDIRECTIVE_UNPROTECTED 2514 272 #define SUBDIRECTIVE_GET 2515 273 #define SUBDIRECTIVE_SET 2516 274 #define SUBDIRECTIVE_LIBRARY 2517 275 #define SUBDIRECTIVE_DIGITS 2518 276 #define SUBDIRECTIVE_FORM 2519 277 #define SUBDIRECTIVE_FUZZ 2520 278 #define SUBDIRECTIVE_TRACE 2521 282 #define CONDITION_ANY 2601 283 #define CONDITION_ERROR 2602 284 #define CONDITION_FAILURE 2603 285 #define CONDITION_HALT 2604 286 #define CONDITION_NOMETHOD 2605 287 #define CONDITION_NOSTRING 2606 288 #define CONDITION_NOTREADY 2607 289 #define CONDITION_NOVALUE 2608 290 #define CONDITION_PROPAGATE 2609 291 #define CONDITION_SYNTAX 2610 292 #define CONDITION_USER 2611 293 #define CONDITION_LOSTDIGITS 2612 298 #define BUILTIN_ABBREV 1 299 #define BUILTIN_ABS BUILTIN_ABBREV + 1 300 #define BUILTIN_ADDRESS BUILTIN_ABS + 1 301 #define BUILTIN_ARG BUILTIN_ADDRESS + 1 302 #define BUILTIN_B2X BUILTIN_ARG + 1 303 #define BUILTIN_BITAND BUILTIN_B2X + 1 304 #define BUILTIN_BITOR BUILTIN_BITAND + 1 305 #define BUILTIN_BITXOR BUILTIN_BITOR + 1 306 #define BUILTIN_C2D BUILTIN_BITXOR + 1 307 #define BUILTIN_C2X BUILTIN_C2D + 1 308 #define BUILTIN_CENTER BUILTIN_C2X + 1 309 #define BUILTIN_CENTRE BUILTIN_CENTER + 1 310 #define BUILTIN_CHANGESTR BUILTIN_CENTRE + 1 311 #define BUILTIN_CHARIN BUILTIN_CHANGESTR + 1 312 #define BUILTIN_CHAROUT BUILTIN_CHARIN + 1 313 #define BUILTIN_CHARS BUILTIN_CHAROUT + 1 314 #define BUILTIN_COMPARE BUILTIN_CHARS + 1 315 #define BUILTIN_CONDITION BUILTIN_COMPARE + 1 316 #define BUILTIN_COPIES BUILTIN_CONDITION + 1 317 #define BUILTIN_COUNTSTR BUILTIN_COPIES + 1 318 #define BUILTIN_D2C BUILTIN_COUNTSTR + 1 319 #define BUILTIN_D2X BUILTIN_D2C + 1 320 #define BUILTIN_DATATYPE BUILTIN_D2X + 1 321 #define BUILTIN_DATE BUILTIN_DATATYPE + 1 322 #define BUILTIN_DELSTR BUILTIN_DATE + 1 323 #define BUILTIN_DELWORD BUILTIN_DELSTR + 1 324 #define BUILTIN_DIGITS BUILTIN_DELWORD + 1 325 #define BUILTIN_ERRORTEXT BUILTIN_DIGITS + 1 326 #define BUILTIN_FORM BUILTIN_ERRORTEXT + 1 327 #define BUILTIN_FORMAT BUILTIN_FORM + 1 328 #define BUILTIN_FUZZ BUILTIN_FORMAT + 1 329 #define BUILTIN_INSERT BUILTIN_FUZZ + 1 330 #define BUILTIN_LASTPOS BUILTIN_INSERT + 1 331 #define BUILTIN_LEFT BUILTIN_LASTPOS + 1 332 #define BUILTIN_LENGTH BUILTIN_LEFT + 1 333 #define BUILTIN_LINEIN BUILTIN_LENGTH + 1 334 #define BUILTIN_LINEOUT BUILTIN_LINEIN + 1 335 #define BUILTIN_LINES BUILTIN_LINEOUT + 1 336 #define BUILTIN_MAX BUILTIN_LINES + 1 337 #define BUILTIN_MIN BUILTIN_MAX + 1 338 #define BUILTIN_OVERLAY BUILTIN_MIN + 1 339 #define BUILTIN_POS BUILTIN_OVERLAY + 1 340 #define BUILTIN_QUEUED BUILTIN_POS + 1 341 #define BUILTIN_RANDOM BUILTIN_QUEUED + 1 342 #define BUILTIN_REVERSE BUILTIN_RANDOM + 1 343 #define BUILTIN_RIGHT BUILTIN_REVERSE + 1 344 #define BUILTIN_SIGN BUILTIN_RIGHT + 1 345 #define BUILTIN_SOURCELINE BUILTIN_SIGN + 1 346 #define BUILTIN_SPACE BUILTIN_SOURCELINE + 1 347 #define BUILTIN_STREAM BUILTIN_SPACE + 1 348 #define BUILTIN_STRIP BUILTIN_STREAM + 1 349 #define BUILTIN_SUBSTR BUILTIN_STRIP + 1 350 #define BUILTIN_SUBWORD BUILTIN_SUBSTR + 1 351 #define BUILTIN_SYMBOL BUILTIN_SUBWORD + 1 352 #define BUILTIN_TIME BUILTIN_SYMBOL + 1 353 #define BUILTIN_TRACE BUILTIN_TIME + 1 354 #define BUILTIN_TRANSLATE BUILTIN_TRACE + 1 355 #define BUILTIN_TRUNC BUILTIN_TRANSLATE + 1 356 #define BUILTIN_VALUE BUILTIN_TRUNC + 1 357 #define BUILTIN_VAR BUILTIN_VALUE + 1 358 #define BUILTIN_VERIFY BUILTIN_VAR + 1 359 #define BUILTIN_WORD BUILTIN_VERIFY + 1 360 #define BUILTIN_WORDINDEX BUILTIN_WORD + 1 361 #define BUILTIN_WORDLENGTH BUILTIN_WORDINDEX + 1 362 #define BUILTIN_WORDPOS BUILTIN_WORDLENGTH + 1 363 #define BUILTIN_WORDS BUILTIN_WORDPOS + 1 364 #define BUILTIN_X2B BUILTIN_WORDS + 1 365 #define BUILTIN_X2C BUILTIN_X2B + 1 366 #define BUILTIN_X2D BUILTIN_X2C + 1 367 #define BUILTIN_XRANGE BUILTIN_X2D + 1 374 #define BUILTIN_USERID BUILTIN_XRANGE + 1 375 #define BUILTIN_LOWER BUILTIN_USERID + 1 376 #define BUILTIN_UPPER BUILTIN_LOWER + 1 377 #define BUILTIN_RXFUNCADD BUILTIN_UPPER + 1 378 #define BUILTIN_RXFUNCDROP BUILTIN_RXFUNCADD + 1 379 #define BUILTIN_RXFUNCQUERY BUILTIN_RXFUNCDROP + 1 380 #define BUILTIN_ENDLOCAL BUILTIN_RXFUNCQUERY + 1 381 #define BUILTIN_SETLOCAL BUILTIN_ENDLOCAL + 1 382 #define BUILTIN_QUEUEEXIT BUILTIN_SETLOCAL + 1 383 #define BUILTIN_QUALIFY BUILTIN_QUEUEEXIT + 1 389 void *
operator new(size_t);
390 inline void *
operator new(
size_t size,
void *ptr) {
return ptr;};
391 inline void operator delete(
void *) { ; }
392 inline void operator delete(
void *,
void *) { ; }
void setEnd(size_t l, size_t o)
void flatten(RexxEnvelope *)
void setLocation(SourceLocation &l)
RexxArray * newObjects(size_t size, size_t count, size_t objectType)
SourceLocation tokenLocation
const SourceLocation & getLocation()
RexxToken * new_token(int c, int s, RexxString *v, SourceLocation &l)
RexxToken(int, int, RexxString *, SourceLocation &)
RexxToken(RESTORETYPE restoreType)
RexxArray * new_arrayOfTokens(size_t n)
void checkAssignment(RexxSource *source, RexxString *newValue)
void setEnd(SourceLocation &l)
void setStart(size_t l, size_t o)
void liveGeneral(int reason)
void setStart(SourceLocation &l)