| | 317 | #if MAKE_ATOM_HEADER |
| | 318 | #define FIXED_ATOM(str,len,def) \ |
| | 319 | printf( "#define %s\t\t%d\n", #def, orInternAtom(str,len) ); |
| | 320 | #else |
| | 321 | #ifdef DEBUG |
| | 322 | #define FIXED_ATOM(str,len,def) assert( orInternAtom(str,len) == def ); |
| | 323 | #else |
| | 324 | #define FIXED_ATOM(str,len,def) orInternAtom(str,len); |
| | 325 | #endif |
| | 326 | #endif |
| | 327 | |
| | 328 | |
| | 329 | // Intern commonly used atoms. |
| | 330 | static void _createFixedAtoms() |
| | 331 | { |
| | 332 | #if MAKE_ATOM_HEADER |
| | 333 | printf( "// This file is automatically generated - do not edit.\n\n" ); |
| | 334 | #endif |
| | 335 | |
| | 336 | FIXED_ATOM( "self", 4, OR_ATOM_SELF ) |
| | 337 | FIXED_ATOM( "system", 6, OR_ATOM_SYSTEM ) |
| | 338 | FIXED_ATOM( "script", 6, OR_ATOM_SCRIPT ) |
| | 339 | FIXED_ATOM( "parent", 6, OR_ATOM_PARENT ) |
| | 340 | FIXED_ATOM( "error", 5, OR_ATOM_ERROR ) |
| | 341 | FIXED_ATOM( "error-types", 11, OR_ATOM_ERROR_TYPES ) |
| | 342 | FIXED_ATOM( "catch", 5, OR_ATOM_CATCH ) |
| | 343 | FIXED_ATOM( "throw", 5, OR_ATOM_THROW ) |
| | 344 | FIXED_ATOM( "x", 1, OR_ATOM_X ) |
| | 345 | FIXED_ATOM( "y", 1, OR_ATOM_Y ) |
| | 346 | FIXED_ATOM( "z", 1, OR_ATOM_Z ) |
| | 347 | FIXED_ATOM( "-", 1, OR_ATOM_DASH ) |
| | 348 | FIXED_ATOM( "func", 4, OR_ATOM_FUNC ) |
| | 349 | FIXED_ATOM( "does", 4, OR_ATOM_DOES ) |
| | 350 | |
| | 351 | // Atoms used by parse. |
| | 352 | FIXED_ATOM( "|", 1, OR_ATOM_BAR ) |
| | 353 | FIXED_ATOM( "opt", 3, OR_ATOM_OPT ) |
| | 354 | FIXED_ATOM( "some", 4, OR_ATOM_SOME ) |
| | 355 | FIXED_ATOM( "any", 3, OR_ATOM_ANY ) |
| | 356 | FIXED_ATOM( "break", 5, OR_ATOM_BREAK ) |
| | 357 | FIXED_ATOM( "skip", 4, OR_ATOM_SKIP ) |
| | 358 | FIXED_ATOM( "set", 3, OR_ATOM_SET ) |
| | 359 | FIXED_ATOM( "copy", 4, OR_ATOM_COPY ) |
| | 360 | FIXED_ATOM( "to", 2, OR_ATOM_TO ) |
| | 361 | FIXED_ATOM( "thru", 4, OR_ATOM_THRU ) |
| | 362 | |
| | 363 | |
| | 364 | #if MAKE_ATOM_HEADER |
| | 365 | exit(0); |
| | 366 | #endif |
| | 367 | } |
| | 368 | |
| | 369 | |
| 370 | | orEnv->atom_self = orInternAtom( "self", 4 ); |
| 371 | | orEnv->atom_system = orInternAtom( "system", 6 ); |
| 372 | | orEnv->atom_script = orInternAtom( "script", 6 ); |
| 373 | | orEnv->atom_parent = orInternAtom( "parent", 6 ); |
| 374 | | orEnv->atom_error = orInternAtom( "error", 5 ); |
| 375 | | orEnv->atom_error_types = orInternAtom( "error-types", 11 ); |
| 376 | | orEnv->atom_catch = orInternAtom( "catch", 5 ); |
| 377 | | orEnv->atom_throw = orInternAtom( "throw", 5 ); |
| 378 | | orEnv->atom_x = orInternAtom( "x", 1 ); |
| 379 | | orEnv->atom_y = orInternAtom( "y", 1 ); |
| 380 | | orEnv->atom_z = orInternAtom( "z", 1 ); |
| 381 | | orEnv->atom_dash = orInternAtom( "-", 1 ); |
| 382 | | orEnv->atom_func = orInternAtom( "func", 4 ); |
| 383 | | orEnv->atom_does = orInternAtom( "does", 4 ); |
| 384 | | |
| 385 | | // Atoms used by parse. |
| 386 | | orEnv->atom_opt = orInternAtom( "opt", 3 ); |
| 387 | | orEnv->atom_some = orInternAtom( "some", 4 ); |
| 388 | | orEnv->atom_any = orInternAtom( "any", 3 ); |
| 389 | | orEnv->atom_break = orInternAtom( "break", 5 ); |
| 390 | | orEnv->atom_skip = orInternAtom( "skip", 4 ); |
| 391 | | orEnv->atom_set = orInternAtom( "set", 3 ); |
| 392 | | orEnv->atom_copy = orInternAtom( "copy", 4 ); |
| 393 | | orEnv->atom_bar = orInternAtom( "|", 1 ); |
| 394 | | orEnv->atom_to = orInternAtom( "to", 2 ); |
| 395 | | orEnv->atom_thru = orInternAtom( "thru", 4 ); |
| | 428 | _createFixedAtoms(); |