comparison src/symtab.h @ 5102:b04b30d30c66

[project @ 2004-12-28 01:59:05 by jwe]
author jwe
date Tue, 28 Dec 2004 01:59:05 +0000
parents 1eb9ce5c0152
children e35b034d3523
comparison
equal deleted inserted replaced
5101:9b1af8135ecd 5102:b04b30d30c66
74 USER_FUNCTION = 1, 74 USER_FUNCTION = 1,
75 USER_VARIABLE = 2, 75 USER_VARIABLE = 2,
76 DLD_FUNCTION = 4, 76 DLD_FUNCTION = 4,
77 BUILTIN_FUNCTION = 8, 77 BUILTIN_FUNCTION = 8,
78 COMMAND = 16, 78 COMMAND = 16,
79 MAPPER_FUNCTION = 32, 79 RAWCOMMAND = 32,
80 BUILTIN_VARIABLE = 64, 80 MAPPER_FUNCTION = 64,
81 BUILTIN_CONSTANT = 128 81 BUILTIN_VARIABLE = 128,
82 BUILTIN_CONSTANT = 256
82 }; 83 };
83 84
84 private: 85 private:
85 86
86 // Variables or functions. 87 // Variables or functions.
126 { symbol_type &= ~symbol_record::COMMAND; } 127 { symbol_type &= ~symbol_record::COMMAND; }
127 128
128 bool is_command (void) const 129 bool is_command (void) const
129 { return (symbol_type & symbol_record::COMMAND); } 130 { return (symbol_type & symbol_record::COMMAND); }
130 131
132 void mark_as_rawcommand (void)
133 { symbol_type |= (symbol_record::COMMAND
134 | symbol_record::RAWCOMMAND); }
135
136 void unmark_rawcommand (void)
137 { symbol_type &= ~symbol_record::RAWCOMMAND; }
138
139 bool is_rawcommand (void) const
140 { return (symbol_type & symbol_record::RAWCOMMAND); }
141
131 bool is_mapper_function (void) const 142 bool is_mapper_function (void) const
132 { return (symbol_type & symbol_record::MAPPER_FUNCTION); } 143 { return (symbol_type & symbol_record::MAPPER_FUNCTION); }
133 144
134 bool is_user_function (void) const 145 bool is_user_function (void) const
135 { return (symbol_type & symbol_record::USER_FUNCTION); } 146 { return (symbol_type & symbol_record::USER_FUNCTION); }
212 { allocator.free (p, size); } 223 { allocator.free (p, size); }
213 224
214 static octave_allocator allocator; 225 static octave_allocator allocator;
215 226
216 // The type of this symbol (see the enum above). 227 // The type of this symbol (see the enum above).
217 unsigned int symbol_type : 8; 228 unsigned int symbol_type : 9;
218 229
219 // Nonzero means this variable cannot be cleared. 230 // Nonzero means this variable cannot be cleared.
220 unsigned int eternal : 1; 231 unsigned int eternal : 1;
221 232
222 // Nonzero means this variable cannot be given a new value. 233 // Nonzero means this variable cannot be given a new value.
282 { definition->unmark_command (); } 293 { definition->unmark_command (); }
283 294
284 bool is_command (void) const 295 bool is_command (void) const
285 { return definition->is_command (); } 296 { return definition->is_command (); }
286 297
298 void mark_as_rawcommand (void)
299 { definition->mark_as_rawcommand (); }
300
301 void unmark_rawcommand (void)
302 { definition->unmark_rawcommand (); }
303
304 bool is_rawcommand (void) const
305 { return definition->is_rawcommand (); }
306
287 bool is_mapper_function (void) const 307 bool is_mapper_function (void) const
288 { return definition->is_mapper_function (); } 308 { return definition->is_mapper_function (); }
289 309
290 bool is_user_function (void) const 310 bool is_user_function (void) const
291 { return definition->is_user_function (); } 311 { return definition->is_user_function (); }
441 #define SYMTAB_ALL_TYPES (symbol_record::USER_FUNCTION \ 461 #define SYMTAB_ALL_TYPES (symbol_record::USER_FUNCTION \
442 | symbol_record::USER_VARIABLE \ 462 | symbol_record::USER_VARIABLE \
443 | symbol_record::DLD_FUNCTION \ 463 | symbol_record::DLD_FUNCTION \
444 | symbol_record::BUILTIN_FUNCTION \ 464 | symbol_record::BUILTIN_FUNCTION \
445 | symbol_record::COMMAND \ 465 | symbol_record::COMMAND \
466 | symbol_record::RAWCOMMAND \
446 | symbol_record::MAPPER_FUNCTION \ 467 | symbol_record::MAPPER_FUNCTION \
447 | symbol_record::BUILTIN_VARIABLE \ 468 | symbol_record::BUILTIN_VARIABLE \
448 | symbol_record::BUILTIN_CONSTANT) 469 | symbol_record::BUILTIN_CONSTANT)
449 470
450 #define SYMTAB_VARIABLES (symbol_record::USER_VARIABLE \ 471 #define SYMTAB_VARIABLES (symbol_record::USER_VARIABLE \