At 9:47 PM +0200 on 5/28/99, M. Uli Kusterer wrote:
>>No doubt. But since AppleScript is not case-sensitive, it should fix this
>>itself.
>
>Anthony,
>
> AppleScript doesn't fix anything. It just takes over everything as the
>programmer spelled it in the dictionary, assuming he knows what he wants.
>After all, imagine AS made everything lowercase. What if some token
>consisted of a shorthand form of a word which has to be capitalized (like
>OODL). Who could read it if AS made it lowercase?
Hmmm... things like that should of been thaught of and put in the
dictionary format.
>
>>True. But that's why you update your token table on each compile.
>>
>>But if you look at some of that disassembled OpenTalk, it's worse. I pitty
>>the person who winds up getting to write the debugger (Ouch. It's probably
>>me)
>
> If you don't get it to become a lot more readable, it will certainly be
>you. OTOH, what about an option to carry along variable names etc. for
>easier debugging?
What will probably happen is a special token thrown in which has the sole
purpose of marking an end of line. The debugger can then use the
not-compiled form to show the user where he is.
Basicly, a debugger would respond to:
DebuggerAction (DebugProc*)(char *obj, unsigned int line);
>
>> "Application Stuffit Lite� can't understand the
>> [10 lines of nonsence] message. Sei ein Wurm!
>> Sei gl�cklich! Ein Wurm haben kein AppleScript."
>>
>> (OK, I added the worm stuff... Uli, how bad did
>> I screw that up? And which gender is a worm
>> these days?)
>
> It's almost perfect. Only you forgot to conjugate "haben". It's "hat" in
>this case.
How come it is that whenever I can't decide whether I want to say "A worm
has" or "Worms have" I always wind up with "A worm have"? (DOH!)
I guess a worm is neuter? Or is it masculine? And how does one figure out
the gender of AppleScript?
>I'm using the 2.5 Movie Player
>anyway. It works around the problem that I haven't got QT Pro.
Same here.
>
>>And using HC's hierarchy is a Good Thing? Ak! Makes it hard to compile
>>scripts...
>> (...)
>>I don't see why not. It's an imperitive... It tells the compiler: "Include
>>whatever [into my source]"
>> (...)
>>#include is fine; it's preprocessed. I'd just read the file before passing
>>the script to the frontend. Call that layer the preprocessor.
>
> The problem comes if you have multiple objects and one includes the
>other's script. You have to keep track of changes in one script and
>invalidate all others that include it, you have to take care of circular
>includes...
Not nearly as bad as that message hierarchy.
>>Another thing, though. With the HT compiler, one could make semi-protected
>>libraries for distribution.
>
> You mean storing the scripts in tokenized form, thus preventing that
>people read the scripts with a text editor and increasing execution speed?
>no problem. But please don't do a real compiler. A JITC, maybe, but I think
>one of HyperTalk's greatest advantages is that you can easily change a
>thing and re-run, without needing to re-compile anything. It's a speed
>improvement and much more user-friendly.
I should of phrased that differently. I should of said "tokenizer" or
something to that effect. But then again, the interpreter is more like a
compiler and an emulator. It's CPU is (a holdover from the JITC attempt)
called the "NullCPU"