56 lines
1.2 KiB
C++
Executable File
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
|