1 /****************************************************************************** 2 Copyright (c) 1992, 1995, 1996 Xerox Corporation. All rights reserved. 3 Portions of this code were written by Stephen White, aka ghond. 4 Use and copying of this software and preparation of derivative works based 5 upon this software are permitted. Any distribution of this software or 6 derivative works must comply with all applicable United States export 7 control laws. This software is made available AS IS, and Xerox Corporation 8 makes no warranty about the software, its performance or its conformity to 9 any specification. Any person obtaining a copy of this software is requested 10 to send their name and post office or electronic mail address to: 11 Pavel Curtis 12 Xerox PARC 13 3333 Coyote Hill Rd. 14 Palo Alto, CA 94304 15 Pavel@Xerox.Com 16 *****************************************************************************/ 17 18 #ifndef Sym_Table_h 19 #define Sym_Table_h 1 20 21 #include "config.h" 22 #include "version.h" 23 24 typedef struct { 25 unsigned max_size; 26 unsigned size; 27 const char **names; 28 } Names; 29 30 extern Names *new_builtin_names(DB_Version); 31 extern int first_user_slot(DB_Version); 32 extern unsigned find_or_add_name(Names **, const char *); 33 extern int find_name(Names *, const char *); 34 extern void free_names(Names *); 35 36 /* Environment slots for built-in variables */ 37 #define SLOT_NUM 0 38 #define SLOT_OBJ 1 39 #define SLOT_STR 2 40 #define SLOT_LIST 3 41 #define SLOT_ERR 4 42 #define SLOT_PLAYER 5 43 #define SLOT_THIS 6 44 #define SLOT_CALLER 7 45 #define SLOT_VERB 8 46 #define SLOT_ARGS 9 47 #define SLOT_ARGSTR 10 48 #define SLOT_DOBJ 11 49 #define SLOT_DOBJSTR 12 50 #define SLOT_PREPSTR 13 51 #define SLOT_IOBJ 14 52 #define SLOT_IOBJSTR 15 53 54 /* Added in DBV_Float: */ 55 #define SLOT_INT 16 56 #define SLOT_FLOAT 17 57 58 #endif /* !Sym_Table_h */ 59 60 /* 61 * $Log: sym_table.h,v $ 62 * Revision 1.3 1998/12/14 13:19:06 nop 63 * Merge UNSAFE_OPTS (ref fixups); fix Log tag placement to fit CVS whims 64 * 65 * Revision 1.2 1997/03/03 04:19:30 nop 66 * GNU Indent normalization 67 * 68 * Revision 1.1.1.1 1997/03/03 03:45:04 nop 69 * LambdaMOO 1.8.0p5 70 * 71 * Revision 2.2 1996/03/10 01:15:53 pavel 72 * Removed a number of obsolete declarations. Release 1.8.0. 73 * 74 * Revision 2.1 1996/02/08 06:11:23 pavel 75 * Made new_builtin_names() and first_user_slot() version-dependent to support 76 * version numbers on suspended-task frames. Added SLOT_INT and SLOT_FLOAT. 77 * Updated copyright notice for 1996. Release 1.8.0beta1. 78 * 79 * Revision 2.0 1995/11/30 04:55:57 pavel 80 * New baseline version, corresponding to release 1.8.0alpha1. 81 * 82 * Revision 1.4 1992/10/23 23:03:47 pavel 83 * Added copyright notice. 84 * 85 * Revision 1.3 1992/10/21 03:02:35 pavel 86 * Converted to use new automatic configuration system. 87 * 88 * Revision 1.2 1992/08/31 22:24:26 pjames 89 * Changed some `char *'s to `const char *' 90 * 91 * Revision 1.1 1992/07/20 23:23:12 pavel 92 * Initial RCS-controlled version. 93 */ 94