Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008 #pragma once
00009
00010 #include "..\ScripterExport.h"
00011 #include "..\kernel\value.h"
00012
00013 class HashTable;
00014
00015 visible_class_debug_ok (Name)
00016
00017 class Name : public Value
00018 {
00019 public:
00020 MCHAR* string;
00021 static HashTable* intern_table;
00022 Name(const MCHAR* init_string);
00023 ScripterExport ~Name();
00024
00025 # define is_name(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == class_tag(Name))
00026 static void setup();
00027 static ScripterExport Value* intern(const MCHAR* str);
00028 static ScripterExport Value* find_intern(const MCHAR* str);
00029 classof_methods (Name, Value);
00030
00031 ScripterExport void sprin1(CharStream* s);
00032 void collect() { delete this; }
00033 MCHAR* to_string();
00034 MSTR to_filename();
00035 void to_fpvalue(FPValue& v) { v.s = to_string(); v.type = TYPE_NAME; }
00036
00037 #include "..\macros\define_implementations.h"
00038 use_generic( coerce, "coerce");
00039 use_generic( gt, ">");
00040 use_generic( lt, "<");
00041 use_generic( ge, ">=");
00042 use_generic( le, "<=");
00043 use_generic( copy, "copy");
00044
00045
00046 IOResult Save(ISave* isave);
00047 static Value* Load(ILoad* iload, USHORT chunkID, ValueLoader* vload);
00048
00049 };
00050
00051
00052
00053 #include "..\macros\define_external_functions.h"
00054 # include "..\protocols\corenames.inl"
00055
00056