2017-04-17 06:17:10 -06:00

56 lines
1.2 KiB
C++
Executable File

/*
* Name.h - Name class for MAXScript
*
* Copyright © John Wainwright 1996
*
*/
#ifndef _H_NAME
#define _H_NAME
#include "HashTab.h"
visible_class (Name)
class Name : public Value
{
public:
TCHAR* string;
static HashTable* intern_table;
Name(TCHAR *init_string);
~Name() { if (string) free(string); }
# define is_name(o) ((o)->tag == class_tag(Name))
static void setup();
static ScripterExport Value* intern(TCHAR* str);
static ScripterExport Value* find_intern(TCHAR* str);
classof_methods (Name, Value);
ScripterExport void sprin1(CharStream* s);
void collect() { delete this; }
TCHAR* to_string();
TSTR to_filename();
void to_fpvalue(FPValue& v) { v.s = to_string(); v.type = TYPE_NAME; }
#include "defimpfn.h"
use_generic( coerce, "coerce");
use_generic( gt, ">");
use_generic( lt, "<");
use_generic( ge, ">=");
use_generic( le, "<=");
use_generic( copy, "copy");
// scene I/O
IOResult Save(ISave* isave);
static Value* Load(ILoad* iload, USHORT chunkID, ValueLoader* vload);
};
/* core interned names */
#include "defextfn.h"
# include "corename.h"
#endif