8
/* flag: we've run the 'preinit' function */
13
export exceptionMessage;
15
class RuntimeError: object
16
construct(errno, ...) { errno_ = errno; }
17
exceptionMessage = nil
35
_say_embed(str) { tadsSay(str); }
45
/* if haven't yet run preinit, do so now */
46
if (!global.preinited_)
51
/* make a note that we've completed pre-initialization */
52
global.preinited_ = true;
54
tadsSay('global.preinited_ = '
55
+ (global.preinited_ ? 'true' : 'false')
59
/* if we're in preinit-only mode, we're done */
60
if (t3GetVMPreinitMode())
63
/* invoke the user's main program */
66
catch(RuntimeError rt)
68
tadsSay('\n!!! RuntimeError: ' + rt.errno_ + '\n');
73
* user pre-initialization routine
79
tadsSay('this is preinit!!!\n');
83
obj1.prop2 = [obj1.prop1, obj1.prop1, obj1.prop1];
89
obj1.prop3 = new MyClass(str);
91
/* build contents lists */
92
for (local obj = firstObj() ; obj != nil ; obj = nextObj(obj))
94
if (obj.location != nil)
95
obj.location.contents += obj;
104
tadsSay('this is the main entrypoint!!!\n');
106
tadsSay('obj1.prop1 = ' + obj1.prop1 + '\n');
108
tadsSay('obj1.prop2 = ');
112
tadsSay('obj1.prop3 = nil? ' + (obj1.prop3 == nil ? 'yes' : 'no') + '\n');
113
tadsSay('obj1.prop3.instName = ' + obj1.prop3.instName + '\n');
115
tadsSay('contents of room1:\n');
116
for (local lst = room1.contents ; lst.length() != 0 ; lst = lst.cdr())
117
"\t<<lst.car().sdesc>>\n";
126
class MyClass: object
127
sdesc { tadsSay('This is MyClass: instName = ' + instName); }
130
construct(nm) { instName = nm; }
133
function sayList(lst)
136
for (local i = 1, local cnt = lst.length() ; i <= cnt ; ++i)